Improved signedness data accuracy and consistency #13
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR fixes inconsistencies mentioned in zyantific/zydis#192 and zyantific/zydis#327. Major goal is to have consistent signedness for every instruction. This is especially important for encoder users as specifying signed/unsigned immediates gets more intuitive with those changes. There were a few categories of issues:
As discussed some months ago I went for "signed by default" policy unless there was a good reason to have things unsigned. This means that e.g. data transfers and bitwise operations are now consistently signed.
I searched for all instruction definitions that mixed signed and unsigned operands across variants and within single definition itself. This resulted in around 1300 definitions which were manually reviewed.
Final conversion was done by this piece of spaghetti: