-
Notifications
You must be signed in to change notification settings - Fork 571
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
Set and fix opcode enums on AArch64 v8.0 for all future releases #5144
Comments
Oops! The two queries I posted on #5115 should have been posted here. See: |
OP_UNDECODED is used for "level 0" or "level 1" decodings on x86 where we have done a fast incomplete decoding pass and just haven't spent enough time to deduce the actual opcodes (or for level 0 it's a bundle of multiple instructions). OP_xx is used for fully decoded encodings that we are unable to get more information about: more decoding effort will not yield further information. They may well be valid but are not yet known to the unfinished decoder implementation. There are functions that assume if they see OP_UNDECODED they should try to decode further. So it is probably best to keep them separate. |
Binary compatibility: I have a client library built against 9.0 and I run it with 9.1. It will break in weird ways if the integers passed as enums now mean something completely different. We would prefer to maintain as much binary compatibility as possible; IMHO it is painful to have library interfaces change all the time. Imagine if libc changed every minor release: an update to your system upgrades libc and suddenly all your own binaries crash in strange ways.
If it makes things easier splitting the opcodes with |
The current codec generator for AArch64 does not fix the enum values of
OP_
s, see discussion in #5115.This issue will track work to set and fix opcode enum values, initially for v8.0.
The text was updated successfully, but these errors were encountered: