<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div>Hi Oliver,</div><div><br></div><div>I'm moving your patch to the correct list (llvm-commits, not cfe-commits) and re-attaching the patch, for other reviews.</div>
<div><br></div></div><div class="gmail_quote"><br></div><div class="gmail_quote">On 16 January 2014 09:57, Oliver Stannard <span dir="ltr"><<a href="mailto:oliver.stannard@arm.com" target="_blank">oliver.stannard@arm.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">However, clang currently does not do the necessary transformation<br>

to return the result in memory when using the AAPCS-VFP calling convention,<br>
and when the struct is a homogeneous aggregate of floating-point types.<br></blockquote><div><br></div><div>Nice catch! The patch looks good to me as it is, and I agree it's very important to fix this variadic bug, but I have a question regarding the ABI:</div>
<div><br></div><div><div>6.1.2.2 Result return</div><div>Any result whose type would satisfy the conditions for a VFP CPRC is returned in the appropriate number of</div><div>consecutive VFP registers starting with the lowest numbered register (s0, d0, q0).</div>
</div><div><br></div><div>A VFP CPRC (as per 6.1.2.1), has some restriction on sizes like: "A Homogeneous Aggregate with a Base Type of a single- or double-precision floating-point type with one to</div><div>four Elements.". Will the direct approach here account for that? Will it check the number of elements and revert to the base standard when more than 4?</div>
<div><br></div><div>If not, I agree a fix would not be part of this patch, so in all cases, this specific patch looks good.</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
Note, that this change will<br>
break ABI backwards-compatibility with previous versions of clang/llvm.<br></blockquote><div></div></div><br></div><div class="gmail_extra">That's ok, we're in between releases, that's what we do! ;)</div><div class="gmail_extra">
<br></div><div class="gmail_extra">cheers,</div><div class="gmail_extra">--renato</div></div>