mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
Revert "cmd/compile,cmd/asm: simplify recording of branch targets"
This reverts CL 243318. Reason for revert: Seems to be crashing some builders. Change-Id: I2ffc59bc5535be60b884b281c8d0eff4647dc756 Reviewed-on: https://go-review.googlesource.com/c/go/+/251169 Reviewed-by: Bryan C. Mills <bcmills@google.com>
This commit is contained in:
parent
42fd1306ce
commit
26ad27bb02
21 changed files with 134 additions and 142 deletions
|
|
@ -227,11 +227,11 @@ func preprocess(ctxt *obj.Link, cursym *obj.LSym, newprog obj.ProgAlloc) {
|
|||
} else {
|
||||
p.Mark |= BRANCH
|
||||
}
|
||||
q1 := p.To.Target()
|
||||
q1 := p.Pcond
|
||||
if q1 != nil {
|
||||
for q1.As == obj.ANOP {
|
||||
q1 = q1.Link
|
||||
p.To.SetTarget(q1)
|
||||
p.Pcond = q1
|
||||
}
|
||||
|
||||
if q1.Mark&LEAF == 0 {
|
||||
|
|
@ -424,8 +424,8 @@ func preprocess(ctxt *obj.Link, cursym *obj.LSym, newprog obj.ProgAlloc) {
|
|||
q = obj.Appendp(q, newprog)
|
||||
|
||||
q.As = obj.ANOP
|
||||
p1.To.SetTarget(q)
|
||||
p2.To.SetTarget(q)
|
||||
p1.Pcond = q
|
||||
p2.Pcond = q
|
||||
}
|
||||
|
||||
case ARET:
|
||||
|
|
@ -778,7 +778,7 @@ func (c *ctxt0) stacksplit(p *obj.Prog, framesize int32) *obj.Prog {
|
|||
p.To.Type = obj.TYPE_REG
|
||||
p.To.Reg = REG_R3
|
||||
if q != nil {
|
||||
q.To.SetTarget(p)
|
||||
q.Pcond = p
|
||||
p.Mark |= LABEL
|
||||
}
|
||||
|
||||
|
|
@ -805,14 +805,14 @@ func (c *ctxt0) stacksplit(p *obj.Prog, framesize int32) *obj.Prog {
|
|||
|
||||
p.As = AJMP
|
||||
p.To.Type = obj.TYPE_BRANCH
|
||||
p.To.SetTarget(c.cursym.Func.Text.Link)
|
||||
p.Pcond = c.cursym.Func.Text.Link
|
||||
p.Mark |= BRANCH
|
||||
|
||||
// placeholder for q1's jump target
|
||||
p = obj.Appendp(p, c.newprog)
|
||||
|
||||
p.As = obj.ANOP // zero-width place holder
|
||||
q1.To.SetTarget(p)
|
||||
q1.Pcond = p
|
||||
|
||||
return p
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue