// Copyright 2014 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 amd64 amd64p32 | |
// +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 | |
ADDQ $(1024 * 8), SP | |
// Ask signaller to setgid | |
MOVL $1, ·Baton(SB) | |
// Wait for setgid completion | |
loop: | |
PAUSE | |
MOVL ·Baton(SB), AX | |
CMPL AX, $0 | |
JNE loop | |
// Restore stack | |
SUBQ $(1024 * 8), SP | |
RET |