From: SourceForge.net <no...@so...> - 2003-12-17 11:39:03
|
Bugs item #861580, was opened at 2003-12-17 12:39 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100599&aid=861580&group_id=599 Category: None Group: None Status: Open Resolution: None Priority: 5 Submitted By: Jarek Zych (zych) Assigned to: Nobody/Anonymous (nobody) Summary: unnecessary "mov a,_i" Initial Comment: volatile unsigned char i; void external0_isr(void) interrupt 0 { i++; } If you use volatile keyword, compiler generates unnecessary "mov a,_i" instruction. ("++i" do OK!) _external0_isr: push acc push b push dpl push dph push psw mov psw,#0x00 ;test.c:17: i++; ; genDummyRead mov a,_i <<<<<!!!!! ; genPlus ; genPlusIncr inc _i 00101$: pop psw pop dph pop dpl pop b pop acc reti SDCC : mcs51/gbz80/z80/avr/ds390/pic16/pic14/TININative/xa51 /ds400/hc08 2.3.6 (Dec 13 2003) (MINGW32) ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100599&aid=861580&group_id=599 |
From: SourceForge.net <no...@so...> - 2003-12-20 07:23:02
|
Bugs item #861580, was opened at 2003-12-17 05:39 Message generated for change (Comment added) made by epetrich You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100599&aid=861580&group_id=599 Category: None >Group: fixed >Status: Closed >Resolution: Fixed Priority: 5 Submitted By: Jarek Zych (zych) >Assigned to: Erik Petrich (epetrich) Summary: unnecessary "mov a,_i" Initial Comment: volatile unsigned char i; void external0_isr(void) interrupt 0 { i++; } If you use volatile keyword, compiler generates unnecessary "mov a,_i" instruction. ("++i" do OK!) _external0_isr: push acc push b push dpl push dph push psw mov psw,#0x00 ;test.c:17: i++; ; genDummyRead mov a,_i <<<<<!!!!! ; genPlus ; genPlusIncr inc _i 00101$: pop psw pop dph pop dpl pop b pop acc reti SDCC : mcs51/gbz80/z80/avr/ds390/pic16/pic14/TININative/xa51 /ds400/hc08 2.3.6 (Dec 13 2003) (MINGW32) ---------------------------------------------------------------------- >Comment By: Erik Petrich (epetrich) Date: 2003-12-20 01:22 Message: Logged In: YES user_id=635249 Fixed; see ChangeLog 1.540 for the list of files updated. This was rather tricky to fix since y=x++; is very nearly the same as y=x; ++x; ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100599&aid=861580&group_id=599 |