Skip to content

Commit

Permalink
Treat contiguousArrayDataAddrFieldSymbol as Int64
Browse files Browse the repository at this point in the history
dataAddr field width is always 64 bit so treating it as TR::Address results in
null being loaded from top 32 bits in compressed refs. We need the symbol to be
TR::Int64 for it be loaded correctly.

Signed-off-by: Shubham Verma <[email protected]>
  • Loading branch information
VermaSh authored and rmnattas committed Mar 27, 2024
1 parent c9309f7 commit 1f7f5b8
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion compiler/compile/OMRSymbolReferenceTable.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,7 @@ OMR::SymbolReferenceTable::findOrCreateContiguousArrayDataAddrFieldShadowSymRef(
{
if (!element(contiguousArrayDataAddrFieldSymbol))
{
TR::Symbol * sym = TR::Symbol::createShadow(trHeapMemory(), TR::Address);
TR::Symbol * sym = TR::Symbol::createShadow(trHeapMemory(), TR::Int64);
sym->setContiguousArrayDataAddrFieldSymbol();
element(contiguousArrayDataAddrFieldSymbol) = new (trHeapMemory()) TR::SymbolReference(self(), contiguousArrayDataAddrFieldSymbol, sym);
element(contiguousArrayDataAddrFieldSymbol)->setOffset(TR::Compiler->om.offsetOfContiguousDataAddrField());
Expand Down

0 comments on commit 1f7f5b8

Please sign in to comment.