# REQUIRES: mips # Check calculation of AHL addendums for R_MICROMIPS_HI16 / R_MICROMIPS_LO16 # relocations for a regular symbol. # # RUN: llvm-mc -triple=mipsel -mattr=micromips -filetype=obj -o=%t-obj %s # RUN: lld -flavor gnu -target mipsel -e glob1 -o %t-exe %t-obj # RUN: llvm-objdump -t -d -mattr=micromips %t-exe | FileCheck %s # CHECK: Disassembly of section .text: # CHECK-NEXT: glob1: # CHECK-NEXT: 400130: a8 41 40 00 lui $8, 64 # CHECK-NEXT: 400134: 08 3d 6a 01 lh $8, 362($8) # CHECK-NEXT: 400138: a8 41 41 00 lui $8, 65 # CHECK-NEXT: 40013c: 08 3d 68 81 lh $8, -32408($8) # CHECK-NEXT: 400140: a8 41 41 00 lui $8, 65 # CHECK-NEXT: 400144: 08 3d e9 81 lh $8, -32279($8) # CHECK-NEXT: 400148: a8 41 42 00 lui $8, 66 # CHECK-NEXT: 40014c: 08 3d 69 81 lh $8, -32407($8) # CHECK-NEXT: 400150: a8 41 40 40 lui $8, 16448 # CHECK-NEXT: 400154: 08 3d 69 01 lh $8, 361($8) # CHECK-NEXT: 400158: a8 41 40 80 lui $8, 32832 # CHECK-NEXT: 40015c: 08 3d 69 01 lh $8, 361($8) # CHECK-NEXT: 400160: a8 41 c1 80 lui $8, 32961 # CHECK-NEXT: 400164: 08 3d e9 81 lh $8, -32279($8) # CHECK: glob2: # CHECK-NEXT: 400168: a8 41 40 00 lui $8, 64 # CHECK-NEXT: 40016c: a8 41 40 00 lui $8, 64 # CHECK-NEXT: 400170: a8 41 41 00 lui $8, 65 # CHECK-NEXT: 400174: a8 41 42 00 lui $8, 66 # CHECK-NEXT: 400178: a8 41 40 40 lui $8, 16448 # CHECK-NEXT: 40017c: a8 41 40 80 lui $8, 32832 # CHECK-NEXT: 400180: a8 41 c1 80 lui $8, 32961 # CHECK-NEXT: 400184: 08 3d b1 81 lh $8, -32335($8) # CHECK: SYMBOL TABLE: # CHECK: 00400130 g F .text 00000038 glob1 # CHECK: 00400168 g F .text 00000020 glob2 .globl glob1 .type glob1, @function .set micromips .ent glob1 glob1: lui $t0,%hi(glob2+0x00000001) lh $t0,%lo(glob2+0x00000001)($t0) lui $t0,%hi(glob2+0x00007fff) lh $t0,%lo(glob2+0x00007fff)($t0) lui $t0,%hi(glob2+0x00008080) lh $t0,%lo(glob2+0x00008080)($t0) lui $t0,%hi(glob2+0x00018000) lh $t0,%lo(glob2+0x00018000)($t0) lui $t0,%hi(glob2+0x40000000) lh $t0,%lo(glob2+0x40000000)($t0) lui $t0,%hi(glob2+0x80000000) lh $t0,%lo(glob2+0x80000000)($t0) lui $t0,%hi(glob2+0x80808080) lh $t0,%lo(glob2+0x80808080)($t0) .end glob1 .globl glob2 .type glob2, @function .set micromips .ent glob2 glob2: lui $t0,%hi(glob1+0x00000001) lui $t0,%hi(glob1+0x00007fff) lui $t0,%hi(glob1+0x00008080) lui $t0,%hi(glob1+0x00018000) lui $t0,%hi(glob1+0x40000000) lui $t0,%hi(glob1+0x80000000) lui $t0,%hi(glob1+0x80808080) lh $t0,%lo(glob1+0x80808080)($t0) .end glob2