]> Cypherpunks repositories - gostls13.git/commitdiff
syscall: make func Syscall use pointer maps from Go prototypes
authorRuss Cox <rsc@golang.org>
Fri, 12 Sep 2014 04:23:03 +0000 (00:23 -0400)
committerRuss Cox <rsc@golang.org>
Fri, 12 Sep 2014 04:23:03 +0000 (00:23 -0400)
Before, Syscall and friends were having their arguments
treated conservatively. Now they will use the Go prototype,
which will mean the arguments are not considered pointers
at all.

This is safe because of CL 139360044.

The fact that all these non-Solaris systems were using
conservative scanning of the Syscall arguments is why
the failure that prompted CL 139360044 was only
observed on Solaris, which does something completely different.
If we'd done this earlier, we'd have seen the Solaris
failure in more places.

LGTM=khr
R=khr
CC=golang-codereviews
https://golang.org/cl/144730043

20 files changed:
src/syscall/asm_darwin_386.s
src/syscall/asm_darwin_amd64.s
src/syscall/asm_dragonfly_386.s
src/syscall/asm_dragonfly_amd64.s
src/syscall/asm_freebsd_386.s
src/syscall/asm_freebsd_amd64.s
src/syscall/asm_freebsd_arm.s
src/syscall/asm_linux_386.s
src/syscall/asm_linux_amd64.s
src/syscall/asm_linux_arm.s
src/syscall/asm_nacl_386.s
src/syscall/asm_nacl_amd64p32.s
src/syscall/asm_nacl_arm.s
src/syscall/asm_netbsd_386.s
src/syscall/asm_netbsd_amd64.s
src/syscall/asm_netbsd_arm.s
src/syscall/asm_openbsd_386.s
src/syscall/asm_openbsd_amd64.s
src/syscall/asm_plan9_386.s
src/syscall/asm_plan9_amd64.s

index dfe94fb526a18d7ca4176ea7796e20717f4c3ad2..4d60a817eee5b52fa1ae971bce05d71eb7228e88 100644 (file)
@@ -16,6 +16,7 @@
 // Trap # in AX, args on stack above caller pc.
 
 TEXT   ·Syscall(SB),NOSPLIT,$0-28
+       GO_ARGS
        CALL    runtime·entersyscall(SB)
        MOVL    4(SP), AX       // syscall entry
        // slide args down on top of system call number
@@ -40,6 +41,7 @@ ok:
        RET
 
 TEXT   ·Syscall6(SB),NOSPLIT,$0-40
+       GO_ARGS
        CALL    runtime·entersyscall(SB)
        MOVL    4(SP), AX       // syscall entry
        // slide args down on top of system call number
@@ -67,6 +69,7 @@ ok6:
        RET
 
 TEXT   ·Syscall9(SB),NOSPLIT,$0-52
+       GO_ARGS
        CALL    runtime·entersyscall(SB)
        MOVL    4(SP), AX       // syscall entry
        // slide args down on top of system call number
@@ -97,6 +100,7 @@ ok9:
        RET
 
 TEXT ·RawSyscall(SB),NOSPLIT,$0-28
+       GO_ARGS
        MOVL    4(SP), AX       // syscall entry
        // slide args down on top of system call number
        LEAL            8(SP), SI
@@ -118,6 +122,7 @@ ok1:
        RET
 
 TEXT   ·RawSyscall6(SB),NOSPLIT,$0-40
+       GO_ARGS
        MOVL    4(SP), AX       // syscall entry
        // slide args down on top of system call number
        LEAL            8(SP), SI
index d6f1c96f5f32f13e7dd1710918040e80f840751c..a3b1bd5346c7c80a8c5228d7362242166f39a6a1 100644 (file)
@@ -6,6 +6,7 @@
 // so that go vet can check that they are correct.
 
 #include "textflag.h"
+#include "funcdata.h"
 
 //
 // System call support for AMD64, Darwin
@@ -16,6 +17,7 @@
 // Trap # in AX, args in DI SI DX, return in AX DX
 
 TEXT   ·Syscall(SB),NOSPLIT,$0-56
+       GO_ARGS
        CALL    runtime·entersyscall(SB)
        MOVQ    16(SP), DI
        MOVQ    24(SP), SI
@@ -40,6 +42,7 @@ ok:
        RET
 
 TEXT   ·Syscall6(SB),NOSPLIT,$0-80
+       GO_ARGS
        CALL    runtime·entersyscall(SB)
        MOVQ    16(SP), DI
        MOVQ    24(SP), SI
@@ -64,6 +67,7 @@ ok6:
        RET
 
 TEXT ·RawSyscall(SB),NOSPLIT,$0-56
+       GO_ARGS
        MOVQ    16(SP), DI
        MOVQ    24(SP), SI
        MOVQ    32(SP), DX
@@ -85,6 +89,7 @@ ok1:
        RET
 
 TEXT   ·RawSyscall6(SB),NOSPLIT,$0-80
+       GO_ARGS
        MOVQ    16(SP), DI
        MOVQ    24(SP), SI
        MOVQ    32(SP), DX
index 37d655fba913f56322ed2ae4b22faa32e6cbdb4d..59cb39e4479aa5166a177cbf15970d018a113ee1 100644 (file)
@@ -13,6 +13,7 @@
 // Trap # in AX, args on stack above caller pc.
 
 TEXT   ·Syscall(SB),NOSPLIT,$0-32
+       GO_ARGS
        CALL    runtime·entersyscall(SB)
        MOVL    4(SP), AX       // syscall entry
        // slide args down on top of system call number
@@ -37,6 +38,7 @@ ok:
        RET
 
 TEXT   ·Syscall6(SB),NOSPLIT,$0-44
+       GO_ARGS
        CALL    runtime·entersyscall(SB)
        MOVL    4(SP), AX       // syscall entry
        // slide args down on top of system call number
@@ -64,6 +66,7 @@ ok6:
        RET
 
 TEXT   ·Syscall9(SB),NOSPLIT,$0-56
+       GO_ARGS
        CALL    runtime·entersyscall(SB)
        MOVL    4(SP), AX       // syscall entry
        // slide args down on top of system call number
@@ -94,6 +97,7 @@ ok9:
        RET
 
 TEXT ·RawSyscall(SB),NOSPLIT,$0-32
+       GO_ARGS
        MOVL    4(SP), AX       // syscall entry
        // slide args down on top of system call number
        LEAL            8(SP), SI
@@ -115,6 +119,7 @@ ok1:
        RET
 
 TEXT   ·RawSyscall6(SB),NOSPLIT,$0-44
+       GO_ARGS
        MOVL    4(SP), AX       // syscall entry
        // slide args down on top of system call number
        LEAL            8(SP), SI
index c8434f96b737d009ef6ea788c1dff6a12f5eb4b7..764c7bda3795c390a8b5470787f8296060e5e654 100644 (file)
@@ -14,6 +14,7 @@
 // Trap # in AX, args in DI SI DX, return in AX DX
 
 TEXT   ·Syscall(SB),NOSPLIT,$0-64
+       GO_ARGS
        CALL    runtime·entersyscall(SB)
        MOVQ    16(SP), DI
        MOVQ    24(SP), SI
@@ -37,6 +38,7 @@ ok:
        RET
 
 TEXT   ·Syscall6(SB),NOSPLIT,$0-88
+       GO_ARGS
        CALL    runtime·entersyscall(SB)
        MOVQ    16(SP), DI
        MOVQ    24(SP), SI
@@ -60,6 +62,7 @@ ok6:
        RET
 
 TEXT   ·Syscall9(SB),NOSPLIT,$0-112
+       GO_ARGS
        CALL    runtime·entersyscall(SB)
        MOVQ    8(SP), AX
        MOVQ    16(SP), DI
@@ -93,6 +96,7 @@ ok9:
        RET
 
 TEXT ·RawSyscall(SB),NOSPLIT,$0-64
+       GO_ARGS
        MOVQ    16(SP), DI
        MOVQ    24(SP), SI
        MOVQ    32(SP), DX
@@ -113,6 +117,7 @@ ok1:
        RET
 
 TEXT   ·RawSyscall6(SB),NOSPLIT,$0-88
+       GO_ARGS
        MOVQ    16(SP), DI
        MOVQ    24(SP), SI
        MOVQ    32(SP), DX
index f50b5a09bfd328cb8e903c6915def04c68864aec..b711aa5ad6365b605e6993b949fbd85672cef755 100644 (file)
@@ -16,6 +16,7 @@
 // Trap # in AX, args on stack above caller pc.
 
 TEXT   ·Syscall(SB),NOSPLIT,$0-28
+       GO_ARGS
        CALL    runtime·entersyscall(SB)
        MOVL    4(SP), AX       // syscall entry
        // slide args down on top of system call number
@@ -40,6 +41,7 @@ ok:
        RET
 
 TEXT   ·Syscall6(SB),NOSPLIT,$0-40
+       GO_ARGS
        CALL    runtime·entersyscall(SB)
        MOVL    4(SP), AX       // syscall entry
        // slide args down on top of system call number
@@ -67,6 +69,7 @@ ok6:
        RET
 
 TEXT   ·Syscall9(SB),NOSPLIT,$0-52
+       GO_ARGS
        CALL    runtime·entersyscall(SB)
        MOVL    4(SP), AX       // syscall entry
        // slide args down on top of system call number
@@ -97,6 +100,7 @@ ok9:
        RET
 
 TEXT ·RawSyscall(SB),NOSPLIT,$0-28
+       GO_ARGS
        MOVL    4(SP), AX       // syscall entry
        // slide args down on top of system call number
        LEAL            8(SP), SI
@@ -118,6 +122,7 @@ ok1:
        RET
 
 TEXT   ·RawSyscall6(SB),NOSPLIT,$0-40
+       GO_ARGS
        MOVL    4(SP), AX       // syscall entry
        // slide args down on top of system call number
        LEAL            8(SP), SI
index 58cbfe1a993dddfc7f99af0af5816e776418ccef..95583b95c4c9ac9ac3295014185585e0378f1184 100644 (file)
@@ -22,6 +22,7 @@
 // Trap # in AX, args in DI SI DX, return in AX DX
 
 TEXT   ·Syscall(SB),NOSPLIT,$0-56
+       GO_ARGS
        CALL    runtime·entersyscall(SB)
        MOVQ    16(SP), DI
        MOVQ    24(SP), SI
@@ -45,6 +46,7 @@ ok:
        RET
 
 TEXT   ·Syscall6(SB),NOSPLIT,$0-80
+       GO_ARGS
        CALL    runtime·entersyscall(SB)
        MOVQ    16(SP), DI
        MOVQ    24(SP), SI
@@ -68,6 +70,7 @@ ok6:
        RET
 
 TEXT   ·Syscall9(SB),NOSPLIT,$0-104
+       GO_ARGS
        CALL    runtime·entersyscall(SB)
        MOVQ    8(SP), AX
        MOVQ    16(SP), DI
@@ -101,6 +104,7 @@ ok9:
        RET
 
 TEXT ·RawSyscall(SB),NOSPLIT,$0-56
+       GO_ARGS
        MOVQ    16(SP), DI
        MOVQ    24(SP), SI
        MOVQ    32(SP), DX
@@ -121,6 +125,7 @@ ok1:
        RET
 
 TEXT   ·RawSyscall6(SB),NOSPLIT,$0-80
+       GO_ARGS
        MOVQ    16(SP), DI
        MOVQ    24(SP), SI
        MOVQ    32(SP), DX
index 5eb40334b988529b7006d4f6f43214460ff24e57..5588eaaa43f80bcddff03261478fb92b26d59523 100644 (file)
@@ -13,6 +13,7 @@
 // func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2, errno uintptr)
 
 TEXT   ·Syscall(SB),NOSPLIT,$0-28
+       GO_ARGS
        BL runtime·entersyscall(SB)
        MOVW 0(FP), R7 // syscall number
        MOVW 4(FP), R0 // a1
@@ -35,6 +36,7 @@ error:
        RET
 
 TEXT   ·Syscall6(SB),NOSPLIT,$0-40
+       GO_ARGS
        BL runtime·entersyscall(SB)
        MOVW 0(FP), R7 // syscall number
        MOVW 4(FP), R0 // a1
@@ -61,6 +63,7 @@ error6:
        RET
 
 TEXT   ·Syscall9(SB),NOSPLIT,$0-52
+       GO_ARGS
        BL runtime·entersyscall(SB)
        MOVW 0(FP), R7 // syscall number
        MOVW 4(FP), R0 // a1
@@ -87,6 +90,7 @@ error9:
        RET
 
 TEXT   ·RawSyscall(SB),NOSPLIT,$0-28
+       GO_ARGS
        MOVW 0(FP), R7 // syscall number
        MOVW 4(FP), R0 // a1
        MOVW 8(FP), R1 // a2
@@ -106,6 +110,7 @@ errorr:
        RET
 
 TEXT   ·RawSyscall6(SB),NOSPLIT,$0-40
+       GO_ARGS
        MOVW 0(FP), R7 // syscall number
        MOVW 4(FP), R0 // a1
        MOVW 8(FP), R1 // a2
index 05cf89aa22416268375648bdda26f7ea67632131..fb3a3b9bd8c6f8bc7ce52001ee0f6d665f1c2fec 100644 (file)
@@ -15,6 +15,7 @@
 // Trap # in AX, args in BX CX DX SI DI, return in AX
 
 TEXT   ·Syscall(SB),NOSPLIT,$0-28
+       GO_ARGS
        CALL    runtime·entersyscall(SB)
        MOVL    4(SP), AX       // syscall entry
        MOVL    8(SP), BX
@@ -40,6 +41,7 @@ ok:
 
 // func Syscall6(trap uintptr, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2, err uintptr);
 TEXT   ·Syscall6(SB),NOSPLIT,$0-40
+       GO_ARGS
        CALL    runtime·entersyscall(SB)
        MOVL    4(SP), AX       // syscall entry
        MOVL    8(SP), BX
@@ -66,6 +68,7 @@ ok6:
 
 // func RawSyscall(trap uintptr, a1, a2, a3 uintptr) (r1, r2, err uintptr);
 TEXT ·RawSyscall(SB),NOSPLIT,$0-28
+       GO_ARGS
        MOVL    4(SP), AX       // syscall entry
        MOVL    8(SP), BX
        MOVL    12(SP), CX
@@ -88,6 +91,7 @@ ok1:
 
 // func RawSyscall6(trap uintptr, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2, err uintptr);
 TEXT   ·RawSyscall6(SB),NOSPLIT,$0-40
+       GO_ARGS
        MOVL    4(SP), AX       // syscall entry
        MOVL    8(SP), BX
        MOVL    12(SP), CX
index 514693283bd8b222b32a394ca40b2e68011f699f..fb6672624cc21992ef75ac74688460c79719c7e7 100644 (file)
@@ -17,6 +17,7 @@
 // would pass 4th arg in CX, not R10.
 
 TEXT   ·Syscall(SB),NOSPLIT,$0-56
+       GO_ARGS
        CALL    runtime·entersyscall(SB)
        MOVQ    16(SP), DI
        MOVQ    24(SP), SI
@@ -42,6 +43,7 @@ ok:
        RET
 
 TEXT ·Syscall6(SB),NOSPLIT,$0-80
+       GO_ARGS
        CALL    runtime·entersyscall(SB)
        MOVQ    16(SP), DI
        MOVQ    24(SP), SI
@@ -67,6 +69,7 @@ ok6:
        RET
 
 TEXT ·RawSyscall(SB),NOSPLIT,$0-56
+       GO_ARGS
        MOVQ    16(SP), DI
        MOVQ    24(SP), SI
        MOVQ    32(SP), DX
@@ -89,6 +92,7 @@ ok1:
        RET
 
 TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
+       GO_ARGS
        MOVQ    16(SP), DI
        MOVQ    24(SP), SI
        MOVQ    32(SP), DX
index 3be0a13e17571711ca2b43c6905e29985688be23..edb5b21a74d53a962076c7defe17f2a8cb6c8723 100644 (file)
@@ -13,6 +13,7 @@
 // func Syscall(syscall uintptr, a1, a2, a3 uintptr) (r1, r2, err uintptr);
 
 TEXT   ·Syscall(SB),NOSPLIT,$0-28
+       GO_ARGS
        BL              runtime·entersyscall(SB)
        MOVW    4(SP), R7
        MOVW    8(SP), R0
@@ -44,6 +45,7 @@ ok:
 // func Syscall6(trap uintptr, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2, err uintptr);
 // Actually Syscall5 but the rest of the code expects it to be named Syscall6.
 TEXT   ·Syscall6(SB),NOSPLIT,$0-40
+       GO_ARGS
        BL              runtime·entersyscall(SB)
        MOVW    4(SP), R7       // syscall entry
        MOVW    8(SP), R0
@@ -75,6 +77,7 @@ ok6:
 // func RawSyscall6(trap uintptr, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2, err uintptr);
 // Actually RawSyscall5 but the rest of the code expects it to be named RawSyscall6.
 TEXT   ·RawSyscall6(SB),NOSPLIT,$0-40
+       GO_ARGS
        MOVW    4(SP), R7       // syscall entry
        MOVW    8(SP), R0
        MOVW    12(SP), R1
@@ -134,6 +137,7 @@ okseek:
 
 // func RawSyscall(trap uintptr, a1, a2, a3 uintptr) (r1, r2, err uintptr);
 TEXT ·RawSyscall(SB),NOSPLIT,$0-28
+       GO_ARGS
        MOVW    4(SP), R7       // syscall entry
        MOVW    8(SP), R0
        MOVW    12(SP), R1
index 3c86decd39c977b71ad312f9dc8e114fb9a280c4..655248b37f4a017659a3a01e89b5eadd1bce0114 100644 (file)
@@ -16,6 +16,7 @@
        MOVL $(0x10000 + ((code)<<5)), AX; JMP AX
 
 TEXT syscall·Syscall(SB),NOSPLIT,$12-28
+       GO_ARGS
        CALL    runtime·entersyscall(SB)
        MOVL    trap+0(FP), AX
        MOVL    a1+4(FP), BX
index b91e09bd6df39bcce22d83a4c118d166aafad233..33f8220134a88a0fcacb98a7a42c18965eb3cbd0 100644 (file)
@@ -16,6 +16,7 @@
        MOVL $(0x10000 + ((code)<<5)), AX; JMP AX
 
 TEXT syscall·Syscall(SB),NOSPLIT,$0-28
+       GO_ARGS
        CALL    runtime·entersyscall(SB)
        MOVL    trap+0(FP), AX
        MOVL    a1+4(FP), DI
index cc4b9cd2d657fed1a8d371aa6db4fe6315f0a5f9..536d751b5075a2c14a94a45ec16286bb8797a5ad 100644 (file)
@@ -16,6 +16,7 @@
        MOVW $(0x10000 + ((code)<<5)), R8; B (R8)
 
 TEXT syscall·Syscall(SB),NOSPLIT,$0-28
+       GO_ARGS
        BL      runtime·entersyscall(SB)
        MOVW    trap+0(FP), R8
        MOVW    a1+4(FP), R0
index c58263254a2cbb46998ecd0c464763ba9aa4bc4a..9dc6a9242ad7f83d313dee53fe7301c8e48ca88d 100644 (file)
@@ -16,6 +16,7 @@
 // Trap # in AX, args on stack above caller pc.
 
 TEXT   ·Syscall(SB),NOSPLIT,$0-28
+       GO_ARGS
        CALL    runtime·entersyscall(SB)
        MOVL    4(SP), AX       // syscall entry
        // slide args down on top of system call number
@@ -40,6 +41,7 @@ ok:
        RET
 
 TEXT   ·Syscall6(SB),NOSPLIT,$0-40
+       GO_ARGS
        CALL    runtime·entersyscall(SB)
        MOVL    4(SP), AX       // syscall entry
        // slide args down on top of system call number
@@ -67,6 +69,7 @@ ok6:
        RET
 
 TEXT   ·Syscall9(SB),NOSPLIT,$0-52
+       GO_ARGS
        CALL    runtime·entersyscall(SB)
        MOVL    4(SP), AX       // syscall entry
        // slide args down on top of system call number
@@ -97,6 +100,7 @@ ok9:
        RET
 
 TEXT ·RawSyscall(SB),NOSPLIT,$0-28
+       GO_ARGS
        MOVL    4(SP), AX       // syscall entry
        // slide args down on top of system call number
        LEAL            8(SP), SI
@@ -118,6 +122,7 @@ ok1:
        RET
 
 TEXT   ·RawSyscall6(SB),NOSPLIT,$0-40
+       GO_ARGS
        MOVL    4(SP), AX       // syscall entry
        // slide args down on top of system call number
        LEAL            8(SP), SI
index 8285382ce2463aaafdbc5273a420b3053b461571..d6bb1dd0917200a9d125daa294801072377ce208 100644 (file)
@@ -17,6 +17,7 @@
 // Trap # in AX, args in DI SI DX, return in AX DX
 
 TEXT   ·Syscall(SB),NOSPLIT,$0-56
+       GO_ARGS
        CALL    runtime·entersyscall(SB)
        MOVQ    8(SP), AX       // syscall entry
        MOVQ    16(SP), DI
@@ -40,6 +41,7 @@ ok:
        RET
 
 TEXT   ·Syscall6(SB),NOSPLIT,$0-80
+       GO_ARGS
        CALL    runtime·entersyscall(SB)
        MOVQ    8(SP), AX       // syscall entry
        MOVQ    16(SP), DI
@@ -63,6 +65,7 @@ ok6:
        RET
 
 TEXT   ·Syscall9(SB),NOSPLIT,$0-104
+       GO_ARGS
        CALL    runtime·entersyscall(SB)
        MOVQ    8(SP), AX       // syscall entry
        MOVQ    16(SP), DI
@@ -95,6 +98,7 @@ ok9:
        RET
 
 TEXT   ·RawSyscall(SB),NOSPLIT,$0-56
+       GO_ARGS
        MOVQ    16(SP), DI
        MOVQ    24(SP), SI
        MOVQ    32(SP), DX
@@ -115,6 +119,7 @@ ok1:
        RET
 
 TEXT   ·RawSyscall6(SB),NOSPLIT,$0-80
+       GO_ARGS
        MOVQ    16(SP), DI
        MOVQ    24(SP), SI
        MOVQ    32(SP), DX
index b06118049174cbbe065d03dd771ab3019ccdec1d..357e28d94748e075c4fc7ac16c7c5818b2004c0b 100644 (file)
@@ -13,6 +13,7 @@
 // func Syscall9(trap int32, a1, a2, a3, a4, a5, a6, a7, a8, a9 int64) (r1, r2, err int32)
 
 TEXT   ·Syscall(SB),NOSPLIT,$0-28
+       GO_ARGS
        BL runtime·entersyscall(SB)
        MOVW 0(FP), R0 // sigcall num
        MOVW 4(FP), R1 // a1
@@ -35,6 +36,7 @@ error:
        RET
 
 TEXT   ·Syscall6(SB),NOSPLIT,$0-40
+       GO_ARGS
        BL runtime·entersyscall(SB)
        MOVW 0(FP), R0 // sigcall num
        MOVW 4(FP), R1 // a1
@@ -60,6 +62,7 @@ error6:
        RET
 
 TEXT   ·Syscall9(SB),NOSPLIT,$0-52
+       GO_ARGS
        BL runtime·entersyscall(SB)
        MOVW 0(FP), R0 // sigcall num
        MOVW 4(FP), R1 // a1
@@ -85,6 +88,7 @@ error9:
        RET
 
 TEXT   ·RawSyscall(SB),NOSPLIT,$0-28
+       GO_ARGS
        MOVW 0(FP), R0 // sigcall num
        MOVW 4(FP), R1 // a1
        MOVW 8(FP), R2 // a2
@@ -104,6 +108,7 @@ errorr:
        RET
 
 TEXT   ·RawSyscall6(SB),NOSPLIT,$0-40
+       GO_ARGS
        MOVW 0(FP), R0 // sigcall num
        MOVW 4(FP), R1 // a1
        MOVW 8(FP), R2 // a2
index 17fbb65c80965e1b8c9d135321d7467b2d360cd0..6c51f197ee222692cb038c4c58805aa59c9a3dd3 100644 (file)
@@ -16,6 +16,7 @@
 // Trap # in AX, args on stack above caller pc.
 
 TEXT   ·Syscall(SB),NOSPLIT,$0-28
+       GO_ARGS
        CALL    runtime·entersyscall(SB)
        MOVL    4(SP), AX       // syscall entry
        // slide args down on top of system call number
@@ -40,6 +41,7 @@ ok:
        RET
 
 TEXT   ·Syscall6(SB),NOSPLIT,$0-40
+       GO_ARGS
        CALL    runtime·entersyscall(SB)
        MOVL    4(SP), AX       // syscall entry
        // slide args down on top of system call number
@@ -67,6 +69,7 @@ ok6:
        RET
 
 TEXT   ·Syscall9(SB),NOSPLIT,$0-52
+       GO_ARGS
        CALL    runtime·entersyscall(SB)
        MOVL    4(SP), AX       // syscall entry
        // slide args down on top of system call number
@@ -97,6 +100,7 @@ ok9:
        RET
 
 TEXT ·RawSyscall(SB),NOSPLIT,$0-28
+       GO_ARGS
        MOVL    4(SP), AX       // syscall entry
        // slide args down on top of system call number
        LEAL            8(SP), SI
@@ -118,6 +122,7 @@ ok1:
        RET
 
 TEXT   ·RawSyscall6(SB),NOSPLIT,$0-40
+       GO_ARGS
        MOVL    4(SP), AX       // syscall entry
        // slide args down on top of system call number
        LEAL            8(SP), SI
index fe61482cd5ce82c30d0cbbed989707b27c17038a..4ba5844e49b091a323a0515ab3003fb844896904 100644 (file)
@@ -17,6 +17,7 @@
 // Trap # in AX, args in DI SI DX, return in AX DX
 
 TEXT   ·Syscall(SB),NOSPLIT,$0-56
+       GO_ARGS
        CALL    runtime·entersyscall(SB)
        MOVQ    8(SP), AX       // syscall entry
        MOVQ    16(SP), DI
@@ -40,6 +41,7 @@ ok:
        RET
 
 TEXT   ·Syscall6(SB),NOSPLIT,$0-80
+       GO_ARGS
        CALL    runtime·entersyscall(SB)
        MOVQ    8(SP), AX       // syscall entry
        MOVQ    16(SP), DI
@@ -63,6 +65,7 @@ ok6:
        RET
 
 TEXT   ·Syscall9(SB),NOSPLIT,$0-104
+       GO_ARGS
        CALL    runtime·entersyscall(SB)
        MOVQ    8(SP), AX       // syscall entry
        MOVQ    16(SP), DI
@@ -95,6 +98,7 @@ ok9:
        RET
 
 TEXT   ·RawSyscall(SB),NOSPLIT,$0-56
+       GO_ARGS
        MOVQ    16(SP), DI
        MOVQ    24(SP), SI
        MOVQ    32(SP), DX
@@ -115,6 +119,7 @@ ok1:
        RET
 
 TEXT   ·RawSyscall6(SB),NOSPLIT,$0-80
+       GO_ARGS
        MOVQ    16(SP), DI
        MOVQ    24(SP), SI
        MOVQ    32(SP), DX
index aaa8b9a69213dc1f422bc99a269004c3490c198c..30726b4d005e98451adc57666dad6d62d3fe21b9 100644 (file)
@@ -18,6 +18,7 @@
 
 // Trap # in AX, args on stack above caller pc.
 TEXT   ·Syscall(SB),NOSPLIT,$0-32
+       GO_ARGS
        CALL    runtime·entersyscall(SB)
        MOVL    4(SP), AX       // syscall entry
        // slide args down on top of system call number
@@ -53,6 +54,7 @@ copyresult3:
        RET
 
 TEXT   ·Syscall6(SB),NOSPLIT,$0-44
+       GO_ARGS
        CALL    runtime·entersyscall(SB)
        MOVL    4(SP), AX       // syscall entry
        // slide args down on top of system call number
@@ -91,6 +93,7 @@ copyresult4:
        RET
 
 TEXT ·RawSyscall(SB),NOSPLIT,$0-28
+       GO_ARGS
        MOVL    4(SP), AX       // syscall entry
        // slide args down on top of system call number
        LEAL            8(SP), SI
@@ -106,6 +109,7 @@ TEXT ·RawSyscall(SB),NOSPLIT,$0-28
        RET
 
 TEXT   ·RawSyscall6(SB),NOSPLIT,$0-40
+       GO_ARGS
        MOVL    4(SP), AX       // syscall entry
        // slide args down on top of system call number
        LEAL            8(SP), SI
index 22dc5f9576f62cf9dfc1823c4749a31597348d45..3e61318cd539ae51c8735a5bf8cfd8dfb42c651a 100644 (file)
@@ -17,6 +17,7 @@
 //func RawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2, err uintptr)
 
 TEXT   ·Syscall(SB),NOSPLIT,$0-64
+       GO_ARGS
        CALL    runtime·entersyscall(SB)
        MOVQ    8(SP), BP       // syscall entry
        // slide args down on top of system call number
@@ -52,6 +53,7 @@ copyresult3:
        RET
 
 TEXT   ·Syscall6(SB),NOSPLIT,$0-88
+       GO_ARGS
        CALL    runtime·entersyscall(SB)
        MOVQ    8(SP), BP       // syscall entry
        // slide args down on top of system call number
@@ -90,6 +92,7 @@ copyresult4:
        RET
 
 TEXT ·RawSyscall(SB),NOSPLIT,$0-56
+       GO_ARGS
        MOVQ    8(SP), BP       // syscall entry
        // slide args down on top of system call number
        LEAQ            16(SP), SI
@@ -105,6 +108,7 @@ TEXT ·RawSyscall(SB),NOSPLIT,$0-56
        RET
 
 TEXT   ·RawSyscall6(SB),NOSPLIT,$0-80
+       GO_ARGS
        MOVQ    8(SP), BP       // syscall entry
        // slide args down on top of system call number
        LEAQ            16(SP), SI