| # REQUIRES: mips |
| |
| # Check calculation of AHL addendums for R_MICROMIPS_HI16 / R_MICROMIPS_LO16 |
| # relocations for a regular symbol. |
| |
| # RUN: llvm-mc -arch=mipsel -filetype=obj -mattr=micromips -o=%t.o %s |
| # RUN: lld -flavor old-gnu -target mipsel -e T0 -o %t.exe %t.o |
| # RUN: llvm-objdump -d -mattr=micromips %t.exe | FileCheck %s |
| |
| # CHECK: Disassembly of section .text: |
| # CHECK-NEXT: T0: |
| # CHECK-NEXT: 400180: a8 41 40 00 lui $8, 64 |
| # CHECK-NEXT: 400184: 08 31 c1 01 addiu $8, $8, 449 |
| # CHECK-NEXT: 400188: a8 41 41 00 lui $8, 65 |
| # CHECK-NEXT: 40018c: 08 31 bf 81 addiu $8, $8, -32321 |
| # CHECK-NEXT: 400190: a8 41 41 00 lui $8, 65 |
| # CHECK-NEXT: 400194: 08 31 40 82 addiu $8, $8, -32192 |
| # CHECK-NEXT: 400198: a8 41 42 00 lui $8, 66 |
| # CHECK-NEXT: 40019c: 08 31 c0 81 addiu $8, $8, -32320 |
| # |
| # CHECK: T1: |
| # CHECK-NEXT: 4001a0: a8 41 40 40 lui $8, 16448 |
| # CHECK-NEXT: 4001a4: 08 31 c0 01 addiu $8, $8, 448 |
| # CHECK-NEXT: 4001a8: a8 41 40 80 lui $8, 32832 |
| # CHECK-NEXT: 4001ac: 08 31 c0 01 addiu $8, $8, 448 |
| # CHECK-NEXT: 4001b0: a8 41 c1 80 lui $8, 32961 |
| # CHECK-NEXT: 4001b4: 08 31 40 82 addiu $8, $8, -32192 |
| # CHECK-NEXT: 4001b8: 00 00 00 00 nop |
| # CHECK-NEXT: 4001bc: 00 00 00 00 nop |
| # |
| # CHECK: T2: |
| # CHECK-NEXT: 4001c0: 00 00 00 00 nop |
| # CHECK-NEXT: 4001c4: a8 41 40 00 lui $8, 64 |
| # CHECK-NEXT: 4001c8: a8 41 40 00 lui $8, 64 |
| # CHECK-NEXT: 4001cc: a8 41 41 00 lui $8, 65 |
| # CHECK-NEXT: 4001d0: a8 41 42 00 lui $8, 66 |
| # CHECK-NEXT: 4001d4: a8 41 40 40 lui $8, 16448 |
| # CHECK-NEXT: 4001d8: a8 41 40 80 lui $8, 32832 |
| # CHECK-NEXT: 4001dc: a8 41 c1 80 lui $8, 32961 |
| # CHECK-NEXT: 4001e0: 08 31 00 82 addiu $8, $8, -32256 |
| |
| .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+0x7fff) |
| addiu $8, $8, %lo(T2+0x7fff) |
| lui $8, %hi(T2+0x8080) |
| addiu $8, $8, %lo(T2+0x8080) |
| lui $8, %hi(T2+0x18000) |
| addiu $8, $8, %lo(T2+0x18000) |
| .size T0, .-T0 |
| |
| .section .text.2,"ax",@progbits |
| .align 4 |
| .globl T1 |
| T1: |
| lui $8, %hi(T2+0x40000000) |
| addiu $8, $8, %lo(T2+0x40000000) |
| lui $8, %hi(T2+0x80000000) |
| addiu $8, $8, %lo(T2+0x80000000) |
| lui $8, %hi(T2+0x80808080) |
| addiu $8, $8, %lo(T2+0x80808080) |
| .size T1, .-T1 |
| |
| .section .text.3,"ax",@progbits |
| .align 4 |
| .globl T2 |
| T2: |
| nop |
| lui $8, %hi(T0+0x1) |
| lui $8, %hi(T0+0x7fff) |
| lui $8, %hi(T0+0x8080) |
| lui $8, %hi(T0+0x18000) |
| lui $8, %hi(T0+0x40000000) |
| lui $8, %hi(T0+0x80000000) |
| lui $8, %hi(T0+0x80808080) |
| addiu $8, $8, %lo(T0+0x80808080) |
| .size T2, .-T2 |