@@ -882,12 +882,10 @@ extern void TEMPORARY_initJ9X86TreeEvaluatorTable(TR::CodeGenerator *cg)
882
882
tet[TR::ilbit] = TR::TreeEvaluator::integerLowestOneBit;
883
883
tet[TR::inolz] = TR::TreeEvaluator::integerNumberOfLeadingZeros;
884
884
tet[TR::inotz] = TR::TreeEvaluator::integerNumberOfTrailingZeros;
885
- tet[TR::ipopcnt] = TR::TreeEvaluator::integerBitCount;
886
885
tet[TR::lhbit] = TR::TreeEvaluator::longHighestOneBit;
887
886
tet[TR::llbit] = TR::TreeEvaluator::longLowestOneBit;
888
887
tet[TR::lnolz] = TR::TreeEvaluator::longNumberOfLeadingZeros;
889
888
tet[TR::lnotz] = TR::TreeEvaluator::longNumberOfTrailingZeros;
890
- tet[TR::lpopcnt] = TR::TreeEvaluator::longBitCount;
891
889
tet[TR::tstart] = TR::TreeEvaluator::tstartEvaluator;
892
890
tet[TR::tfinish] = TR::TreeEvaluator::tfinishEvaluator;
893
891
tet[TR::tabort] = TR::TreeEvaluator::tabortEvaluator;
@@ -3978,51 +3976,6 @@ TR::Register *J9::X86::TreeEvaluator::longNumberOfTrailingZeros(TR::Node *node,
3978
3976
return resultReg;
3979
3977
}
3980
3978
3981
- static
3982
- TR::Register *bitCount(TR::Node *node, TR::CodeGenerator *cg, TR::Register *reg, bool is64Bit)
3983
- {
3984
- TR::Register *bsfReg = cg->allocateRegister();
3985
- generateRegRegInstruction(TR::InstOpCode::POPCNTRegReg(is64Bit), node, bsfReg, reg, cg);
3986
- return bsfReg;
3987
- }
3988
-
3989
- TR::Register *J9::X86::TreeEvaluator::integerBitCount(TR::Node *node, TR::CodeGenerator *cg)
3990
- {
3991
- TR_ASSERT(node->getNumChildren() == 1, "Node has a wrong number of children (i.e. !=1 )! ");
3992
- TR::Node* child = node->getFirstChild();
3993
- TR::Register* inputReg = cg->evaluate(child);
3994
- TR::Register* resultReg = bitCount(node, cg, inputReg, cg->comp()->target().is64Bit());
3995
- node->setRegister(resultReg);
3996
- cg->decReferenceCount(child);
3997
- return resultReg;
3998
- }
3999
-
4000
- TR::Register *J9::X86::TreeEvaluator::longBitCount(TR::Node *node, TR::CodeGenerator *cg)
4001
- {
4002
- TR_ASSERT(node->getNumChildren() == 1, "Node has a wrong number of children (i.e. !=1 )! ");
4003
- TR::Node * child = node->getFirstChild();
4004
- TR::Register * inputReg = cg->evaluate(child);
4005
- TR::Register * resultReg = NULL;
4006
- if (cg->comp()->target().is64Bit())
4007
- {
4008
- resultReg = bitCount(node, cg, inputReg, true);
4009
- }
4010
- else
4011
- {
4012
- //add low result and high result together
4013
- TR::Register * inputHigh = inputReg->getHighOrder();
4014
- TR::Register * inputLow = inputReg->getLowOrder();
4015
- TR::Register * resultLow = bitCount(node, cg, inputLow, false);
4016
- TR::Register * resultHigh = bitCount(node, cg, inputHigh, false);
4017
- generateRegRegInstruction(TR::InstOpCode::ADD4RegReg, node, resultLow, resultHigh, cg);
4018
- cg->stopUsingRegister(resultHigh);
4019
- resultReg = resultLow;
4020
- }
4021
- node->setRegister(resultReg);
4022
- cg->decReferenceCount(child);
4023
- return resultReg;
4024
- }
4025
-
4026
3979
inline void generateInlinedCheckCastForDynamicCastClass(TR::Node* node, TR::CodeGenerator* cg)
4027
3980
{
4028
3981
TR::Compilation *comp = cg->comp();
0 commit comments