1
0
mirror of https://github.com/golang/go synced 2024-11-23 12:20:12 -07:00

runtime: make PCDATA_RegMapUnsafe more clear and remove magic number

Change-Id: Ibf3ee755c3fbec03a9396840dc92ce148c49d9f7
GitHub-Last-Rev: 945d8aaa13
GitHub-Pull-Request: golang/go#41262
Reviewed-on: https://go-review.googlesource.com/c/go/+/253377
Reviewed-by: Austin Clements <austin@google.com>
Run-TryBot: Austin Clements <austin@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
This commit is contained in:
chainhelen 2020-09-08 03:36:19 +00:00 committed by Austin Clements
parent f98f3b0c30
commit 565ad134c9
4 changed files with 6 additions and 3 deletions

View File

@ -35,7 +35,7 @@ const (
// PCDATA_RegMapIndex values. // PCDATA_RegMapIndex values.
// //
// Only if !go115ReduceLiveness. // Only if !go115ReduceLiveness.
PCDATA_RegMapUnsafe = -2 // Unsafe for async preemption PCDATA_RegMapUnsafe = PCDATA_UnsafePointUnsafe // Unsafe for async preemption
// PCDATA_UnsafePoint values. // PCDATA_UnsafePoint values.
PCDATA_UnsafePointSafe = -1 // Safe for async preemption PCDATA_UnsafePointSafe = -1 // Safe for async preemption

View File

@ -87,7 +87,7 @@ func debugCallCheck(pc uintptr) string {
pcdata = 0 // in prologue pcdata = 0 // in prologue
} }
stkmap := (*stackmap)(funcdata(f, _FUNCDATA_RegPointerMaps)) stkmap := (*stackmap)(funcdata(f, _FUNCDATA_RegPointerMaps))
if pcdata == -2 || stkmap == nil { if pcdata == _PCDATA_RegMapUnsafe || stkmap == nil {
// Not at a safe point. // Not at a safe point.
ret = debugCallUnsafePoint ret = debugCallUnsafePoint
return return

View File

@ -406,7 +406,7 @@ func isAsyncSafePoint(gp *g, pc, sp, lr uintptr) (bool, uintptr) {
var startpc uintptr var startpc uintptr
if !go115ReduceLiveness { if !go115ReduceLiveness {
smi := pcdatavalue(f, _PCDATA_RegMapIndex, pc, nil) smi := pcdatavalue(f, _PCDATA_RegMapIndex, pc, nil)
if smi == -2 { if smi == _PCDATA_RegMapUnsafe {
// Unsafe-point marked by compiler. This includes // Unsafe-point marked by compiler. This includes
// atomic sequences (e.g., write barrier) and nosplit // atomic sequences (e.g., write barrier) and nosplit
// functions (except at calls). // functions (except at calls).

View File

@ -284,6 +284,9 @@ const (
) )
const ( const (
// Only if !go115ReduceLiveness.
_PCDATA_RegMapUnsafe = _PCDATA_UnsafePointUnsafe // Unsafe for async preemption
// PCDATA_UnsafePoint values. // PCDATA_UnsafePoint values.
_PCDATA_UnsafePointSafe = -1 // Safe for async preemption _PCDATA_UnsafePointSafe = -1 // Safe for async preemption
_PCDATA_UnsafePointUnsafe = -2 // Unsafe for async preemption _PCDATA_UnsafePointUnsafe = -2 // Unsafe for async preemption