aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMichael Meissner <meissner@gcc.gnu.org>1992-09-15 18:44:07 +0000
committerMichael Meissner <meissner@gcc.gnu.org>1992-09-15 18:44:07 +0000
commite837539976653dbbdca9d1b94c0595c20dbc9a0e (patch)
treecd5c4dd41b7705d6fdb2ab74df8b37baad6ead48 /gcc
parent7436f435abe0acd250189907a0c310927d11bac6 (diff)
downloadgcc-e837539976653dbbdca9d1b94c0595c20dbc9a0e.zip
gcc-e837539976653dbbdca9d1b94c0595c20dbc9a0e.tar.gz
gcc-e837539976653dbbdca9d1b94c0595c20dbc9a0e.tar.bz2
Do cld before each string move/compare.
From-SVN: r2125
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/i386/i386.md4
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
index 3edce9f..6ba86cd 100644
--- a/gcc/config/i386/i386.md
+++ b/gcc/config/i386/i386.md
@@ -3912,6 +3912,7 @@
{
rtx xops[2];
+ output_asm_insn (\"cld\", operands);
if (GET_CODE (operands[2]) == CONST_INT)
{
if (INTVAL (operands[2]) & ~0x03)
@@ -3989,6 +3990,7 @@
label = gen_label_rtx ();
+ output_asm_insn (\"cld\", operands);
output_asm_insn (AS2 (xor%B0,%0,%0), operands);
output_asm_insn (\"repz\;cmps%B2\", operands);
output_asm_insn (\"je %l0\", &label);
@@ -4022,6 +4024,7 @@
xops[0] = gen_rtx (REG, QImode, 0);
xops[1] = CONST0_RTX (QImode);
+ output_asm_insn (\"cld\", operands);
output_asm_insn (AS2 (test%B0,%1,%0), xops);
return \"repz\;cmps%B2\";
}")
@@ -4183,6 +4186,7 @@
xops[0] = operands[0];
xops[1] = constm1_rtx;
+ output_asm_insn (\"cld\", operands);
output_asm_insn (AS2 (mov%L0,%1,%0), xops);
return \"repnz\;scas%B2\";
}")