1 # RUN: llvm-mc %s -triple=mipsel-unknown-linux -mcpu=mips32r2 -show-encoding | \
2 # RUN: FileCheck %s --check-prefix=32R2-EL
3 # RUN: llvm-mc %s -triple=mipsel-unknown-linux -mcpu=mips32r2 -mattr=micromips -show-encoding | \
4 # RUN: FileCheck %s --check-prefix=MM-32R2-EL
6 # Check that the assembler can handle the expressions as operands.
10 # 32R2-EL: lw $4, %lo(foo)($4) # encoding: [A,A,0x84,0x8c]
11 # 32R2-EL: # fixup A - offset: 0, value: foo@ABS_LO, kind: fixup_Mips_LO16
12 # 32R2-EL: lw $4, 56($4) # encoding: [0x38,0x00,0x84,0x8c]
13 # 32R2-EL: lw $4, %lo(foo+8)($4) # encoding: [0x08'A',A,0x84,0x8c]
14 # 32R2-EL: # fixup A - offset: 0, value: foo@ABS_LO, kind: fixup_Mips_LO16
15 # 32R2-EL: lw $4, %lo(foo+8)($4) # encoding: [0x08'A',A,0x84,0x8c]
16 # 32R2-EL: # fixup A - offset: 0, value: foo@ABS_LO, kind: fixup_Mips_LO16
17 # 32R2-EL: lw $4, %lo(foo+8)($4) # encoding: [0x08'A',A,0x84,0x8c]
18 # 32R2-EL: # fixup A - offset: 0, value: foo@ABS_LO, kind: fixup_Mips_LO16
22 # MM-32R2-EL: .globl foo
24 # MM-32R2-EL: lw $4, %lo(foo)($4) # encoding: [0x84'A',0xfc'A',0x00,0x00]
25 # MM-32R2-EL: # fixup A - offset: 0, value: foo@ABS_LO, kind: fixup_MICROMIPS_LO16
26 # MM-32R2-EL: lw $4, 56($4) # encoding: [0x84,0xfc,0x38,0x00]
27 # MM-32R2-EL: lw $4, %lo(foo+8)($4) # encoding: [0x84'A',0xfc'A',0x08,0x00]
28 # MM-32R2-EL: # fixup A - offset: 0, value: foo@ABS_LO, kind: fixup_MICROMIPS_LO16
29 # MM-32R2-EL: lw $4, %lo(foo+8)($4) # encoding: [0x84'A',0xfc'A',0x08,0x00]
30 # MM-32R2-EL: # fixup A - offset: 0, value: foo@ABS_LO, kind: fixup_MICROMIPS_LO16
31 # MM-32R2-EL: lw $4, %lo(foo+8)($4) # encoding: [0x84'A',0xfc'A',0x08,0x00]
32 # MM-32R2-EL: # fixup A - offset: 0, value: foo@ABS_LO, kind: fixup_MICROMIPS_LO16
33 # MM-32R2-EL: .space 64
39 lw $4,((10 + 4) * 4)($4)
40 lw $4,%lo (2 * 4) + foo($4)
41 lw $4,%lo((2 * 4) + foo)($4)
42 lw $4,(((%lo ((2 * 4) + foo))))($4)