diff options
-rw-r--r-- | lib/Target/ARM/ARMISelDAGToDAG.cpp | 4 | ||||
-rw-r--r-- | test/CodeGen/ARM/call.ll | 4 |
2 files changed, 5 insertions, 3 deletions
diff --git a/lib/Target/ARM/ARMISelDAGToDAG.cpp b/lib/Target/ARM/ARMISelDAGToDAG.cpp index 72d25c8dcf..283d0f18c7 100644 --- a/lib/Target/ARM/ARMISelDAGToDAG.cpp +++ b/lib/Target/ARM/ARMISelDAGToDAG.cpp @@ -294,7 +294,9 @@ public: static SDOperand LowerCALL(SDOperand Op, SelectionDAG &DAG) { SDOperand Chain = Op.getOperand(0); unsigned CallConv = cast<ConstantSDNode>(Op.getOperand(1))->getValue(); - assert(CallConv == CallingConv::C && "unknown calling convention"); + assert((CallConv == CallingConv::C || + CallConv == CallingConv::Fast) + && "unknown calling convention"); bool isVarArg = cast<ConstantSDNode>(Op.getOperand(2))->getValue() != 0; bool isTailCall = cast<ConstantSDNode>(Op.getOperand(3))->getValue() != 0; SDOperand Callee = Op.getOperand(4); diff --git a/test/CodeGen/ARM/call.ll b/test/CodeGen/ARM/call.ll index 890018396e..316cb548bb 100644 --- a/test/CodeGen/ARM/call.ll +++ b/test/CodeGen/ARM/call.ll @@ -2,9 +2,9 @@ void %f() { entry: call void %g( int 1, int 2, int 3, int 4 ) - call void %h() + call fastcc void %h() ret void } declare void %g(int, int, int, int) -declare void %h() +declare fastcc void %h() |