Skip to content

Commit

Permalink
AArch64: Use lastITable cache for interface call dispatching
Browse files Browse the repository at this point in the history
This commit extends the existing interface call dispatching code
of AArch64 codegen to exploit cached lastITable field in J9Class.
buildInterfaceCall function is updated to generate The code for
lastITable cache lookup after the code for checking the second PIC slot.
Until the second slot is populated, lastITable cache lookup always
fails to avoid filling PIC slots with infrequent call targets.
See OpenJ9 #8390 for more details.
After the second slot is filled, the lastITable cache lookup is
enabled by patching the b.al (branch always) instruction
in the lookup code to b.ne (branch if not equal).
Recompilation code is also updated to properly handle the new instruction
sequence generated by updated buildInterfaceCall function.

Resolves #8400
Signed-off-by: Akira Saitoh <[email protected]>
  • Loading branch information
Akira Saitoh committed Sep 21, 2023
1 parent cda91b3 commit 4c60993
Show file tree
Hide file tree
Showing 5 changed files with 417 additions and 102 deletions.
Loading

0 comments on commit 4c60993

Please sign in to comment.