implement vastart. The dag isel compiles this:
[oota-llvm.git] / lib / Target / SparcV8 / SparcV8ISelDAGToDAG.cpp
index ea434ea8f718428d98e5c2f4fc1f41d8012a6db5..e88ad2d2058151e2b4f51dfd00bd1c5abc8fe128 100644 (file)
@@ -568,8 +568,11 @@ SDOperand SparcV8TargetLowering::
 LowerVAStart(SDOperand Chain, SDOperand VAListP, Value *VAListV, 
              SelectionDAG &DAG) {
              
-  assert(0 && "Unimp");
-  abort();
+  SDOperand Offset = DAG.getNode(ISD::ADD, MVT::i32,
+                                 DAG.getRegister(V8::I6, MVT::i32),
+                                 DAG.getConstant(VarArgsFrameOffset, MVT::i32));
+  return DAG.getNode(ISD::STORE, MVT::Other, Chain, Offset, 
+                     VAListP, DAG.getSrcValue(VAListV));
 }
 
 std::pair<SDOperand,SDOperand> SparcV8TargetLowering::