+#define ao_arch_save_regs() do { \
+ uint32_t apsr; \
+ uint32_t primask; \
+ \
+ /* Save APSR */ \
+ asm("mrs %0,apsr" : "=&r" (apsr)); \
+ asm("push {%0}" : : "r" (apsr)); \
+ \
+ /* Save PRIMASK */ \
+ asm("mrs %0,primask" : "=&r" (primask)); \
+ asm("push {%0}" : : "r" (primask)); \
+ \
+ /* Save general registers */ \