From c7065bb9db1981b32d2f1c9ca1de7aae1f7d4a38 Mon Sep 17 00:00:00 2001 From: "Paul E. Murphy" Date: Thu, 7 Mar 2024 15:37:14 -0600 Subject: cmd/compile/internal: generate ADDZE on PPC64 This usage shows up in quite a few places, and helps reduce register pressure in several complex cryto functions by removing a MOVD $0,... instruction. Change-Id: I9444ea8f9d19bfd68fb71ea8dc34e109681b3802 Reviewed-on: https://go-review.googlesource.com/c/go/+/571055 TryBot-Result: Gopher Robot Reviewed-by: Lynn Boger LUCI-TryBot-Result: Go LUCI Reviewed-by: Cherry Mui Reviewed-by: Michael Knyszek Run-TryBot: Paul Murphy --- test/codegen/mathbits.go | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'test/codegen/mathbits.go') diff --git a/test/codegen/mathbits.go b/test/codegen/mathbits.go index 184d608424..82a139acab 100644 --- a/test/codegen/mathbits.go +++ b/test/codegen/mathbits.go @@ -516,6 +516,7 @@ func Add64R(x, y, ci uint64) uint64 { r, _ := bits.Add64(x, y, ci) return r } + func Add64M(p, q, r *[3]uint64) { var c uint64 r[0], c = bits.Add64(p[0], q[0], c) @@ -527,6 +528,15 @@ func Add64M(p, q, r *[3]uint64) { r[2], c = bits.Add64(p[2], q[2], c) } +func Add64M0(p, q, r *[3]uint64) { + var c uint64 + r[0], c = bits.Add64(p[0], q[0], 0) + // ppc64x: -"ADDC", -"ADDE", "ADDZE\tR[1-9]" + r[1], c = bits.Add64(p[1], 0, c) + // ppc64x: -"ADDC", "ADDE", -"ADDZE" + r[2], c = bits.Add64(p[2], p[2], c) +} + func Add64MSaveC(p, q, r, c *[2]uint64) { // ppc64x: "ADDC\tR", "ADDZE" r[0], c[0] = bits.Add64(p[0], q[0], 0) -- cgit v1.3