TIL that the ppc64 (PowerPC 64-bit) architecture overloads 'or r1,r1,r1' (and the same using all r6 or r2) to change the (hardware) priority of your thread. This came up in a Go code generation issue, and Raymond Chen mentioned it in passing in 2018.

https://github.com/golang/go/issues/57741
https://devblogs.microsoft.com/oldnewthing/20180809-00/?p=99455
Also see the discussion in this PDF: https://student.ing-steen.se/unix/aix/redbooks/sg245768.pdf

runtime: performance regression due to bad instruction used in morestack_noctxt for ppc64 in CL 425396 · Issue #57741 · golang/go

What version of Go are you using (go version)? $ go version latest Does this issue reproduce with the latest release? yes What operating system and processor architecture are you using (go env)? go...

GitHub

@cks Very interesting!

Though, from some digging it seems like it was only started to be mentioned in Power ISA v2.03 (~POWER5 level, see §4.3.4 and §4.4.2 in the book 3S of the spec).
I wonder if it existed but was undocumented in earlier variants (given that Rayond Chen's PPC 600 blogpost has something similar)?