On Mon, Feb 04, 2013 at 02:38:23PM +0100, Kai Tietz wrote: > Tested for x86_64-w64-mingw32, and for x86_64-unknown-linux-gnu. Ok for > apply?
Please make sure to also test with a 4.7 based compiler (assuming it is gcc47 and g++47) using make check ALT_CC_UNDER_TEST=gcc47 ALT_CXX_UNDER_TEST=g++47 RUNTESTFLAGS='compat.exp struct-layout-1.exp' > > Index: i386.c > =================================================================== > --- i386.c (Revision 195572) > +++ i386.c (Arbeitskopie) > @@ -7324,7 +7324,8 @@ function_value_64 (enum machine_mode orig_mode, en > } > > static rtx > -function_value_ms_64 (enum machine_mode orig_mode, enum machine_mode mode) > +function_value_ms_64 (enum machine_mode orig_mode, enum machine_mode mode, > + const_tree valtype) > { > unsigned int regno = AX_REG; > > @@ -7333,6 +7334,12 @@ static rtx > switch (GET_MODE_SIZE (mode)) > { > case 16: > + if (valtype != NULL_TREE > + && !VECTOR_INTEGER_TYPE_P (valtype) > + && !VECTOR_INTEGER_TYPE_P (valtype) Wrong whitespace above (spaces instead of tabs)? > + && !INTEGRAL_TYPE_P (valtype) > + && !VECTOR_FLOAT_TYPE_P (valtype)) > + break; > if((SCALAR_INT_MODE_P (mode) || VECTOR_MODE_P (mode)) > && !COMPLEX_MODE_P (mode)) > regno = FIRST_SSE_REG; Jakub