diff options
author | Kai Backman <kaib@golang.org> | 2009-10-25 11:51:16 -0700 |
---|---|---|
committer | Kai Backman <kaib@golang.org> | 2009-10-25 11:51:16 -0700 |
commit | 2871bc5075cc2e761b36a5046a6b4cf72313e0f0 (patch) | |
tree | 12a7ebbc5ac44115d82a0b7b5ffbe06915ef81d1 | |
parent | f651e438829b4810f9a797a72295557a3c7d98ef (diff) | |
download | golang-2871bc5075cc2e761b36a5046a6b4cf72313e0f0.tar.gz |
proper syscall convention for arm
R=rsc
http://go/go-review/1015009
-rw-r--r-- | src/pkg/runtime/linux/arm/sys.s | 4 | ||||
-rw-r--r-- | src/pkg/syscall/asm_linux_arm.s | 9 | ||||
-rw-r--r-- | src/pkg/syscall/zsysnum_linux_arm.go | 4 |
3 files changed, 6 insertions, 11 deletions
diff --git a/src/pkg/runtime/linux/arm/sys.s b/src/pkg/runtime/linux/arm/sys.s index 4eb38f1ce..2d4595581 100644 --- a/src/pkg/runtime/linux/arm/sys.s +++ b/src/pkg/runtime/linux/arm/sys.s @@ -18,8 +18,8 @@ TEXT write(SB),7,$0 SWI $SYS_write RET -TEXT exit(SB),7,$0 - // Exit value already in R0 +TEXT exit(SB),7,$-4 + MOVW 0(FP), R0 SWI $SYS_exit TEXT runtime·mmap(SB),7,$0 diff --git a/src/pkg/syscall/asm_linux_arm.s b/src/pkg/syscall/asm_linux_arm.s index 50ee69d86..dc030c5ce 100644 --- a/src/pkg/syscall/asm_linux_arm.s +++ b/src/pkg/syscall/asm_linux_arm.s @@ -6,9 +6,6 @@ // System calls for arm, Linux // -#define SYS_BASE 0x00900000 -#define SYS_syscall (SYS_BASE+113); - // TODO(kaib): handle error returns // func Syscall(syscall uintptr, a1, a2, a3 uintptr) (r1, r2, err uintptr); @@ -19,7 +16,7 @@ TEXT syscall·Syscall(SB),7,$0 MOVW 8(SP), R0 MOVW 12(SP), R1 MOVW 16(SP), R2 - SWI $SYS_syscall + SWI $0 MOVW R0, 20(SP) // r1 MOVW R1, 24(SP) // r2 MOVW $0, R0 @@ -38,7 +35,7 @@ TEXT syscall·Syscall6(SB),7,$0 MOVW 20(SP), R3 MOVW 24(SP), R4 MOVW 28(SP), R5 - SWI $SYS_syscall + SWI $0 MOVW R0, 32(SP) // r1 MOVW R1, 36(SP) // r2 MOVW $0, R0 @@ -52,7 +49,7 @@ TEXT syscall·RawSyscall(SB),7,$0 MOVW 8(SP), R0 MOVW 12(SP), R1 MOVW 16(SP), R2 - SWI $SYS_syscall + SWI $0 MOVW R0, 20(SP) // r1 MOVW R1, 24(SP) // r2 MOVW $0, R0 diff --git a/src/pkg/syscall/zsysnum_linux_arm.go b/src/pkg/syscall/zsysnum_linux_arm.go index 48dc56ed1..0debe2398 100644 --- a/src/pkg/syscall/zsysnum_linux_arm.go +++ b/src/pkg/syscall/zsysnum_linux_arm.go @@ -3,9 +3,7 @@ package syscall const ( - SYS_SYSCALL_BASE = 0x900000; - // for thumb and eabi - //SYS_SYSCALL_BASE = 0; + SYS_SYSCALL_BASE = 0; SYS_RESTART_SYSCALL = (SYS_SYSCALL_BASE + 0); SYS_EXIT = (SYS_SYSCALL_BASE + 1); |