From: Gernot.Fink <Ger...@ne...> - 2001-10-02 19:01:58
|
This testprogramm generates correct code if the constant for testing is smaller as 127. If not then a Integer compare is generated instead a char. Version: SDCC : mcs51/gbz80/z80/avr/ds390/pic14/i186/tlcs900h 2.3.0 (Oct 2 2001) (UNIX) ----------------- #include <8051.h> volatile unsigned char t1,t2; main() { t2=P1; t1=(t2==127)?1:2; P2=t1; } ----------------------- generates 211 ; test.c 11 003B AA 31 212 mov r2,_t2 003D 7B 00 213 mov r3,#0x00 214 ; Peephole 132 changed ljmp to sjmp 215 ; Peephole 198 optimized misc jump sequence 003F BA 7F 07 216 cjne r2,#0x7F,00103$ 0042 BB 00 04 217 cjne r3,#0x00,00103$ 218 ;00106$: 219 ; Peephole 200 removed redundant sjmp 0045 220 00107$: 0045 7A 01 221 mov r2,#0x01 222 ; Peephole 132 changed ljmp to sjmp 0047 80 02 223 sjmp 00104$ 0049 224 00103$: 0049 7A 02 225 mov r2,#0x02 004B 226 00104$: 004B 8A 30 227 mov _t1,r2 228 ; test.c 14 004D 85 30 A0 229 mov _P2,_t1 -- MFG Gernot |