@@ -732,6 +732,7 @@ Sign extension of 32-bit values on RV64 is not reflected in the interface.
732732
733733This section lists operand constraints that can be used with inline assembly
734734statements, including both RISC-V specific and common operand constraints.
735+ Operand constraints are case-sensitive.
735736
736737"Floating-point register" in both the `f` and `cf` rows means "a register
737738suitable for passing a floating-point value", so when using the `Zfinx`,
@@ -753,21 +754,22 @@ to aid portability of floating-point code.
753754|s |symbol or label reference with a constant offset |
754755|cr |RVC general purpose register (`x8`-`x15`) |
755756|cf |RVC floating-point register (`f8`-`f15` or `x8-x15` with `Zfinx`) |
756- |Pr |Even-odd general purpose register pair |
757+ |R |Even-odd general purpose register pair |
757758|vr |Vector register |
758759|vd |Vector register, excluding v0 |
759760|vm |Vector register, only v0 |
760761|===
761762
762- The `Pr ` constraint should print as the even register in the pair, as this
763+ The `R ` constraint should print as the even register in the pair, as this
763764matches how the `amocas.q` instruction (on RV64) or the `amocas.d` and `Zdinx`
764765instructions (on RV32) expect to parse their pair register operands. However,
765766both registers in the pair should be considered to be live or clobbered
766767together.
767768
768769NOTE: Immediate value must be a compile-time constant.
769770
770- NOTE: The `c*` and `P*` constraints are designed to be extensible to more kinds of registers in the future.
771+ NOTE: The `c*` constraints are designed to be extensible to more kinds of
772+ RVC-compatible register constraints in the future.
771773
772774=== The Difference Between `m` and `A` Constraints
773775
0 commit comments