Skip to content

Commit

Permalink
AArch64: Implement lneg Evaluator
Browse files Browse the repository at this point in the history
Implemented lneg Evaluator under Unary Evaluator

Signed-off-by: marufunb <mrahma15@unb.ca>
  • Loading branch information
marufunb committed Jan 17, 2019
1 parent 232007f commit 6ed4e65
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 6 deletions.
2 changes: 1 addition & 1 deletion compiler/aarch64/codegen/TreeEvaluatorTable.hpp
Expand Up @@ -139,7 +139,7 @@
TR::TreeEvaluator::unImpOpEvaluator , // TODO:ARM64: Enable when Implemented: TR::TreeEvaluator::sremEvaluator , // TR::srem // remainder of 2 short integers (child1 % child2)
TR::TreeEvaluator::unImpOpEvaluator , // TODO:ARM64: Enable when Implemented: TR::TreeEvaluator::iuremEvaluator , // TR::iurem // remainder of 2 unsigned integers (child1 % child2)
TR::TreeEvaluator::inegEvaluator, // TR::ineg // negate an integer
TR::TreeEvaluator::unImpOpEvaluator , // TODO:ARM64: Enable when Implemented: TR::TreeEvaluator::lnegEvaluator , // TR::lneg // negate a long integer
TR::TreeEvaluator::lnegEvaluator, // TR::lneg // negate a long integer
TR::TreeEvaluator::unImpOpEvaluator , // TODO:ARM64: Enable when Implemented: TR::TreeEvaluator::fnegEvaluator , // TR::fneg // negate a float
TR::TreeEvaluator::unImpOpEvaluator , // TODO:ARM64: Enable when Implemented: TR::TreeEvaluator::dnegEvaluator , // TR::dneg // negate a double
TR::TreeEvaluator::unImpOpEvaluator , // TODO:ARM64: Enable when Implemented: TR::TreeEvaluator::bnegEvaluator , // TR::bneg // negate a bytes
Expand Down
13 changes: 8 additions & 5 deletions compiler/aarch64/codegen/UnaryEvaluator.cpp
@@ -1,5 +1,5 @@
/*******************************************************************************
* Copyright (c) 2018, 2018 IBM Corp. and others
* Copyright (c) 2018, 2019 IBM Corp. and others
*
* This program and the accompanying materials are made available under
* the terms of the Eclipse Public License 2.0 which accompanies this
Expand Down Expand Up @@ -78,10 +78,13 @@ TR::Register *OMR::ARM64::TreeEvaluator::inegEvaluator(TR::Node *node, TR::CodeG
}

TR::Register *OMR::ARM64::TreeEvaluator::lnegEvaluator(TR::Node *node, TR::CodeGenerator *cg)
{
// TODO:ARM64: Enable TR::TreeEvaluator::lnegEvaluator in compiler/aarch64/codegen/TreeEvaluatorTable.hpp when Implemented.
return OMR::ARM64::TreeEvaluator::unImpOpEvaluator(node, cg);
}
{
TR::Node *firstChild = node->getFirstChild();
TR::Register *tempReg = cg->gprClobberEvaluate(firstChild);
generateNegInstruction(cg, node, tempReg, tempReg);
firstChild->decReferenceCount();
return node->setRegister(tempReg);
}

static TR::Register *commonIntegerAbsEvaluator(TR::Node *node, TR::CodeGenerator *cg)
{
Expand Down

0 comments on commit 6ed4e65

Please sign in to comment.