runtime: preserve DX during racefuncenter

R=golang-dev, dvyukov
CC=golang-dev
https://golang.org/cl/7382049
This commit is contained in:
Russ Cox 2013-02-22 13:06:43 -05:00
parent 71c37e1c88
commit ec892be1af
2 changed files with 13 additions and 2 deletions

View File

@ -87,10 +87,10 @@ runtime·raceread(uintptr addr)
}
}
// Called from instrumented code.
// Called from runtime·racefuncenter (assembly).
#pragma textflag 7
void
runtime·racefuncenter(uintptr pc)
runtime·racefuncenter1(uintptr pc)
{
// If the caller PC is lessstack, use slower runtime·callers
// to walk across the stack split to find the real caller.

View File

@ -0,0 +1,11 @@
// Copyright 2013 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 race
TEXT runtime·racefuncenter(SB),7,$0
PUSHQ DX // save function entry context (for closures)
CALL runtime·racefuncenter1(SB)
POPQ DX
RET