- PUSHAUX/POPAUX helpers to ARCompact entry
 - use gas provided "push"/pop pseudo instructions

Signed-off-by: Vineet Gupta <vgu...@kernel.org>
---
 arch/arc/include/asm/entry-compact.h | 55 ++++++++++++++++++++++-
 arch/arc/include/asm/entry.h         | 66 ----------------------------
 2 files changed, 54 insertions(+), 67 deletions(-)

diff --git a/arch/arc/include/asm/entry-compact.h 
b/arch/arc/include/asm/entry-compact.h
index 9841f1186417..92c3e9f13252 100644
--- a/arch/arc/include/asm/entry-compact.h
+++ b/arch/arc/include/asm/entry-compact.h
@@ -33,6 +33,59 @@
 #include <asm/irqflags-compact.h>
 #include <asm/thread_info.h>   /* For THREAD_SIZE */
 
+/* Note on the LD/ST addr modes with addr reg wback
+ *
+ * LD.a same as LD.aw
+ *
+ * LD.a    reg1, [reg2, x]  => Pre Incr
+ *      Eff Addr for load = [reg2 + x]
+ *
+ * LD.ab   reg1, [reg2, x]  => Post Incr
+ *      Eff Addr for load = [reg2]
+ */
+
+.macro PUSHAX aux
+       lr      r9, [\aux]
+       push    r9
+.endm
+
+.macro POPAX aux
+       pop     r9
+       sr      r9, [\aux]
+.endm
+
+.macro  SAVE_R0_TO_R12
+       push    r0
+       push    r1
+       push    r2
+       push    r3
+       push    r4
+       push    r5
+       push    r6
+       push    r7
+       push    r8
+       push    r9
+       push    r10
+       push    r11
+       push    r12
+.endm
+
+.macro RESTORE_R12_TO_R0
+       pop     r12
+       pop     r11
+       pop     r10
+       pop     r9
+       pop     r8
+       pop     r7
+       pop     r6
+       pop     r5
+       pop     r4
+       pop     r3
+       pop     r2
+       pop     r1
+       pop     r0
+.endm
+
 .macro SAVE_ABI_CALLEE_REGS
        push    r13
        push    r14
@@ -267,7 +320,7 @@
        SWITCH_TO_KERNEL_STK
 
 
-       PUSH    0x003\LVL\()abcd    /* Dummy ECR */
+       st.a    0x003\LVL\()abcd, [sp, -4]      /* Dummy ECR */
        sub     sp, sp, 8           /* skip orig_r0 (not needed)
                                       skip pt_regs->sp, already saved above */
 
diff --git a/arch/arc/include/asm/entry.h b/arch/arc/include/asm/entry.h
index 8e4e40d2d54a..cf1ba376e992 100644
--- a/arch/arc/include/asm/entry.h
+++ b/arch/arc/include/asm/entry.h
@@ -21,72 +21,6 @@
 #include <asm/entry-arcv2.h>
 #endif
 
-/* Note on the LD/ST addr modes with addr reg wback
- *
- * LD.a same as LD.aw
- *
- * LD.a    reg1, [reg2, x]  => Pre Incr
- *      Eff Addr for load = [reg2 + x]
- *
- * LD.ab   reg1, [reg2, x]  => Post Incr
- *      Eff Addr for load = [reg2]
- */
-
-.macro PUSH reg
-       st.a    \reg, [sp, -4]
-.endm
-
-.macro PUSHAX aux
-       lr      r9, [\aux]
-       PUSH    r9
-.endm
-
-.macro POP reg
-       ld.ab   \reg, [sp, 4]
-.endm
-
-.macro POPAX aux
-       POP     r9
-       sr      r9, [\aux]
-.endm
-
-/*--------------------------------------------------------------
- * Helpers to save/restore Scratch Regs:
- * used by Interrupt/Exception Prologue/Epilogue
- *-------------------------------------------------------------*/
-.macro  SAVE_R0_TO_R12
-       PUSH    r0
-       PUSH    r1
-       PUSH    r2
-       PUSH    r3
-       PUSH    r4
-       PUSH    r5
-       PUSH    r6
-       PUSH    r7
-       PUSH    r8
-       PUSH    r9
-       PUSH    r10
-       PUSH    r11
-       PUSH    r12
-.endm
-
-.macro RESTORE_R12_TO_R0
-       POP     r12
-       POP     r11
-       POP     r10
-       POP     r9
-       POP     r8
-       POP     r7
-       POP     r6
-       POP     r5
-       POP     r4
-       POP     r3
-       POP     r2
-       POP     r1
-       POP     r0
-
-.endm
-
 /*
  * save user mode callee regs as struct callee_regs
  *  - needed by fork/do_signal/unaligned-access-emulation.
-- 
2.34.1


_______________________________________________
linux-snps-arc mailing list
linux-snps-arc@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-snps-arc

Reply via email to