Please send this bug report to the SDCC bug tracker instead of informing the users of it. The users can/will not fix it and the developers, if they happen to see it, will forget it.
http://sourceforge.net/tracker/?group_id=599&atid=100599 Maarten > SDCC revision 7520 > > ;-------------------------------------------------------- > ; File Created by SDCC : free open source ANSI-C Compiler > ; Version 3.1.4 #7520 (Mar 31 2012) (MINGW32) > ; This file was generated Fri Apr 06 04:20:22 2012 > ;-------------------------------------------------------- > .module I2C_DBGN > .optsdcc -mmcs51 --model-small > > Source code: > > void Compl8b (__idata U8 *p8) //__reentrant > { > *p8 = ~(*p8); > p8++; > *p8 = ~(*p8); > p8++; > *p8 = ~(*p8); > p8++; > *p8 = ~(*p8); > p8++; > (*(p8)) = ~(*(p8)); > p8++; > (*(p8)) = ~(*(p8)); > p8++; > (*(p8)) = ~(*(p8)); > p8++; > (*(p8)) = ~(*(p8)); > p8++; > } > > Asm output: > NO variable load after pointer changes!! > See below: > > ;------------------------------------------------------------ > ;Allocation info for local variables in function 'Compl8b' > ;------------------------------------------------------------ > ;p8 Allocated to registers r1 > ;------------------------------------------------------------ > G$Compl8b$0$0 ==. > C$I2C_DBGN.c$4746$1$439 ==. > ; C:\\PC104_T1\\I2C_DBGN.c:4746: void Compl8b (__idata U8 *p8) > //__reentrant > ; ----------------------------------------- > ; function Compl8b > ; ----------------------------------------- > _Compl8b: > push ar7 > push ar1 > mov r1,dpl > C$I2C_DBGN.c$4748$1$446 ==. > ; C:\\PC104_T1\\I2C_DBGN.c:4748: *p8 = ~(*p8); > mov a,@r1 > cpl a > mov r7,a > mov @r1,a > inc r1 > C$I2C_DBGN.c$4749$1$446 ==. > ; C:\\PC104_T1\\I2C_DBGN.c:4749: p8++; > C$I2C_DBGN.c$4750$1$446 ==. > ; C:\\PC104_T1\\I2C_DBGN.c:4750: *p8 = ~(*p8); > mov a,r7 > cpl a > mov r7,a > mov @r1,a > inc r1 > C$I2C_DBGN.c$4751$1$446 ==. > ; C:\\PC104_T1\\I2C_DBGN.c:4751: p8++; > C$I2C_DBGN.c$4752$1$446 ==. > ; C:\\PC104_T1\\I2C_DBGN.c:4752: *p8 = ~(*p8); > mov a,r7 > cpl a > mov r7,a > mov @r1,a > inc r1 > C$I2C_DBGN.c$4753$1$446 ==. > ; C:\\PC104_T1\\I2C_DBGN.c:4753: p8++; > C$I2C_DBGN.c$4754$1$446 ==. > ; C:\\PC104_T1\\I2C_DBGN.c:4754: *p8 = ~(*p8); > mov a,r7 > cpl a > mov r7,a > mov @r1,a > inc r1 > C$I2C_DBGN.c$4755$1$446 ==. > ; C:\\PC104_T1\\I2C_DBGN.c:4755: p8++; > C$I2C_DBGN.c$4756$1$446 ==. > ; C:\\PC104_T1\\I2C_DBGN.c:4756: (*(p8)) = ~(*(p8)); > mov a,r7 > cpl a > mov r7,a > mov @r1,a > inc r1 > C$I2C_DBGN.c$4757$1$446 ==. > ; C:\\PC104_T1\\I2C_DBGN.c:4757: p8++; > C$I2C_DBGN.c$4758$1$446 ==. > ; C:\\PC104_T1\\I2C_DBGN.c:4758: (*(p8)) = ~(*(p8)); > mov a,r7 > cpl a > mov r7,a > mov @r1,a > inc r1 > C$I2C_DBGN.c$4759$1$446 ==. > ; C:\\PC104_T1\\I2C_DBGN.c:4759: p8++; > C$I2C_DBGN.c$4760$1$446 ==. > ; C:\\PC104_T1\\I2C_DBGN.c:4760: (*(p8)) = ~(*(p8)); > mov a,r7 > cpl a > mov r7,a > mov @r1,a > inc r1 > C$I2C_DBGN.c$4761$1$446 ==. > ; C:\\PC104_T1\\I2C_DBGN.c:4761: p8++; > C$I2C_DBGN.c$4762$1$446 ==. > ; C:\\PC104_T1\\I2C_DBGN.c:4762: (*(p8)) = ~(*(p8)); > mov a,r7 > cpl a > mov @r1,a > C$I2C_DBGN.c$4763$1$446 ==. > ; C:\\PC104_T1\\I2C_DBGN.c:4763: p8++; > pop ar1 > pop ar7 > C$I2C_DBGN.c$4764$1$446 ==. > XG$Compl8b$0$0 ==. > ret > ; eliminated unneeded push/pop ar0 > > ------------------------------------------------------------------------------ > Better than sec? Nothing is better than sec when it comes to > monitoring Big Data applications. Try Boundary one-second > resolution app monitoring today. Free. > http://p.sf.net/sfu/Boundary-dev2dev > _______________________________________________ > Sdcc-user mailing list > Sdcc-user@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/sdcc-user > > ------------------------------------------------------------------------------ Better than sec? Nothing is better than sec when it comes to monitoring Big Data applications. Try Boundary one-second resolution app monitoring today. Free. http://p.sf.net/sfu/Boundary-dev2dev _______________________________________________ Sdcc-user mailing list Sdcc-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/sdcc-user