i386.c (classify_argument): Handle SET_TYPE.
authorWaldek Hebisch <hebisch@math.uni.wroc.pl>
Thu, 23 Oct 2003 08:03:13 +0000 (10:03 +0200)
committerAndreas Jaeger <aj@gcc.gnu.org>
Thu, 23 Oct 2003 08:03:13 +0000 (10:03 +0200)
2003-10-22  Waldek Hebisch <hebisch@math.uni.wroc.pl>

* config/i386/i386.c (classify_argument): Handle SET_TYPE.

[[Split portion of a mixed commit.]]

From-SVN: r72838.2

gcc/ChangeLog
gcc/config/i386/i386.c

index 3f00fc44ae80e5b4386aafd9aac378a4fe5b70de..1bf13c0e796f7bc29d10b098923f9eb5825d2ff5 100644 (file)
@@ -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
 
        * 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.
index cfdc7d2895169ffec209784b000e0474d2eb4c3a..a8b2ea7673bc2bc7e7b10c8fe222ee61ccaf0dff 100644 (file)
@@ -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 ();