mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-26 22:34:39 +00:00
0810cf52bd
In case of using a "nested" relocation expressions like this `%hi(%neg(%gp_rel()))`, N32 ABI requires generation of three consecutive relocations. That differs from the N64 ABI case where all relocations are packed into the single relocation record. llvm-svn: 313879
23 lines
682 B
ArmAsm
23 lines
682 B
ArmAsm
// Check generation of N32 ABI relocations.
|
|
|
|
// RUN: llvm-mc -filetype=obj -triple=mips64-linux-gnu -mcpu=mips3 \
|
|
// RUN: -target-abi=n32 %s -o - | llvm-readobj -r | FileCheck %s
|
|
|
|
// CHECK: Relocations [
|
|
// CHECK-NEXT: Section (3) .rela.text {
|
|
// CHECK-NEXT: 0x0 R_MIPS_GPREL16 foo 0x4
|
|
// CHECK-NEXT: 0x0 R_MIPS_SUB - 0x0
|
|
// CHECK-NEXT: 0x0 R_MIPS_HI16 - 0x0
|
|
// CHECK-NEXT: 0x4 R_MIPS_GPREL16 foo 0x4
|
|
// CHECK-NEXT: 0x4 R_MIPS_SUB - 0x0
|
|
// CHECK-NEXT: 0x4 R_MIPS_LO16 - 0x0
|
|
// CHECK-NEXT: }
|
|
|
|
.globl foo
|
|
.ent foo
|
|
foo:
|
|
lui $gp, %hi(%neg(%gp_rel(foo+4)))
|
|
addiu $gp, $gp, %lo(%neg(%gp_rel(foo+4)))
|
|
daddu $gp, $gp, $25
|
|
.end foo
|