Hi,
If I compile the following code for coldfire:
int foo(int a)
{
if(a >> 3)
return 10;
else
return 100;
}
the output with -O2 or -O3 optimization is:
00000000 <foo>:
0: 4e56 0000 linkw %fp,#0
4: 202e 0008 movel %fp@(8),%d0
8: e680 asrl #3,%d0
a: 4a80 tstl %d0
c: 6608 bnes 16 <foo+0x16>
e: 4e5e unlk %fp
10: 103c 0064 moveb #100,%d0
14: 4e75 rts
16: 4e5e unlk %fp
18: 700a moveq #10,%d0
1a: 4e75 rts
In Coldfire RM it says that zero flag is set by asrl if the result is 0,
so "tstl %d0" is not necessary, right ?
In 68020 the result is the same, but I could not find the 680x0 RM manual.
thank you,
Alex Prado