summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKai Backman <kaib@golang.org>2009-10-25 11:51:16 -0700
committerKai Backman <kaib@golang.org>2009-10-25 11:51:16 -0700
commit2871bc5075cc2e761b36a5046a6b4cf72313e0f0 (patch)
tree12a7ebbc5ac44115d82a0b7b5ffbe06915ef81d1
parentf651e438829b4810f9a797a72295557a3c7d98ef (diff)
downloadgolang-2871bc5075cc2e761b36a5046a6b4cf72313e0f0.tar.gz
proper syscall convention for arm
R=rsc http://go/go-review/1015009
-rw-r--r--src/pkg/runtime/linux/arm/sys.s4
-rw-r--r--src/pkg/syscall/asm_linux_arm.s9
-rw-r--r--src/pkg/syscall/zsysnum_linux_arm.go4
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);