[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