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

[AArch64] Split OP_prfm opcode, or provide named constants for the sub-opcode immediate operand #4388

Open
derekbruening opened this issue Jul 30, 2020 · 2 comments

Comments

@derekbruening
Copy link
Contributor

See the discussion at #4386 (comment) regarding opcode philosophy of separate opcodes for separate semantics.

This issue covers either splitting the OP_prfm opcode into OP_prfm_read_l1, OP_prfm_read_l1_nt, etc., with a helper to determine whether an opcode is a PRFM, or leaving the single OP_prfm and providing a named enum where DR_PRFM_READ_L1_NT, etc. are set to equal their encoded 5-bit immediate value in the source operand. Both approaches avoid the bit decoding currently at https://github.com/DynamoRIO/dynamorio/blob/master/clients/drcachesim/tracer/instru.cpp#L82 and we'd want to update that code with the result. We have pros and cons of both approaches; splitting the opcodes is a compatibilty break as well. Whoever takes on the work gets to pick the approach I suppose.

@derekbruening
Copy link
Contributor Author

It's sounding like we have more votes for the single OP_prfm here: so we're considering the DC cache management types to be semantically different enough for separate opcodes, but not the prefetch types (nor the various SIMD operation variations we don't split inside the same opcode).

@derekbruening
Copy link
Contributor Author

Xref #4393 which is a pre-req for opcode splitting.

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

No branches or pull requests

1 participant