NAME ^

src/runops_cores.c - Run Loops

DESCRIPTION ^

This file implements the various run loops for the interpreter. A slow one with bounds checking, tracing and (optional) profiling, and a fast one without. There's also one which uses computed goto, which enables the faster dispatch of operations.

Functions ^

PARROT_WARN_UNUSED_RESULT PARROT_CAN_RETURN_NULL opcode_t *runops_fast_core(PARROT_INTERP, NOTNULL(opcode_t *pc))

Runs the Parrot operations starting at pc until there are no more operations.

No bounds checking, profiling or tracing is performed.

PARROT_WARN_UNUSED_RESULT PARROT_CAN_RETURN_NULL opcode_t *runops_cgoto_core(PARROT_INTERP, NOTNULL(opcode_t *pc))

Runs the Parrot operations starting at pc until there are no more operations, using the computed goto core.

No bounds checking, profiling or tracing is performed.

If computed goto is not available then Parrot exits with exit code 1.

PARROT_WARN_UNUSED_RESULT PARROT_CAN_RETURN_NULL static opcode_t *runops_trace_core(PARROT_INTERP, NOTNULL(opcode_t *pc))

RT#48260: Not yet documented!!!

PARROT_WARN_UNUSED_RESULT PARROT_CAN_RETURN_NULL opcode_t *runops_slow_core(PARROT_INTERP, NOTNULL(opcode_t *pc))

Runs the Parrot operations starting at pc until there are no more operations, with tracing and bounds checking enabled.

PARROT_WARN_UNUSED_RESULT PARROT_CAN_RETURN_NULL opcode_t *runops_gc_debug_core(PARROT_INTERP, NOTNULL(opcode_t *pc))

Runs the Parrot operations starting at pc until there are no more operations, performing a full GC run before each op. This is very slow, but it's also a very quick way to find GC problems.

PARROT_WARN_UNUSED_RESULT PARROT_CAN_RETURN_NULL opcode_t *runops_profile_core(PARROT_INTERP, NOTNULL(opcode_t *pc))

Runs the Parrot operations starting at pc until there are no more operations, with tracing, bounds checking and profiling enabled.

*/

/* * Local variables: * c-file-style: "parrot" * End: * vim: expandtab shiftwidth=4: */


parrot