Skip to content

Instantly share code, notes, and snippets.

@atrodo
Created July 4, 2011 03:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save atrodo/1062861 to your computer and use it in GitHub Desktop.
Save atrodo/1062861 to your computer and use it in GitHub Desktop.
# Current Source Filename 'fib.pir'
# get_params_pc PMC_CONST(1), P0
# set_i_p I1,P0
# set_i_ic I2,28
# le_i_ic_ic I1,1,L1
# set_i_p_kic I2,P0[1]
#L1: set_args_pc PMC_CONST(0), I2
# set_p_pc P1,PMC_CONST(3)
# invokecc_p P1
# get_results_pc PMC_CONST(0), I0
# print_sc "fib("
# print_i I2
# print_sc ") = "
# say_i I0
# end
# get_params_pc PMC_CONST(0), I3
# lt_i_ic_ic I3,2,L2
# sub_i_i_ic I1,I3,1
# sub_i_i_ic I2,I3,2
# set_args_pc PMC_CONST(0), I1
# set_p_pc P0,PMC_CONST(3)
# invokecc_p P0
# get_results_pc PMC_CONST(0), I4
# set_args_pc PMC_CONST(0), I2
# set_p_pc P1,PMC_CONST(3)
# invokecc_p P1
# get_results_pc PMC_CONST(0), I0
# add_i_i_i I3,I4,I0
#L2: set_returns_pc PMC_CONST(0), I3
.main 'pbc2lasm'
# get_params_pc PMC_CONST(1), P0
# free: 0 1 2 3 4 6 7 8 5 - alloc: - decl:
# raw_params := $P0 := $P0
# signature := PMC_CONST(1) := $OP1
$S8 = STR LOAD_CONST :[CURRENT_CONTEXT];
$P5 = STR LOOKUP $P10, $S8;
$P5 = PMC NEW_CTX $P5;
PUSH $P5, $P10;
CALL $P5;
$P5 = POP_ARG $P5;
# ctx := $P5 := $P5
$S7 = STR LOAD_CONST :[Parrot_pcc_get_continuation];
$P8 = STR LOOKUP $P10, $S7;
$P8 = PMC NEW_CTX $P8;
PUSH $P8, $P10;
# ctx := $P5
PUSH $P8, $P5;
CALL $P8;
$P8 = POP_ARG $P8;
# ccont := $P8 := $P8
$S6 = STR LOAD_CONST :[Parrot_pcc_get_caller_ctx];
$P7 = STR LOOKUP $P10, $S6;
$P7 = PMC NEW_CTX $P7;
PUSH $P7, $P10;
# ctx := $P5
PUSH $P7, $P5;
CALL $P7;
$P7 = POP_ARG $P7;
# caller_ctx := $P7 := $P7
$S4 = STR LOAD_CONST :[Parrot_pcc_get_signature];
$P6 = STR LOOKUP $P10, $S4;
$P6 = PMC NEW_CTX $P6;
PUSH $P6, $P10;
# caller_ctx := $P7
PUSH $P6, $P7;
CALL $P6;
$P6 = POP_ARG $P6;
# call_object := $P6 := $P6
# argc := $I4 := $I4
$S2 = STR LOAD_CONST :[Parrot_pcc_fill_params_from_op];
$P3 = STR LOOKUP $P10, $S2;
$P3 = PMC NEW_CTX $P3;
PUSH $P3, $P10;
# call_object := $P6
PUSH $P3, $P6;
# signature := $OP1
PUSH $P3, $OP1;
# raw_params := $P0
PUSH $P3, $P0;
$I1 = INT LOAD_IMM :4;
PUSH $P3, $I1;
CALL $P3;
$P3 = POP_ARG $P3;
$S1 = STR LOAD_CONST :[PObj_get_FLAGS];
$P2 = STR LOOKUP $P10, $S1;
$P2 = PMC NEW_CTX $P2;
# ccont := $P8
PUSH $P2, $P8;
CALL $P2;
$P2 = POP_ARG $P2;
$I1 = INT LOAD_IMM :4;
$I3 = INT AND $P2, $I1;
INT IF $I3 :l43;
INT GOTO :l44;
l43: INT NOOP;
$S1 = STR LOAD_CONST :[PObj_get_FLAGS];
$P3 = STR LOOKUP $P10, $S1;
$P3 = PMC NEW_CTX $P3;
# ccont := $P8
PUSH $P3, $P8;
CALL $P3;
$P3 = POP_ARG $P3;
$I2 = INT LOAD_IMM :4;
$I1 = INT NOT $I2;
$P3 = INT AND $P3, $I1;
$S3 = STR LOAD_CONST :[Parrot_pcc_dec_recursion_depth];
$P1 = STR LOOKUP $P10, $S3;
$P1 = PMC NEW_CTX $P1;
PUSH $P1, $P10;
# ctx := $P5
PUSH $P1, $P5;
CALL $P1;
$P1 = POP_ARG $P1;
$S3 = STR LOAD_CONST :[Parrot_pcc_set_caller_ctx];
$P1 = STR LOOKUP $P10, $S3;
$P1 = PMC NEW_CTX $P1;
PUSH $P1, $P10;
# ctx := $P5
PUSH $P1, $P5;
$S0 = STR LOAD_CONST :[Parrot_pcc_get_caller_ctx];
$P2 = STR LOOKUP $P10, $S0;
$P2 = PMC NEW_CTX $P2;
PUSH $P2, $P10;
# caller_ctx := $P7
PUSH $P2, $P7;
CALL $P2;
$P2 = POP_ARG $P2;
PUSH $P1, $P2;
CALL $P1;
$P1 = POP_ARG $P1;
44: INT NOOP;
$S3 = STR LOAD_CONST :[GETATTR_FixedIntegerArray_size];
$P1 = STR LOOKUP $P10, $S3;
$P1 = PMC NEW_CTX $P1;
PUSH $P1, $P10;
# signature := $OP1
PUSH $P1, $OP1;
# argc := $I4
PUSH $P1, $I4;
CALL $P1;
$P1 = POP_ARG $P1;
# Unhandled pasttype: macro
# free: 2 1 3 - alloc: 0 - decl: 5 8 7 6 4
# Dealloc 0
# Dealloc 5
# Dealloc 8
# Dealloc 7
# Dealloc 6
# Dealloc 4
# set_i_p I1,P0
# free: 0 1 2 3 4 5 6 7 8 - alloc: - decl:
$S7 = STR LOAD_CONST :[VTABLE_get_integer];
$P8 = STR LOOKUP $P10, $S7;
$P8 = PMC NEW_CTX $P8;
PUSH $P8, $P10;
PUSH $P8, $P10;
CALL $P8;
$P8 = POP_ARG $P8;
$I11 = $P8;
# Unhandled pirop: =
# Unhandled pasttype: macro
# free: 0 1 2 3 4 5 6 7 8 - alloc: - decl:
# set_i_ic I2,28
# free: 0 1 2 3 4 5 6 7 8 - alloc: - decl:
$I12 = 28;
# Unhandled pirop: =
# Unhandled pasttype: macro
# free: 0 1 2 3 4 5 6 7 8 - alloc: - decl:
# le_i_ic_ic I1,1,L1
# free: 0 1 2 3 4 5 6 7 8 - alloc: - decl:
# Unhandled pirop: le
INT IF :l226;
INT GOTO :l227;
l226: INT NOOP;
# Unhandled pasttype: macro
227: INT NOOP;
# Unhandled pasttype: macro
# free: 0 1 2 3 4 5 6 7 8 - alloc: - decl:
# set_i_p_kic I2,P0[1]
# free: 0 1 2 3 4 5 6 7 8 - alloc: - decl:
$S7 = STR LOAD_CONST :[VTABLE_get_integer_keyed_int];
$P8 = STR LOOKUP $P10, $S7;
$P8 = PMC NEW_CTX $P8;
PUSH $P8, $P10;
PUSH $P8, P0[1];
PUSH $P8, $O3;
CALL $P8;
$P8 = POP_ARG $P8;
$I12 = $P8;
# Unhandled pirop: =
# Unhandled pasttype: macro
# free: 0 1 2 3 4 5 6 7 8 - alloc: - decl:
L1:
# set_args_pc PMC_CONST(0), I2
# free: 0 1 2 3 4 6 7 5 8 - alloc: - decl:
# raw_args := $P0 := $P0
# signature := PMC_CONST(0) := $OP1
$S5 = STR LOAD_CONST :[Parrot_pcc_build_sig_object_from_op];
$P8 = STR LOOKUP $P10, $S5;
$P8 = PMC NEW_CTX $P8;
PUSH $P8, $P10;
# Unhandled var: Capture[0x9d1a53c]
PUSH $P8, ;
# signature := $OP1
PUSH $P8, $OP1;
# raw_args := $P0
PUSH $P8, $P0;
CALL $P8;
$P8 = POP_ARG $P8;
# call_sig := $P8 := $P8
# argc := $I5 := $I5
$S6 = STR LOAD_CONST :[GETATTR_FixedIntegerArray_size];
$P7 = STR LOOKUP $P10, $S6;
$P7 = PMC NEW_CTX $P7;
PUSH $P7, $P10;
# signature := $OP1
PUSH $P7, $OP1;
# argc := $I5
PUSH $P7, $I5;
CALL $P7;
$P7 = POP_ARG $P7;
$S6 = STR LOAD_CONST :[Parrot_pcc_set_signature];
$P7 = STR LOOKUP $P10, $S6;
$P7 = PMC NEW_CTX $P7;
PUSH $P7, $P10;
$S3 = STR LOAD_CONST :[CURRENT_CONTEXT];
$P4 = STR LOOKUP $P10, $S3;
$P4 = PMC NEW_CTX $P4;
PUSH $P4, $P10;
CALL $P4;
$P4 = POP_ARG $P4;
PUSH $P7, $P4;
# call_sig := $P8
PUSH $P7, $P8;
CALL $P7;
$P7 = POP_ARG $P7;
# Unhandled pasttype: macro
# free: 0 1 2 3 4 6 7 - alloc: - decl: 8 5
# Dealloc 8
# Dealloc 5
# set_p_pc P1,PMC_CONST(3)
# free: 0 1 2 3 4 5 6 7 8 - alloc: - decl:
$P11 = PMC_CONST(3);
# Unhandled pirop: =
$S7 = STR LOAD_CONST :[PARROT_GC_WRITE_BARRIER];
$P8 = STR LOOKUP $P10, $S7;
$P8 = PMC NEW_CTX $P8;
PUSH $P8, $P10;
$S5 = STR LOAD_CONST :[CURRENT_CONTEXT];
$P6 = STR LOOKUP $P10, $S5;
$P6 = PMC NEW_CTX $P6;
PUSH $P6, $P10;
CALL $P6;
$P6 = POP_ARG $P6;
PUSH $P8, $P6;
CALL $P8;
$P8 = POP_ARG $P8;
# Unhandled pasttype: macro
# free: 0 1 2 3 4 5 6 7 8 - alloc: - decl:
# invokecc_p P1
# free: 0 1 2 3 4 5 8 7 6 - alloc: - decl:
# p := $P11 := $OP1
# Unhandled pasttype: macro
# dest := :=
$S7 = STR LOAD_CONST :[Parrot_pcc_get_signature];
$P6 = STR LOOKUP $P10, $S7;
$P6 = PMC NEW_CTX $P6;
PUSH $P6, $P10;
$S5 = STR LOAD_CONST :[CURRENT_CONTEXT];
$P8 = STR LOOKUP $P10, $S5;
$P8 = PMC NEW_CTX $P8;
PUSH $P8, $P10;
CALL $P8;
$P8 = POP_ARG $P8;
PUSH $P6, $P8;
CALL $P6;
$P6 = POP_ARG $P6;
# signature := $P6 := $P6
$S8 = STR LOAD_CONST :[Parrot_pcc_set_pc];
$P7 = STR LOOKUP $P10, $S8;
$P7 = PMC NEW_CTX $P7;
PUSH $P7, $P10;
$S4 = STR LOAD_CONST :[CURRENT_CONTEXT];
$P5 = STR LOOKUP $P10, $S4;
$P5 = PMC NEW_CTX $P5;
PUSH $P5, $P10;
CALL $P5;
$P5 = POP_ARG $P5;
PUSH $P7, $P5;
# dest :=
PUSH $P7, ;
CALL $P7;
$P7 = POP_ARG $P7;
# Unhandled pirop: !
INT IF :l37;
INT GOTO :l38;
l37: INT NOOP;
$S8 = STR LOAD_CONST :[Parrot_pcc_set_object];
$P7 = STR LOOKUP $P10, $S8;
$P7 = PMC NEW_CTX $P7;
PUSH $P7, $P10;
# signature := $P6
PUSH $P7, $P6;
# Unhandled var: Capture[0x9c4fa50]
PUSH $P7, ;
CALL $P7;
$P7 = POP_ARG $P7;
38: INT NOOP;
# Unhandled pirop: arrow
# Unhandled var: Capture[0x9a632dc]
= ;
# Unhandled pirop: =
# dest :=
$S8 = STR LOAD_CONST :[VTABLE_invoke];
$P7 = STR LOOKUP $P10, $S8;
$P7 = PMC NEW_CTX $P7;
PUSH $P7, $P10;
# p := $OP1
PUSH $P7, $OP1;
# dest :=
PUSH $P7, ;
CALL $P7;
$P7 = POP_ARG $P7;
= $P7;
# Unhandled pirop: =
# Unhandled pasttype: macro
# free: 0 1 2 3 4 5 8 7 - alloc: - decl: 6
# Dealloc 6
# get_results_pc PMC_CONST(0), I0
# free: 2 1 3 5 8 7 4 6 - alloc: 0 - decl:
# raw_params := $P0 := $P0
# signature := PMC_CONST(0) := $OP1
$S4 = STR LOAD_CONST :[CURRENT_CONTEXT];
$P6 = STR LOOKUP $P10, $S4;
$P6 = PMC NEW_CTX $P6;
PUSH $P6, $P10;
CALL $P6;
$P6 = POP_ARG $P6;
# ctx := $P6 := $P6
$S7 = STR LOAD_CONST :[Parrot_pcc_get_signature];
$P4 = STR LOOKUP $P10, $S7;
$P4 = PMC NEW_CTX $P4;
PUSH $P4, $P10;
# ctx := $P6
PUSH $P4, $P6;
CALL $P4;
$P4 = POP_ARG $P4;
# call_object := $P4 := $P4
# argc := $I7 := $I7
$S5 = STR LOAD_CONST :[Parrot_pcc_fill_params_from_op];
$P8 = STR LOOKUP $P10, $S5;
$P8 = PMC NEW_CTX $P8;
PUSH $P8, $P10;
# call_object := $P4
PUSH $P8, $P4;
# signature := $OP1
PUSH $P8, $OP1;
# raw_params := $P0
PUSH $P8, $P0;
$I3 = INT LOAD_IMM :8;
PUSH $P8, $I3;
CALL $P8;
$P8 = POP_ARG $P8;
$S5 = STR LOAD_CONST :[GETATTR_FixedIntegerArray_size];
$P8 = STR LOOKUP $P10, $S5;
$P8 = PMC NEW_CTX $P8;
PUSH $P8, $P10;
# signature := $OP1
PUSH $P8, $OP1;
# argc := $I7
PUSH $P8, $I7;
CALL $P8;
$P8 = POP_ARG $P8;
$S5 = STR LOAD_CONST :[Parrot_pcc_set_signature];
$P8 = STR LOOKUP $P10, $S5;
$P8 = PMC NEW_CTX $P8;
PUSH $P8, $P10;
$S1 = STR LOAD_CONST :[CURRENT_CONTEXT];
$P3 = STR LOOKUP $P10, $S1;
$P3 = PMC NEW_CTX $P3;
PUSH $P3, $P10;
CALL $P3;
$P3 = POP_ARG $P3;
PUSH $P8, $P3;
# Unhandled var: Capture[0x9d1ff24]
PUSH $P8, ;
CALL $P8;
$P8 = POP_ARG $P8;
# Unhandled pasttype: macro
# free: 2 1 3 5 8 - alloc: 0 - decl: 6 4 7
# Dealloc 0
# Dealloc 6
# Dealloc 4
# Dealloc 7
# print_sc "fib("
# free: 0 1 2 3 4 5 6 7 8 - alloc: - decl:
# s := "fib(" := $OS1
# Unhandled pirop: &&
INT IF :l4;
INT GOTO :l5;
l4: INT NOOP;
$S7 = STR LOAD_CONST :[Parrot_io_putps];
$P8 = STR LOOKUP $P10, $S7;
$P8 = PMC NEW_CTX $P8;
PUSH $P8, $P10;
$S5 = STR LOAD_CONST :[_PIO_STDOUT];
$P6 = STR LOOKUP $P10, $S5;
$P6 = PMC NEW_CTX $P6;
PUSH $P6, $P10;
CALL $P6;
$P6 = POP_ARG $P6;
PUSH $P8, $P6;
# s := $OS1
PUSH $P8, $OS1;
CALL $P8;
$P8 = POP_ARG $P8;
5: INT NOOP;
# Unhandled pasttype: macro
# free: 0 1 2 3 4 5 6 7 8 - alloc: - decl:
# print_i I2
# free: 0 1 2 3 4 5 6 7 8 - alloc: - decl:
$S7 = STR LOAD_CONST :[Parrot_io_printf];
$P8 = STR LOOKUP $P10, $S7;
$P8 = PMC NEW_CTX $P8;
PUSH $P8, $P10;
# Unhandled var: Capture[0xa4d0f64]
PUSH $P8, ;
# Unhandled op: Capture[0xa528628]
PUSH $P8, ;
CALL $P8;
$P8 = POP_ARG $P8;
# Unhandled pasttype: macro
# free: 0 1 2 3 4 5 6 7 8 - alloc: - decl:
# print_sc ") = "
# free: 0 1 2 3 4 5 6 7 8 - alloc: - decl:
# s := ") = " := $OS1
# Unhandled pirop: &&
INT IF :l4;
INT GOTO :l5;
l4: INT NOOP;
$S7 = STR LOAD_CONST :[Parrot_io_putps];
$P8 = STR LOOKUP $P10, $S7;
$P8 = PMC NEW_CTX $P8;
PUSH $P8, $P10;
$S5 = STR LOAD_CONST :[_PIO_STDOUT];
$P6 = STR LOOKUP $P10, $S5;
$P6 = PMC NEW_CTX $P6;
PUSH $P6, $P10;
CALL $P6;
$P6 = POP_ARG $P6;
PUSH $P8, $P6;
# s := $OS1
PUSH $P8, $OS1;
CALL $P8;
$P8 = POP_ARG $P8;
5: INT NOOP;
# Unhandled pasttype: macro
# free: 0 1 2 3 4 5 6 7 8 - alloc: - decl:
# say_i I0
# free: 0 1 2 3 4 5 6 7 8 - alloc: - decl:
$S7 = STR LOAD_CONST :[Parrot_io_printf];
$P8 = STR LOOKUP $P10, $S7;
$P8 = PMC NEW_CTX $P8;
PUSH $P8, $P10;
# Unhandled node: INTVAL_FMT "\n"
PUSH $P8, ;
# Unhandled op: Capture[0xa4dba18]
PUSH $P8, ;
CALL $P8;
$P8 = POP_ARG $P8;
# Unhandled pasttype: macro
# free: 0 1 2 3 4 5 6 7 8 - alloc: - decl:
# TODO - end: not found
# get_params_pc PMC_CONST(0), I3
# free: 0 1 2 3 4 6 7 8 5 - alloc: - decl:
# raw_params := $P0 := $P0
# signature := PMC_CONST(0) := $OP1
$S8 = STR LOAD_CONST :[CURRENT_CONTEXT];
$P5 = STR LOOKUP $P10, $S8;
$P5 = PMC NEW_CTX $P5;
PUSH $P5, $P10;
CALL $P5;
$P5 = POP_ARG $P5;
# ctx := $P5 := $P5
$S7 = STR LOAD_CONST :[Parrot_pcc_get_continuation];
$P8 = STR LOOKUP $P10, $S7;
$P8 = PMC NEW_CTX $P8;
PUSH $P8, $P10;
# ctx := $P5
PUSH $P8, $P5;
CALL $P8;
$P8 = POP_ARG $P8;
# ccont := $P8 := $P8
$S6 = STR LOAD_CONST :[Parrot_pcc_get_caller_ctx];
$P7 = STR LOOKUP $P10, $S6;
$P7 = PMC NEW_CTX $P7;
PUSH $P7, $P10;
# ctx := $P5
PUSH $P7, $P5;
CALL $P7;
$P7 = POP_ARG $P7;
# caller_ctx := $P7 := $P7
$S4 = STR LOAD_CONST :[Parrot_pcc_get_signature];
$P6 = STR LOOKUP $P10, $S4;
$P6 = PMC NEW_CTX $P6;
PUSH $P6, $P10;
# caller_ctx := $P7
PUSH $P6, $P7;
CALL $P6;
$P6 = POP_ARG $P6;
# call_object := $P6 := $P6
# argc := $I4 := $I4
$S2 = STR LOAD_CONST :[Parrot_pcc_fill_params_from_op];
$P3 = STR LOOKUP $P10, $S2;
$P3 = PMC NEW_CTX $P3;
PUSH $P3, $P10;
# call_object := $P6
PUSH $P3, $P6;
# signature := $OP1
PUSH $P3, $OP1;
# raw_params := $P0
PUSH $P3, $P0;
$I1 = INT LOAD_IMM :4;
PUSH $P3, $I1;
CALL $P3;
$P3 = POP_ARG $P3;
$S1 = STR LOAD_CONST :[PObj_get_FLAGS];
$P2 = STR LOOKUP $P10, $S1;
$P2 = PMC NEW_CTX $P2;
# ccont := $P8
PUSH $P2, $P8;
CALL $P2;
$P2 = POP_ARG $P2;
$I1 = INT LOAD_IMM :4;
$I3 = INT AND $P2, $I1;
INT IF $I3 :l43;
INT GOTO :l44;
l43: INT NOOP;
$S1 = STR LOAD_CONST :[PObj_get_FLAGS];
$P3 = STR LOOKUP $P10, $S1;
$P3 = PMC NEW_CTX $P3;
# ccont := $P8
PUSH $P3, $P8;
CALL $P3;
$P3 = POP_ARG $P3;
$I2 = INT LOAD_IMM :4;
$I1 = INT NOT $I2;
$P3 = INT AND $P3, $I1;
$S3 = STR LOAD_CONST :[Parrot_pcc_dec_recursion_depth];
$P1 = STR LOOKUP $P10, $S3;
$P1 = PMC NEW_CTX $P1;
PUSH $P1, $P10;
# ctx := $P5
PUSH $P1, $P5;
CALL $P1;
$P1 = POP_ARG $P1;
$S3 = STR LOAD_CONST :[Parrot_pcc_set_caller_ctx];
$P1 = STR LOOKUP $P10, $S3;
$P1 = PMC NEW_CTX $P1;
PUSH $P1, $P10;
# ctx := $P5
PUSH $P1, $P5;
$S0 = STR LOAD_CONST :[Parrot_pcc_get_caller_ctx];
$P2 = STR LOOKUP $P10, $S0;
$P2 = PMC NEW_CTX $P2;
PUSH $P2, $P10;
# caller_ctx := $P7
PUSH $P2, $P7;
CALL $P2;
$P2 = POP_ARG $P2;
PUSH $P1, $P2;
CALL $P1;
$P1 = POP_ARG $P1;
44: INT NOOP;
$S3 = STR LOAD_CONST :[GETATTR_FixedIntegerArray_size];
$P1 = STR LOOKUP $P10, $S3;
$P1 = PMC NEW_CTX $P1;
PUSH $P1, $P10;
# signature := $OP1
PUSH $P1, $OP1;
# argc := $I4
PUSH $P1, $I4;
CALL $P1;
$P1 = POP_ARG $P1;
# Unhandled pasttype: macro
# free: 2 1 3 - alloc: 0 - decl: 5 8 7 6 4
# Dealloc 0
# Dealloc 5
# Dealloc 8
# Dealloc 7
# Dealloc 6
# Dealloc 4
# lt_i_ic_ic I3,2,L2
# free: 0 1 2 3 4 5 6 7 8 - alloc: - decl:
# Unhandled pirop: lt
INT IF :l163;
INT GOTO :l164;
l163: INT NOOP;
# Unhandled pasttype: macro
164: INT NOOP;
# Unhandled pasttype: macro
# free: 0 1 2 3 4 5 6 7 8 - alloc: - decl:
# sub_i_i_ic I1,I3,1
# free: 0 1 2 3 4 5 6 7 8 - alloc: - decl:
# Unhandled pirop: -
$I11 = ;
# Unhandled pirop: =
# Unhandled pasttype: macro
# free: 0 1 2 3 4 5 6 7 8 - alloc: - decl:
# sub_i_i_ic I2,I3,2
# free: 0 1 2 3 4 5 6 7 8 - alloc: - decl:
# Unhandled pirop: -
$I12 = ;
# Unhandled pirop: =
# Unhandled pasttype: macro
# free: 0 1 2 3 4 5 6 7 8 - alloc: - decl:
# set_args_pc PMC_CONST(0), I1
# free: 0 1 2 3 4 6 7 5 8 - alloc: - decl:
# raw_args := $P0 := $P0
# signature := PMC_CONST(0) := $OP1
$S5 = STR LOAD_CONST :[Parrot_pcc_build_sig_object_from_op];
$P8 = STR LOOKUP $P10, $S5;
$P8 = PMC NEW_CTX $P8;
PUSH $P8, $P10;
# Unhandled var: Capture[0x9d1a53c]
PUSH $P8, ;
# signature := $OP1
PUSH $P8, $OP1;
# raw_args := $P0
PUSH $P8, $P0;
CALL $P8;
$P8 = POP_ARG $P8;
# call_sig := $P8 := $P8
# argc := $I5 := $I5
$S6 = STR LOAD_CONST :[GETATTR_FixedIntegerArray_size];
$P7 = STR LOOKUP $P10, $S6;
$P7 = PMC NEW_CTX $P7;
PUSH $P7, $P10;
# signature := $OP1
PUSH $P7, $OP1;
# argc := $I5
PUSH $P7, $I5;
CALL $P7;
$P7 = POP_ARG $P7;
$S6 = STR LOAD_CONST :[Parrot_pcc_set_signature];
$P7 = STR LOOKUP $P10, $S6;
$P7 = PMC NEW_CTX $P7;
PUSH $P7, $P10;
$S3 = STR LOAD_CONST :[CURRENT_CONTEXT];
$P4 = STR LOOKUP $P10, $S3;
$P4 = PMC NEW_CTX $P4;
PUSH $P4, $P10;
CALL $P4;
$P4 = POP_ARG $P4;
PUSH $P7, $P4;
# call_sig := $P8
PUSH $P7, $P8;
CALL $P7;
$P7 = POP_ARG $P7;
# Unhandled pasttype: macro
# free: 0 1 2 3 4 6 7 - alloc: - decl: 8 5
# Dealloc 8
# Dealloc 5
# set_p_pc P0,PMC_CONST(3)
# free: 0 1 2 3 4 5 6 7 8 - alloc: - decl:
$P10 = PMC_CONST(3);
# Unhandled pirop: =
$S7 = STR LOAD_CONST :[PARROT_GC_WRITE_BARRIER];
$P8 = STR LOOKUP $P10, $S7;
$P8 = PMC NEW_CTX $P8;
PUSH $P8, $P10;
$S5 = STR LOAD_CONST :[CURRENT_CONTEXT];
$P6 = STR LOOKUP $P10, $S5;
$P6 = PMC NEW_CTX $P6;
PUSH $P6, $P10;
CALL $P6;
$P6 = POP_ARG $P6;
PUSH $P8, $P6;
CALL $P8;
$P8 = POP_ARG $P8;
# Unhandled pasttype: macro
# free: 0 1 2 3 4 5 6 7 8 - alloc: - decl:
# invokecc_p P0
# free: 0 1 2 3 4 5 8 7 6 - alloc: - decl:
# p := $P10 := $OP1
# Unhandled pasttype: macro
# dest := :=
$S7 = STR LOAD_CONST :[Parrot_pcc_get_signature];
$P6 = STR LOOKUP $P10, $S7;
$P6 = PMC NEW_CTX $P6;
PUSH $P6, $P10;
$S5 = STR LOAD_CONST :[CURRENT_CONTEXT];
$P8 = STR LOOKUP $P10, $S5;
$P8 = PMC NEW_CTX $P8;
PUSH $P8, $P10;
CALL $P8;
$P8 = POP_ARG $P8;
PUSH $P6, $P8;
CALL $P6;
$P6 = POP_ARG $P6;
# signature := $P6 := $P6
$S8 = STR LOAD_CONST :[Parrot_pcc_set_pc];
$P7 = STR LOOKUP $P10, $S8;
$P7 = PMC NEW_CTX $P7;
PUSH $P7, $P10;
$S4 = STR LOAD_CONST :[CURRENT_CONTEXT];
$P5 = STR LOOKUP $P10, $S4;
$P5 = PMC NEW_CTX $P5;
PUSH $P5, $P10;
CALL $P5;
$P5 = POP_ARG $P5;
PUSH $P7, $P5;
# dest :=
PUSH $P7, ;
CALL $P7;
$P7 = POP_ARG $P7;
# Unhandled pirop: !
INT IF :l37;
INT GOTO :l38;
l37: INT NOOP;
$S8 = STR LOAD_CONST :[Parrot_pcc_set_object];
$P7 = STR LOOKUP $P10, $S8;
$P7 = PMC NEW_CTX $P7;
PUSH $P7, $P10;
# signature := $P6
PUSH $P7, $P6;
# Unhandled var: Capture[0x9c4fa50]
PUSH $P7, ;
CALL $P7;
$P7 = POP_ARG $P7;
38: INT NOOP;
# Unhandled pirop: arrow
# Unhandled var: Capture[0x9a632dc]
= ;
# Unhandled pirop: =
# dest :=
$S8 = STR LOAD_CONST :[VTABLE_invoke];
$P7 = STR LOOKUP $P10, $S8;
$P7 = PMC NEW_CTX $P7;
PUSH $P7, $P10;
# p := $OP1
PUSH $P7, $OP1;
# dest :=
PUSH $P7, ;
CALL $P7;
$P7 = POP_ARG $P7;
= $P7;
# Unhandled pirop: =
# Unhandled pasttype: macro
# free: 0 1 2 3 4 5 8 7 - alloc: - decl: 6
# Dealloc 6
# get_results_pc PMC_CONST(0), I4
# free: 2 1 3 5 8 7 4 6 - alloc: 0 - decl:
# raw_params := $P0 := $P0
# signature := PMC_CONST(0) := $OP1
$S4 = STR LOAD_CONST :[CURRENT_CONTEXT];
$P6 = STR LOOKUP $P10, $S4;
$P6 = PMC NEW_CTX $P6;
PUSH $P6, $P10;
CALL $P6;
$P6 = POP_ARG $P6;
# ctx := $P6 := $P6
$S7 = STR LOAD_CONST :[Parrot_pcc_get_signature];
$P4 = STR LOOKUP $P10, $S7;
$P4 = PMC NEW_CTX $P4;
PUSH $P4, $P10;
# ctx := $P6
PUSH $P4, $P6;
CALL $P4;
$P4 = POP_ARG $P4;
# call_object := $P4 := $P4
# argc := $I7 := $I7
$S5 = STR LOAD_CONST :[Parrot_pcc_fill_params_from_op];
$P8 = STR LOOKUP $P10, $S5;
$P8 = PMC NEW_CTX $P8;
PUSH $P8, $P10;
# call_object := $P4
PUSH $P8, $P4;
# signature := $OP1
PUSH $P8, $OP1;
# raw_params := $P0
PUSH $P8, $P0;
$I3 = INT LOAD_IMM :8;
PUSH $P8, $I3;
CALL $P8;
$P8 = POP_ARG $P8;
$S5 = STR LOAD_CONST :[GETATTR_FixedIntegerArray_size];
$P8 = STR LOOKUP $P10, $S5;
$P8 = PMC NEW_CTX $P8;
PUSH $P8, $P10;
# signature := $OP1
PUSH $P8, $OP1;
# argc := $I7
PUSH $P8, $I7;
CALL $P8;
$P8 = POP_ARG $P8;
$S5 = STR LOAD_CONST :[Parrot_pcc_set_signature];
$P8 = STR LOOKUP $P10, $S5;
$P8 = PMC NEW_CTX $P8;
PUSH $P8, $P10;
$S1 = STR LOAD_CONST :[CURRENT_CONTEXT];
$P3 = STR LOOKUP $P10, $S1;
$P3 = PMC NEW_CTX $P3;
PUSH $P3, $P10;
CALL $P3;
$P3 = POP_ARG $P3;
PUSH $P8, $P3;
# Unhandled var: Capture[0x9d1ff24]
PUSH $P8, ;
CALL $P8;
$P8 = POP_ARG $P8;
# Unhandled pasttype: macro
# free: 2 1 3 5 8 - alloc: 0 - decl: 6 4 7
# Dealloc 0
# Dealloc 6
# Dealloc 4
# Dealloc 7
# set_args_pc PMC_CONST(0), I2
# free: 0 1 2 3 4 6 7 5 8 - alloc: - decl:
# raw_args := $P0 := $P0
# signature := PMC_CONST(0) := $OP1
$S5 = STR LOAD_CONST :[Parrot_pcc_build_sig_object_from_op];
$P8 = STR LOOKUP $P10, $S5;
$P8 = PMC NEW_CTX $P8;
PUSH $P8, $P10;
# Unhandled var: Capture[0x9d1a53c]
PUSH $P8, ;
# signature := $OP1
PUSH $P8, $OP1;
# raw_args := $P0
PUSH $P8, $P0;
CALL $P8;
$P8 = POP_ARG $P8;
# call_sig := $P8 := $P8
# argc := $I5 := $I5
$S6 = STR LOAD_CONST :[GETATTR_FixedIntegerArray_size];
$P7 = STR LOOKUP $P10, $S6;
$P7 = PMC NEW_CTX $P7;
PUSH $P7, $P10;
# signature := $OP1
PUSH $P7, $OP1;
# argc := $I5
PUSH $P7, $I5;
CALL $P7;
$P7 = POP_ARG $P7;
$S6 = STR LOAD_CONST :[Parrot_pcc_set_signature];
$P7 = STR LOOKUP $P10, $S6;
$P7 = PMC NEW_CTX $P7;
PUSH $P7, $P10;
$S3 = STR LOAD_CONST :[CURRENT_CONTEXT];
$P4 = STR LOOKUP $P10, $S3;
$P4 = PMC NEW_CTX $P4;
PUSH $P4, $P10;
CALL $P4;
$P4 = POP_ARG $P4;
PUSH $P7, $P4;
# call_sig := $P8
PUSH $P7, $P8;
CALL $P7;
$P7 = POP_ARG $P7;
# Unhandled pasttype: macro
# free: 0 1 2 3 4 6 7 - alloc: - decl: 8 5
# Dealloc 8
# Dealloc 5
# set_p_pc P1,PMC_CONST(3)
# free: 0 1 2 3 4 5 6 7 8 - alloc: - decl:
$P11 = PMC_CONST(3);
# Unhandled pirop: =
$S7 = STR LOAD_CONST :[PARROT_GC_WRITE_BARRIER];
$P8 = STR LOOKUP $P10, $S7;
$P8 = PMC NEW_CTX $P8;
PUSH $P8, $P10;
$S5 = STR LOAD_CONST :[CURRENT_CONTEXT];
$P6 = STR LOOKUP $P10, $S5;
$P6 = PMC NEW_CTX $P6;
PUSH $P6, $P10;
CALL $P6;
$P6 = POP_ARG $P6;
PUSH $P8, $P6;
CALL $P8;
$P8 = POP_ARG $P8;
# Unhandled pasttype: macro
# free: 0 1 2 3 4 5 6 7 8 - alloc: - decl:
# invokecc_p P1
# free: 0 1 2 3 4 5 8 7 6 - alloc: - decl:
# p := $P11 := $OP1
# Unhandled pasttype: macro
# dest := :=
$S7 = STR LOAD_CONST :[Parrot_pcc_get_signature];
$P6 = STR LOOKUP $P10, $S7;
$P6 = PMC NEW_CTX $P6;
PUSH $P6, $P10;
$S5 = STR LOAD_CONST :[CURRENT_CONTEXT];
$P8 = STR LOOKUP $P10, $S5;
$P8 = PMC NEW_CTX $P8;
PUSH $P8, $P10;
CALL $P8;
$P8 = POP_ARG $P8;
PUSH $P6, $P8;
CALL $P6;
$P6 = POP_ARG $P6;
# signature := $P6 := $P6
$S8 = STR LOAD_CONST :[Parrot_pcc_set_pc];
$P7 = STR LOOKUP $P10, $S8;
$P7 = PMC NEW_CTX $P7;
PUSH $P7, $P10;
$S4 = STR LOAD_CONST :[CURRENT_CONTEXT];
$P5 = STR LOOKUP $P10, $S4;
$P5 = PMC NEW_CTX $P5;
PUSH $P5, $P10;
CALL $P5;
$P5 = POP_ARG $P5;
PUSH $P7, $P5;
# dest :=
PUSH $P7, ;
CALL $P7;
$P7 = POP_ARG $P7;
# Unhandled pirop: !
INT IF :l37;
INT GOTO :l38;
l37: INT NOOP;
$S8 = STR LOAD_CONST :[Parrot_pcc_set_object];
$P7 = STR LOOKUP $P10, $S8;
$P7 = PMC NEW_CTX $P7;
PUSH $P7, $P10;
# signature := $P6
PUSH $P7, $P6;
# Unhandled var: Capture[0x9c4fa50]
PUSH $P7, ;
CALL $P7;
$P7 = POP_ARG $P7;
38: INT NOOP;
# Unhandled pirop: arrow
# Unhandled var: Capture[0x9a632dc]
= ;
# Unhandled pirop: =
# dest :=
$S8 = STR LOAD_CONST :[VTABLE_invoke];
$P7 = STR LOOKUP $P10, $S8;
$P7 = PMC NEW_CTX $P7;
PUSH $P7, $P10;
# p := $OP1
PUSH $P7, $OP1;
# dest :=
PUSH $P7, ;
CALL $P7;
$P7 = POP_ARG $P7;
= $P7;
# Unhandled pirop: =
# Unhandled pasttype: macro
# free: 0 1 2 3 4 5 8 7 - alloc: - decl: 6
# Dealloc 6
# get_results_pc PMC_CONST(0), I0
# free: 2 1 3 5 8 7 4 6 - alloc: 0 - decl:
# raw_params := $P0 := $P0
# signature := PMC_CONST(0) := $OP1
$S4 = STR LOAD_CONST :[CURRENT_CONTEXT];
$P6 = STR LOOKUP $P10, $S4;
$P6 = PMC NEW_CTX $P6;
PUSH $P6, $P10;
CALL $P6;
$P6 = POP_ARG $P6;
# ctx := $P6 := $P6
$S7 = STR LOAD_CONST :[Parrot_pcc_get_signature];
$P4 = STR LOOKUP $P10, $S7;
$P4 = PMC NEW_CTX $P4;
PUSH $P4, $P10;
# ctx := $P6
PUSH $P4, $P6;
CALL $P4;
$P4 = POP_ARG $P4;
# call_object := $P4 := $P4
# argc := $I7 := $I7
$S5 = STR LOAD_CONST :[Parrot_pcc_fill_params_from_op];
$P8 = STR LOOKUP $P10, $S5;
$P8 = PMC NEW_CTX $P8;
PUSH $P8, $P10;
# call_object := $P4
PUSH $P8, $P4;
# signature := $OP1
PUSH $P8, $OP1;
# raw_params := $P0
PUSH $P8, $P0;
$I3 = INT LOAD_IMM :8;
PUSH $P8, $I3;
CALL $P8;
$P8 = POP_ARG $P8;
$S5 = STR LOAD_CONST :[GETATTR_FixedIntegerArray_size];
$P8 = STR LOOKUP $P10, $S5;
$P8 = PMC NEW_CTX $P8;
PUSH $P8, $P10;
# signature := $OP1
PUSH $P8, $OP1;
# argc := $I7
PUSH $P8, $I7;
CALL $P8;
$P8 = POP_ARG $P8;
$S5 = STR LOAD_CONST :[Parrot_pcc_set_signature];
$P8 = STR LOOKUP $P10, $S5;
$P8 = PMC NEW_CTX $P8;
PUSH $P8, $P10;
$S1 = STR LOAD_CONST :[CURRENT_CONTEXT];
$P3 = STR LOOKUP $P10, $S1;
$P3 = PMC NEW_CTX $P3;
PUSH $P3, $P10;
CALL $P3;
$P3 = POP_ARG $P3;
PUSH $P8, $P3;
# Unhandled var: Capture[0x9d1ff24]
PUSH $P8, ;
CALL $P8;
$P8 = POP_ARG $P8;
# Unhandled pasttype: macro
# free: 2 1 3 5 8 - alloc: 0 - decl: 6 4 7
# Dealloc 0
# Dealloc 6
# Dealloc 4
# Dealloc 7
# add_i_i_i I3,I4,I0
# free: 0 1 2 3 4 5 6 7 8 - alloc: - decl:
$I8 = INT ADD $I14, $I10;
$I13 = $I8;
# Unhandled pirop: =
# Unhandled pasttype: macro
# free: 0 1 2 3 4 5 6 7 8 - alloc: - decl:
L2:
# set_returns_pc PMC_CONST(0), I3
# free: 2 1 3 5 8 7 6 4 - alloc: 0 - decl:
# raw_args := $P0 := $P0
# signature := PMC_CONST(0) := $OP1
$S6 = STR LOAD_CONST :[Parrot_pcc_build_sig_object_from_op];
$P4 = STR LOOKUP $P10, $S6;
$P4 = PMC NEW_CTX $P4;
PUSH $P4, $P10;
$S8 = STR LOAD_CONST :[Parrot_pcc_get_signature];
$P7 = STR LOOKUP $P10, $S8;
$P7 = PMC NEW_CTX $P7;
PUSH $P7, $P10;
$S3 = STR LOAD_CONST :[Parrot_pcc_get_caller_ctx];
$P5 = STR LOOKUP $P10, $S3;
$P5 = PMC NEW_CTX $P5;
PUSH $P5, $P10;
$S2 = STR LOAD_CONST :[CURRENT_CONTEXT];
$P1 = STR LOOKUP $P10, $S2;
$P1 = PMC NEW_CTX $P1;
PUSH $P1, $P10;
CALL $P1;
$P1 = POP_ARG $P1;
PUSH $P5, $P1;
CALL $P5;
$P5 = POP_ARG $P5;
PUSH $P7, $P5;
CALL $P7;
$P7 = POP_ARG $P7;
PUSH $P4, $P7;
# signature := $OP1
PUSH $P4, $OP1;
# raw_args := $P0
PUSH $P4, $P0;
CALL $P4;
$P4 = POP_ARG $P4;
# call_sig := $P4 := $P4
# argc := $I6 := $I6
$S8 = STR LOAD_CONST :[Parrot_pcc_set_signature];
$P7 = STR LOOKUP $P10, $S8;
$P7 = PMC NEW_CTX $P7;
PUSH $P7, $P10;
$S3 = STR LOAD_CONST :[CURRENT_CONTEXT];
$P5 = STR LOOKUP $P10, $S3;
$P5 = PMC NEW_CTX $P5;
PUSH $P5, $P10;
CALL $P5;
$P5 = POP_ARG $P5;
PUSH $P7, $P5;
# call_sig := $P4
PUSH $P7, $P4;
CALL $P7;
$P7 = POP_ARG $P7;
$S8 = STR LOAD_CONST :[GETATTR_FixedIntegerArray_size];
$P7 = STR LOOKUP $P10, $S8;
$P7 = PMC NEW_CTX $P7;
PUSH $P7, $P10;
# signature := $OP1
PUSH $P7, $OP1;
# argc := $I6
PUSH $P7, $I6;
CALL $P7;
$P7 = POP_ARG $P7;
# Unhandled pasttype: macro
# free: 2 1 3 5 8 7 - alloc: 0 - decl: 4 6
# Dealloc 0
# Dealloc 4
# Dealloc 6
.end;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment