tryToGenerateSpecialPrimitiveInvocation

open fun tryToGenerateSpecialPrimitiveInvocation(    functionToCallReg: L2ReadBoxedOperand,     rawFunction: A_RawFunction,     arguments: List<L2ReadBoxedOperand>,     argumentTypes: List<A_Type>,     translator: L1Translator,     callSiteHelper: L1Translator.CallSiteHelper): Boolean

The primitive couldn't be folded out, so see if alternative instructions can be generated for its invocation. If so, answer true, ensure control flow will go to the appropriate CallSiteHelper exit point, and leave the translator NOT at a currentReachable() point. If the alternative instructions could not be generated for this primitive, answer false, and generate nothing.

Return

true if a specialized L2Instruction sequence was generated, false if nothing was emitted and the general mechanism should be used instead.

Parameters

functionToCallReg

The L2ReadBoxedOperand register that holds the function being invoked. The function's primitive is known to be the receiver.

rawFunction

The primitive raw function whose invocation is being generated.

arguments

The argument L2ReadBoxedOperands supplied to the function.

argumentTypes

The list of A_Types of the arguments.

translator

The L1Translator on which to emit code, if possible.

callSiteHelper

Information about the call site being generated.