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 | a4dd8d67320d86ca7dfd88cb3d0c189cab713a88 (patch) | |
tree | 5b9eb191ce6a22882cb5aa90ce254700f25101a2 /lib/Target/Hexagon/HexagonISelLowering.cpp | |
parent | b1b6c170819120e535ef706f58041bb6caebe35d (diff) | |
download | external_llvm-a4dd8d67320d86ca7dfd88cb3d0c189cab713a88.zip external_llvm-a4dd8d67320d86ca7dfd88cb3d0c189cab713a88.tar.gz external_llvm-a4dd8d67320d86ca7dfd88cb3d0c189cab713a88.tar.bz2 |
Hexagon: Handle i8, i16 and i1 Var Args.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176647 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/Hexagon/HexagonISelLowering.cpp')
-rw-r--r-- | lib/Target/Hexagon/HexagonISelLowering.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/lib/Target/Hexagon/HexagonISelLowering.cpp b/lib/Target/Hexagon/HexagonISelLowering.cpp index c142ed9..dad1292 100644 --- a/lib/Target/Hexagon/HexagonISelLowering.cpp +++ b/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)); |