On Thu, Jul 21, 2011 at 10:14 PM, H.J. Lu wrote: > On Thu, Jul 21, 2011 at 5:36 PM, H.J. Lu wrote: >> On Thu, Jul 21, 2011 at 4:51 PM, Richard Henderson wrote: >>> On 07/21/2011 04:28 PM, H.J. Lu wrote: >>>> On Thu, Jul 21, 2011 at 3:05 PM, Richard Henderson wrote: >>>>> On 07/21/2011 03:02 PM, H.J. Lu wrote: >>>>>>       * config/i386/i386.c (function_value_64): Always return pointers >>>>>>       in Pmode. >>>>>>       (ix86_promote_function_mode): New. >>>>>>       (TARGET_PROMOTE_FUNCTION_MODE): Likewise. >>>>> >>>>> Much better, thanks. >>>>> >>>>> >>>>> r~ >>>>> >>>> >>>> Also need this patch.  Otherwise, I got >>>> >>>> FAIL: gcc.target/x86_64/abi/callabi/func-indirect-2a.c (internal compiler error) >>>> FAIL: gcc.target/x86_64/abi/callabi/func-indirect-2a.c (test for excess errors) >>>> FAIL: gcc.target/x86_64/abi/callabi/func-indirect-2b.c (internal compiler error) >>>> FAIL: gcc.target/x86_64/abi/callabi/func-indirect-2b.c (test for excess errors) >>>> >>>> OK for trunk? >>> >>> Hmm.  Should we even be running ms_64 callabi tests across pointer sizes though? >>> >> >> Good question.  I can disable the test.  But compiler will still ICE on this >> input. >> >> > > How about this patch?  OK for trunk? > Need to skip all ms_abi tests for x32. OK for trunk? Thanks. H.J. ---- gcc/ 2011-07-21 H.J. Lu * config/i386/i386.c (ix86_option_override_internal): Disallow MS ABI in x32 mode. (ix86_init_builtins): Call ix86_init_builtins_va_builtins_abi only for TARGET_LP64. (ix86_handle_abi_attribute): Check TARGET_LP64 instead of TARGET_64BIT. gcc/testsuite/ 2011-07-21 H.J. Lu * gcc/testsuite/gcc.target/i386/avx-vzeroupper-16.c: Only run on lp64 targets. * gcc/testsuite/gcc.target/i386/avx-vzeroupper-17.c: Likewise. * gcc/testsuite/gcc.target/i386/avx-vzeroupper-18.c: Likewise. * gcc/testsuite/gcc.target/i386/pr43662.c: Likewise. * gcc/testsuite/gcc.target/i386/pr43869.c: Likewise. * gcc.target/x86_64/abi/callabi/callabi.exp: Check ilp32 instead of ia32.