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

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



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174583 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Reed Kotler 2013-02-07 04:34:51 +00:00
parent a170f520a9
commit 24b339dcdc
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)), def : Mips16Pat<(MipsJmpLink (i32 tglobaladdr:$dst)),
(Jal16 tglobaladdr:$dst)>; (Jal16 tglobaladdr:$dst)>;
def : Mips16Pat<(MipsJmpLink (i32 texternalsym:$dst)),
(Jal16 texternalsym:$dst)>;
// Indirect branch // Indirect branch
def: Mips16Pat< def: Mips16Pat<
(brind CPU16Regs:$rs), (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
}