@@ -732,6 +732,7 @@ Sign extension of 32-bit values on RV64 is not reflected in the interface.
732
732
733
733
This section lists operand constraints that can be used with inline assembly
734
734
statements, including both RISC-V specific and common operand constraints.
735
+ Operand constraints are case-sensitive.
735
736
736
737
"Floating-point register" in both the `f` and `cf` rows means "a register
737
738
suitable for passing a floating-point value", so when using the `Zfinx`,
@@ -753,21 +754,22 @@ to aid portability of floating-point code.
753
754
|s |symbol or label reference with a constant offset |
754
755
|cr |RVC general purpose register (`x8`-`x15`) |
755
756
|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 |
757
758
|vr |Vector register |
758
759
|vd |Vector register, excluding v0 |
759
760
|vm |Vector register, only v0 |
760
761
|===
761
762
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
763
764
matches how the `amocas.q` instruction (on RV64) or the `amocas.d` and `Zdinx`
764
765
instructions (on RV32) expect to parse their pair register operands. However,
765
766
both registers in the pair should be considered to be live or clobbered
766
767
together.
767
768
768
769
NOTE: Immediate value must be a compile-time constant.
769
770
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.
771
773
772
774
=== The Difference Between `m` and `A` Constraints
773
775
0 commit comments