PLD在手臂皮质中的应用a9

时间:2011-03-12 14:00:37

标签: arm cortex-a

我正在尝试使用PLD指令。我面临的问题如下:

int32_t addr[10];
asm ("PLD [addr,#5]");

我收到以下错误:

Error: ARM register expected -- `pld [addr,#5]'

2 个答案:

答案 0 :(得分:2)

预加载指令使用的地址需要在寄存器中。 addr是一个变量(内存位置),而不是寄存器。

答案 1 :(得分:1)

int32_t addr[10];
asm ("PLD [%[ADDR],#5] \n\t"
:
: [ADDR]"r"(addr)
); 

在寄存器列表中为该事物命名,然后如图所示指定它。 5是用于预取的奇怪数字。大多数PC将使用32等大小......

当使用pld时,内存中每一行的大小显然是ipad和ipad2中的arm芯片的64字节。因此,为了最有效率,最好为64字节大小范围做1 pld,然后展开循环以覆盖该范围,如果这是正在编程的代码类型。

例如,您可以为每个pld移动16个32位浮点大小的条目。