NAME ^

src/inter_run.c - Parrot Interpreter - Run Ops and Methods

DESCRIPTION ^

Various functions that call the run loop.

Functions ^

void runops(Interp *interpreter, size_t offset)

Run parrot ops. Set exception handler and/or resume after exception.

void Parrot_runops_fromc(Parrot_Interp interpreter, PMC *sub)

Runs the Parrot ops, called from C code. The function arguments are already setup according to Parrot calling conventions, the sub argument is an invocable Sub PMC.

PARROT_INLINE static regsave *save_regs(Parrot_Interp interp, PMC *sub)

PARROT_INLINE static void restore_regs(Parrot_Interp interp, regsave *data)

Save/restore all registers.

void mark_saved_regs(Parrot_Interp interpreter)

Mark saved register aread live during DOD

void Parrot_runops_fromc_save(Parrot_Interp, PMC *sub)

Like above but preserve registers.

void Parrot_run_meth_fromc_save(Parrot_Interp, PMC *sub, PMC *obj, STRING *meth)

Run a method sub from C.

void *Parrot_runops_fromc_args(Parrot_Interp interpreter, PMC *sub, const char *sig, ...)

void *Parrot_runops_fromc_args_save(Parrot_Interp interpreter, PMC *sub, const char *sig, ...)

INTVAL Parrot_runops_fromc_args_save_reti(Parrot_Interp interpreter, PMC *sub, const char *sig, ...)

FLOATVAL Parrot_runops_fromc_args_save_retf(Parrot_Interp interpreter, PMC *sub, const char *sig, ...)

void *Parrot_runops_fromc_arglist_save(Parrot_Interp interpreter, PMC *sub, const char *sig, va_list args)

void *Parrot_run_meth_fromc_args_save(Parrot_Interp interpreter, PMC *sub, PMC *obj, STRING *meth, const char *sig, ...)

INTVAL Parrot_run_meth_fromc_args_save_reti(Parrot_Interp interpreter, PMC *sub, PMC *obj, STRING *meth, const char *sig, ...)

FLOATVAL Parrot_run_meth_fromc_args_save_retf(Parrot_Interp interpreter, PMC *sub, PMC *obj, STRING *meth, const char *sig, ...)

Run parrot ops, called from C code, function arguments are passed as va_args according to signature the sub argument is an invocable Sub PMC. The _save variants preserve registers.

Signatures are similar to NCI:

    v ... void return
    I ... INTVAL (not Interpreter)
    N ... NUMVAL
    S ... STRING*
    P ... PMC*

SEE ALSO ^

include/parrot/interpreter.h, src/interpreter.c.


parrot