summaryrefslogtreecommitdiffstats
path: root/llvm/test/MC/Disassembler/PowerPC
diff options
context:
space:
mode:
authorStefan Pintile <stefanp@kuat.aus.stglabs.ibm.com>2019-11-08 16:14:28 -0600
committerStefan Pintile <stefanp@kuat.aus.stglabs.ibm.com>2019-11-11 09:50:46 -0600
commitfdf3d1766bbabb48a397fae646facbe2690313f6 (patch)
tree53a17219a5690d6aa81c5489aecafd04ef58f918 /llvm/test/MC/Disassembler/PowerPC
parentf8c17fe1112009e793d6f9a261622423c2c62049 (diff)
downloadbcm5719-llvm-fdf3d1766bbabb48a397fae646facbe2690313f6.tar.gz
bcm5719-llvm-fdf3d1766bbabb48a397fae646facbe2690313f6.zip
[PowerPC] Implementing overflow version for XO-Form instructions
The Overflow version of XO-Form instruction uses the SO, OV and OV32 special registers. This changes modifies existing multiclasses and instruction definitions to allow for the use of the XER register to record the various types if overflow from possible add, subtract and multiply instructions. It then modifies the existing instructions as to use these multiclasses as needed. Patch By: Kamau Bridgeman Differential Revision: https://reviews.llvm.org/D66902
Diffstat (limited to 'llvm/test/MC/Disassembler/PowerPC')
-rw-r--r--llvm/test/MC/Disassembler/PowerPC/ppc64-encoding.txt126
-rw-r--r--llvm/test/MC/Disassembler/PowerPC/ppc64le-encoding.txt126
2 files changed, 252 insertions, 0 deletions
diff --git a/llvm/test/MC/Disassembler/PowerPC/ppc64-encoding.txt b/llvm/test/MC/Disassembler/PowerPC/ppc64-encoding.txt
index 6b052474310..967d7f66dd5 100644
--- a/llvm/test/MC/Disassembler/PowerPC/ppc64-encoding.txt
+++ b/llvm/test/MC/Disassembler/PowerPC/ppc64-encoding.txt
@@ -238,12 +238,24 @@
# CHECK: add. 2, 3, 4
0x7c 0x43 0x22 0x15
+# CHECK: addo 2, 3, 4
+0x7c 0x43 0x26 0x14
+
+# CHECK: addo. 2, 3, 4
+0x7c 0x43 0x26 0x15
+
# CHECK: subf 2, 3, 4
0x7c 0x43 0x20 0x50
# CHECK: subf. 2, 3, 4
0x7c 0x43 0x20 0x51
+# CHECK: subfo 2, 3, 4
+0x7c 0x43 0x24 0x50
+
+# CHECK: subfo. 2, 3, 4
+0x7c 0x43 0x24 0x51
+
# CHECK: addic 2, 3, 128
0x30 0x43 0x00 0x80
@@ -259,54 +271,108 @@
# CHECK: addc. 2, 3, 4
0x7c 0x43 0x20 0x15
+# CHECK: addco 2, 3, 4
+0x7c 0x43 0x24 0x14
+
+# CHECK: addco. 2, 3, 4
+0x7c 0x43 0x24 0x15
+
# CHECK: subfc 2, 3, 4
0x7c 0x43 0x20 0x10
# CHECK: subfc 2, 3, 4
0x7c 0x43 0x20 0x10
+# CHECK: subfco 2, 3, 4
+0x7c 0x43 0x24 0x10
+
+# CHECK: subfco. 2, 3, 4
+0x7c 0x43 0x24 0x11
+
# CHECK: adde 2, 3, 4
0x7c 0x43 0x21 0x14
# CHECK: adde. 2, 3, 4
0x7c 0x43 0x21 0x15
+# CHECK: addeo 2, 3, 4
+0x7c 0x43 0x25 0x14
+
+# CHECK: addeo. 2, 3, 4
+0x7c 0x43 0x25 0x15
+
# CHECK: subfe 2, 3, 4
0x7c 0x43 0x21 0x10
# CHECK: subfe. 2, 3, 4
0x7c 0x43 0x21 0x11
+# CHECK: subfeo 2, 3, 4
+0x7c 0x43 0x25 0x10
+
+# CHECKE: subfeo. 2, 3, 4
+0x7c 0x43 0x25 0x11
+
# CHECK: addme 2, 3
0x7c 0x43 0x01 0xd4
# CHECK: addme. 2, 3
0x7c 0x43 0x01 0xd5
+# CHECK: addmeo 2, 3
+0x7c 0x43 0x05 0xd4
+
+# CHECK: addmeo. 2, 3
+0x7c 0x43 0x05 0xd5
+
# CHECK: subfme 2, 3
0x7c 0x43 0x01 0xd0
# CHECK: subfme. 2, 3
0x7c 0x43 0x01 0xd1
+# CHECK: subfmeo 2, 3
+0x7c 0x43 0x05 0xd0
+
+# CHECK: subfmeo. 2, 3
+0x7c 0x43 0x05 0xd1
+
# CHECK: addze 2, 3
0x7c 0x43 0x01 0x94
# CHECK: addze. 2, 3
0x7c 0x43 0x01 0x95
+# CHECK: addzeo 2, 3
+0x7c 0x43 0x05 0x94
+
+# CHECK: addzeo. 2, 3
+0x7c 0x43 0x05 0x95
+
# CHECK: subfze 2, 3
0x7c 0x43 0x01 0x90
# CHECK: subfze. 2, 3
0x7c 0x43 0x01 0x91
+# CHECK: subfzeo 2, 3
+0x7c 0x43 0x05 0x90
+
+# CHECK: subfzeo. 2, 3
+0x7c 0x43 0x05 0x91
+
# CHECK: neg 2, 3
0x7c 0x43 0x00 0xd0
# CHECK: neg. 2, 3
0x7c 0x43 0x00 0xd1
+# CHECK: nego 2, 3
+0x7c 0x43 0x04 0xd0
+
+# CHECK: nego. 2, 3
+0x7c 0x43 0x04 0xd1
+
# CHECK: mulli 2, 3, 128
0x1c 0x43 0x00 0x80
@@ -322,6 +388,12 @@
# CHECK: mullw. 2, 3, 4
0x7c 0x43 0x21 0xd7
+# CHECK: mullwo 2, 3, 4
+0x7c 0x43 0x25 0xd6
+
+# CHECK: mullwo. 2, 3, 4
+0x7c 0x43 0x25 0xd7
+
# CHECK: mulhwu 2, 3, 4
0x7c 0x43 0x20 0x16
@@ -355,24 +427,48 @@
# CHECK: divw. 2, 3, 4
0x7c 0x43 0x23 0xd7
+# CHECK: divwo 2, 3, 4
+0x7c 0x43 0x27 0xd6
+
+# CHECK: divwo. 2, 3, 4
+0x7c 0x43 0x27 0xd7
+
# CHECK: divwu 2, 3, 4
0x7c 0x43 0x23 0x96
# CHECK: divwu. 2, 3, 4
0x7c 0x43 0x23 0x97
+# CHECK: divwuo 2, 3, 4
+0x7c 0x43 0x27 0x96
+
+# CHECK: divwuo. 2, 3, 4
+0x7c 0x43 0x27 0x97
+
# CHECK: divwe 2, 3, 4
0x7c 0x43 0x23 0x56
# CHECK: divwe. 2, 3, 4
0x7c 0x43 0x23 0x57
+# CHECK: divweo 2, 3, 4
+0x7c 0x43 0x27 0x56
+
+# CHECK: divweo. 2, 3, 4
+0x7c 0x43 0x27 0x57
+
# CHECK: divweu 2, 3, 4
0x7c 0x43 0x23 0x16
# CHECK: divweu. 2, 3, 4
0x7c 0x43 0x23 0x17
+# CHECK: divweuo 2, 3, 4
+0x7c 0x43 0x27 0x16
+
+# CHECK: divweuo. 2, 3, 4
+0x7c 0x43 0x27 0x17
+
# CHECK: modsw 2, 3, 4
0x7c 0x43 0x26 0x16
@@ -391,6 +487,12 @@
# CHECK: mulld. 2, 3, 4
0x7c 0x43 0x21 0xd3
+# CHECK: mulldo 2, 3, 4
+0x7c 0x43 0x25 0xd2
+
+# CHECK: mulldo. 2, 3, 4
+0x7c 0x43 0x25 0xd3
+
# CHECK: mulhd 2, 3, 4
0x7c 0x43 0x20 0x92
@@ -409,24 +511,48 @@
# CHECK: divd. 2, 3, 4
0x7c 0x43 0x23 0xd3
+# CHECK: divdo 2, 3, 4
+0x7c 0x43 0x27 0xd2
+
+# CHECK: divdo. 2, 3, 4
+0x7c 0x43 0x27 0xd3
+
# CHECK: divdu 2, 3, 4
0x7c 0x43 0x23 0x92
# CHECK: divdu. 2, 3, 4
0x7c 0x43 0x23 0x93
+# CHECK: divduo 2, 3, 4
+0x7c 0x43 0x27 0x92
+
+# CHECK: divduo. 2, 3, 4
+0x7c 0x43 0x27 0x93
+
# CHECK: divde 2, 3, 4
0x7c 0x43 0x23 0x52
# CHECK: divde. 2, 3, 4
0x7c 0x43 0x23 0x53
+# CHECK: divdeo 2, 3, 4
+0x7c 0x43 0x27 0x52
+
+# CHECK: divdeo. 2, 3, 4
+0x7c 0x43 0x27 0x53
+
# CHECK: divdeu 2, 3, 4
0x7c 0x43 0x23 0x12
# CHECK: divdeu. 2, 3, 4
0x7c 0x43 0x23 0x13
+# CHECK: divdeuo 2, 3, 4
+0x7c 0x43 0x27 0x12
+
+# CHECK: divdeuo. 2, 3, 4
+0x7c 0x43 0x27 0x13
+
# CHECK: cmpdi 2, 3, 128
0x2d 0x23 0x00 0x80
diff --git a/llvm/test/MC/Disassembler/PowerPC/ppc64le-encoding.txt b/llvm/test/MC/Disassembler/PowerPC/ppc64le-encoding.txt
index 9dc99401055..336fc44a12b 100644
--- a/llvm/test/MC/Disassembler/PowerPC/ppc64le-encoding.txt
+++ b/llvm/test/MC/Disassembler/PowerPC/ppc64le-encoding.txt
@@ -235,12 +235,24 @@
# CHECK: add. 2, 3, 4
0x15 0x22 0x43 0x7c
+# CHECK: addo 2, 3, 4
+0x14 0x26 0x43 0x7c
+
+# CHECK: addo. 2, 3, 4
+0x15 0x26 0x43 0x7c
+
# CHECK: subf 2, 3, 4
0x50 0x20 0x43 0x7c
# CHECK: subf. 2, 3, 4
0x51 0x20 0x43 0x7c
+# CHECK: subfo 2, 3, 4
+0x50 0x24 0x43 0x7c
+
+# CHECK: subfo. 2, 3, 4
+0x51 0x24 0x43 0x7c
+
# CHECK: addic 2, 3, 128
0x80 0x00 0x43 0x30
@@ -256,54 +268,108 @@
# CHECK: addc. 2, 3, 4
0x15 0x20 0x43 0x7c
+# CHECK: addco 2, 3, 4
+0x14 0x24 0x43 0x7c
+
+# CHECK: addco. 2, 3, 4
+0x15 0x24 0x43 0x7c
+
# CHECK: subfc 2, 3, 4
0x10 0x20 0x43 0x7c
# CHECK: subfc 2, 3, 4
0x10 0x20 0x43 0x7c
+# CHECK: subfco 2, 3, 4
+0x10 0x24 0x43 0x7c
+
+# CHECK: subfco. 2, 3, 4
+0x11 0x24 0x43 0x7c
+
# CHECK: adde 2, 3, 4
0x14 0x21 0x43 0x7c
# CHECK: adde. 2, 3, 4
0x15 0x21 0x43 0x7c
+# CHECK: addeo 2, 3, 4
+0x14 0x25 0x43 0x7c
+
+# CHECK: addeo. 2, 3, 4
+0x15 0x25 0x43 0x7c
+
# CHECK: subfe 2, 3, 4
0x10 0x21 0x43 0x7c
# CHECK: subfe. 2, 3, 4
0x11 0x21 0x43 0x7c
+# CHECK: subfeo 2, 3, 4
+0x10 0x25 0x43 0x7c
+
+# CHECKE: subfeo. 2, 3, 4
+0x11 0x25 0x43 0x7c
+
# CHECK: addme 2, 3
0xd4 0x01 0x43 0x7c
# CHECK: addme. 2, 3
0xd5 0x01 0x43 0x7c
+# CHECK: addmeo 2, 3
+0xd4 0x05 0x43 0x7c
+
+# CHECK: addmeo. 2, 3
+0xd5 0x05 0x43 0x7c
+
# CHECK: subfme 2, 3
0xd0 0x01 0x43 0x7c
# CHECK: subfme. 2, 3
0xd1 0x01 0x43 0x7c
+# CHECK: subfmeo 2, 3
+0xd0 0x05 0x43 0x7c
+
+# CHECK: subfmeo. 2, 3
+0xd1 0x05 0x43 0x7c
+
# CHECK: addze 2, 3
0x94 0x01 0x43 0x7c
# CHECK: addze. 2, 3
0x95 0x01 0x43 0x7c
+# CHECK: addzeo 2, 3
+0x94 0x05 0x43 0x7c
+
+# CHECK: addzeo. 2, 3
+0x95 0x05 0x43 0x7c
+
# CHECK: subfze 2, 3
0x90 0x01 0x43 0x7c
# CHECK: subfze. 2, 3
0x91 0x01 0x43 0x7c
+# CHECK: subfzeo 2, 3
+0x90 0x05 0x43 0x7c
+
+# CHECK: subfzeo. 2, 3
+0x91 0x05 0x43 0x7c
+
# CHECK: neg 2, 3
0xd0 0x00 0x43 0x7c
# CHECK: neg. 2, 3
0xd1 0x00 0x43 0x7c
+# CHECK: nego 2, 3
+0xd0 0x04 0x43 0x7c
+
+# CHECK: nego. 2, 3
+0xd1 0x04 0x43 0x7c
+
# CHECK: mulli 2, 3, 128
0x80 0x00 0x43 0x1c
@@ -319,6 +385,12 @@
# CHECK: mullw. 2, 3, 4
0xd7 0x21 0x43 0x7c
+# CHECK: mullwo 2, 3, 4
+0xd6 0x25 0x43 0x7c
+
+# CHECK: mullwo. 2, 3, 4
+0xd7 0x25 0x43 0x7c
+
# CHECK: mulhwu 2, 3, 4
0x16 0x20 0x43 0x7c
@@ -331,24 +403,48 @@
# CHECK: divw. 2, 3, 4
0xd7 0x23 0x43 0x7c
+# CHECK: divwo 2, 3, 4
+0xd6 0x27 0x43 0x7c
+
+# CHECK: divwo. 2, 3, 4
+0xd7 0x27 0x43 0x7c
+
# CHECK: divwu 2, 3, 4
0x96 0x23 0x43 0x7c
# CHECK: divwu. 2, 3, 4
0x97 0x23 0x43 0x7c
+# CHECK: divwuo 2, 3, 4
+0x96 0x27 0x43 0x7c
+
+# CHECK: divwuo. 2, 3, 4
+0x97 0x27 0x43 0x7c
+
# CHECK: divwe 2, 3, 4
0x56 0x23 0x43 0x7c
# CHECK: divwe. 2, 3, 4
0x57 0x23 0x43 0x7c
+# CHECK: divweo 2, 3, 4
+0x56 0x27 0x43 0x7c
+
+# CHECK: divweo. 2, 3, 4
+0x57 0x27 0x43 0x7c
+
# CHECK: divweu 2, 3, 4
0x16 0x23 0x43 0x7c
# CHECK: divweu. 2, 3, 4
0x17 0x23 0x43 0x7c
+# CHECK: divweuo 2, 3, 4
+0x16 0x27 0x43 0x7c
+
+# CHECK: divweuo. 2, 3, 4
+0x17 0x27 0x43 0x7c
+
# CHECK: modsw 2, 3, 4
0x16 0x26 0x43 0x7c
@@ -367,6 +463,12 @@
# CHECK: mulld. 2, 3, 4
0xd3 0x21 0x43 0x7c
+# CHECK: mulldo 2, 3, 4
+0xd2 0x25 0x43 0x7c
+
+# CHECK: mulldo. 2, 3, 4
+0xd3 0x25 0x43 0x7c
+
# CHECK: mulhd 2, 3, 4
0x92 0x20 0x43 0x7c
@@ -385,24 +487,48 @@
# CHECK: divd. 2, 3, 4
0xd3 0x23 0x43 0x7c
+# CHECK: divdo 2, 3, 4
+0xd2 0x27 0x43 0x7c
+
+# CHECK: divdo. 2, 3, 4
+0xd3 0x27 0x43 0x7c
+
# CHECK: divdu 2, 3, 4
0x92 0x23 0x43 0x7c
# CHECK: divdu. 2, 3, 4
0x93 0x23 0x43 0x7c
+# CHECK: divduo 2, 3, 4
+0x92 0x27 0x43 0x7c
+
+# CHECK: divduo. 2, 3, 4
+0x93 0x27 0x43 0x7c
+
# CHECK: divde 2, 3, 4
0x52 0x23 0x43 0x7c
# CHECK: divde. 2, 3, 4
0x53 0x23 0x43 0x7c
+# CHECK: divdeo 2, 3, 4
+0x52 0x27 0x43 0x7c
+
+# CHECK: divdeo. 2, 3, 4
+0x53 0x27 0x43 0x7c
+
# CHECK: divdeu 2, 3, 4
0x12 0x23 0x43 0x7c
# CHECK: divdeu. 2, 3, 4
0x13 0x23 0x43 0x7c
+# CHECK: divdeuo 2, 3, 4
+0x12 0x27 0x43 0x7c
+
+# CHECK: divdeuo. 2, 3, 4
+0x13 0x27 0x43 0x7c
+
# CHECK: cmpdi 2, 3, 128
0x80 0x00 0x23 0x2d
OpenPOWER on IntegriCloud