summaryrefslogtreecommitdiff
path: root/src/syscall/asm_plan9_amd64.s
diff options
context:
space:
mode:
authorRuss Cox <rsc@golang.org>2014-09-12 00:23:03 -0400
committerRuss Cox <rsc@golang.org>2014-09-12 00:23:03 -0400
commit9ea7b4e606b033d7c12c67fa2508f74aca2a8118 (patch)
tree9cb1117a680c35620ee11e003c070449beb086bc /src/syscall/asm_plan9_amd64.s
parent01cc50951b57fd695075fa8a7e53025cf6115da0 (diff)
downloadgo-9ea7b4e606b033d7c12c67fa2508f74aca2a8118.tar.gz
syscall: make func Syscall use pointer maps from Go prototypes
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://codereview.appspot.com/144730043
Diffstat (limited to 'src/syscall/asm_plan9_amd64.s')
-rw-r--r--src/syscall/asm_plan9_amd64.s4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/syscall/asm_plan9_amd64.s b/src/syscall/asm_plan9_amd64.s
index 22dc5f957..3e61318cd 100644
--- a/src/syscall/asm_plan9_amd64.s
+++ b/src/syscall/asm_plan9_amd64.s
@@ -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