【问题标题】:What PowerPC instructions treat r0 as 0?哪些 PowerPC 指令将 r0 视为 0?
【发布时间】:2021-02-14 00:10:18
【问题描述】:

当其RA 参数为0 时,addi 指令将认为这是一个值,而不是从相应的寄存器中读取,就像该参数是其他任何值一样。加载和存储指令的行为方式相同。

还有其他类似的指令吗?

【问题讨论】:

  • devblogs.microsoft.com/oldnewthing/20180813-00/?p=99475 提到了加载/存储指令。我的 PowerPC 知识已经生疏了; r0 并不总是像 MIPS $zero 或 AArch64 xzr 这样的零寄存器硬连线吗? (请注意,AArch64 的 xzrx0 是分开的,您获得的寄存器号取决于操作码,这听起来可能有点像您为 PowerPC 所描述的。)
  • @PeterCordes 据我所知,除了addi 以及加载和存储系列中的指令之外,每条指令都将r0 视为普通寄存器,而不是硬连线的零。跨度>

标签: assembly powerpc


【解决方案1】:

此信息的官方来源是 ISA - here's 是最新发布的芯片 Power9 的来源。

如果您在 pdf 中搜索“RA = 0”,您会看到其行为取决于 RA 为 0 的说明。我可以找到:

  • l{b,h,w}z[x]
  • l{h,w}a[x]
  • ld[x]
  • st{b,h,w,d}[x]
  • {l,st}q
  • {l,st}{h,w,d}brx
  • {l,st}mw
  • {l,st}sw{i,x}
  • 添加[s]
  • {l,st}f{s,d}[x]
  • lfiw{z,a}x
  • stfiwx
  • {l,st}fdp[x]
  • {l,st}ve{b,h,w}x
  • {l,st}vx[l]
  • lvs{l,r}
  • dcbz
  • 复制、粘贴
  • l{b,h,w,d,q}arx
  • st{b,h,w,d,q}cx.
  • tabort./treclaim.,有点
  • l{b,h,w,d}zcix
  • st{b,h,w,d}cix

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多