[cfe-commits] r116696 - in /cfe/trunk: lib/CodeGen/TargetInfo.cpp test/CodeGen/x86_32-arguments-darwin.c test/CodeGen/x86_32-arguments-linux.c
Bill Wendling
isanbard at gmail.com
Mon Oct 18 16:53:36 PDT 2010
On Oct 18, 2010, at 4:48 PM, Daniel Dunbar wrote:
> On Mon, Oct 18, 2010 at 4:42 PM, Bill Wendling <isanbard at gmail.com> wrote:
>> On Oct 18, 2010, at 4:16 PM, Daniel Dunbar wrote:
>>
>>>> // AMD64-ABI 3.2.3p3: If there are no registers available for any
>>>> // eightbyte of an argument, the whole argument is passed on the
>>>> // stack. If registers have already been assigned for some
>>>> // eightbytes of such an argument, the assignments get reverted.
>>>> - if (freeIntRegs >= neededInt && freeSSERegs >= neededSSE) {
>>>> + if (freeIntRegs >= neededInt && freeSSERegs >= neededSSE &&
>>>> + freeMMXRegs >= neededMMX) {
>
> The problem is here, the SSE and MMX counts need to be the same so we
> stop using registers when we exceed 8 combined, not 8 of either.
>
Ah ha! Fair enough. Fixed in r116772. :)
Thanks!
-bw
More information about the cfe-commits
mailing list