]> Cypherpunks repositories - gostls13.git/commitdiff
proper syscall convention for arm
authorKai Backman <kaib@golang.org>
Sun, 25 Oct 2009 18:51:16 +0000 (11:51 -0700)
committerKai Backman <kaib@golang.org>
Sun, 25 Oct 2009 18:51:16 +0000 (11:51 -0700)
R=rsc
http://go/go-review/1015009

src/pkg/runtime/linux/arm/sys.s
src/pkg/syscall/asm_linux_arm.s
src/pkg/syscall/zsysnum_linux_arm.go

index 4eb38f1ce8e6d052846fb8eee75ede612bfa7f55..2d4595581545be35368a6afb75e2647eeb0c12a8 100644 (file)
@@ -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
index 50ee69d86dd7c5e385e19f103f1361925462790f..dc030c5cecece2da25a695e773a8e588c068cf94 100644 (file)
@@ -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
index 48dc56ed160f22b0eaff5afb2e8171ac0d7d5c90..0debe239866e78e800a73d2753b652532b7cbe00 100644 (file)
@@ -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);