Skip to content

Commit 7843ca8

Browse files
aclementsgopherbot
authored andcommitted
internal/abi, runtime, cmd: merge PCDATA_* and FUNCDATA_* consts into internal/abi
We also rename the constants related to unsafe-points: currently, they follow the same naming scheme as the PCDATA table indexes, but are not PCDATA table indexes. For #59670. Change-Id: I06529fecfae535be5fe7d9ac56c886b9106c74fd Reviewed-on: https://go-review.googlesource.com/c/go/+/485497 Run-TryBot: Austin Clements <[email protected]> Reviewed-by: David Chase <[email protected]> TryBot-Result: Gopher Robot <[email protected]> Auto-Submit: Austin Clements <[email protected]> Reviewed-by: Cherry Mui <[email protected]>
1 parent 2668a19 commit 7843ca8

File tree

21 files changed

+120
-162
lines changed

21 files changed

+120
-162
lines changed

src/cmd/asm/internal/asm/asm.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ package asm
66

77
import (
88
"fmt"
9+
"internal/abi"
910
"strconv"
1011
"strings"
1112
"text/scanner"
@@ -16,7 +17,6 @@ import (
1617
"cmd/internal/obj"
1718
"cmd/internal/obj/ppc64"
1819
"cmd/internal/obj/x86"
19-
"cmd/internal/objabi"
2020
"cmd/internal/sys"
2121
)
2222

@@ -169,7 +169,7 @@ func (p *Parser) asmText(operands [][]lex.Token) {
169169
frameSize = -frameSize
170170
}
171171
op = op[1:]
172-
argSize := int64(objabi.ArgsSizeUnknown)
172+
argSize := int64(abi.ArgsSizeUnknown)
173173
if len(op) > 0 {
174174
// There is an argument size. It must be a minus sign followed by a non-negative integer literal.
175175
if len(op) != 2 || op[0].ScanToken != '-' || op[1].ScanToken != scanner.Int {

src/cmd/compile/internal/liveness/arg.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,14 @@ package liveness
66

77
import (
88
"fmt"
9+
"internal/abi"
910

1011
"cmd/compile/internal/base"
1112
"cmd/compile/internal/bitvec"
1213
"cmd/compile/internal/ir"
1314
"cmd/compile/internal/objw"
1415
"cmd/compile/internal/ssa"
1516
"cmd/internal/obj"
16-
"cmd/internal/objabi"
1717
)
1818

1919
// Argument liveness tracking.
@@ -221,7 +221,7 @@ func ArgLiveness(fn *ir.Func, f *ssa.Func, pp *objw.Progs) (blockIdx, valueIdx m
221221
//lv.print()
222222

223223
p := pp.Prog(obj.AFUNCDATA)
224-
p.From.SetConst(objabi.FUNCDATA_ArgLiveInfo)
224+
p.From.SetConst(abi.FUNCDATA_ArgLiveInfo)
225225
p.To.Type = obj.TYPE_MEM
226226
p.To.Name = obj.NAME_EXTERN
227227
p.To.Sym = lsym

src/cmd/compile/internal/liveness/plive.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,9 @@ import (
3131
"cmd/compile/internal/types"
3232
"cmd/internal/notsha256"
3333
"cmd/internal/obj"
34-
"cmd/internal/objabi"
3534
"cmd/internal/src"
35+
36+
rtabi "internal/abi"
3637
)
3738

3839
// OpVarDef is an annotation for the liveness analysis, marking a place
@@ -1361,20 +1362,20 @@ func Compute(curfn *ir.Func, f *ssa.Func, stkptrsize int64, pp *objw.Progs) (Map
13611362
fninfo.GCArgs, fninfo.GCLocals = lv.emit()
13621363

13631364
p := pp.Prog(obj.AFUNCDATA)
1364-
p.From.SetConst(objabi.FUNCDATA_ArgsPointerMaps)
1365+
p.From.SetConst(rtabi.FUNCDATA_ArgsPointerMaps)
13651366
p.To.Type = obj.TYPE_MEM
13661367
p.To.Name = obj.NAME_EXTERN
13671368
p.To.Sym = fninfo.GCArgs
13681369

13691370
p = pp.Prog(obj.AFUNCDATA)
1370-
p.From.SetConst(objabi.FUNCDATA_LocalsPointerMaps)
1371+
p.From.SetConst(rtabi.FUNCDATA_LocalsPointerMaps)
13711372
p.To.Type = obj.TYPE_MEM
13721373
p.To.Name = obj.NAME_EXTERN
13731374
p.To.Sym = fninfo.GCLocals
13741375

13751376
if x := lv.emitStackObjects(); x != nil {
13761377
p := pp.Prog(obj.AFUNCDATA)
1377-
p.From.SetConst(objabi.FUNCDATA_StackObjects)
1378+
p.From.SetConst(rtabi.FUNCDATA_StackObjects)
13781379
p.To.Type = obj.TYPE_MEM
13791380
p.To.Name = obj.NAME_EXTERN
13801381
p.To.Sym = x

src/cmd/compile/internal/objw/prog.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,8 @@ import (
3434
"cmd/compile/internal/base"
3535
"cmd/compile/internal/ir"
3636
"cmd/internal/obj"
37-
"cmd/internal/objabi"
3837
"cmd/internal/src"
38+
"internal/abi"
3939
)
4040

4141
var sharedProgArray = new([10000]obj.Prog) // *T instead of T to work around issue 19839
@@ -144,18 +144,18 @@ func (pp *Progs) Prog(as obj.As) *obj.Prog {
144144
idx := pp.NextLive.StackMapIndex
145145
pp.PrevLive.StackMapIndex = idx
146146
p := pp.Prog(obj.APCDATA)
147-
p.From.SetConst(objabi.PCDATA_StackMapIndex)
147+
p.From.SetConst(abi.PCDATA_StackMapIndex)
148148
p.To.SetConst(int64(idx))
149149
}
150150
if pp.NextLive.IsUnsafePoint != pp.PrevLive.IsUnsafePoint {
151151
// Emit unsafe-point marker.
152152
pp.PrevLive.IsUnsafePoint = pp.NextLive.IsUnsafePoint
153153
p := pp.Prog(obj.APCDATA)
154-
p.From.SetConst(objabi.PCDATA_UnsafePoint)
154+
p.From.SetConst(abi.PCDATA_UnsafePoint)
155155
if pp.NextLive.IsUnsafePoint {
156-
p.To.SetConst(objabi.PCDATA_UnsafePointUnsafe)
156+
p.To.SetConst(abi.UnsafePointUnsafe)
157157
} else {
158-
p.To.SetConst(objabi.PCDATA_UnsafePointSafe)
158+
p.To.SetConst(abi.UnsafePointSafe)
159159
}
160160
}
161161

src/cmd/compile/internal/ssagen/ssa.go

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,10 @@ import (
2727
"cmd/compile/internal/typecheck"
2828
"cmd/compile/internal/types"
2929
"cmd/internal/obj"
30-
"cmd/internal/objabi"
3130
"cmd/internal/src"
3231
"cmd/internal/sys"
32+
33+
rtabi "internal/abi"
3334
)
3435

3536
var ssaConfig *ssa.Config
@@ -6726,7 +6727,7 @@ func emitArgInfo(e *ssafn, f *ssa.Func, pp *objw.Progs) {
67266727

67276728
// Emit a funcdata pointing at the arg info data.
67286729
p := pp.Prog(obj.AFUNCDATA)
6729-
p.From.SetConst(objabi.FUNCDATA_ArgInfo)
6730+
p.From.SetConst(rtabi.FUNCDATA_ArgInfo)
67306731
p.To.Type = obj.TYPE_MEM
67316732
p.To.Name = obj.NAME_EXTERN
67326733
p.To.Sym = x
@@ -6893,7 +6894,7 @@ func emitWrappedFuncInfo(e *ssafn, pp *objw.Progs) {
68936894

68946895
// Emit a funcdata pointing at the wrap info data.
68956896
p := pp.Prog(obj.AFUNCDATA)
6896-
p.From.SetConst(objabi.FUNCDATA_WrapInfo)
6897+
p.From.SetConst(rtabi.FUNCDATA_WrapInfo)
68976898
p.To.Type = obj.TYPE_MEM
68986899
p.To.Name = obj.NAME_EXTERN
68996900
p.To.Sym = x
@@ -6915,7 +6916,7 @@ func genssa(f *ssa.Func, pp *objw.Progs) {
69156916
// This function uses open-coded defers -- write out the funcdata
69166917
// info that we computed at the end of genssa.
69176918
p := pp.Prog(obj.AFUNCDATA)
6918-
p.From.SetConst(objabi.FUNCDATA_OpenCodedDeferInfo)
6919+
p.From.SetConst(rtabi.FUNCDATA_OpenCodedDeferInfo)
69196920
p.To.Type = obj.TYPE_MEM
69206921
p.To.Name = obj.NAME_EXTERN
69216922
p.To.Sym = openDeferInfo
@@ -6987,7 +6988,7 @@ func genssa(f *ssa.Func, pp *objw.Progs) {
69876988
if idx, ok := argLiveBlockMap[b.ID]; ok && idx != argLiveIdx {
69886989
argLiveIdx = idx
69896990
p := s.pp.Prog(obj.APCDATA)
6990-
p.From.SetConst(objabi.PCDATA_ArgLiveIndex)
6991+
p.From.SetConst(rtabi.PCDATA_ArgLiveIndex)
69916992
p.To.SetConst(int64(idx))
69926993
}
69936994

@@ -7051,7 +7052,7 @@ func genssa(f *ssa.Func, pp *objw.Progs) {
70517052
if idx, ok := argLiveValueMap[v.ID]; ok && idx != argLiveIdx {
70527053
argLiveIdx = idx
70537054
p := s.pp.Prog(obj.APCDATA)
7054-
p.From.SetConst(objabi.PCDATA_ArgLiveIndex)
7055+
p.From.SetConst(rtabi.PCDATA_ArgLiveIndex)
70557056
p.To.SetConst(int64(idx))
70567057
}
70577058

src/cmd/dist/buildtool.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -307,7 +307,7 @@ func bootstrapFixImports(srcFile string) string {
307307
continue
308308
}
309309
if strings.HasPrefix(line, `import "`) || strings.HasPrefix(line, `import . "`) ||
310-
inBlock && (strings.HasPrefix(line, "\t\"") || strings.HasPrefix(line, "\t. \"") || strings.HasPrefix(line, "\texec \"")) {
310+
inBlock && (strings.HasPrefix(line, "\t\"") || strings.HasPrefix(line, "\t. \"") || strings.HasPrefix(line, "\texec \"") || strings.HasPrefix(line, "\trtabi \"")) {
311311
line = strings.Replace(line, `"cmd/`, `"bootstrap/cmd/`, -1)
312312
for _, dir := range bootstrapDirs {
313313
if strings.HasPrefix(dir, "cmd/") {

src/cmd/internal/obj/plist.go

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -58,12 +58,12 @@ func Flushplist(ctxt *Link, plist *Plist, newprog ProgAlloc, myimportpath string
5858
}
5959
switch p.To.Sym.Name {
6060
case "go_args_stackmap":
61-
if p.From.Type != TYPE_CONST || p.From.Offset != objabi.FUNCDATA_ArgsPointerMaps {
61+
if p.From.Type != TYPE_CONST || p.From.Offset != abi.FUNCDATA_ArgsPointerMaps {
6262
ctxt.Diag("%s: FUNCDATA use of go_args_stackmap(SB) without FUNCDATA_ArgsPointerMaps", p.Pos)
6363
}
6464
p.To.Sym = ctxt.LookupDerived(curtext, curtext.Name+".args_stackmap")
6565
case "no_pointers_stackmap":
66-
if p.From.Type != TYPE_CONST || p.From.Offset != objabi.FUNCDATA_LocalsPointerMaps {
66+
if p.From.Type != TYPE_CONST || p.From.Offset != abi.FUNCDATA_LocalsPointerMaps {
6767
ctxt.Diag("%s: FUNCDATA use of no_pointers_stackmap(SB) without FUNCDATA_LocalsPointerMaps", p.Pos)
6868
}
6969
// funcdata for functions with no local variables in frame.
@@ -110,10 +110,10 @@ func Flushplist(ctxt *Link, plist *Plist, newprog ProgAlloc, myimportpath string
110110
foundArgMap, foundArgInfo := false, false
111111
for p := s.Func().Text; p != nil; p = p.Link {
112112
if p.As == AFUNCDATA && p.From.Type == TYPE_CONST {
113-
if p.From.Offset == objabi.FUNCDATA_ArgsPointerMaps {
113+
if p.From.Offset == abi.FUNCDATA_ArgsPointerMaps {
114114
foundArgMap = true
115115
}
116-
if p.From.Offset == objabi.FUNCDATA_ArgInfo {
116+
if p.From.Offset == abi.FUNCDATA_ArgInfo {
117117
foundArgInfo = true
118118
}
119119
if foundArgMap && foundArgInfo {
@@ -125,7 +125,7 @@ func Flushplist(ctxt *Link, plist *Plist, newprog ProgAlloc, myimportpath string
125125
p := Appendp(s.Func().Text, newprog)
126126
p.As = AFUNCDATA
127127
p.From.Type = TYPE_CONST
128-
p.From.Offset = objabi.FUNCDATA_ArgsPointerMaps
128+
p.From.Offset = abi.FUNCDATA_ArgsPointerMaps
129129
p.To.Type = TYPE_MEM
130130
p.To.Name = NAME_EXTERN
131131
p.To.Sym = ctxt.LookupDerived(s, s.Name+".args_stackmap")
@@ -134,7 +134,7 @@ func Flushplist(ctxt *Link, plist *Plist, newprog ProgAlloc, myimportpath string
134134
p := Appendp(s.Func().Text, newprog)
135135
p.As = AFUNCDATA
136136
p.From.Type = TYPE_CONST
137-
p.From.Offset = objabi.FUNCDATA_ArgInfo
137+
p.From.Offset = abi.FUNCDATA_ArgInfo
138138
p.To.Type = TYPE_MEM
139139
p.To.Name = NAME_EXTERN
140140
p.To.Sym = ctxt.LookupDerived(s, fmt.Sprintf("%s.arginfo%d", s.Name, s.ABI()))
@@ -261,7 +261,7 @@ func (ctxt *Link) EmitEntryStackMap(s *LSym, p *Prog, newprog ProgAlloc) *Prog {
261261
pcdata.Pos = s.Func().Text.Pos
262262
pcdata.As = APCDATA
263263
pcdata.From.Type = TYPE_CONST
264-
pcdata.From.Offset = objabi.PCDATA_StackMapIndex
264+
pcdata.From.Offset = abi.PCDATA_StackMapIndex
265265
pcdata.To.Type = TYPE_CONST
266266
pcdata.To.Offset = -1 // pcdata starts at -1 at function entry
267267

@@ -274,7 +274,7 @@ func (ctxt *Link) EmitEntryUnsafePoint(s *LSym, p *Prog, newprog ProgAlloc) *Pro
274274
pcdata.Pos = s.Func().Text.Pos
275275
pcdata.As = APCDATA
276276
pcdata.From.Type = TYPE_CONST
277-
pcdata.From.Offset = objabi.PCDATA_UnsafePoint
277+
pcdata.From.Offset = abi.PCDATA_UnsafePoint
278278
pcdata.To.Type = TYPE_CONST
279279
pcdata.To.Offset = -1
280280

@@ -289,9 +289,9 @@ func (ctxt *Link) StartUnsafePoint(p *Prog, newprog ProgAlloc) *Prog {
289289
pcdata := Appendp(p, newprog)
290290
pcdata.As = APCDATA
291291
pcdata.From.Type = TYPE_CONST
292-
pcdata.From.Offset = objabi.PCDATA_UnsafePoint
292+
pcdata.From.Offset = abi.PCDATA_UnsafePoint
293293
pcdata.To.Type = TYPE_CONST
294-
pcdata.To.Offset = objabi.PCDATA_UnsafePointUnsafe
294+
pcdata.To.Offset = abi.UnsafePointUnsafe
295295

296296
return pcdata
297297
}
@@ -304,7 +304,7 @@ func (ctxt *Link) EndUnsafePoint(p *Prog, newprog ProgAlloc, oldval int64) *Prog
304304
pcdata := Appendp(p, newprog)
305305
pcdata.As = APCDATA
306306
pcdata.From.Type = TYPE_CONST
307-
pcdata.From.Offset = objabi.PCDATA_UnsafePoint
307+
pcdata.From.Offset = abi.PCDATA_UnsafePoint
308308
pcdata.To.Type = TYPE_CONST
309309
pcdata.To.Offset = oldval
310310

@@ -330,11 +330,11 @@ func MarkUnsafePoints(ctxt *Link, p0 *Prog, newprog ProgAlloc, isUnsafePoint, is
330330
prevPcdata := int64(-1) // entry PC data value
331331
prevRestart := int64(0)
332332
for p := prev.Link; p != nil; p, prev = p.Link, p {
333-
if p.As == APCDATA && p.From.Offset == objabi.PCDATA_UnsafePoint {
333+
if p.As == APCDATA && p.From.Offset == abi.PCDATA_UnsafePoint {
334334
prevPcdata = p.To.Offset
335335
continue
336336
}
337-
if prevPcdata == objabi.PCDATA_UnsafePointUnsafe {
337+
if prevPcdata == abi.UnsafePointUnsafe {
338338
continue // already unsafe
339339
}
340340
if isUnsafePoint(p) {
@@ -353,15 +353,15 @@ func MarkUnsafePoints(ctxt *Link, p0 *Prog, newprog ProgAlloc, isUnsafePoint, is
353353
continue
354354
}
355355
if isRestartable(p) {
356-
val := int64(objabi.PCDATA_Restart1)
356+
val := int64(abi.UnsafePointRestart1)
357357
if val == prevRestart {
358-
val = objabi.PCDATA_Restart2
358+
val = abi.UnsafePointRestart2
359359
}
360360
prevRestart = val
361361
q := Appendp(prev, newprog)
362362
q.As = APCDATA
363363
q.From.Type = TYPE_CONST
364-
q.From.Offset = objabi.PCDATA_UnsafePoint
364+
q.From.Offset = abi.PCDATA_UnsafePoint
365365
q.To.Type = TYPE_CONST
366366
q.To.Offset = val
367367
q.Pc = p.Pc
@@ -378,7 +378,7 @@ func MarkUnsafePoints(ctxt *Link, p0 *Prog, newprog ProgAlloc, isUnsafePoint, is
378378
p = Appendp(p, newprog)
379379
p.As = APCDATA
380380
p.From.Type = TYPE_CONST
381-
p.From.Offset = objabi.PCDATA_UnsafePoint
381+
p.From.Offset = abi.PCDATA_UnsafePoint
382382
p.To.Type = TYPE_CONST
383383
p.To.Offset = prevPcdata
384384
p.Pc = p.Link.Pc

src/cmd/internal/obj/util.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ package obj
66

77
import (
88
"bytes"
9-
"cmd/internal/objabi"
109
"cmd/internal/src"
1110
"fmt"
11+
"internal/abi"
1212
"internal/buildcfg"
1313
"io"
1414
"strings"
@@ -313,7 +313,7 @@ func writeDconv(w io.Writer, p *Prog, a *Addr, abiDetail bool) {
313313
}
314314

315315
case TYPE_TEXTSIZE:
316-
if a.Val.(int32) == objabi.ArgsSizeUnknown {
316+
if a.Val.(int32) == abi.ArgsSizeUnknown {
317317
fmt.Fprintf(w, "$%d", a.Offset)
318318
} else {
319319
fmt.Fprintf(w, "$%d-%d", a.Offset, a.Val.(int32))

src/cmd/internal/objabi/funcdata.go

Lines changed: 0 additions & 51 deletions
This file was deleted.

0 commit comments

Comments
 (0)