OSDN Git Service

[ARM] GlobalISel: Load i1, i8 and i16 args from stack
authorDiana Picus <diana.picus@linaro.org>
Thu, 26 Jan 2017 09:20:47 +0000 (09:20 +0000)
committerDiana Picus <diana.picus@linaro.org>
Thu, 26 Jan 2017 09:20:47 +0000 (09:20 +0000)
commit4cead7216bf9706a28269b1120746fd47e15a3b3
tree3b2e0035f0b4d5b302b3a48cc10cdca4943f3628
parent69c8d681d34bd4501d72f306ec0af09d1f69e092
[ARM] GlobalISel: Load i1, i8 and i16 args from stack

Add support for loading i1, i8 and i16 arguments from the stack, with or without
the ABI extension flags.

When the ABI extension flags are present, we load a 4-byte value, otherwise we
preserve the size of the load and let the instruction selector replace it with a
LDRB/LDRH. This generates the same thing as DAGISel.

Differential Revision: https://reviews.llvm.org/D27803

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@293163 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/ARM/ARMCallLowering.cpp
lib/Target/ARM/ARMInstructionSelector.cpp
lib/Target/ARM/ARMLegalizerInfo.cpp
test/CodeGen/ARM/GlobalISel/arm-instruction-select.mir
test/CodeGen/ARM/GlobalISel/arm-irtranslator.ll
test/CodeGen/ARM/GlobalISel/arm-isel.ll