In order to be compatible with the form of the atomic instruction in GAS that accepts the fourth operand as 0 (i.e. `am* $rd, $rk, $rj, 0`), we need to treat `$rj, 0` as one operand, but only print `$rj`. For this, the number of result operands of inline assembly memory operand `ZB` constraint is modified to 2 (reg + 0). Restrictions on register usage in `am*` instructions have also been adjusted. When `$rd` is equal to `$r0`, the instruction must be considered legal, because of some special usage like `PseudoUNIMP`. Reviewed By: SixWeining, xen0n Differential Revision: https://reviews.llvm.org/D139303
2.4 KiB
2.4 KiB