mirror of
https://github.com/keirf/greaseweazle-firmware.git
synced 2025-10-31 11:06:44 -07:00
intrinsics: Remove unused definitions
This commit is contained in:
@@ -80,85 +80,6 @@ struct exception_frame {
|
||||
* confirmed on Cortex-M3. */
|
||||
#define IRQ_restore(oldpri) write_special(basepri, (oldpri))
|
||||
|
||||
static inline uint16_t _rev16(uint16_t x)
|
||||
{
|
||||
uint16_t result;
|
||||
asm volatile ("rev16 %0,%1" : "=r" (result) : "r" (x));
|
||||
return result;
|
||||
}
|
||||
|
||||
static inline uint32_t _rev32(uint32_t x)
|
||||
{
|
||||
uint32_t result;
|
||||
asm volatile ("rev %0,%1" : "=r" (result) : "r" (x));
|
||||
return result;
|
||||
}
|
||||
|
||||
static inline uint32_t _rbit32(uint32_t x)
|
||||
{
|
||||
uint32_t result;
|
||||
asm volatile ("rbit %0,%1" : "=r" (result) : "r" (x));
|
||||
return result;
|
||||
}
|
||||
|
||||
extern void __bad_cmpxchg(volatile void *ptr, int size);
|
||||
|
||||
static always_inline unsigned long __cmpxchg(
|
||||
volatile void *ptr, unsigned long old, unsigned long new, int size)
|
||||
{
|
||||
unsigned long oldval, res;
|
||||
|
||||
switch (size) {
|
||||
case 1:
|
||||
do {
|
||||
asm volatile(" ldrexb %1,[%2] \n"
|
||||
" movs %0,#0 \n"
|
||||
" cmp %1,%3 \n"
|
||||
" it eq \n"
|
||||
" strexbeq %0,%4,[%2] \n"
|
||||
: "=&r" (res), "=&r" (oldval)
|
||||
: "r" (ptr), "Ir" (old), "r" (new)
|
||||
: "memory", "cc");
|
||||
} while (res);
|
||||
break;
|
||||
case 2:
|
||||
do {
|
||||
asm volatile(" ldrexh %1,[%2] \n"
|
||||
" movs %0,#0 \n"
|
||||
" cmp %1,%3 \n"
|
||||
" it eq \n"
|
||||
" strexheq %0,%4,[%2] \n"
|
||||
: "=&r" (res), "=&r" (oldval)
|
||||
: "r" (ptr), "Ir" (old), "r" (new)
|
||||
: "memory", "cc");
|
||||
} while (res);
|
||||
break;
|
||||
case 4:
|
||||
do {
|
||||
asm volatile(" ldrex %1,[%2] \n"
|
||||
" movs %0,#0 \n"
|
||||
" cmp %1,%3 \n"
|
||||
" it eq \n"
|
||||
" strexeq %0,%4,[%2] \n"
|
||||
: "=&r" (res), "=&r" (oldval)
|
||||
: "r" (ptr), "Ir" (old), "r" (new)
|
||||
: "memory", "cc");
|
||||
} while (res);
|
||||
break;
|
||||
default:
|
||||
__bad_cmpxchg(ptr, size);
|
||||
oldval = 0;
|
||||
}
|
||||
|
||||
return oldval;
|
||||
}
|
||||
|
||||
#define cmpxchg(ptr,o,n) \
|
||||
((__typeof__(*(ptr)))__cmpxchg((ptr), \
|
||||
(unsigned long)(o), \
|
||||
(unsigned long)(n), \
|
||||
sizeof(*(ptr))))
|
||||
|
||||
/* Cortex initialisation */
|
||||
void cortex_init(void);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user