我正在尝试使用 PLD 指令。我面临的问题如下:
int32_t addr[10];
asm ("PLD [addr,#5]");
我收到以下错误:
Error: ARM register expected -- `pld [addr,#5]'
预加载指令使用的地址需要在寄存器中。addr 是一个变量(内存位置),而不是一个寄存器。
int32_t addr[10];
asm ("PLD [%[ADDR],#5] \n\t"
:
: [ADDR]"r"(addr)
);
在寄存器列表中为事物命名,然后如图所示指定它。5 是一个用于预取的奇怪数字。大多数 PC 将使用 32 等尺寸...
在使用 pld 时,对于 ipad 和 ipad2 中的 arm 芯片,内存中每一行的大小显然是 64 字节。因此,为了最有效地 pld,最好对 64 字节大小范围执行 1 pld,然后展开循环以覆盖该范围(如果这是正在编程的代码类型)。
例如,您可能会为每个 pld 移动 16 个 32 位浮点大小的条目。