[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