From efd95481bd648dae90d6e59c0ab1e659c3eead6a Mon Sep 17 00:00:00 2001 From: Rafael Espindola Date: Fri, 28 Mar 2014 19:58:24 +0000 Subject: [PATCH] Convert one last llc -filetype=obj test. Unfortunately this one fails deep inside the mips backend, so xfail it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@205042 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/MC/Mips/xgot.ll | 29 ------------------ test/MC/Mips/xgot.s | 70 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 70 insertions(+), 29 deletions(-) delete mode 100644 test/MC/Mips/xgot.ll create mode 100644 test/MC/Mips/xgot.s diff --git a/test/MC/Mips/xgot.ll b/test/MC/Mips/xgot.ll deleted file mode 100644 index cc336788aa8..00000000000 --- a/test/MC/Mips/xgot.ll +++ /dev/null @@ -1,29 +0,0 @@ -; RUN: llc -filetype=obj -mtriple mipsel-unknown-linux -mxgot %s -o - | llvm-readobj -r | FileCheck %s - -@.str = private unnamed_addr constant [16 x i8] c"ext_1=%d, i=%d\0A\00", align 1 -@ext_1 = external global i32 - -define void @fill() nounwind { -entry: - -; 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: 0x{{[0-9,A-F]+}} R_MIPS_HI16 -; CHECK: 0x{{[0-9,A-F]+}} R_MIPS_LO16 -; CHECK: 0x{{[0-9,A-F]+}} R_MIPS_GOT_HI16 -; CHECK: 0x{{[0-9,A-F]+}} R_MIPS_GOT_LO16 -; CHECK: 0x{{[0-9,A-F]+}} R_MIPS_CALL_HI16 -; CHECK: 0x{{[0-9,A-F]+}} R_MIPS_CALL_LO16 -; CHECK: 0x{{[0-9,A-F]+}} R_MIPS_GOT -; CHECK: 0x{{[0-9,A-F]+}} R_MIPS_LO16 -; CHECK: ] - - %0 = load i32* @ext_1, align 4 - %call = tail call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([16 x i8]* @.str, i32 0, i32 0), i32 %0) nounwind - ret void -} - -declare i32 @printf(i8* nocapture, ...) nounwind - diff --git a/test/MC/Mips/xgot.s b/test/MC/Mips/xgot.s new file mode 100644 index 00000000000..e9c2eaa587a --- /dev/null +++ b/test/MC/Mips/xgot.s @@ -0,0 +1,70 @@ +// RUN: llvm-mc -filetype=obj -triple mipsel-unknown-linux %s -o - | llvm-readobj -r | FileCheck %s + +// Expected failure since the mips backend can't handle this yet. +// XFAIL: * + +// 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: 0x{{[0-9,A-F]+}} R_MIPS_HI16 +// CHECK: 0x{{[0-9,A-F]+}} R_MIPS_LO16 +// CHECK: 0x{{[0-9,A-F]+}} R_MIPS_GOT_HI16 +// CHECK: 0x{{[0-9,A-F]+}} R_MIPS_GOT_LO16 +// CHECK: 0x{{[0-9,A-F]+}} R_MIPS_CALL_HI16 +// CHECK: 0x{{[0-9,A-F]+}} R_MIPS_CALL_LO16 +// CHECK: 0x{{[0-9,A-F]+}} R_MIPS_GOT +// CHECK: 0x{{[0-9,A-F]+}} R_MIPS_LO16 +// 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 -- 2.34.1