forked from ocaml/ocaml
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
flambda-backend: Improved ARM64 code generation (port upstream PR#993…
…7) (ocaml#556) * ARM64: improve recognition of immediate operands for logical instructions Now we recognize the full set of hardware supported immediate operands. `is_logical_immediate` was moved from Selection to Arch and made to work on nativeints. This is in preparation for future use in Emit. * ARM64: Improve code generation for load integer immediate Add a special case for immediates that can be loaded in one "or" instruction. Refactor the code that produces sequences of movz/movn/movk to be less redundant and to choose the shortest sequence between the "movz" sequence and the "movn" sequence. * ARM64: add and recognize specific operation for sign extension * Fix compilation Co-authored-by: Xavier Leroy <xavier.leroy@college-de-france.fr>
- Loading branch information
1 parent
f0b6d68
commit 31651b8
Showing
3 changed files
with
126 additions
and
90 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters