From e0f55604fa960f4929eab84a644b24461f5e8f84 Mon Sep 17 00:00:00 2001 From: Andreas Jaeger Date: Thu, 23 Oct 2003 08:03:13 +0000 Subject: 2003-10-22 Waldek Hebisch * config/i386/i386.c (classify_argument): Handle SET_TYPE. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@72838 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 6 +++++- gcc/config/i386/i386.c | 25 +++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3f00fc44ae8..1bf13c0e796 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 cfdc7d28951..a8b2ea7673b 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 (); -- cgit v1.2.3