Skip to content

Commit

Permalink
[ARM] arm32ve: Optimize PUSH_REGS() and PULL_REGS() for hypervisor ex…
Browse files Browse the repository at this point in the history
…ceptions

Signed-off-by: Anup Patel <anup@brainfault.org>
  • Loading branch information
avpatel committed Jan 31, 2013
1 parent 3cc6c0a commit 1bead7a
Showing 1 changed file with 6 additions and 13 deletions.
19 changes: 6 additions & 13 deletions arch/arm/cpu/arm32ve/cpu_entry.S
Expand Up @@ -376,16 +376,11 @@ _reset:

/* Push registers on stack */
.macro PUSH_REGS
str lr, [sp, #-4]
str sp, [sp, #-8]
sub sp, sp, #(4*15)
stm sp, {r0-r12}
mov r0, r0
sub sp, sp, #(4*2)
push {sp, lr}
push {r0-r12}
mrs r0, spsr_hyp
str r0, [sp, #0]
mrs r0, elr_hyp
str r0, [sp, #4]
mrs r1, elr_hyp
push {r0, r1}
.endm

/* Call C function to handle exception */
Expand All @@ -396,12 +391,10 @@ _reset:

/* Pull registers from stack */
.macro PULL_REGS
ldr r0, [sp], #4
pop {r0, r1}
msr spsr_hyp, r0
ldr r0, [sp], #4
msr elr_hyp, r0
msr elr_hyp, r1
ldm sp, {r0-r14}
mov r0, r0
eret
.endm

Expand Down

0 comments on commit 1bead7a

Please sign in to comment.