[Bug target/39678] complex type isn't passed correctly

hjl dot tools at gmail dot com gcc-bugzilla@gcc.gnu.org
Thu Apr 9 04:43:00 GMT 2009



------- Comment #27 from hjl dot tools at gmail dot com  2009-04-09 04:43 -------
I think this one is better:

Index: i386.c
===================================================================
--- i386.c      (revision 145733)
+++ i386.c      (working copy)
@@ -5273,7 +5273,13 @@ classify_argument (enum machine_mode mod
       return 2;
     case SCmode:
       classes[0] = X86_64_SSE_CLASS;
-      return 1;
+      if (!(bit_offset % 64))
+       return 1;
+      else
+       {
+         classes[1] = X86_64_SSESF_CLASS;
+         return 2;
+       }
     case DCmode:
       classes[0] = X86_64_SSEDF_CLASS;
       classes[1] = X86_64_SSEDF_CLASS;


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39678



More information about the Gcc-bugs mailing list