-
Notifications
You must be signed in to change notification settings - Fork 2
riscv_opcode_tidying_operands_1
Tsukasa OI edited this page Sep 22, 2022
·
4 revisions
- Status: Merged for Binutils 2.40
- Branch:
riscv-opcode-tidying-operands-1 - Tracking PR: #34 (view Pull Request and Diff)
- Mailing List:
Since validate_riscv_insn function lists three macro-only operand types, this patch adds other three operands.
That means, validate_riscv_insn lists all macro-only operand types with this patch.
| OpType | Status |
|---|---|
A |
Existing |
B |
Existing |
I |
Existing |
c |
New |
VM |
New |
VT |
New |
Note that validate_riscv_insn is called only for non-macro instructions.
In the future, we could reject (and make an internal error) when we encountered those macro-only operand types on regular (non-macro) instructions.
There are six unused operand types but "b" should be removed.
- It looks like an alias of the
"s"operand type. - It hasn't used since the beginning.
- Its role is not clear.
| OpType | Notes |
|---|---|
Cx |
RS2 (where rd == rs2), similar to Ct (encoding) and Cw (constraints).Future implementation may use this for new compressed instructions. |
Vf, Ve
|
Used for vector AMO instructions. They are not ratified and instructions are not upstreamed yet. However, only operand types are upstreamed. |
[, ]
|
No usecases but not harmless and their role is clear. |
b |
See above. Keeping this is considered harmful. |