http://troosh.livejournal.com/ ([identity profile] troosh.livejournal.com) wrote in [personal profile] vak 2008-02-12 08:22 am (UTC)

На E3M получается такой код:
0014<0000d0> HS    a0800412 M_d0:
             ALS3  e405c005  ldgdb,3,sm [ %b[5] + 0 ], %b[5]
             ALS5  90060706  adds,5,sm %b[6], %b[7], %b[6]
             ALES  01c00000
0015<0000e0> HS    80000401 :
             ALS5  9406cd08  scls,5,sm %b[6], 13, %b[8]
0016<0000e8> HS    e0001424 :
             SS    806f04a0  ct %ctpr1 ? #NOT_LOOP_END
                             abn abnf=1, abnt=1
                             abp abpf=1, abpt=1
                             alc alcf=1, alct=1
             ALS3  9003c101  adds,3,sm %b[3], 1, %b[1]
             ALS4  90c00303  adds,4,sm 0, %b[3], %b[3]
             ALS5  92060804  subs,5,sm %b[6], %b[8], %b[4]
             ----  00000000
Если компилировать с профилированием или указать перед циклом "#pragma loop count(1000)", то начинает применяться APB (array prefetch buffer):
0014<000218> HS    80000401 M_218:
             ALS5  90060505  adds,5,sm %b[6], %b[5], %b[5]
0015<000220> HS    80001412 :
             SS    80002000
             ALS5  9405cd07  scls,5,sm %b[5], 13, %b[7]
             AAS   00011001  movab,1 area = 0, ind = 0, am = 1, be = 0, %db[1]
0016<000230> HS    80011412 :
             SS    806f04a0  ct %ctpr1 ? #NOT_LOOP_END
                             abn abnf=1, abnt=1
                             abp abpf=1, abpt=1
                             alc alcf=1, alct=1
             ALS5  92050704  subs,5,sm %b[5], %b[7], %b[4] ? %pcnt0
             CDS0  50400000  rlp,cd00 %pcnt0, >alc5
Т.е. в обоих случаях получам 3-х тактный цикл...

Post a comment in response:

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

If you are unable to use this captcha for any reason, please contact us by email at support@dreamwidth.org