Alex Bradbury | 59136ff | 2017-12-15 09:47:01 +0000 | [diff] [blame] | 1 | # RUN: llvm-mc %s -triple=riscv32 -riscv-no-aliases -show-encoding \ |
Alex Bradbury | fea4ac0 | 2018-09-06 13:41:04 +0000 | [diff] [blame] | 2 | # RUN: | FileCheck -check-prefixes=CHECK-ASM,CHECK-ASM-AND-OBJ %s |
| 3 | # RUN: llvm-mc %s -triple riscv64 -riscv-no-aliases -show-encoding \ |
| 4 | # RUN: | FileCheck -check-prefixes=CHECK-ASM,CHECK-ASM-AND-OBJ %s |
| 5 | # RUN: llvm-mc -filetype=obj -triple=riscv32 < %s \ |
| 6 | # RUN: | llvm-objdump -riscv-no-aliases -d -r - \ |
| 7 | # RUN: | FileCheck -check-prefixes=CHECK-OBJ,CHECK-ASM-AND-OBJ %s |
| 8 | # RUN: llvm-mc -filetype=obj -triple=riscv64 < %s \ |
| 9 | # RUN: | llvm-objdump -riscv-no-aliases -d -r - \ |
| 10 | # RUN: | FileCheck -check-prefixes=CHECK-OBJ,CHECK-ASM-AND-OBJ %s |
Alex Bradbury | 2fee9ea | 2017-08-15 13:08:29 +0000 | [diff] [blame] | 11 | |
Alex Bradbury | 6f302b8 | 2019-01-10 15:33:17 +0000 | [diff] [blame] | 12 | .equ CONST, 30 |
| 13 | |
Alex Bradbury | fea4ac0 | 2018-09-06 13:41:04 +0000 | [diff] [blame] | 14 | # CHECK-ASM-AND-OBJ: lui a0, 2 |
| 15 | # CHECK-ASM: encoding: [0x37,0x25,0x00,0x00] |
Alex Bradbury | 6758ecb | 2017-09-17 14:27:35 +0000 | [diff] [blame] | 16 | lui a0, 2 |
Alex Bradbury | fea4ac0 | 2018-09-06 13:41:04 +0000 | [diff] [blame] | 17 | # CHECK-ASM-AND-OBJ: lui s11, 552960 |
| 18 | # CHECK-ASM: encoding: [0xb7,0x0d,0x00,0x87] |
Alex Bradbury | 6758ecb | 2017-09-17 14:27:35 +0000 | [diff] [blame] | 19 | lui s11, (0x87000000>>12) |
Alex Bradbury | fea4ac0 | 2018-09-06 13:41:04 +0000 | [diff] [blame] | 20 | # CHECK-ASM-AND-OBJ: lui a0, 0 |
| 21 | # CHECK-ASM: encoding: [0x37,0x05,0x00,0x00] |
Alex Bradbury | 9d3f125 | 2017-09-28 08:26:24 +0000 | [diff] [blame] | 22 | lui a0, %hi(2) |
Alex Bradbury | fea4ac0 | 2018-09-06 13:41:04 +0000 | [diff] [blame] | 23 | # CHECK-ASM-AND-OBJ: lui s11, 552960 |
| 24 | # CHECK-ASM: encoding: [0xb7,0x0d,0x00,0x87] |
Alex Bradbury | 9d3f125 | 2017-09-28 08:26:24 +0000 | [diff] [blame] | 25 | lui s11, (0x87000000>>12) |
Alex Bradbury | fea4ac0 | 2018-09-06 13:41:04 +0000 | [diff] [blame] | 26 | # CHECK-ASM-AND-OBJ: lui s11, 552960 |
| 27 | # CHECK-ASM: encoding: [0xb7,0x0d,0x00,0x87] |
Alex Bradbury | 9d3f125 | 2017-09-28 08:26:24 +0000 | [diff] [blame] | 28 | lui s11, %hi(0x87000000) |
Alex Bradbury | fea4ac0 | 2018-09-06 13:41:04 +0000 | [diff] [blame] | 29 | # CHECK-ASM-AND-OBJ: lui t0, 1048575 |
| 30 | # CHECK-ASM: encoding: [0xb7,0xf2,0xff,0xff] |
Alex Bradbury | 6758ecb | 2017-09-17 14:27:35 +0000 | [diff] [blame] | 31 | lui t0, 1048575 |
Alex Bradbury | fea4ac0 | 2018-09-06 13:41:04 +0000 | [diff] [blame] | 32 | # CHECK-ASM-AND-OBJ: lui gp, 0 |
| 33 | # CHECK-ASM: encoding: [0xb7,0x01,0x00,0x00] |
Alex Bradbury | 6758ecb | 2017-09-17 14:27:35 +0000 | [diff] [blame] | 34 | lui gp, 0 |
Alex Bradbury | 74340f1 | 2018-09-18 15:08:35 +0000 | [diff] [blame] | 35 | # CHECK-ASM: lui a0, %hi(foo) |
| 36 | # CHECK-ASM: encoding: [0x37,0bAAAA0101,A,A] |
| 37 | # CHECK-OBJ: lui a0, 0 |
| 38 | # CHECK-OBJ: R_RISCV_HI20 foo |
| 39 | lui a0, %hi(foo) |
Alex Bradbury | 6f302b8 | 2019-01-10 15:33:17 +0000 | [diff] [blame] | 40 | # CHECK-ASM-AND-OBJ: lui a0, 30 |
| 41 | # CHECK-ASM: encoding: [0x37,0xe5,0x01,0x00] |
| 42 | lui a0, CONST |
| 43 | # CHECK-ASM-AND-OBJ: lui a0, 31 |
| 44 | # CHECK-ASM: encoding: [0x37,0xf5,0x01,0x00] |
| 45 | lui a0, CONST+1 |
Alex Bradbury | 6758ecb | 2017-09-17 14:27:35 +0000 | [diff] [blame] | 46 | |
Alex Bradbury | fea4ac0 | 2018-09-06 13:41:04 +0000 | [diff] [blame] | 47 | # CHECK-ASM-AND-OBJ: auipc a0, 2 |
| 48 | # CHECK-ASM: encoding: [0x17,0x25,0x00,0x00] |
Alex Bradbury | 6758ecb | 2017-09-17 14:27:35 +0000 | [diff] [blame] | 49 | auipc a0, 2 |
Alex Bradbury | fea4ac0 | 2018-09-06 13:41:04 +0000 | [diff] [blame] | 50 | # CHECK-ASM-AND-OBJ: auipc s11, 552960 |
| 51 | # CHECK-ASM: encoding: [0x97,0x0d,0x00,0x87] |
Alex Bradbury | 6758ecb | 2017-09-17 14:27:35 +0000 | [diff] [blame] | 52 | auipc s11, (0x87000000>>12) |
Alex Bradbury | fea4ac0 | 2018-09-06 13:41:04 +0000 | [diff] [blame] | 53 | # CHECK-ASM-AND-OBJ: auipc t0, 1048575 |
| 54 | # CHECK-ASM: encoding: [0x97,0xf2,0xff,0xff] |
Alex Bradbury | 6758ecb | 2017-09-17 14:27:35 +0000 | [diff] [blame] | 55 | auipc t0, 1048575 |
Alex Bradbury | fea4ac0 | 2018-09-06 13:41:04 +0000 | [diff] [blame] | 56 | # CHECK-ASM-AND-OBJ: auipc gp, 0 |
| 57 | # CHECK-ASM: encoding: [0x97,0x01,0x00,0x00] |
Alex Bradbury | 6758ecb | 2017-09-17 14:27:35 +0000 | [diff] [blame] | 58 | auipc gp, 0 |
Alex Bradbury | 74340f1 | 2018-09-18 15:08:35 +0000 | [diff] [blame] | 59 | # CHECK-ASM: auipc a0, %pcrel_hi(foo) |
| 60 | # CHECK-ASM: encoding: [0x17,0bAAAA0101,A,A] |
| 61 | # CHECK-OBJ: auipc a0, 0 |
| 62 | # CHECK-OBJ: R_RISCV_PCREL_HI20 foo |
| 63 | auipc a0, %pcrel_hi(foo) |
Alex Bradbury | 6f302b8 | 2019-01-10 15:33:17 +0000 | [diff] [blame] | 64 | # CHECK-ASM-AND-OBJ: auipc a0, 30 |
| 65 | # CHECK-ASM: encoding: [0x17,0xe5,0x01,0x00] |
| 66 | auipc a0, CONST |
Alex Bradbury | 6758ecb | 2017-09-17 14:27:35 +0000 | [diff] [blame] | 67 | |
Alex Bradbury | fea4ac0 | 2018-09-06 13:41:04 +0000 | [diff] [blame] | 68 | # CHECK-ASM-AND-OBJ: jal a2, 1048574 |
| 69 | # CHECK-ASM: encoding: [0x6f,0xf6,0xff,0x7f] |
Alex Bradbury | 6758ecb | 2017-09-17 14:27:35 +0000 | [diff] [blame] | 70 | jal a2, 1048574 |
Alex Bradbury | fea4ac0 | 2018-09-06 13:41:04 +0000 | [diff] [blame] | 71 | # CHECK-ASM-AND-OBJ: jal a3, 256 |
| 72 | # CHECK-ASM: encoding: [0xef,0x06,0x00,0x10] |
Alex Bradbury | 6758ecb | 2017-09-17 14:27:35 +0000 | [diff] [blame] | 73 | jal a3, 256 |
Alex Bradbury | 226f3ef | 2018-09-20 08:10:35 +0000 | [diff] [blame] | 74 | # CHECK-ASM: jal a0, foo |
| 75 | # CHECK-ASM: encoding: [0x6f,0bAAAA0101,A,A] |
| 76 | # CHECK-OBJ: jal a0, 0 |
| 77 | # CHECK-OBJ: R_RISCV_JAL foo |
| 78 | jal a0, foo |
| 79 | # CHECK-ASM: jal a0, a0 |
| 80 | # CHECK-ASM: encoding: [0x6f,0bAAAA0101,A,A] |
| 81 | # CHECK-OBJ: jal a0, 0 |
| 82 | # CHECK-OBJ: R_RISCV_JAL a0 |
| 83 | jal a0, a0 |
Alex Bradbury | 6f302b8 | 2019-01-10 15:33:17 +0000 | [diff] [blame] | 84 | # CHECK-ASM-AND-OBJ: jal a0, 30 |
| 85 | # CHECK-ASM: encoding: [0x6f,0x05,0xe0,0x01] |
| 86 | jal a0, CONST |
Alex Bradbury | 6758ecb | 2017-09-17 14:27:35 +0000 | [diff] [blame] | 87 | |
Alex Bradbury | fea4ac0 | 2018-09-06 13:41:04 +0000 | [diff] [blame] | 88 | # CHECK-ASM-AND-OBJ: jalr a0, a1, -2048 |
| 89 | # CHECK-ASM: encoding: [0x67,0x85,0x05,0x80] |
Alex Bradbury | 6758ecb | 2017-09-17 14:27:35 +0000 | [diff] [blame] | 90 | jalr a0, a1, -2048 |
Alex Bradbury | fea4ac0 | 2018-09-06 13:41:04 +0000 | [diff] [blame] | 91 | # CHECK-ASM-AND-OBJ: jalr a0, a1, -2048 |
| 92 | # CHECK-ASM: encoding: [0x67,0x85,0x05,0x80] |
Alex Bradbury | 9d3f125 | 2017-09-28 08:26:24 +0000 | [diff] [blame] | 93 | jalr a0, a1, %lo(2048) |
Alex Bradbury | fea4ac0 | 2018-09-06 13:41:04 +0000 | [diff] [blame] | 94 | # CHECK-ASM-AND-OBJ: jalr t2, t1, 2047 |
| 95 | # CHECK-ASM: encoding: [0xe7,0x03,0xf3,0x7f] |
Alex Bradbury | 6758ecb | 2017-09-17 14:27:35 +0000 | [diff] [blame] | 96 | jalr t2, t1, 2047 |
Alex Bradbury | fea4ac0 | 2018-09-06 13:41:04 +0000 | [diff] [blame] | 97 | # CHECK-ASM-AND-OBJ: jalr sp, zero, 256 |
| 98 | # CHECK-ASM: encoding: [0x67,0x01,0x00,0x10] |
Alex Bradbury | 6758ecb | 2017-09-17 14:27:35 +0000 | [diff] [blame] | 99 | jalr sp, zero, 256 |
Alex Bradbury | 6f302b8 | 2019-01-10 15:33:17 +0000 | [diff] [blame] | 100 | # CHECK-ASM-AND-OBJ: jalr a1, a2, 30 |
| 101 | # CHECK-ASM: encoding: [0xe7,0x05,0xe6,0x01] |
| 102 | jalr a1, a2, CONST |
Alex Bradbury | 6758ecb | 2017-09-17 14:27:35 +0000 | [diff] [blame] | 103 | |
Alex Bradbury | fea4ac0 | 2018-09-06 13:41:04 +0000 | [diff] [blame] | 104 | # CHECK-ASM-AND-OBJ: beq s1, s1, 102 |
| 105 | # CHECK-ASM: encoding: [0x63,0x83,0x94,0x06] |
Alex Bradbury | 6758ecb | 2017-09-17 14:27:35 +0000 | [diff] [blame] | 106 | beq s1, s1, 102 |
Alex Bradbury | fea4ac0 | 2018-09-06 13:41:04 +0000 | [diff] [blame] | 107 | # CHECK-ASM-AND-OBJ: bne a4, a5, -4096 |
| 108 | # CHECK-ASM: encoding: [0x63,0x10,0xf7,0x80] |
Alex Bradbury | 6758ecb | 2017-09-17 14:27:35 +0000 | [diff] [blame] | 109 | bne a4, a5, -4096 |
Alex Bradbury | fea4ac0 | 2018-09-06 13:41:04 +0000 | [diff] [blame] | 110 | # CHECK-ASM-AND-OBJ: blt sp, gp, 4094 |
| 111 | # CHECK-ASM: encoding: [0xe3,0x4f,0x31,0x7e] |
Alex Bradbury | 6758ecb | 2017-09-17 14:27:35 +0000 | [diff] [blame] | 112 | blt sp, gp, 4094 |
Alex Bradbury | fea4ac0 | 2018-09-06 13:41:04 +0000 | [diff] [blame] | 113 | # CHECK-ASM-AND-OBJ: bge s2, ra, -224 |
| 114 | # CHECK-ASM: encoding: [0xe3,0x50,0x19,0xf2] |
Alex Bradbury | 6758ecb | 2017-09-17 14:27:35 +0000 | [diff] [blame] | 115 | bge s2, ra, -224 |
Alex Bradbury | fea4ac0 | 2018-09-06 13:41:04 +0000 | [diff] [blame] | 116 | # CHECK-ASM-AND-OBJ: bltu zero, zero, 0 |
| 117 | # CHECK-ASM: encoding: [0x63,0x60,0x00,0x00] |
Alex Bradbury | 6758ecb | 2017-09-17 14:27:35 +0000 | [diff] [blame] | 118 | bltu zero, zero, 0 |
Alex Bradbury | fea4ac0 | 2018-09-06 13:41:04 +0000 | [diff] [blame] | 119 | # CHECK-ASM-AND-OBJ: bgeu s8, sp, 512 |
| 120 | # CHECK-ASM: encoding: [0x63,0x70,0x2c,0x20] |
Alex Bradbury | 6758ecb | 2017-09-17 14:27:35 +0000 | [diff] [blame] | 121 | bgeu s8, sp, 512 |
Alex Bradbury | 6f302b8 | 2019-01-10 15:33:17 +0000 | [diff] [blame] | 122 | # CHECK-ASM-AND-OBJ: bgeu t0, t1, 30 |
| 123 | # CHECK-ASM: encoding: [0x63,0xff,0x62,0x00] |
| 124 | bgeu t0, t1, CONST |
Alex Bradbury | 6758ecb | 2017-09-17 14:27:35 +0000 | [diff] [blame] | 125 | |
Alex Bradbury | fea4ac0 | 2018-09-06 13:41:04 +0000 | [diff] [blame] | 126 | # CHECK-ASM-AND-OBJ: lb s3, 4(ra) |
| 127 | # CHECK-ASM: encoding: [0x83,0x89,0x40,0x00] |
Alex Bradbury | 6758ecb | 2017-09-17 14:27:35 +0000 | [diff] [blame] | 128 | lb s3, 4(ra) |
Alex Bradbury | fea4ac0 | 2018-09-06 13:41:04 +0000 | [diff] [blame] | 129 | # CHECK-ASM-AND-OBJ: lb s3, 4(ra) |
| 130 | # CHECK-ASM: encoding: [0x83,0x89,0x40,0x00] |
Alex Bradbury | 6758ecb | 2017-09-17 14:27:35 +0000 | [diff] [blame] | 131 | lb s3, +4(ra) |
Alex Bradbury | fea4ac0 | 2018-09-06 13:41:04 +0000 | [diff] [blame] | 132 | # CHECK-ASM-AND-OBJ: lh t1, -2048(zero) |
| 133 | # CHECK-ASM: encoding: [0x03,0x13,0x00,0x80] |
Alex Bradbury | 6758ecb | 2017-09-17 14:27:35 +0000 | [diff] [blame] | 134 | lh t1, -2048(zero) |
Alex Bradbury | fea4ac0 | 2018-09-06 13:41:04 +0000 | [diff] [blame] | 135 | # CHECK-ASM-AND-OBJ: lh t1, -2048(zero) |
| 136 | # CHECK-ASM: encoding: [0x03,0x13,0x00,0x80] |
Alex Bradbury | 9d3f125 | 2017-09-28 08:26:24 +0000 | [diff] [blame] | 137 | lh t1, %lo(2048)(zero) |
Alex Bradbury | fea4ac0 | 2018-09-06 13:41:04 +0000 | [diff] [blame] | 138 | # CHECK-ASM-AND-OBJ: lh sp, 2047(a0) |
| 139 | # CHECK-ASM: encoding: [0x03,0x11,0xf5,0x7f] |
Alex Bradbury | 6758ecb | 2017-09-17 14:27:35 +0000 | [diff] [blame] | 140 | lh sp, 2047(a0) |
Alex Bradbury | fea4ac0 | 2018-09-06 13:41:04 +0000 | [diff] [blame] | 141 | # CHECK-ASM-AND-OBJ: lw a0, 97(a2) |
| 142 | # CHECK-ASM: encoding: [0x03,0x25,0x16,0x06] |
Alex Bradbury | 6758ecb | 2017-09-17 14:27:35 +0000 | [diff] [blame] | 143 | lw a0, 97(a2) |
Alex Bradbury | 7d0e18d | 2018-09-18 15:13:29 +0000 | [diff] [blame] | 144 | # CHECK-ASM: lbu s5, %lo(foo)(s6) |
| 145 | # CHECK-ASM: encoding: [0x83,0x4a,0bAAAA1011,A] |
| 146 | # CHECK-OBJ: lbu s5, 0(s6) |
| 147 | # CHECK-OBJ: R_RISCV_LO12 |
| 148 | lbu s5, %lo(foo)(s6) |
| 149 | # CHECK-ASM: lhu t3, %pcrel_lo(foo)(t3) |
| 150 | # CHECK-ASM: encoding: [0x03,0x5e,0bAAAA1110,A] |
| 151 | # CHECK-OBJ: lhu t3, 0(t3) |
| 152 | # CHECK-OBJ: R_RISCV_PCREL_LO12 |
| 153 | lhu t3, %pcrel_lo(foo)(t3) |
Alex Bradbury | 6f302b8 | 2019-01-10 15:33:17 +0000 | [diff] [blame] | 154 | # CHECK-ASM-AND-OBJ: lb t0, 30(t1) |
| 155 | # CHECK-ASM: encoding: [0x83,0x02,0xe3,0x01] |
| 156 | lb t0, CONST(t1) |
Alex Bradbury | 6758ecb | 2017-09-17 14:27:35 +0000 | [diff] [blame] | 157 | |
Alex Bradbury | fea4ac0 | 2018-09-06 13:41:04 +0000 | [diff] [blame] | 158 | # CHECK-ASM-AND-OBJ: sb a0, 2047(a2) |
| 159 | # CHECK-ASM: encoding: [0xa3,0x0f,0xa6,0x7e] |
Alex Bradbury | 6758ecb | 2017-09-17 14:27:35 +0000 | [diff] [blame] | 160 | sb a0, 2047(a2) |
Alex Bradbury | fea4ac0 | 2018-09-06 13:41:04 +0000 | [diff] [blame] | 161 | # CHECK-ASM-AND-OBJ: sh t3, -2048(t5) |
| 162 | # CHECK-ASM: encoding: [0x23,0x10,0xcf,0x81] |
Alex Bradbury | 6758ecb | 2017-09-17 14:27:35 +0000 | [diff] [blame] | 163 | sh t3, -2048(t5) |
Alex Bradbury | fea4ac0 | 2018-09-06 13:41:04 +0000 | [diff] [blame] | 164 | # CHECK-ASM-AND-OBJ: sh t3, -2048(t5) |
| 165 | # CHECK-ASM: encoding: [0x23,0x10,0xcf,0x81] |
Alex Bradbury | 9d3f125 | 2017-09-28 08:26:24 +0000 | [diff] [blame] | 166 | sh t3, %lo(2048)(t5) |
Alex Bradbury | fea4ac0 | 2018-09-06 13:41:04 +0000 | [diff] [blame] | 167 | # CHECK-ASM-AND-OBJ: sw ra, 999(zero) |
| 168 | # CHECK-ASM: encoding: [0xa3,0x23,0x10,0x3e] |
Alex Bradbury | 6758ecb | 2017-09-17 14:27:35 +0000 | [diff] [blame] | 169 | sw ra, 999(zero) |
Alex Bradbury | 6f302b8 | 2019-01-10 15:33:17 +0000 | [diff] [blame] | 170 | # CHECK-ASM-AND-OBJ: sw a0, 30(t0) |
| 171 | # CHECK-ASM: encoding: [0x23,0xaf,0xa2,0x00] |
| 172 | sw a0, CONST(t0) |
Alex Bradbury | 6758ecb | 2017-09-17 14:27:35 +0000 | [diff] [blame] | 173 | |
Alex Bradbury | fea4ac0 | 2018-09-06 13:41:04 +0000 | [diff] [blame] | 174 | # CHECK-ASM-AND-OBJ: addi ra, sp, 2 |
| 175 | # CHECK-ASM: encoding: [0x93,0x00,0x21,0x00] |
Alex Bradbury | 2fee9ea | 2017-08-15 13:08:29 +0000 | [diff] [blame] | 176 | addi ra, sp, 2 |
Alex Bradbury | 7d0e18d | 2018-09-18 15:13:29 +0000 | [diff] [blame] | 177 | # CHECK-ASM: addi ra, sp, %lo(foo) |
| 178 | # CHECK-ASM: encoding: [0x93,0x00,0bAAAA0001,A] |
| 179 | # CHECK-OBJ: addi ra, sp, 0 |
| 180 | # CHECK-OBJ: R_RISCV_LO12 |
| 181 | addi ra, sp, %lo(foo) |
Alex Bradbury | 6f302b8 | 2019-01-10 15:33:17 +0000 | [diff] [blame] | 182 | # CHECK-ASM-AND-OBJ: addi ra, sp, 30 |
| 183 | # CHECK-ASM: encoding: [0x93,0x00,0xe1,0x01] |
| 184 | addi ra, sp, CONST |
Alex Bradbury | fea4ac0 | 2018-09-06 13:41:04 +0000 | [diff] [blame] | 185 | # CHECK-ASM-AND-OBJ: slti a0, a2, -20 |
| 186 | # CHECK-ASM: encoding: [0x13,0x25,0xc6,0xfe] |
Alex Bradbury | 2fee9ea | 2017-08-15 13:08:29 +0000 | [diff] [blame] | 187 | slti a0, a2, -20 |
Alex Bradbury | fea4ac0 | 2018-09-06 13:41:04 +0000 | [diff] [blame] | 188 | # CHECK-ASM-AND-OBJ: sltiu s2, s3, 80 |
| 189 | # CHECK-ASM: encoding: [0x13,0xb9,0x09,0x05] |
Alex Bradbury | 2fee9ea | 2017-08-15 13:08:29 +0000 | [diff] [blame] | 190 | sltiu s2, s3, 0x50 |
Alex Bradbury | fea4ac0 | 2018-09-06 13:41:04 +0000 | [diff] [blame] | 191 | # CHECK-ASM-AND-OBJ: xori tp, t1, -99 |
| 192 | # CHECK-ASM: encoding: [0x13,0x42,0xd3,0xf9] |
Alex Bradbury | 2fee9ea | 2017-08-15 13:08:29 +0000 | [diff] [blame] | 193 | xori tp, t1, -99 |
Alex Bradbury | fea4ac0 | 2018-09-06 13:41:04 +0000 | [diff] [blame] | 194 | # CHECK-ASM-AND-OBJ: ori a0, a1, -2048 |
| 195 | # CHECK-ASM: encoding: [0x13,0xe5,0x05,0x80] |
Alex Bradbury | 2fee9ea | 2017-08-15 13:08:29 +0000 | [diff] [blame] | 196 | ori a0, a1, -2048 |
Alex Bradbury | fea4ac0 | 2018-09-06 13:41:04 +0000 | [diff] [blame] | 197 | # CHECK-ASM-AND-OBJ: ori a0, a1, -2048 |
| 198 | # CHECK-ASM: encoding: [0x13,0xe5,0x05,0x80] |
Alex Bradbury | 9d3f125 | 2017-09-28 08:26:24 +0000 | [diff] [blame] | 199 | ori a0, a1, %lo(2048) |
Alex Bradbury | fea4ac0 | 2018-09-06 13:41:04 +0000 | [diff] [blame] | 200 | # CHECK-ASM-AND-OBJ: andi ra, sp, 2047 |
| 201 | # CHECK-ASM: encoding: [0x93,0x70,0xf1,0x7f] |
Alex Bradbury | 2fee9ea | 2017-08-15 13:08:29 +0000 | [diff] [blame] | 202 | andi ra, sp, 2047 |
Alex Bradbury | fea4ac0 | 2018-09-06 13:41:04 +0000 | [diff] [blame] | 203 | # CHECK-ASM-AND-OBJ: andi ra, sp, 2047 |
| 204 | # CHECK-ASM: encoding: [0x93,0x70,0xf1,0x7f] |
Alex Bradbury | 2fee9ea | 2017-08-15 13:08:29 +0000 | [diff] [blame] | 205 | andi x1, x2, 2047 |
| 206 | |
Alex Bradbury | fea4ac0 | 2018-09-06 13:41:04 +0000 | [diff] [blame] | 207 | # CHECK-ASM-AND-OBJ: slli t3, t3, 31 |
| 208 | # CHECK-ASM: encoding: [0x13,0x1e,0xfe,0x01] |
Alex Bradbury | 6758ecb | 2017-09-17 14:27:35 +0000 | [diff] [blame] | 209 | slli t3, t3, 31 |
Alex Bradbury | fea4ac0 | 2018-09-06 13:41:04 +0000 | [diff] [blame] | 210 | # CHECK-ASM-AND-OBJ: srli a0, a4, 0 |
| 211 | # CHECK-ASM: encoding: [0x13,0x55,0x07,0x00] |
Alex Bradbury | 6758ecb | 2017-09-17 14:27:35 +0000 | [diff] [blame] | 212 | srli a0, a4, 0 |
Alex Bradbury | fea4ac0 | 2018-09-06 13:41:04 +0000 | [diff] [blame] | 213 | # CHECK-ASM-AND-OBJ: srai a2, sp, 15 |
| 214 | # CHECK-ASM: encoding: [0x13,0x56,0xf1,0x40] |
Alex Bradbury | 6758ecb | 2017-09-17 14:27:35 +0000 | [diff] [blame] | 215 | srai a2, sp, 15 |
Alex Bradbury | 6f302b8 | 2019-01-10 15:33:17 +0000 | [diff] [blame] | 216 | # CHECK-ASM-AND-OBJ: slli t3, t3, 30 |
| 217 | # CHECK-ASM: encoding: [0x13,0x1e,0xee,0x01] |
| 218 | slli t3, t3, CONST |
Alex Bradbury | 6758ecb | 2017-09-17 14:27:35 +0000 | [diff] [blame] | 219 | |
Alex Bradbury | fea4ac0 | 2018-09-06 13:41:04 +0000 | [diff] [blame] | 220 | # CHECK-ASM-AND-OBJ: add ra, zero, zero |
| 221 | # CHECK-ASM: encoding: [0xb3,0x00,0x00,0x00] |
Alex Bradbury | 2fee9ea | 2017-08-15 13:08:29 +0000 | [diff] [blame] | 222 | add ra, zero, zero |
Alex Bradbury | fea4ac0 | 2018-09-06 13:41:04 +0000 | [diff] [blame] | 223 | # CHECK-ASM-AND-OBJ: add ra, zero, zero |
| 224 | # CHECK-ASM: encoding: [0xb3,0x00,0x00,0x00] |
Alex Bradbury | 2fee9ea | 2017-08-15 13:08:29 +0000 | [diff] [blame] | 225 | add x1, x0, x0 |
Alex Bradbury | fea4ac0 | 2018-09-06 13:41:04 +0000 | [diff] [blame] | 226 | # CHECK-ASM-AND-OBJ: sub t0, t2, t1 |
| 227 | # CHECK-ASM: encoding: [0xb3,0x82,0x63,0x40] |
Alex Bradbury | 2fee9ea | 2017-08-15 13:08:29 +0000 | [diff] [blame] | 228 | sub t0, t2, t1 |
Alex Bradbury | fea4ac0 | 2018-09-06 13:41:04 +0000 | [diff] [blame] | 229 | # CHECK-ASM-AND-OBJ: sll a5, a4, a3 |
| 230 | # CHECK-ASM: encoding: [0xb3,0x17,0xd7,0x00] |
Alex Bradbury | 2fee9ea | 2017-08-15 13:08:29 +0000 | [diff] [blame] | 231 | sll a5, a4, a3 |
Alex Bradbury | fea4ac0 | 2018-09-06 13:41:04 +0000 | [diff] [blame] | 232 | # CHECK-ASM-AND-OBJ: slt s0, s0, s0 |
| 233 | # CHECK-ASM: encoding: [0x33,0x24,0x84,0x00] |
Alex Bradbury | 2fee9ea | 2017-08-15 13:08:29 +0000 | [diff] [blame] | 234 | slt s0, s0, s0 |
Alex Bradbury | fea4ac0 | 2018-09-06 13:41:04 +0000 | [diff] [blame] | 235 | # CHECK-ASM-AND-OBJ: sltu gp, a0, a1 |
| 236 | # CHECK-ASM: encoding: [0xb3,0x31,0xb5,0x00] |
Alex Bradbury | 2fee9ea | 2017-08-15 13:08:29 +0000 | [diff] [blame] | 237 | sltu gp, a0, a1 |
Alex Bradbury | fea4ac0 | 2018-09-06 13:41:04 +0000 | [diff] [blame] | 238 | # CHECK-ASM-AND-OBJ: xor s2, s2, s8 |
| 239 | # CHECK-ASM: encoding: [0x33,0x49,0x89,0x01] |
Alex Bradbury | 2fee9ea | 2017-08-15 13:08:29 +0000 | [diff] [blame] | 240 | xor s2, s2, s8 |
Alex Bradbury | fea4ac0 | 2018-09-06 13:41:04 +0000 | [diff] [blame] | 241 | # CHECK-ASM-AND-OBJ: xor s2, s2, s8 |
| 242 | # CHECK-ASM: encoding: [0x33,0x49,0x89,0x01] |
Alex Bradbury | 2fee9ea | 2017-08-15 13:08:29 +0000 | [diff] [blame] | 243 | xor x18, x18, x24 |
Alex Bradbury | fea4ac0 | 2018-09-06 13:41:04 +0000 | [diff] [blame] | 244 | # CHECK-ASM-AND-OBJ: srl a0, s0, t0 |
| 245 | # CHECK-ASM: encoding: [0x33,0x55,0x54,0x00] |
Alex Bradbury | 2fee9ea | 2017-08-15 13:08:29 +0000 | [diff] [blame] | 246 | srl a0, s0, t0 |
Alex Bradbury | fea4ac0 | 2018-09-06 13:41:04 +0000 | [diff] [blame] | 247 | # CHECK-ASM-AND-OBJ: sra t0, s2, zero |
| 248 | # CHECK-ASM: encoding: [0xb3,0x52,0x09,0x40] |
Alex Bradbury | 2fee9ea | 2017-08-15 13:08:29 +0000 | [diff] [blame] | 249 | sra t0, s2, zero |
Alex Bradbury | fea4ac0 | 2018-09-06 13:41:04 +0000 | [diff] [blame] | 250 | # CHECK-ASM-AND-OBJ: or s10, t1, ra |
| 251 | # CHECK-ASM: encoding: [0x33,0x6d,0x13,0x00] |
Alex Bradbury | 2fee9ea | 2017-08-15 13:08:29 +0000 | [diff] [blame] | 252 | or s10, t1, ra |
Alex Bradbury | fea4ac0 | 2018-09-06 13:41:04 +0000 | [diff] [blame] | 253 | # CHECK-ASM-AND-OBJ: and a0, s2, s3 |
| 254 | # CHECK-ASM: encoding: [0x33,0x75,0x39,0x01] |
Alex Bradbury | 2fee9ea | 2017-08-15 13:08:29 +0000 | [diff] [blame] | 255 | and a0, s2, s3 |
Alex Bradbury | 6758ecb | 2017-09-17 14:27:35 +0000 | [diff] [blame] | 256 | |
Alex Bradbury | fea4ac0 | 2018-09-06 13:41:04 +0000 | [diff] [blame] | 257 | # CHECK-ASM-AND-OBJ: fence iorw, iorw |
| 258 | # CHECK-ASM: encoding: [0x0f,0x00,0xf0,0x0f] |
Alex Bradbury | 6758ecb | 2017-09-17 14:27:35 +0000 | [diff] [blame] | 259 | fence iorw, iorw |
Alex Bradbury | fea4ac0 | 2018-09-06 13:41:04 +0000 | [diff] [blame] | 260 | # CHECK-ASM-AND-OBJ: fence io, rw |
| 261 | # CHECK-ASM: encoding: [0x0f,0x00,0x30,0x0c] |
Alex Bradbury | 6758ecb | 2017-09-17 14:27:35 +0000 | [diff] [blame] | 262 | fence io, rw |
Alex Bradbury | fea4ac0 | 2018-09-06 13:41:04 +0000 | [diff] [blame] | 263 | # CHECK-ASM-AND-OBJ: fence r, w |
| 264 | # CHECK-ASM: encoding: [0x0f,0x00,0x10,0x02] |
Alex Bradbury | 6758ecb | 2017-09-17 14:27:35 +0000 | [diff] [blame] | 265 | fence r,w |
Alex Bradbury | fea4ac0 | 2018-09-06 13:41:04 +0000 | [diff] [blame] | 266 | # CHECK-ASM-AND-OBJ: fence w, ir |
| 267 | # CHECK-ASM: encoding: [0x0f,0x00,0xa0,0x01] |
Alex Bradbury | 6758ecb | 2017-09-17 14:27:35 +0000 | [diff] [blame] | 268 | fence w,ir |
Alex Bradbury | fea4ac0 | 2018-09-06 13:41:04 +0000 | [diff] [blame] | 269 | # CHECK-ASM-AND-OBJ: fence.tso |
| 270 | # CHECK-ASM: encoding: [0x0f,0x00,0x30,0x83] |
Alex Bradbury | ed53ca7 | 2018-06-08 10:39:05 +0000 | [diff] [blame] | 271 | fence.tso |
Alex Bradbury | 6758ecb | 2017-09-17 14:27:35 +0000 | [diff] [blame] | 272 | |
Alex Bradbury | fea4ac0 | 2018-09-06 13:41:04 +0000 | [diff] [blame] | 273 | # CHECK-ASM-AND-OBJ: fence.i |
| 274 | # CHECK-ASM: encoding: [0x0f,0x10,0x00,0x00] |
Alex Bradbury | 6758ecb | 2017-09-17 14:27:35 +0000 | [diff] [blame] | 275 | fence.i |
| 276 | |
Alex Bradbury | fea4ac0 | 2018-09-06 13:41:04 +0000 | [diff] [blame] | 277 | # CHECK-ASM-AND-OBJ: ecall |
| 278 | # CHECK-ASM: encoding: [0x73,0x00,0x00,0x00] |
Alex Bradbury | 6758ecb | 2017-09-17 14:27:35 +0000 | [diff] [blame] | 279 | ecall |
Alex Bradbury | fea4ac0 | 2018-09-06 13:41:04 +0000 | [diff] [blame] | 280 | # CHECK-ASM-AND-OBJ: ebreak |
| 281 | # CHECK-ASM: encoding: [0x73,0x00,0x10,0x00] |
Alex Bradbury | 6758ecb | 2017-09-17 14:27:35 +0000 | [diff] [blame] | 282 | ebreak |
Alex Bradbury | 26403de | 2018-11-30 13:39:17 +0000 | [diff] [blame] | 283 | # CHECK-ASM-AND-OBJ: unimp |
| 284 | # CHECK-ASM: encoding: [0x73,0x10,0x00,0xc0] |
| 285 | unimp |
Alex Bradbury | 6758ecb | 2017-09-17 14:27:35 +0000 | [diff] [blame] | 286 | |
Alex Bradbury | 6f302b8 | 2019-01-10 15:33:17 +0000 | [diff] [blame] | 287 | .equ CONST, 16 |
| 288 | |
Alex Bradbury | fea4ac0 | 2018-09-06 13:41:04 +0000 | [diff] [blame] | 289 | # CHECK-ASM-AND-OBJ: csrrw t0, 4095, t1 |
| 290 | # CHECK-ASM: encoding: [0xf3,0x12,0xf3,0xff] |
Alex Bradbury | 6758ecb | 2017-09-17 14:27:35 +0000 | [diff] [blame] | 291 | csrrw t0, 0xfff, t1 |
Ana Pazos | 9d6c553 | 2018-10-04 21:50:54 +0000 | [diff] [blame] | 292 | # CHECK-ASM-AND-OBJ: csrrs s0, cycle, zero |
Alex Bradbury | fea4ac0 | 2018-09-06 13:41:04 +0000 | [diff] [blame] | 293 | # CHECK-ASM: encoding: [0x73,0x24,0x00,0xc0] |
Alex Bradbury | 6758ecb | 2017-09-17 14:27:35 +0000 | [diff] [blame] | 294 | csrrs s0, 0xc00, x0 |
Alex Bradbury | fea4ac0 | 2018-09-06 13:41:04 +0000 | [diff] [blame] | 295 | # CHECK-ASM-AND-OBJ: csrrs s3, 1, s5 |
| 296 | # CHECK-ASM: encoding: [0xf3,0xa9,0x1a,0x00] |
Alex Bradbury | 6758ecb | 2017-09-17 14:27:35 +0000 | [diff] [blame] | 297 | csrrs s3, 0x001, s5 |
Ana Pazos | 9d6c553 | 2018-10-04 21:50:54 +0000 | [diff] [blame] | 298 | # CHECK-ASM-AND-OBJ: csrrc sp, ustatus, ra |
Alex Bradbury | fea4ac0 | 2018-09-06 13:41:04 +0000 | [diff] [blame] | 299 | # CHECK-ASM: encoding: [0x73,0xb1,0x00,0x00] |
Alex Bradbury | 6758ecb | 2017-09-17 14:27:35 +0000 | [diff] [blame] | 300 | csrrc sp, 0x000, ra |
Ana Pazos | 9d6c553 | 2018-10-04 21:50:54 +0000 | [diff] [blame] | 301 | # CHECK-ASM-AND-OBJ: csrrwi a5, ustatus, 0 |
Alex Bradbury | fea4ac0 | 2018-09-06 13:41:04 +0000 | [diff] [blame] | 302 | # CHECK-ASM: encoding: [0xf3,0x57,0x00,0x00] |
Alex Bradbury | 6758ecb | 2017-09-17 14:27:35 +0000 | [diff] [blame] | 303 | csrrwi a5, 0x000, 0 |
Alex Bradbury | fea4ac0 | 2018-09-06 13:41:04 +0000 | [diff] [blame] | 304 | # CHECK-ASM-AND-OBJ: csrrsi t2, 4095, 31 |
| 305 | # CHECK-ASM: encoding: [0xf3,0xe3,0xff,0xff] |
Alex Bradbury | 6758ecb | 2017-09-17 14:27:35 +0000 | [diff] [blame] | 306 | csrrsi t2, 0xfff, 31 |
Ana Pazos | 9d6c553 | 2018-10-04 21:50:54 +0000 | [diff] [blame] | 307 | # CHECK-ASM-AND-OBJ: csrrci t1, sscratch, 5 |
Alex Bradbury | fea4ac0 | 2018-09-06 13:41:04 +0000 | [diff] [blame] | 308 | # CHECK-ASM: encoding: [0x73,0xf3,0x02,0x14] |
Alex Bradbury | 6758ecb | 2017-09-17 14:27:35 +0000 | [diff] [blame] | 309 | csrrci t1, 0x140, 5 |