What PowerPC instructions treat r0 as 0?

Viewed 187

When its RA parameter is 0, the addi instruction will consider that to be a value instead of reading from the corresponding register like it would if that parameter were anything else. Load and store instructions behave the same way.

Are there any other instructions that behave like this?

1 Answers

The official source for this information would be the ISA - here's the one for Power9, the latest released chip.

If you search through the pdf for "RA = 0" you can see instructions whose behaviour depends on RA being 0. I can find:

  • 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}
  • addi[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
  • copy, paste
  • l{b,h,w,d,q}arx
  • st{b,h,w,d,q}cx.
  • tabort./treclaim., kinda
  • l{b,h,w,d}zcix
  • st{b,h,w,d}cix
Related