summaryrefslogtreecommitdiffstats
path: root/sys/boot/arm
diff options
context:
space:
mode:
authorkientzle <kientzle@FreeBSD.org>2012-05-02 05:49:58 +0000
committerkientzle <kientzle@FreeBSD.org>2012-05-02 05:49:58 +0000
commit2628ca3b8fa8a2b7b6710b93c3dd77e75af4b6bf (patch)
tree9ef748af9128d935fa49c97358628ba32b99ff7f /sys/boot/arm
parent35e9fbdf046ece9d9bf76fb178ac004f440a24ee (diff)
downloadFreeBSD-src-2628ca3b8fa8a2b7b6710b93c3dd77e75af4b6bf.zip
FreeBSD-src-2628ca3b8fa8a2b7b6710b93c3dd77e75af4b6bf.tar.gz
Remove some redundant register loads.
Discussed on: arm@
Diffstat (limited to 'sys/boot/arm')
-rw-r--r--sys/boot/arm/uboot/start.S11
1 files changed, 2 insertions, 9 deletions
diff --git a/sys/boot/arm/uboot/start.S b/sys/boot/arm/uboot/start.S
index c53330c..65148c9 100644
--- a/sys/boot/arm/uboot/start.S
+++ b/sys/boot/arm/uboot/start.S
@@ -49,27 +49,20 @@ _start:
* syscall()
*/
ENTRY(syscall)
- /* Save caller's lr */
+ /* Save caller's lr and r8 */
ldr ip, =saved_regs
str lr, [ip, #4]
- /* Save loader's r8 */
- ldr ip, =saved_regs
str r8, [ip, #8]
-
/* Restore U-Boot's r8 */
- ldr ip, =saved_regs
ldr r8, [ip, #0]
/* Call into U-Boot */
ldr lr, =return_from_syscall
ldr ip, =syscall_ptr
ldr pc, [ip]
-
return_from_syscall:
- /* Restore loader's r8 */
+ /* Restore loader's r8 and lr */
ldr ip, =saved_regs
ldr r8, [ip, #8]
- /* Restore caller's lr */
- ldr ip, =saved_regs
ldr lr, [ip, #4]
/* Return to caller */
mov pc, lr
OpenPOWER on IntegriCloud