[ARM GlobalISel] Fix call opcodes
authorDiana Picus <diana.picus@linaro.org>
Wed, 25 Oct 2017 11:42:40 +0000 (11:42 +0000)
committerDiana Picus <diana.picus@linaro.org>
Wed, 25 Oct 2017 11:42:40 +0000 (11:42 +0000)
commitb35022121d5d82705fd576b846eea6be9e98c0fd
tree9deac6d13da5f8261f39c4bd568b8452c63cf26b
parenteb58db53215188263d9aee154507a9e805ef603d
[ARM GlobalISel] Fix call opcodes

We were generating BLX for all the calls, which was incorrect in most
cases. Update ARMCallLowering to generate BL for direct calls, and BLX,
BX_CALL or BMOVPCRX_CALL for indirect calls.

llvm-svn: 316570
llvm/lib/Target/ARM/ARMCallLowering.cpp
llvm/test/CodeGen/ARM/GlobalISel/arm-call-lowering.ll
llvm/test/CodeGen/ARM/GlobalISel/arm-isel-divmod.ll
llvm/test/CodeGen/ARM/GlobalISel/arm-isel-fp.ll
llvm/test/CodeGen/ARM/GlobalISel/arm-isel.ll
llvm/test/CodeGen/ARM/GlobalISel/arm-legalize-divmod.mir
llvm/test/CodeGen/ARM/GlobalISel/arm-legalize-fp.mir
llvm/test/CodeGen/ARM/GlobalISel/arm-param-lowering.ll