aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Target/Mips/MipsFastISel.cpp
diff options
context:
space:
mode:
authorVasileios Kalintiris <Vasileios.Kalintiris@imgtec.com>2015-05-12 12:29:17 +0000
committerVasileios Kalintiris <Vasileios.Kalintiris@imgtec.com>2015-05-12 12:29:17 +0000
commitb48c905613605be994469028f0a97b247e6773e8 (patch)
tree0b432c84555f6047aa5ccdf8e8a1aaf7235fe6f3 /llvm/lib/Target/Mips/MipsFastISel.cpp
parentbdaa681fc6bfca65aeaf3c11ad3636f37e72c9ee (diff)
downloadllvm-b48c905613605be994469028f0a97b247e6773e8.zip
llvm-b48c905613605be994469028f0a97b247e6773e8.tar.gz
llvm-b48c905613605be994469028f0a97b247e6773e8.tar.bz2
[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 llvm-svn: 237121
Diffstat (limited to 'llvm/lib/Target/Mips/MipsFastISel.cpp')
-rw-r--r--llvm/lib/Target/Mips/MipsFastISel.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/llvm/lib/Target/Mips/MipsFastISel.cpp b/llvm/lib/Target/Mips/MipsFastISel.cpp
index 95257b9..3ad55e0 100644
--- a/llvm/lib/Target/Mips/MipsFastISel.cpp
+++ b/llvm/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);