Skip to content
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

Fix wrong source operand decoding for SP vadd.f32 #2967

Merged
merged 2 commits into from
Apr 27, 2018

Conversation

ggeorgakoudis
Copy link
Contributor

  • Change ARM table for vadd.f32 to use the correct decoding format for
    the second source register of single precision floating point operations.
    Specifically use WCd format instead of the VCd, which was wrong.

- Change ARM table for vadd.f32 to use the correct decoding format for
  the second source register of single precision floating point operations.
  Specifically use WCd format instead of the VCd, which was wrong.
@ggeorgakoudis
Copy link
Contributor Author

I'm trying to do for the first time the non-member pull request review. Please let me know if I'm doing it right.

Cheers.

@fhahn
Copy link
Contributor

fhahn commented Apr 26, 2018

run arm tests

Copy link
Contributor

@derekbruening derekbruening left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for the patch. (Unfortunately we did not finish adding all the ARM decoding tests we wanted (#1686) and did not catch these earlier.)

@@ -504,7 +504,7 @@ const instr_info_t T32_ext_opc4fpA[][3] = {
{INVALID, 0xee200a10, "(bad)", xx, xx, xx, xx, xx, no, x, NA},
{OP_vnmul_f32,0xee200a40, "vnmul.f32", WBd, xx, WAd, WCd, xx, vfp, x, END_LIST},
}, { /* 3 */
{OP_vadd_f32, 0xee300a00, "vadd.f32", WBd, xx, WAd, VCd, xx, vfp, x, END_LIST},
{OP_vadd_f32, 0xee300a00, "vadd.f32", WBd, xx, WAd, WCd, xx, vfp, x, END_LIST},
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe the entries in table_a32_pred.c are also incorrect. Could you fix those as well?

$ git grep 'W.*xx.*W.* V'
core/arch/arm/table_a32_pred.c:    {OP_vadd_f32, 0x0e300a00, "vadd.f32", WBd, xx, WAd, VCd, xx, pred|vfp, x, END_LIST},
core/arch/arm/table_a32_pred.c:    {OP_vadd_f32, 0x0e700a00, "vadd.f32", WBd, xx, WAd, VCd, xx, pred|vfp, x, DUP_ENTRY},
core/arch/arm/table_t32_coproc.c:    {OP_vadd_f32, 0xee300a00, "vadd.f32", WBd, xx, WAd, VCd, xx, vfp, x, END_LIST},
core/arch/arm/table_t32_coproc.c:    {OP_vadd_f32, 0xee700a00, "vadd.f32", WBd, xx, WAd, VCd, xx, vfp, x, DUP_ENTRY},

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done! I've pushed another commit.

Copy link
Contributor

@derekbruening derekbruening left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for the patch!

@derekbruening
Copy link
Contributor

run arm tests

@derekbruening derekbruening merged commit 864e453 into DynamoRIO:master Apr 27, 2018
egrimley-arm added a commit that referenced this pull request Dec 10, 2024
The decoder was fixed by #2967 but the test was not updated.

Issue: #3699
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants