[PATCH] ARM: Remove single-use user save/restore macros
authorRussell King <rmk@dyn-67.arm.linux.org.uk>
Tue, 26 Apr 2005 14:20:34 +0000 (15:20 +0100)
committerRussell King <rmk@dyn-67.arm.linux.org.uk>
Tue, 26 Apr 2005 14:20:34 +0000 (15:20 +0100)
Assembly macros are pointless if they're only used once.  Move
them inline.

Signed-off-by: Russell King <rmk@arm.linux.org.uk>
arch/arm/kernel/entry-common.S
arch/arm/kernel/entry-header.S

index 65c58b34db97b9de20c918f2d6c14de95a38e9db..07da010b67d4d715b5e97dfb824eb70433776a20 100644 (file)
@@ -27,7 +27,15 @@ ret_fast_syscall:
        ldr     r1, [tsk, #TI_FLAGS]
        tst     r1, #_TIF_WORK_MASK
        bne     fast_work_pending
-       fast_restore_user_regs
+
+       @ fast_restore_user_regs
+       ldr     r1, [sp, #S_OFF + S_PSR]        @ get calling cpsr
+       ldr     lr, [sp, #S_OFF + S_PC]!        @ get pc
+       msr     spsr_cxsf, r1                   @ save in spsr_svc
+       ldmdb   sp, {r1 - lr}^                  @ get calling r1 - lr
+       mov     r0, r0
+       add     sp, sp, #S_FRAME_SIZE - S_PC
+       movs    pc, lr                          @ return & move spsr_svc into cpsr
 
 /*
  * Ok, we need to do extra processing, enter the slow path.
@@ -57,7 +65,14 @@ ret_slow_syscall:
        tst     r1, #_TIF_WORK_MASK
        bne     work_pending
 no_work_pending:
-       slow_restore_user_regs
+       @ slow_restore_user_regs
+       ldr     r1, [sp, #S_PSR]                @ get calling cpsr
+       ldr     lr, [sp, #S_PC]!                @ get pc
+       msr     spsr_cxsf, r1                   @ save in spsr_svc
+       ldmdb   sp, {r0 - lr}^                  @ get calling r1 - lr
+       mov     r0, r0
+       add     sp, sp, #S_FRAME_SIZE - S_PC
+       movs    pc, lr                          @ return & move spsr_svc into cpsr
 
 /*
  * This is how we return from a fork.
@@ -109,7 +124,14 @@ ENTRY(ret_from_fork)
 
        .align  5
 ENTRY(vector_swi)
-       save_user_regs
+       sub     sp, sp, #S_FRAME_SIZE
+       stmia   sp, {r0 - r12}                  @ Calling r0 - r12
+       add     r8, sp, #S_PC
+       stmdb   r8, {sp, lr}^                   @ Calling sp, lr
+       mrs     r8, spsr                        @ called from non-FIQ mode, so ok.
+       str     lr, [sp, #S_PC]                 @ Save calling PC
+       str     r8, [sp, #S_PSR]                @ Save CPSR
+       str     r0, [sp, #S_OLD_R0]             @ Save OLD_R0
        zero_fp
 
        /*
index b7d54a4f98f42d35355f3460c193e99656e99355..956af0bff3ff5c8e76d8e6d68a88139b6e69f829 100644 (file)
        .endm
 #endif
 
-       .macro  save_user_regs
-       sub     sp, sp, #S_FRAME_SIZE
-       stmia   sp, {r0 - r12}                  @ Calling r0 - r12
-       add     r8, sp, #S_PC
-       stmdb   r8, {sp, lr}^                   @ Calling sp, lr
-       mrs     r8, spsr                        @ called from non-FIQ mode, so ok.
-       str     lr, [sp, #S_PC]                 @ Save calling PC
-       str     r8, [sp, #S_PSR]                @ Save CPSR
-       str     r0, [sp, #S_OLD_R0]             @ Save OLD_R0
-       .endm
-
-       .macro  restore_user_regs
-       ldr     r1, [sp, #S_PSR]                @ Get calling cpsr
-       disable_irq ip                          @ disable IRQs
-       ldr     lr, [sp, #S_PC]!                @ Get PC
-       msr     spsr_cxsf, r1                   @ save in spsr_svc
-       ldmdb   sp, {r0 - lr}^                  @ Get calling r0 - lr
-       mov     r0, r0
-       add     sp, sp, #S_FRAME_SIZE - S_PC
-       movs    pc, lr                          @ return & move spsr_svc into cpsr
-       .endm
-
-/*
- * Must be called with IRQs already disabled.
- */
-       .macro  fast_restore_user_regs
-       ldr     r1, [sp, #S_OFF + S_PSR]        @ get calling cpsr
-       ldr     lr, [sp, #S_OFF + S_PC]!        @ get pc
-       msr     spsr_cxsf, r1                   @ save in spsr_svc
-       ldmdb   sp, {r1 - lr}^                  @ get calling r1 - lr
-       mov     r0, r0
-       add     sp, sp, #S_FRAME_SIZE - S_PC
-       movs    pc, lr                          @ return & move spsr_svc into cpsr
-       .endm
-
-/*
- * Must be called with IRQs already disabled.
- */
-       .macro  slow_restore_user_regs
-       ldr     r1, [sp, #S_PSR]                @ get calling cpsr
-       ldr     lr, [sp, #S_PC]!                @ get pc
-       msr     spsr_cxsf, r1                   @ save in spsr_svc
-       ldmdb   sp, {r0 - lr}^                  @ get calling r1 - lr
-       mov     r0, r0
-       add     sp, sp, #S_FRAME_SIZE - S_PC
-       movs    pc, lr                          @ return & move spsr_svc into cpsr
-       .endm
-
-       .macro  mask_pc, rd, rm
-       .endm
-
        .macro  get_thread_info, rd
        mov     \rd, sp, lsr #13
        mov     \rd, \rd, lsl #13