Parrot::OpTrans::CPrederef - C Predereferenced Transform
Parrot::OpTrans::CPrederef inherits from Parrot::OpTrans::C to provide predereferenced register addressing run loop.
Parrot::OpTrans::CPrederef
Parrot::OpTrans::C
core_type()
The core type is PARROT_PREDEREF_CORE.
PARROT_PREDEREF_CORE
prefix()
The prefix is 'Parrot_pred_'.
'Parrot_pred_'
This is used in Parrot::Op's func_name().
Parrot::Op
func_name()
defines()
Returns the C #define macros required by the ops.
#define
suffix()
The suffix is '_prederef'.
'_prederef'
opsarraytype()
The ops array type is void *.
void *
gen_goto($where)
TODO - This is the same implementation as in Parrot::OpTrans. It should not be duplicated.
Parrot::OpTrans
expr_pop()
Addresses on the stack are pointers into the bytecode array, and so must be converted to pointers into the prederef array.
expr_address($address)
Same logic as expr_pop().
expr_offset($offset)
goto_offset($offset)
goto_address($address)
CPrederef is funky in that expr OFFSET(n) uses a pointer to the original bytecode, but goto OFFSET(n) returns a pointer into the prederef array. (see expr_pop(), above, for a description of why this works.)
access_arg($type, $num, $op)
Returns the C code for the specified op argument type (see Parrot::OpTrans) and value. $op is an instance of Parrot::Op.
$op
Parrot::OpTrans::CGP
Parrot::OpTrans::CGoto
Parrot::OpTrans::CSwitch
Parrot::OpTrans::Compiled
1 POD Error
The following errors were encountered while parsing the POD:
=over without closing =back
To install Make, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Make
CPAN shell
perl -MCPAN -e shell install Make
For more information on module installation, please visit the detailed CPAN module installation guide.