1 # RUN: llvm-mc %s -triple=mipsel-unknown-linux -show-encoding -mcpu=mips32r2 | \ 2 # RUN: FileCheck %s --check-prefixes=CHECK,CHECK-LE 3 # RUN: llvm-mc %s -triple=mips-unknown-linux -show-encoding -mcpu=mips32r2 | \ 4 # RUN: FileCheck %s --check-prefixes=CHECK,CHECK-BE 5 6 # Check that the IAS expands macro instructions in the same way as GAS. 7 8 # Load address, done by MipsAsmParser::expandLoadAddressReg() 9 # and MipsAsmParser::expandLoadAddressImm(): 10 la $8, 1f 11 # CHECK-LE: lui $8, %hi($tmp0) # encoding: [A,A,0x08,0x3c] 12 # CHECK-LE: # fixup A - offset: 0, value: %hi($tmp0), kind: fixup_Mips_HI16 13 # CHECK-LE: addiu $8, $8, %lo($tmp0) # encoding: [A,A,0x08,0x25] 14 # CHECK-LE: # fixup A - offset: 0, value: %lo($tmp0), kind: fixup_Mips_LO16 15 16 # LW/SW and LDC1/SDC1 of symbol address, done by MipsAsmParser::expandMemInst(): 17 .set noat 18 lw $10, symbol($4) 19 # CHECK-LE: lui $10, %hi(symbol) # encoding: [A,A,0x0a,0x3c] 20 # CHECK-LE: # fixup A - offset: 0, value: %hi(symbol), kind: fixup_Mips_HI16 21 # CHECK-LE: addu $10, $10, $4 # encoding: [0x21,0x50,0x44,0x01] 22 # CHECK-LE: lw $10, %lo(symbol)($10) # encoding: [A,A,0x4a,0x8d] 23 # CHECK-LE: # fixup A - offset: 0, value: %lo(symbol), kind: fixup_Mips_LO16 24 .set at 25 sw $10, symbol($9) 26 # CHECK-LE: lui $1, %hi(symbol) # encoding: [A,A,0x01,0x3c] 27 # CHECK-LE: # fixup A - offset: 0, value: %hi(symbol), kind: fixup_Mips_HI16 28 # CHECK-LE: addu $1, $1, $9 # encoding: [0x21,0x08,0x29,0x00] 29 # CHECK-LE: sw $10, %lo(symbol)($1) # encoding: [A,A,0x2a,0xac] 30 # CHECK-LE: # fixup A - offset: 0, value: %lo(symbol), kind: fixup_Mips_LO16 31 32 lw $8, 1f 33 # CHECK-LE: lui $8, %hi($tmp0) # encoding: [A,A,0x08,0x3c] 34 # CHECK-LE: # fixup A - offset: 0, value: %hi($tmp0), kind: fixup_Mips_HI16 35 # CHECK-LE: lw $8, %lo($tmp0)($8) # encoding: [A,A,0x08,0x8d] 36 # CHECK-LE: # fixup A - offset: 0, value: %lo($tmp0), kind: fixup_Mips_LO16 37 sw $8, 1f 38 # CHECK-LE: lui $1, %hi($tmp0) # encoding: [A,A,0x01,0x3c] 39 # CHECK-LE: # fixup A - offset: 0, value: %hi($tmp0), kind: fixup_Mips_HI16 40 # CHECK-LE: sw $8, %lo($tmp0)($1) # encoding: [A,A,0x28,0xac] 41 # CHECK-LE: # fixup A - offset: 0, value: %lo($tmp0), kind: fixup_Mips_LO16 42 43 lw $10, 655483($4) 44 # CHECK-LE: lui $10, 10 # encoding: [0x0a,0x00,0x0a,0x3c] 45 # CHECK-LE: addu $10, $10, $4 # encoding: [0x21,0x50,0x44,0x01] 46 # CHECK-LE: lw $10, 123($10) # encoding: [0x7b,0x00,0x4a,0x8d] 47 sw $10, 123456($9) 48 # CHECK-LE: lui $1, 2 # encoding: [0x02,0x00,0x01,0x3c] 49 # CHECK-LE: addu $1, $1, $9 # encoding: [0x21,0x08,0x29,0x00] 50 # CHECK-LE: sw $10, -7616($1) # encoding: [0x40,0xe2,0x2a,0xac] 51 52 lw $8, symbol 53 # CHECK-LE: lui $8, %hi(symbol) # encoding: [A,A,0x08,0x3c] 54 # CHECK-LE: # fixup A - offset: 0, value: %hi(symbol), kind: fixup_Mips_HI16 55 # CHECK-LE-NOT: move $8, $8 # encoding: [0x21,0x40,0x00,0x01] 56 # CHECK-LE: lw $8, %lo(symbol)($8) # encoding: [A,A,0x08,0x8d] 57 # CHECK-LE: # fixup A - offset: 0, value: %lo(symbol), kind: fixup_Mips_LO16 58 sw $8, symbol 59 # CHECK-LE: lui $1, %hi(symbol) # encoding: [A,A,0x01,0x3c] 60 # CHECK-LE: # fixup A - offset: 0, value: %hi(symbol), kind: fixup_Mips_HI16 61 # CHECK-LE-NOT: move $1, $1 # encoding: [0x21,0x08,0x20,0x00] 62 # CHECK-LE: sw $8, %lo(symbol)($1) # encoding: [A,A,0x28,0xac] 63 # CHECK-LE: # fixup A - offset: 0, value: %lo(symbol), kind: fixup_Mips_LO16 64 65 ldc1 $f0, symbol 66 # CHECK-LE: lui $1, %hi(symbol) 67 # CHECK-LE: ldc1 $f0, %lo(symbol)($1) 68 sdc1 $f0, symbol 69 # CHECK-LE: lui $1, %hi(symbol) 70 # CHECK-LE: sdc1 $f0, %lo(symbol)($1) 71 72 # Test BNE with an immediate as the 2nd operand. 73 bne $2, 0, 1332 74 # CHECK-LE: bnez $2, 1332 # encoding: [0x4d,0x01,0x40,0x14] 75 # CHECK-LE: nop # encoding: [0x00,0x00,0x00,0x00] 76 77 bne $2, 123, 1332 78 # CHECK-LE: addiu $1, $zero, 123 # encoding: [0x7b,0x00,0x01,0x24] 79 # CHECK-LE: bne $2, $1, 1332 # encoding: [0x4d,0x01,0x41,0x14] 80 # CHECK-LE: nop # encoding: [0x00,0x00,0x00,0x00] 81 82 bne $2, -2345, 1332 83 # CHECK-LE: addiu $1, $zero, -2345 # encoding: [0xd7,0xf6,0x01,0x24] 84 # CHECK-LE: bne $2, $1, 1332 # encoding: [0x4d,0x01,0x41,0x14] 85 # CHECK-LE: nop # encoding: [0x00,0x00,0x00,0x00] 86 87 bne $2, 65538, 1332 88 # CHECK-LE: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] 89 # CHECK-LE: ori $1, $1, 2 # encoding: [0x02,0x00,0x21,0x34] 90 # CHECK-LE: bne $2, $1, 1332 # encoding: [0x4d,0x01,0x41,0x14] 91 # CHECK-LE: nop # encoding: [0x00,0x00,0x00,0x00] 92 93 bne $2, ~7, 1332 94 # CHECK-LE: addiu $1, $zero, -8 # encoding: [0xf8,0xff,0x01,0x24] 95 # CHECK-LE: bne $2, $1, 1332 # encoding: [0x4d,0x01,0x41,0x14] 96 # CHECK-LE: nop # encoding: [0x00,0x00,0x00,0x00] 97 98 bne $2, 0x10000, 1332 99 # CHECK-LE: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] 100 # CHECK-LE: bne $2, $1, 1332 # encoding: [0x4d,0x01,0x41,0x14] 101 # CHECK-LE: nop # encoding: [0x00,0x00,0x00,0x00] 102 103 # Test BEQ with an immediate as the 2nd operand. 104 beq $2, 0, 1332 105 # CHECK-LE: beqz $2, 1332 # encoding: [0x4d,0x01,0x40,0x10] 106 # CHECK-LE: nop # encoding: [0x00,0x00,0x00,0x00] 107 108 beq $2, 123, 1332 109 # CHECK-LE: addiu $1, $zero, 123 # encoding: [0x7b,0x00,0x01,0x24] 110 # CHECK-LE: beq $2, $1, 1332 # encoding: [0x4d,0x01,0x41,0x10] 111 # CHECK-LE: nop # encoding: [0x00,0x00,0x00,0x00] 112 113 beq $2, -2345, 1332 114 # CHECK-LE: addiu $1, $zero, -2345 # encoding: [0xd7,0xf6,0x01,0x24] 115 # CHECK-LE: beq $2, $1, 1332 # encoding: [0x4d,0x01,0x41,0x10] 116 # CHECK-LE: nop # encoding: [0x00,0x00,0x00,0x00] 117 118 beq $2, 65538, 1332 119 # CHECK-LE: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] 120 # CHECK-LE: ori $1, $1, 2 # encoding: [0x02,0x00,0x21,0x34] 121 # CHECK-LE: beq $2, $1, 1332 # encoding: [0x4d,0x01,0x41,0x10] 122 # CHECK-LE: nop # encoding: [0x00,0x00,0x00,0x00] 123 124 beq $2, ~7, 1332 125 # CHECK-LE: addiu $1, $zero, -8 # encoding: [0xf8,0xff,0x01,0x24] 126 # CHECK-LE: beq $2, $1, 1332 # encoding: [0x4d,0x01,0x41,0x10] 127 # CHECK-LE: nop # encoding: [0x00,0x00,0x00,0x00] 128 129 beq $2, 0x10000, 1332 130 # CHECK-LE: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] 131 # CHECK-LE: beq $2, $1, 1332 # encoding: [0x4d,0x01,0x41,0x10] 132 # CHECK-LE: nop # encoding: [0x00,0x00,0x00,0x00] 133 134 beq $2, 65538, foo 135 # CHECK-LE: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] 136 # CHECK-LE: ori $1, $1, 2 # encoding: [0x02,0x00,0x21,0x34] 137 # CHECK-LE: beq $2, $1, foo # encoding: [A,A,0x41,0x10] 138 # CHECK-LE: nop # encoding: [0x00,0x00,0x00,0x00] 139 140 # Test ULH with immediate operand. 141 ulh_imm: # CHECK-LABEL: ulh_imm: 142 ulh $8, 0 143 # CHECK-BE: lb $1, 0($zero) # encoding: [0x80,0x01,0x00,0x00] 144 # CHECK-BE: lbu $8, 1($zero) # encoding: [0x90,0x08,0x00,0x01] 145 # CHECK-BE: sll $1, $1, 8 # encoding: [0x00,0x01,0x0a,0x00] 146 # CHECK-BE: or $8, $8, $1 # encoding: [0x01,0x01,0x40,0x25] 147 # CHECK-LE: lb $1, 1($zero) # encoding: [0x01,0x00,0x01,0x80] 148 # CHECK-LE: lbu $8, 0($zero) # encoding: [0x00,0x00,0x08,0x90] 149 # CHECK-LE: sll $1, $1, 8 # encoding: [0x00,0x0a,0x01,0x00] 150 # CHECK-LE: or $8, $8, $1 # encoding: [0x25,0x40,0x01,0x01] 151 152 ulh $8, 2 153 # CHECK-BE: lb $1, 2($zero) # encoding: [0x80,0x01,0x00,0x02] 154 # CHECK-BE: lbu $8, 3($zero) # encoding: [0x90,0x08,0x00,0x03] 155 # CHECK-BE: sll $1, $1, 8 # encoding: [0x00,0x01,0x0a,0x00] 156 # CHECK-BE: or $8, $8, $1 # encoding: [0x01,0x01,0x40,0x25] 157 # CHECK-LE: lb $1, 3($zero) # encoding: [0x03,0x00,0x01,0x80] 158 # CHECK-LE: lbu $8, 2($zero) # encoding: [0x02,0x00,0x08,0x90] 159 # CHECK-LE: sll $1, $1, 8 # encoding: [0x00,0x0a,0x01,0x00] 160 # CHECK-LE: or $8, $8, $1 # encoding: [0x25,0x40,0x01,0x01] 161 162 ulh $8, 0x8000 163 # CHECK-BE: ori $1, $zero, 32768 # encoding: [0x34,0x01,0x80,0x00] 164 # CHECK-BE: lb $8, 0($1) # encoding: [0x80,0x28,0x00,0x00] 165 # CHECK-BE: lbu $1, 1($1) # encoding: [0x90,0x21,0x00,0x01] 166 # CHECK-BE: sll $8, $8, 8 # encoding: [0x00,0x08,0x42,0x00] 167 # CHECK-BE: or $8, $8, $1 # encoding: [0x01,0x01,0x40,0x25] 168 # CHECK-LE: ori $1, $zero, 32768 # encoding: [0x00,0x80,0x01,0x34] 169 # CHECK-LE: lb $8, 1($1) # encoding: [0x01,0x00,0x28,0x80] 170 # CHECK-LE: lbu $1, 0($1) # encoding: [0x00,0x00,0x21,0x90] 171 # CHECK-LE: sll $8, $8, 8 # encoding: [0x00,0x42,0x08,0x00] 172 # CHECK-LE: or $8, $8, $1 # encoding: [0x25,0x40,0x01,0x01] 173 174 ulh $8, -0x8000 175 # CHECK-BE: lb $1, -32768($zero) # encoding: [0x80,0x01,0x80,0x00] 176 # CHECK-BE: lbu $8, -32767($zero) # encoding: [0x90,0x08,0x80,0x01] 177 # CHECK-BE: sll $1, $1, 8 # encoding: [0x00,0x01,0x0a,0x00] 178 # CHECK-BE: or $8, $8, $1 # encoding: [0x01,0x01,0x40,0x25] 179 # CHECK-LE: lb $1, -32767($zero) # encoding: [0x01,0x80,0x01,0x80] 180 # CHECK-LE: lbu $8, -32768($zero) # encoding: [0x00,0x80,0x08,0x90] 181 # CHECK-LE: sll $1, $1, 8 # encoding: [0x00,0x0a,0x01,0x00] 182 # CHECK-LE: or $8, $8, $1 # encoding: [0x25,0x40,0x01,0x01] 183 184 ulh $8, 0x10000 185 # CHECK-BE: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01] 186 # CHECK-BE: lb $8, 0($1) # encoding: [0x80,0x28,0x00,0x00] 187 # CHECK-BE: lbu $1, 1($1) # encoding: [0x90,0x21,0x00,0x01] 188 # CHECK-BE: sll $8, $8, 8 # encoding: [0x00,0x08,0x42,0x00] 189 # CHECK-BE: or $8, $8, $1 # encoding: [0x01,0x01,0x40,0x25] 190 # CHECK-LE: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] 191 # CHECK-LE: lb $8, 1($1) # encoding: [0x01,0x00,0x28,0x80] 192 # CHECK-LE: lbu $1, 0($1) # encoding: [0x00,0x00,0x21,0x90] 193 # CHECK-LE: sll $8, $8, 8 # encoding: [0x00,0x42,0x08,0x00] 194 # CHECK-LE: or $8, $8, $1 # encoding: [0x25,0x40,0x01,0x01] 195 196 ulh $8, 0x18888 197 # CHECK-BE: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01] 198 # CHECK-BE: ori $1, $1, 34952 # encoding: [0x34,0x21,0x88,0x88] 199 # CHECK-BE: lb $8, 0($1) # encoding: [0x80,0x28,0x00,0x00] 200 # CHECK-BE: lbu $1, 1($1) # encoding: [0x90,0x21,0x00,0x01] 201 # CHECK-BE: sll $8, $8, 8 # encoding: [0x00,0x08,0x42,0x00] 202 # CHECK-BE: or $8, $8, $1 # encoding: [0x01,0x01,0x40,0x25] 203 # CHECK-LE: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] 204 # CHECK-LE: ori $1, $1, 34952 # encoding: [0x88,0x88,0x21,0x34] 205 # CHECK-LE: lb $8, 1($1) # encoding: [0x01,0x00,0x28,0x80] 206 # CHECK-LE: lbu $1, 0($1) # encoding: [0x00,0x00,0x21,0x90] 207 # CHECK-LE: sll $8, $8, 8 # encoding: [0x00,0x42,0x08,0x00] 208 # CHECK-LE: or $8, $8, $1 # encoding: [0x25,0x40,0x01,0x01] 209 210 ulh $8, -32769 211 # CHECK-BE: lui $1, 65535 # encoding: [0x3c,0x01,0xff,0xff] 212 # CHECK-BE: ori $1, $1, 32767 # encoding: [0x34,0x21,0x7f,0xff] 213 # CHECK-BE: lb $8, 0($1) # encoding: [0x80,0x28,0x00,0x00] 214 # CHECK-BE: lbu $1, 1($1) # encoding: [0x90,0x21,0x00,0x01] 215 # CHECK-BE: sll $8, $8, 8 # encoding: [0x00,0x08,0x42,0x00] 216 # CHECK-BE: or $8, $8, $1 # encoding: [0x01,0x01,0x40,0x25] 217 # CHECK-LE: lui $1, 65535 # encoding: [0xff,0xff,0x01,0x3c] 218 # CHECK-LE: ori $1, $1, 32767 # encoding: [0xff,0x7f,0x21,0x34] 219 # CHECK-LE: lb $8, 1($1) # encoding: [0x01,0x00,0x28,0x80] 220 # CHECK-LE: lbu $1, 0($1) # encoding: [0x00,0x00,0x21,0x90] 221 # CHECK-LE: sll $8, $8, 8 # encoding: [0x00,0x42,0x08,0x00] 222 # CHECK-LE: or $8, $8, $1 # encoding: [0x25,0x40,0x01,0x01] 223 224 ulh $8, 32767 225 # CHECK-BE: addiu $1, $zero, 32767 # encoding: [0x24,0x01,0x7f,0xff] 226 # CHECK-BE: lb $8, 0($1) # encoding: [0x80,0x28,0x00,0x00] 227 # CHECK-BE: lbu $1, 1($1) # encoding: [0x90,0x21,0x00,0x01] 228 # CHECK-BE: sll $8, $8, 8 # encoding: [0x00,0x08,0x42,0x00] 229 # CHECK-BE: or $8, $8, $1 # encoding: [0x01,0x01,0x40,0x25] 230 # CHECK-LE: addiu $1, $zero, 32767 # encoding: [0xff,0x7f,0x01,0x24] 231 # CHECK-LE: lb $8, 1($1) # encoding: [0x01,0x00,0x28,0x80] 232 # CHECK-LE: lbu $1, 0($1) # encoding: [0x00,0x00,0x21,0x90] 233 # CHECK-LE: sll $8, $8, 8 # encoding: [0x00,0x42,0x08,0x00] 234 # CHECK-LE: or $8, $8, $1 # encoding: [0x25,0x40,0x01,0x01] 235 236 # Test ULH with immediate offset and a source register operand. 237 ulh_reg: # CHECK-LABEL: ulh_reg: 238 ulh $8, 0($9) 239 # CHECK-BE: lb $1, 0($9) # encoding: [0x81,0x21,0x00,0x00] 240 # CHECK-BE: lbu $8, 1($9) # encoding: [0x91,0x28,0x00,0x01] 241 # CHECK-BE: sll $1, $1, 8 # encoding: [0x00,0x01,0x0a,0x00] 242 # CHECK-BE: or $8, $8, $1 # encoding: [0x01,0x01,0x40,0x25] 243 # CHECK-LE: lb $1, 1($9) # encoding: [0x01,0x00,0x21,0x81] 244 # CHECK-LE: lbu $8, 0($9) # encoding: [0x00,0x00,0x28,0x91] 245 # CHECK-LE: sll $1, $1, 8 # encoding: [0x00,0x0a,0x01,0x00] 246 # CHECK-LE: or $8, $8, $1 # encoding: [0x25,0x40,0x01,0x01] 247 248 ulh $8, 2($9) 249 # CHECK-BE: lb $1, 2($9) # encoding: [0x81,0x21,0x00,0x02] 250 # CHECK-BE: lbu $8, 3($9) # encoding: [0x91,0x28,0x00,0x03] 251 # CHECK-BE: sll $1, $1, 8 # encoding: [0x00,0x01,0x0a,0x00] 252 # CHECK-BE: or $8, $8, $1 # encoding: [0x01,0x01,0x40,0x25] 253 # CHECK-LE: lb $1, 3($9) # encoding: [0x03,0x00,0x21,0x81] 254 # CHECK-LE: lbu $8, 2($9) # encoding: [0x02,0x00,0x28,0x91] 255 # CHECK-LE: sll $1, $1, 8 # encoding: [0x00,0x0a,0x01,0x00] 256 # CHECK-LE: or $8, $8, $1 # encoding: [0x25,0x40,0x01,0x01] 257 258 ulh $8, 0x8000($9) 259 # CHECK-BE: ori $1, $zero, 32768 # encoding: [0x34,0x01,0x80,0x00] 260 # CHECK-BE: addu $1, $1, $9 # encoding: [0x00,0x29,0x08,0x21] 261 # CHECK-BE: lb $8, 0($1) # encoding: [0x80,0x28,0x00,0x00] 262 # CHECK-BE: lbu $1, 1($1) # encoding: [0x90,0x21,0x00,0x01] 263 # CHECK-BE: sll $8, $8, 8 # encoding: [0x00,0x08,0x42,0x00] 264 # CHECK-BE: or $8, $8, $1 # encoding: [0x01,0x01,0x40,0x25] 265 # CHECK-LE: ori $1, $zero, 32768 # encoding: [0x00,0x80,0x01,0x34] 266 # CHECK-LE: addu $1, $1, $9 # encoding: [0x21,0x08,0x29,0x00] 267 # CHECK-LE: lb $8, 1($1) # encoding: [0x01,0x00,0x28,0x80] 268 # CHECK-LE: lbu $1, 0($1) # encoding: [0x00,0x00,0x21,0x90] 269 # CHECK-LE: sll $8, $8, 8 # encoding: [0x00,0x42,0x08,0x00] 270 # CHECK-LE: or $8, $8, $1 # encoding: [0x25,0x40,0x01,0x01] 271 272 ulh $8, -0x8000($9) 273 # CHECK-BE: lb $1, -32768($9) # encoding: [0x81,0x21,0x80,0x00] 274 # CHECK-BE: lbu $8, -32767($9) # encoding: [0x91,0x28,0x80,0x01] 275 # CHECK-BE: sll $1, $1, 8 # encoding: [0x00,0x01,0x0a,0x00] 276 # CHECK-BE: or $8, $8, $1 # encoding: [0x01,0x01,0x40,0x25] 277 # CHECK-LE: lb $1, -32767($9) # encoding: [0x01,0x80,0x21,0x81] 278 # CHECK-LE: lbu $8, -32768($9) # encoding: [0x00,0x80,0x28,0x91] 279 # CHECK-LE: sll $1, $1, 8 # encoding: [0x00,0x0a,0x01,0x00] 280 # CHECK-LE: or $8, $8, $1 # encoding: [0x25,0x40,0x01,0x01] 281 282 ulh $8, 0x10000($9) 283 # CHECK-BE: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01] 284 # CHECK-BE: addu $1, $1, $9 # encoding: [0x00,0x29,0x08,0x21] 285 # CHECK-BE: lb $8, 0($1) # encoding: [0x80,0x28,0x00,0x00] 286 # CHECK-BE: lbu $1, 1($1) # encoding: [0x90,0x21,0x00,0x01] 287 # CHECK-BE: sll $8, $8, 8 # encoding: [0x00,0x08,0x42,0x00] 288 # CHECK-BE: or $8, $8, $1 # encoding: [0x01,0x01,0x40,0x25] 289 # CHECK-LE: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] 290 # CHECK-LE: addu $1, $1, $9 # encoding: [0x21,0x08,0x29,0x00] 291 # CHECK-LE: lb $8, 1($1) # encoding: [0x01,0x00,0x28,0x80] 292 # CHECK-LE: lbu $1, 0($1) # encoding: [0x00,0x00,0x21,0x90] 293 # CHECK-LE: sll $8, $8, 8 # encoding: [0x00,0x42,0x08,0x00] 294 # CHECK-LE: or $8, $8, $1 # encoding: [0x25,0x40,0x01,0x01] 295 296 ulh $8, 0x18888($9) 297 # CHECK-BE: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01] 298 # CHECK-BE: ori $1, $1, 34952 # encoding: [0x34,0x21,0x88,0x88] 299 # CHECK-BE: addu $1, $1, $9 # encoding: [0x00,0x29,0x08,0x21] 300 # CHECK-BE: lb $8, 0($1) # encoding: [0x80,0x28,0x00,0x00] 301 # CHECK-BE: lbu $1, 1($1) # encoding: [0x90,0x21,0x00,0x01] 302 # CHECK-BE: sll $8, $8, 8 # encoding: [0x00,0x08,0x42,0x00] 303 # CHECK-BE: or $8, $8, $1 # encoding: [0x01,0x01,0x40,0x25] 304 # CHECK-LE: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] 305 # CHECK-LE: ori $1, $1, 34952 # encoding: [0x88,0x88,0x21,0x34] 306 # CHECK-LE: addu $1, $1, $9 # encoding: [0x21,0x08,0x29,0x00] 307 # CHECK-LE: lb $8, 1($1) # encoding: [0x01,0x00,0x28,0x80] 308 # CHECK-LE: lbu $1, 0($1) # encoding: [0x00,0x00,0x21,0x90] 309 # CHECK-LE: sll $8, $8, 8 # encoding: [0x00,0x42,0x08,0x00] 310 # CHECK-LE: or $8, $8, $1 # encoding: [0x25,0x40,0x01,0x01] 311 312 ulh $8, -32769($9) 313 # CHECK-BE: lui $1, 65535 # encoding: [0x3c,0x01,0xff,0xff] 314 # CHECK-BE: ori $1, $1, 32767 # encoding: [0x34,0x21,0x7f,0xff] 315 # CHECK-BE: addu $1, $1, $9 # encoding: [0x00,0x29,0x08,0x21] 316 # CHECK-BE: lb $8, 0($1) # encoding: [0x80,0x28,0x00,0x00] 317 # CHECK-BE: lbu $1, 1($1) # encoding: [0x90,0x21,0x00,0x01] 318 # CHECK-BE: sll $8, $8, 8 # encoding: [0x00,0x08,0x42,0x00] 319 # CHECK-BE: or $8, $8, $1 # encoding: [0x01,0x01,0x40,0x25] 320 # CHECK-LE: lui $1, 65535 # encoding: [0xff,0xff,0x01,0x3c] 321 # CHECK-LE: ori $1, $1, 32767 # encoding: [0xff,0x7f,0x21,0x34] 322 # CHECK-LE: addu $1, $1, $9 # encoding: [0x21,0x08,0x29,0x00] 323 # CHECK-LE: lb $8, 1($1) # encoding: [0x01,0x00,0x28,0x80] 324 # CHECK-LE: lbu $1, 0($1) # encoding: [0x00,0x00,0x21,0x90] 325 # CHECK-LE: sll $8, $8, 8 # encoding: [0x00,0x42,0x08,0x00] 326 # CHECK-LE: or $8, $8, $1 # encoding: [0x25,0x40,0x01,0x01] 327 328 ulh $8, 32767($9) 329 # CHECK-BE: addiu $1, $zero, 32767 # encoding: [0x24,0x01,0x7f,0xff] 330 # CHECK-BE: addu $1, $1, $9 # encoding: [0x00,0x29,0x08,0x21] 331 # CHECK-BE: lb $8, 0($1) # encoding: [0x80,0x28,0x00,0x00] 332 # CHECK-BE: lbu $1, 1($1) # encoding: [0x90,0x21,0x00,0x01] 333 # CHECK-BE: sll $8, $8, 8 # encoding: [0x00,0x08,0x42,0x00] 334 # CHECK-BE: or $8, $8, $1 # encoding: [0x01,0x01,0x40,0x25] 335 # CHECK-LE: addiu $1, $zero, 32767 # encoding: [0xff,0x7f,0x01,0x24] 336 # CHECK-LE: addu $1, $1, $9 # encoding: [0x21,0x08,0x29,0x00] 337 # CHECK-LE: lb $8, 1($1) # encoding: [0x01,0x00,0x28,0x80] 338 # CHECK-LE: lbu $1, 0($1) # encoding: [0x00,0x00,0x21,0x90] 339 # CHECK-LE: sll $8, $8, 8 # encoding: [0x00,0x42,0x08,0x00] 340 # CHECK-LE: or $8, $8, $1 # encoding: [0x25,0x40,0x01,0x01] 341 342 # Test ULHU with immediate operand. 343 ulhu_imm: # CHECK-LABEL: ulhu_imm: 344 ulhu $8, 0 345 # CHECK-BE: lbu $1, 0($zero) # encoding: [0x90,0x01,0x00,0x00] 346 # CHECK-BE: lbu $8, 1($zero) # encoding: [0x90,0x08,0x00,0x01] 347 # CHECK-BE: sll $1, $1, 8 # encoding: [0x00,0x01,0x0a,0x00] 348 # CHECK-BE: or $8, $8, $1 # encoding: [0x01,0x01,0x40,0x25] 349 # CHECK-LE: lbu $1, 1($zero) # encoding: [0x01,0x00,0x01,0x90] 350 # CHECK-LE: lbu $8, 0($zero) # encoding: [0x00,0x00,0x08,0x90] 351 # CHECK-LE: sll $1, $1, 8 # encoding: [0x00,0x0a,0x01,0x00] 352 # CHECK-LE: or $8, $8, $1 # encoding: [0x25,0x40,0x01,0x01] 353 354 ulhu $8, 2 355 # CHECK-BE: lbu $1, 2($zero) # encoding: [0x90,0x01,0x00,0x02] 356 # CHECK-BE: lbu $8, 3($zero) # encoding: [0x90,0x08,0x00,0x03] 357 # CHECK-BE: sll $1, $1, 8 # encoding: [0x00,0x01,0x0a,0x00] 358 # CHECK-BE: or $8, $8, $1 # encoding: [0x01,0x01,0x40,0x25] 359 # CHECK-LE: lbu $1, 3($zero) # encoding: [0x03,0x00,0x01,0x90] 360 # CHECK-LE: lbu $8, 2($zero) # encoding: [0x02,0x00,0x08,0x90] 361 # CHECK-LE: sll $1, $1, 8 # encoding: [0x00,0x0a,0x01,0x00] 362 # CHECK-LE: or $8, $8, $1 # encoding: [0x25,0x40,0x01,0x01] 363 364 ulhu $8, 0x8000 365 # CHECK-BE: ori $1, $zero, 32768 # encoding: [0x34,0x01,0x80,0x00] 366 # CHECK-BE: lbu $8, 0($1) # encoding: [0x90,0x28,0x00,0x00] 367 # CHECK-BE: lbu $1, 1($1) # encoding: [0x90,0x21,0x00,0x01] 368 # CHECK-BE: sll $8, $8, 8 # encoding: [0x00,0x08,0x42,0x00] 369 # CHECK-BE: or $8, $8, $1 # encoding: [0x01,0x01,0x40,0x25] 370 # CHECK-LE: ori $1, $zero, 32768 # encoding: [0x00,0x80,0x01,0x34] 371 # CHECK-LE: lbu $8, 1($1) # encoding: [0x01,0x00,0x28,0x90] 372 # CHECK-LE: lbu $1, 0($1) # encoding: [0x00,0x00,0x21,0x90] 373 # CHECK-LE: sll $8, $8, 8 # encoding: [0x00,0x42,0x08,0x00] 374 # CHECK-LE: or $8, $8, $1 # encoding: [0x25,0x40,0x01,0x01] 375 376 ulhu $8, -0x8000 377 # CHECK-BE: lbu $1, -32768($zero) # encoding: [0x90,0x01,0x80,0x00] 378 # CHECK-BE: lbu $8, -32767($zero) # encoding: [0x90,0x08,0x80,0x01] 379 # CHECK-BE: sll $1, $1, 8 # encoding: [0x00,0x01,0x0a,0x00] 380 # CHECK-BE: or $8, $8, $1 # encoding: [0x01,0x01,0x40,0x25] 381 # CHECK-LE: lbu $1, -32767($zero) # encoding: [0x01,0x80,0x01,0x90] 382 # CHECK-LE: lbu $8, -32768($zero) # encoding: [0x00,0x80,0x08,0x90] 383 # CHECK-LE: sll $1, $1, 8 # encoding: [0x00,0x0a,0x01,0x00] 384 # CHECK-LE: or $8, $8, $1 # encoding: [0x25,0x40,0x01,0x01] 385 386 ulhu $8, 0x10000 387 # CHECK-BE: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01] 388 # CHECK-BE: lbu $8, 0($1) # encoding: [0x90,0x28,0x00,0x00] 389 # CHECK-BE: lbu $1, 1($1) # encoding: [0x90,0x21,0x00,0x01] 390 # CHECK-BE: sll $8, $8, 8 # encoding: [0x00,0x08,0x42,0x00] 391 # CHECK-BE: or $8, $8, $1 # encoding: [0x01,0x01,0x40,0x25] 392 # CHECK-LE: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] 393 # CHECK-LE: lbu $8, 1($1) # encoding: [0x01,0x00,0x28,0x90] 394 # CHECK-LE: lbu $1, 0($1) # encoding: [0x00,0x00,0x21,0x90] 395 # CHECK-LE: sll $8, $8, 8 # encoding: [0x00,0x42,0x08,0x00] 396 # CHECK-LE: or $8, $8, $1 # encoding: [0x25,0x40,0x01,0x01] 397 398 ulhu $8, 0x18888 399 # CHECK-BE: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01] 400 # CHECK-BE: ori $1, $1, 34952 # encoding: [0x34,0x21,0x88,0x88] 401 # CHECK-BE: lbu $8, 0($1) # encoding: [0x90,0x28,0x00,0x00] 402 # CHECK-BE: lbu $1, 1($1) # encoding: [0x90,0x21,0x00,0x01] 403 # CHECK-BE: sll $8, $8, 8 # encoding: [0x00,0x08,0x42,0x00] 404 # CHECK-BE: or $8, $8, $1 # encoding: [0x01,0x01,0x40,0x25] 405 # CHECK-LE: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] 406 # CHECK-LE: ori $1, $1, 34952 # encoding: [0x88,0x88,0x21,0x34] 407 # CHECK-LE: lbu $8, 1($1) # encoding: [0x01,0x00,0x28,0x90] 408 # CHECK-LE: lbu $1, 0($1) # encoding: [0x00,0x00,0x21,0x90] 409 # CHECK-LE: sll $8, $8, 8 # encoding: [0x00,0x42,0x08,0x00] 410 # CHECK-LE: or $8, $8, $1 # encoding: [0x25,0x40,0x01,0x01] 411 412 ulhu $8, -32769 413 # CHECK-BE: lui $1, 65535 # encoding: [0x3c,0x01,0xff,0xff] 414 # CHECK-BE: ori $1, $1, 32767 # encoding: [0x34,0x21,0x7f,0xff] 415 # CHECK-BE: lbu $8, 0($1) # encoding: [0x90,0x28,0x00,0x00] 416 # CHECK-BE: lbu $1, 1($1) # encoding: [0x90,0x21,0x00,0x01] 417 # CHECK-BE: sll $8, $8, 8 # encoding: [0x00,0x08,0x42,0x00] 418 # CHECK-BE: or $8, $8, $1 # encoding: [0x01,0x01,0x40,0x25] 419 # CHECK-LE: lui $1, 65535 # encoding: [0xff,0xff,0x01,0x3c] 420 # CHECK-LE: ori $1, $1, 32767 # encoding: [0xff,0x7f,0x21,0x34] 421 # CHECK-LE: lbu $8, 1($1) # encoding: [0x01,0x00,0x28,0x90] 422 # CHECK-LE: lbu $1, 0($1) # encoding: [0x00,0x00,0x21,0x90] 423 # CHECK-LE: sll $8, $8, 8 # encoding: [0x00,0x42,0x08,0x00] 424 # CHECK-LE: or $8, $8, $1 # encoding: [0x25,0x40,0x01,0x01] 425 426 ulhu $8, 32767 427 # CHECK-BE: addiu $1, $zero, 32767 # encoding: [0x24,0x01,0x7f,0xff] 428 # CHECK-BE: lbu $8, 0($1) # encoding: [0x90,0x28,0x00,0x00] 429 # CHECK-BE: lbu $1, 1($1) # encoding: [0x90,0x21,0x00,0x01] 430 # CHECK-BE: sll $8, $8, 8 # encoding: [0x00,0x08,0x42,0x00] 431 # CHECK-BE: or $8, $8, $1 # encoding: [0x01,0x01,0x40,0x25] 432 # CHECK-LE: addiu $1, $zero, 32767 # encoding: [0xff,0x7f,0x01,0x24] 433 # CHECK-LE: lbu $8, 1($1) # encoding: [0x01,0x00,0x28,0x90] 434 # CHECK-LE: lbu $1, 0($1) # encoding: [0x00,0x00,0x21,0x90] 435 # CHECK-LE: sll $8, $8, 8 # encoding: [0x00,0x42,0x08,0x00] 436 # CHECK-LE: or $8, $8, $1 # encoding: [0x25,0x40,0x01,0x01] 437 438 # Test ULHU with immediate offset and a source register operand. 439 ulhu $8, 0($9) 440 # CHECK-BE: lbu $1, 0($9) # encoding: [0x91,0x21,0x00,0x00] 441 # CHECK-BE: lbu $8, 1($9) # encoding: [0x91,0x28,0x00,0x01] 442 # CHECK-BE: sll $1, $1, 8 # encoding: [0x00,0x01,0x0a,0x00] 443 # CHECK-BE: or $8, $8, $1 # encoding: [0x01,0x01,0x40,0x25] 444 # CHECK-LE: lbu $1, 1($9) # encoding: [0x01,0x00,0x21,0x91] 445 # CHECK-LE: lbu $8, 0($9) # encoding: [0x00,0x00,0x28,0x91] 446 # CHECK-LE: sll $1, $1, 8 # encoding: [0x00,0x0a,0x01,0x00] 447 # CHECK-LE: or $8, $8, $1 # encoding: [0x25,0x40,0x01,0x01] 448 449 ulhu $8, 2($9) 450 # CHECK-BE: lbu $1, 2($9) # encoding: [0x91,0x21,0x00,0x02] 451 # CHECK-BE: lbu $8, 3($9) # encoding: [0x91,0x28,0x00,0x03] 452 # CHECK-BE: sll $1, $1, 8 # encoding: [0x00,0x01,0x0a,0x00] 453 # CHECK-BE: or $8, $8, $1 # encoding: [0x01,0x01,0x40,0x25] 454 # CHECK-LE: lbu $1, 3($9) # encoding: [0x03,0x00,0x21,0x91] 455 # CHECK-LE: lbu $8, 2($9) # encoding: [0x02,0x00,0x28,0x91] 456 # CHECK-LE: sll $1, $1, 8 # encoding: [0x00,0x0a,0x01,0x00] 457 # CHECK-LE: or $8, $8, $1 # encoding: [0x25,0x40,0x01,0x01] 458 459 ulhu $8, 0x8000($9) 460 # CHECK-BE: ori $1, $zero, 32768 # encoding: [0x34,0x01,0x80,0x00] 461 # CHECK-BE: addu $1, $1, $9 # encoding: [0x00,0x29,0x08,0x21] 462 # CHECK-BE: lbu $8, 0($1) # encoding: [0x90,0x28,0x00,0x00] 463 # CHECK-BE: lbu $1, 1($1) # encoding: [0x90,0x21,0x00,0x01] 464 # CHECK-BE: sll $8, $8, 8 # encoding: [0x00,0x08,0x42,0x00] 465 # CHECK-BE: or $8, $8, $1 # encoding: [0x01,0x01,0x40,0x25] 466 # CHECK-LE: ori $1, $zero, 32768 # encoding: [0x00,0x80,0x01,0x34] 467 # CHECK-LE: addu $1, $1, $9 # encoding: [0x21,0x08,0x29,0x00] 468 # CHECK-LE: lbu $8, 1($1) # encoding: [0x01,0x00,0x28,0x90] 469 # CHECK-LE: lbu $1, 0($1) # encoding: [0x00,0x00,0x21,0x90] 470 # CHECK-LE: sll $8, $8, 8 # encoding: [0x00,0x42,0x08,0x00] 471 # CHECK-LE: or $8, $8, $1 # encoding: [0x25,0x40,0x01,0x01] 472 473 ulhu $8, -0x8000($9) 474 # CHECK-BE: lbu $1, -32768($9) # encoding: [0x91,0x21,0x80,0x00] 475 # CHECK-BE: lbu $8, -32767($9) # encoding: [0x91,0x28,0x80,0x01] 476 # CHECK-BE: sll $1, $1, 8 # encoding: [0x00,0x01,0x0a,0x00] 477 # CHECK-BE: or $8, $8, $1 # encoding: [0x01,0x01,0x40,0x25] 478 # CHECK-LE: lbu $1, -32767($9) # encoding: [0x01,0x80,0x21,0x91] 479 # CHECK-LE: lbu $8, -32768($9) # encoding: [0x00,0x80,0x28,0x91] 480 # CHECK-LE: sll $1, $1, 8 # encoding: [0x00,0x0a,0x01,0x00] 481 # CHECK-LE: or $8, $8, $1 # encoding: [0x25,0x40,0x01,0x01] 482 483 ulhu $8, 0x10000($9) 484 # CHECK-BE: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01] 485 # CHECK-BE: addu $1, $1, $9 # encoding: [0x00,0x29,0x08,0x21] 486 # CHECK-BE: lbu $8, 0($1) # encoding: [0x90,0x28,0x00,0x00] 487 # CHECK-BE: lbu $1, 1($1) # encoding: [0x90,0x21,0x00,0x01] 488 # CHECK-BE: sll $8, $8, 8 # encoding: [0x00,0x08,0x42,0x00] 489 # CHECK-BE: or $8, $8, $1 # encoding: [0x01,0x01,0x40,0x25] 490 # CHECK-LE: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] 491 # CHECK-LE: addu $1, $1, $9 # encoding: [0x21,0x08,0x29,0x00] 492 # CHECK-LE: lbu $8, 1($1) # encoding: [0x01,0x00,0x28,0x90] 493 # CHECK-LE: lbu $1, 0($1) # encoding: [0x00,0x00,0x21,0x90] 494 # CHECK-LE: sll $8, $8, 8 # encoding: [0x00,0x42,0x08,0x00] 495 # CHECK-LE: or $8, $8, $1 # encoding: [0x25,0x40,0x01,0x01] 496 497 ulhu $8, 0x18888($9) 498 # CHECK-BE: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01] 499 # CHECK-BE: ori $1, $1, 34952 # encoding: [0x34,0x21,0x88,0x88] 500 # CHECK-BE: addu $1, $1, $9 # encoding: [0x00,0x29,0x08,0x21] 501 # CHECK-BE: lbu $8, 0($1) # encoding: [0x90,0x28,0x00,0x00] 502 # CHECK-BE: lbu $1, 1($1) # encoding: [0x90,0x21,0x00,0x01] 503 # CHECK-BE: sll $8, $8, 8 # encoding: [0x00,0x08,0x42,0x00] 504 # CHECK-BE: or $8, $8, $1 # encoding: [0x01,0x01,0x40,0x25] 505 # CHECK-LE: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] 506 # CHECK-LE: ori $1, $1, 34952 # encoding: [0x88,0x88,0x21,0x34] 507 # CHECK-LE: addu $1, $1, $9 # encoding: [0x21,0x08,0x29,0x00] 508 # CHECK-LE: lbu $8, 1($1) # encoding: [0x01,0x00,0x28,0x90] 509 # CHECK-LE: lbu $1, 0($1) # encoding: [0x00,0x00,0x21,0x90] 510 # CHECK-LE: sll $8, $8, 8 # encoding: [0x00,0x42,0x08,0x00] 511 # CHECK-LE: or $8, $8, $1 # encoding: [0x25,0x40,0x01,0x01] 512 513 ulhu $8, -32769($9) 514 # CHECK-BE: lui $1, 65535 # encoding: [0x3c,0x01,0xff,0xff] 515 # CHECK-BE: ori $1, $1, 32767 # encoding: [0x34,0x21,0x7f,0xff] 516 # CHECK-BE: addu $1, $1, $9 # encoding: [0x00,0x29,0x08,0x21] 517 # CHECK-BE: lbu $8, 0($1) # encoding: [0x90,0x28,0x00,0x00] 518 # CHECK-BE: lbu $1, 1($1) # encoding: [0x90,0x21,0x00,0x01] 519 # CHECK-BE: sll $8, $8, 8 # encoding: [0x00,0x08,0x42,0x00] 520 # CHECK-BE: or $8, $8, $1 # encoding: [0x01,0x01,0x40,0x25] 521 # CHECK-LE: lui $1, 65535 # encoding: [0xff,0xff,0x01,0x3c] 522 # CHECK-LE: ori $1, $1, 32767 # encoding: [0xff,0x7f,0x21,0x34] 523 # CHECK-LE: addu $1, $1, $9 # encoding: [0x21,0x08,0x29,0x00] 524 # CHECK-LE: lbu $8, 1($1) # encoding: [0x01,0x00,0x28,0x90] 525 # CHECK-LE: lbu $1, 0($1) # encoding: [0x00,0x00,0x21,0x90] 526 # CHECK-LE: sll $8, $8, 8 # encoding: [0x00,0x42,0x08,0x00] 527 # CHECK-LE: or $8, $8, $1 # encoding: [0x25,0x40,0x01,0x01] 528 529 ulhu $8, 32767($9) 530 # CHECK-BE: addiu $1, $zero, 32767 # encoding: [0x24,0x01,0x7f,0xff] 531 # CHECK-BE: addu $1, $1, $9 # encoding: [0x00,0x29,0x08,0x21] 532 # CHECK-BE: lbu $8, 0($1) # encoding: [0x90,0x28,0x00,0x00] 533 # CHECK-BE: lbu $1, 1($1) # encoding: [0x90,0x21,0x00,0x01] 534 # CHECK-BE: sll $8, $8, 8 # encoding: [0x00,0x08,0x42,0x00] 535 # CHECK-BE: or $8, $8, $1 # encoding: [0x01,0x01,0x40,0x25] 536 # CHECK-LE: addiu $1, $zero, 32767 # encoding: [0xff,0x7f,0x01,0x24] 537 # CHECK-LE: addu $1, $1, $9 # encoding: [0x21,0x08,0x29,0x00] 538 # CHECK-LE: lbu $8, 1($1) # encoding: [0x01,0x00,0x28,0x90] 539 # CHECK-LE: lbu $1, 0($1) # encoding: [0x00,0x00,0x21,0x90] 540 # CHECK-LE: sll $8, $8, 8 # encoding: [0x00,0x42,0x08,0x00] 541 # CHECK-LE: or $8, $8, $1 # encoding: [0x25,0x40,0x01,0x01] 542 543 # Test ULW with immediate operand. 544 ulw $8, 0 545 # CHECK-BE: lwl $8, 0($zero) # encoding: [0x88,0x08,0x00,0x00] 546 # CHECK-BE: lwr $8, 3($zero) # encoding: [0x98,0x08,0x00,0x03] 547 # CHECK-LE: lwl $8, 3($zero) # encoding: [0x03,0x00,0x08,0x88] 548 # CHECK-LE: lwr $8, 0($zero) # encoding: [0x00,0x00,0x08,0x98] 549 550 ulw $8, 2 551 # CHECK-BE: lwl $8, 2($zero) # encoding: [0x88,0x08,0x00,0x02] 552 # CHECK-BE: lwr $8, 5($zero) # encoding: [0x98,0x08,0x00,0x05] 553 # CHECK-LE: lwl $8, 5($zero) # encoding: [0x05,0x00,0x08,0x88] 554 # CHECK-LE: lwr $8, 2($zero) # encoding: [0x02,0x00,0x08,0x98] 555 556 ulw $8, 0x8000 557 # CHECK-BE: ori $1, $zero, 32768 # encoding: [0x34,0x01,0x80,0x00] 558 # CHECK-BE: lwl $8, 0($1) # encoding: [0x88,0x28,0x00,0x00] 559 # CHECK-BE: lwr $8, 3($1) # encoding: [0x98,0x28,0x00,0x03] 560 # CHECK-LE: ori $1, $zero, 32768 # encoding: [0x00,0x80,0x01,0x34] 561 # CHECK-LE: lwl $8, 3($1) # encoding: [0x03,0x00,0x28,0x88] 562 # CHECK-LE: lwr $8, 0($1) # encoding: [0x00,0x00,0x28,0x98] 563 564 ulw $8, -0x8000 565 # CHECK-BE: lwl $8, -32768($zero) # encoding: [0x88,0x08,0x80,0x00] 566 # CHECK-BE: lwr $8, -32765($zero) # encoding: [0x98,0x08,0x80,0x03] 567 # CHECK-LE: lwl $8, -32765($zero) # encoding: [0x03,0x80,0x08,0x88] 568 # CHECK-LE: lwr $8, -32768($zero) # encoding: [0x00,0x80,0x08,0x98] 569 570 ulw $8, 0x10000 571 # CHECK-BE: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01] 572 # CHECK-BE: lwl $8, 0($1) # encoding: [0x88,0x28,0x00,0x00] 573 # CHECK-BE: lwr $8, 3($1) # encoding: [0x98,0x28,0x00,0x03] 574 # CHECK-LE: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] 575 # CHECK-LE: lwl $8, 3($1) # encoding: [0x03,0x00,0x28,0x88] 576 # CHECK-LE: lwr $8, 0($1) # encoding: [0x00,0x00,0x28,0x98] 577 578 ulw $8, 0x18888 579 # CHECK-BE: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01] 580 # CHECK-BE: ori $1, $1, 34952 # encoding: [0x34,0x21,0x88,0x88] 581 # CHECK-BE: lwl $8, 0($1) # encoding: [0x88,0x28,0x00,0x00] 582 # CHECK-BE: lwr $8, 3($1) # encoding: [0x98,0x28,0x00,0x03] 583 # CHECK-LE: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] 584 # CHECK-LE: ori $1, $1, 34952 # encoding: [0x88,0x88,0x21,0x34] 585 # CHECK-LE: lwl $8, 3($1) # encoding: [0x03,0x00,0x28,0x88] 586 # CHECK-LE: lwr $8, 0($1) # encoding: [0x00,0x00,0x28,0x98] 587 588 ulw $8, -32771 589 # CHECK-BE: lui $1, 65535 # encoding: [0x3c,0x01,0xff,0xff] 590 # CHECK-BE: ori $1, $1, 32765 # encoding: [0x34,0x21,0x7f,0xfd] 591 # CHECK-BE: lwl $8, 0($1) # encoding: [0x88,0x28,0x00,0x00] 592 # CHECK-BE: lwr $8, 3($1) # encoding: [0x98,0x28,0x00,0x03] 593 # CHECK-LE: lui $1, 65535 # encoding: [0xff,0xff,0x01,0x3c] 594 # CHECK-LE: ori $1, $1, 32765 # encoding: [0xfd,0x7f,0x21,0x34] 595 # CHECK-LE: lwl $8, 3($1) # encoding: [0x03,0x00,0x28,0x88] 596 # CHECK-LE: lwr $8, 0($1) # encoding: [0x00,0x00,0x28,0x98] 597 598 ulw $8, 32765 599 # CHECK-BE: addiu $1, $zero, 32765 # encoding: [0x24,0x01,0x7f,0xfd] 600 # CHECK-BE: lwl $8, 0($1) # encoding: [0x88,0x28,0x00,0x00] 601 # CHECK-BE: lwr $8, 3($1) # encoding: [0x98,0x28,0x00,0x03] 602 # CHECK-LE: addiu $1, $zero, 32765 # encoding: [0xfd,0x7f,0x01,0x24] 603 # CHECK-LE: lwl $8, 3($1) # encoding: [0x03,0x00,0x28,0x88] 604 # CHECK-LE: lwr $8, 0($1) # encoding: [0x00,0x00,0x28,0x98] 605 606 # Test ULW with immediate offset and a source register operand. 607 ulw $8, 0($9) 608 # CHECK-BE: lwl $8, 0($9) # encoding: [0x89,0x28,0x00,0x00] 609 # CHECK-BE: lwr $8, 3($9) # encoding: [0x99,0x28,0x00,0x03] 610 # CHECK-LE: lwl $8, 3($9) # encoding: [0x03,0x00,0x28,0x89] 611 # CHECK-LE: lwr $8, 0($9) # encoding: [0x00,0x00,0x28,0x99] 612 613 ulw $8, 2($9) 614 # CHECK-BE: lwl $8, 2($9) # encoding: [0x89,0x28,0x00,0x02] 615 # CHECK-BE: lwr $8, 5($9) # encoding: [0x99,0x28,0x00,0x05] 616 # CHECK-LE: lwl $8, 5($9) # encoding: [0x05,0x00,0x28,0x89] 617 # CHECK-LE: lwr $8, 2($9) # encoding: [0x02,0x00,0x28,0x99] 618 619 ulw $8, 0x8000($9) 620 # CHECK-BE: ori $1, $zero, 32768 # encoding: [0x34,0x01,0x80,0x00] 621 # CHECK-BE: addu $1, $1, $9 # encoding: [0x00,0x29,0x08,0x21] 622 # CHECK-BE: lwl $8, 0($1) # encoding: [0x88,0x28,0x00,0x00] 623 # CHECK-BE: lwr $8, 3($1) # encoding: [0x98,0x28,0x00,0x03] 624 # CHECK-LE: ori $1, $zero, 32768 # encoding: [0x00,0x80,0x01,0x34] 625 # CHECK-LE: addu $1, $1, $9 # encoding: [0x21,0x08,0x29,0x00] 626 # CHECK-LE: lwl $8, 3($1) # encoding: [0x03,0x00,0x28,0x88] 627 # CHECK-LE: lwr $8, 0($1) # encoding: [0x00,0x00,0x28,0x98] 628 629 ulw $8, -0x8000($9) 630 # CHECK-BE: lwl $8, -32768($9) # encoding: [0x89,0x28,0x80,0x00] 631 # CHECK-BE: lwr $8, -32765($9) # encoding: [0x99,0x28,0x80,0x03] 632 # CHECK-LE: lwl $8, -32765($9) # encoding: [0x03,0x80,0x28,0x89] 633 # CHECK-LE: lwr $8, -32768($9) # encoding: [0x00,0x80,0x28,0x99] 634 635 ulw $8, 0x10000($9) 636 # CHECK-BE: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01] 637 # CHECK-BE: addu $1, $1, $9 # encoding: [0x00,0x29,0x08,0x21] 638 # CHECK-BE: lwl $8, 0($1) # encoding: [0x88,0x28,0x00,0x00] 639 # CHECK-BE: lwr $8, 3($1) # encoding: [0x98,0x28,0x00,0x03] 640 # CHECK-LE: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] 641 # CHECK-LE: addu $1, $1, $9 # encoding: [0x21,0x08,0x29,0x00] 642 # CHECK-LE: lwl $8, 3($1) # encoding: [0x03,0x00,0x28,0x88] 643 # CHECK-LE: lwr $8, 0($1) # encoding: [0x00,0x00,0x28,0x98] 644 645 ulw $8, 0x18888($9) 646 # CHECK-BE: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01] 647 # CHECK-BE: ori $1, $1, 34952 # encoding: [0x34,0x21,0x88,0x88] 648 # CHECK-BE: addu $1, $1, $9 # encoding: [0x00,0x29,0x08,0x21] 649 # CHECK-BE: lwl $8, 0($1) # encoding: [0x88,0x28,0x00,0x00] 650 # CHECK-BE: lwr $8, 3($1) # encoding: [0x98,0x28,0x00,0x03] 651 # CHECK-LE: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] 652 # CHECK-LE: ori $1, $1, 34952 # encoding: [0x88,0x88,0x21,0x34] 653 # CHECK-LE: addu $1, $1, $9 # encoding: [0x21,0x08,0x29,0x00] 654 # CHECK-LE: lwl $8, 3($1) # encoding: [0x03,0x00,0x28,0x88] 655 # CHECK-LE: lwr $8, 0($1) # encoding: [0x00,0x00,0x28,0x98] 656 657 ulw $8, -32771($9) 658 # CHECK-BE: lui $1, 65535 # encoding: [0x3c,0x01,0xff,0xff] 659 # CHECK-BE: ori $1, $1, 32765 # encoding: [0x34,0x21,0x7f,0xfd] 660 # CHECK-BE: addu $1, $1, $9 # encoding: [0x00,0x29,0x08,0x21] 661 # CHECK-BE: lwl $8, 0($1) # encoding: [0x88,0x28,0x00,0x00] 662 # CHECK-BE: lwr $8, 3($1) # encoding: [0x98,0x28,0x00,0x03] 663 # CHECK-LE: lui $1, 65535 # encoding: [0xff,0xff,0x01,0x3c] 664 # CHECK-LE: ori $1, $1, 32765 # encoding: [0xfd,0x7f,0x21,0x34] 665 # CHECK-LE: addu $1, $1, $9 # encoding: [0x21,0x08,0x29,0x00] 666 # CHECK-LE: lwl $8, 3($1) # encoding: [0x03,0x00,0x28,0x88] 667 # CHECK-LE: lwr $8, 0($1) # encoding: [0x00,0x00,0x28,0x98] 668 669 ulw $8, 32765($9) 670 # CHECK-BE: addiu $1, $zero, 32765 # encoding: [0x24,0x01,0x7f,0xfd] 671 # CHECK-BE: addu $1, $1, $9 # encoding: [0x00,0x29,0x08,0x21] 672 # CHECK-BE: lwl $8, 0($1) # encoding: [0x88,0x28,0x00,0x00] 673 # CHECK-BE: lwr $8, 3($1) # encoding: [0x98,0x28,0x00,0x03] 674 # CHECK-LE: addiu $1, $zero, 32765 # encoding: [0xfd,0x7f,0x01,0x24] 675 # CHECK-LE: addu $1, $1, $9 # encoding: [0x21,0x08,0x29,0x00] 676 # CHECK-LE: lwl $8, 3($1) # encoding: [0x03,0x00,0x28,0x88] 677 # CHECK-LE: lwr $8, 0($1) # encoding: [0x00,0x00,0x28,0x98] 678 679 1: 680 add $4, $4, $4 681