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 ^

opcode_t *runops_fast_core

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

No bounds checking, profiling or tracing is performed.

opcode_t *runops_cgoto_core

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.

static opcode_t *runops_trace_core

Runs the Parrot operations starting at pc until there are no more operations, using the tracing interpreter.

opcode_t *runops_slow_core

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

opcode_t *runops_gc_debug_core

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.

opcode_t *runops_profile_core

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