Skip to content

Commit 38f5e41

Browse files
author
Akira Saitoh
committed
AArch64: Fix String.hashCode() implementation
This commit fixes `inlineStringHashCode` so that `savedLengthReg` is copied to `lengthReg` when the reference count of`lengthNode` is > 1. Signed-off-by: Akira Saitoh <[email protected]>
1 parent d5e17dd commit 38f5e41

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

runtime/compiler/aarch64/codegen/J9TreeEvaluator.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6097,6 +6097,12 @@ static TR::Register *inlineStringHashCode(TR::Node *node, bool isCompressed, TR:
60976097
TR_ARM64ScratchRegisterManager *srm = cg->generateScratchRegisterManager(12);
60986098
TR::Register *dataAddrReg = (arrayNode->getReferenceCount() > 1) ? srm->findOrCreateScratchRegister() : arrayReg;
60996099
TR::Register *lengthReg = (lengthNode->getReferenceCount() > 1) ? srm->findOrCreateScratchRegister() : savedLengthReg;
6100+
6101+
if (lengthNode->getReferenceCount() > 1)
6102+
{
6103+
generateMovInstruction(cg, node, lengthReg, savedLengthReg, false);
6104+
}
6105+
61006106
TR::Compilation *comp = cg->comp();
61016107
if (comp->getOptions()->enableDebugCounters())
61026108
{

0 commit comments

Comments
 (0)