1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-20 03:23:01 +02:00

Make sure we call externals from libraries properly when -static.

For example, when we are doing mips16 hard float or soft float.

llvm-svn: 174583
This commit is contained in:
Reed Kotler 2013-02-07 04:34:51 +00:00
parent 6309c4fe22
commit 8ac7f84606
2 changed files with 16 additions and 0 deletions

View File

@ -1094,6 +1094,9 @@ class UncondBranch16_pat<SDNode OpNode, Instruction I>:
def : Mips16Pat<(MipsJmpLink (i32 tglobaladdr:$dst)),
(Jal16 tglobaladdr:$dst)>;
def : Mips16Pat<(MipsJmpLink (i32 texternalsym:$dst)),
(Jal16 texternalsym:$dst)>;
// Indirect branch
def: Mips16Pat<
(brind CPU16Regs:$rs),

View File

@ -0,0 +1,13 @@
; RUN: llc -march=mipsel -mcpu=mips16 -mips16-hard-float -soft-float -relocation-model=static < %s | FileCheck %s -check-prefix=CHECK-STATIC16
@x = common global float 0.000000e+00, align 4
define void @foo() nounwind {
entry:
%0 = load float* @x, align 4
%1 = load float* @x, align 4
%mul = fmul float %0, %1
store float %mul, float* @x, align 4
; CHECK-STATIC16: jal __mips16_mulsf3
ret void
}