diff options
| author | Jyotsna Verma <jverma@codeaurora.org> | 2013-03-07 20:28:34 +0000 |
|---|---|---|
| committer | Jyotsna Verma <jverma@codeaurora.org> | 2013-03-07 20:28:34 +0000 |
| commit | c7dcc2fbc5301977b40cf7bf7b0e0ca5dbf4a992 (patch) | |
| tree | 5f43f1554d1e38e4ac0927c8e7defc156dd6108d /llvm/lib/Target/Hexagon/HexagonISelLowering.cpp | |
| parent | afe60c1d80cd004bb19c2b238b3b821d868d2f03 (diff) | |
| download | bcm5719-llvm-c7dcc2fbc5301977b40cf7bf7b0e0ca5dbf4a992.tar.gz bcm5719-llvm-c7dcc2fbc5301977b40cf7bf7b0e0ca5dbf4a992.zip | |
Hexagon: Handle i8, i16 and i1 Var Args.
llvm-svn: 176647
Diffstat (limited to 'llvm/lib/Target/Hexagon/HexagonISelLowering.cpp')
| -rw-r--r-- | llvm/lib/Target/Hexagon/HexagonISelLowering.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/llvm/lib/Target/Hexagon/HexagonISelLowering.cpp b/llvm/lib/Target/Hexagon/HexagonISelLowering.cpp index c142ed92c44..dad1292e7c6 100644 --- a/llvm/lib/Target/Hexagon/HexagonISelLowering.cpp +++ b/llvm/lib/Target/Hexagon/HexagonISelLowering.cpp @@ -103,6 +103,16 @@ CC_Hexagon_VarArg (unsigned ValNo, MVT ValVT, State.addLoc(CCValAssign::getMem(ValNo, ValVT, ofst, LocVT, LocInfo)); return false; } + if (LocVT == MVT::i1 || LocVT == MVT::i8 || LocVT == MVT::i16) { + LocVT = MVT::i32; + ValVT = MVT::i32; + if (ArgFlags.isSExt()) + LocInfo = CCValAssign::SExt; + else if (ArgFlags.isZExt()) + LocInfo = CCValAssign::ZExt; + else + LocInfo = CCValAssign::AExt; + } if (LocVT == MVT::i32 || LocVT == MVT::f32) { ofst = State.AllocateStack(4, 4); State.addLoc(CCValAssign::getMem(ValNo, ValVT, ofst, LocVT, LocInfo)); |

