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: