<div><b style="font-family:'LiHei Pro';font-size:medium;font-weight:normal"><span style="font-size:15px;font-family:Arial;color:rgb(34,34,34);background-color:rgb(255,255,255);vertical-align:baseline;white-space:pre-wrap">Hi,</span></b></div>
<b id="internal-source-marker_0.3810556912794709" style="font-family:'LiHei Pro';font-size:medium;font-weight:normal"><span style="font-size:15px;font-family:Arial;color:rgb(34,34,34);background-color:rgb(255,255,255);vertical-align:baseline;white-space:pre-wrap"><div>
<b style="font-family:'LiHei Pro';font-size:medium;font-weight:normal"><span style="font-size:15px;font-family:Arial;color:rgb(34,34,34);background-color:rgb(255,255,255);vertical-align:baseline;white-space:pre-wrap"><br>
</span></b></div>This patch turns on VarArg function calls for ARMFastISel, and I only modified few lines of code in this patch, because variadic function calls use base standard calling convention to pass arguments and return results,</span><span style="font-size:13px;font-family:Arial;color:rgb(34,34,34);background-color:rgb(255,255,255);vertical-align:baseline;white-space:pre-wrap"> </span><span style="font-size:15px;font-family:Arial;color:rgb(34,34,34);background-color:rgb(255,255,255);vertical-align:baseline;white-space:pre-wrap">that means a variadic function call works as noraml function calls, all we need to do is to avoid using</span><span style="font-size:15px;color:rgb(34,34,34);background-color:rgb(255,255,255);vertical-align:baseline;white-space:pre-wrap"> </span><span style="font-size:15px;font-family:Arial;color:rgb(34,34,34);background-color:rgb(255,255,255);vertical-align:baseline;white-space:pre-wrap">co-processor registers to pass arguments and results, then variadic function calls will work well.</span><span style="font-size:15px;font-family:Arial;vertical-align:baseline;white-space:pre-wrap"></span><br>
<span style="font-size:15px;font-family:Arial;vertical-align:baseline;white-space:pre-wrap"></span><span style="font-size:15px;font-family:Arial;vertical-align:baseline;white-space:pre-wrap"></span><br><span style="font-size:15px;font-family:Arial;vertical-align:baseline;white-space:pre-wrap">I also update the test case “test/CodeGen/Thumb2/large-call.ll”, basically I just replace the “str” with “vstr” in this testcase,<b id="internal-source-marker_0.3810556912794709" style="white-space:normal;font-family:'LiHei Pro';font-size:medium;font-weight:normal"><span style="font-size:15px;font-family:Arial;vertical-align:baseline;white-space:pre-wrap"> becasue FastIsel uses vfp instructions to handle double precision FP arguments,</span></b> and I have run several tests on my arm ios device for large call.</span><br>
<span style="font-size:15px;font-family:Arial;vertical-align:baseline;white-space:pre-wrap"></span><br><span style="font-size:15px;font-family:Arial;vertical-align:baseline;white-space:pre-wrap">This patch will not give any compiler warning and it passes all test cases on my mac air and ubuntu desktop. Please review this patch, thanks.</span></b><div>
<br></div><div><b style="font-family:'LiHei Pro';font-size:medium;font-weight:normal"><span style="font-size:15px;font-family:Arial;vertical-align:baseline;white-space:pre-wrap">Jush</span></b></div>