1# RUN: llvm-mc %s -triple=mipsel-unknown-linux -show-encoding -mcpu=mips32r2 | \ 2# RUN: FileCheck %s --check-prefix=CHECK --check-prefix=CHECK-LE 3# RUN: llvm-mc %s -triple=mips-unknown-linux -show-encoding -mcpu=mips32r2 | \ 4# RUN: FileCheck %s --check-prefix=CHECK --check-prefix=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: symbol@ABS_HI, 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: symbol@ABS_LO, 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: symbol@ABS_HI, 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: symbol@ABS_LO, 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: ($tmp0)@ABS_HI, 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: ($tmp0)@ABS_LO, 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: ($tmp0)@ABS_HI, 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: ($tmp0)@ABS_LO, 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, 57920($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: symbol@ABS_HI, 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: symbol@ABS_LO, 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: symbol@ABS_HI, 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: symbol@ABS_LO, 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# Test ULH with immediate operand. 135ulh_imm: # CHECK-LABEL: ulh_imm: 136 ulh $8, 0 137# CHECK-BE: lb $1, 0($zero) # encoding: [0x80,0x01,0x00,0x00] 138# CHECK-BE: lbu $8, 1($zero) # encoding: [0x90,0x08,0x00,0x01] 139# CHECK-BE: sll $1, $1, 8 # encoding: [0x00,0x01,0x0a,0x00] 140# CHECK-BE: or $8, $8, $1 # encoding: [0x01,0x01,0x40,0x25] 141# CHECK-LE: lb $1, 1($zero) # encoding: [0x01,0x00,0x01,0x80] 142# CHECK-LE: lbu $8, 0($zero) # encoding: [0x00,0x00,0x08,0x90] 143# CHECK-LE: sll $1, $1, 8 # encoding: [0x00,0x0a,0x01,0x00] 144# CHECK-LE: or $8, $8, $1 # encoding: [0x25,0x40,0x01,0x01] 145 146 ulh $8, 2 147# CHECK-BE: lb $1, 2($zero) # encoding: [0x80,0x01,0x00,0x02] 148# CHECK-BE: lbu $8, 3($zero) # encoding: [0x90,0x08,0x00,0x03] 149# CHECK-BE: sll $1, $1, 8 # encoding: [0x00,0x01,0x0a,0x00] 150# CHECK-BE: or $8, $8, $1 # encoding: [0x01,0x01,0x40,0x25] 151# CHECK-LE: lb $1, 3($zero) # encoding: [0x03,0x00,0x01,0x80] 152# CHECK-LE: lbu $8, 2($zero) # encoding: [0x02,0x00,0x08,0x90] 153# CHECK-LE: sll $1, $1, 8 # encoding: [0x00,0x0a,0x01,0x00] 154# CHECK-LE: or $8, $8, $1 # encoding: [0x25,0x40,0x01,0x01] 155 156 ulh $8, 0x8000 157# CHECK-BE: ori $1, $zero, 32768 # encoding: [0x34,0x01,0x80,0x00] 158# CHECK-BE: lb $8, 0($1) # encoding: [0x80,0x28,0x00,0x00] 159# CHECK-BE: lbu $1, 1($1) # encoding: [0x90,0x21,0x00,0x01] 160# CHECK-BE: sll $8, $8, 8 # encoding: [0x00,0x08,0x42,0x00] 161# CHECK-BE: or $8, $8, $1 # encoding: [0x01,0x01,0x40,0x25] 162# CHECK-LE: ori $1, $zero, 32768 # encoding: [0x00,0x80,0x01,0x34] 163# CHECK-LE: lb $8, 1($1) # encoding: [0x01,0x00,0x28,0x80] 164# CHECK-LE: lbu $1, 0($1) # encoding: [0x00,0x00,0x21,0x90] 165# CHECK-LE: sll $8, $8, 8 # encoding: [0x00,0x42,0x08,0x00] 166# CHECK-LE: or $8, $8, $1 # encoding: [0x25,0x40,0x01,0x01] 167 168 ulh $8, -0x8000 169# CHECK-BE: lb $1, -32768($zero) # encoding: [0x80,0x01,0x80,0x00] 170# CHECK-BE: lbu $8, -32767($zero) # encoding: [0x90,0x08,0x80,0x01] 171# CHECK-BE: sll $1, $1, 8 # encoding: [0x00,0x01,0x0a,0x00] 172# CHECK-BE: or $8, $8, $1 # encoding: [0x01,0x01,0x40,0x25] 173# CHECK-LE: lb $1, -32767($zero) # encoding: [0x01,0x80,0x01,0x80] 174# CHECK-LE: lbu $8, -32768($zero) # encoding: [0x00,0x80,0x08,0x90] 175# CHECK-LE: sll $1, $1, 8 # encoding: [0x00,0x0a,0x01,0x00] 176# CHECK-LE: or $8, $8, $1 # encoding: [0x25,0x40,0x01,0x01] 177 178 ulh $8, 0x10000 179# CHECK-BE: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01] 180# CHECK-BE: lb $8, 0($1) # encoding: [0x80,0x28,0x00,0x00] 181# CHECK-BE: lbu $1, 1($1) # encoding: [0x90,0x21,0x00,0x01] 182# CHECK-BE: sll $8, $8, 8 # encoding: [0x00,0x08,0x42,0x00] 183# CHECK-BE: or $8, $8, $1 # encoding: [0x01,0x01,0x40,0x25] 184# CHECK-LE: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] 185# CHECK-LE: lb $8, 1($1) # encoding: [0x01,0x00,0x28,0x80] 186# CHECK-LE: lbu $1, 0($1) # encoding: [0x00,0x00,0x21,0x90] 187# CHECK-LE: sll $8, $8, 8 # encoding: [0x00,0x42,0x08,0x00] 188# CHECK-LE: or $8, $8, $1 # encoding: [0x25,0x40,0x01,0x01] 189 190 ulh $8, 0x18888 191# CHECK-BE: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01] 192# CHECK-BE: ori $1, $1, 34952 # encoding: [0x34,0x21,0x88,0x88] 193# CHECK-BE: lb $8, 0($1) # encoding: [0x80,0x28,0x00,0x00] 194# CHECK-BE: lbu $1, 1($1) # encoding: [0x90,0x21,0x00,0x01] 195# CHECK-BE: sll $8, $8, 8 # encoding: [0x00,0x08,0x42,0x00] 196# CHECK-BE: or $8, $8, $1 # encoding: [0x01,0x01,0x40,0x25] 197# CHECK-LE: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] 198# CHECK-LE: ori $1, $1, 34952 # encoding: [0x88,0x88,0x21,0x34] 199# CHECK-LE: lb $8, 1($1) # encoding: [0x01,0x00,0x28,0x80] 200# CHECK-LE: lbu $1, 0($1) # encoding: [0x00,0x00,0x21,0x90] 201# CHECK-LE: sll $8, $8, 8 # encoding: [0x00,0x42,0x08,0x00] 202# CHECK-LE: or $8, $8, $1 # encoding: [0x25,0x40,0x01,0x01] 203 204 ulh $8, -32769 205# CHECK-BE: lui $1, 65535 # encoding: [0x3c,0x01,0xff,0xff] 206# CHECK-BE: ori $1, $1, 32767 # encoding: [0x34,0x21,0x7f,0xff] 207# CHECK-BE: lb $8, 0($1) # encoding: [0x80,0x28,0x00,0x00] 208# CHECK-BE: lbu $1, 1($1) # encoding: [0x90,0x21,0x00,0x01] 209# CHECK-BE: sll $8, $8, 8 # encoding: [0x00,0x08,0x42,0x00] 210# CHECK-BE: or $8, $8, $1 # encoding: [0x01,0x01,0x40,0x25] 211# CHECK-LE: lui $1, 65535 # encoding: [0xff,0xff,0x01,0x3c] 212# CHECK-LE: ori $1, $1, 32767 # encoding: [0xff,0x7f,0x21,0x34] 213# CHECK-LE: lb $8, 1($1) # encoding: [0x01,0x00,0x28,0x80] 214# CHECK-LE: lbu $1, 0($1) # encoding: [0x00,0x00,0x21,0x90] 215# CHECK-LE: sll $8, $8, 8 # encoding: [0x00,0x42,0x08,0x00] 216# CHECK-LE: or $8, $8, $1 # encoding: [0x25,0x40,0x01,0x01] 217 218 ulh $8, 32767 219# CHECK-BE: addiu $1, $zero, 32767 # encoding: [0x24,0x01,0x7f,0xff] 220# CHECK-BE: lb $8, 0($1) # encoding: [0x80,0x28,0x00,0x00] 221# CHECK-BE: lbu $1, 1($1) # encoding: [0x90,0x21,0x00,0x01] 222# CHECK-BE: sll $8, $8, 8 # encoding: [0x00,0x08,0x42,0x00] 223# CHECK-BE: or $8, $8, $1 # encoding: [0x01,0x01,0x40,0x25] 224# CHECK-LE: addiu $1, $zero, 32767 # encoding: [0xff,0x7f,0x01,0x24] 225# CHECK-LE: lb $8, 1($1) # encoding: [0x01,0x00,0x28,0x80] 226# CHECK-LE: lbu $1, 0($1) # encoding: [0x00,0x00,0x21,0x90] 227# CHECK-LE: sll $8, $8, 8 # encoding: [0x00,0x42,0x08,0x00] 228# CHECK-LE: or $8, $8, $1 # encoding: [0x25,0x40,0x01,0x01] 229 230# Test ULH with immediate offset and a source register operand. 231ulh_reg: # CHECK-LABEL: ulh_reg: 232 ulh $8, 0($9) 233# CHECK-BE: lb $1, 0($9) # encoding: [0x81,0x21,0x00,0x00] 234# CHECK-BE: lbu $8, 1($9) # encoding: [0x91,0x28,0x00,0x01] 235# CHECK-BE: sll $1, $1, 8 # encoding: [0x00,0x01,0x0a,0x00] 236# CHECK-BE: or $8, $8, $1 # encoding: [0x01,0x01,0x40,0x25] 237# CHECK-LE: lb $1, 1($9) # encoding: [0x01,0x00,0x21,0x81] 238# CHECK-LE: lbu $8, 0($9) # encoding: [0x00,0x00,0x28,0x91] 239# CHECK-LE: sll $1, $1, 8 # encoding: [0x00,0x0a,0x01,0x00] 240# CHECK-LE: or $8, $8, $1 # encoding: [0x25,0x40,0x01,0x01] 241 242 ulh $8, 2($9) 243# CHECK-BE: lb $1, 2($9) # encoding: [0x81,0x21,0x00,0x02] 244# CHECK-BE: lbu $8, 3($9) # encoding: [0x91,0x28,0x00,0x03] 245# CHECK-BE: sll $1, $1, 8 # encoding: [0x00,0x01,0x0a,0x00] 246# CHECK-BE: or $8, $8, $1 # encoding: [0x01,0x01,0x40,0x25] 247# CHECK-LE: lb $1, 3($9) # encoding: [0x03,0x00,0x21,0x81] 248# CHECK-LE: lbu $8, 2($9) # encoding: [0x02,0x00,0x28,0x91] 249# CHECK-LE: sll $1, $1, 8 # encoding: [0x00,0x0a,0x01,0x00] 250# CHECK-LE: or $8, $8, $1 # encoding: [0x25,0x40,0x01,0x01] 251 252 ulh $8, 0x8000($9) 253# CHECK-BE: ori $1, $zero, 32768 # encoding: [0x34,0x01,0x80,0x00] 254# CHECK-BE: addu $1, $1, $9 # encoding: [0x00,0x29,0x08,0x21] 255# CHECK-BE: lb $8, 0($1) # encoding: [0x80,0x28,0x00,0x00] 256# CHECK-BE: lbu $1, 1($1) # encoding: [0x90,0x21,0x00,0x01] 257# CHECK-BE: sll $8, $8, 8 # encoding: [0x00,0x08,0x42,0x00] 258# CHECK-BE: or $8, $8, $1 # encoding: [0x01,0x01,0x40,0x25] 259# CHECK-LE: ori $1, $zero, 32768 # encoding: [0x00,0x80,0x01,0x34] 260# CHECK-LE: addu $1, $1, $9 # encoding: [0x21,0x08,0x29,0x00] 261# CHECK-LE: lb $8, 1($1) # encoding: [0x01,0x00,0x28,0x80] 262# CHECK-LE: lbu $1, 0($1) # encoding: [0x00,0x00,0x21,0x90] 263# CHECK-LE: sll $8, $8, 8 # encoding: [0x00,0x42,0x08,0x00] 264# CHECK-LE: or $8, $8, $1 # encoding: [0x25,0x40,0x01,0x01] 265 266 ulh $8, -0x8000($9) 267# CHECK-BE: lb $1, -32768($9) # encoding: [0x81,0x21,0x80,0x00] 268# CHECK-BE: lbu $8, -32767($9) # encoding: [0x91,0x28,0x80,0x01] 269# CHECK-BE: sll $1, $1, 8 # encoding: [0x00,0x01,0x0a,0x00] 270# CHECK-BE: or $8, $8, $1 # encoding: [0x01,0x01,0x40,0x25] 271# CHECK-LE: lb $1, -32767($9) # encoding: [0x01,0x80,0x21,0x81] 272# CHECK-LE: lbu $8, -32768($9) # encoding: [0x00,0x80,0x28,0x91] 273# CHECK-LE: sll $1, $1, 8 # encoding: [0x00,0x0a,0x01,0x00] 274# CHECK-LE: or $8, $8, $1 # encoding: [0x25,0x40,0x01,0x01] 275 276 ulh $8, 0x10000($9) 277# CHECK-BE: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01] 278# CHECK-BE: addu $1, $1, $9 # encoding: [0x00,0x29,0x08,0x21] 279# CHECK-BE: lb $8, 0($1) # encoding: [0x80,0x28,0x00,0x00] 280# CHECK-BE: lbu $1, 1($1) # encoding: [0x90,0x21,0x00,0x01] 281# CHECK-BE: sll $8, $8, 8 # encoding: [0x00,0x08,0x42,0x00] 282# CHECK-BE: or $8, $8, $1 # encoding: [0x01,0x01,0x40,0x25] 283# CHECK-LE: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] 284# CHECK-LE: addu $1, $1, $9 # encoding: [0x21,0x08,0x29,0x00] 285# CHECK-LE: lb $8, 1($1) # encoding: [0x01,0x00,0x28,0x80] 286# CHECK-LE: lbu $1, 0($1) # encoding: [0x00,0x00,0x21,0x90] 287# CHECK-LE: sll $8, $8, 8 # encoding: [0x00,0x42,0x08,0x00] 288# CHECK-LE: or $8, $8, $1 # encoding: [0x25,0x40,0x01,0x01] 289 290 ulh $8, 0x18888($9) 291# CHECK-BE: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01] 292# CHECK-BE: ori $1, $1, 34952 # encoding: [0x34,0x21,0x88,0x88] 293# CHECK-BE: addu $1, $1, $9 # encoding: [0x00,0x29,0x08,0x21] 294# CHECK-BE: lb $8, 0($1) # encoding: [0x80,0x28,0x00,0x00] 295# CHECK-BE: lbu $1, 1($1) # encoding: [0x90,0x21,0x00,0x01] 296# CHECK-BE: sll $8, $8, 8 # encoding: [0x00,0x08,0x42,0x00] 297# CHECK-BE: or $8, $8, $1 # encoding: [0x01,0x01,0x40,0x25] 298# CHECK-LE: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] 299# CHECK-LE: ori $1, $1, 34952 # encoding: [0x88,0x88,0x21,0x34] 300# CHECK-LE: addu $1, $1, $9 # encoding: [0x21,0x08,0x29,0x00] 301# CHECK-LE: lb $8, 1($1) # encoding: [0x01,0x00,0x28,0x80] 302# CHECK-LE: lbu $1, 0($1) # encoding: [0x00,0x00,0x21,0x90] 303# CHECK-LE: sll $8, $8, 8 # encoding: [0x00,0x42,0x08,0x00] 304# CHECK-LE: or $8, $8, $1 # encoding: [0x25,0x40,0x01,0x01] 305 306 ulh $8, -32769($9) 307# CHECK-BE: lui $1, 65535 # encoding: [0x3c,0x01,0xff,0xff] 308# CHECK-BE: ori $1, $1, 32767 # encoding: [0x34,0x21,0x7f,0xff] 309# CHECK-BE: addu $1, $1, $9 # encoding: [0x00,0x29,0x08,0x21] 310# CHECK-BE: lb $8, 0($1) # encoding: [0x80,0x28,0x00,0x00] 311# CHECK-BE: lbu $1, 1($1) # encoding: [0x90,0x21,0x00,0x01] 312# CHECK-BE: sll $8, $8, 8 # encoding: [0x00,0x08,0x42,0x00] 313# CHECK-BE: or $8, $8, $1 # encoding: [0x01,0x01,0x40,0x25] 314# CHECK-LE: lui $1, 65535 # encoding: [0xff,0xff,0x01,0x3c] 315# CHECK-LE: ori $1, $1, 32767 # encoding: [0xff,0x7f,0x21,0x34] 316# CHECK-LE: addu $1, $1, $9 # encoding: [0x21,0x08,0x29,0x00] 317# CHECK-LE: lb $8, 1($1) # encoding: [0x01,0x00,0x28,0x80] 318# CHECK-LE: lbu $1, 0($1) # encoding: [0x00,0x00,0x21,0x90] 319# CHECK-LE: sll $8, $8, 8 # encoding: [0x00,0x42,0x08,0x00] 320# CHECK-LE: or $8, $8, $1 # encoding: [0x25,0x40,0x01,0x01] 321 322 ulh $8, 32767($9) 323# CHECK-BE: addiu $1, $zero, 32767 # encoding: [0x24,0x01,0x7f,0xff] 324# CHECK-BE: addu $1, $1, $9 # encoding: [0x00,0x29,0x08,0x21] 325# CHECK-BE: lb $8, 0($1) # encoding: [0x80,0x28,0x00,0x00] 326# CHECK-BE: lbu $1, 1($1) # encoding: [0x90,0x21,0x00,0x01] 327# CHECK-BE: sll $8, $8, 8 # encoding: [0x00,0x08,0x42,0x00] 328# CHECK-BE: or $8, $8, $1 # encoding: [0x01,0x01,0x40,0x25] 329# CHECK-LE: addiu $1, $zero, 32767 # encoding: [0xff,0x7f,0x01,0x24] 330# CHECK-LE: addu $1, $1, $9 # encoding: [0x21,0x08,0x29,0x00] 331# CHECK-LE: lb $8, 1($1) # encoding: [0x01,0x00,0x28,0x80] 332# CHECK-LE: lbu $1, 0($1) # encoding: [0x00,0x00,0x21,0x90] 333# CHECK-LE: sll $8, $8, 8 # encoding: [0x00,0x42,0x08,0x00] 334# CHECK-LE: or $8, $8, $1 # encoding: [0x25,0x40,0x01,0x01] 335 336# Test ULHU with immediate operand. 337ulhu_imm: # CHECK-LABEL: ulhu_imm: 338 ulhu $8, 0 339# CHECK-BE: lbu $1, 0($zero) # encoding: [0x90,0x01,0x00,0x00] 340# CHECK-BE: lbu $8, 1($zero) # encoding: [0x90,0x08,0x00,0x01] 341# CHECK-BE: sll $1, $1, 8 # encoding: [0x00,0x01,0x0a,0x00] 342# CHECK-BE: or $8, $8, $1 # encoding: [0x01,0x01,0x40,0x25] 343# CHECK-LE: lbu $1, 1($zero) # encoding: [0x01,0x00,0x01,0x90] 344# CHECK-LE: lbu $8, 0($zero) # encoding: [0x00,0x00,0x08,0x90] 345# CHECK-LE: sll $1, $1, 8 # encoding: [0x00,0x0a,0x01,0x00] 346# CHECK-LE: or $8, $8, $1 # encoding: [0x25,0x40,0x01,0x01] 347 348 ulhu $8, 2 349# CHECK-BE: lbu $1, 2($zero) # encoding: [0x90,0x01,0x00,0x02] 350# CHECK-BE: lbu $8, 3($zero) # encoding: [0x90,0x08,0x00,0x03] 351# CHECK-BE: sll $1, $1, 8 # encoding: [0x00,0x01,0x0a,0x00] 352# CHECK-BE: or $8, $8, $1 # encoding: [0x01,0x01,0x40,0x25] 353# CHECK-LE: lbu $1, 3($zero) # encoding: [0x03,0x00,0x01,0x90] 354# CHECK-LE: lbu $8, 2($zero) # encoding: [0x02,0x00,0x08,0x90] 355# CHECK-LE: sll $1, $1, 8 # encoding: [0x00,0x0a,0x01,0x00] 356# CHECK-LE: or $8, $8, $1 # encoding: [0x25,0x40,0x01,0x01] 357 358 ulhu $8, 0x8000 359# CHECK-BE: ori $1, $zero, 32768 # encoding: [0x34,0x01,0x80,0x00] 360# CHECK-BE: lbu $8, 0($1) # encoding: [0x90,0x28,0x00,0x00] 361# CHECK-BE: lbu $1, 1($1) # encoding: [0x90,0x21,0x00,0x01] 362# CHECK-BE: sll $8, $8, 8 # encoding: [0x00,0x08,0x42,0x00] 363# CHECK-BE: or $8, $8, $1 # encoding: [0x01,0x01,0x40,0x25] 364# CHECK-LE: ori $1, $zero, 32768 # encoding: [0x00,0x80,0x01,0x34] 365# CHECK-LE: lbu $8, 1($1) # encoding: [0x01,0x00,0x28,0x90] 366# CHECK-LE: lbu $1, 0($1) # encoding: [0x00,0x00,0x21,0x90] 367# CHECK-LE: sll $8, $8, 8 # encoding: [0x00,0x42,0x08,0x00] 368# CHECK-LE: or $8, $8, $1 # encoding: [0x25,0x40,0x01,0x01] 369 370 ulhu $8, -0x8000 371# CHECK-BE: lbu $1, -32768($zero) # encoding: [0x90,0x01,0x80,0x00] 372# CHECK-BE: lbu $8, -32767($zero) # encoding: [0x90,0x08,0x80,0x01] 373# CHECK-BE: sll $1, $1, 8 # encoding: [0x00,0x01,0x0a,0x00] 374# CHECK-BE: or $8, $8, $1 # encoding: [0x01,0x01,0x40,0x25] 375# CHECK-LE: lbu $1, -32767($zero) # encoding: [0x01,0x80,0x01,0x90] 376# CHECK-LE: lbu $8, -32768($zero) # encoding: [0x00,0x80,0x08,0x90] 377# CHECK-LE: sll $1, $1, 8 # encoding: [0x00,0x0a,0x01,0x00] 378# CHECK-LE: or $8, $8, $1 # encoding: [0x25,0x40,0x01,0x01] 379 380 ulhu $8, 0x10000 381# CHECK-BE: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01] 382# CHECK-BE: lbu $8, 0($1) # encoding: [0x90,0x28,0x00,0x00] 383# CHECK-BE: lbu $1, 1($1) # encoding: [0x90,0x21,0x00,0x01] 384# CHECK-BE: sll $8, $8, 8 # encoding: [0x00,0x08,0x42,0x00] 385# CHECK-BE: or $8, $8, $1 # encoding: [0x01,0x01,0x40,0x25] 386# CHECK-LE: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] 387# CHECK-LE: lbu $8, 1($1) # encoding: [0x01,0x00,0x28,0x90] 388# CHECK-LE: lbu $1, 0($1) # encoding: [0x00,0x00,0x21,0x90] 389# CHECK-LE: sll $8, $8, 8 # encoding: [0x00,0x42,0x08,0x00] 390# CHECK-LE: or $8, $8, $1 # encoding: [0x25,0x40,0x01,0x01] 391 392 ulhu $8, 0x18888 393# CHECK-BE: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01] 394# CHECK-BE: ori $1, $1, 34952 # encoding: [0x34,0x21,0x88,0x88] 395# CHECK-BE: lbu $8, 0($1) # encoding: [0x90,0x28,0x00,0x00] 396# CHECK-BE: lbu $1, 1($1) # encoding: [0x90,0x21,0x00,0x01] 397# CHECK-BE: sll $8, $8, 8 # encoding: [0x00,0x08,0x42,0x00] 398# CHECK-BE: or $8, $8, $1 # encoding: [0x01,0x01,0x40,0x25] 399# CHECK-LE: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] 400# CHECK-LE: ori $1, $1, 34952 # encoding: [0x88,0x88,0x21,0x34] 401# CHECK-LE: lbu $8, 1($1) # encoding: [0x01,0x00,0x28,0x90] 402# CHECK-LE: lbu $1, 0($1) # encoding: [0x00,0x00,0x21,0x90] 403# CHECK-LE: sll $8, $8, 8 # encoding: [0x00,0x42,0x08,0x00] 404# CHECK-LE: or $8, $8, $1 # encoding: [0x25,0x40,0x01,0x01] 405 406 ulhu $8, -32769 407# CHECK-BE: lui $1, 65535 # encoding: [0x3c,0x01,0xff,0xff] 408# CHECK-BE: ori $1, $1, 32767 # encoding: [0x34,0x21,0x7f,0xff] 409# CHECK-BE: lbu $8, 0($1) # encoding: [0x90,0x28,0x00,0x00] 410# CHECK-BE: lbu $1, 1($1) # encoding: [0x90,0x21,0x00,0x01] 411# CHECK-BE: sll $8, $8, 8 # encoding: [0x00,0x08,0x42,0x00] 412# CHECK-BE: or $8, $8, $1 # encoding: [0x01,0x01,0x40,0x25] 413# CHECK-LE: lui $1, 65535 # encoding: [0xff,0xff,0x01,0x3c] 414# CHECK-LE: ori $1, $1, 32767 # encoding: [0xff,0x7f,0x21,0x34] 415# CHECK-LE: lbu $8, 1($1) # encoding: [0x01,0x00,0x28,0x90] 416# CHECK-LE: lbu $1, 0($1) # encoding: [0x00,0x00,0x21,0x90] 417# CHECK-LE: sll $8, $8, 8 # encoding: [0x00,0x42,0x08,0x00] 418# CHECK-LE: or $8, $8, $1 # encoding: [0x25,0x40,0x01,0x01] 419 420 ulhu $8, 32767 421# CHECK-BE: addiu $1, $zero, 32767 # encoding: [0x24,0x01,0x7f,0xff] 422# CHECK-BE: lbu $8, 0($1) # encoding: [0x90,0x28,0x00,0x00] 423# CHECK-BE: lbu $1, 1($1) # encoding: [0x90,0x21,0x00,0x01] 424# CHECK-BE: sll $8, $8, 8 # encoding: [0x00,0x08,0x42,0x00] 425# CHECK-BE: or $8, $8, $1 # encoding: [0x01,0x01,0x40,0x25] 426# CHECK-LE: addiu $1, $zero, 32767 # encoding: [0xff,0x7f,0x01,0x24] 427# CHECK-LE: lbu $8, 1($1) # encoding: [0x01,0x00,0x28,0x90] 428# CHECK-LE: lbu $1, 0($1) # encoding: [0x00,0x00,0x21,0x90] 429# CHECK-LE: sll $8, $8, 8 # encoding: [0x00,0x42,0x08,0x00] 430# CHECK-LE: or $8, $8, $1 # encoding: [0x25,0x40,0x01,0x01] 431 432# Test ULHU with immediate offset and a source register operand. 433 ulhu $8, 0($9) 434# CHECK-BE: lbu $1, 0($9) # encoding: [0x91,0x21,0x00,0x00] 435# CHECK-BE: lbu $8, 1($9) # encoding: [0x91,0x28,0x00,0x01] 436# CHECK-BE: sll $1, $1, 8 # encoding: [0x00,0x01,0x0a,0x00] 437# CHECK-BE: or $8, $8, $1 # encoding: [0x01,0x01,0x40,0x25] 438# CHECK-LE: lbu $1, 1($9) # encoding: [0x01,0x00,0x21,0x91] 439# CHECK-LE: lbu $8, 0($9) # encoding: [0x00,0x00,0x28,0x91] 440# CHECK-LE: sll $1, $1, 8 # encoding: [0x00,0x0a,0x01,0x00] 441# CHECK-LE: or $8, $8, $1 # encoding: [0x25,0x40,0x01,0x01] 442 443 ulhu $8, 2($9) 444# CHECK-BE: lbu $1, 2($9) # encoding: [0x91,0x21,0x00,0x02] 445# CHECK-BE: lbu $8, 3($9) # encoding: [0x91,0x28,0x00,0x03] 446# CHECK-BE: sll $1, $1, 8 # encoding: [0x00,0x01,0x0a,0x00] 447# CHECK-BE: or $8, $8, $1 # encoding: [0x01,0x01,0x40,0x25] 448# CHECK-LE: lbu $1, 3($9) # encoding: [0x03,0x00,0x21,0x91] 449# CHECK-LE: lbu $8, 2($9) # encoding: [0x02,0x00,0x28,0x91] 450# CHECK-LE: sll $1, $1, 8 # encoding: [0x00,0x0a,0x01,0x00] 451# CHECK-LE: or $8, $8, $1 # encoding: [0x25,0x40,0x01,0x01] 452 453 ulhu $8, 0x8000($9) 454# CHECK-BE: ori $1, $zero, 32768 # encoding: [0x34,0x01,0x80,0x00] 455# CHECK-BE: addu $1, $1, $9 # encoding: [0x00,0x29,0x08,0x21] 456# CHECK-BE: lbu $8, 0($1) # encoding: [0x90,0x28,0x00,0x00] 457# CHECK-BE: lbu $1, 1($1) # encoding: [0x90,0x21,0x00,0x01] 458# CHECK-BE: sll $8, $8, 8 # encoding: [0x00,0x08,0x42,0x00] 459# CHECK-BE: or $8, $8, $1 # encoding: [0x01,0x01,0x40,0x25] 460# CHECK-LE: ori $1, $zero, 32768 # encoding: [0x00,0x80,0x01,0x34] 461# CHECK-LE: addu $1, $1, $9 # encoding: [0x21,0x08,0x29,0x00] 462# CHECK-LE: lbu $8, 1($1) # encoding: [0x01,0x00,0x28,0x90] 463# CHECK-LE: lbu $1, 0($1) # encoding: [0x00,0x00,0x21,0x90] 464# CHECK-LE: sll $8, $8, 8 # encoding: [0x00,0x42,0x08,0x00] 465# CHECK-LE: or $8, $8, $1 # encoding: [0x25,0x40,0x01,0x01] 466 467 ulhu $8, -0x8000($9) 468# CHECK-BE: lbu $1, -32768($9) # encoding: [0x91,0x21,0x80,0x00] 469# CHECK-BE: lbu $8, -32767($9) # encoding: [0x91,0x28,0x80,0x01] 470# CHECK-BE: sll $1, $1, 8 # encoding: [0x00,0x01,0x0a,0x00] 471# CHECK-BE: or $8, $8, $1 # encoding: [0x01,0x01,0x40,0x25] 472# CHECK-LE: lbu $1, -32767($9) # encoding: [0x01,0x80,0x21,0x91] 473# CHECK-LE: lbu $8, -32768($9) # encoding: [0x00,0x80,0x28,0x91] 474# CHECK-LE: sll $1, $1, 8 # encoding: [0x00,0x0a,0x01,0x00] 475# CHECK-LE: or $8, $8, $1 # encoding: [0x25,0x40,0x01,0x01] 476 477 ulhu $8, 0x10000($9) 478# CHECK-BE: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01] 479# CHECK-BE: addu $1, $1, $9 # encoding: [0x00,0x29,0x08,0x21] 480# CHECK-BE: lbu $8, 0($1) # encoding: [0x90,0x28,0x00,0x00] 481# CHECK-BE: lbu $1, 1($1) # encoding: [0x90,0x21,0x00,0x01] 482# CHECK-BE: sll $8, $8, 8 # encoding: [0x00,0x08,0x42,0x00] 483# CHECK-BE: or $8, $8, $1 # encoding: [0x01,0x01,0x40,0x25] 484# CHECK-LE: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] 485# CHECK-LE: addu $1, $1, $9 # encoding: [0x21,0x08,0x29,0x00] 486# CHECK-LE: lbu $8, 1($1) # encoding: [0x01,0x00,0x28,0x90] 487# CHECK-LE: lbu $1, 0($1) # encoding: [0x00,0x00,0x21,0x90] 488# CHECK-LE: sll $8, $8, 8 # encoding: [0x00,0x42,0x08,0x00] 489# CHECK-LE: or $8, $8, $1 # encoding: [0x25,0x40,0x01,0x01] 490 491 ulhu $8, 0x18888($9) 492# CHECK-BE: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01] 493# CHECK-BE: ori $1, $1, 34952 # encoding: [0x34,0x21,0x88,0x88] 494# CHECK-BE: addu $1, $1, $9 # encoding: [0x00,0x29,0x08,0x21] 495# CHECK-BE: lbu $8, 0($1) # encoding: [0x90,0x28,0x00,0x00] 496# CHECK-BE: lbu $1, 1($1) # encoding: [0x90,0x21,0x00,0x01] 497# CHECK-BE: sll $8, $8, 8 # encoding: [0x00,0x08,0x42,0x00] 498# CHECK-BE: or $8, $8, $1 # encoding: [0x01,0x01,0x40,0x25] 499# CHECK-LE: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] 500# CHECK-LE: ori $1, $1, 34952 # encoding: [0x88,0x88,0x21,0x34] 501# CHECK-LE: addu $1, $1, $9 # encoding: [0x21,0x08,0x29,0x00] 502# CHECK-LE: lbu $8, 1($1) # encoding: [0x01,0x00,0x28,0x90] 503# CHECK-LE: lbu $1, 0($1) # encoding: [0x00,0x00,0x21,0x90] 504# CHECK-LE: sll $8, $8, 8 # encoding: [0x00,0x42,0x08,0x00] 505# CHECK-LE: or $8, $8, $1 # encoding: [0x25,0x40,0x01,0x01] 506 507 ulhu $8, -32769($9) 508# CHECK-BE: lui $1, 65535 # encoding: [0x3c,0x01,0xff,0xff] 509# CHECK-BE: ori $1, $1, 32767 # encoding: [0x34,0x21,0x7f,0xff] 510# CHECK-BE: addu $1, $1, $9 # encoding: [0x00,0x29,0x08,0x21] 511# CHECK-BE: lbu $8, 0($1) # encoding: [0x90,0x28,0x00,0x00] 512# CHECK-BE: lbu $1, 1($1) # encoding: [0x90,0x21,0x00,0x01] 513# CHECK-BE: sll $8, $8, 8 # encoding: [0x00,0x08,0x42,0x00] 514# CHECK-BE: or $8, $8, $1 # encoding: [0x01,0x01,0x40,0x25] 515# CHECK-LE: lui $1, 65535 # encoding: [0xff,0xff,0x01,0x3c] 516# CHECK-LE: ori $1, $1, 32767 # encoding: [0xff,0x7f,0x21,0x34] 517# CHECK-LE: addu $1, $1, $9 # encoding: [0x21,0x08,0x29,0x00] 518# CHECK-LE: lbu $8, 1($1) # encoding: [0x01,0x00,0x28,0x90] 519# CHECK-LE: lbu $1, 0($1) # encoding: [0x00,0x00,0x21,0x90] 520# CHECK-LE: sll $8, $8, 8 # encoding: [0x00,0x42,0x08,0x00] 521# CHECK-LE: or $8, $8, $1 # encoding: [0x25,0x40,0x01,0x01] 522 523 ulhu $8, 32767($9) 524# CHECK-BE: addiu $1, $zero, 32767 # encoding: [0x24,0x01,0x7f,0xff] 525# CHECK-BE: addu $1, $1, $9 # encoding: [0x00,0x29,0x08,0x21] 526# CHECK-BE: lbu $8, 0($1) # encoding: [0x90,0x28,0x00,0x00] 527# CHECK-BE: lbu $1, 1($1) # encoding: [0x90,0x21,0x00,0x01] 528# CHECK-BE: sll $8, $8, 8 # encoding: [0x00,0x08,0x42,0x00] 529# CHECK-BE: or $8, $8, $1 # encoding: [0x01,0x01,0x40,0x25] 530# CHECK-LE: addiu $1, $zero, 32767 # encoding: [0xff,0x7f,0x01,0x24] 531# CHECK-LE: addu $1, $1, $9 # encoding: [0x21,0x08,0x29,0x00] 532# CHECK-LE: lbu $8, 1($1) # encoding: [0x01,0x00,0x28,0x90] 533# CHECK-LE: lbu $1, 0($1) # encoding: [0x00,0x00,0x21,0x90] 534# CHECK-LE: sll $8, $8, 8 # encoding: [0x00,0x42,0x08,0x00] 535# CHECK-LE: or $8, $8, $1 # encoding: [0x25,0x40,0x01,0x01] 536 537# Test ULW with immediate operand. 538 ulw $8, 0 539# CHECK-BE: lwl $8, 0($zero) # encoding: [0x88,0x08,0x00,0x00] 540# CHECK-BE: lwr $8, 3($zero) # encoding: [0x98,0x08,0x00,0x03] 541# CHECK-LE: lwl $8, 3($zero) # encoding: [0x03,0x00,0x08,0x88] 542# CHECK-LE: lwr $8, 0($zero) # encoding: [0x00,0x00,0x08,0x98] 543 544 ulw $8, 2 545# CHECK-BE: lwl $8, 2($zero) # encoding: [0x88,0x08,0x00,0x02] 546# CHECK-BE: lwr $8, 5($zero) # encoding: [0x98,0x08,0x00,0x05] 547# CHECK-LE: lwl $8, 5($zero) # encoding: [0x05,0x00,0x08,0x88] 548# CHECK-LE: lwr $8, 2($zero) # encoding: [0x02,0x00,0x08,0x98] 549 550 ulw $8, 0x8000 551# CHECK-BE: ori $1, $zero, 32768 # encoding: [0x34,0x01,0x80,0x00] 552# CHECK-BE: lwl $8, 0($1) # encoding: [0x88,0x28,0x00,0x00] 553# CHECK-BE: lwr $8, 3($1) # encoding: [0x98,0x28,0x00,0x03] 554# CHECK-LE: ori $1, $zero, 32768 # encoding: [0x00,0x80,0x01,0x34] 555# CHECK-LE: lwl $8, 3($1) # encoding: [0x03,0x00,0x28,0x88] 556# CHECK-LE: lwr $8, 0($1) # encoding: [0x00,0x00,0x28,0x98] 557 558 ulw $8, -0x8000 559# CHECK-BE: lwl $8, -32768($zero) # encoding: [0x88,0x08,0x80,0x00] 560# CHECK-BE: lwr $8, -32765($zero) # encoding: [0x98,0x08,0x80,0x03] 561# CHECK-LE: lwl $8, -32765($zero) # encoding: [0x03,0x80,0x08,0x88] 562# CHECK-LE: lwr $8, -32768($zero) # encoding: [0x00,0x80,0x08,0x98] 563 564 ulw $8, 0x10000 565# CHECK-BE: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01] 566# CHECK-BE: lwl $8, 0($1) # encoding: [0x88,0x28,0x00,0x00] 567# CHECK-BE: lwr $8, 3($1) # encoding: [0x98,0x28,0x00,0x03] 568# CHECK-LE: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] 569# CHECK-LE: lwl $8, 3($1) # encoding: [0x03,0x00,0x28,0x88] 570# CHECK-LE: lwr $8, 0($1) # encoding: [0x00,0x00,0x28,0x98] 571 572 ulw $8, 0x18888 573# CHECK-BE: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01] 574# CHECK-BE: ori $1, $1, 34952 # encoding: [0x34,0x21,0x88,0x88] 575# CHECK-BE: lwl $8, 0($1) # encoding: [0x88,0x28,0x00,0x00] 576# CHECK-BE: lwr $8, 3($1) # encoding: [0x98,0x28,0x00,0x03] 577# CHECK-LE: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] 578# CHECK-LE: ori $1, $1, 34952 # encoding: [0x88,0x88,0x21,0x34] 579# CHECK-LE: lwl $8, 3($1) # encoding: [0x03,0x00,0x28,0x88] 580# CHECK-LE: lwr $8, 0($1) # encoding: [0x00,0x00,0x28,0x98] 581 582 ulw $8, -32771 583# CHECK-BE: lui $1, 65535 # encoding: [0x3c,0x01,0xff,0xff] 584# CHECK-BE: ori $1, $1, 32765 # encoding: [0x34,0x21,0x7f,0xfd] 585# CHECK-BE: lwl $8, 0($1) # encoding: [0x88,0x28,0x00,0x00] 586# CHECK-BE: lwr $8, 3($1) # encoding: [0x98,0x28,0x00,0x03] 587# CHECK-LE: lui $1, 65535 # encoding: [0xff,0xff,0x01,0x3c] 588# CHECK-LE: ori $1, $1, 32765 # encoding: [0xfd,0x7f,0x21,0x34] 589# CHECK-LE: lwl $8, 3($1) # encoding: [0x03,0x00,0x28,0x88] 590# CHECK-LE: lwr $8, 0($1) # encoding: [0x00,0x00,0x28,0x98] 591 592 ulw $8, 32765 593# CHECK-BE: addiu $1, $zero, 32765 # encoding: [0x24,0x01,0x7f,0xfd] 594# CHECK-BE: lwl $8, 0($1) # encoding: [0x88,0x28,0x00,0x00] 595# CHECK-BE: lwr $8, 3($1) # encoding: [0x98,0x28,0x00,0x03] 596# CHECK-LE: addiu $1, $zero, 32765 # encoding: [0xfd,0x7f,0x01,0x24] 597# CHECK-LE: lwl $8, 3($1) # encoding: [0x03,0x00,0x28,0x88] 598# CHECK-LE: lwr $8, 0($1) # encoding: [0x00,0x00,0x28,0x98] 599 600# Test ULW with immediate offset and a source register operand. 601 ulw $8, 0($9) 602# CHECK-BE: lwl $8, 0($9) # encoding: [0x89,0x28,0x00,0x00] 603# CHECK-BE: lwr $8, 3($9) # encoding: [0x99,0x28,0x00,0x03] 604# CHECK-LE: lwl $8, 3($9) # encoding: [0x03,0x00,0x28,0x89] 605# CHECK-LE: lwr $8, 0($9) # encoding: [0x00,0x00,0x28,0x99] 606 607 ulw $8, 2($9) 608# CHECK-BE: lwl $8, 2($9) # encoding: [0x89,0x28,0x00,0x02] 609# CHECK-BE: lwr $8, 5($9) # encoding: [0x99,0x28,0x00,0x05] 610# CHECK-LE: lwl $8, 5($9) # encoding: [0x05,0x00,0x28,0x89] 611# CHECK-LE: lwr $8, 2($9) # encoding: [0x02,0x00,0x28,0x99] 612 613 ulw $8, 0x8000($9) 614# CHECK-BE: ori $1, $zero, 32768 # encoding: [0x34,0x01,0x80,0x00] 615# CHECK-BE: addu $1, $1, $9 # encoding: [0x00,0x29,0x08,0x21] 616# CHECK-BE: lwl $8, 0($1) # encoding: [0x88,0x28,0x00,0x00] 617# CHECK-BE: lwr $8, 3($1) # encoding: [0x98,0x28,0x00,0x03] 618# CHECK-LE: ori $1, $zero, 32768 # encoding: [0x00,0x80,0x01,0x34] 619# CHECK-LE: addu $1, $1, $9 # encoding: [0x21,0x08,0x29,0x00] 620# CHECK-LE: lwl $8, 3($1) # encoding: [0x03,0x00,0x28,0x88] 621# CHECK-LE: lwr $8, 0($1) # encoding: [0x00,0x00,0x28,0x98] 622 623 ulw $8, -0x8000($9) 624# CHECK-BE: lwl $8, -32768($9) # encoding: [0x89,0x28,0x80,0x00] 625# CHECK-BE: lwr $8, -32765($9) # encoding: [0x99,0x28,0x80,0x03] 626# CHECK-LE: lwl $8, -32765($9) # encoding: [0x03,0x80,0x28,0x89] 627# CHECK-LE: lwr $8, -32768($9) # encoding: [0x00,0x80,0x28,0x99] 628 629 ulw $8, 0x10000($9) 630# CHECK-BE: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01] 631# CHECK-BE: addu $1, $1, $9 # encoding: [0x00,0x29,0x08,0x21] 632# CHECK-BE: lwl $8, 0($1) # encoding: [0x88,0x28,0x00,0x00] 633# CHECK-BE: lwr $8, 3($1) # encoding: [0x98,0x28,0x00,0x03] 634# CHECK-LE: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] 635# CHECK-LE: addu $1, $1, $9 # encoding: [0x21,0x08,0x29,0x00] 636# CHECK-LE: lwl $8, 3($1) # encoding: [0x03,0x00,0x28,0x88] 637# CHECK-LE: lwr $8, 0($1) # encoding: [0x00,0x00,0x28,0x98] 638 639 ulw $8, 0x18888($9) 640# CHECK-BE: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01] 641# CHECK-BE: ori $1, $1, 34952 # encoding: [0x34,0x21,0x88,0x88] 642# CHECK-BE: addu $1, $1, $9 # encoding: [0x00,0x29,0x08,0x21] 643# CHECK-BE: lwl $8, 0($1) # encoding: [0x88,0x28,0x00,0x00] 644# CHECK-BE: lwr $8, 3($1) # encoding: [0x98,0x28,0x00,0x03] 645# CHECK-LE: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c] 646# CHECK-LE: ori $1, $1, 34952 # encoding: [0x88,0x88,0x21,0x34] 647# CHECK-LE: addu $1, $1, $9 # encoding: [0x21,0x08,0x29,0x00] 648# CHECK-LE: lwl $8, 3($1) # encoding: [0x03,0x00,0x28,0x88] 649# CHECK-LE: lwr $8, 0($1) # encoding: [0x00,0x00,0x28,0x98] 650 651 ulw $8, -32771($9) 652# CHECK-BE: lui $1, 65535 # encoding: [0x3c,0x01,0xff,0xff] 653# CHECK-BE: ori $1, $1, 32765 # encoding: [0x34,0x21,0x7f,0xfd] 654# CHECK-BE: addu $1, $1, $9 # encoding: [0x00,0x29,0x08,0x21] 655# CHECK-BE: lwl $8, 0($1) # encoding: [0x88,0x28,0x00,0x00] 656# CHECK-BE: lwr $8, 3($1) # encoding: [0x98,0x28,0x00,0x03] 657# CHECK-LE: lui $1, 65535 # encoding: [0xff,0xff,0x01,0x3c] 658# CHECK-LE: ori $1, $1, 32765 # encoding: [0xfd,0x7f,0x21,0x34] 659# CHECK-LE: addu $1, $1, $9 # encoding: [0x21,0x08,0x29,0x00] 660# CHECK-LE: lwl $8, 3($1) # encoding: [0x03,0x00,0x28,0x88] 661# CHECK-LE: lwr $8, 0($1) # encoding: [0x00,0x00,0x28,0x98] 662 663 ulw $8, 32765($9) 664# CHECK-BE: addiu $1, $zero, 32765 # encoding: [0x24,0x01,0x7f,0xfd] 665# CHECK-BE: addu $1, $1, $9 # encoding: [0x00,0x29,0x08,0x21] 666# CHECK-BE: lwl $8, 0($1) # encoding: [0x88,0x28,0x00,0x00] 667# CHECK-BE: lwr $8, 3($1) # encoding: [0x98,0x28,0x00,0x03] 668# CHECK-LE: addiu $1, $zero, 32765 # encoding: [0xfd,0x7f,0x01,0x24] 669# CHECK-LE: addu $1, $1, $9 # encoding: [0x21,0x08,0x29,0x00] 670# CHECK-LE: lwl $8, 3($1) # encoding: [0x03,0x00,0x28,0x88] 671# CHECK-LE: lwr $8, 0($1) # encoding: [0x00,0x00,0x28,0x98] 672 6731: 674 add $4, $4, $4 675