# REQUIRES: mips # Check handling of HI16 and LO16 relocations for regular symbol. # # R_MIPS_HI16: (AHL + S) - (short)(AHL + S) # R_MIPS_LO16: AHL + S # where AHL = (AHI << 16) + ALO # RUN: llvm-mc -arch=mipsel -filetype=obj -o=%t.o %s # RUN: lld -flavor old-gnu -target mipsel -e T0 -o %t.exe %t.o # RUN: llvm-objdump -d %t.exe | FileCheck %s # CHECK: Disassembly of section .text: # CHECK-NEXT: T0: # CHECK-NEXT: 400180: 40 00 08 3c lui $8, 64 # CHECK-NEXT: {{[0-9a-f]+}}: c1 01 08 25 addiu $8, $8, 449 # CHECK-NEXT: {{[0-9a-f]+}}: 40 00 08 3c lui $8, 64 # CHECK-NEXT: {{[0-9a-f]+}}: bf 01 08 25 addiu $8, $8, 447 # CHECK-NEXT: {{[0-9a-f]+}}: 40 00 08 3c lui $8, 64 # CHECK-NEXT: {{[0-9a-f]+}}: bf 03 08 25 addiu $8, $8, 959 # CHECK-NEXT: {{[0-9a-f]+}}: 40 00 08 3c lui $8, 64 # CHECK-NEXT: {{[0-9a-f]+}}: c1 ff 08 25 addiu $8, $8, -63 # # CHECK: T1: # CHECK-NEXT: 4001a0: 42 00 08 3c lui $8, 66 # CHECK-NEXT: {{[0-9a-f]+}}: bf 01 08 25 addiu $8, $8, 447 # CHECK-NEXT: {{[0-9a-f]+}}: 3e 00 08 3c lui $8, 62 # CHECK-NEXT: {{[0-9a-f]+}}: c1 01 08 25 addiu $8, $8, 449 # CHECK-NEXT: {{[0-9a-f]+}}: 40 02 08 3c lui $8, 576 # CHECK-NEXT: {{[0-9a-f]+}}: bf 01 08 25 addiu $8, $8, 447 # CHECK-NEXT: {{[0-9a-f]+}}: 40 fe 08 3c lui $8, 65088 # CHECK-NEXT: {{[0-9a-f]+}}: c1 01 08 25 addiu $8, $8, 449 # # CHECK: T2: # CHECK-NEXT: 4001c0: 00 00 00 00 nop .section .text.1,"ax",@progbits .align 4 .globl T0 T0: lui $8, %hi(T2+1) addiu $8, $8, %lo(T2+1) lui $8, %hi(T2+(-1)) addiu $8, $8, %lo(T2+(-1)) lui $8, %hi(T2+0x1ff) addiu $8, $8, %lo(T2+0x1ff) lui $8, %hi(T2+(-0x1ff)) addiu $8, $8, %lo(T2+(-0x1ff)) .size T0, .-T0 .section .text.2,"ax",@progbits .align 4 .globl T1 T1: lui $8, %hi(T2+0x1ffff) addiu $8, $8, %lo(T2+0x1ffff) lui $8, %hi(T2+(-0x1ffff)) addiu $8, $8, %lo(T2+(-0x1ffff)) lui $8, %hi(T2+0x1ffffff) addiu $8, $8, %lo(T2+0x1ffffff) lui $8, %hi(T2+(-0x1ffffff)) addiu $8, $8, %lo(T2+(-0x1ffffff)) .size T1, .-T1 .section .text.3,"ax",@progbits .align 4 .globl T2 T2: nop .size T2, .-T2