projects
/
linux-2.6-block.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
ARCv2: entry: avoid a branch
[linux-2.6-block.git]
/
arch
/
arc
/
include
/
asm
/
entry-arcv2.h
diff --git
a/arch/arc/include/asm/entry-arcv2.h
b/arch/arc/include/asm/entry-arcv2.h
index 3209a676296064db739705f36fb93238cfc8ca13..beaf655666cbd06af7920d4bd9a4d65dc67cb3ae 100644
(file)
--- a/
arch/arc/include/asm/entry-arcv2.h
+++ b/
arch/arc/include/asm/entry-arcv2.h
@@
-100,12
+100,11
@@
; 2. Upon entry SP is always saved (for any inspection, unwinding etc),
; but on return, restored only if U mode
; 2. Upon entry SP is always saved (for any inspection, unwinding etc),
; but on return, restored only if U mode
+ lr r9, [AUX_USER_SP] ; U mode SP
+
mov.nz r9, sp
add.nz r9, r9, SZ_PT_REGS - PT_sp - 4 ; K mode SP
mov.nz r9, sp
add.nz r9, r9, SZ_PT_REGS - PT_sp - 4 ; K mode SP
- bnz 1f
- lr r9, [AUX_USER_SP] ; U mode SP
-1:
PUSH r9 ; SP (pt_regs->sp)
PUSH fp
PUSH r9 ; SP (pt_regs->sp)
PUSH fp