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:
parent
f98f3b0c30
commit
565ad134c9
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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).
|
||||||
|
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user