Skip to content

Commit 4d92969

Browse files
authored
Merge pull request #21856 from luke-li-2003/vecHashOffeHeap
Enable vectorizedHashCode intrinsic for OffHeap on POWER
2 parents cf09cea + a85b56b commit 4d92969

File tree

2 files changed

+16
-3
lines changed

2 files changed

+16
-3
lines changed

runtime/compiler/p/codegen/J9CodeGenerator.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,6 @@ J9::Power::CodeGenerator::initialize()
124124
cg->setSupportsReadOnlyLocks();
125125

126126
if (!TR::Compiler->om.canGenerateArraylets()
127-
&& !TR::Compiler->om.isOffHeapAllocationEnabled()
128127
&& comp->target().cpu.isAtLeast(OMR_PROCESSOR_PPC_P8)
129128
&& comp->target().cpu.supportsFeature(OMR_FEATURE_PPC_HAS_VSX)
130129
&& !comp->compileRelocatableCode()

runtime/compiler/p/codegen/J9TreeEvaluator.cpp

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10485,8 +10485,22 @@ hashCodeHelper(TR::Node *node, TR::CodeGenerator *cg, TR::DataType elementType,
1048510485
TR::LabelSymbol *endLabel = generateLabelSymbol(cg);
1048610486

1048710487
// Skip header of the array
10488-
intptr_t hdrSize = TR::Compiler->om.contiguousArrayHeaderSizeInBytes();
10489-
generateTrg1Src1ImmInstruction(cg, TR::InstOpCode::addi, node, valueReg, valueReg, hdrSize);
10488+
#if defined(J9VM_GC_SPARSE_HEAP_ALLOCATION)
10489+
if (TR::Compiler->om.isOffHeapAllocationEnabled())
10490+
{
10491+
generateTrg1MemInstruction(
10492+
cg, TR::InstOpCode::Op_load, node, valueReg,
10493+
TR::MemoryReference::createWithDisplacement(
10494+
cg, valueReg, TR::Compiler->om.offsetOfContiguousDataAddrField(),
10495+
comp->target().is64Bit() ? 8 : 4)
10496+
);
10497+
}
10498+
else
10499+
#endif /* J9VM_GC_SPARSE_HEAP_ALLOCATION */
10500+
{
10501+
generateTrg1Src1ImmInstruction(cg, TR::InstOpCode::addi, node, valueReg, valueReg,
10502+
TR::Compiler->om.contiguousArrayHeaderSizeInBytes());
10503+
}
1049010504

1049110505
// v = v + offset<<lg(elementSize)
1049210506
// end = v + count<<lg(elementSize)

0 commit comments

Comments
 (0)