mirror of
https://github.com/golang/go
synced 2024-09-30 11:28:36 -06:00
cmd/internal/obj: remove unneeded Addr.Node and Prog.Opt fields
Change-Id: I218b241c32a5948b66ad0d95ecc368648cf4ddf5 Reviewed-on: https://go-review.googlesource.com/38130 Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com>
This commit is contained in:
parent
cce4c319d6
commit
7bb5b2d33a
@ -124,7 +124,6 @@ func Naddr(a *obj.Addr, n *Node) {
|
|||||||
|
|
||||||
a.Offset = n.Xoffset
|
a.Offset = n.Xoffset
|
||||||
s := n.Sym
|
s := n.Sym
|
||||||
a.Node = n.Orig
|
|
||||||
|
|
||||||
if s == nil {
|
if s == nil {
|
||||||
Fatalf("naddr: nil sym %v", n)
|
Fatalf("naddr: nil sym %v", n)
|
||||||
|
@ -4472,13 +4472,11 @@ func AddAux2(a *obj.Addr, v *ssa.Value, offset int64) {
|
|||||||
case *ssa.ArgSymbol:
|
case *ssa.ArgSymbol:
|
||||||
n := sym.Node.(*Node)
|
n := sym.Node.(*Node)
|
||||||
a.Name = obj.NAME_PARAM
|
a.Name = obj.NAME_PARAM
|
||||||
a.Node = n
|
|
||||||
a.Sym = Linksym(n.Orig.Sym)
|
a.Sym = Linksym(n.Orig.Sym)
|
||||||
a.Offset += n.Xoffset
|
a.Offset += n.Xoffset
|
||||||
case *ssa.AutoSymbol:
|
case *ssa.AutoSymbol:
|
||||||
n := sym.Node.(*Node)
|
n := sym.Node.(*Node)
|
||||||
a.Name = obj.NAME_AUTO
|
a.Name = obj.NAME_AUTO
|
||||||
a.Node = n
|
|
||||||
a.Sym = Linksym(n.Sym)
|
a.Sym = Linksym(n.Sym)
|
||||||
a.Offset += n.Xoffset
|
a.Offset += n.Xoffset
|
||||||
default:
|
default:
|
||||||
@ -4581,7 +4579,6 @@ func AutoVar(v *ssa.Value) (*Node, int64) {
|
|||||||
func AddrAuto(a *obj.Addr, v *ssa.Value) {
|
func AddrAuto(a *obj.Addr, v *ssa.Value) {
|
||||||
n, off := AutoVar(v)
|
n, off := AutoVar(v)
|
||||||
a.Type = obj.TYPE_MEM
|
a.Type = obj.TYPE_MEM
|
||||||
a.Node = n
|
|
||||||
a.Sym = Linksym(n.Sym)
|
a.Sym = Linksym(n.Sym)
|
||||||
a.Reg = int16(thearch.REGSP)
|
a.Reg = int16(thearch.REGSP)
|
||||||
a.Offset = n.Xoffset + off
|
a.Offset = n.Xoffset + off
|
||||||
@ -4598,7 +4595,6 @@ func (s *SSAGenState) AddrScratch(a *obj.Addr) {
|
|||||||
}
|
}
|
||||||
a.Type = obj.TYPE_MEM
|
a.Type = obj.TYPE_MEM
|
||||||
a.Name = obj.NAME_AUTO
|
a.Name = obj.NAME_AUTO
|
||||||
a.Node = s.ScratchFpMem
|
|
||||||
a.Sym = Linksym(s.ScratchFpMem.Sym)
|
a.Sym = Linksym(s.ScratchFpMem.Sym)
|
||||||
a.Reg = int16(thearch.REGSP)
|
a.Reg = int16(thearch.REGSP)
|
||||||
a.Offset = s.ScratchFpMem.Xoffset
|
a.Offset = s.ScratchFpMem.Xoffset
|
||||||
|
@ -169,8 +169,6 @@ type Addr struct {
|
|||||||
// for TYPE_BRANCH, a *Prog (optional)
|
// for TYPE_BRANCH, a *Prog (optional)
|
||||||
// for TYPE_TEXTSIZE, an int32 (optional)
|
// for TYPE_TEXTSIZE, an int32 (optional)
|
||||||
Val interface{}
|
Val interface{}
|
||||||
|
|
||||||
Node interface{} // for use by compiler
|
|
||||||
}
|
}
|
||||||
|
|
||||||
type AddrName int8
|
type AddrName int8
|
||||||
@ -231,29 +229,28 @@ const (
|
|||||||
// The other fields not yet mentioned are for use by the back ends and should
|
// The other fields not yet mentioned are for use by the back ends and should
|
||||||
// be left zeroed by creators of Prog lists.
|
// be left zeroed by creators of Prog lists.
|
||||||
type Prog struct {
|
type Prog struct {
|
||||||
Ctxt *Link // linker context
|
Ctxt *Link // linker context
|
||||||
Link *Prog // next Prog in linked list
|
Link *Prog // next Prog in linked list
|
||||||
From Addr // first source operand
|
From Addr // first source operand
|
||||||
From3 *Addr // third source operand (second is Reg below)
|
From3 *Addr // third source operand (second is Reg below)
|
||||||
To Addr // destination operand (second is RegTo2 below)
|
To Addr // destination operand (second is RegTo2 below)
|
||||||
Pcond *Prog // target of conditional jump
|
Pcond *Prog // target of conditional jump
|
||||||
Opt interface{} // available to optimization passes to hold per-Prog state
|
Forwd *Prog // for x86 back end
|
||||||
Forwd *Prog // for x86 back end
|
Rel *Prog // for x86, arm back ends
|
||||||
Rel *Prog // for x86, arm back ends
|
Pc int64 // for back ends or assembler: virtual or actual program counter, depending on phase
|
||||||
Pc int64 // for back ends or assembler: virtual or actual program counter, depending on phase
|
Pos src.XPos // source position of this instruction
|
||||||
Pos src.XPos // source position of this instruction
|
Spadj int32 // effect of instruction on stack pointer (increment or decrement amount)
|
||||||
Spadj int32 // effect of instruction on stack pointer (increment or decrement amount)
|
As As // assembler opcode
|
||||||
As As // assembler opcode
|
Reg int16 // 2nd source operand
|
||||||
Reg int16 // 2nd source operand
|
RegTo2 int16 // 2nd destination operand
|
||||||
RegTo2 int16 // 2nd destination operand
|
Mark uint16 // bitmask of arch-specific items
|
||||||
Mark uint16 // bitmask of arch-specific items
|
Optab uint16 // arch-specific opcode index
|
||||||
Optab uint16 // arch-specific opcode index
|
Scond uint8 // condition bits for conditional instruction (e.g., on ARM)
|
||||||
Scond uint8 // condition bits for conditional instruction (e.g., on ARM)
|
Back uint8 // for x86 back end: backwards branch state
|
||||||
Back uint8 // for x86 back end: backwards branch state
|
Ft uint8 // for x86 back end: type index of Prog.From
|
||||||
Ft uint8 // for x86 back end: type index of Prog.From
|
Tt uint8 // for x86 back end: type index of Prog.To
|
||||||
Tt uint8 // for x86 back end: type index of Prog.To
|
Isize uint8 // for x86 back end: size of the instruction in bytes
|
||||||
Isize uint8 // for x86 back end: size of the instruction in bytes
|
Mode int8 // for x86 back end: 32- or 64-bit mode
|
||||||
Mode int8 // for x86 back end: 32- or 64-bit mode
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// From3Type returns From3.Type, or TYPE_NONE when From3 is nil.
|
// From3Type returns From3.Type, or TYPE_NONE when From3 is nil.
|
||||||
|
@ -22,9 +22,9 @@ func TestSizeof(t *testing.T) {
|
|||||||
_32bit uintptr // size on 32bit platforms
|
_32bit uintptr // size on 32bit platforms
|
||||||
_64bit uintptr // size on 64bit platforms
|
_64bit uintptr // size on 64bit platforms
|
||||||
}{
|
}{
|
||||||
{Addr{}, 40, 64},
|
{Addr{}, 32, 48},
|
||||||
{LSym{}, 60, 104},
|
{LSym{}, 60, 104},
|
||||||
{Prog{}, 148, 232},
|
{Prog{}, 124, 184},
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, tt := range tests {
|
for _, tt := range tests {
|
||||||
|
Loading…
Reference in New Issue
Block a user