]> Cypherpunks repositories - gostls13.git/commitdiff
misc/cgo/test: add mips64x test case for issue9400
authorCherry Zhang <lunaria21@gmail.com>
Thu, 28 Apr 2016 02:18:38 +0000 (22:18 -0400)
committerMinux Ma <minux@golang.org>
Wed, 4 May 2016 16:41:36 +0000 (16:41 +0000)
Change-Id: If2b4abb6ff322c20e35de025298c8e5ab53edd42
Reviewed-on: https://go-review.googlesource.com/19808
Reviewed-by: Minux Ma <minux@golang.org>
misc/cgo/test/issue9400/asm_mips64x.s [new file with mode: 0644]

diff --git a/misc/cgo/test/issue9400/asm_mips64x.s b/misc/cgo/test/issue9400/asm_mips64x.s
new file mode 100644 (file)
index 0000000..63dc906
--- /dev/null
@@ -0,0 +1,33 @@
+// Copyright 2016 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build mips64 mips64le
+// +build !gccgo
+
+#include "textflag.h"
+
+#define SYNC   WORD $0xf
+
+TEXT ·RewindAndSetgid(SB),NOSPLIT|NOFRAME,$0-0
+       // Rewind stack pointer so anything that happens on the stack
+       // will clobber the test pattern created by the caller
+       ADDV    $(1024*8), R29
+
+       // Ask signaller to setgid
+       MOVW    $1, R1
+       SYNC
+       MOVW    R1, ·Baton(SB)
+       SYNC
+
+       // Wait for setgid completion
+loop:
+       SYNC
+       MOVW    ·Baton(SB), R1
+       OR      R2, R2, R2      // hint that we're in a spin loop
+       BNE     R1, loop
+       SYNC
+
+       // Restore stack
+       ADDV    $(-1024*8), R29
+       RET