diff options
| author | Ulrich Weigand <ulrich.weigand@de.ibm.com> | 2017-05-10 12:41:12 +0000 |
|---|---|---|
| committer | Ulrich Weigand <ulrich.weigand@de.ibm.com> | 2017-05-10 12:41:12 +0000 |
| commit | 435cd1a3e48e7472c482b660646b99ae354d82cc (patch) | |
| tree | 099dc71f780365c07c64b0899485d684886e78e8 /llvm/test/MC | |
| parent | eb1790953604bd618d8c5de71235a3c5dcc729d2 (diff) | |
| download | bcm5719-llvm-435cd1a3e48e7472c482b660646b99ae354d82cc.tar.gz bcm5719-llvm-435cd1a3e48e7472c482b660646b99ae354d82cc.zip | |
[SystemZ] Add translate/convert instructions
This adds the set of character-set translate and convert instructions
for assembler / disassembler use.
llvm-svn: 302644
Diffstat (limited to 'llvm/test/MC')
| -rw-r--r-- | llvm/test/MC/Disassembler/SystemZ/insns.txt | 324 | ||||
| -rw-r--r-- | llvm/test/MC/SystemZ/insn-bad.s | 303 | ||||
| -rw-r--r-- | llvm/test/MC/SystemZ/insn-good.s | 276 |
3 files changed, 903 insertions, 0 deletions
diff --git a/llvm/test/MC/Disassembler/SystemZ/insns.txt b/llvm/test/MC/Disassembler/SystemZ/insns.txt index ea3a17df53d..611acec3365 100644 --- a/llvm/test/MC/Disassembler/SystemZ/insns.txt +++ b/llvm/test/MC/Disassembler/SystemZ/insns.txt @@ -3646,6 +3646,102 @@ # CHECK: csy %r15, %r0, 0 0xeb 0xf0 0x00 0x00 0x00 0x14 +# CHECK: cu12 %r0, %r0 +0xb2 0xa7 0x00 0x00 + +# CHECK: cu12 %r0, %r14 +0xb2 0xa7 0x00 0x0e + +# CHECK: cu12 %r14, %r0 +0xb2 0xa7 0x00 0xe0 + +# CHECK: cu12 %r6, %r8 +0xb2 0xa7 0x00 0x68 + +# CHECK: cu12 %r4, %r12, 1 +0xb2 0xa7 0x10 0x4c + +# CHECK: cu12 %r4, %r12, 15 +0xb2 0xa7 0xf0 0x4c + +# CHECK: cu14 %r0, %r0 +0xb9 0xb0 0x00 0x00 + +# CHECK: cu14 %r0, %r14 +0xb9 0xb0 0x00 0x0e + +# CHECK: cu14 %r14, %r0 +0xb9 0xb0 0x00 0xe0 + +# CHECK: cu14 %r6, %r8 +0xb9 0xb0 0x00 0x68 + +# CHECK: cu14 %r4, %r12, 1 +0xb9 0xb0 0x10 0x4c + +# CHECK: cu14 %r4, %r12, 15 +0xb9 0xb0 0xf0 0x4c + +# CHECK: cu21 %r0, %r0 +0xb2 0xa6 0x00 0x00 + +# CHECK: cu21 %r0, %r14 +0xb2 0xa6 0x00 0x0e + +# CHECK: cu21 %r14, %r0 +0xb2 0xa6 0x00 0xe0 + +# CHECK: cu21 %r6, %r8 +0xb2 0xa6 0x00 0x68 + +# CHECK: cu21 %r4, %r12, 1 +0xb2 0xa6 0x10 0x4c + +# CHECK: cu21 %r4, %r12, 15 +0xb2 0xa6 0xf0 0x4c + +# CHECK: cu24 %r0, %r0 +0xb9 0xb1 0x00 0x00 + +# CHECK: cu24 %r0, %r14 +0xb9 0xb1 0x00 0x0e + +# CHECK: cu24 %r14, %r0 +0xb9 0xb1 0x00 0xe0 + +# CHECK: cu24 %r6, %r8 +0xb9 0xb1 0x00 0x68 + +# CHECK: cu24 %r4, %r12, 1 +0xb9 0xb1 0x10 0x4c + +# CHECK: cu24 %r4, %r12, 15 +0xb9 0xb1 0xf0 0x4c + +# CHECK: cu41 %r0, %r0 +0xb9 0xb2 0x00 0x00 + +# CHECK: cu41 %r0, %r14 +0xb9 0xb2 0x00 0x0e + +# CHECK: cu41 %r14, %r0 +0xb9 0xb2 0x00 0xe0 + +# CHECK: cu41 %r6, %r8 +0xb9 0xb2 0x00 0x68 + +# CHECK: cu42 %r0, %r0 +0xb9 0xb3 0x00 0x00 + +# CHECK: cu42 %r0, %r14 +0xb9 0xb3 0x00 0x0e + +# CHECK: cu42 %r14, %r0 +0xb9 0xb3 0x00 0xe0 + +# CHECK: cu42 %r6, %r8 +0xb9 0xb3 0x00 0x68 + # CHECK: cuse %r0, %r0 0xb2 0x57 0x00 0x00 @@ -11305,6 +11401,234 @@ # CHECK: tmy 524287(%r15), 42 0xeb 0x2a 0xff 0xff 0x7f 0x51 +# CHECK: tr 0(1), 0 +0xdc 0x00 0x00 0x00 0x00 0x00 + +# CHECK: tr 0(1), 0(%r1) +0xdc 0x00 0x00 0x00 0x10 0x00 + +# CHECK: tr 0(1), 0(%r15) +0xdc 0x00 0x00 0x00 0xf0 0x00 + +# CHECK: tr 0(1), 4095 +0xdc 0x00 0x00 0x00 0x0f 0xff + +# CHECK: tr 0(1), 4095(%r1) +0xdc 0x00 0x00 0x00 0x1f 0xff + +# CHECK: tr 0(1), 4095(%r15) +0xdc 0x00 0x00 0x00 0xff 0xff + +# CHECK: tr 0(1,%r1), 0 +0xdc 0x00 0x10 0x00 0x00 0x00 + +# CHECK: tr 0(1,%r15), 0 +0xdc 0x00 0xf0 0x00 0x00 0x00 + +# CHECK: tr 4095(1,%r1), 0 +0xdc 0x00 0x1f 0xff 0x00 0x00 + +# CHECK: tr 4095(1,%r15), 0 +0xdc 0x00 0xff 0xff 0x00 0x00 + +# CHECK: tr 0(256,%r1), 0 +0xdc 0xff 0x10 0x00 0x00 0x00 + +# CHECK: tr 0(256,%r15), 0 +0xdc 0xff 0xf0 0x00 0x00 0x00 + +# CHECK: tre %r0, %r0 +0xb2 0xa5 0x00 0x00 + +# CHECK: tre %r0, %r15 +0xb2 0xa5 0x00 0x0f + +# CHECK: tre %r14, %r0 +0xb2 0xa5 0x00 0xe0 + +# CHECK: tre %r6, %r8 +0xb2 0xa5 0x00 0x68 + +# CHECK: troo %r0, %r0 +0xb9 0x93 0x00 0x00 + +# CHECK: troo %r0, %r15 +0xb9 0x93 0x00 0x0f + +# CHECK: troo %r14, %r0 +0xb9 0x93 0x00 0xe0 + +# CHECK: troo %r6, %r8 +0xb9 0x93 0x00 0x68 + +# CHECK: troo %r4, %r12, 1 +0xb9 0x93 0x10 0x4c + +# CHECK: troo %r4, %r12, 15 +0xb9 0x93 0xf0 0x4c + +# CHECK: trot %r0, %r0 +0xb9 0x92 0x00 0x00 + +# CHECK: trot %r0, %r15 +0xb9 0x92 0x00 0x0f + +# CHECK: trot %r14, %r0 +0xb9 0x92 0x00 0xe0 + +# CHECK: trot %r6, %r8 +0xb9 0x92 0x00 0x68 + +# CHECK: trot %r4, %r12, 1 +0xb9 0x92 0x10 0x4c + +# CHECK: trot %r4, %r12, 15 +0xb9 0x92 0xf0 0x4c + +# CHECK: trt 0(1), 0 +0xdd 0x00 0x00 0x00 0x00 0x00 + +# CHECK: trt 0(1), 0(%r1) +0xdd 0x00 0x00 0x00 0x10 0x00 + +# CHECK: trt 0(1), 0(%r15) +0xdd 0x00 0x00 0x00 0xf0 0x00 + +# CHECK: trt 0(1), 4095 +0xdd 0x00 0x00 0x00 0x0f 0xff + +# CHECK: trt 0(1), 4095(%r1) +0xdd 0x00 0x00 0x00 0x1f 0xff + +# CHECK: trt 0(1), 4095(%r15) +0xdd 0x00 0x00 0x00 0xff 0xff + +# CHECK: trt 0(1,%r1), 0 +0xdd 0x00 0x10 0x00 0x00 0x00 + +# CHECK: trt 0(1,%r15), 0 +0xdd 0x00 0xf0 0x00 0x00 0x00 + +# CHECK: trt 4095(1,%r1), 0 +0xdd 0x00 0x1f 0xff 0x00 0x00 + +# CHECK: trt 4095(1,%r15), 0 +0xdd 0x00 0xff 0xff 0x00 0x00 + +# CHECK: trt 0(256,%r1), 0 +0xdd 0xff 0x10 0x00 0x00 0x00 + +# CHECK: trt 0(256,%r15), 0 +0xdd 0xff 0xf0 0x00 0x00 0x00 + +# CHECK: trte %r0, %r0 +0xb9 0xbf 0x00 0x00 + +# CHECK: trte %r0, %r15 +0xb9 0xbf 0x00 0x0f + +# CHECK: trte %r14, %r0 +0xb9 0xbf 0x00 0xe0 + +# CHECK: trte %r6, %r8 +0xb9 0xbf 0x00 0x68 + +# CHECK: trte %r4, %r12, 1 +0xb9 0xbf 0x10 0x4c + +# CHECK: trte %r4, %r12, 15 +0xb9 0xbf 0xf0 0x4c + +# CHECK: trto %r0, %r0 +0xb9 0x91 0x00 0x00 + +# CHECK: trto %r0, %r15 +0xb9 0x91 0x00 0x0f + +# CHECK: trto %r14, %r0 +0xb9 0x91 0x00 0xe0 + +# CHECK: trto %r6, %r8 +0xb9 0x91 0x00 0x68 + +# CHECK: trto %r4, %r12, 1 +0xb9 0x91 0x10 0x4c + +# CHECK: trto %r4, %r12, 15 +0xb9 0x91 0xf0 0x4c + +# CHECK: trtr 0(1), 0 +0xd0 0x00 0x00 0x00 0x00 0x00 + +# CHECK: trtr 0(1), 0(%r1) +0xd0 0x00 0x00 0x00 0x10 0x00 + +# CHECK: trtr 0(1), 0(%r15) +0xd0 0x00 0x00 0x00 0xf0 0x00 + +# CHECK: trtr 0(1), 4095 +0xd0 0x00 0x00 0x00 0x0f 0xff + +# CHECK: trtr 0(1), 4095(%r1) +0xd0 0x00 0x00 0x00 0x1f 0xff + +# CHECK: trtr 0(1), 4095(%r15) +0xd0 0x00 0x00 0x00 0xff 0xff + +# CHECK: trtr 0(1,%r1), 0 +0xd0 0x00 0x10 0x00 0x00 0x00 + +# CHECK: trtr 0(1,%r15), 0 +0xd0 0x00 0xf0 0x00 0x00 0x00 + +# CHECK: trtr 4095(1,%r1), 0 +0xd0 0x00 0x1f 0xff 0x00 0x00 + +# CHECK: trtr 4095(1,%r15), 0 +0xd0 0x00 0xff 0xff 0x00 0x00 + +# CHECK: trtr 0(256,%r1), 0 +0xd0 0xff 0x10 0x00 0x00 0x00 + +# CHECK: trtr 0(256,%r15), 0 +0xd0 0xff 0xf0 0x00 0x00 0x00 + +# CHECK: trtre %r0, %r0 +0xb9 0xbd 0x00 0x00 + +# CHECK: trtre %r0, %r15 +0xb9 0xbd 0x00 0x0f + +# CHECK: trtre %r14, %r0 +0xb9 0xbd 0x00 0xe0 + +# CHECK: trtre %r6, %r8 +0xb9 0xbd 0x00 0x68 + +# CHECK: trtre %r4, %r12, 1 +0xb9 0xbd 0x10 0x4c + +# CHECK: trtre %r4, %r12, 15 +0xb9 0xbd 0xf0 0x4c + +# CHECK: trtt %r0, %r0 +0xb9 0x90 0x00 0x00 + +# CHECK: trtt %r0, %r15 +0xb9 0x90 0x00 0x0f + +# CHECK: trtt %r14, %r0 +0xb9 0x90 0x00 0xe0 + +# CHECK: trtt %r6, %r8 +0xb9 0x90 0x00 0x68 + +# CHECK: trtt %r4, %r12, 1 +0xb9 0x90 0x10 0x4c + +# CHECK: trtt %r4, %r12, 15 +0xb9 0x90 0xf0 0x4c + # CHECK: ts 0 0x93 0x00 0x00 0x00 diff --git a/llvm/test/MC/SystemZ/insn-bad.s b/llvm/test/MC/SystemZ/insn-bad.s index d03d6c962dd..96e9ef67cad 100644 --- a/llvm/test/MC/SystemZ/insn-bad.s +++ b/llvm/test/MC/SystemZ/insn-bad.s @@ -1587,6 +1587,78 @@ csy %r0, %r0, 0(%r1,%r2) #CHECK: error: invalid register pair +#CHECK: cu12 %r1, %r0 +#CHECK: error: invalid register pair +#CHECK: cu12 %r0, %r1 +#CHECK: error: invalid operand +#CHECK: cu12 %r2, %r4, -1 +#CHECK: error: invalid operand +#CHECK: cu12 %r2, %r4, 16 + + cu12 %r1, %r0 + cu12 %r0, %r1 + cu12 %r2, %r4, -1 + cu12 %r2, %r4, 16 + +#CHECK: error: invalid register pair +#CHECK: cu14 %r1, %r0 +#CHECK: error: invalid register pair +#CHECK: cu14 %r0, %r1 +#CHECK: error: invalid operand +#CHECK: cu14 %r2, %r4, -1 +#CHECK: error: invalid operand +#CHECK: cu14 %r2, %r4, 16 + + cu14 %r1, %r0 + cu14 %r0, %r1 + cu14 %r2, %r4, -1 + cu14 %r2, %r4, 16 + +#CHECK: error: invalid register pair +#CHECK: cu21 %r1, %r0 +#CHECK: error: invalid register pair +#CHECK: cu21 %r0, %r1 +#CHECK: error: invalid operand +#CHECK: cu21 %r2, %r4, -1 +#CHECK: error: invalid operand +#CHECK: cu21 %r2, %r4, 16 + + cu21 %r1, %r0 + cu21 %r0, %r1 + cu21 %r2, %r4, -1 + cu21 %r2, %r4, 16 + +#CHECK: error: invalid register pair +#CHECK: cu24 %r1, %r0 +#CHECK: error: invalid register pair +#CHECK: cu24 %r0, %r1 +#CHECK: error: invalid operand +#CHECK: cu24 %r2, %r4, -1 +#CHECK: error: invalid operand +#CHECK: cu24 %r2, %r4, 16 + + cu24 %r1, %r0 + cu24 %r0, %r1 + cu24 %r2, %r4, -1 + cu24 %r2, %r4, 16 + +#CHECK: error: invalid register pair +#CHECK: cu41 %r1, %r0 +#CHECK: error: invalid register pair +#CHECK: cu41 %r0, %r1 + + cu41 %r1, %r0 + cu41 %r0, %r1 + +#CHECK: error: invalid register pair +#CHECK: cu42 %r1, %r0 +#CHECK: error: invalid register pair +#CHECK: cu42 %r0, %r1 + + cu42 %r1, %r0 + cu42 %r0, %r1 + +#CHECK: error: invalid register pair #CHECK: cuse %r1, %r0 #CHECK: error: invalid register pair #CHECK: cuse %r0, %r1 @@ -1595,6 +1667,34 @@ cuse %r0, %r1 #CHECK: error: invalid register pair +#CHECK: cutfu %r1, %r0 +#CHECK: error: invalid register pair +#CHECK: cutfu %r0, %r1 +#CHECK: error: invalid operand +#CHECK: cutfu %r2, %r4, -1 +#CHECK: error: invalid operand +#CHECK: cutfu %r2, %r4, 16 + + cutfu %r1, %r0 + cutfu %r0, %r1 + cutfu %r2, %r4, -1 + cutfu %r2, %r4, 16 + +#CHECK: error: invalid register pair +#CHECK: cuutf %r1, %r0 +#CHECK: error: invalid register pair +#CHECK: cuutf %r0, %r1 +#CHECK: error: invalid operand +#CHECK: cuutf %r2, %r4, -1 +#CHECK: error: invalid operand +#CHECK: cuutf %r2, %r4, 16 + + cuutf %r1, %r0 + cuutf %r0, %r1 + cuutf %r2, %r4, -1 + cuutf %r2, %r4, 16 + +#CHECK: error: invalid register pair #CHECK: cxbr %f0, %f2 #CHECK: error: invalid register pair #CHECK: cxbr %f2, %f0 @@ -4196,6 +4296,209 @@ tmy 0, -1 tmy 0, 256 +#CHECK: error: missing length in address +#CHECK: tr 0, 0 +#CHECK: error: missing length in address +#CHECK: tr 0(%r1), 0(%r1) +#CHECK: error: invalid use of length addressing +#CHECK: tr 0(1,%r1), 0(2,%r1) +#CHECK: error: invalid operand +#CHECK: tr 0(0,%r1), 0(%r1) +#CHECK: error: invalid operand +#CHECK: tr 0(257,%r1), 0(%r1) +#CHECK: error: invalid operand +#CHECK: tr -1(1,%r1), 0(%r1) +#CHECK: error: invalid operand +#CHECK: tr 4096(1,%r1), 0(%r1) +#CHECK: error: invalid operand +#CHECK: tr 0(1,%r1), -1(%r1) +#CHECK: error: invalid operand +#CHECK: tr 0(1,%r1), 4096(%r1) +#CHECK: error: %r0 used in an address +#CHECK: tr 0(1,%r0), 0(%r1) +#CHECK: error: %r0 used in an address +#CHECK: tr 0(1,%r1), 0(%r0) +#CHECK: error: invalid use of indexed addressing +#CHECK: tr 0(%r1,%r2), 0(%r1) +#CHECK: error: invalid use of indexed addressing +#CHECK: tr 0(1,%r2), 0(%r1,%r2) +#CHECK: error: unknown token in expression +#CHECK: tr 0(-), 0 + + tr 0, 0 + tr 0(%r1), 0(%r1) + tr 0(1,%r1), 0(2,%r1) + tr 0(0,%r1), 0(%r1) + tr 0(257,%r1), 0(%r1) + tr -1(1,%r1), 0(%r1) + tr 4096(1,%r1), 0(%r1) + tr 0(1,%r1), -1(%r1) + tr 0(1,%r1), 4096(%r1) + tr 0(1,%r0), 0(%r1) + tr 0(1,%r1), 0(%r0) + tr 0(%r1,%r2), 0(%r1) + tr 0(1,%r2), 0(%r1,%r2) + tr 0(-), 0 + +#CHECK: error: invalid register pair +#CHECK: tre %r1, %r0 + + tre %r1, %r0 + +#CHECK: error: invalid register pair +#CHECK: troo %r1, %r0 +#CHECK: error: invalid operand +#CHECK: troo %r2, %r4, -1 +#CHECK: error: invalid operand +#CHECK: troo %r2, %r4, 16 + + troo %r1, %r0 + troo %r2, %r4, -1 + troo %r2, %r4, 16 + +#CHECK: error: invalid register pair +#CHECK: trot %r1, %r0 +#CHECK: error: invalid operand +#CHECK: trot %r2, %r4, -1 +#CHECK: error: invalid operand +#CHECK: trot %r2, %r4, 16 + + trot %r1, %r0 + trot %r2, %r4, -1 + trot %r2, %r4, 16 + +#CHECK: error: missing length in address +#CHECK: trt 0, 0 +#CHECK: error: missing length in address +#CHECK: trt 0(%r1), 0(%r1) +#CHECK: error: invalid use of length addressing +#CHECK: trt 0(1,%r1), 0(2,%r1) +#CHECK: error: invalid operand +#CHECK: trt 0(0,%r1), 0(%r1) +#CHECK: error: invalid operand +#CHECK: trt 0(257,%r1), 0(%r1) +#CHECK: error: invalid operand +#CHECK: trt -1(1,%r1), 0(%r1) +#CHECK: error: invalid operand +#CHECK: trt 4096(1,%r1), 0(%r1) +#CHECK: error: invalid operand +#CHECK: trt 0(1,%r1), -1(%r1) +#CHECK: error: invalid operand +#CHECK: trt 0(1,%r1), 4096(%r1) +#CHECK: error: %r0 used in an address +#CHECK: trt 0(1,%r0), 0(%r1) +#CHECK: error: %r0 used in an address +#CHECK: trt 0(1,%r1), 0(%r0) +#CHECK: error: invalid use of indexed addressing +#CHECK: trt 0(%r1,%r2), 0(%r1) +#CHECK: error: invalid use of indexed addressing +#CHECK: trt 0(1,%r2), 0(%r1,%r2) +#CHECK: error: unknown token in expression +#CHECK: trt 0(-), 0 + + trt 0, 0 + trt 0(%r1), 0(%r1) + trt 0(1,%r1), 0(2,%r1) + trt 0(0,%r1), 0(%r1) + trt 0(257,%r1), 0(%r1) + trt -1(1,%r1), 0(%r1) + trt 4096(1,%r1), 0(%r1) + trt 0(1,%r1), -1(%r1) + trt 0(1,%r1), 4096(%r1) + trt 0(1,%r0), 0(%r1) + trt 0(1,%r1), 0(%r0) + trt 0(%r1,%r2), 0(%r1) + trt 0(1,%r2), 0(%r1,%r2) + trt 0(-), 0 + +#CHECK: error: invalid register pair +#CHECK: trte %r1, %r0 +#CHECK: error: invalid operand +#CHECK: trte %r2, %r4, -1 +#CHECK: error: invalid operand +#CHECK: trte %r2, %r4, 16 + + trte %r1, %r0 + trte %r2, %r4, -1 + trte %r2, %r4, 16 + +#CHECK: error: invalid register pair +#CHECK: trto %r1, %r0 +#CHECK: error: invalid operand +#CHECK: trto %r2, %r4, -1 +#CHECK: error: invalid operand +#CHECK: trto %r2, %r4, 16 + + trto %r1, %r0 + trto %r2, %r4, -1 + trto %r2, %r4, 16 + +#CHECK: error: missing length in address +#CHECK: trtr 0, 0 +#CHECK: error: missing length in address +#CHECK: trtr 0(%r1), 0(%r1) +#CHECK: error: invalid use of length addressing +#CHECK: trtr 0(1,%r1), 0(2,%r1) +#CHECK: error: invalid operand +#CHECK: trtr 0(0,%r1), 0(%r1) +#CHECK: error: invalid operand +#CHECK: trtr 0(257,%r1), 0(%r1) +#CHECK: error: invalid operand +#CHECK: trtr -1(1,%r1), 0(%r1) +#CHECK: error: invalid operand +#CHECK: trtr 4096(1,%r1), 0(%r1) +#CHECK: error: invalid operand +#CHECK: trtr 0(1,%r1), -1(%r1) +#CHECK: error: invalid operand +#CHECK: trtr 0(1,%r1), 4096(%r1) +#CHECK: error: %r0 used in an address +#CHECK: trtr 0(1,%r0), 0(%r1) +#CHECK: error: %r0 used in an address +#CHECK: trtr 0(1,%r1), 0(%r0) +#CHECK: error: invalid use of indexed addressing +#CHECK: trtr 0(%r1,%r2), 0(%r1) +#CHECK: error: invalid use of indexed addressing +#CHECK: trtr 0(1,%r2), 0(%r1,%r2) +#CHECK: error: unknown token in expression +#CHECK: trtr 0(-), 0 + + trtr 0, 0 + trtr 0(%r1), 0(%r1) + trtr 0(1,%r1), 0(2,%r1) + trtr 0(0,%r1), 0(%r1) + trtr 0(257,%r1), 0(%r1) + trtr -1(1,%r1), 0(%r1) + trtr 4096(1,%r1), 0(%r1) + trtr 0(1,%r1), -1(%r1) + trtr 0(1,%r1), 4096(%r1) + trtr 0(1,%r0), 0(%r1) + trtr 0(1,%r1), 0(%r0) + trtr 0(%r1,%r2), 0(%r1) + trtr 0(1,%r2), 0(%r1,%r2) + trtr 0(-), 0 + +#CHECK: error: invalid register pair +#CHECK: trtre %r1, %r0 +#CHECK: error: invalid operand +#CHECK: trtre %r2, %r4, -1 +#CHECK: error: invalid operand +#CHECK: trtre %r2, %r4, 16 + + trtre %r1, %r0 + trtre %r2, %r4, -1 + trtre %r2, %r4, 16 + +#CHECK: error: invalid register pair +#CHECK: trtt %r1, %r0 +#CHECK: error: invalid operand +#CHECK: trtt %r2, %r4, -1 +#CHECK: error: invalid operand +#CHECK: trtt %r2, %r4, 16 + + trtt %r1, %r0 + trtt %r2, %r4, -1 + trtt %r2, %r4, 16 + #CHECK: error: invalid operand #CHECK: ts -1 #CHECK: error: invalid operand diff --git a/llvm/test/MC/SystemZ/insn-good.s b/llvm/test/MC/SystemZ/insn-good.s index d3060356522..e9301699aa4 100644 --- a/llvm/test/MC/SystemZ/insn-good.s +++ b/llvm/test/MC/SystemZ/insn-good.s @@ -5709,6 +5709,82 @@ csy %r0, %r15, 0 csy %r15, %r0, 0 +#CHECK: cu12 %r0, %r0 # encoding: [0xb2,0xa7,0x00,0x00] +#CHECK: cu12 %r0, %r14 # encoding: [0xb2,0xa7,0x00,0x0e] +#CHECK: cu12 %r14, %r0 # encoding: [0xb2,0xa7,0x00,0xe0] +#CHECK: cu12 %r6, %r8 # encoding: [0xb2,0xa7,0x00,0x68] +#CHECK: cu12 %r4, %r12, 0 # encoding: [0xb2,0xa7,0x00,0x4c] +#CHECK: cu12 %r4, %r12, 15 # encoding: [0xb2,0xa7,0xf0,0x4c] + + cu12 %r0, %r0 + cu12 %r0, %r14 + cu12 %r14, %r0 + cu12 %r6, %r8 + cu12 %r4, %r12, 0 + cu12 %r4, %r12, 15 + +#CHECK: cu14 %r0, %r0 # encoding: [0xb9,0xb0,0x00,0x00] +#CHECK: cu14 %r0, %r14 # encoding: [0xb9,0xb0,0x00,0x0e] +#CHECK: cu14 %r14, %r0 # encoding: [0xb9,0xb0,0x00,0xe0] +#CHECK: cu14 %r6, %r8 # encoding: [0xb9,0xb0,0x00,0x68] +#CHECK: cu14 %r4, %r12, 0 # encoding: [0xb9,0xb0,0x00,0x4c] +#CHECK: cu14 %r4, %r12, 15 # encoding: [0xb9,0xb0,0xf0,0x4c] + + cu14 %r0, %r0 + cu14 %r0, %r14 + cu14 %r14, %r0 + cu14 %r6, %r8 + cu14 %r4, %r12, 0 + cu14 %r4, %r12, 15 + +#CHECK: cu21 %r0, %r0 # encoding: [0xb2,0xa6,0x00,0x00] +#CHECK: cu21 %r0, %r14 # encoding: [0xb2,0xa6,0x00,0x0e] +#CHECK: cu21 %r14, %r0 # encoding: [0xb2,0xa6,0x00,0xe0] +#CHECK: cu21 %r6, %r8 # encoding: [0xb2,0xa6,0x00,0x68] +#CHECK: cu21 %r4, %r12, 0 # encoding: [0xb2,0xa6,0x00,0x4c] +#CHECK: cu21 %r4, %r12, 15 # encoding: [0xb2,0xa6,0xf0,0x4c] + + cu21 %r0, %r0 + cu21 %r0, %r14 + cu21 %r14, %r0 + cu21 %r6, %r8 + cu21 %r4, %r12, 0 + cu21 %r4, %r12, 15 + +#CHECK: cu24 %r0, %r0 # encoding: [0xb9,0xb1,0x00,0x00] +#CHECK: cu24 %r0, %r14 # encoding: [0xb9,0xb1,0x00,0x0e] +#CHECK: cu24 %r14, %r0 # encoding: [0xb9,0xb1,0x00,0xe0] +#CHECK: cu24 %r6, %r8 # encoding: [0xb9,0xb1,0x00,0x68] +#CHECK: cu24 %r4, %r12, 0 # encoding: [0xb9,0xb1,0x00,0x4c] +#CHECK: cu24 %r4, %r12, 15 # encoding: [0xb9,0xb1,0xf0,0x4c] + + cu24 %r0, %r0 + cu24 %r0, %r14 + cu24 %r14, %r0 + cu24 %r6, %r8 + cu24 %r4, %r12, 0 + cu24 %r4, %r12, 15 + +#CHECK: cu41 %r0, %r0 # encoding: [0xb9,0xb2,0x00,0x00] +#CHECK: cu41 %r0, %r14 # encoding: [0xb9,0xb2,0x00,0x0e] +#CHECK: cu41 %r14, %r0 # encoding: [0xb9,0xb2,0x00,0xe0] +#CHECK: cu41 %r6, %r8 # encoding: [0xb9,0xb2,0x00,0x68] + + cu41 %r0, %r0 + cu41 %r0, %r14 + cu41 %r14, %r0 + cu41 %r6, %r8 + +#CHECK: cu42 %r0, %r0 # encoding: [0xb9,0xb3,0x00,0x00] +#CHECK: cu42 %r0, %r14 # encoding: [0xb9,0xb3,0x00,0x0e] +#CHECK: cu42 %r14, %r0 # encoding: [0xb9,0xb3,0x00,0xe0] +#CHECK: cu42 %r6, %r8 # encoding: [0xb9,0xb3,0x00,0x68] + + cu42 %r0, %r0 + cu42 %r0, %r14 + cu42 %r14, %r0 + cu42 %r6, %r8 + #CHECK: cuse %r0, %r8 # encoding: [0xb2,0x57,0x00,0x08] #CHECK: cuse %r0, %r14 # encoding: [0xb2,0x57,0x00,0x0e] #CHECK: cuse %r14, %r0 # encoding: [0xb2,0x57,0x00,0xe0] @@ -5719,6 +5795,34 @@ cuse %r14, %r0 cuse %r14, %r8 +#CHECK: cutfu %r0, %r0 # encoding: [0xb2,0xa7,0x00,0x00] +#CHECK: cutfu %r0, %r14 # encoding: [0xb2,0xa7,0x00,0x0e] +#CHECK: cutfu %r14, %r0 # encoding: [0xb2,0xa7,0x00,0xe0] +#CHECK: cutfu %r6, %r8 # encoding: [0xb2,0xa7,0x00,0x68] +#CHECK: cutfu %r4, %r12, 0 # encoding: [0xb2,0xa7,0x00,0x4c] +#CHECK: cutfu %r4, %r12, 15 # encoding: [0xb2,0xa7,0xf0,0x4c] + + cutfu %r0, %r0 + cutfu %r0, %r14 + cutfu %r14, %r0 + cutfu %r6, %r8 + cutfu %r4, %r12, 0 + cutfu %r4, %r12, 15 + +#CHECK: cuutf %r0, %r0 # encoding: [0xb2,0xa6,0x00,0x00] +#CHECK: cuutf %r0, %r14 # encoding: [0xb2,0xa6,0x00,0x0e] +#CHECK: cuutf %r14, %r0 # encoding: [0xb2,0xa6,0x00,0xe0] +#CHECK: cuutf %r6, %r8 # encoding: [0xb2,0xa6,0x00,0x68] +#CHECK: cuutf %r4, %r12, 0 # encoding: [0xb2,0xa6,0x00,0x4c] +#CHECK: cuutf %r4, %r12, 15 # encoding: [0xb2,0xa6,0xf0,0x4c] + + cuutf %r0, %r0 + cuutf %r0, %r14 + cuutf %r14, %r0 + cuutf %r6, %r8 + cuutf %r4, %r12, 0 + cuutf %r4, %r12, 15 + #CHECK: cxbr %f0, %f0 # encoding: [0xb3,0x49,0x00,0x00] #CHECK: cxbr %f0, %f13 # encoding: [0xb3,0x49,0x00,0x0d] #CHECK: cxbr %f8, %f8 # encoding: [0xb3,0x49,0x00,0x88] @@ -10875,6 +10979,178 @@ tmy 524287(%r1), 42 tmy 524287(%r15), 42 +#CHECK: tr 0(1), 0 # encoding: [0xdc,0x00,0x00,0x00,0x00,0x00] +#CHECK: tr 0(1), 0(%r1) # encoding: [0xdc,0x00,0x00,0x00,0x10,0x00] +#CHECK: tr 0(1), 0(%r15) # encoding: [0xdc,0x00,0x00,0x00,0xf0,0x00] +#CHECK: tr 0(1), 4095 # encoding: [0xdc,0x00,0x00,0x00,0x0f,0xff] +#CHECK: tr 0(1), 4095(%r1) # encoding: [0xdc,0x00,0x00,0x00,0x1f,0xff] +#CHECK: tr 0(1), 4095(%r15) # encoding: [0xdc,0x00,0x00,0x00,0xff,0xff] +#CHECK: tr 0(1,%r1), 0 # encoding: [0xdc,0x00,0x10,0x00,0x00,0x00] +#CHECK: tr 0(1,%r15), 0 # encoding: [0xdc,0x00,0xf0,0x00,0x00,0x00] +#CHECK: tr 4095(1,%r1), 0 # encoding: [0xdc,0x00,0x1f,0xff,0x00,0x00] +#CHECK: tr 4095(1,%r15), 0 # encoding: [0xdc,0x00,0xff,0xff,0x00,0x00] +#CHECK: tr 0(256,%r1), 0 # encoding: [0xdc,0xff,0x10,0x00,0x00,0x00] +#CHECK: tr 0(256,%r15), 0 # encoding: [0xdc,0xff,0xf0,0x00,0x00,0x00] + + tr 0(1), 0 + tr 0(1), 0(%r1) + tr 0(1), 0(%r15) + tr 0(1), 4095 + tr 0(1), 4095(%r1) + tr 0(1), 4095(%r15) + tr 0(1,%r1), 0 + tr 0(1,%r15), 0 + tr 4095(1,%r1), 0 + tr 4095(1,%r15), 0 + tr 0(256,%r1), 0 + tr 0(256,%r15), 0 + +#CHECK: tre %r0, %r0 # encoding: [0xb2,0xa5,0x00,0x00] +#CHECK: tre %r0, %r15 # encoding: [0xb2,0xa5,0x00,0x0f] +#CHECK: tre %r14, %r0 # encoding: [0xb2,0xa5,0x00,0xe0] +#CHECK: tre %r6, %r8 # encoding: [0xb2,0xa5,0x00,0x68] + + tre %r0, %r0 + tre %r0, %r15 + tre %r14, %r0 + tre %r6, %r8 + +#CHECK: troo %r0, %r0 # encoding: [0xb9,0x93,0x00,0x00] +#CHECK: troo %r0, %r15 # encoding: [0xb9,0x93,0x00,0x0f] +#CHECK: troo %r14, %r0 # encoding: [0xb9,0x93,0x00,0xe0] +#CHECK: troo %r6, %r8 # encoding: [0xb9,0x93,0x00,0x68] +#CHECK: troo %r4, %r13, 0 # encoding: [0xb9,0x93,0x00,0x4d] +#CHECK: troo %r4, %r13, 15 # encoding: [0xb9,0x93,0xf0,0x4d] + + troo %r0, %r0 + troo %r0, %r15 + troo %r14, %r0 + troo %r6, %r8 + troo %r4, %r13, 0 + troo %r4, %r13, 15 + +#CHECK: trot %r0, %r0 # encoding: [0xb9,0x92,0x00,0x00] +#CHECK: trot %r0, %r15 # encoding: [0xb9,0x92,0x00,0x0f] +#CHECK: trot %r14, %r0 # encoding: [0xb9,0x92,0x00,0xe0] +#CHECK: trot %r6, %r8 # encoding: [0xb9,0x92,0x00,0x68] +#CHECK: trot %r4, %r13, 0 # encoding: [0xb9,0x92,0x00,0x4d] +#CHECK: trot %r4, %r13, 15 # encoding: [0xb9,0x92,0xf0,0x4d] + + trot %r0, %r0 + trot %r0, %r15 + trot %r14, %r0 + trot %r6, %r8 + trot %r4, %r13, 0 + trot %r4, %r13, 15 + +#CHECK: trt 0(1), 0 # encoding: [0xdd,0x00,0x00,0x00,0x00,0x00] +#CHECK: trt 0(1), 0(%r1) # encoding: [0xdd,0x00,0x00,0x00,0x10,0x00] +#CHECK: trt 0(1), 0(%r15) # encoding: [0xdd,0x00,0x00,0x00,0xf0,0x00] +#CHECK: trt 0(1), 4095 # encoding: [0xdd,0x00,0x00,0x00,0x0f,0xff] +#CHECK: trt 0(1), 4095(%r1) # encoding: [0xdd,0x00,0x00,0x00,0x1f,0xff] +#CHECK: trt 0(1), 4095(%r15) # encoding: [0xdd,0x00,0x00,0x00,0xff,0xff] +#CHECK: trt 0(1,%r1), 0 # encoding: [0xdd,0x00,0x10,0x00,0x00,0x00] +#CHECK: trt 0(1,%r15), 0 # encoding: [0xdd,0x00,0xf0,0x00,0x00,0x00] +#CHECK: trt 4095(1,%r1), 0 # encoding: [0xdd,0x00,0x1f,0xff,0x00,0x00] +#CHECK: trt 4095(1,%r15), 0 # encoding: [0xdd,0x00,0xff,0xff,0x00,0x00] +#CHECK: trt 0(256,%r1), 0 # encoding: [0xdd,0xff,0x10,0x00,0x00,0x00] +#CHECK: trt 0(256,%r15), 0 # encoding: [0xdd,0xff,0xf0,0x00,0x00,0x00] + + trt 0(1), 0 + trt 0(1), 0(%r1) + trt 0(1), 0(%r15) + trt 0(1), 4095 + trt 0(1), 4095(%r1) + trt 0(1), 4095(%r15) + trt 0(1,%r1), 0 + trt 0(1,%r15), 0 + trt 4095(1,%r1), 0 + trt 4095(1,%r15), 0 + trt 0(256,%r1), 0 + trt 0(256,%r15), 0 + +#CHECK: trte %r0, %r0 # encoding: [0xb9,0xbf,0x00,0x00] +#CHECK: trte %r0, %r15 # encoding: [0xb9,0xbf,0x00,0x0f] +#CHECK: trte %r14, %r0 # encoding: [0xb9,0xbf,0x00,0xe0] +#CHECK: trte %r6, %r8 # encoding: [0xb9,0xbf,0x00,0x68] +#CHECK: trte %r4, %r13, 0 # encoding: [0xb9,0xbf,0x00,0x4d] +#CHECK: trte %r4, %r13, 15 # encoding: [0xb9,0xbf,0xf0,0x4d] + + trte %r0, %r0 + trte %r0, %r15 + trte %r14, %r0 + trte %r6, %r8 + trte %r4, %r13, 0 + trte %r4, %r13, 15 + +#CHECK: trto %r0, %r0 # encoding: [0xb9,0x91,0x00,0x00] +#CHECK: trto %r0, %r15 # encoding: [0xb9,0x91,0x00,0x0f] +#CHECK: trto %r14, %r0 # encoding: [0xb9,0x91,0x00,0xe0] +#CHECK: trto %r6, %r8 # encoding: [0xb9,0x91,0x00,0x68] +#CHECK: trto %r4, %r13, 0 # encoding: [0xb9,0x91,0x00,0x4d] +#CHECK: trto %r4, %r13, 15 # encoding: [0xb9,0x91,0xf0,0x4d] + + trto %r0, %r0 + trto %r0, %r15 + trto %r14, %r0 + trto %r6, %r8 + trto %r4, %r13, 0 + trto %r4, %r13, 15 + +#CHECK: trtr 0(1), 0 # encoding: [0xd0,0x00,0x00,0x00,0x00,0x00] +#CHECK: trtr 0(1), 0(%r1) # encoding: [0xd0,0x00,0x00,0x00,0x10,0x00] +#CHECK: trtr 0(1), 0(%r15) # encoding: [0xd0,0x00,0x00,0x00,0xf0,0x00] +#CHECK: trtr 0(1), 4095 # encoding: [0xd0,0x00,0x00,0x00,0x0f,0xff] +#CHECK: trtr 0(1), 4095(%r1) # encoding: [0xd0,0x00,0x00,0x00,0x1f,0xff] +#CHECK: trtr 0(1), 4095(%r15) # encoding: [0xd0,0x00,0x00,0x00,0xff,0xff] +#CHECK: trtr 0(1,%r1), 0 # encoding: [0xd0,0x00,0x10,0x00,0x00,0x00] +#CHECK: trtr 0(1,%r15), 0 # encoding: [0xd0,0x00,0xf0,0x00,0x00,0x00] +#CHECK: trtr 4095(1,%r1), 0 # encoding: [0xd0,0x00,0x1f,0xff,0x00,0x00] +#CHECK: trtr 4095(1,%r15), 0 # encoding: [0xd0,0x00,0xff,0xff,0x00,0x00] +#CHECK: trtr 0(256,%r1), 0 # encoding: [0xd0,0xff,0x10,0x00,0x00,0x00] +#CHECK: trtr 0(256,%r15), 0 # encoding: [0xd0,0xff,0xf0,0x00,0x00,0x00] + + trtr 0(1), 0 + trtr 0(1), 0(%r1) + trtr 0(1), 0(%r15) + trtr 0(1), 4095 + trtr 0(1), 4095(%r1) + trtr 0(1), 4095(%r15) + trtr 0(1,%r1), 0 + trtr 0(1,%r15), 0 + trtr 4095(1,%r1), 0 + trtr 4095(1,%r15), 0 + trtr 0(256,%r1), 0 + trtr 0(256,%r15), 0 + +#CHECK: trtre %r0, %r0 # encoding: [0xb9,0xbd,0x00,0x00] +#CHECK: trtre %r0, %r15 # encoding: [0xb9,0xbd,0x00,0x0f] +#CHECK: trtre %r14, %r0 # encoding: [0xb9,0xbd,0x00,0xe0] +#CHECK: trtre %r6, %r8 # encoding: [0xb9,0xbd,0x00,0x68] +#CHECK: trtre %r4, %r13, 0 # encoding: [0xb9,0xbd,0x00,0x4d] +#CHECK: trtre %r4, %r13, 15 # encoding: [0xb9,0xbd,0xf0,0x4d] + + trtre %r0, %r0 + trtre %r0, %r15 + trtre %r14, %r0 + trtre %r6, %r8 + trtre %r4, %r13, 0 + trtre %r4, %r13, 15 + +#CHECK: trtt %r0, %r0 # encoding: [0xb9,0x90,0x00,0x00] +#CHECK: trtt %r0, %r15 # encoding: [0xb9,0x90,0x00,0x0f] +#CHECK: trtt %r14, %r0 # encoding: [0xb9,0x90,0x00,0xe0] +#CHECK: trtt %r6, %r8 # encoding: [0xb9,0x90,0x00,0x68] +#CHECK: trtt %r4, %r13, 0 # encoding: [0xb9,0x90,0x00,0x4d] +#CHECK: trtt %r4, %r13, 15 # encoding: [0xb9,0x90,0xf0,0x4d] + + trtt %r0, %r0 + trtt %r0, %r15 + trtt %r14, %r0 + trtt %r6, %r8 + trtt %r4, %r13, 0 + trtt %r4, %r13, 15 + #CHECK: ts 0 # encoding: [0x93,0x00,0x00,0x00] #CHECK: ts 0(%r1) # encoding: [0x93,0x00,0x10,0x00] #CHECK: ts 0(%r15) # encoding: [0x93,0x00,0xf0,0x00] |

