diff options
Diffstat (limited to 'test/MC/Mips/mips_gprel16.s')
-rw-r--r-- | test/MC/Mips/mips_gprel16.s | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/test/MC/Mips/mips_gprel16.s b/test/MC/Mips/mips_gprel16.s new file mode 100644 index 0000000..716c75e --- /dev/null +++ b/test/MC/Mips/mips_gprel16.s @@ -0,0 +1,70 @@ +// This addresses bug 14456. We were not writing +// out the addend to the gprel16 relocation. The +// addend is stored in the instruction immediate +// field. + +// RUN: llvm-mc -mcpu=mips32r2 -triple=mipsel-pc-linux -filetype=obj -relocation-model=static %s -o - \ +// RUN: | llvm-objdump -disassemble -mattr +mips32r2 - \ +// RUN: | FileCheck %s + + .text + .abicalls + .option pic0 + .section .mdebug.abi32,"",@progbits + .file "/home/espindola/llvm/llvm/test/MC/Mips/mips_gprel16.ll" + .text + .globl testvar1 + .align 2 + .type testvar1,@function + .set nomips16 + .ent testvar1 +testvar1: # @testvar1 + .frame $sp,0,$ra + .mask 0x00000000,0 + .fmask 0x00000000,0 + .set noreorder + .set nomacro + .set noat +# BB#0: # %entry +// CHECK: lw ${{[0-9]+}}, 0($gp) + lw $1, %gp_rel(var1)($gp) + jr $ra + sltu $2, $zero, $1 + .set at + .set macro + .set reorder + .end testvar1 +$tmp0: + .size testvar1, ($tmp0)-testvar1 + + .globl testvar2 + .align 2 + .type testvar2,@function + .set nomips16 + .ent testvar2 +testvar2: # @testvar2 + .frame $sp,0,$ra + .mask 0x00000000,0 + .fmask 0x00000000,0 + .set noreorder + .set nomacro + .set noat +# BB#0: # %entry +// CHECK: lw ${{[0-9]+}}, 4($gp) + lw $1, %gp_rel(var2)($gp) + jr $ra + sltu $2, $zero, $1 + .set at + .set macro + .set reorder + .end testvar2 +$tmp1: + .size testvar2, ($tmp1)-testvar2 + + .type var1,@object # @var1 + .local var1 + .comm var1,4,4 + .type var2,@object # @var2 + .local var2 + .comm var2,4,4 + |