[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#95318: acknowledged by developer (Bug#95318: fixed in gcc-3.3 1:3.3ds9-1)



reopen 95318
quit

On Sat, May 17, 2003 at 04:51:59PM -0500, Debian Bug Tracking System wrote:
> This is an automatic notification regarding your Bug report
> #95318: [fixed on 3.3/HEAD: PR optimization/2962] unnecessary cwtl,
> which was filed against the gcc-3.2 package.
> 
> It has been closed by one of the developers, namely
> Matthias Klose <doko@debian.org>.

I appologise for all the reopening.  Be rest assured that your efforts
in gettings these issues addressed is most appreciated.

Unfortunately as in other cases this bug hasn't been addressed in
full by the upstream.  Although the cwtl instructions are gone, it has
been replaced by the equivalent mov?wl:

-- a.c --
#include <ctype.h>

int a(short i) {
	return i & 1;
}

int foo(int c) {
	return isdigit(c);
}
--

-- gcc -S -O2 a.c --
a:
	pushl	%ebp
	movl	%esp, %ebp
	movswl	8(%ebp),%eax
	andl	$1, %eax
	leave
	ret

...

foo:
	pushl	%ebp
	movl	%esp, %ebp
	subl	$8, %esp
	call	__ctype_b_loc
	movl	(%eax), %edx
	movl	8(%ebp), %eax
	movzwl	(%edx,%eax,2), %eax
	andl	$2048, %eax
	leave
	ret
	.size	foo, .-foo
	.ident	"GCC: (GNU) 3.3 20030509 (Debian prerelease)"

In both instances the extension (mov?wl) is unnecessary as
it is followed immediately by an and which zaps the high bits.
-- 
Debian GNU/Linux 3.0 is out! ( http://www.debian.org/ )
Email:  Herbert Xu ~{PmV>HI~} <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt



Reply to: