podman
54 строки · 1.8 Кб
1// Copyright 2013 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5package objabi6
7// This file defines the IDs for PCDATA and FUNCDATA instructions
8// in Go binaries.
9//
10// These must agree with ../../../runtime/funcdata.h and
11// ../../../runtime/symtab.go.
12
13const (14PCDATA_RegMapIndex = 0 // if !go115ReduceLiveness15PCDATA_UnsafePoint = 0 // if go115ReduceLiveness16PCDATA_StackMapIndex = 117PCDATA_InlTreeIndex = 218
19FUNCDATA_ArgsPointerMaps = 020FUNCDATA_LocalsPointerMaps = 121FUNCDATA_RegPointerMaps = 2 // if !go115ReduceLiveness22FUNCDATA_StackObjects = 323FUNCDATA_InlTree = 424FUNCDATA_OpenCodedDeferInfo = 525
26// ArgsSizeUnknown is set in Func.argsize to mark all functions27// whose argument size is unknown (C vararg functions, and28// assembly code without an explicit specification).29// This value is generated by the compiler, assembler, or linker.30ArgsSizeUnknown = -0x8000000031)
32
33// Special PCDATA values.
34const (35// PCDATA_RegMapIndex values.36//37// Only if !go115ReduceLiveness.38PCDATA_RegMapUnsafe = PCDATA_UnsafePointUnsafe // Unsafe for async preemption39
40// PCDATA_UnsafePoint values.41PCDATA_UnsafePointSafe = -1 // Safe for async preemption42PCDATA_UnsafePointUnsafe = -2 // Unsafe for async preemption43
44// PCDATA_Restart1(2) apply on a sequence of instructions, within45// which if an async preemption happens, we should back off the PC46// to the start of the sequence when resuming.47// We need two so we can distinguish the start/end of the sequence48// in case that two sequences are next to each other.49PCDATA_Restart1 = -350PCDATA_Restart2 = -451
52// Like PCDATA_Restart1, but back to function entry if async preempted.53PCDATA_RestartAtEntry = -554)
55