Hi,<div><br></div><div>Attached is an initial implementation of va_arg for X86-64 (against revision 115912).</div><div><br></div><div>It should work for all basic types. I have tested it on Linux only. </div><div><br></div>
<div>This is my first patch, I do not have commit access. I'd appreciate feedback regarding:</div><div><br></div><div>1) Code correctness (of course)</div><div>2) Strategies for testing this new feature</div><div>3) Whether the default expansion of VAARG is actually suitable for Win64.</div>
<div>4) Whether Darwin and Cygwin follow the same ABI.</div><div><br></div><div><div>Graphical code review is available at: <a href="http://codereview.chromium.org/3533017/show">http://codereview.chromium.org/3533017/show</a></div>
</div><div><br></div><div>In a day or two, I plan to send a patch for llvm-gcc which adds a flag to toggle direct emission of the va_arg() instruction.</div><div>(a feature written by Alan Donovan)</div><div><br></div><div>
Thanks,</div><div> - David M (<a href="mailto:pdox@google.com">pdox@google.com</a>)</div>