diff options
author | kientzle <kientzle@FreeBSD.org> | 2012-05-02 05:49:58 +0000 |
---|---|---|
committer | kientzle <kientzle@FreeBSD.org> | 2012-05-02 05:49:58 +0000 |
commit | 2628ca3b8fa8a2b7b6710b93c3dd77e75af4b6bf (patch) | |
tree | 9ef748af9128d935fa49c97358628ba32b99ff7f /sys/boot/arm | |
parent | 35e9fbdf046ece9d9bf76fb178ac004f440a24ee (diff) | |
download | FreeBSD-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.S | 11 |
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 |