aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/internal/obj
diff options
context:
space:
mode:
authorJayanth Krishnamurthy <jayanth.krishnamurthy@ibm.com>2024-09-11 09:58:04 -0500
committerPaul Murphy <murp@ibm.com>2024-10-29 13:14:03 +0000
commitb03b1acfb0bb6c605a70987dfaf5bb922c792e82 (patch)
tree67d8f60c9b8c8d39afced2fad7a2bc95f5431f04 /src/cmd/internal/obj
parentf505d6c581b633db5ca400a593ffd98d7e2c6cc9 (diff)
downloadgo-b03b1acfb0bb6c605a70987dfaf5bb922c792e82.tar.xz
cmd/internal/obj/ppc64: add double-decimal arithmetic instructions
Assembler support provided for the instructions DADD, DSUB, DMUL, and DDIV. Change-Id: Ic12ba02ce453cb1ca275334ca1924fb2009da767 Reviewed-on: https://go-review.googlesource.com/c/go/+/620856 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Paul Murphy <murp@ibm.com> Reviewed-by: Carlos Amedee <carlos@golang.org> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Diffstat (limited to 'src/cmd/internal/obj')
-rw-r--r--src/cmd/internal/obj/ppc64/a.out.go4
-rw-r--r--src/cmd/internal/obj/ppc64/anames.go4
-rw-r--r--src/cmd/internal/obj/ppc64/asm9.go13
3 files changed, 21 insertions, 0 deletions
diff --git a/src/cmd/internal/obj/ppc64/a.out.go b/src/cmd/internal/obj/ppc64/a.out.go
index 3782af2918..137c6d2ff2 100644
--- a/src/cmd/internal/obj/ppc64/a.out.go
+++ b/src/cmd/internal/obj/ppc64/a.out.go
@@ -504,6 +504,8 @@ const (
ACROR
ACRORN
ACRXOR
+ ADADD
+ ADDIV
ADIVW
ADIVWCC
ADIVWVCC
@@ -512,6 +514,8 @@ const (
ADIVWUCC
ADIVWUVCC
ADIVWUV
+ ADMUL
+ ADSUB
AMODUD
AMODUW
AMODSD
diff --git a/src/cmd/internal/obj/ppc64/anames.go b/src/cmd/internal/obj/ppc64/anames.go
index 1cf41b8307..f9ec191551 100644
--- a/src/cmd/internal/obj/ppc64/anames.go
+++ b/src/cmd/internal/obj/ppc64/anames.go
@@ -57,6 +57,8 @@ var Anames = []string{
"CROR",
"CRORN",
"CRXOR",
+ "DADD",
+ "DDIV",
"DIVW",
"DIVWCC",
"DIVWVCC",
@@ -65,6 +67,8 @@ var Anames = []string{
"DIVWUCC",
"DIVWUVCC",
"DIVWUV",
+ "DMUL",
+ "DSUB",
"MODUD",
"MODUW",
"MODSD",
diff --git a/src/cmd/internal/obj/ppc64/asm9.go b/src/cmd/internal/obj/ppc64/asm9.go
index 74f1772e3d..1a884dea7b 100644
--- a/src/cmd/internal/obj/ppc64/asm9.go
+++ b/src/cmd/internal/obj/ppc64/asm9.go
@@ -1871,6 +1871,9 @@ func buildop(ctxt *obj.Link) {
opset(AFSUBS, r0)
opset(AFSUBCC, r0)
opset(AFSUBSCC, r0)
+ opset(ADADD, r0)
+ opset(ADDIV, r0)
+ opset(ADSUB, r0)
case AFMADD:
opset(AFMADDCC, r0)
@@ -1895,6 +1898,7 @@ func buildop(ctxt *obj.Link) {
opset(AFMULS, r0)
opset(AFMULCC, r0)
opset(AFMULSCC, r0)
+ opset(ADMUL, r0)
case AFCMPO:
opset(AFCMPU, r0)
@@ -3935,6 +3939,15 @@ func (c *ctxt9) oprrr(a obj.As) uint32 {
case ACRXOR:
return OPVCC(19, 193, 0, 0)
+ case ADADD:
+ return OPVCC(59, 2, 0, 0)
+ case ADDIV:
+ return OPVCC(59, 546, 0, 0)
+ case ADMUL:
+ return OPVCC(59, 34, 0, 0)
+ case ADSUB:
+ return OPVCC(59, 514, 0, 0)
+
case ADCBF:
return OPVCC(31, 86, 0, 0)
case ADCBI: