diff options
| author | Reed Kotler <rkotler@mips.com> | 2013-02-07 04:34:51 +0000 |
|---|---|---|
| committer | Reed Kotler <rkotler@mips.com> | 2013-02-07 04:34:51 +0000 |
| commit | 4a230ffa96b7af6e7394e7458ba7604d05c1d3e8 (patch) | |
| tree | 19a537313442c8bbb779b4ddda942fba6c9fc8a5 | |
| parent | 3b96424c43132cf8e78b6b599c7463e6e6191330 (diff) | |
| download | bcm5719-llvm-4a230ffa96b7af6e7394e7458ba7604d05c1d3e8.tar.gz bcm5719-llvm-4a230ffa96b7af6e7394e7458ba7604d05c1d3e8.zip | |
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
| -rw-r--r-- | llvm/lib/Target/Mips/Mips16InstrInfo.td | 3 | ||||
| -rw-r--r-- | llvm/test/CodeGen/Mips/fp16static.ll | 13 |
2 files changed, 16 insertions, 0 deletions
diff --git a/llvm/lib/Target/Mips/Mips16InstrInfo.td b/llvm/lib/Target/Mips/Mips16InstrInfo.td index f0d6a2ace12..135df75693d 100644 --- a/llvm/lib/Target/Mips/Mips16InstrInfo.td +++ b/llvm/lib/Target/Mips/Mips16InstrInfo.td @@ -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), diff --git a/llvm/test/CodeGen/Mips/fp16static.ll b/llvm/test/CodeGen/Mips/fp16static.ll new file mode 100644 index 00000000000..240ec75a36b --- /dev/null +++ b/llvm/test/CodeGen/Mips/fp16static.ll @@ -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 +} |

