diff options
| author | Stefan Pintile <stefanp@kuat.aus.stglabs.ibm.com> | 2019-11-08 16:14:28 -0600 |
|---|---|---|
| committer | Stefan Pintile <stefanp@kuat.aus.stglabs.ibm.com> | 2019-11-11 09:50:46 -0600 |
| commit | fdf3d1766bbabb48a397fae646facbe2690313f6 (patch) | |
| tree | 53a17219a5690d6aa81c5489aecafd04ef58f918 /llvm/test/MC/Disassembler/PowerPC | |
| parent | f8c17fe1112009e793d6f9a261622423c2c62049 (diff) | |
| download | bcm5719-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.txt | 126 | ||||
| -rw-r--r-- | llvm/test/MC/Disassembler/PowerPC/ppc64le-encoding.txt | 126 |
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 |

