@@ -7095,30 +7095,13 @@ func EmitArgInfo(f *ir.Func, abiInfo *abi.ABIParamResultInfo) *obj.LSym {
7095
7095
return t .IsStruct () || t .IsArray () || t .IsComplex () || t .IsInterface () || t .IsString () || t .IsSlice ()
7096
7096
}
7097
7097
7098
- // Populate the data.
7099
- // The data is a stream of bytes, which contains the offsets and sizes of the
7100
- // non-aggregate arguments or non-aggregate fields/elements of aggregate-typed
7101
- // arguments, along with special "operators". Specifically,
7102
- // - for each non-aggrgate arg/field/element, its offset from FP (1 byte) and
7103
- // size (1 byte)
7104
- // - special operators:
7105
- // - 0xff - end of sequence
7106
- // - 0xfe - print { (at the start of an aggregate-typed argument)
7107
- // - 0xfd - print } (at the end of an aggregate-typed argument)
7108
- // - 0xfc - print ... (more args/fields/elements)
7109
- // - 0xfb - print _ (offset too large)
7110
- // These constants need to be in sync with runtime.traceback.go:printArgs.
7111
- const (
7112
- _special = 0xf0 // above this are operators, below this are ordinary offsets
7113
- )
7114
-
7115
7098
wOff := 0
7116
7099
n := 0
7117
7100
writebyte := func (o uint8 ) { wOff = objw .Uint8 (x , wOff , o ) }
7118
7101
7119
7102
// Write one non-aggregate arg/field/element.
7120
7103
write1 := func (sz , offset int64 ) {
7121
- if offset >= _special {
7104
+ if offset >= rtabi . TraceArgsSpecial {
7122
7105
writebyte (rtabi .TraceArgsOffsetTooLarge )
7123
7106
} else {
7124
7107
writebyte (uint8 (offset ))
0 commit comments