http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58269
--- Comment #15 from Dominique d'Humieres <dominiq at lps dot ens.fr> --- (In reply to Iain Sandoe from comment #14) > assuming that the patch above is applied to deal with pr58139, Indeed! > Are you saying that: > - if (TARGET_MACHO) > - { > - if (SSE_REGNO_P (regno) && TARGET_SSE) > - return true; > - } > - else > - { > - if (TARGET_SSE && SSE_REGNO_P (regno) > - && (regno < FIRST_SSE_REG + SSE_REGPARM_MAX)) > - return true; > - } > + if (TARGET_SSE && SSE_REGNO_P (regno) > + && (regno < FIRST_SSE_REG + SSE_REGPARM_MAX)) > + return true; > gives a compare fail for you? No: I did not test it although the initial fix worked for me). The comparison failures occur with r202318 and the patch for pr58139 only. These failures are fixed by the patch --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -5708,7 +5708,8 @@ ix86_function_arg_regno_p (int regno) if (TARGET_MACHO) { - if (SSE_REGNO_P (regno) && TARGET_SSE) + if (SSE_REGNO_P (regno) && TARGET_SSE + && ! EXT_REX_SSE_REGNO_P (regno)) return true; } else from comment #6.