Companion
Properties
Answer the starting line number for the block phrase that defines this raw function.
For this raw function, compute the tuple of its declaration names (arguments, locals, constants, 0..1 labels, outers). This is useful for decompilation, for giving meaningful names to registers in L2 translations, and for presenting reified continuations. Note that the outers are not part of the stack frame, and apply to the continuation's function instead.
For this raw function, compute the tuple of its declaration names (arguments, locals, constants, 0..1 labels). This is useful for decompilation, for giving meaningful names to registers in L2 translations, and for presenting reified continuations.
The CheckedMethod for functionType.
Answer the tuple of line number deltas for this ram function. Each entry encodes a signed offset in an unsigned entry. There's an entry for each nybblecode (not for each nybble). The encoding uses the absolute value of the delta from the previous instruction's line number, shifted left once, adding one for negatives. This allows nybble tuples and byte tuples to be the usual representations for small functions.
Answer the maximum depth of the stack needed by an A_Continuation representing the invocation of some A_Function that closes this A_RawFunction.
Answer the A_Module that contains the block phrase that defines this raw function.
Answer the number of local constants specified by this A_RawFunction.
Answer the number of literal values embedded into this A_RawFunction.
Answer the number of local variables specified by this A_RawFunction.
Answer how many nybbles are taken up by the nybblecodes of this raw function.
Answer the number of outer variables specified by this A_RawFunction.
Answer the number of slots to reserve in a A_Continuation based on this raw function. This is the arity, plus number of local variables and constants, plus number of stack slots.
Answer the tuple of nybblecodes that implements this raw function.
Answer the block phrase from which this raw function was constructed. Answer nil if this information is not available.
The index into the module's lazily-loaded tuple of phrases, or -1 if the phrase was not written to a module, in which case originatingPhrase must already contain the A_Phrase. If this code was generated (say from a pragma), this may be -1, and the originatingPhrase will be nil.
Answer an A_String containing the concatenated names of the originating block's declarations.
Answer a Statistic for recording returns into this raw function.
Answer a Statistic for recording returns from this raw function.
Answer the type that this raw function will produce if there is no primitive, or if the primitive fails and the nybblecodes run.
Answer the L2Chunk that the interpreter will run to simulate execution of this A_RawFunction.
Answer the total number of invocations of this raw function.
Functions
Answer the type of the index-th local constant.
Set the countdown until reoptimization by the Level Two translator.
This raw function was found to be running in an interpreter during a periodic poll. Decrease its countdown to reoptimization by the indicated amount, being careful not to drop below one (1).
Atomically decrement the countdown to reoptimization by the L2Generator. If the count reaches zero (0), then lock this raw function, thereby blocking concurrent applications of A_Functions derived from this raw function, and then evaluate the argument in order to effect reoptimization.
Answer the index-th literal value of this A_RawFunction.
Answer the type of the index-th local variable.
Answer the number of arguments expected by this raw function.
Answer the type of the index-th outer variable.
Set the chunk that implements this A_RawFunction, and the countdown to reoptimization by the L2Generator.
Atomically increment the total number of invocations of A_Functions based on this A_RawFunction.