Skip to content

Commit

Permalink
Update vdsetelem evaluator to use LoadStoreHandler
Browse files Browse the repository at this point in the history
  • Loading branch information
aviansie-ben committed Feb 11, 2021
1 parent b403050 commit dab5d8d
Showing 1 changed file with 5 additions and 14 deletions.
19 changes: 5 additions & 14 deletions compiler/p/codegen/FPTreeEvaluator.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -689,21 +689,12 @@ TR::Register *OMR::Power::TreeEvaluator::vdsetelemEvaluator(TR::Node *node, TR::
int elem = thirdChild->getInt();
TR_ASSERT(elem == 0 || elem == 1, "Element can only be 0 or 1\n");

if (secondChild->getRegister() == NULL &&
secondChild->getOpCode().isLoadVar())
if (!secondChild->getRegister() && secondChild->getReferenceCount() == 1 && secondChild->getOpCode().isLoadVar())
{
TR::LoadStoreHandler::generateLoadNodeSequence(cg, resReg, secondChild, TR::InstOpCode::lxsdx, 8, true);
}
else
{
if (secondChild->getReferenceCount() > 1)
{
TR::Node *newNode = secondChild->duplicateTree(false);
cg->evaluate(secondChild);
cg->decReferenceCount(secondChild);
secondChild = newNode;
}

TR::TreeEvaluator::dloadHelper(secondChild, cg, resReg, TR::InstOpCode::lxsdx);
}
else
{
TR::Register *fprReg = cg->evaluate(secondChild);
generateTrg1Src2Instruction(cg, TR::InstOpCode::xxlor, node, resReg, fprReg, fprReg);

Expand Down

0 comments on commit dab5d8d

Please sign in to comment.