<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Jush,<div><div><div><br></div><div><div>   case CallingConv::ARM_AAPCS_VFP:</div><div>-    return (Return ? RetCC_ARM_AAPCS_VFP: CC_ARM_AAPCS_VFP);</div><div>+    if (!isVarArg)</div><div>+      return (Return ? RetCC_ARM_AAPCS_VFP: CC_ARM_AAPCS_VFP);</div><div>   case CallingConv::ARM_AAPCS:</div><div>     return (Return ? RetCC_ARM_AAPCS: CC_ARM_AAPCS);</div></div><div><br></div><div>Possibly add a comment that this fall-thru is intentional with comments as to why.</div><div><br></div><div>Otherwise, LGTM.</div><div><br></div><div> Chad</div><div><br></div><div><br></div><div>On Jul 17, 2012, at 6:39 PM, Jush Lu wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><br>Ping??<div><br></div><div>I attach the same patch again, and you can find what this patch does from previous email copy below. Thanks.</div><div><br><div class="gmail_quote">On Wed, Jul 11, 2012 at 9:02 PM, Jush Lu <span dir="ltr"><<a href="mailto:jush.msn@gmail.com" target="_blank">jush.msn@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><b style="font-family:'LiHei Pro';font-size:medium;font-weight:normal"><span style="vertical-align:baseline;color:rgb(34,34,34);font-size:15px;white-space:pre-wrap;font-family:Arial">Hi,</span></b></div>

<b style="font-family:'LiHei Pro';font-size:medium;font-weight:normal"><span style="vertical-align:baseline;color:rgb(34,34,34);font-size:15px;white-space:pre-wrap;font-family:Arial"><div>
<b style="font-family:'LiHei Pro';font-size:medium;font-weight:normal"><span style="vertical-align:baseline;color:rgb(34,34,34);font-size:15px;white-space:pre-wrap;font-family:Arial"><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="vertical-align:baseline;color:rgb(34,34,34);font-size:13px;white-space:pre-wrap;font-family:Arial"> </span><span style="vertical-align:baseline;color:rgb(34,34,34);font-size:15px;white-space:pre-wrap;font-family:Arial">that means a variadic function call works as noraml function calls, all we need to do is to avoid using</span><span style="vertical-align:baseline;color:rgb(34,34,34);font-size:15px;white-space:pre-wrap"> </span><span style="vertical-align:baseline;color:rgb(34,34,34);font-size:15px;white-space:pre-wrap;font-family:Arial">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 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><span class="HOEnZb"><font color="#888888"><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>
</font></span></blockquote></div><br></div>
<span><fast-isel-vararg.patch></span>_______________________________________________<br>llvm-commits mailing list<br><a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits<br></blockquote></div><br></div></body></html>