diff options
author | Vasileios Kalintiris <Vasileios.Kalintiris@imgtec.com> | 2015-05-12 12:29:17 +0000 |
---|---|---|
committer | Vasileios Kalintiris <Vasileios.Kalintiris@imgtec.com> | 2015-05-12 12:29:17 +0000 |
commit | 98ed1175d9ea145a170be43c28b5a07e0654c429 (patch) | |
tree | 1e089c97b9ae59688cc23022a86146ec6bbf8b89 /lib/Target/Mips | |
parent | d8b1e160334eff6cd207ba52bf5e785398cda526 (diff) |
[mips][FastISel] Handle calls with non legal types i8 and i16.
Summary: Allow calls with non legal integer types based on i8 and i16 to be processed by mips fast-isel.
Based on a patch by Reed Kotler.
Test Plan:
"Make check" test forthcoming.
Test-suite passes at O0/O2 and with mips32 r1/r2
Reviewers: rkotler, dsanders
Subscribers: llvm-commits, rfuhler
Differential Revision: http://reviews.llvm.org/D6770
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@237121 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/Mips')
-rw-r--r-- | lib/Target/Mips/MipsFastISel.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/Target/Mips/MipsFastISel.cpp b/lib/Target/Mips/MipsFastISel.cpp index 95257b91917..3ad55e036f7 100644 --- a/lib/Target/Mips/MipsFastISel.cpp +++ b/lib/Target/Mips/MipsFastISel.cpp @@ -1000,7 +1000,9 @@ bool MipsFastISel::processCallArgs(CallLoweringInfo &CLI, } } } - if (((ArgVT == MVT::i32) || (ArgVT == MVT::f32)) && VA.isMemLoc()) { + if (((ArgVT == MVT::i32) || (ArgVT == MVT::f32) || (ArgVT == MVT::i16) || + (ArgVT == MVT::i8)) && + VA.isMemLoc()) { switch (VA.getLocMemOffset()) { case 0: VA.convertToReg(Mips::A0); |