@@ -3542,18 +3542,13 @@ TR::Register *OMR::ARM::TreeEvaluator::multianewArrayEvaluator(TR::Node *node, T
35423542// handles: TR::call, TR::acall, TR::icall, TR::lcall, TR::fcall, TR::dcall
35433543TR::Register *OMR::ARM::TreeEvaluator::directCallEvaluator (TR::Node *node, TR::CodeGenerator *cg)
35443544{
3545- TR::SymbolReference *symRef = node->getSymbolReference ();
3546- TR::MethodSymbol *callee = symRef->getSymbol ()->castToMethodSymbol ();
3547- TR::Linkage *linkage = cg->getLinkage (callee->getLinkageConvention ());
3548-
3545+ TR::Linkage *linkage = cg->deriveCallingLinkage (node, false /* isIndirect */ );
35493546 return linkage->buildDirectDispatch (node);
35503547}
35513548
35523549TR::Register *OMR::ARM::TreeEvaluator::performCall (TR::Node *node, bool isIndirect, TR::CodeGenerator *cg)
35533550{
3554- TR::SymbolReference *symRef = node->getSymbolReference ();
3555- TR::MethodSymbol *callee = symRef->getSymbol ()->castToMethodSymbol ();
3556- TR::Linkage *linkage = cg->getLinkage (callee->getLinkageConvention ());
3551+ TR::Linkage *linkage = cg->deriveCallingLinkage (node, isIndirect);
35573552 TR::Register *returnRegister;
35583553
35593554 if (isIndirect)
@@ -3567,10 +3562,7 @@ TR::Register *OMR::ARM::TreeEvaluator::performCall(TR::Node *node, bool isIndire
35673562// handles: TR::icalli, TR::acalli, TR::fcalli, TR::dcalli, TR::lcalli, TR::calli
35683563TR::Register *OMR::ARM::TreeEvaluator::indirectCallEvaluator (TR::Node *node, TR::CodeGenerator *cg)
35693564{
3570- TR::SymbolReference *symRef = node->getSymbolReference ();
3571- TR::MethodSymbol *callee = symRef->getSymbol ()->castToMethodSymbol ();
3572- TR::Linkage *linkage = cg->getLinkage (callee->getLinkageConvention ());
3573-
3565+ TR::Linkage *linkage = cg->deriveCallingLinkage (node, true /* isIndirect */ );
35743566 return linkage->buildIndirectDispatch (node);
35753567}
35763568
0 commit comments