有什么区别LDAXR
& LDXR
AArch64 指令集之外的指令?
从参考手册来看,它们看起来完全相同(“获取”一词除外):
LDAXR- 加载获取独占寄存器:从按基址寻址的存储器加载字到Wt。将物理地址记录为独占访问。
LDXR- 加载独占寄存器:从内存中加载一个字,该字由基址寻址到Wt。将物理地址记录为独占访问。
Thanks
以最简单的形式,LDAEX
== LDXR
+DMB_SY
.
这是我找到的 LDAXR 的描述:
C6.2.104 LDAXR
加载-获取独占寄存器从基址导出地址
寄存器值,从内存加载 32 位字或 64 位双字,
并将其写入寄存器。内存访问是原子的。 PE标志
作为独占访问而被访问的物理地址。这
独占访问标记由存储独占指令检查。看
同步和信号量(第 B2-135 页)。该指令还
具有加载-获取中描述的内存排序语义,
加载-获取 PC 和存储-释放(第 B2-108 页)。供参考
有关存储器访问的信息,请参阅第 C1-157 页的加载/存储寻址模式。
来自第 K11.3 节DDI0487达 https://developer.arm.com/docs/ddi0487/latest/arm-architecture-reference-manual-armv8-for-armv8-a-architecture-profile
ARMv8 架构添加了获取和释放语义
加载独占和存储独占指令,这使得它们能够
获取排序获取和/或释放语义。负载专用
指令可以被指定为具有获取语义,并且
可以指定Store-Exclusive指令有释放
语义。这些可以任意组合以允许原子
由成功的加载独占和存储独占对创建的更新
具有以下任何一项:
另外(B2.3.5),
Load-Acquire指令的基本原理是引入
Load-Acquire 生成的内存访问之间的顺序
指令和内存访问按程序顺序出现
Load-Acquire 指令,使得由
Load-Acquire指令被每个PE观察到,在一定程度上
该 PE 需要在任何操作之前连贯地观察访问
在程序顺序之后出现的内存访问
加载-获取指令由该 PE 观察到,在某种程度上
PE 需要一致地观察访问。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)