New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
AArch64: Use stp/ldp instructions for preserved registers #17192
Conversation
Jenkins test sanity.functional,extended.functional alinux64,amac jdk17 |
This commit changes the instructions in the method prologue like this. It does the similar in the method epilogue.
|
Jenkins test sanity.functional,extended.functional alinux64,amac jdk17 |
Jenkins test sanity.functional alinux64 jdk17 |
The failure in cmdLineTest_J9test_common_0 on AArch64 Linux looks like #13577.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good. A couple of minor variable renames requested.
@@ -783,17 +783,45 @@ void J9::ARM64::PrivateLinkage::createPrologue(TR::Instruction *cursor) | |||
|
|||
int32_t preservedRegisterOffsetFromJavaSP = outgoingArgsSize; | |||
|
|||
TR::RealRegister *regToStore = NULL; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Minor nit: can you rename this to pendingRegToStore
for improved readability?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Changed as suggested.
@@ -881,16 +909,42 @@ void J9::ARM64::PrivateLinkage::createEpilogue(TR::Instruction *cursor) | |||
int32_t preservedRegisterOffsetFromJavaSP = cg()->getLargestOutgoingArgSize() + getOffsetToFirstParm(); // outgoingArgsSize | |||
TR::RealRegister::RegNum firstPreservedGPR = TR::RealRegister::x21; | |||
TR::RealRegister::RegNum lastPreservedGPR = TR::RealRegister::x28; | |||
TR::RealRegister *regToLoad = NULL; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Minor nit: can you rename this to pendingRegToLoad
for improved readability?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Changed as suggested.
This commit changes code generation for method prologue and epilogue to use the register pair instructions (stp and ldp) for saving and restoring preserved registers when applicable. Signed-off-by: KONNO Kazuhiro <konno@jp.ibm.com>
Jenkins test sanity.functional alinux64,amac jdk17 |
This commit changes code generation for method prologue and epilogue to use the register pair instructions (stp and ldp) for saving and restoring preserved registers when applicable.