egcs-19990907 on i686 generates invalid assembly
Horst von Brand
vonbrand@inf.utfsm.cl
Thu Sep 9 06:34:00 GMT 1999
/*
* egcs-19990907 -O2 -fomit-frame-pointer -march=i686
*
* A "salb $4, %esi" instruction is generated, which is clearly invalid
* (%esi isn't a byte register). The original case (out of linux-2.3.16)
* gave a "salb $4, %edi"
*
* binutils-2.9.5.0.11, linux
*
* egcs-19990830 doesn't do this.
*/
int f()
{
unsigned char hrs, min;
min = ((min / 10) << 4) + min % 10;
hrs = ((hrs / 10) << 4) + hrs % 10;
return hrs + min;
}
--
Dr. Horst H. von Brand mailto:vonbrand@inf.utfsm.cl
Departamento de Informatica Fono: +56 32 654431
Universidad Tecnica Federico Santa Maria +56 32 654239
Casilla 110-V, Valparaiso, Chile Fax: +56 32 797513
More information about the Gcc-bugs
mailing list