summaryrefslogtreecommitdiffstats
path: root/contrib/gcc/config
diff options
context:
space:
mode:
authorobrien <obrien@FreeBSD.org>2002-06-04 18:06:12 +0000
committerobrien <obrien@FreeBSD.org>2002-06-04 18:06:12 +0000
commit6e1cb4b9ca472385e0ca2b0a8ab04197cb897b97 (patch)
tree0d9c4507e16c4eb1b43531022cee7a5a5cff2939 /contrib/gcc/config
parentd047bea9fd8a46067c6343b55baba16ef0b809c5 (diff)
downloadFreeBSD-src-6e1cb4b9ca472385e0ca2b0a8ab04197cb897b97.zip
FreeBSD-src-6e1cb4b9ca472385e0ca2b0a8ab04197cb897b97.tar.gz
The brokenness in ix86_expand_clrstr is quite visible when you
compare the function with ix86_expand_movstr. Submitted by: Tor Egge
Diffstat (limited to 'contrib/gcc/config')
-rw-r--r--contrib/gcc/config/i386/i386.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/contrib/gcc/config/i386/i386.c b/contrib/gcc/config/i386/i386.c
index 543c747..a593221 100644
--- a/contrib/gcc/config/i386/i386.c
+++ b/contrib/gcc/config/i386/i386.c
@@ -9432,7 +9432,7 @@ ix86_expand_clrstr (src, count_exp, align_exp)
gen_rtx_SUBREG (SImode, zeroreg, 0)));
if (TARGET_64BIT && (align <= 4 || count == 0))
{
- rtx label = ix86_expand_aligntest (destreg, 2);
+ rtx label = ix86_expand_aligntest (countreg, 4);
emit_insn (gen_strsetsi (destreg,
gen_rtx_SUBREG (SImode, zeroreg, 0)));
emit_label (label);
@@ -9443,7 +9443,7 @@ ix86_expand_clrstr (src, count_exp, align_exp)
gen_rtx_SUBREG (HImode, zeroreg, 0)));
if (align <= 2 || count == 0)
{
- rtx label = ix86_expand_aligntest (destreg, 2);
+ rtx label = ix86_expand_aligntest (countreg, 2);
emit_insn (gen_strsethi (destreg,
gen_rtx_SUBREG (HImode, zeroreg, 0)));
emit_label (label);
@@ -9454,7 +9454,7 @@ ix86_expand_clrstr (src, count_exp, align_exp)
gen_rtx_SUBREG (QImode, zeroreg, 0)));
if (align <= 1 || count == 0)
{
- rtx label = ix86_expand_aligntest (destreg, 1);
+ rtx label = ix86_expand_aligntest (countreg, 1);
emit_insn (gen_strsetqi (destreg,
gen_rtx_SUBREG (QImode, zeroreg, 0)));
emit_label (label);
OpenPOWER on IntegriCloud