diff options
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/Target/ARM/ARMFastISel.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/llvm/lib/Target/ARM/ARMFastISel.cpp b/llvm/lib/Target/ARM/ARMFastISel.cpp index 5701542d8bc..d199e732746 100644 --- a/llvm/lib/Target/ARM/ARMFastISel.cpp +++ b/llvm/lib/Target/ARM/ARMFastISel.cpp @@ -1100,7 +1100,11 @@ bool ARMFastISel::ARMEmitLibcall(const Instruction *I, Function *F) { // Issue the call, BLr9 for darwin, BL otherwise. MachineInstrBuilder MIB; - unsigned CallOpc = Subtarget->isTargetDarwin() ? ARM::BLr9 : ARM::BL; + unsigned CallOpc; + if(isThumb) + CallOpc = Subtarget->isTargetDarwin() ? ARM::tBLr9 : ARM::tBL; + else + CallOpc = Subtarget->isTargetDarwin() ? ARM::BLr9 : ARM::BL; MIB = BuildMI(*FuncInfo.MBB, FuncInfo.InsertPt, DL, TII.get(CallOpc)) .addGlobalAddress(F, 0, 0); |