Sam Clegg | 16c1682 | 2018-05-10 22:16:44 +0000 | [diff] [blame] | 1 | # RUN: llvm-mc --disassemble %s -triple=wasm32-unknown-unknown | FileCheck %s |
| 2 | |
| 3 | # CHECK: .text |
| 4 | |
| 5 | # CHECK: nop |
| 6 | 0x01 |
| 7 | |
Wouter van Oortmerssen | 48dac31 | 2018-06-18 21:22:44 +0000 | [diff] [blame] | 8 | # CHECK: i32.add |
Sam Clegg | 16c1682 | 2018-05-10 22:16:44 +0000 | [diff] [blame] | 9 | 0x6a |
| 10 | |
Wouter van Oortmerssen | 48dac31 | 2018-06-18 21:22:44 +0000 | [diff] [blame] | 11 | # CHECK: i64.const -1 |
Sam Clegg | 16c1682 | 2018-05-10 22:16:44 +0000 | [diff] [blame] | 12 | 0x42 0x7F |
| 13 | |
Wouter van Oortmerssen | 8a9cb24 | 2018-08-27 15:45:51 +0000 | [diff] [blame] | 14 | # CHECK: i64.load32_u 16:p2align=1 |
Sam Clegg | 16c1682 | 2018-05-10 22:16:44 +0000 | [diff] [blame] | 15 | 0x35 0x01 0x10 |
| 16 | |
Wouter van Oortmerssen | ad72f68 | 2019-01-02 23:23:51 +0000 | [diff] [blame] | 17 | # CHECK: block f64 |
| 18 | 0x02 0x7C |
Sam Clegg | 16c1682 | 2018-05-10 22:16:44 +0000 | [diff] [blame] | 19 | |
| 20 | # CHECK: call_indirect |
| 21 | # $0=, 128, 0 |
| 22 | # FIXME: WebAssemblyInstPrinter does not print immediates. |
| 23 | 0x11 0x80 0x01 0x00 |
| 24 | |
Wouter van Oortmerssen | 1a91cb0 | 2019-02-05 01:19:45 +0000 | [diff] [blame] | 25 | # CHECK: call 0 |
| 26 | # CHECK-NOT: except_ref.call 0 |
| 27 | 0x10 0x00 |
| 28 | |
Thomas Lively | 6a87dda | 2019-01-08 06:25:55 +0000 | [diff] [blame] | 29 | # CHECK: local.get 128 |
Sam Clegg | 16c1682 | 2018-05-10 22:16:44 +0000 | [diff] [blame] | 30 | 0x20 0x80 0x01 |
| 31 | |
| 32 | # Prefix byte example: |
Thomas Lively | 6a87dda | 2019-01-08 06:25:55 +0000 | [diff] [blame] | 33 | # CHECK: i64.trunc_sat_f64_u |
Sam Clegg | 16c1682 | 2018-05-10 22:16:44 +0000 | [diff] [blame] | 34 | 0xFC 0x07 |
Thomas Lively | 2244292 | 2018-08-21 21:03:18 +0000 | [diff] [blame] | 35 | |
Heejin Ahn | 7b7a4ef | 2019-02-05 23:01:41 +0000 | [diff] [blame] | 36 | # FIXME Disabled temporarily due to failures in clang-ppc64be-linux and |
| 37 | # clang-s390x-linux bots |
Heejin Ahn | 1b8df42 | 2019-02-05 22:47:29 +0000 | [diff] [blame] | 38 | # C HECK: v128.const 50462976, 117835012, 185207048, 252579084 |
Thomas Lively | 299d214 | 2018-11-09 01:45:56 +0000 | [diff] [blame] | 39 | 0xFD 0x02 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B 0x0C 0x0D 0x0E 0x0F |
Thomas Lively | a0d2581 | 2018-09-07 21:54:46 +0000 | [diff] [blame] | 40 | |
| 41 | # CHECK: v8x16.shuffle 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 |
Thomas Lively | 299d214 | 2018-11-09 01:45:56 +0000 | [diff] [blame] | 42 | 0xFD 0x03 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B 0x0C 0x0D 0x0E 0x0F |
Thomas Lively | 2faf079 | 2018-11-09 01:57:00 +0000 | [diff] [blame] | 43 | |
| 44 | # Check LEB128 encoding of SIMD instructions |
| 45 | # CHECK: i64x2.all_true |
| 46 | 0xFD 0x86 0x01 |
| 47 | |
| 48 | # Including non-canonical LEB128 encodings |
| 49 | # CHECK: i64x2.any_true |
| 50 | # CHECK-NOT: i64.div_u |
| 51 | 0xFD 0x85 0x81 0x80 0x80 0x80 0x80 0x00 |
Wouter van Oortmerssen | 820c626 | 2019-01-03 23:01:30 +0000 | [diff] [blame] | 52 | |
| 53 | # Check br_table, which has its own operand type. |
| 54 | # CHECK: br_table {0, 1, 2} |
| 55 | 0x0E 0x02 0x00 0x01 0x02 |
Wouter van Oortmerssen | 1a91cb0 | 2019-02-05 01:19:45 +0000 | [diff] [blame] | 56 | |
| 57 | # This can mean end_block/end_loop/end_if/end_function/end_try.. |
| 58 | # CHECK: end |
| 59 | 0x0B |