From: Joel Sing Date: Fri, 28 Apr 2023 16:00:15 +0000 (+1000) Subject: cmd/internal/obj/arm64: use appropriate return type for regoff X-Git-Tag: go1.21rc1~747 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=e7af0e0cac6c65043335da6b6329f7141d2f68c5;p=gostls13.git cmd/internal/obj/arm64: use appropriate return type for regoff All of the callers of regoff cast the return value from uint32 to int32. Instead, simply return int32 in the first place. Change-Id: I43a672bb3143a71f4a37779ed8ae9adcda623ba4 Reviewed-on: https://go-review.googlesource.com/c/go/+/490355 Run-TryBot: Joel Sing TryBot-Result: Gopher Robot Reviewed-by: Dmitri Shuralyov Reviewed-by: Cherry Mui --- diff --git a/src/cmd/internal/obj/arm64/asm7.go b/src/cmd/internal/obj/arm64/asm7.go index 4906839cf7..60add054ce 100644 --- a/src/cmd/internal/obj/arm64/asm7.go +++ b/src/cmd/internal/obj/arm64/asm7.go @@ -1388,10 +1388,10 @@ func roundUp(x, to uint32) uint32 { return (x + to - 1) &^ (to - 1) } -func (c *ctxt7) regoff(a *obj.Addr) uint32 { +func (c *ctxt7) regoff(a *obj.Addr) int32 { c.instoffset = 0 c.aclass(a) - return uint32(c.instoffset) + return int32(c.instoffset) } func isSTLXRop(op obj.As) bool { @@ -3371,7 +3371,7 @@ func (c *ctxt7) asmout(p *obj.Prog, o *Optab, out []uint32) { if r == obj.REG_NONE { r = rt } - v := int32(c.regoff(&p.From)) + v := c.regoff(&p.From) o1 = c.oaddi(p, int32(o1), v, r, rt) case 3: /* op R< strT */ - v := int32(c.regoff(&p.To)) + v := c.regoff(&p.To) sz := int32(1 << uint(movesize(p.As))) rt, rf := p.To.Reg, p.From.Reg @@ -3721,7 +3721,7 @@ func (c *ctxt7) asmout(p *obj.Prog, o *Optab, out []uint32) { } case 21: /* movT O(R),R -> ldrT */ - v := int32(c.regoff(&p.From)) + v := c.regoff(&p.From) sz := int32(1 << uint(movesize(p.As))) rt, rf := p.To.Reg, p.From.Reg @@ -3894,7 +3894,7 @@ func (c *ctxt7) asmout(p *obj.Prog, o *Optab, out []uint32) { r = int(o.param) } - v := int32(c.regoff(&p.To)) + v := c.regoff(&p.To) var hi int32 if v < 0 || (v&((1< adrp + add + reloc */ @@ -4670,7 +4670,7 @@ func (c *ctxt7) asmout(p *obj.Prog, o *Optab, out []uint32) { if rf == obj.REG_NONE { c.ctxt.Diag("invalid ldp source: %v", p) } - v := int32(c.regoff(&p.From)) + v := c.regoff(&p.From) o1 = c.oaddi12(p, v, REGTMP, rf) o2 = c.opldpstp(p, o, 0, REGTMP, rt1, rt2, 1) @@ -4708,7 +4708,7 @@ func (c *ctxt7) asmout(p *obj.Prog, o *Optab, out []uint32) { if rt == obj.REG_NONE { c.ctxt.Diag("invalid stp destination: %v", p) } - v := int32(c.regoff(&p.To)) + v := c.regoff(&p.To) o1 = c.oaddi12(p, v, REGTMP, rt) o2 = c.opldpstp(p, o, 0, REGTMP, rf1, rf2, 0) @@ -5265,7 +5265,7 @@ func (c *ctxt7) asmout(p *obj.Prog, o *Optab, out []uint32) { rf := int((p.To.Reg) & 31) r := int(p.To.Index & 31) index := int(p.From.Index) - offset := int32(c.regoff(&p.To)) + offset := c.regoff(&p.To) if o.scond == C_XPOST { if (p.To.Index != 0) && (offset != 0) { @@ -5337,7 +5337,7 @@ func (c *ctxt7) asmout(p *obj.Prog, o *Optab, out []uint32) { rf := int((p.From.Reg) & 31) r := int(p.From.Index & 31) index := int(p.To.Index) - offset := int32(c.regoff(&p.From)) + offset := c.regoff(&p.From) if o.scond == C_XPOST { if (p.From.Index != 0) && (offset != 0) {