------- Comment #24 from hjl dot tools at gmail dot com 2009-02-18 21:24
-------
I tried:
--- config/i386/i386.h.zero 2009-02-18 08:42:40.000000000 -0800
+++ config/i386/i386.h 2009-02-18 13:16:26.000000000 -0800
@@ -1940,6 +1940,11 @@ do {
\
is done just by pretending it is already truncated. */
#define TRULY_NOOP_TRUNCATION(OUTPREC, INPREC) 1
+/* When in 64-bit mode, move insns will zero extend SImode. All other
+ references are unknown. */
+#define LOAD_EXTEND_OP(MODE) \
+ (TARGET_64BIT && (MODE) == SImode ? ZERO_EXTEND : UNKNOWN)
+
/* A macro to update M and UNSIGNEDP when an object whose type is
TYPE and which has the specified mode and signedness is to be
stored in a register. This macro is only called when TYPE is a
It makes no differences.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17387