表3提供了从ARM内存操作到RISC-V内存指令的映射。由于RISC-V目前没有自带aq或rl语义的普通load和store指令,ARM的load acquire和store release指令在RISC-V中用FENCE来映射。此外,为了确保store-release-to-load-acquire的顺序,在store release和load acquire之间必须要有一个FENCE RW,RW。表3通过始终在每个acquire操作前防止FENCE指令来强制保证这一点。ARM的load-exclusive和store-exclusive指令通用可以映射到RISC-V上的LR和SC指令。但这里不需要把FENCE RW,RW放到带aq的LR指令前面,而是直接使用aqrl。ARM ISB在RISC-V上映射到FENCE.I且后面跟着FENCE R,R指令。类似于ISYNC映射到Power的方式。不过ARM DSB如何映射到RISC-V上,这一点我暂时也没想明白。
表3 从ARM操作到RISC-V操作的映射