intrinsics: Remove unused definitions

This commit is contained in:
Keir Fraser
2021-11-11 08:39:34 +00:00
parent 884461fdf0
commit a938da99ac

View File

@@ -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);