diff options
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/i386/i386.c | 5 |
2 files changed, 9 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 7cd55d3..11aaa96 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2004-08-07 H.J. Lu <hongjiu.lu@intel.com> + + * config/i386/i386.c (ix86_expand_clrmem): Properly call + gen_strset for 64bit target. + 2004-08-07 Olivier Hainque <hainque@act-europe.fr> * config/vxworks.h (HANDLE_SYSV_PRAGMA): Remove definition. diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 9515734..e1e2027 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -11569,7 +11569,10 @@ ix86_expand_clrmem (rtx dst, rtx count_exp, rtx align_exp) rtx mem = adjust_automodify_address_nv (dst, GET_MODE (zeroreg), destreg, offset); - emit_insn (gen_strset (destreg, mem, zeroreg)); + emit_insn (gen_strset (destreg, mem, + (TARGET_64BIT + ? gen_rtx_SUBREG (SImode, zeroreg, 0) + : zeroreg))); offset += size; } else |