------- 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