ARM: avoid saving and restoring registers unnecessarily
Avoid repeatedly saving and restoring registers around the calls to trace_hardirqs_on() and context_tracking_user_exit(). With the previous changes, we no longer need to preserve "lr" across these calls, and if we re-load r0-r3 later, we can avoid preserving these regsiters too. Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
This commit is contained in:
parent
fcea45236d
commit
dca778c5bb
@ -157,8 +157,9 @@ ENTRY(vector_swi)
|
||||
#endif
|
||||
zero_fp
|
||||
alignment_trap r10, ip, __cr_alignment
|
||||
enable_irq
|
||||
ct_user_exit
|
||||
asm_trace_hardirqs_on save=0
|
||||
enable_irq_notrace
|
||||
ct_user_exit save=0
|
||||
|
||||
/*
|
||||
* Get the system call number.
|
||||
@ -216,6 +217,11 @@ ENTRY(vector_swi)
|
||||
eor scno, scno, #__NR_SYSCALL_BASE @ check OS number
|
||||
#endif
|
||||
get_thread_info tsk
|
||||
/*
|
||||
* Reload the registers that may have been corrupted on entry to
|
||||
* the syscall assembly (by tracing or context tracking.)
|
||||
*/
|
||||
TRACE( ldmia sp, {r0 - r3} )
|
||||
|
||||
local_restart:
|
||||
ldr r10, [tsk, #TI_FLAGS] @ check for syscall tracing
|
||||
|
Loading…
Reference in New Issue
Block a user