diff options
| author | kenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-03-08 11:33:06 +0000 |
|---|---|---|
| committer | kenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-03-08 11:33:06 +0000 |
| commit | fd64c958d4cf6a1d19e722dc68035f0123c0fabb (patch) | |
| tree | e28070fb5ceba6e11101207122fd86a579e3c764 | |
| parent | 53ed7b4e1a31a69155befad9ba89d846bc920251 (diff) | |
| download | ppe42-gcc-fd64c958d4cf6a1d19e722dc68035f0123c0fabb.tar.gz ppe42-gcc-fd64c958d4cf6a1d19e722dc68035f0123c0fabb.zip | |
* config/i386/i386.md (clrstrsi): Call ix86_set_move_mem_attrs.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@40319 138bc75d-0d04-0410-961f-82ee72b054a4
| -rw-r--r-- | gcc/ChangeLog | 4 | ||||
| -rw-r--r-- | gcc/config/i386/i386.md | 19 |
2 files changed, 20 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0adc8659d88..d8bb57772b8 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +Thu Mar 8 06:32:50 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + + * config/i386/i386.md (clrstrsi): Call ix86_set_move_mem_attrs. + 2001-03-08 Alexandre Oliva <aoliva@redhat.com> * configure.in (enable_shared): Support per-package shared-library diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index 43b007d27f9..3a2a09abeb5 100644 --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -11506,6 +11506,9 @@ rtx destreg, zeroreg, countreg; int align = 0; int count = -1; + rtx insns; + + start_sequence (); if (GET_CODE (operands[2]) == CONST_INT) align = INTVAL (operands[2]); @@ -11519,7 +11522,7 @@ destreg = copy_to_mode_reg (Pmode, XEXP (operands[0], 0)); - emit_insn (gen_cld()); + emit_insn (gen_cld ()); /* When optimizing for size emit simple rep ; movsb instruction for counts not divisible by 4. */ @@ -11562,10 +11565,13 @@ library version, since it is usually equally fast and result in shorter code. */ if (!TARGET_INLINE_ALL_STRINGOPS && align < 4) - FAIL; + { + end_sequence (); + FAIL; + } if (TARGET_SINGLE_STRINGOP) - emit_insn (gen_cld()); + emit_insn (gen_cld ()); countreg2 = gen_reg_rtx (SImode); countreg = copy_to_mode_reg (SImode, operands[1]); @@ -11659,6 +11665,13 @@ LABEL_NUSES (label) = 1; } } + + insns = get_insns (); + end_sequence (); + + ix86_set_move_mem_attrs (insns, operands[0], operands[0], destreg, destreg); + emit_insns (insns); + DONE; }") |

