This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Extra (useless) instructions involving r7 and accumulator

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

Parents
  • What is an 'execution string'?
    just one more of the smoked sardines refusal to understand things that are not written in HIS vernacular. I do not know if the phrase 'execution string' is in his beloved C standard, but if sosmeone say 'car' I have no problem thinking 'automobile'.

    Maybe "instruction sequence"? yes, that would be another way to say it

    A hangman's noose, perhaps? :) :) :)

    Erik

Reply
  • What is an 'execution string'?
    just one more of the smoked sardines refusal to understand things that are not written in HIS vernacular. I do not know if the phrase 'execution string' is in his beloved C standard, but if sosmeone say 'car' I have no problem thinking 'automobile'.

    Maybe "instruction sequence"? yes, that would be another way to say it

    A hangman's noose, perhaps? :) :) :)

    Erik

Children
  • just one more of the smoked sardines refusal to understand things that are not written in HIS vernacular.

    Quite the opposite, actually. I'm trying my best to understand the things you write in your vernacular.

    I do not know if the phrase 'execution string' is in his beloved C standard, but if sosmeone say 'car' I have no problem thinking 'automobile'.

    No, the 'C' standard says nothing about 'execution strings'. However, this isn't a 'C' issue so I'm unclear why you bring the 'C' standard into the discussion.

    It is most commendable that you can translate between english and american, fortunately I am fairly proficient in that area as well. However, I do not speak 'Erik' very fluently so I asked for a translation which will allow me to understand the problem you have with optimisation of switch/case constructs.

    There are many advantages of using standard terminology in an engineering environment not least of which is the fact that others will actually understand what you are talking about. You are forever critical of others for using abbreviations that you don't understand, perhaps you could make the effort not to do the same.

    Maybe "instruction sequence"? yes, that would be another way to say it

    Ok, but how about telling us the correct way to say it?

  • I asked for a translation which will allow me to understand the problem you have with optimisation of switch/case constructs.
    do you actually want to help? that is a new one.
    my 'problem' I just hate inefficiencies, with the "switch/case constructs" is that you can not get it without the debugger killer (I can not tell you what that is till you answer the question below since I am dead tired of your nitpicking.

    'execution string' "instruction sequence"? ....
    Ok, but how about telling us the correct way to say it?

    if none of the above is 'correct' enough for you, then, instead of bitching, post what is 'correct' enough for you. I have no idea whatsoever what problem (besides a personal one) you have with either of the two expressions above.

    Erik

  • 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.

  • I have no idea whatsoever what problem (besides a personal one) you have with either of the two expressions above.

    If you really cannot see the problem with using incorrect terminology, take a look at this thread for an example of how a whole lot of people's time is wasted dealing with someone who obstinately refuses to use the correct terminology:

    http://www.keil.com/forum/docs/thread11754.asp

  • well, since I know of no terninology that will satisfy you I have to resort to examples. I am kind of uzzled what your problem is, many (e.g. Per) have undeerstood.

    if you have a function that ends like that
    void a (void)
    {
    w
    x
    y
    z
    }
    
    and another function that end like this
    void b (void)
    {
    p
    x
    y
    z
    

    the optimixer will, if you are more intersted in optimization than debuggability and select an optimization level reflecting that philosophy merge execution strings like this:

    void a (void)
    {
    w
    optimal:
    x
    y
    z
    }
    
    void b (void)
    {
    p
    goto optimal
    

    if x,y,z is too much for a sardines brain I give up, this will be my final att6epmt to make you understand what the common phrase "merging execution strings" mean

    Erik

  • I realize a miss above

    no, I am not 'uzzled', I am 'puzzled'

    Erik

  • this will be my final att6epmt to make you understand what the common phrase "merging execution strings" mean

    See my reply to you in this thread:

    http://www.keil.com/forum/docs/thread11754.asp#msg57841

  • and, as shown there, prove that what you say is just as much 'picking apart' nonesense as the reast of your utterings.

    Erik

    BTW I hope that bending it in neon with an example made it penetrate the fog in your brain.

  • Any chance you two would consider taking this discussion to another place? My original question has been answered to my satisfaction.

  • but I can't leave the public insults from the smoked sardine unsanswered.

    once he decides one of two
    a) to stop insulting me
    or
    b) come clean and not hide behing his mothers skirt as in using a pseudonym and thus made it possible to "take this discussion to another place" I'll gladly do so.

    so, it is up to him.

    Erik

  • This discussion isn't just held in this thread. There are a number of older threads drenched in similar posts.

  • "but I can't leave the public insults from the smoked sardine unsanswered."

    Of course you can!

    He only keeps winding you up because you keep reacting.

    If you just ignored him, he'd go away!

  • but I can't leave the public insults from the smoked sardine unsanswered.

    Actually, you can. Or you can settle for answering:
    "As you wish" or "Whatever you say".

  • but I can't leave the public insults from the smoked sardine unsanswered.

    I only correct your mistakes. If you find that insulting I suggest you either stop posting or pick up some documentation and educate yourself.

  • He only keeps winding you up because you keep reacting.

    If someone who should know better posts rubbish I will point it out. If you feel that my comments are inaccurate or unfair please feel free to criticise.