在翻看了pld文档,又百度后,对于 PLtype{cond} [Rn {, #offset}] 这个后面的offset 不理解,到底指的是byte 还是bit了
类似于下面这段代码, 想理解 pld [r1,#0xc0] 这个是希望将r1指向的后面192个字节加载到cache line当中,还是指的是192bit相应的24字节加载到cache line当中
而后面的 subs r2,r2,#0x40,表达 的是上面的64字节进行了复制,不太理解,如果是pld后面的那个0XC0是字节的话,为什么,不一次预加载128个字节,这样,每次预加载后
第二次在使用的时候,前一次已经有64字节一半在里面了。为什么是192字节效率最高,如果是代表bit的话,为啥是预加载24字节,按理说一次是加载一个cache line 64字节才对
还有一个pld,一般情况下会吃几个cycle cpu呢, 想写一个性能好的点积。求指教
NEONCopyPLD
PLD [r1, #0xC0]
VLDM r1!,{d0-d7}
VSTM r0!,{d0-d7}
SUBS r2,r2,#0x40
BGE NEONCopyPLD