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, The Perl Foundation.

LICENSE ^

This program is free software. It is subject to the same license as the Parrot interpreter itself.


parrot