diff options
| author | Paul E. Murphy <murp@ibm.com> | 2024-05-14 10:05:00 -0500 |
|---|---|---|
| committer | Paul Murphy <murp@ibm.com> | 2024-05-22 18:17:17 +0000 |
| commit | cc673d2ec5df9e0894ea2cc3e16a9c309c219bd8 (patch) | |
| tree | 15a41e809178a1db303ea4e656e0e313349570ea /src/cmd | |
| parent | 41884dcd05546ced3634496d931d0b005fc8c2e6 (diff) | |
| download | go-cc673d2ec5df9e0894ea2cc3e16a9c309c219bd8.tar.xz | |
all: convert PPC64 CMPx ...,R0,... to CMPx Rx,$0
Cleanup all remaining trivial compares against $0 in ppc64x assembly.
In math, SRD ...,Rx; CMP Rx, $0 is further simplified to SRDCC.
Change-Id: Ia2bc204953e32f08ee142bfd06a91965f30f99b6
Reviewed-on: https://go-review.googlesource.com/c/go/+/587016
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Reviewed-by: Lynn Boger <laboger@linux.vnet.ibm.com>
Run-TryBot: Paul Murphy <murp@ibm.com>
Reviewed-by: Cherry Mui <cherryyz@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Diffstat (limited to 'src/cmd')
| -rw-r--r-- | src/cmd/compile/internal/ppc64/ssa.go | 8 | ||||
| -rw-r--r-- | src/cmd/internal/obj/ppc64/obj9.go | 20 |
2 files changed, 14 insertions, 14 deletions
diff --git a/src/cmd/compile/internal/ppc64/ssa.go b/src/cmd/compile/internal/ppc64/ssa.go index d4974ba77e..ac5149fb0a 100644 --- a/src/cmd/compile/internal/ppc64/ssa.go +++ b/src/cmd/compile/internal/ppc64/ssa.go @@ -1916,17 +1916,17 @@ func ssaGenValue(s *ssagen.State, v *ssa.Value) { case ssa.OpPPC64LoweredNilCheck: if buildcfg.GOOS == "aix" { - // CMP Rarg0, R0 + // CMP Rarg0, $0 // BNE 2(PC) // STW R0, 0(R0) // NOP (so the BNE has somewhere to land) - // CMP Rarg0, R0 + // CMP Rarg0, $0 p := s.Prog(ppc64.ACMP) p.From.Type = obj.TYPE_REG p.From.Reg = v.Args[0].Reg() - p.To.Type = obj.TYPE_REG - p.To.Reg = ppc64.REG_R0 + p.To.Type = obj.TYPE_CONST + p.To.Offset = 0 // BNE 2(PC) p2 := s.Prog(ppc64.ABNE) diff --git a/src/cmd/internal/obj/ppc64/obj9.go b/src/cmd/internal/obj/ppc64/obj9.go index 23196875a5..bf52e72009 100644 --- a/src/cmd/internal/obj/ppc64/obj9.go +++ b/src/cmd/internal/obj/ppc64/obj9.go @@ -969,15 +969,15 @@ func preprocess(ctxt *obj.Link, cursym *obj.LSym, newprog obj.ProgAlloc) { if c.cursym.Func().Text.From.Sym.Wrapper() { // if(g->panic != nil && g->panic->argp == FP) g->panic->argp = bottom-of-frame // - // MOVD g_panic(g), R3 - // CMP R0, R3 + // MOVD g_panic(g), R22 + // CMP R22, $0 // BEQ end - // MOVD panic_argp(R3), R4 - // ADD $(autosize+8), R1, R5 - // CMP R4, R5 + // MOVD panic_argp(R22), R23 + // ADD $(autosize+8), R1, R24 + // CMP R23, R24 // BNE end - // ADD $8, R1, R6 - // MOVD R6, panic_argp(R3) + // ADD $8, R1, R25 + // MOVD R25, panic_argp(R22) // end: // NOP // @@ -996,9 +996,9 @@ func preprocess(ctxt *obj.Link, cursym *obj.LSym, newprog obj.ProgAlloc) { q = obj.Appendp(q, c.newprog) q.As = ACMP q.From.Type = obj.TYPE_REG - q.From.Reg = REG_R0 - q.To.Type = obj.TYPE_REG - q.To.Reg = REG_R22 + q.From.Reg = REG_R22 + q.To.Type = obj.TYPE_CONST + q.To.Offset = 0 q = obj.Appendp(q, c.newprog) q.As = ABEQ |
