The code generated now looks okay to me.
This is the correct behaviour , the pointer itself is help in registers
since it is parameter. The *pointer is evaluated in every iteration.
[mailto:sdcc-devel-admin@... Behalf Of Johan Knol
Sent: Sunday, March 25, 2001 8:56 AM
Subject: [sdcc-devel]Fixed: [ sdcc-Bugs-221220 ] Incorrect caching of
Sandeep fixed this bug in SDCCcse.c:1.19 but for some reasons it was still
there. I did this the hard way in SDCCloop.c:loopInvariants(), because I
still don't understand the applyToSet() issue.
Can some one please fill me in on that.
> >Comment By: David A. Long (dalong)
> Date: 2001-03-24 12:44
> Logged In: YES
> I developed the following reproducer:
> extern void pqr(void);
> xyz(xdata char *x)
> The generated code still has the contents of location "x"
> cached in a register inside the loop. If pqr() happens to
> alter the contents of "x", it will never be noticed by the
> while condition code. I just repeated this experiment with
> a compiler built from the CVS sources of March 24, 2001 and
> I got the same results.
sdcc-devel mailing list