p.From.Type = obj.TYPE_REG
p.From.Reg = v.Args[0].Reg()
p.To.Type = obj.TYPE_REG
- p.To.Reg = ppc64.REG_CTR
+ p.To.Reg = ppc64.REG_LR
if v.Args[0].Reg() != ppc64.REG_R12 {
v.Fatalf("Function address for %v should be in R12 %d but is in %d", v.LongString(), ppc64.REG_R12, p.From.Reg)
}
pp := s.Call(v)
- pp.To.Reg = ppc64.REG_CTR
+ pp.To.Reg = ppc64.REG_LR
if gc.Ctxt.Flag_shared {
// When compiling Go into PIC, the function we just
// becomes
// MOVD runtime.duffxxx@TOC, R12
// ADD $offset, R12
- // MOVD R12, CTR
- // BL (CTR)
+ // MOVD R12, LR
+ // BL (LR)
var sym *obj.LSym
if p.As == obj.ADUFFZERO {
sym = c.ctxt.Lookup("runtime.duffzero")
p2.From.Type = obj.TYPE_REG
p2.From.Reg = REG_R12
p2.To.Type = obj.TYPE_REG
- p2.To.Reg = REG_CTR
+ p2.To.Reg = REG_LR
p3 := obj.Appendp(p2, c.newprog)
p3.As = obj.ACALL
- p3.From.Type = obj.TYPE_REG
- p3.From.Reg = REG_R12
p3.To.Type = obj.TYPE_REG
- p3.To.Reg = REG_CTR
+ p3.To.Reg = REG_LR
}
var source *obj.Addr
// becomes
// MOVD runtime.duffxxx@GOT, R12
// ADD $offset, R12
- // MOVD R12, CTR
- // BL (CTR)
+ // MOVD R12, LR
+ // BL (LR)
var sym *obj.LSym
if p.As == obj.ADUFFZERO {
sym = c.ctxt.Lookup("runtime.duffzero")
p2.From.Type = obj.TYPE_REG
p2.From.Reg = REG_R12
p2.To.Type = obj.TYPE_REG
- p2.To.Reg = REG_CTR
+ p2.To.Reg = REG_LR
p3 := obj.Appendp(p2, c.newprog)
p3.As = obj.ACALL
- p3.From.Type = obj.TYPE_REG
- p3.From.Reg = REG_R12
p3.To.Type = obj.TYPE_REG
- p3.To.Reg = REG_CTR
+ p3.To.Reg = REG_LR
}
// We only care about global data: NAME_EXTERN means a global
p.To.Type = obj.TYPE_REG
p.To.Reg = REG_R12
- // MOVD R12, CTR
+ // MOVD R12, LR
p = obj.Appendp(p, c.newprog)
p.As = AMOVD
p.From.Type = obj.TYPE_REG
p.From.Reg = REG_R12
p.To.Type = obj.TYPE_REG
- p.To.Reg = REG_CTR
+ p.To.Reg = REG_LR
- // BL CTR
+ // BL LR
p = obj.Appendp(p, c.newprog)
p.As = obj.ACALL
- p.From.Type = obj.TYPE_REG
- p.From.Reg = REG_R12
p.To.Type = obj.TYPE_REG
- p.To.Reg = REG_CTR
+ p.To.Reg = REG_LR
} else {
// BL runtime.morestack(SB)
p = obj.Appendp(p, c.newprog)