adds semantics and supporting code for several x86 instructions #1622
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.
Adds the following instructions:
The generated code for signed and unsigned saturation (the pack* family of instructions) is thoroughly optimized to minimize branching and comparison, which negatively affects analysis performance. Both signed and unsigned saturation are implemented as a lisp primitive that generates pure code with a single ite instruction and any comparisons are made with zero, i.e., no inequalities.
To following extra changes support the added instructions:
AL,BL,CL,DL,AH,BH,CH,DH,SIL,DIL,BPL, and SPL.
specifications.
aliased registers.
dolist
macro to Primus Lisp.unquote
primitive to Primus Lisp. 8) [NEW] Added thecast-saturate
primitive to Primus Lisp. 9) [NEW] Improved BIL code generation in case of empty if statements.