Why would the following line in C:
XRAM00 |= 0x01;
compile into this:
mov dptr, #XRAM00 movx a, @dptr mov r7, a mov a, r7 orl a, #1 mov r7, a mov dptr, #XRAM00 mov a, r7 movx @dptr, a
I would have expected this:
mov dptr, #XRAM00 movx a, @dptr orl a, #1 movx @dptr, a
if none of the above is 'correct' enough for you, then, instead of bitching, post what is 'correct' enough for you.
I can't post what is correct because I don't know what you are trying to say. That is why I keep asking you to rephrase it in commonly accepted terminology.
This is what you said:
I wish Keil would make an optimize selection (number) that would remove the crap (no jmp@ for 'switch' and no infernal r7,a a,r7) without 'merging execution strings'.
It would appear that your expression 'merging execution strings' is a reference to some method of optimisation. What is it in commonly accepted terminology?
I have no idea whatsoever what problem (besides a personal one) you have with either of the two expressions above.
My problem is that I do not understand what 'merging execution strings' is supposed to mean. That is why I keep asking you to rephrase it in commonly accepted terminology.