aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Jaeger <aj@suse.de>2003-10-23 08:03:13 +0000
committerAndreas Jaeger <aj@suse.de>2003-10-23 08:03:13 +0000
commite0f55604fa960f4929eab84a644b24461f5e8f84 (patch)
tree3ef9b0ddadb1e1b58a572d2d811d7aa9bfe2b789
parented1e9ddc5173984472bd2bfbdd407b81a300b300 (diff)
2003-10-22 Waldek Hebisch <hebisch@math.uni.wroc.pl>
* 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
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/i386/i386.c25
2 files changed, 30 insertions, 1 deletions
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 <hebisch@math.uni.wroc.pl>
+
+ * config/i386/i386.c (classify_argument): Handle SET_TYPE.
+
2003-10-22 Chris Demetriou <cgd@broadcom.com>
* 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 <robertmh@gnu.org>
+2003-10-21 Robert Millan <robertmh@gnu.org>
* 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 ();