]> err.no Git - linux-2.6/blobdiff - include/asm-arm/assembler.h
[ARM] Remove LOADREGS macro
[linux-2.6] / include / asm-arm / assembler.h
index f31ac92b6c7f1c0f69dc90e861a0bad367ff6c5e..add451ab89473948804619434181e9b216cdef6c 100644 (file)
 #define DEFAULT_FIQ    MODE_FIQ
 
 /*
- * LOADREGS - ldm with PC in register list (eg, ldmfd sp!, {pc})
+ * Enable and disable interrupts
  */
-#ifdef __STDC__
-#define LOADREGS(cond, base, reglist...)\
-       ldm##cond       base,reglist
+#if __LINUX_ARM_ARCH__ >= 6
+       .macro  disable_irq
+       cpsid   i
+       .endm
+
+       .macro  enable_irq
+       cpsie   i
+       .endm
 #else
-#define LOADREGS(cond, base, reglist...)\
-       ldm/**/cond     base,reglist
-#endif
+       .macro  disable_irq
+       msr     cpsr_c, #PSR_I_BIT | SVC_MODE
+       .endm
 
-/*
- * Build a return instruction for this processor type.
- */
-#define RETINSTR(instr, regs...)\
-       instr   regs
+       .macro  enable_irq
+       msr     cpsr_c, #SVC_MODE
+       .endm
+#endif
 
 /*
  * Save the current IRQ state and disable IRQs.  Note that this macro
  */
        .macro  save_and_disable_irqs, oldcpsr
        mrs     \oldcpsr, cpsr
-#if __LINUX_ARM_ARCH__ >= 6
-       cpsid   i
-#else
-       msr     cpsr_c, #PSR_I_BIT | MODE_SVC
-#endif
+       disable_irq
        .endm
 
 /*