diff options
| author | Chris Lattner <sabre@nondot.org> | 2005-12-17 20:59:06 +0000 |
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2005-12-17 20:59:06 +0000 |
| commit | ea752cc50aae0a370deb1706463551d1ff8092a1 (patch) | |
| tree | bbfcfbbc0265e57dbb880c836050a7823c2a4bf0 /llvm | |
| parent | 6be83f99595016ad16af1795e6cd394771bffeed (diff) | |
| download | bcm5719-llvm-ea752cc50aae0a370deb1706463551d1ff8092a1.tar.gz bcm5719-llvm-ea752cc50aae0a370deb1706463551d1ff8092a1.zip | |
Add support for 64-bit arguments
llvm-svn: 24792
Diffstat (limited to 'llvm')
| -rw-r--r-- | llvm/lib/Target/SparcV8/SparcV8ISelDAGToDAG.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/llvm/lib/Target/SparcV8/SparcV8ISelDAGToDAG.cpp b/llvm/lib/Target/SparcV8/SparcV8ISelDAGToDAG.cpp index a2eb9c7acb9..a17637a46ab 100644 --- a/llvm/lib/Target/SparcV8/SparcV8ISelDAGToDAG.cpp +++ b/llvm/lib/Target/SparcV8/SparcV8ISelDAGToDAG.cpp @@ -102,6 +102,18 @@ SparcV8TargetLowering::LowerArguments(Function &F, SelectionDAG &DAG) { Arg = DAG.getNode(ISD::TRUNCATE, ObjectVT, Arg); } ArgValues.push_back(Arg); + break; + } + case MVT::i64: { + unsigned VRegLo = RegMap->createVirtualRegister(&V8::IntRegsRegClass); + MF.addLiveIn(GPR[ArgNo++], VRegLo); + unsigned VRegHi = RegMap->createVirtualRegister(&V8::IntRegsRegClass); + MF.addLiveIn(GPR[ArgNo++], VRegHi); + SDOperand ArgLo = DAG.getCopyFromReg(DAG.getRoot(), VRegLo, MVT::i32); + SDOperand ArgHi = DAG.getCopyFromReg(ArgLo.getValue(1), VRegHi, MVT::i32); + DAG.setRoot(ArgHi.getValue(1)); + ArgValues.push_back(DAG.getNode(ISD::BUILD_PAIR, MVT::i64, ArgLo, ArgHi)); + break; } } } |

