1*9880d681SAndroid Build Coastguard Worker// RUN: llvm-mc -triple=mips64el-pc-linux -filetype=obj -mcpu=mips64r2 < %s -o - | llvm-readobj -r | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Worker// Check that the R_MIPS_GOT_DISP relocations were created. 4*9880d681SAndroid Build Coastguard Worker 5*9880d681SAndroid Build Coastguard Worker// CHECK: Relocations [ 6*9880d681SAndroid Build Coastguard Worker// CHECK: 0x{{[0-9,A-F]+}} R_MIPS_GOT_DISP 7*9880d681SAndroid Build Coastguard Worker 8*9880d681SAndroid Build Coastguard Worker .text 9*9880d681SAndroid Build Coastguard Worker .abicalls 10*9880d681SAndroid Build Coastguard Worker .section .mdebug.abi64,"",@progbits 11*9880d681SAndroid Build Coastguard Worker .file "<stdin>" 12*9880d681SAndroid Build Coastguard Worker .text 13*9880d681SAndroid Build Coastguard Worker .globl main 14*9880d681SAndroid Build Coastguard Worker .align 3 15*9880d681SAndroid Build Coastguard Worker .type main,@function 16*9880d681SAndroid Build Coastguard Worker .set nomips16 17*9880d681SAndroid Build Coastguard Worker .ent main 18*9880d681SAndroid Build Coastguard Workermain: # @main 19*9880d681SAndroid Build Coastguard Worker .frame $sp,16,$ra 20*9880d681SAndroid Build Coastguard Worker .mask 0x00000000,0 21*9880d681SAndroid Build Coastguard Worker .fmask 0x90000000,-4 22*9880d681SAndroid Build Coastguard Worker .set noreorder 23*9880d681SAndroid Build Coastguard Worker .set nomacro 24*9880d681SAndroid Build Coastguard Worker .set noat 25*9880d681SAndroid Build Coastguard Worker# BB#0: # %entry 26*9880d681SAndroid Build Coastguard Worker daddiu $sp, $sp, -16 27*9880d681SAndroid Build Coastguard Worker sd $ra, 8($sp) # 8-byte Folded Spill 28*9880d681SAndroid Build Coastguard Worker sd $gp, 0($sp) # 8-byte Folded Spill 29*9880d681SAndroid Build Coastguard Worker lui $1, %hi(%neg(%gp_rel(main))) 30*9880d681SAndroid Build Coastguard Worker daddu $1, $1, $25 31*9880d681SAndroid Build Coastguard Worker daddiu $gp, $1, %lo(%neg(%gp_rel(main))) 32*9880d681SAndroid Build Coastguard Worker ld $1, %got_disp(shl)($gp) 33*9880d681SAndroid Build Coastguard Worker ld $5, 0($1) 34*9880d681SAndroid Build Coastguard Worker ld $1, %got_page($.str)($gp) 35*9880d681SAndroid Build Coastguard Worker ld $25, %call16(printf)($gp) 36*9880d681SAndroid Build Coastguard Worker jalr $25 37*9880d681SAndroid Build Coastguard Worker daddiu $4, $1, %got_ofst($.str) 38*9880d681SAndroid Build Coastguard Worker addiu $2, $zero, 0 39*9880d681SAndroid Build Coastguard Worker ld $gp, 0($sp) # 8-byte Folded Reload 40*9880d681SAndroid Build Coastguard Worker ld $ra, 8($sp) # 8-byte Folded Reload 41*9880d681SAndroid Build Coastguard Worker jr $ra 42*9880d681SAndroid Build Coastguard Worker daddiu $sp, $sp, 16 43*9880d681SAndroid Build Coastguard Worker .set at 44*9880d681SAndroid Build Coastguard Worker .set macro 45*9880d681SAndroid Build Coastguard Worker .set reorder 46*9880d681SAndroid Build Coastguard Worker .end main 47*9880d681SAndroid Build Coastguard Worker$tmp0: 48*9880d681SAndroid Build Coastguard Worker .size main, ($tmp0)-main 49*9880d681SAndroid Build Coastguard Worker 50*9880d681SAndroid Build Coastguard Worker .type shl,@object # @shl 51*9880d681SAndroid Build Coastguard Worker .data 52*9880d681SAndroid Build Coastguard Worker .globl shl 53*9880d681SAndroid Build Coastguard Worker .align 3 54*9880d681SAndroid Build Coastguard Workershl: 55*9880d681SAndroid Build Coastguard Worker .8byte 1 # 0x1 56*9880d681SAndroid Build Coastguard Worker .size shl, 8 57*9880d681SAndroid Build Coastguard Worker 58*9880d681SAndroid Build Coastguard Worker .type $.str,@object # @.str 59*9880d681SAndroid Build Coastguard Worker .section .rodata.str1.1,"aMS",@progbits,1 60*9880d681SAndroid Build Coastguard Worker$.str: 61*9880d681SAndroid Build Coastguard Worker .asciz "0x%llx\n" 62*9880d681SAndroid Build Coastguard Worker .size $.str, 8 63*9880d681SAndroid Build Coastguard Worker 64*9880d681SAndroid Build Coastguard Worker 65*9880d681SAndroid Build Coastguard Worker .text 66