FRV: Optimise the system call exit path in entry.S [ver #2]
Optimise the system call exit path in entry.S by packing some instructions. Suggested-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: David Howells <dhowells@redhat.com> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
parent
1e5ef91556
commit
a2eddc7c49
@ -905,18 +905,19 @@ __syscall_call:
|
|||||||
__syscall_exit:
|
__syscall_exit:
|
||||||
LEDS 0x6300
|
LEDS 0x6300
|
||||||
|
|
||||||
sti gr8,@(gr28,#REG_GR(8)) ; save return value
|
# keep current PSR in GR23
|
||||||
|
movsg psr,gr23
|
||||||
|
|
||||||
|
ldi @(gr28,#REG_PSR),gr22
|
||||||
|
|
||||||
|
sti.p gr8,@(gr28,#REG_GR(8)) ; save return value
|
||||||
|
|
||||||
# rebuild saved psr - execve will change it for init/main.c
|
# rebuild saved psr - execve will change it for init/main.c
|
||||||
ldi @(gr28,#REG_PSR),gr22
|
|
||||||
srli gr22,#1,gr5
|
srli gr22,#1,gr5
|
||||||
andi.p gr22,#~PSR_PS,gr22
|
andi.p gr22,#~PSR_PS,gr22
|
||||||
andi gr5,#PSR_PS,gr5
|
andi gr5,#PSR_PS,gr5
|
||||||
or gr5,gr22,gr22
|
or gr5,gr22,gr22
|
||||||
ori gr22,#PSR_S,gr22
|
ori.p gr22,#PSR_S,gr22
|
||||||
|
|
||||||
# keep current PSR in GR23
|
|
||||||
movsg psr,gr23
|
|
||||||
|
|
||||||
# make sure we don't miss an interrupt setting need_resched or sigpending between
|
# make sure we don't miss an interrupt setting need_resched or sigpending between
|
||||||
# sampling and the RETT
|
# sampling and the RETT
|
||||||
|
Loading…
Reference in New Issue
Block a user