diff options
author | obrien <obrien@FreeBSD.org> | 2002-06-04 18:06:12 +0000 |
---|---|---|
committer | obrien <obrien@FreeBSD.org> | 2002-06-04 18:06:12 +0000 |
commit | 6e1cb4b9ca472385e0ca2b0a8ab04197cb897b97 (patch) | |
tree | 0d9c4507e16c4eb1b43531022cee7a5a5cff2939 /contrib/gcc | |
parent | d047bea9fd8a46067c6343b55baba16ef0b809c5 (diff) | |
download | FreeBSD-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')
-rw-r--r-- | contrib/gcc/config/i386/i386.c | 6 |
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); |