This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

possible regression... where to look at?


Fellows,

I moved my port from 3.2 to 3.4 and found the following:

for the code given:

uint16_t a;
void f()
{
	if(a & 8) gettt();
}

gcc-3.4-20040310 produces something like:

move a, reg
reg >>= 1
reg >>= 1
reg >>= 1
reg = reg & 1 (this sets bit C if result is not zero)
if C then gettt()
return

Which enlarges result code, etc.
gcc-3.2.X did it the way:

move a,reg
reg = reg & 8
if C then gettt()
return

So, the question is:
Is it general gcc-3.4 regression or I have to define something extra?

Thanks in advance,
Dmitry.




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]