diff options
author | Richard Sandiford <rsandifo@linux.vnet.ibm.com> | 2013-08-28 10:31:43 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@linux.vnet.ibm.com> | 2013-08-28 10:31:43 +0000 |
commit | 477168192c98e1f75a5bc6db3d34a177f327bd34 (patch) | |
tree | 29024a631a02e26dd2d4634abed8612c5469ca0c /test/MC | |
parent | a6c3a4ee76ef8464d3c83472e15af521ade7eeb4 (diff) | |
download | llvm-477168192c98e1f75a5bc6db3d34a177f327bd34.tar.gz llvm-477168192c98e1f75a5bc6db3d34a177f327bd34.tar.bz2 llvm-477168192c98e1f75a5bc6db3d34a177f327bd34.tar.xz |
[SystemZ] Add support for TMHH, TMHL, TMLH and TMLL
For now just handles simple comparisons of an ANDed value with zero.
The CC value provides enough information to do any comparison for a
2-bit mask, and some nonzero comparisons with more populated masks,
but that's all future work.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189469 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/MC')
-rw-r--r-- | test/MC/Disassembler/SystemZ/insns.txt | 48 | ||||
-rw-r--r-- | test/MC/SystemZ/insn-bad.s | 32 | ||||
-rw-r--r-- | test/MC/SystemZ/insn-good.s | 40 |
3 files changed, 120 insertions, 0 deletions
diff --git a/test/MC/Disassembler/SystemZ/insns.txt b/test/MC/Disassembler/SystemZ/insns.txt index 360785e94b..912837c9a6 100644 --- a/test/MC/Disassembler/SystemZ/insns.txt +++ b/test/MC/Disassembler/SystemZ/insns.txt @@ -6964,6 +6964,54 @@ # CHECK: sy %r15, 0 0xe3 0xf0 0x00 0x00 0x00 0x5b +# CHECK: tmhh %r0, 0 +0xa7 0x02 0x00 0x00 + +# CHECK: tmhh %r0, 32768 +0xa7 0x02 0x80 0x00 + +# CHECK: tmhh %r0, 65535 +0xa7 0x02 0xff 0xff + +# CHECK: tmhh %r15, 0 +0xa7 0xf2 0x00 0x00 + +# CHECK: tmhl %r0, 0 +0xa7 0x03 0x00 0x00 + +# CHECK: tmhl %r0, 32768 +0xa7 0x03 0x80 0x00 + +# CHECK: tmhl %r0, 65535 +0xa7 0x03 0xff 0xff + +# CHECK: tmhl %r15, 0 +0xa7 0xf3 0x00 0x00 + +# CHECK: tmlh %r0, 0 +0xa7 0x00 0x00 0x00 + +# CHECK: tmlh %r0, 32768 +0xa7 0x00 0x80 0x00 + +# CHECK: tmlh %r0, 65535 +0xa7 0x00 0xff 0xff + +# CHECK: tmlh %r15, 0 +0xa7 0xf0 0x00 0x00 + +# CHECK: tmll %r0, 0 +0xa7 0x01 0x00 0x00 + +# CHECK: tmll %r0, 32768 +0xa7 0x01 0x80 0x00 + +# CHECK: tmll %r0, 65535 +0xa7 0x01 0xff 0xff + +# CHECK: tmll %r15, 0 +0xa7 0xf1 0x00 0x00 + # CHECK: xgr %r0, %r0 0xb9 0x82 0x00 0x00 diff --git a/test/MC/SystemZ/insn-bad.s b/test/MC/SystemZ/insn-bad.s index 1c478caa03..54979fdaf9 100644 --- a/test/MC/SystemZ/insn-bad.s +++ b/test/MC/SystemZ/insn-bad.s @@ -2864,6 +2864,38 @@ sy %r0, 524288 #CHECK: error: invalid operand +#CHECK: tmhh %r0, -1 +#CHECK: error: invalid operand +#CHECK: tmhh %r0, 0x10000 + + tmhh %r0, -1 + tmhh %r0, 0x10000 + +#CHECK: error: invalid operand +#CHECK: tmhl %r0, -1 +#CHECK: error: invalid operand +#CHECK: tmhl %r0, 0x10000 + + tmhl %r0, -1 + tmhl %r0, 0x10000 + +#CHECK: error: invalid operand +#CHECK: tmlh %r0, -1 +#CHECK: error: invalid operand +#CHECK: tmlh %r0, 0x10000 + + tmlh %r0, -1 + tmlh %r0, 0x10000 + +#CHECK: error: invalid operand +#CHECK: tmll %r0, -1 +#CHECK: error: invalid operand +#CHECK: tmll %r0, 0x10000 + + tmll %r0, -1 + tmll %r0, 0x10000 + +#CHECK: error: invalid operand #CHECK: x %r0, -1 #CHECK: error: invalid operand #CHECK: x %r0, 4096 diff --git a/test/MC/SystemZ/insn-good.s b/test/MC/SystemZ/insn-good.s index 9930d8ce6d..be7e308549 100644 --- a/test/MC/SystemZ/insn-good.s +++ b/test/MC/SystemZ/insn-good.s @@ -7284,6 +7284,46 @@ sy %r0, 524287(%r15,%r1) sy %r15, 0 +#CHECK: tmhh %r0, 0 # encoding: [0xa7,0x02,0x00,0x00] +#CHECK: tmhh %r0, 32768 # encoding: [0xa7,0x02,0x80,0x00] +#CHECK: tmhh %r0, 65535 # encoding: [0xa7,0x02,0xff,0xff] +#CHECK: tmhh %r15, 0 # encoding: [0xa7,0xf2,0x00,0x00] + + tmhh %r0, 0 + tmhh %r0, 0x8000 + tmhh %r0, 0xffff + tmhh %r15, 0 + +#CHECK: tmhl %r0, 0 # encoding: [0xa7,0x03,0x00,0x00] +#CHECK: tmhl %r0, 32768 # encoding: [0xa7,0x03,0x80,0x00] +#CHECK: tmhl %r0, 65535 # encoding: [0xa7,0x03,0xff,0xff] +#CHECK: tmhl %r15, 0 # encoding: [0xa7,0xf3,0x00,0x00] + + tmhl %r0, 0 + tmhl %r0, 0x8000 + tmhl %r0, 0xffff + tmhl %r15, 0 + +#CHECK: tmlh %r0, 0 # encoding: [0xa7,0x00,0x00,0x00] +#CHECK: tmlh %r0, 32768 # encoding: [0xa7,0x00,0x80,0x00] +#CHECK: tmlh %r0, 65535 # encoding: [0xa7,0x00,0xff,0xff] +#CHECK: tmlh %r15, 0 # encoding: [0xa7,0xf0,0x00,0x00] + + tmlh %r0, 0 + tmlh %r0, 0x8000 + tmlh %r0, 0xffff + tmlh %r15, 0 + +#CHECK: tmll %r0, 0 # encoding: [0xa7,0x01,0x00,0x00] +#CHECK: tmll %r0, 32768 # encoding: [0xa7,0x01,0x80,0x00] +#CHECK: tmll %r0, 65535 # encoding: [0xa7,0x01,0xff,0xff] +#CHECK: tmll %r15, 0 # encoding: [0xa7,0xf1,0x00,0x00] + + tmll %r0, 0 + tmll %r0, 0x8000 + tmll %r0, 0xffff + tmll %r15, 0 + #CHECK: x %r0, 0 # encoding: [0x57,0x00,0x00,0x00] #CHECK: x %r0, 4095 # encoding: [0x57,0x00,0x0f,0xff] #CHECK: x %r0, 0(%r1) # encoding: [0x57,0x00,0x10,0x00] |