Skip to content

Commit

Permalink
AArch64: Stop using placeholder register for arraycopy
Browse files Browse the repository at this point in the history
Kill placeholder registers used for register dependencies
at arraycopy helper call.

Signed-off-by: Akira Saitoh <saiaki@jp.ibm.com>
  • Loading branch information
Akira Saitoh committed Nov 5, 2021
1 parent 79e5193 commit b91736d
Showing 1 changed file with 5 additions and 0 deletions.
5 changes: 5 additions & 0 deletions compiler/aarch64/codegen/OMRTreeEvaluator.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3308,6 +3308,8 @@ OMR::ARM64::TreeEvaluator::arraycopyEvaluator(TR::Node *node, TR::CodeGenerator
TR::addDependency(deps, dstAddrReg, TR::RealRegister::x2, TR_GPR, cg);
TR::addDependency(deps, NULL, TR::RealRegister::x3, TR_GPR, cg);
TR::addDependency(deps, NULL, TR::RealRegister::x4, TR_GPR, cg);
TR::Register *x3Reg = deps->searchPostConditionRegister(TR::RealRegister::x3);
TR::Register *x4Reg = deps->searchPostConditionRegister(TR::RealRegister::x4);

generateCallToArrayCopyHelper(node, srcAddrReg, dstAddrReg, lengthReg, deps, cg);

Expand All @@ -3329,6 +3331,9 @@ OMR::ARM64::TreeEvaluator::arraycopyEvaluator(TR::Node *node, TR::CodeGenerator
if (stopUsingCopyReg5)
cg->stopUsingRegister(lengthReg);

cg->stopUsingRegister(x3Reg);
cg->stopUsingRegister(x4Reg);

cg->decReferenceCount(srcAddrNode);
cg->decReferenceCount(dstAddrNode);
cg->decReferenceCount(lengthNode);
Expand Down

0 comments on commit b91736d

Please sign in to comment.