diff options
author | Richard Sandiford <rsandifo@linux.vnet.ibm.com> | 2013-10-01 12:22:49 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@linux.vnet.ibm.com> | 2013-10-01 12:22:49 +0000 |
commit | 9813dbf396e63f6d4fd99fe0f6651e831cb7414b (patch) | |
tree | 6ad5a9f5502149ac3e65afd8654182584b78bccb /test/MC | |
parent | 9a05f040e70494ab0092faa9ed10dc70ff1f4e66 (diff) | |
download | external_llvm-9813dbf396e63f6d4fd99fe0f6651e831cb7414b.zip external_llvm-9813dbf396e63f6d4fd99fe0f6651e831cb7414b.tar.gz external_llvm-9813dbf396e63f6d4fd99fe0f6651e831cb7414b.tar.bz2 |
[SystemZ] Add truncating high-word stores (STCH and STHH)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191743 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/MC')
-rw-r--r-- | test/MC/Disassembler/SystemZ/insns.txt | 60 | ||||
-rw-r--r-- | test/MC/SystemZ/insn-bad-z196.s | 16 | ||||
-rw-r--r-- | test/MC/SystemZ/insn-bad.s | 10 | ||||
-rw-r--r-- | test/MC/SystemZ/insn-good-z196.s | 44 |
4 files changed, 130 insertions, 0 deletions
diff --git a/test/MC/Disassembler/SystemZ/insns.txt b/test/MC/Disassembler/SystemZ/insns.txt index 4dd8c83..4775a5d 100644 --- a/test/MC/Disassembler/SystemZ/insns.txt +++ b/test/MC/Disassembler/SystemZ/insns.txt @@ -6664,6 +6664,36 @@ # CHECK: stc %r15, 0 0x42 0xf0 0x00 0x00 +# CHECK: stch %r0, -524288 +0xe3 0x00 0x00 0x00 0x80 0xc3 + +# CHECK: stch %r0, -1 +0xe3 0x00 0x0f 0xff 0xff 0xc3 + +# CHECK: stch %r0, 0 +0xe3 0x00 0x00 0x00 0x00 0xc3 + +# CHECK: stch %r0, 1 +0xe3 0x00 0x00 0x01 0x00 0xc3 + +# CHECK: stch %r0, 524287 +0xe3 0x00 0x0f 0xff 0x7f 0xc3 + +# CHECK: stch %r0, 0(%r1) +0xe3 0x00 0x10 0x00 0x00 0xc3 + +# CHECK: stch %r0, 0(%r15) +0xe3 0x00 0xf0 0x00 0x00 0xc3 + +# CHECK: stch %r0, 524287(%r1,%r15) +0xe3 0x01 0xff 0xff 0x7f 0xc3 + +# CHECK: stch %r0, 524287(%r15,%r1) +0xe3 0x0f 0x1f 0xff 0x7f 0xc3 + +# CHECK: stch %r15, 0 +0xe3 0xf0 0x00 0x00 0x00 0xc3 + # CHECK: stcy %r0, -524288 0xe3 0x00 0x00 0x00 0x80 0x72 @@ -6847,6 +6877,36 @@ # CHECK: sth %r15, 0 0x40 0xf0 0x00 0x00 +# CHECK: sthh %r0, -524288 +0xe3 0x00 0x00 0x00 0x80 0xc7 + +# CHECK: sthh %r0, -1 +0xe3 0x00 0x0f 0xff 0xff 0xc7 + +# CHECK: sthh %r0, 0 +0xe3 0x00 0x00 0x00 0x00 0xc7 + +# CHECK: sthh %r0, 1 +0xe3 0x00 0x00 0x01 0x00 0xc7 + +# CHECK: sthh %r0, 524287 +0xe3 0x00 0x0f 0xff 0x7f 0xc7 + +# CHECK: sthh %r0, 0(%r1) +0xe3 0x00 0x10 0x00 0x00 0xc7 + +# CHECK: sthh %r0, 0(%r15) +0xe3 0x00 0xf0 0x00 0x00 0xc7 + +# CHECK: sthh %r0, 524287(%r1,%r15) +0xe3 0x01 0xff 0xff 0x7f 0xc7 + +# CHECK: sthh %r0, 524287(%r15,%r1) +0xe3 0x0f 0x1f 0xff 0x7f 0xc7 + +# CHECK: sthh %r15, 0 +0xe3 0xf0 0x00 0x00 0x00 0xc7 + # CHECK: stfh %r0, -524288 0xe3 0x00 0x00 0x00 0x80 0xcb diff --git a/test/MC/SystemZ/insn-bad-z196.s b/test/MC/SystemZ/insn-bad-z196.s index cf623bd..0ed3370 100644 --- a/test/MC/SystemZ/insn-bad-z196.s +++ b/test/MC/SystemZ/insn-bad-z196.s @@ -245,6 +245,22 @@ srlk %r0,%r0,0(%r1,%r2) #CHECK: error: invalid operand +#CHECK: stch %r0, -524289 +#CHECK: error: invalid operand +#CHECK: stch %r0, 524288 + + stch %r0, -524289 + stch %r0, 524288 + +#CHECK: error: invalid operand +#CHECK: sthh %r0, -524289 +#CHECK: error: invalid operand +#CHECK: sthh %r0, 524288 + + sthh %r0, -524289 + sthh %r0, 524288 + +#CHECK: error: invalid operand #CHECK: stfh %r0, -524289 #CHECK: error: invalid operand #CHECK: stfh %r0, 524288 diff --git a/test/MC/SystemZ/insn-bad.s b/test/MC/SystemZ/insn-bad.s index 3a46c48..3fe3f4d 100644 --- a/test/MC/SystemZ/insn-bad.s +++ b/test/MC/SystemZ/insn-bad.s @@ -2915,6 +2915,11 @@ stc %r0, -1 stc %r0, 4096 +#CHECK: error: {{(instruction requires: high-word)?}} +#CHECK: stch %r0, 0 + + stch %r0, 0 + #CHECK: error: invalid operand #CHECK: stcy %r0, -524289 #CHECK: error: invalid operand @@ -2985,6 +2990,11 @@ sth %r0, -1 sth %r0, 4096 +#CHECK: error: {{(instruction requires: high-word)?}} +#CHECK: sthh %r0, 0 + + sthh %r0, 0 + #CHECK: error: offset out of range #CHECK: sthrl %r0, -0x1000000002 #CHECK: error: offset out of range diff --git a/test/MC/SystemZ/insn-good-z196.s b/test/MC/SystemZ/insn-good-z196.s index ca88329..769ab02 100644 --- a/test/MC/SystemZ/insn-good-z196.s +++ b/test/MC/SystemZ/insn-good-z196.s @@ -647,6 +647,50 @@ srlk %r0,%r0,524287(%r1) srlk %r0,%r0,524287(%r15) +#CHECK: stch %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0xc3] +#CHECK: stch %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0xc3] +#CHECK: stch %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0xc3] +#CHECK: stch %r0, 1 # encoding: [0xe3,0x00,0x00,0x01,0x00,0xc3] +#CHECK: stch %r0, 524287 # encoding: [0xe3,0x00,0x0f,0xff,0x7f,0xc3] +#CHECK: stch %r0, 0(%r1) # encoding: [0xe3,0x00,0x10,0x00,0x00,0xc3] +#CHECK: stch %r0, 0(%r15) # encoding: [0xe3,0x00,0xf0,0x00,0x00,0xc3] +#CHECK: stch %r0, 524287(%r1,%r15) # encoding: [0xe3,0x01,0xff,0xff,0x7f,0xc3] +#CHECK: stch %r0, 524287(%r15,%r1) # encoding: [0xe3,0x0f,0x1f,0xff,0x7f,0xc3] +#CHECK: stch %r15, 0 # encoding: [0xe3,0xf0,0x00,0x00,0x00,0xc3] + + stch %r0, -524288 + stch %r0, -1 + stch %r0, 0 + stch %r0, 1 + stch %r0, 524287 + stch %r0, 0(%r1) + stch %r0, 0(%r15) + stch %r0, 524287(%r1,%r15) + stch %r0, 524287(%r15,%r1) + stch %r15, 0 + +#CHECK: sthh %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0xc7] +#CHECK: sthh %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0xc7] +#CHECK: sthh %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0xc7] +#CHECK: sthh %r0, 1 # encoding: [0xe3,0x00,0x00,0x01,0x00,0xc7] +#CHECK: sthh %r0, 524287 # encoding: [0xe3,0x00,0x0f,0xff,0x7f,0xc7] +#CHECK: sthh %r0, 0(%r1) # encoding: [0xe3,0x00,0x10,0x00,0x00,0xc7] +#CHECK: sthh %r0, 0(%r15) # encoding: [0xe3,0x00,0xf0,0x00,0x00,0xc7] +#CHECK: sthh %r0, 524287(%r1,%r15) # encoding: [0xe3,0x01,0xff,0xff,0x7f,0xc7] +#CHECK: sthh %r0, 524287(%r15,%r1) # encoding: [0xe3,0x0f,0x1f,0xff,0x7f,0xc7] +#CHECK: sthh %r15, 0 # encoding: [0xe3,0xf0,0x00,0x00,0x00,0xc7] + + sthh %r0, -524288 + sthh %r0, -1 + sthh %r0, 0 + sthh %r0, 1 + sthh %r0, 524287 + sthh %r0, 0(%r1) + sthh %r0, 0(%r15) + sthh %r0, 524287(%r1,%r15) + sthh %r0, 524287(%r15,%r1) + sthh %r15, 0 + #CHECK: stfh %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0xcb] #CHECK: stfh %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0xcb] #CHECK: stfh %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0xcb] |