]> Cypherpunks repositories - gostls13.git/commitdiff
misc/cgo/test: add RewindAndSetgid implementation for s390x
authorMichael Munday <munday@ca.ibm.com>
Mon, 21 Mar 2016 02:00:06 +0000 (22:00 -0400)
committerBrad Fitzpatrick <bradfitz@golang.org>
Tue, 22 Mar 2016 04:34:24 +0000 (04:34 +0000)
Required to pass the issue9400 test.

Change-Id: I595223c403b12faade54e2e46510f8537150af39
Reviewed-on: https://go-review.googlesource.com/20940
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

misc/cgo/test/issue9400/asm_s390x.s [new file with mode: 0644]

diff --git a/misc/cgo/test/issue9400/asm_s390x.s b/misc/cgo/test/issue9400/asm_s390x.s
new file mode 100644 (file)
index 0000000..fc9ad72
--- /dev/null
@@ -0,0 +1,26 @@
+// 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 !gccgo
+
+#include "textflag.h"
+
+TEXT ·RewindAndSetgid(SB),NOSPLIT,$0-0
+       // Rewind stack pointer so anything that happens on the stack
+       // will clobber the test pattern created by the caller
+       ADD     $(1024 * 8), R15
+
+       // Ask signaller to setgid
+       MOVD    $·Baton(SB), R5
+       MOVW    $1, 0(R5)
+
+       // Wait for setgid completion
+loop:
+       SYNC
+       MOVW    ·Baton(SB), R3
+       CMPBNE  R3, $0, loop
+
+       // Restore stack
+       SUB     $(1024 * 8), R15
+       RET