diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3f00fc44ae80..1bf13c0e796f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2003-10-22 Waldek Hebisch + + * config/i386/i386.c (classify_argument): Handle SET_TYPE. + 2003-10-22 Chris Demetriou * configure.in: In --enable-generated-files-in-srcdir option @@ -186,7 +190,7 @@ * tree.c (build1): Fix off-by-one error. -2003-09-28 Robert Millan +2003-10-21 Robert Millan * config/i386/kfreebsdgnu.h: New. i386-*-kfreebsd-gnu definitions. * config/kfreebsdgnu.h: New. *-*-kfreebsd-gnu definitions. diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index cfdc7d289516..a8b2ea7673bc 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -2080,6 +2080,31 @@ classify_argument (enum machine_mode mode, tree type, } } } + else if (TREE_CODE (type) == SET_TYPE) + { + if (bytes <= 4) + { + classes[0] = X86_64_INTEGERSI_CLASS; + return 1; + } + else if (bytes <= 8) + { + classes[0] = X86_64_INTEGER_CLASS; + return 1; + } + else if (bytes <= 12) + { + classes[0] = X86_64_INTEGER_CLASS; + classes[1] = X86_64_INTEGERSI_CLASS; + return 2; + } + else + { + classes[0] = X86_64_INTEGER_CLASS; + classes[1] = X86_64_INTEGER_CLASS; + return 2; + } + } else abort ();