|
From: Bernhard H. <ber...@be...> - 2003-07-23 20:15:52
|
> So I understand that the mov command given above would not work, since it > never performs the read on the SFR. In my case I don't need the read, so > to avoid it I'll have to change the way my macro works. For the general > case though, wouldn't the following be correct? > > mov a,_P_Data ; Read the SFR into A > ; (or any register, if we can't trash A) > mov _P_Data,_main_response_1_1 ; Directly write the optimized result SDCC emits now exactly this code :-) There was a new iCode opcode DUMMY_READ_VOLATILE necessary. Code is generated with the mcs51 port and (may be buggy) with the ds390/400 port. For all other ports I need the help from the port maintainers (I speak neither z80 nor pic*). volatile-ness of operands are quite often not considered in SDCC :-( But with the help of the new op it should be easy to fix bug #663539. I've written a regression-test too. But it triggers one or two further bugs (could be connected with other reported problems), which I'm going to hunt now. Bernhard P.S.: Authentication is broken again on the compile farm. But they have added a 4 CPU opteron server with SuSe linux :-)) I started a build, but it didn't finish --- authentication was broken. I couldn't login again. Weired :-( |