diff options
| author | Jayanth Krishnamurthy <jayanth.krishnamurthy@ibm.com> | 2024-09-11 09:58:04 -0500 |
|---|---|---|
| committer | Paul Murphy <murp@ibm.com> | 2024-10-29 13:14:03 +0000 |
| commit | b03b1acfb0bb6c605a70987dfaf5bb922c792e82 (patch) | |
| tree | 67d8f60c9b8c8d39afced2fad7a2bc95f5431f04 /src/cmd/internal/obj | |
| parent | f505d6c581b633db5ca400a593ffd98d7e2c6cc9 (diff) | |
| download | go-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.go | 4 | ||||
| -rw-r--r-- | src/cmd/internal/obj/ppc64/anames.go | 4 | ||||
| -rw-r--r-- | src/cmd/internal/obj/ppc64/asm9.go | 13 |
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: |
