| // RUN: llvm-mc -filetype=obj -triple mipsel-unknown-linux %s -o - | llvm-readobj -r | FileCheck %s |
| |
| // Check that the appropriate relocations were created. |
| // For the xgot case we want to see R_MIPS_[GOT|CALL]_[HI|LO]16. |
| |
| // CHECK: Relocations [ |
| // CHECK: 0x0 R_MIPS_HI16 _gp_disp |
| // CHECK: 0x4 R_MIPS_LO16 _gp_disp |
| // CHECK: 0x14 R_MIPS_GOT_HI16 ext_1 |
| // CHECK: 0x1C R_MIPS_GOT_LO16 ext_1 |
| // CHECK: 0x24 R_MIPS_CALL_HI16 printf |
| // CHECK: 0x30 R_MIPS_CALL_LO16 printf |
| // CHECK: 0x2C R_MIPS_GOT16 $.str |
| // CHECK: 0x38 R_MIPS_LO16 $.str |
| // CHECK: ] |
| |
| .text |
| .abicalls |
| .section .mdebug.abi32,"",@progbits |
| .file "/home/espindola/llvm/llvm/test/MC/Mips/xgot.ll" |
| .text |
| .globl fill |
| .align 2 |
| .type fill,@function |
| .set nomips16 |
| .ent fill |
| fill: # @fill |
| .frame $sp,24,$ra |
| .mask 0x80000000,-4 |
| .fmask 0x00000000,0 |
| .set noreorder |
| .set nomacro |
| .set noat |
| # %bb.0: # %entry |
| lui $2, %hi(_gp_disp) |
| addiu $2, $2, %lo(_gp_disp) |
| addiu $sp, $sp, -24 |
| sw $ra, 20($sp) # 4-byte Folded Spill |
| addu $gp, $2, $25 |
| lui $1, %got_hi(ext_1) |
| addu $1, $1, $gp |
| lw $1, %got_lo(ext_1)($1) |
| lw $5, 0($1) |
| lui $1, %call_hi(printf) |
| addu $1, $1, $gp |
| lw $2, %got($.str)($gp) |
| lw $25, %call_lo(printf)($1) |
| jalr $25 |
| addiu $4, $2, %lo($.str) |
| lw $ra, 20($sp) # 4-byte Folded Reload |
| jr $ra |
| addiu $sp, $sp, 24 |
| .set at |
| .set macro |
| .set reorder |
| .end fill |
| $tmp0: |
| .size fill, ($tmp0)-fill |
| |
| .type $.str,@object # @.str |
| .section .rodata.str1.1,"aMS",@progbits,1 |
| $.str: |
| .asciz "ext_1=%d, i=%d\n" |
| .size $.str, 16 |
| |
| |
| .text |