NAME ^

compilers/imcc/pcc.c

DESCRIPTION ^

Parrot calling convention implementation.

see: docs/pdds/pdd03_calling_conventions.pod

PCC Implementation by Leopold Toetsch

Functions ^

static Instruction *insINS
Utility instruction routine. Creates and inserts an instruction into the current block in one call.
SymReg *get_pasm_reg
get or create the SymReg
SymReg *get_const
get or create a constant
static Instruction *pcc_get_args
set arguments or return values get params or results used by expand_pcc_sub_call and expand_pcc_sub
static void unshift_self
prepend the object to args or self to params
void expand_pcc_sub
Expand a PCC (Parrot Calling Convention) subroutine by generating the appropriate prologue and epilogue for parameter passing/returning.
void expand_pcc_sub_ret
Expand a PCC sub return directive into its PASM instructions
static int pcc_reg_mov
RT #48260: Not yet documented!!!
static Instruction *move_regs
RT #48260: Not yet documented!!!
static int recursive_tail_call
convert a recursive tailcall into a loop
static void insert_tail_call
RT #48260: Not yet documented!!!
void expand_pcc_sub_call
Expand a PCC subroutine call (IMC) into its PASM instructions This is the nuts and bolts of pdd03 routine call style


parrot