136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// This test case will cause an internal EK_GPRel64BlockAddress to be 236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// produced. This was not handled for direct object and an assertion 336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// to occur. This is a variation on test case test/CodeGen/Mips/do_switch.ll 436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines 536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// RUN: llvm-mc < %s -filetype=obj -triple=mips64-pc-linux -relocation-model=pic -mcpu=mips64 -mattr=n64 636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines 736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines .text 836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines .abicalls 936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines .section .mdebug.abi64,"",@progbits 1036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines .file "/home/espindola/llvm/llvm/test/MC/Mips/do_switch.ll" 1136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines .text 1236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines .globl main 1336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines .align 3 1436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines .type main,@function 1536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines .set nomips16 1636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines .ent main 1736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hinesmain: # @main 1836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines .frame $sp,16,$ra 1936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines .mask 0x00000000,0 2036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines .fmask 0x00000000,0 2136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines .set noreorder 2236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines .set nomacro 2336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines .set noat 2436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines# BB#0: # %entry 2536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines daddiu $sp, $sp, -16 2636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines lui $1, %hi(%neg(%gp_rel(main))) 2736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines daddu $2, $1, $25 2836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines addiu $1, $zero, 2 2936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines sw $1, 12($sp) 3036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines lw $1, 12($sp) 3136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines sltiu $4, $1, 4 3236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines dsll $3, $1, 32 3336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines bnez $4, $BB0_2 3436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines nop 3536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines$BB0_1: # %bb4 3636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines addiu $2, $zero, 4 3736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines jr $ra 3836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines daddiu $sp, $sp, 16 3936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines$BB0_2: # %entry 4036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines daddiu $1, $2, %lo(%neg(%gp_rel(main))) 4136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines dsrl $2, $3, 32 4236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines daddiu $3, $zero, 8 4336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines dmult $2, $3 4436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines mflo $2 4536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines ld $3, %got_page($JTI0_0)($1) 4636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines daddu $2, $2, $3 4736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines ld $2, %got_ofst($JTI0_0)($2) 4836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines daddu $1, $2, $1 4936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines jr $1 5036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines nop 5136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines$BB0_3: # %bb5 5236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines addiu $2, $zero, 1 5336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines jr $ra 5436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines daddiu $sp, $sp, 16 5536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines$BB0_4: # %bb1 5636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines addiu $2, $zero, 2 5736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines jr $ra 5836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines daddiu $sp, $sp, 16 5936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines$BB0_5: # %bb2 6036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines addiu $2, $zero, 0 6136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines jr $ra 6236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines daddiu $sp, $sp, 16 6336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines$BB0_6: # %bb3 6436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines addiu $2, $zero, 3 6536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines jr $ra 6636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines daddiu $sp, $sp, 16 6736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines .set at 6836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines .set macro 6936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines .set reorder 7036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines .end main 7136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines$tmp0: 7236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines .size main, ($tmp0)-main 7336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines .section .rodata,"a",@progbits 7436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines .align 3 7536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines$JTI0_0: 7636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines .gpdword ($BB0_3) 7736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines .gpdword ($BB0_4) 7836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines .gpdword ($BB0_5) 7936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines .gpdword ($BB0_6) 8036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines 8136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines 8236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines .text 83