(0.21.0) AArch64: Create new instruction classes to handle alias instructions #61
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 commit introduces 3 new instruction classes:
These classes are used to handle alias instructions using the xzr register.
For example, cmp instruction is an alias of subs instruction with xzr
as target register.
The current implementation of helper functions for generating alias instructions
such as generateCompareImmInstruction allocates a virtual register
and associates it with xzr using register dependency.
Ths problem with this approach is:
register assignment phase. (generating prologue/epilogue)
The new implementation of those helper functions use newly introduced
instruction classes instead of allocating virtual register for xzr.
Those instruction classes does not hold a register for xzr.
generateBinaryEncoding of those classes encodes register number of xzr
to the appropriate position of instructions.
Master PRs:
eclipse-omr/omr#5280
eclipse-omr/omr#5288
Signed-off-by: Akira Saitoh saiaki@jp.ibm.com