From: Kai V. <volkmar@s.netic.de> - 2000-09-06 09:50:54
|
Michael Schmitt wrote (shortened): > ... > I quick view into the lst file shows that the sjmp is now a ljmp. > > so could it be that > 0764 80 81 2215 sjmp 00179$ > 07E7 2283 00179$: > is wrong ? > 0x7E7-0x764 - 2byte code = 0x81 > but doesn't 0x81 mean a jump backwards to 0x6E3 or so ? this would > explain something ? > i am not shure but i thought that it is only possible to do a short jump > -128 .. +127 > and 0x81 is negative .... > > Ah, one last thing to mention. The sdcc-built is the same as the one i > have sent to the OKR. i made it from the cvs sources august 28. But > earlier versions also showed that. > > Dipl.-Ing. (FH) Michael Schmitt > Baumer Ident GmbH > Entwicklung / Development Department > Hertzstr. 10 > D-69469 Weinheim > Deutschland / Germany > Tel. +49 (0) 6201 9957 - 30 > Fax. +49 (0) 6201 9957 - 99 > E-Mail : msc...@ba... > Web: http://www.baumerident.com > _______________________________________________ > Sdcc-user mailing list > Sdc...@li... > http://lists.sourceforge.net/mailman/listinfo/sdcc-user Hi Michael, of course you're right. Because the 8051 SJMP instruction is of the 2 bytes (1 operand) type, it won't allow jumps wider than the -128...127 bytes range. Maybe it's easy to find the bug in the optimizer rules. Kai |