From owner-freebsd-current Mon Jun 3 20: 2:38 2002 Delivered-To: freebsd-current@freebsd.org Received: from cvsup.no.freebsd.org (c2h5oh.idi.ntnu.no [129.241.103.69]) by hub.freebsd.org (Postfix) with ESMTP id E634537B406; Mon, 3 Jun 2002 20:02:27 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by cvsup.no.freebsd.org (8.11.6/8.11.6) with ESMTP id g5432M315323; Tue, 4 Jun 2002 03:02:23 GMT (envelope-from tegge@cvsup.no.freebsd.org) To: bde@zeta.org.au Cc: obrien@FreeBSD.ORG, current@FreeBSD.ORG Subject: Re: memset() broken in gcc-3.1 on i386's In-Reply-To: <20020604110707.H1982-100000@gamplex.bde.org> References: <20020604084202.Q939-100000@gamplex.bde.org> <20020604110707.H1982-100000@gamplex.bde.org> Content-Type: Multipart/Mixed; boundary="--Next_Part(Tue_Jun__4_01:57:21_2002_809)--" Content-Transfer-Encoding: 7bit From: Tor.Egge@cvsup.no.freebsd.org X-Mailer: Mew version 1.94.2 on Emacs 20.7 / Mule 4.0 (HANANOEN) Mime-Version: 1.0 Message-Id: <20020604030221G.tegge@cvsup.no.freebsd.org> Date: Tue, 04 Jun 2002 03:02:21 GMT X-Dispatcher: imput version 20000228(IM140) Lines: 55 Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG ----Next_Part(Tue_Jun__4_01:57:21_2002_809)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit > Actually, it broke fsck_ffs. > > Workaround to avoid the known broken case: The brokenness in ix86_expand_clrstr is quite visible when you compare the function with ix86_expand_movstr. - Tor Egge ----Next_Part(Tue_Jun__4_01:57:21_2002_809)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=bug1 Index: contrib/gcc/config/i386/i386.c =================================================================== RCS file: /home/ncvs/src/contrib/gcc/config/i386/i386.c,v retrieving revision 1.9 diff -u -r1.9 i386.c --- contrib/gcc/config/i386/i386.c 9 May 2002 22:42:39 -0000 1.9 +++ contrib/gcc/config/i386/i386.c 4 Jun 2002 00:18:49 -0000 @@ -9432,7 +9432,7 @@ 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 @@ 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 @@ 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); ----Next_Part(Tue_Jun__4_01:57:21_2002_809)---- To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message