-
Notifications
You must be signed in to change notification settings - Fork 863
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
vector: disassemble: Let operand ordering be vd, [vrf]s1, vs2 to vector multiply-add instructions #1797
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The spec is correct; see this NOTE: https://github.com/riscv/riscv-isa-manual/blob/8b9dc50e562af27c9ab22ae0a2d3bf528c6bd41d/src/v-st-ext.adoc#L2264-L2268
However, I think your fix is incomplete. It includes only integer instructions.
You also need the single-width floating-point FMAs: https://github.com/riscv/riscv-isa-manual/blob/8b9dc50e562af27c9ab22ae0a2d3bf528c6bd41d/src/v-st-ext.adoc#L3331-L3362
And the widening floating-point FMAs: https://github.com/riscv/riscv-isa-manual/blob/8b9dc50e562af27c9ab22ae0a2d3bf528c6bd41d/src/v-st-ext.adoc#L3376-L3390
I believe that is all.
…r single-width integer multiply-add instructions
…r widening integer multiply-add instructions
…r single-width floating-point fused multiply-add instructions
…r widening floating-point fused multiply-add instructions
d398872
to
6a1a5db
Compare
@aswaterman Thank you for the review. I revised the PR and made the following changes. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM now, thanks.
@YenHaoChen I sent you a github invite with write permissions so that you can directly participate in PR reviews (and so that you can merge your own PRs once they're approved). |
@aswaterman Thank you. |
Vector integer multiply-add instructions have a different assembly format to others. Specifically, the operand ordering of these instructions is rd, [vr]s1, vs2, while one of the others is rd, vs2, [vr]s1. (I was wondering whether this is a bug to the spec. Please correct me if I am wrong about this.)