forked from OSchip/llvm-project
82 lines
2.9 KiB
Plaintext
82 lines
2.9 KiB
Plaintext
# 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
|