NAME
pic.ops - PIC (Polymorphic Inline Cache) opcode variants
DESCRIPTION
During predereferencing opcodes that allow caching are rewritten so that equivalent opcodes in this file are used. User code MUST never emit these opcodes directly.
General infix operations
These operations take an infix operation number and PMC arguments.
- pic_infix__(inconst INT, invar PMC, invar PMC) One for fun and MOPS.
- pic_inline_sub__(inconst INT, invar PMC, invar PMC) And for more fun an inlined variant too.
- pic_get_params__(inconst PMC /* , ... */) Fetch function parameters for this subroutine.
- pic_set_returns__(inconst PMC /* , ... */) Return values to caller.
- pic_callr__(inconst PMC) Call the function $1 as
pc = func(interp, 0, **args)
.
args[0] holds the address of the function result,
args[1..] are function arguments,
both according to the get_results
and set_args
opcodes.
The function is a C interface function (or NCI) or a JITed PIR function.
args[n+1] holds the pc
of the next opcode and is usually just returned.COPYRIGHT
Copyright (C) 2005-2008, Parrot Foundation.
LICENSE
This program is free software. It is subject to the same license as the Parrot interpreter itself.