aboutsummaryrefslogtreecommitdiff
path: root/src/cmd
diff options
context:
space:
mode:
authorPaul E. Murphy <murp@ibm.com>2024-05-14 10:05:00 -0500
committerPaul Murphy <murp@ibm.com>2024-05-22 18:17:17 +0000
commitcc673d2ec5df9e0894ea2cc3e16a9c309c219bd8 (patch)
tree15a41e809178a1db303ea4e656e0e313349570ea /src/cmd
parent41884dcd05546ced3634496d931d0b005fc8c2e6 (diff)
downloadgo-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.go8
-rw-r--r--src/cmd/internal/obj/ppc64/obj9.go20
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