aboutsummaryrefslogtreecommitdiffstats
path: root/test/MC/Mips/xgot.s
diff options
context:
space:
mode:
Diffstat (limited to 'test/MC/Mips/xgot.s')
-rw-r--r--test/MC/Mips/xgot.s67
1 files changed, 67 insertions, 0 deletions
diff --git a/test/MC/Mips/xgot.s b/test/MC/Mips/xgot.s
new file mode 100644
index 0000000..3084806
--- /dev/null
+++ b/test/MC/Mips/xgot.s
@@ -0,0 +1,67 @@
+// 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: 0x2C R_MIPS_GOT16 $.str
+// CHECK: 0x30 R_MIPS_CALL_LO16 printf
+// 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