From 01bcdf1e009cf78731522d4f100575b803f6504a Mon Sep 17 00:00:00 2001 From: Vasily Chekalkin Date: Tue, 15 Feb 2011 16:33:24 +1100 Subject: [PATCH 01/17] Add Op.need_write_barrier. Alos switch test to use Parrot's Test::More instead of NQP builtin --- compilers/opsc/src/Ops/Op.pm | 2 ++ t/compilers/opsc/03-past.t | 17 +++++++++++++++-- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/compilers/opsc/src/Ops/Op.pm b/compilers/opsc/src/Ops/Op.pm index bff8eaf3bf..6797654ce4 100644 --- a/compilers/opsc/src/Ops/Op.pm +++ b/compilers/opsc/src/Ops/Op.pm @@ -126,6 +126,8 @@ method name($name?) { self.attr('name', $name, defined($name)) } method args($args?) { self.attr('args', $args, defined($args)) } +method need_write_barrier($args?) { self.attr('need_write_barrier', $args, defined($args)) } + method arg_types($args?) { my $res := self.attr('arg_types', $args, defined($args)); diff --git a/t/compilers/opsc/03-past.t b/t/compilers/opsc/03-past.t index dcaee7da57..3ff5d8d3bc 100644 --- a/t/compilers/opsc/03-past.t +++ b/t/compilers/opsc/03-past.t @@ -8,7 +8,7 @@ pir::load_bytecode('opsc.pbc'); pir::load_bytecode('dumper.pbc'); -plan(26); +Q:PIR{ .include "test_more.pir" }; my $buf := q| BEGIN_OPS_PREAMBLE @@ -25,6 +25,15 @@ inline op foo(out INT, in PMC, inconst NUM) :flow :deprecated { foo # We don't handle anything in C during parse/past. } +inline op bar(out PMC) { + foo # We don't handle anything in C during parse/past. +} + +inline op bar(inout STR) { + foo # We don't handle anything in C during parse/past. +} + + |; my $compiler := pir::compreg__Ps('Ops'); @@ -38,7 +47,7 @@ ok(~$preambles[0] ~~ /HEADER/, 'Header parsed'); my @ops := @($past); # One "bar" and two "foo" -ok(+@ops == 3, 'We have 3 ops'); +is(+@ops, 5, 'We have 5 ops'); my $op := @ops[1]; ok($op.name == 'foo', "Name parsed"); @@ -98,6 +107,10 @@ for @($op) { } ok( $goto_offset, "goto NEXT appended for non :flow ops"); +ok( !$op.need_write_barrier, "Write Barrier is not required"); + + +done_testing(); # Don't forget to update plan! From bb453350a2b2dda19f34bcfb7a1e7bdf51d2fb46 Mon Sep 17 00:00:00 2001 From: Vasily Chekalkin Date: Tue, 15 Feb 2011 16:36:23 +1100 Subject: [PATCH 02/17] Add failing test for setting need_write_barrier. --- t/compilers/opsc/03-past.t | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/t/compilers/opsc/03-past.t b/t/compilers/opsc/03-past.t index 3ff5d8d3bc..f062fa3544 100644 --- a/t/compilers/opsc/03-past.t +++ b/t/compilers/opsc/03-past.t @@ -107,8 +107,13 @@ for @($op) { } ok( $goto_offset, "goto NEXT appended for non :flow ops"); +# Check write barriers. ok( !$op.need_write_barrier, "Write Barrier is not required"); +$op := @ops[3]; +ok( $op.need_write_barrier, "'out PMC' Write Barrier"); +$op := @ops[4]; +ok( $op.need_write_barrier, "'inout STR' Write Barrier"); done_testing(); From 0dcf6efb18ef07fb99ee0013fe2fc42042a52b85 Mon Sep 17 00:00:00 2001 From: Vasily Chekalkin Date: Tue, 15 Feb 2011 16:45:02 +1100 Subject: [PATCH 03/17] Implement Ops::Op.need_write_barrier --- compilers/opsc/src/Ops/Op.pm | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/compilers/opsc/src/Ops/Op.pm b/compilers/opsc/src/Ops/Op.pm index 6797654ce4..c462925097 100644 --- a/compilers/opsc/src/Ops/Op.pm +++ b/compilers/opsc/src/Ops/Op.pm @@ -126,7 +126,15 @@ method name($name?) { self.attr('name', $name, defined($name)) } method args($args?) { self.attr('args', $args, defined($args)) } -method need_write_barrier($args?) { self.attr('need_write_barrier', $args, defined($args)) } +method need_write_barrier() { + my $need := 0; + # We need write barriers only for (in)out PMC|STR + for self.args -> $a { + $need := ($a eq 'STR' || $a eq 'PMC') + && ($a eq 'out' || $a eq 'inout'); + } + $need; +} method arg_types($args?) { my $res := self.attr('arg_types', $args, defined($args)); From 29ff1a6fde70985e364cfe5337f1472daf21f9a4 Mon Sep 17 00:00:00 2001 From: Vasily Chekalkin Date: Tue, 15 Feb 2011 16:56:48 +1100 Subject: [PATCH 04/17] Insert Write Barrier into op when needed --- compilers/opsc/src/Ops/Compiler/Actions.pm | 9 ++++++++- t/compilers/opsc/03-past.t | 2 ++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/compilers/opsc/src/Ops/Compiler/Actions.pm b/compilers/opsc/src/Ops/Compiler/Actions.pm index fe3a1f3fb1..7abbc39f1b 100644 --- a/compilers/opsc/src/Ops/Compiler/Actions.pm +++ b/compilers/opsc/src/Ops/Compiler/Actions.pm @@ -88,6 +88,13 @@ method op($/) { $op := ~$; $op := @norm_args; + if $op.need_write_barrier { + $op.push(PAST::Op.new( + :pasttype, + :inline(" PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp))\n") + )); + } + if !%flags { my $goto_next := PAST::Op.new( :pasttype('call'), @@ -106,7 +113,7 @@ method op($/) { $op.push($goto_next); $op.push(PAST::Op.new( :pasttype, - :inline<;> + :inline(";\n"), )); } diff --git a/t/compilers/opsc/03-past.t b/t/compilers/opsc/03-past.t index f062fa3544..cb46f08a18 100644 --- a/t/compilers/opsc/03-past.t +++ b/t/compilers/opsc/03-past.t @@ -115,6 +115,8 @@ ok( $op.need_write_barrier, "'out PMC' Write Barrier"); $op := @ops[4]; ok( $op.need_write_barrier, "'inout STR' Write Barrier"); +ok( $op.body ~~ /PARROT_GC_WRITE_BARRIER/, "We have Write Barrier inserted into op"); + done_testing(); # Don't forget to update plan! From e6865f006713723750c1f4bcb2dcd506ba7af691 Mon Sep 17 00:00:00 2001 From: Vasily Chekalkin Date: Tue, 15 Feb 2011 17:06:25 +1100 Subject: [PATCH 05/17] Fix missing comma --- compilers/opsc/src/Ops/Compiler/Actions.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compilers/opsc/src/Ops/Compiler/Actions.pm b/compilers/opsc/src/Ops/Compiler/Actions.pm index 7abbc39f1b..402e525624 100644 --- a/compilers/opsc/src/Ops/Compiler/Actions.pm +++ b/compilers/opsc/src/Ops/Compiler/Actions.pm @@ -91,7 +91,7 @@ method op($/) { if $op.need_write_barrier { $op.push(PAST::Op.new( :pasttype, - :inline(" PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp))\n") + :inline(" PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp));\n") )); } From ffc751cd8fe6b202d5d92afba7b47146c80bfdfb Mon Sep 17 00:00:00 2001 From: Vasily Chekalkin Date: Tue, 15 Feb 2011 17:12:36 +1100 Subject: [PATCH 06/17] Rebootstrap ops --- src/ops/core_ops.c | 2997 +++++++++++++++++++++++++++++--------------- 1 file changed, 2003 insertions(+), 994 deletions(-) diff --git a/src/ops/core_ops.c b/src/ops/core_ops.c index 157a2db7d0..353f6b96e3 100644 --- a/src/ops/core_ops.c +++ b/src/ops/core_ops.c @@ -15070,7 +15070,8 @@ opcode_t * Parrot_noop(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); -return (opcode_t *)cur_opcode + 1;} +return (opcode_t *)cur_opcode + 1; +} opcode_t * Parrot_check_events(opcode_t *cur_opcode, PARROT_INTERP) { @@ -15093,28 +15094,32 @@ Parrot_load_bytecode_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); Parrot_load_bytecode(interp, SREG(1)); -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_load_bytecode_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); Parrot_load_bytecode(interp, SCONST(1)); -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_load_language_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); Parrot_load_language(interp, SREG(1)); -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_load_language_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); Parrot_load_language(interp, SCONST(1)); -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_branch_i(opcode_t *cur_opcode, PARROT_INTERP) { @@ -15200,56 +15205,64 @@ Parrot_if_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); if (IREG(1) != 0)return (opcode_t *)cur_opcode + ICONST(2); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_if_n_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); if (!FLOAT_IS_ZERO(NREG(1)))return (opcode_t *)cur_opcode + ICONST(2); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_if_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); if (Parrot_str_boolean(interp, SREG(1)))return (opcode_t *)cur_opcode + ICONST(2); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_if_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); if (VTABLE_get_bool(interp, PREG(1)))return (opcode_t *)cur_opcode + ICONST(2); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_unless_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); if (IREG(1) == 0)return (opcode_t *)cur_opcode + ICONST(2); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_unless_n_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); if (FLOAT_IS_ZERO(NREG(1)))return (opcode_t *)cur_opcode + ICONST(2); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_unless_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); if (!Parrot_str_boolean(interp, SREG(1)))return (opcode_t *)cur_opcode + ICONST(2); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_unless_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); if (!VTABLE_get_bool(interp, PREG(1)))return (opcode_t *)cur_opcode + ICONST(2); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_invokecc_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -15323,14 +15336,16 @@ Parrot_capture_lex_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); Parrot_sub_capture_lex(interp, PREG(1)); -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_newclosure_p_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = Parrot_sub_new_closure(interp, PREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_set_args_pc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -15409,7 +15424,8 @@ Parrot_set_result_info_p(opcode_t *cur_opcode, PARROT_INTERP) { Parrot_str_new_constant(interp, "return_flags"), PREG(1)); -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_set_result_info_pc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -15420,7 +15436,8 @@ Parrot_set_result_info_pc(opcode_t *cur_opcode, PARROT_INTERP) { Parrot_str_new_constant(interp, "return_flags"), PCONST(1)); -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_result_info_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -15434,29 +15451,34 @@ Parrot_result_info_p(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = Parrot_pmc_new(interp, enum_class_FixedIntegerArray); else PREG(1) = sig; + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_set_addr_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = PTR2INTVAL(CUR_OPCODE + ICONST(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_set_addr_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_set_pointer(interp, PREG(1), (CUR_OPCODE + ICONST(2))); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_set_addr_p_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_set_pointer(interp, PREG(1), (void*)IREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_get_addr_i_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -15464,21 +15486,24 @@ Parrot_get_addr_i_p(opcode_t *cur_opcode, PARROT_INTERP) { void *ptr = VTABLE_get_pointer(interp, PREG(2)); IREG(1) = (INTVAL)ptr; -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_schedule_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); Parrot_cx_schedule_task(interp, PREG(1)); -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_addhandler_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); Parrot_cx_add_handler(interp, PREG(1)); -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_push_eh_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -15487,14 +15512,16 @@ Parrot_push_eh_ic(opcode_t *cur_opcode, PARROT_INTERP) { VTABLE_set_pointer(interp, eh, CUR_OPCODE + ICONST(1)); Parrot_cx_add_handler_local(interp, eh); -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_push_eh_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); Parrot_cx_add_handler_local(interp, PREG(1)); -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_pop_eh(opcode_t *cur_opcode, PARROT_INTERP) { @@ -15502,7 +15529,8 @@ Parrot_pop_eh(opcode_t *cur_opcode, PARROT_INTERP) { Parrot_cx_delete_handler_local(interp, Parrot_str_new_constant(interp, "exception")); -return (opcode_t *)cur_opcode + 1;} +return (opcode_t *)cur_opcode + 1; +} opcode_t * Parrot_throw_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -15562,7 +15590,8 @@ Parrot_count_eh_i(opcode_t *cur_opcode, PARROT_INTERP) { IREG(1) = Parrot_cx_count_handlers_local(interp, Parrot_str_new_constant(interp, "exception")); -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_die_s(opcode_t *cur_opcode, PARROT_INTERP) { @@ -15751,7 +15780,8 @@ Parrot_finalize_p(opcode_t *cur_opcode, PARROT_INTERP) { EXCEPTION_INVALID_OPERATION, "missing runloop"); } -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_finalize_pc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -15790,7 +15820,8 @@ Parrot_finalize_pc(opcode_t *cur_opcode, PARROT_INTERP) { EXCEPTION_INVALID_OPERATION, "missing runloop"); } -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_debug_i(opcode_t *cur_opcode, PARROT_INTERP) { @@ -15854,7 +15885,8 @@ Parrot_gc_debug_i(opcode_t *cur_opcode, PARROT_INTERP) { if (IREG(1) != 0) { Interp_flags_SET(interp, PARROT_GC_DEBUG_FLAG); } else { Interp_flags_CLEAR(interp, PARROT_GC_DEBUG_FLAG); } -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_gc_debug_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -15862,35 +15894,40 @@ Parrot_gc_debug_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (ICONST(1) != 0) { Interp_flags_SET(interp, PARROT_GC_DEBUG_FLAG); } else { Interp_flags_CLEAR(interp, PARROT_GC_DEBUG_FLAG); } -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_interpinfo_i_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = interpinfo(interp, IREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_interpinfo_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = interpinfo(interp, ICONST(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_interpinfo_p_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = interpinfo_p(interp, IREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_interpinfo_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = interpinfo_p(interp, ICONST(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_interpinfo_s_i(opcode_t *cur_opcode, PARROT_INTERP) { @@ -15898,7 +15935,8 @@ Parrot_interpinfo_s_i(opcode_t *cur_opcode, PARROT_INTERP) { STRING * const s = interpinfo_s(interp, IREG(2)); SREG(1) = s; -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_interpinfo_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -15906,63 +15944,72 @@ Parrot_interpinfo_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { STRING * const s = interpinfo_s(interp, ICONST(2)); SREG(1) = s; -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_warningson_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PARROT_WARNINGS_on(interp, IREG(1)); -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_warningson_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PARROT_WARNINGS_on(interp, ICONST(1)); -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_warningsoff_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PARROT_WARNINGS_off(interp, IREG(1)); -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_warningsoff_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PARROT_WARNINGS_off(interp, ICONST(1)); -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_errorson_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PARROT_ERRORS_on(interp, IREG(1)); -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_errorson_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PARROT_ERRORS_on(interp, ICONST(1)); -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_errorsoff_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PARROT_ERRORS_off(interp, IREG(1)); -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_errorsoff_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PARROT_ERRORS_off(interp, ICONST(1)); -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_runinterp_p_i(opcode_t *cur_opcode, PARROT_INTERP) { @@ -15972,7 +16019,8 @@ Parrot_runinterp_p_i(opcode_t *cur_opcode, PARROT_INTERP) { Parrot_switch_to_cs(new_interp, interp->code, 1); runops(new_interp, REL_PC + IREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_runinterp_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -15982,15 +16030,18 @@ Parrot_runinterp_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { Parrot_switch_to_cs(new_interp, interp->code, 1); runops(new_interp, REL_PC + ICONST(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_getinterp_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_get_pmc_keyed_int(interp, interp->iglobals, IGLOBALS_INTERPRETER); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_sweep_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16001,91 +16052,104 @@ Parrot_sweep_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (Parrot_gc_impatient_pmcs(interp)) Parrot_gc_mark_and_sweep(interp, GC_lazy_FLAG); -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_collect(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); Parrot_gc_compact_memory_pool(interp); -return (opcode_t *)cur_opcode + 1;} +return (opcode_t *)cur_opcode + 1; +} opcode_t * Parrot_sweepoff(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); Parrot_block_GC_mark(interp); -return (opcode_t *)cur_opcode + 1;} +return (opcode_t *)cur_opcode + 1; +} opcode_t * Parrot_sweepon(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); Parrot_unblock_GC_mark(interp); -return (opcode_t *)cur_opcode + 1;} +return (opcode_t *)cur_opcode + 1; +} opcode_t * Parrot_collectoff(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); Parrot_block_GC_sweep(interp); -return (opcode_t *)cur_opcode + 1;} +return (opcode_t *)cur_opcode + 1; +} opcode_t * Parrot_collecton(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); Parrot_unblock_GC_sweep(interp); -return (opcode_t *)cur_opcode + 1;} +return (opcode_t *)cur_opcode + 1; +} opcode_t * Parrot_needs_destroy_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); Parrot_gc_pmc_needs_early_collection(interp, PREG(1)); -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_loadlib_p_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = Parrot_dyn_load_lib(interp, SREG(2), NULL); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_loadlib_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = Parrot_dyn_load_lib(interp, SCONST(2), NULL); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_loadlib_p_s_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = Parrot_dyn_load_lib(interp, SREG(2), PREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_loadlib_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = Parrot_dyn_load_lib(interp, SCONST(2), PREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_loadlib_p_s_pc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = Parrot_dyn_load_lib(interp, SREG(2), PCONST(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_loadlib_p_sc_pc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = Parrot_dyn_load_lib(interp, SCONST(2), PCONST(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_dlfunc_p_p_s_s(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16114,7 +16178,8 @@ Parrot_dlfunc_p_p_s_s(opcode_t *cur_opcode, PARROT_INTERP) { VTABLE_set_pointer_keyed_str(interp, PREG(1), SREG(4), F2DPTR(p)); } -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_dlfunc_p_p_sc_s(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16143,7 +16208,8 @@ Parrot_dlfunc_p_p_sc_s(opcode_t *cur_opcode, PARROT_INTERP) { VTABLE_set_pointer_keyed_str(interp, PREG(1), SREG(4), F2DPTR(p)); } -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_dlfunc_p_p_s_sc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16172,7 +16238,8 @@ Parrot_dlfunc_p_p_s_sc(opcode_t *cur_opcode, PARROT_INTERP) { VTABLE_set_pointer_keyed_str(interp, PREG(1), SCONST(4), F2DPTR(p)); } -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_dlfunc_p_p_sc_sc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16201,7 +16268,8 @@ Parrot_dlfunc_p_p_sc_sc(opcode_t *cur_opcode, PARROT_INTERP) { VTABLE_set_pointer_keyed_str(interp, PREG(1), SCONST(4), F2DPTR(p)); } -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_dlvar_p_p_s(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16230,7 +16298,8 @@ Parrot_dlvar_p_p_s(opcode_t *cur_opcode, PARROT_INTERP) { VTABLE_set_pointer(interp, PREG(1), p); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_dlvar_p_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16259,7 +16328,8 @@ Parrot_dlvar_p_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { VTABLE_set_pointer(interp, PREG(1), p); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_compreg_s_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16268,7 +16338,8 @@ Parrot_compreg_s_p(opcode_t *cur_opcode, PARROT_INTERP) { interp->iglobals, IGLOBALS_COMPREG_HASH); VTABLE_set_pmc_keyed_str(interp, compreg_hash, SREG(1), PREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_compreg_sc_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16277,7 +16348,8 @@ Parrot_compreg_sc_p(opcode_t *cur_opcode, PARROT_INTERP) { interp->iglobals, IGLOBALS_COMPREG_HASH); VTABLE_set_pmc_keyed_str(interp, compreg_hash, SCONST(1), PREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_compreg_p_s(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16286,7 +16358,8 @@ Parrot_compreg_p_s(opcode_t *cur_opcode, PARROT_INTERP) { interp->iglobals, IGLOBALS_COMPREG_HASH); PREG(1) = VTABLE_get_pmc_keyed_str(interp, compreg_hash, SREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_compreg_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16295,21 +16368,24 @@ Parrot_compreg_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { interp->iglobals, IGLOBALS_COMPREG_HASH); PREG(1) = VTABLE_get_pmc_keyed_str(interp, compreg_hash, SCONST(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_new_callback_p_p_p_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = Parrot_make_cb(interp, PREG(2), PREG(3), SREG(4)); -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_new_callback_p_p_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = Parrot_make_cb(interp, PREG(2), PREG(3), SCONST(4)); -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_annotations_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16322,8 +16398,10 @@ Parrot_annotations_p(opcode_t *cur_opcode, PARROT_INTERP) { else { PREG(1) = Parrot_pmc_new(interp, enum_class_Hash); } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_annotations_p_s(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16337,7 +16415,8 @@ Parrot_annotations_p_s(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = PMCNULL; } -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_annotations_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16351,112 +16430,128 @@ Parrot_annotations_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = PMCNULL; } -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_band_i_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) &= IREG(2); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_band_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) &= ICONST(2); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_band_i_i_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = IREG(2) & IREG(3); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_band_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = ICONST(2) & IREG(3); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_band_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = IREG(2) & ICONST(3); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_bor_i_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) |= IREG(2); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_bor_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) |= ICONST(2); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_bor_i_i_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = IREG(2) | IREG(3); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_bor_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = ICONST(2) | IREG(3); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_bor_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = IREG(2) | ICONST(3); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_shl_i_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = bit_shift_left(IREG(1), IREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_shl_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = bit_shift_left(IREG(1), ICONST(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_shl_i_i_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = bit_shift_left(IREG(2), IREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_shl_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = bit_shift_left(ICONST(2), IREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_shl_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = bit_shift_left(IREG(2), ICONST(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_shr_i_i(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16464,7 +16559,8 @@ Parrot_shr_i_i(opcode_t *cur_opcode, PARROT_INTERP) { const INTVAL signed_shift = -IREG(2); IREG(1) = bit_shift_left(IREG(1), signed_shift); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_shr_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16472,7 +16568,8 @@ Parrot_shr_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { const INTVAL signed_shift = -ICONST(2); IREG(1) = bit_shift_left(IREG(1), signed_shift); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_shr_i_i_i(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16480,7 +16577,8 @@ Parrot_shr_i_i_i(opcode_t *cur_opcode, PARROT_INTERP) { const INTVAL signed_shift = -IREG(3); IREG(1) = bit_shift_left(IREG(2), signed_shift); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_shr_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16488,7 +16586,8 @@ Parrot_shr_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP) { const INTVAL signed_shift = -IREG(3); IREG(1) = bit_shift_left(ICONST(2), signed_shift); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_shr_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16496,7 +16595,8 @@ Parrot_shr_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { const INTVAL signed_shift = -ICONST(3); IREG(1) = bit_shift_left(IREG(2), signed_shift); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_lsr_i_i(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16505,7 +16605,8 @@ Parrot_lsr_i_i(opcode_t *cur_opcode, PARROT_INTERP) { const UINTVAL b = a >> IREG(2); IREG(1) = (INTVAL)b; -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_lsr_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16514,63 +16615,72 @@ Parrot_lsr_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { const UINTVAL b = a >> ICONST(2); IREG(1) = (INTVAL)b; -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_lsr_i_i_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = (INTVAL)((UINTVAL)IREG(2) >> IREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_lsr_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = (INTVAL)((UINTVAL)ICONST(2) >> IREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_lsr_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = (INTVAL)((UINTVAL)IREG(2) >> ICONST(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_bxor_i_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) ^= IREG(2); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_bxor_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) ^= ICONST(2); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_bxor_i_i_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = IREG(2) ^ IREG(3); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_bxor_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = ICONST(2) ^ IREG(3); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_bxor_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = IREG(2) ^ ICONST(3); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_eq_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16578,7 +16688,8 @@ Parrot_eq_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (IREG(1) == IREG(2)) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_eq_ic_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16586,7 +16697,8 @@ Parrot_eq_ic_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (ICONST(1) == IREG(2)) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_eq_i_ic_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16594,7 +16706,8 @@ Parrot_eq_i_ic_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (IREG(1) == ICONST(2)) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_eq_n_n_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16602,7 +16715,8 @@ Parrot_eq_n_n_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (NREG(1) == NREG(2)) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_eq_nc_n_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16610,7 +16724,8 @@ Parrot_eq_nc_n_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (NCONST(1) == NREG(2)) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_eq_n_nc_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16618,7 +16733,8 @@ Parrot_eq_n_nc_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (NREG(1) == NCONST(2)) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_eq_s_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16626,7 +16742,8 @@ Parrot_eq_s_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (STRING_equal(interp, SREG(1), SREG(2))) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_eq_sc_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16634,7 +16751,8 @@ Parrot_eq_sc_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (STRING_equal(interp, SCONST(1), SREG(2))) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_eq_s_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16642,7 +16760,8 @@ Parrot_eq_s_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (STRING_equal(interp, SREG(1), SCONST(2))) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_eq_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16650,7 +16769,8 @@ Parrot_eq_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (VTABLE_is_equal(interp, PREG(1), PREG(2))) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_eq_p_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16664,7 +16784,8 @@ Parrot_eq_p_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { Parrot_pmc_free_temporary(interp, temp); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_eq_p_ic_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16678,7 +16799,8 @@ Parrot_eq_p_ic_ic(opcode_t *cur_opcode, PARROT_INTERP) { Parrot_pmc_free_temporary(interp, temp); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_eq_p_n_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16692,7 +16814,8 @@ Parrot_eq_p_n_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (VTABLE_get_number(interp, PREG(1)) == NREG(2)) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_eq_p_nc_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16706,7 +16829,8 @@ Parrot_eq_p_nc_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (VTABLE_get_number(interp, PREG(1)) == NCONST(2)) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_eq_p_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16714,7 +16838,8 @@ Parrot_eq_p_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (STRING_equal(interp, VTABLE_get_string(interp, PREG(1)), SREG(2))) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_eq_p_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16722,7 +16847,8 @@ Parrot_eq_p_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (STRING_equal(interp, VTABLE_get_string(interp, PREG(1)), SCONST(2))) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_eq_str_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16730,7 +16856,8 @@ Parrot_eq_str_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (VTABLE_is_equal_string(interp, PREG(1), PREG(2))) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_eq_num_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16738,7 +16865,8 @@ Parrot_eq_num_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (VTABLE_is_equal_num(interp, PREG(1), PREG(2))) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_eq_addr_s_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16746,7 +16874,8 @@ Parrot_eq_addr_s_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (SREG(1) == SREG(2)) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_eq_addr_sc_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16754,7 +16883,8 @@ Parrot_eq_addr_sc_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (SCONST(1) == SREG(2)) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_eq_addr_s_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16762,7 +16892,8 @@ Parrot_eq_addr_s_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (SREG(1) == SCONST(2)) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_eq_addr_sc_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16770,7 +16901,8 @@ Parrot_eq_addr_sc_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (SCONST(1) == SCONST(2)) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_eq_addr_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16778,7 +16910,8 @@ Parrot_eq_addr_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (PREG(1) == PREG(2)) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_ne_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16786,7 +16919,8 @@ Parrot_ne_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (IREG(1) != IREG(2)) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_ne_ic_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16794,7 +16928,8 @@ Parrot_ne_ic_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (ICONST(1) != IREG(2)) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_ne_i_ic_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16802,7 +16937,8 @@ Parrot_ne_i_ic_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (IREG(1) != ICONST(2)) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_ne_n_n_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16810,7 +16946,8 @@ Parrot_ne_n_n_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (NREG(1) != NREG(2)) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_ne_nc_n_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16818,7 +16955,8 @@ Parrot_ne_nc_n_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (NCONST(1) != NREG(2)) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_ne_n_nc_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16826,7 +16964,8 @@ Parrot_ne_n_nc_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (NREG(1) != NCONST(2)) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_ne_s_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16834,7 +16973,8 @@ Parrot_ne_s_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (!STRING_equal(interp, SREG(1), SREG(2))) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_ne_sc_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16842,7 +16982,8 @@ Parrot_ne_sc_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (!STRING_equal(interp, SCONST(1), SREG(2))) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_ne_s_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16850,7 +16991,8 @@ Parrot_ne_s_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (!STRING_equal(interp, SREG(1), SCONST(2))) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_ne_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16858,7 +17000,8 @@ Parrot_ne_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (!VTABLE_is_equal(interp, PREG(1), PREG(2))) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_ne_p_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16872,7 +17015,8 @@ Parrot_ne_p_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { Parrot_pmc_free_temporary(interp, temp); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_ne_p_ic_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16886,7 +17030,8 @@ Parrot_ne_p_ic_ic(opcode_t *cur_opcode, PARROT_INTERP) { Parrot_pmc_free_temporary(interp, temp); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_ne_p_n_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16894,7 +17039,8 @@ Parrot_ne_p_n_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (VTABLE_get_number(interp, PREG(1)) != NREG(2)) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_ne_p_nc_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16902,7 +17048,8 @@ Parrot_ne_p_nc_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (VTABLE_get_number(interp, PREG(1)) != NCONST(2)) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_ne_p_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16910,7 +17057,8 @@ Parrot_ne_p_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (!STRING_equal(interp, VTABLE_get_string(interp, PREG(1)), SREG(2))) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_ne_p_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16918,7 +17066,8 @@ Parrot_ne_p_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (!STRING_equal(interp, VTABLE_get_string(interp, PREG(1)), SCONST(2))) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_ne_str_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16926,7 +17075,8 @@ Parrot_ne_str_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (VTABLE_cmp_string(interp, PREG(1), PREG(2)) != 0) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_ne_num_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16934,7 +17084,8 @@ Parrot_ne_num_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (VTABLE_cmp_num(interp, PREG(1), PREG(2)) != 0) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_ne_addr_s_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16942,7 +17093,8 @@ Parrot_ne_addr_s_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (SREG(1) != SREG(2)) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_ne_addr_sc_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16950,7 +17102,8 @@ Parrot_ne_addr_sc_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (SCONST(1) != SREG(2)) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_ne_addr_s_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16958,7 +17111,8 @@ Parrot_ne_addr_s_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (SREG(1) != SCONST(2)) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_ne_addr_sc_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16966,7 +17120,8 @@ Parrot_ne_addr_sc_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (SCONST(1) != SCONST(2)) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_ne_addr_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16974,7 +17129,8 @@ Parrot_ne_addr_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (PREG(1) != PREG(2)) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_lt_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16982,7 +17138,8 @@ Parrot_lt_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (IREG(1) < IREG(2)) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_lt_ic_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16990,7 +17147,8 @@ Parrot_lt_ic_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (ICONST(1) < IREG(2)) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_lt_i_ic_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16998,7 +17156,8 @@ Parrot_lt_i_ic_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (IREG(1) < ICONST(2)) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_lt_n_n_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -17006,7 +17165,8 @@ Parrot_lt_n_n_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (NREG(1) < NREG(2)) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_lt_nc_n_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -17014,7 +17174,8 @@ Parrot_lt_nc_n_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (NCONST(1) < NREG(2)) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_lt_n_nc_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -17022,7 +17183,8 @@ Parrot_lt_n_nc_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (NREG(1) < NCONST(2)) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_lt_s_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -17030,7 +17192,8 @@ Parrot_lt_s_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (STRING_compare(interp, SREG(1), SREG(2)) < 0) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_lt_sc_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -17038,7 +17201,8 @@ Parrot_lt_sc_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (STRING_compare(interp, SCONST(1), SREG(2)) < 0) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_lt_s_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -17046,7 +17210,8 @@ Parrot_lt_s_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (STRING_compare(interp, SREG(1), SCONST(2)) < 0) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_lt_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -17054,7 +17219,8 @@ Parrot_lt_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (VTABLE_cmp(interp, PREG(1), PREG(2)) < 0) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_lt_p_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -17068,7 +17234,8 @@ Parrot_lt_p_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { Parrot_pmc_free_temporary(interp, temp); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_lt_p_ic_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -17082,7 +17249,8 @@ Parrot_lt_p_ic_ic(opcode_t *cur_opcode, PARROT_INTERP) { Parrot_pmc_free_temporary(interp, temp); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_lt_p_n_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -17090,7 +17258,8 @@ Parrot_lt_p_n_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (VTABLE_get_number(interp, PREG(1)) < NREG(2)) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_lt_p_nc_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -17098,7 +17267,8 @@ Parrot_lt_p_nc_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (VTABLE_get_number(interp, PREG(1)) < NCONST(2)) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_lt_p_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -17106,7 +17276,8 @@ Parrot_lt_p_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (STRING_compare(interp, VTABLE_get_string(interp, PREG(1)), SREG(2)) < 0) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_lt_p_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -17114,7 +17285,8 @@ Parrot_lt_p_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (STRING_compare(interp, VTABLE_get_string(interp, PREG(1)), SCONST(2)) < 0) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_lt_str_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -17122,7 +17294,8 @@ Parrot_lt_str_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (VTABLE_cmp_string(interp, PREG(1), PREG(2)) < 0) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_lt_num_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -17130,7 +17303,8 @@ Parrot_lt_num_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (VTABLE_cmp_num(interp, PREG(1), PREG(2)) < 0) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_le_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -17138,7 +17312,8 @@ Parrot_le_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (IREG(1) <= IREG(2)) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_le_ic_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -17146,7 +17321,8 @@ Parrot_le_ic_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (ICONST(1) <= IREG(2)) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_le_i_ic_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -17154,7 +17330,8 @@ Parrot_le_i_ic_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (IREG(1) <= ICONST(2)) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_le_n_n_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -17162,7 +17339,8 @@ Parrot_le_n_n_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (NREG(1) <= NREG(2)) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_le_nc_n_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -17170,7 +17348,8 @@ Parrot_le_nc_n_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (NCONST(1) <= NREG(2)) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_le_n_nc_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -17178,7 +17357,8 @@ Parrot_le_n_nc_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (NREG(1) <= NCONST(2)) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_le_s_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -17186,7 +17366,8 @@ Parrot_le_s_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (STRING_compare(interp, SREG(1), SREG(2)) <= 0) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_le_sc_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -17194,7 +17375,8 @@ Parrot_le_sc_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (STRING_compare(interp, SCONST(1), SREG(2)) <= 0) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_le_s_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -17202,7 +17384,8 @@ Parrot_le_s_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (STRING_compare(interp, SREG(1), SCONST(2)) <= 0) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_le_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -17210,7 +17393,8 @@ Parrot_le_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (VTABLE_cmp(interp, PREG(1), PREG(2)) <= 0) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_le_p_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -17224,7 +17408,8 @@ Parrot_le_p_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { Parrot_pmc_free_temporary(interp, temp); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_le_p_ic_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -17238,7 +17423,8 @@ Parrot_le_p_ic_ic(opcode_t *cur_opcode, PARROT_INTERP) { Parrot_pmc_free_temporary(interp, temp); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_le_p_n_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -17246,7 +17432,8 @@ Parrot_le_p_n_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (VTABLE_get_number(interp, PREG(1)) <= NREG(2)) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_le_p_nc_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -17254,7 +17441,8 @@ Parrot_le_p_nc_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (VTABLE_get_number(interp, PREG(1)) <= NCONST(2)) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_le_p_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -17262,7 +17450,8 @@ Parrot_le_p_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (STRING_compare(interp, VTABLE_get_string(interp, PREG(1)), SREG(2)) <= 0) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_le_p_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -17270,7 +17459,8 @@ Parrot_le_p_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (STRING_compare(interp, VTABLE_get_string(interp, PREG(1)), SCONST(2)) <= 0) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_le_str_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -17278,7 +17468,8 @@ Parrot_le_str_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (VTABLE_cmp_string(interp, PREG(1), PREG(2)) <= 0) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_le_num_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -17286,7 +17477,8 @@ Parrot_le_num_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (VTABLE_cmp_num(interp, PREG(1), PREG(2)) <= 0) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_gt_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -17294,7 +17486,8 @@ Parrot_gt_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (VTABLE_cmp(interp, PREG(1), PREG(2)) > 0) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_gt_p_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -17308,7 +17501,8 @@ Parrot_gt_p_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { Parrot_pmc_free_temporary(interp, temp); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_gt_p_ic_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -17322,7 +17516,8 @@ Parrot_gt_p_ic_ic(opcode_t *cur_opcode, PARROT_INTERP) { Parrot_pmc_free_temporary(interp, temp); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_gt_p_n_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -17330,7 +17525,8 @@ Parrot_gt_p_n_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (VTABLE_get_number(interp, PREG(1)) > NREG(2)) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_gt_p_nc_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -17338,7 +17534,8 @@ Parrot_gt_p_nc_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (VTABLE_get_number(interp, PREG(1)) > NCONST(2)) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_gt_p_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -17346,7 +17543,8 @@ Parrot_gt_p_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (STRING_compare(interp, VTABLE_get_string(interp, PREG(1)), SREG(2)) > 0) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_gt_p_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -17354,7 +17552,8 @@ Parrot_gt_p_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (STRING_compare(interp, VTABLE_get_string(interp, PREG(1)), SCONST(2)) > 0) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_gt_str_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -17362,7 +17561,8 @@ Parrot_gt_str_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (VTABLE_cmp_string(interp, PREG(1), PREG(2)) > 0) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_gt_num_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -17370,7 +17570,8 @@ Parrot_gt_num_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (VTABLE_cmp_num(interp, PREG(1), PREG(2)) > 0) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_ge_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -17378,7 +17579,8 @@ Parrot_ge_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (VTABLE_cmp(interp, PREG(1), PREG(2)) >= 0) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_ge_p_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -17392,7 +17594,8 @@ Parrot_ge_p_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { Parrot_pmc_free_temporary(interp, temp); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_ge_p_ic_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -17406,7 +17609,8 @@ Parrot_ge_p_ic_ic(opcode_t *cur_opcode, PARROT_INTERP) { Parrot_pmc_free_temporary(interp, temp); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_ge_p_n_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -17414,7 +17618,8 @@ Parrot_ge_p_n_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (VTABLE_get_number(interp, PREG(1)) >= NREG(2)) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_ge_p_nc_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -17422,7 +17627,8 @@ Parrot_ge_p_nc_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (VTABLE_get_number(interp, PREG(1)) >= NCONST(2)) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_ge_p_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -17430,7 +17636,8 @@ Parrot_ge_p_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (STRING_compare(interp, VTABLE_get_string(interp, PREG(1)), SREG(2)) >= 0) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_ge_p_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -17438,7 +17645,8 @@ Parrot_ge_p_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (STRING_compare(interp, VTABLE_get_string(interp, PREG(1)), SCONST(2)) >= 0) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_ge_str_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -17446,7 +17654,8 @@ Parrot_ge_str_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (VTABLE_cmp_string(interp, PREG(1), PREG(2)) >= 0) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_ge_num_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -17454,7 +17663,8 @@ Parrot_ge_num_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (VTABLE_cmp_num(interp, PREG(1), PREG(2)) >= 0) {return (opcode_t *)cur_opcode + ICONST(3); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_if_null_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -17462,7 +17672,8 @@ Parrot_if_null_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (PMC_IS_NULL(PREG(1))) {return (opcode_t *)cur_opcode + ICONST(2); } -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_if_null_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -17470,7 +17681,8 @@ Parrot_if_null_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (STRING_IS_NULL(SREG(1))) {return (opcode_t *)cur_opcode + ICONST(2); } -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_unless_null_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -17478,7 +17690,8 @@ Parrot_unless_null_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (!PMC_IS_NULL(PREG(1))) {return (opcode_t *)cur_opcode + ICONST(2); } -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_unless_null_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -17486,7 +17699,8 @@ Parrot_unless_null_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { if (!STRING_IS_NULL(SREG(1))) {return (opcode_t *)cur_opcode + ICONST(2); } -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_cmp_i_i_i(opcode_t *cur_opcode, PARROT_INTERP) { @@ -17495,7 +17709,8 @@ Parrot_cmp_i_i_i(opcode_t *cur_opcode, PARROT_INTERP) { IREG(2) > IREG(3) ? +1 : 0; -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_cmp_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP) { @@ -17504,7 +17719,8 @@ Parrot_cmp_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP) { ICONST(2) > IREG(3) ? +1 : 0; -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_cmp_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -17513,7 +17729,8 @@ Parrot_cmp_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { IREG(2) > ICONST(3) ? +1 : 0; -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_cmp_i_n_n(opcode_t *cur_opcode, PARROT_INTERP) { @@ -17522,7 +17739,8 @@ Parrot_cmp_i_n_n(opcode_t *cur_opcode, PARROT_INTERP) { NREG(2) > NREG(3) ? +1 : 0; -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_cmp_i_nc_n(opcode_t *cur_opcode, PARROT_INTERP) { @@ -17531,7 +17749,8 @@ Parrot_cmp_i_nc_n(opcode_t *cur_opcode, PARROT_INTERP) { NCONST(2) > NREG(3) ? +1 : 0; -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_cmp_i_n_nc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -17540,35 +17759,40 @@ Parrot_cmp_i_n_nc(opcode_t *cur_opcode, PARROT_INTERP) { NREG(2) > NCONST(3) ? +1 : 0; -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_cmp_i_s_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = STRING_compare(interp, SREG(2), SREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_cmp_i_sc_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = STRING_compare(interp, SCONST(2), SREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_cmp_i_s_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = STRING_compare(interp, SREG(2), SCONST(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_cmp_i_p_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = VTABLE_cmp(interp, PREG(2), PREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_cmp_i_p_i(opcode_t *cur_opcode, PARROT_INTERP) { @@ -17578,7 +17802,8 @@ Parrot_cmp_i_p_i(opcode_t *cur_opcode, PARROT_INTERP) { l > IREG(3) ? +1 : 0; -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_cmp_i_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -17588,7 +17813,8 @@ Parrot_cmp_i_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { l > ICONST(3) ? +1 : 0; -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_cmp_i_p_n(opcode_t *cur_opcode, PARROT_INTERP) { @@ -17598,7 +17824,8 @@ Parrot_cmp_i_p_n(opcode_t *cur_opcode, PARROT_INTERP) { l > NREG(3) ? +1 : 0; -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_cmp_i_p_nc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -17608,7 +17835,8 @@ Parrot_cmp_i_p_nc(opcode_t *cur_opcode, PARROT_INTERP) { l > NCONST(3) ? +1 : 0; -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_cmp_i_p_s(opcode_t *cur_opcode, PARROT_INTERP) { @@ -17616,7 +17844,8 @@ Parrot_cmp_i_p_s(opcode_t *cur_opcode, PARROT_INTERP) { STRING* const l = VTABLE_get_string(interp, PREG(2)); IREG(1) = STRING_compare(interp, l, SREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_cmp_i_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -17624,28 +17853,32 @@ Parrot_cmp_i_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { STRING* const l = VTABLE_get_string(interp, PREG(2)); IREG(1) = STRING_compare(interp, l, SCONST(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_cmp_str_i_p_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = VTABLE_cmp_string(interp, PREG(2), PREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_cmp_num_i_p_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = VTABLE_cmp_num(interp, PREG(2), PREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_cmp_pmc_p_p_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_cmp_pmc(interp, PREG(2), PREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_issame_i_p_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -17655,35 +17888,40 @@ Parrot_issame_i_p_p(opcode_t *cur_opcode, PARROT_INTERP) { else IREG(1) = VTABLE_is_same(interp, PREG(2), PREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_issame_i_s_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = SREG(2) == SREG(3); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_issame_i_sc_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = SCONST(2) == SREG(3); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_issame_i_s_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = SREG(2) == SCONST(3); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_issame_i_sc_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = SCONST(2) == SCONST(3); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_isntsame_i_p_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -17693,294 +17931,336 @@ Parrot_isntsame_i_p_p(opcode_t *cur_opcode, PARROT_INTERP) { else IREG(1) = !VTABLE_is_same(interp, PREG(2), PREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_isntsame_i_s_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = SREG(2) != SREG(3); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_isntsame_i_sc_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = SCONST(2) != SREG(3); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_isntsame_i_s_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = SREG(2) != SCONST(3); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_isntsame_i_sc_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = SCONST(2) != SCONST(3); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_istrue_i_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = VTABLE_get_bool(interp, PREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_isfalse_i_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = !VTABLE_get_bool(interp, PREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_isnull_i_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = PMC_IS_NULL(PREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_isnull_i_pc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = PMC_IS_NULL(PCONST(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_isnull_i_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = STRING_IS_NULL(SREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_isnull_i_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = STRING_IS_NULL(SCONST(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_isgt_i_p_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = (VTABLE_cmp(interp, PREG(2), PREG(3)) > 0); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_isge_i_p_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = (VTABLE_cmp(interp, PREG(2), PREG(3)) >= 0); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_isle_i_i_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = IREG(2) <= IREG(3); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_isle_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = ICONST(2) <= IREG(3); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_isle_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = IREG(2) <= ICONST(3); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_isle_i_n_n(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = NREG(2) <= NREG(3); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_isle_i_nc_n(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = NCONST(2) <= NREG(3); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_isle_i_n_nc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = NREG(2) <= NCONST(3); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_isle_i_s_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = STRING_compare(interp, SREG(2), SREG(3)) <= 0; -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_isle_i_sc_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = STRING_compare(interp, SCONST(2), SREG(3)) <= 0; -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_isle_i_s_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = STRING_compare(interp, SREG(2), SCONST(3)) <= 0; -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_isle_i_p_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = (VTABLE_cmp(interp, PREG(2), PREG(3)) <= 0); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_islt_i_i_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = (IREG(2) < IREG(3)) ? 1 : 0; -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_islt_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = (ICONST(2) < IREG(3)) ? 1 : 0; -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_islt_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = (IREG(2) < ICONST(3)) ? 1 : 0; -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_islt_i_n_n(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = NREG(2) < NREG(3); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_islt_i_nc_n(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = NCONST(2) < NREG(3); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_islt_i_n_nc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = NREG(2) < NCONST(3); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_islt_i_s_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = STRING_compare(interp, SREG(2), SREG(3)) < 0; -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_islt_i_sc_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = STRING_compare(interp, SCONST(2), SREG(3)) < 0; -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_islt_i_s_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = STRING_compare(interp, SREG(2), SCONST(3)) < 0; -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_islt_i_p_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = (VTABLE_cmp(interp, PREG(2), PREG(3)) < 0); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_iseq_i_i_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = (IREG(2) == IREG(3)) ? 1 : 0; -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_iseq_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = (ICONST(2) == IREG(3)) ? 1 : 0; -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_iseq_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = (IREG(2) == ICONST(3)) ? 1 : 0; -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_iseq_i_n_n(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = NREG(2) == NREG(3); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_iseq_i_nc_n(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = NCONST(2) == NREG(3); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_iseq_i_n_nc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = NREG(2) == NCONST(3); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_iseq_i_s_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = STRING_equal(interp, SREG(2), SREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_iseq_i_sc_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = STRING_equal(interp, SCONST(2), SREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_iseq_i_s_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = STRING_equal(interp, SREG(2), SCONST(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_iseq_i_p_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -17990,70 +18270,80 @@ Parrot_iseq_i_p_p(opcode_t *cur_opcode, PARROT_INTERP) { else IREG(1) = VTABLE_is_equal(interp, PREG(2), PREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_isne_i_i_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = (IREG(2) == IREG(3)) ? 0 : 1; -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_isne_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = (ICONST(2) == IREG(3)) ? 0 : 1; -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_isne_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = (IREG(2) == ICONST(3)) ? 0 : 1; -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_isne_i_n_n(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = NREG(2) != NREG(3); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_isne_i_nc_n(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = NCONST(2) != NREG(3); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_isne_i_n_nc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = NREG(2) != NCONST(3); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_isne_i_s_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = !STRING_equal(interp, SREG(2), SREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_isne_i_sc_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = !STRING_equal(interp, SCONST(2), SREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_isne_i_s_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = !STRING_equal(interp, SREG(2), SCONST(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_isne_i_p_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -18063,56 +18353,64 @@ Parrot_isne_i_p_p(opcode_t *cur_opcode, PARROT_INTERP) { else IREG(1) = !VTABLE_is_equal(interp, PREG(2), PREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_and_i_i_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = IREG(2) ? IREG(3) : IREG(2); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_and_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = ICONST(2) ? IREG(3) : ICONST(2); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_and_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = IREG(2) ? ICONST(3) : IREG(2); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_and_p_p_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_get_bool(interp, PREG(2)) ? PREG(3) : PREG(2); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_not_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = ! IREG(1); -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_not_i_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = ! IREG(2); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_not_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_set_bool(interp, PREG(1), !VTABLE_get_bool(interp, PREG(1))); -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_not_p_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -18122,56 +18420,64 @@ Parrot_not_p_p(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = Parrot_pmc_new(interp, Parrot_hll_get_ctx_HLL_type(interp, enum_class_Boolean)); VTABLE_set_bool(interp, PREG(1), a); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_or_i_i_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = IREG(2) ? IREG(2) : IREG(3); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_or_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = ICONST(2) ? ICONST(2) : IREG(3); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_or_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = IREG(2) ? IREG(2) : ICONST(3); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_or_p_p_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_get_bool(interp, PREG(2)) ? PREG(2) : PREG(3); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_xor_i_i_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = (IREG(2) && ! IREG(3)) ? IREG(2) : (IREG(3) && ! IREG(2)) ? IREG(3) : 0; -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_xor_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = (ICONST(2) && ! IREG(3)) ? ICONST(2) : (IREG(3) && ! ICONST(2)) ? IREG(3) : 0; -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_xor_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = (IREG(2) && ! ICONST(3)) ? IREG(2) : (ICONST(3) && ! IREG(2)) ? ICONST(3) : 0; -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_xor_p_p_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -18188,21 +18494,24 @@ Parrot_xor_p_p_p(opcode_t *cur_opcode, PARROT_INTERP) { VTABLE_set_bool(interp, PREG(1), 0); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_print_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); Parrot_io_printf(interp, INTVAL_FMT, (INTVAL)IREG(1)); -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_print_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); Parrot_io_printf(interp, INTVAL_FMT, (INTVAL)ICONST(1)); -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_print_n(opcode_t *cur_opcode, PARROT_INTERP) { @@ -18219,7 +18528,8 @@ Parrot_print_n(opcode_t *cur_opcode, PARROT_INTERP) { } #endif -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_print_nc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -18236,7 +18546,8 @@ Parrot_print_nc(opcode_t *cur_opcode, PARROT_INTERP) { } #endif -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_print_s(opcode_t *cur_opcode, PARROT_INTERP) { @@ -18245,7 +18556,8 @@ Parrot_print_s(opcode_t *cur_opcode, PARROT_INTERP) { if (s && Parrot_str_byte_length(interp, s)) Parrot_io_putps(interp, _PIO_STDOUT(interp), s); -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_print_sc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -18254,7 +18566,8 @@ Parrot_print_sc(opcode_t *cur_opcode, PARROT_INTERP) { if (s && Parrot_str_byte_length(interp, s)) Parrot_io_putps(interp, _PIO_STDOUT(interp), s); -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_print_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -18264,21 +18577,24 @@ Parrot_print_p(opcode_t *cur_opcode, PARROT_INTERP) { if (s) Parrot_io_putps(interp, _PIO_STDOUT(interp), s); -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_say_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); Parrot_io_printf(interp, INTVAL_FMT "\n", (INTVAL)IREG(1)); -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_say_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); Parrot_io_printf(interp, INTVAL_FMT "\n", (INTVAL)ICONST(1)); -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_say_n(opcode_t *cur_opcode, PARROT_INTERP) { @@ -18295,7 +18611,8 @@ Parrot_say_n(opcode_t *cur_opcode, PARROT_INTERP) { } #endif -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_say_nc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -18312,7 +18629,8 @@ Parrot_say_nc(opcode_t *cur_opcode, PARROT_INTERP) { } #endif -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_say_s(opcode_t *cur_opcode, PARROT_INTERP) { @@ -18322,7 +18640,8 @@ Parrot_say_s(opcode_t *cur_opcode, PARROT_INTERP) { Parrot_io_putps(interp, _PIO_STDOUT(interp), s); Parrot_io_putps(interp, _PIO_STDOUT(interp), Parrot_str_new_constant(interp, "\n")); -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_say_sc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -18332,7 +18651,8 @@ Parrot_say_sc(opcode_t *cur_opcode, PARROT_INTERP) { Parrot_io_putps(interp, _PIO_STDOUT(interp), s); Parrot_io_putps(interp, _PIO_STDOUT(interp), Parrot_str_new_constant(interp, "\n")); -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_say_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -18351,7 +18671,8 @@ Parrot_say_p(opcode_t *cur_opcode, PARROT_INTERP) { Parrot_io_putps(interp, _PIO_STDOUT(interp), Parrot_str_new_constant(interp, "\n")); } -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_print_p_i(opcode_t *cur_opcode, PARROT_INTERP) { @@ -18361,7 +18682,8 @@ Parrot_print_p_i(opcode_t *cur_opcode, PARROT_INTERP) { Parrot_io_putps(interp, PREG(1), s); } -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_print_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -18371,7 +18693,8 @@ Parrot_print_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { Parrot_io_putps(interp, PREG(1), s); } -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_print_p_n(opcode_t *cur_opcode, PARROT_INTERP) { @@ -18381,7 +18704,8 @@ Parrot_print_p_n(opcode_t *cur_opcode, PARROT_INTERP) { Parrot_io_putps(interp, PREG(1), s); } -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_print_p_nc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -18391,7 +18715,8 @@ Parrot_print_p_nc(opcode_t *cur_opcode, PARROT_INTERP) { Parrot_io_putps(interp, PREG(1), s); } -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_print_p_s(opcode_t *cur_opcode, PARROT_INTERP) { @@ -18400,7 +18725,8 @@ Parrot_print_p_s(opcode_t *cur_opcode, PARROT_INTERP) { Parrot_io_putps(interp, PREG(1), SREG(2)); } -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_print_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -18409,7 +18735,8 @@ Parrot_print_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { Parrot_io_putps(interp, PREG(1), SCONST(2)); } -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_print_p_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -18419,231 +18746,267 @@ Parrot_print_p_p(opcode_t *cur_opcode, PARROT_INTERP) { Parrot_io_putps(interp, PREG(1), s); } -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_getstdin_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = _PIO_STDIN(interp); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_getstdout_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = _PIO_STDOUT(interp); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_getstderr_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = _PIO_STDERR(interp); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_abs_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = abs(IREG(1)); -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_abs_n(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); NREG(1) = fabs(NREG(1)); -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_abs_i_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = abs(IREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_abs_n_n(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); NREG(1) = fabs(NREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_abs_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_i_absolute(interp, PREG(1)); -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_abs_p_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_absolute(interp, PREG(2), PREG(1)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_add_i_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) += IREG(2); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_add_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) += ICONST(2); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_add_n_n(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); NREG(1) += NREG(2); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_add_n_nc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); NREG(1) += NCONST(2); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_add_p_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_i_add(interp, PREG(1), PREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_add_p_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_i_add_int(interp, PREG(1), IREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_add_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_i_add_int(interp, PREG(1), ICONST(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_add_p_n(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_i_add_float(interp, PREG(1), NREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_add_p_nc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_i_add_float(interp, PREG(1), NCONST(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_add_i_i_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = IREG(2) + IREG(3); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_add_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = ICONST(2) + IREG(3); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_add_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = IREG(2) + ICONST(3); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_add_n_n_n(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); NREG(1) = NREG(2) + NREG(3); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_add_n_nc_n(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); NREG(1) = NCONST(2) + NREG(3); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_add_n_n_nc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); NREG(1) = NREG(2) + NCONST(3); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_add_p_p_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_add(interp, PREG(2), PREG(3), PREG(1)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_add_p_p_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_add_int(interp, PREG(2), IREG(3), PREG(1)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_add_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_add_int(interp, PREG(2), ICONST(3), PREG(1)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_add_p_p_n(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_add_float(interp, PREG(2), NREG(3), PREG(1)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_add_p_p_nc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_add_float(interp, PREG(2), NCONST(3), PREG(1)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_dec_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1)--; -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_dec_n(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); NREG(1)--; -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_dec_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_decrement(interp, PREG(1)); -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_div_i_i(opcode_t *cur_opcode, PARROT_INTERP) { @@ -18656,7 +19019,8 @@ Parrot_div_i_i(opcode_t *cur_opcode, PARROT_INTERP) { } IREG(1) /= den; -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_div_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -18669,7 +19033,8 @@ Parrot_div_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { } IREG(1) /= den; -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_div_n_n(opcode_t *cur_opcode, PARROT_INTERP) { @@ -18682,7 +19047,8 @@ Parrot_div_n_n(opcode_t *cur_opcode, PARROT_INTERP) { } NREG(1) /= den; -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_div_n_nc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -18695,42 +19061,48 @@ Parrot_div_n_nc(opcode_t *cur_opcode, PARROT_INTERP) { } NREG(1) /= den; -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_div_p_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_i_divide(interp, PREG(1), PREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_div_p_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_i_divide_int(interp, PREG(1), IREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_div_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_i_divide_int(interp, PREG(1), ICONST(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_div_p_n(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_i_divide_float(interp, PREG(1), NREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_div_p_nc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_i_divide_float(interp, PREG(1), NCONST(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_div_i_i_i(opcode_t *cur_opcode, PARROT_INTERP) { @@ -18743,7 +19115,8 @@ Parrot_div_i_i_i(opcode_t *cur_opcode, PARROT_INTERP) { } IREG(1) = IREG(2) / den; -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_div_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP) { @@ -18756,7 +19129,8 @@ Parrot_div_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP) { } IREG(1) = ICONST(2) / den; -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_div_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -18769,7 +19143,8 @@ Parrot_div_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { } IREG(1) = IREG(2) / den; -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_div_i_ic_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -18782,7 +19157,8 @@ Parrot_div_i_ic_ic(opcode_t *cur_opcode, PARROT_INTERP) { } IREG(1) = ICONST(2) / den; -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_div_n_n_n(opcode_t *cur_opcode, PARROT_INTERP) { @@ -18795,7 +19171,8 @@ Parrot_div_n_n_n(opcode_t *cur_opcode, PARROT_INTERP) { } NREG(1) = NREG(2) / den; -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_div_n_nc_n(opcode_t *cur_opcode, PARROT_INTERP) { @@ -18808,7 +19185,8 @@ Parrot_div_n_nc_n(opcode_t *cur_opcode, PARROT_INTERP) { } NREG(1) = NCONST(2) / den; -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_div_n_n_nc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -18821,7 +19199,8 @@ Parrot_div_n_n_nc(opcode_t *cur_opcode, PARROT_INTERP) { } NREG(1) = NREG(2) / den; -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_div_n_nc_nc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -18834,42 +19213,48 @@ Parrot_div_n_nc_nc(opcode_t *cur_opcode, PARROT_INTERP) { } NREG(1) = NCONST(2) / den; -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_div_p_p_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_divide(interp, PREG(2), PREG(3), PREG(1)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_div_p_p_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_divide_int(interp, PREG(2), IREG(3), PREG(1)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_div_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_divide_int(interp, PREG(2), ICONST(3), PREG(1)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_div_p_p_n(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_divide_float(interp, PREG(2), NREG(3), PREG(1)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_div_p_p_nc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_divide_float(interp, PREG(2), NCONST(3), PREG(1)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_fdiv_i_i(opcode_t *cur_opcode, PARROT_INTERP) { @@ -18886,7 +19271,8 @@ Parrot_fdiv_i_i(opcode_t *cur_opcode, PARROT_INTERP) { f = floor(((FLOATVAL)IREG(1)) / den); IREG(1) = (INTVAL)f; -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_fdiv_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -18903,7 +19289,8 @@ Parrot_fdiv_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { f = floor(((FLOATVAL)IREG(1)) / den); IREG(1) = (INTVAL)f; -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_fdiv_n_n(opcode_t *cur_opcode, PARROT_INTERP) { @@ -18916,7 +19303,8 @@ Parrot_fdiv_n_n(opcode_t *cur_opcode, PARROT_INTERP) { } NREG(1) = floor(NREG(1) / den); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_fdiv_n_nc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -18929,42 +19317,48 @@ Parrot_fdiv_n_nc(opcode_t *cur_opcode, PARROT_INTERP) { } NREG(1) = floor(NREG(1) / den); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_fdiv_p_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_i_floor_divide(interp, PREG(1), PREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_fdiv_p_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_i_floor_divide_int(interp, PREG(1), IREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_fdiv_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_i_floor_divide_int(interp, PREG(1), ICONST(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_fdiv_p_n(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_i_floor_divide_float(interp, PREG(1), NREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_fdiv_p_nc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_i_floor_divide_float(interp, PREG(1), NCONST(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_fdiv_i_i_i(opcode_t *cur_opcode, PARROT_INTERP) { @@ -18981,7 +19375,8 @@ Parrot_fdiv_i_i_i(opcode_t *cur_opcode, PARROT_INTERP) { f = floor((FLOATVAL)IREG(2) / den); IREG(1) = (INTVAL)f; -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_fdiv_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP) { @@ -18998,7 +19393,8 @@ Parrot_fdiv_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP) { f = floor((FLOATVAL)ICONST(2) / den); IREG(1) = (INTVAL)f; -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_fdiv_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -19015,7 +19411,8 @@ Parrot_fdiv_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { f = floor((FLOATVAL)IREG(2) / den); IREG(1) = (INTVAL)f; -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_fdiv_n_n_n(opcode_t *cur_opcode, PARROT_INTERP) { @@ -19028,7 +19425,8 @@ Parrot_fdiv_n_n_n(opcode_t *cur_opcode, PARROT_INTERP) { } NREG(1) = floor(NREG(2) / den); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_fdiv_n_nc_n(opcode_t *cur_opcode, PARROT_INTERP) { @@ -19041,7 +19439,8 @@ Parrot_fdiv_n_nc_n(opcode_t *cur_opcode, PARROT_INTERP) { } NREG(1) = floor(NCONST(2) / den); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_fdiv_n_n_nc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -19054,49 +19453,56 @@ Parrot_fdiv_n_n_nc(opcode_t *cur_opcode, PARROT_INTERP) { } NREG(1) = floor(NREG(2) / den); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_fdiv_p_p_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_floor_divide(interp, PREG(2), PREG(3), PREG(1)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_fdiv_p_p_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_floor_divide_int(interp, PREG(2), IREG(3), PREG(1)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_fdiv_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_floor_divide_int(interp, PREG(2), ICONST(3), PREG(1)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_fdiv_p_p_n(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_floor_divide_float(interp, PREG(2), NREG(3), PREG(1)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_fdiv_p_p_nc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_floor_divide_float(interp, PREG(2), NCONST(3), PREG(1)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_ceil_n(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); NREG(1) = ceil(NREG(1)); -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_ceil_i_n(opcode_t *cur_opcode, PARROT_INTERP) { @@ -19104,21 +19510,24 @@ Parrot_ceil_i_n(opcode_t *cur_opcode, PARROT_INTERP) { FLOATVAL f = ceil(NREG(2)); IREG(1) = (INTVAL)f; -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_ceil_n_n(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); NREG(1) = ceil(NREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_floor_n(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); NREG(1) = floor(NREG(1)); -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_floor_i_n(opcode_t *cur_opcode, PARROT_INTERP) { @@ -19126,504 +19535,576 @@ Parrot_floor_i_n(opcode_t *cur_opcode, PARROT_INTERP) { FLOATVAL f = floor(NREG(2)); IREG(1) = (INTVAL)f; -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_floor_n_n(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); NREG(1) = floor(NREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_inc_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1)++; -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_inc_n(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); NREG(1)++; -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_inc_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_increment(interp, PREG(1)); -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_mod_i_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = Parrot_util_intval_mod(IREG(1), IREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_mod_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = Parrot_util_intval_mod(IREG(1), ICONST(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_mod_n_n(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); NREG(1) = Parrot_util_floatval_mod(NREG(1), NREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_mod_n_nc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); NREG(1) = Parrot_util_floatval_mod(NREG(1), NCONST(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_mod_p_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_i_modulus(interp, PREG(1), PREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_mod_p_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_i_modulus_int(interp, PREG(1), IREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_mod_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_i_modulus_int(interp, PREG(1), ICONST(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_mod_p_n(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_i_modulus_float(interp, PREG(1), NREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_mod_p_nc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_i_modulus_float(interp, PREG(1), NCONST(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_mod_i_i_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = Parrot_util_intval_mod(IREG(2), IREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_mod_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = Parrot_util_intval_mod(ICONST(2), IREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_mod_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = Parrot_util_intval_mod(IREG(2), ICONST(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_mod_n_n_n(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); NREG(1) = Parrot_util_floatval_mod(NREG(2), NREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_mod_n_nc_n(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); NREG(1) = Parrot_util_floatval_mod(NCONST(2), NREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_mod_n_n_nc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); NREG(1) = Parrot_util_floatval_mod(NREG(2), NCONST(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_mod_p_p_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_modulus(interp, PREG(2), PREG(3), PREG(1)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_mod_p_p_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_modulus_int(interp, PREG(2), IREG(3), PREG(1)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_mod_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_modulus_int(interp, PREG(2), ICONST(3), PREG(1)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_mod_p_p_n(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_modulus_float(interp, PREG(2), NREG(3), PREG(1)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_mod_p_p_nc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_modulus_float(interp, PREG(2), NCONST(3), PREG(1)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_mul_i_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) *= IREG(2); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_mul_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) *= ICONST(2); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_mul_n_n(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); NREG(1) *= NREG(2); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_mul_n_nc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); NREG(1) *= NCONST(2); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_mul_p_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_i_multiply(interp, PREG(1), PREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_mul_p_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_i_multiply_int(interp, PREG(1), IREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_mul_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_i_multiply_int(interp, PREG(1), ICONST(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_mul_p_n(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_i_multiply_float(interp, PREG(1), NREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_mul_p_nc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_i_multiply_float(interp, PREG(1), NCONST(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_mul_i_i_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = IREG(2) * IREG(3); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_mul_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = ICONST(2) * IREG(3); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_mul_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = IREG(2) * ICONST(3); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_mul_n_n_n(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); NREG(1) = NREG(2) * NREG(3); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_mul_n_nc_n(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); NREG(1) = NCONST(2) * NREG(3); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_mul_n_n_nc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); NREG(1) = NREG(2) * NCONST(3); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_mul_p_p_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_multiply(interp, PREG(2), PREG(3), PREG(1)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_mul_p_p_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_multiply_int(interp, PREG(2), IREG(3), PREG(1)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_mul_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_multiply_int(interp, PREG(2), ICONST(3), PREG(1)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_mul_p_p_n(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_multiply_float(interp, PREG(2), NREG(3), PREG(1)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_mul_p_p_nc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_multiply_float(interp, PREG(2), NCONST(3), PREG(1)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_neg_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = - IREG(1); -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_neg_n(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); NREG(1) = - NREG(1); -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_neg_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_i_neg(interp, PREG(1)); -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_neg_i_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = - IREG(2); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_neg_n_n(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); NREG(1) = - NREG(2); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_neg_p_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_neg(interp, PREG(2), PREG(1)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_sub_i_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) -= IREG(2); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_sub_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) -= ICONST(2); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_sub_n_n(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); NREG(1) -= NREG(2); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_sub_n_nc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); NREG(1) -= NCONST(2); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_sub_p_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_i_subtract(interp, PREG(1), PREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_sub_p_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_i_subtract_int(interp, PREG(1), IREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_sub_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_i_subtract_int(interp, PREG(1), ICONST(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_sub_p_n(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_i_subtract_float(interp, PREG(1), NREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_sub_p_nc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_i_subtract_float(interp, PREG(1), NCONST(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_sub_i_i_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = IREG(2) - IREG(3); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_sub_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = ICONST(2) - IREG(3); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_sub_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = IREG(2) - ICONST(3); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_sub_n_n_n(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); NREG(1) = NREG(2) - NREG(3); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_sub_n_nc_n(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); NREG(1) = NCONST(2) - NREG(3); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_sub_n_n_nc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); NREG(1) = NREG(2) - NCONST(3); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_sub_p_p_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_subtract(interp, PREG(2), PREG(3), PREG(1)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_sub_p_p_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_subtract_int(interp, PREG(2), IREG(3), PREG(1)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_sub_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_subtract_int(interp, PREG(2), ICONST(3), PREG(1)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_sub_p_p_n(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_subtract_float(interp, PREG(2), NREG(3), PREG(1)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_sub_p_p_nc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_subtract_float(interp, PREG(2), NCONST(3), PREG(1)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_sqrt_n_n(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); NREG(1) = sqrt((FLOATVAL)NREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_callmethodcc_p_s(opcode_t *cur_opcode, PARROT_INTERP) { @@ -19864,84 +20345,96 @@ Parrot_addmethod_p_s_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_add_method(interp, PREG(1), SREG(2), PREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_addmethod_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_add_method(interp, PREG(1), SCONST(2), PREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_can_i_p_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = VTABLE_can(interp, PREG(2), SREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_can_i_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = VTABLE_can(interp, PREG(2), SCONST(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_does_i_p_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = SREG(3) ? VTABLE_does(interp, PREG(2), SREG(3)) : 0; -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_does_i_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = SCONST(3) ? VTABLE_does(interp, PREG(2), SCONST(3)) : 0; -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_does_i_p_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = PREG(3) ? VTABLE_does_pmc(interp, PREG(2), PREG(3)) : 0; -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_does_i_p_pc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = PCONST(3) ? VTABLE_does_pmc(interp, PREG(2), PCONST(3)) : 0; -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_isa_i_p_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = SREG(3) ? VTABLE_isa(interp, PREG(2), SREG(3)) : 0; -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_isa_i_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = SCONST(3) ? VTABLE_isa(interp, PREG(2), SCONST(3)) : 0; -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_isa_i_p_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = PREG(3) ? VTABLE_isa_pmc(interp, PREG(2), PREG(3)) : 0; -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_isa_i_p_pc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = PCONST(3) ? VTABLE_isa_pmc(interp, PREG(2), PCONST(3)) : 0; -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_newclass_p_s(opcode_t *cur_opcode, PARROT_INTERP) { @@ -19950,7 +20443,8 @@ Parrot_newclass_p_s(opcode_t *cur_opcode, PARROT_INTERP) { VTABLE_set_string_native(interp, name, SREG(2)); PREG(1) = Parrot_pmc_new_init(interp, enum_class_Class, name); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_newclass_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -19959,21 +20453,24 @@ Parrot_newclass_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { VTABLE_set_string_native(interp, name, SCONST(2)); PREG(1) = Parrot_pmc_new_init(interp, enum_class_Class, name); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_newclass_p_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = Parrot_pmc_new_init(interp, enum_class_Class, PREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_newclass_p_pc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = Parrot_pmc_new_init(interp, enum_class_Class, PCONST(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_subclass_p_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -20290,210 +20787,240 @@ Parrot_get_class_p_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = Parrot_oo_get_class_str(interp, SREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_get_class_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = Parrot_oo_get_class_str(interp, SCONST(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_get_class_p_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = Parrot_oo_get_class(interp, PREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_get_class_p_pc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = Parrot_oo_get_class(interp, PCONST(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_class_p_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_get_class(interp, PREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_addparent_p_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_add_parent(interp, PREG(1), PREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_removeparent_p_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_remove_parent(interp, PREG(1), PREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_addrole_p_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_add_role(interp, PREG(1), PREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_addattribute_p_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_add_attribute(interp, PREG(1), SREG(2), PMCNULL); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_addattribute_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_add_attribute(interp, PREG(1), SCONST(2), PMCNULL); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_removeattribute_p_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_remove_attribute(interp, PREG(1), SREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_removeattribute_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_remove_attribute(interp, PREG(1), SCONST(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_getattribute_p_p_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_get_attr_str(interp, PREG(2), SREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_getattribute_p_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_get_attr_str(interp, PREG(2), SCONST(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_getattribute_p_p_p_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_get_attr_keyed(interp, PREG(2), PREG(3), SREG(4)); -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_getattribute_p_p_pc_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_get_attr_keyed(interp, PREG(2), PCONST(3), SREG(4)); -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_getattribute_p_p_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_get_attr_keyed(interp, PREG(2), PREG(3), SCONST(4)); -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_getattribute_p_p_pc_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_get_attr_keyed(interp, PREG(2), PCONST(3), SCONST(4)); -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_setattribute_p_s_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_set_attr_str(interp, PREG(1), SREG(2), PREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_setattribute_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_set_attr_str(interp, PREG(1), SCONST(2), PREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_setattribute_p_p_s_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_set_attr_keyed(interp, PREG(1), PREG(2), SREG(3), PREG(4)); -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_setattribute_p_pc_s_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_set_attr_keyed(interp, PREG(1), PCONST(2), SREG(3), PREG(4)); -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_setattribute_p_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_set_attr_keyed(interp, PREG(1), PREG(2), SCONST(3), PREG(4)); -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_setattribute_p_pc_sc_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_set_attr_keyed(interp, PREG(1), PCONST(2), SCONST(3), PREG(4)); -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_inspect_p_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_inspect(interp, PREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_inspect_p_pc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_inspect(interp, PCONST(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_inspect_p_p_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_inspect_str(interp, PREG(2), SREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_inspect_p_pc_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_inspect_str(interp, PCONST(2), SREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_inspect_p_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_inspect_str(interp, PREG(2), SCONST(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_inspect_p_pc_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_inspect_str(interp, PCONST(2), SCONST(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_new_p_s(opcode_t *cur_opcode, PARROT_INTERP) { @@ -20515,7 +21042,8 @@ Parrot_new_p_s(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = Parrot_pmc_new(interp, type); } -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_new_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -20537,7 +21065,8 @@ Parrot_new_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = Parrot_pmc_new(interp, type); } -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_new_p_s_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -20559,7 +21088,8 @@ Parrot_new_p_s_p(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = Parrot_pmc_new_init(interp, type, PREG(3)); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_new_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -20581,7 +21111,8 @@ Parrot_new_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = Parrot_pmc_new_init(interp, type, PREG(3)); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_new_p_s_pc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -20603,7 +21134,8 @@ Parrot_new_p_s_pc(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = Parrot_pmc_new_init(interp, type, PCONST(3)); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_new_p_sc_pc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -20625,7 +21157,8 @@ Parrot_new_p_sc_pc(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = Parrot_pmc_new_init(interp, type, PCONST(3)); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_new_p_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -20645,7 +21178,8 @@ Parrot_new_p_p(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = Parrot_pmc_new(interp, type); } -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_new_p_pc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -20665,7 +21199,8 @@ Parrot_new_p_pc(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = Parrot_pmc_new(interp, type); } -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_new_p_p_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -20685,7 +21220,8 @@ Parrot_new_p_p_p(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = Parrot_pmc_new_init(interp, type, PREG(3)); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_new_p_pc_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -20705,7 +21241,8 @@ Parrot_new_p_pc_p(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = Parrot_pmc_new_init(interp, type, PREG(3)); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_new_p_p_pc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -20725,7 +21262,8 @@ Parrot_new_p_p_pc(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = Parrot_pmc_new_init(interp, type, PCONST(3)); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_new_p_pc_pc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -20745,7 +21283,8 @@ Parrot_new_p_pc_pc(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = Parrot_pmc_new_init(interp, type, PCONST(3)); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_root_new_p_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -20765,7 +21304,8 @@ Parrot_root_new_p_p(opcode_t *cur_opcode, PARROT_INTERP) { "Class '%Ss' not found", VTABLE_get_repr(interp, key));return (opcode_t *)dest; } -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_root_new_p_pc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -20785,7 +21325,8 @@ Parrot_root_new_p_pc(opcode_t *cur_opcode, PARROT_INTERP) { "Class '%Ss' not found", VTABLE_get_repr(interp, key));return (opcode_t *)dest; } -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_root_new_p_p_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -20805,7 +21346,8 @@ Parrot_root_new_p_p_p(opcode_t *cur_opcode, PARROT_INTERP) { "Class '%Ss' not found", VTABLE_get_repr(interp, key));return (opcode_t *)dest; } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_root_new_p_pc_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -20825,7 +21367,8 @@ Parrot_root_new_p_pc_p(opcode_t *cur_opcode, PARROT_INTERP) { "Class '%Ss' not found", VTABLE_get_repr(interp, key));return (opcode_t *)dest; } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_root_new_p_p_pc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -20845,7 +21388,8 @@ Parrot_root_new_p_p_pc(opcode_t *cur_opcode, PARROT_INTERP) { "Class '%Ss' not found", VTABLE_get_repr(interp, key));return (opcode_t *)dest; } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_root_new_p_pc_pc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -20865,28 +21409,32 @@ Parrot_root_new_p_pc_pc(opcode_t *cur_opcode, PARROT_INTERP) { "Class '%Ss' not found", VTABLE_get_repr(interp, key));return (opcode_t *)dest; } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_typeof_s_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = VTABLE_name(interp, PREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_typeof_p_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_get_class(interp, PREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_get_repr_s_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = VTABLE_get_repr(interp, PREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_find_method_p_p_s(opcode_t *cur_opcode, PARROT_INTERP) { @@ -20919,483 +21467,552 @@ Parrot_defined_i_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = PMC_IS_NULL(PREG(2)) ? 0 : VTABLE_defined(interp, PREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_defined_i_p_ki(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = PMC_IS_NULL(PREG(2)) ? 0 : VTABLE_defined_keyed_int(interp, PREG(2), IREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_defined_i_p_kic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = PMC_IS_NULL(PREG(2)) ? 0 : VTABLE_defined_keyed_int(interp, PREG(2), ICONST(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_defined_i_p_k(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = PMC_IS_NULL(PREG(2)) ? 0 : VTABLE_defined_keyed(interp, PREG(2), PREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_defined_i_p_kc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = PMC_IS_NULL(PREG(2)) ? 0 : VTABLE_defined_keyed(interp, PREG(2), PCONST(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_exists_i_p_ki(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = PMC_IS_NULL(PREG(2)) ? 0 : VTABLE_exists_keyed_int(interp, PREG(2), IREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_exists_i_p_kic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = PMC_IS_NULL(PREG(2)) ? 0 : VTABLE_exists_keyed_int(interp, PREG(2), ICONST(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_exists_i_p_k(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = PMC_IS_NULL(PREG(2)) ? 0: VTABLE_exists_keyed(interp, PREG(2), PREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_exists_i_p_kc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = PMC_IS_NULL(PREG(2)) ? 0: VTABLE_exists_keyed(interp, PREG(2), PCONST(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_delete_p_k(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_delete_keyed(interp, PREG(1), PREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_delete_p_kc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_delete_keyed(interp, PREG(1), PCONST(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_delete_p_ki(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_delete_keyed_int(interp, PREG(1), IREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_delete_p_kic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_delete_keyed_int(interp, PREG(1), ICONST(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_elements_i_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = VTABLE_elements(interp, PREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_push_p_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_push_integer(interp, PREG(1), IREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_push_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_push_integer(interp, PREG(1), ICONST(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_push_p_n(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_push_float(interp, PREG(1), NREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_push_p_nc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_push_float(interp, PREG(1), NCONST(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_push_p_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_push_string(interp, PREG(1), SREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_push_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_push_string(interp, PREG(1), SCONST(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_push_p_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_push_pmc(interp, PREG(1), PREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_pop_i_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = VTABLE_pop_integer(interp, PREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_pop_n_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); NREG(1) = VTABLE_pop_float(interp, PREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_pop_s_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = VTABLE_pop_string(interp, PREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_pop_p_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_pop_pmc(interp, PREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_unshift_p_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_unshift_integer(interp, PREG(1), IREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_unshift_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_unshift_integer(interp, PREG(1), ICONST(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_unshift_p_n(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_unshift_float(interp, PREG(1), NREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_unshift_p_nc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_unshift_float(interp, PREG(1), NCONST(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_unshift_p_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_unshift_string(interp, PREG(1), SREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_unshift_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_unshift_string(interp, PREG(1), SCONST(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_unshift_p_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_unshift_pmc(interp, PREG(1), PREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_shift_i_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = VTABLE_shift_integer(interp, PREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_shift_n_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); NREG(1) = VTABLE_shift_float(interp, PREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_shift_s_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = VTABLE_shift_string(interp, PREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_shift_p_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_shift_pmc(interp, PREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_splice_p_p_i_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_splice(interp, PREG(1), PREG(2), IREG(3), IREG(4)); -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_splice_p_p_ic_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_splice(interp, PREG(1), PREG(2), ICONST(3), IREG(4)); -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_splice_p_p_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_splice(interp, PREG(1), PREG(2), IREG(3), ICONST(4)); -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_splice_p_p_ic_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_splice(interp, PREG(1), PREG(2), ICONST(3), ICONST(4)); -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_setprop_p_s_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_setprop(interp, PREG(1), SREG(2), PREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_setprop_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_setprop(interp, PREG(1), SCONST(2), PREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_getprop_p_s_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_getprop(interp, PREG(3), SREG(2)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_getprop_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_getprop(interp, PREG(3), SCONST(2)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_delprop_p_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_delprop(interp, PREG(1), SREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_delprop_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_delprop(interp, PREG(1), SCONST(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_prophash_p_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_getprops(interp, PREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_freeze_s_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_freeze(interp, PREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_thaw_p_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = Parrot_thaw(interp, SREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_thaw_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = Parrot_thaw(interp, SCONST(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_add_multi_s_s_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); Parrot_mmd_add_multi_from_long_sig(interp, SREG(1), SREG(2), PREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_add_multi_sc_s_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); Parrot_mmd_add_multi_from_long_sig(interp, SCONST(1), SREG(2), PREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_add_multi_s_sc_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); Parrot_mmd_add_multi_from_long_sig(interp, SREG(1), SCONST(2), PREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_add_multi_sc_sc_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); Parrot_mmd_add_multi_from_long_sig(interp, SCONST(1), SCONST(2), PREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_find_multi_p_s_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = Parrot_mmd_find_multi_from_long_sig(interp, SREG(2), SREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_find_multi_p_sc_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = Parrot_mmd_find_multi_from_long_sig(interp, SCONST(2), SREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_find_multi_p_s_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = Parrot_mmd_find_multi_from_long_sig(interp, SREG(2), SCONST(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_find_multi_p_sc_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = Parrot_mmd_find_multi_from_long_sig(interp, SCONST(2), SCONST(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_register_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); Parrot_pmc_gc_register(interp, PREG(1)); -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_unregister_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); Parrot_pmc_gc_unregister(interp, PREG(1)); -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_box_p_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = Parrot_pmc_box_integer(interp, IREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_box_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = Parrot_pmc_box_integer(interp, ICONST(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_box_p_n(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = Parrot_pmc_box_number(interp, NREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_box_p_nc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = Parrot_pmc_box_number(interp, NCONST(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_box_p_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = Parrot_pmc_box_string(interp, SREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_box_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = Parrot_pmc_box_string(interp, SCONST(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_iter_p_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_get_iter(interp, PREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_morph_p_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_morph(interp, PREG(1), PREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_morph_p_pc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_morph(interp, PREG(1), PCONST(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_clone_s_s(opcode_t *cur_opcode, PARROT_INTERP) { @@ -21405,7 +22022,8 @@ Parrot_clone_s_s(opcode_t *cur_opcode, PARROT_INTERP) { ? Parrot_str_new(interp, NULL, 0) : SREG(2); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_clone_s_sc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -21415,616 +22033,704 @@ Parrot_clone_s_sc(opcode_t *cur_opcode, PARROT_INTERP) { ? Parrot_str_new(interp, NULL, 0) : SCONST(2); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_set_i_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = IREG(2); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_set_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = ICONST(2); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_set_i_n(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = (INTVAL)(NREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_set_i_nc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = (INTVAL)(NCONST(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_set_i_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = Parrot_str_to_int(interp, SREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_set_i_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = Parrot_str_to_int(interp, SCONST(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_set_n_n(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); NREG(1) = NREG(2); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_set_n_nc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); NREG(1) = NCONST(2); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_set_n_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); NREG(1) = (FLOATVAL)IREG(2); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_set_n_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); NREG(1) = (FLOATVAL)ICONST(2); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_set_n_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); NREG(1) = Parrot_str_to_num(interp, SREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_set_n_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); NREG(1) = Parrot_str_to_num(interp, SCONST(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_set_n_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); NREG(1) = VTABLE_get_number(interp, PREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_set_s_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = VTABLE_get_string(interp, PREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_set_s_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = SREG(2); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_set_s_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = SCONST(2); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_set_s_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_from_int(interp, IREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_set_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_from_int(interp, ICONST(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_set_s_n(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_from_num(interp, NREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_set_s_nc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_from_num(interp, NCONST(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_set_p_pc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = PCONST(2); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_set_p_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = PREG(2); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_set_p_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_set_integer_native(interp, PREG(1), IREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_set_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_set_integer_native(interp, PREG(1), ICONST(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_set_p_n(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_set_number_native(interp, PREG(1), NREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_set_p_nc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_set_number_native(interp, PREG(1), NCONST(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_set_p_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_set_string_native(interp, PREG(1), SREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_set_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_set_string_native(interp, PREG(1), SCONST(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_set_i_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = VTABLE_get_integer(interp, PREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_assign_p_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_assign_pmc(interp, PREG(1), PREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_assign_p_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_set_integer_native(interp, PREG(1), IREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_assign_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_set_integer_native(interp, PREG(1), ICONST(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_assign_p_n(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_set_number_native(interp, PREG(1), NREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_assign_p_nc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_set_number_native(interp, PREG(1), NCONST(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_assign_p_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_assign_string_native(interp, PREG(1), SREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_assign_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_assign_string_native(interp, PREG(1), SCONST(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_assign_s_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = SREG(2); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_assign_s_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = SCONST(2); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_setref_p_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_set_pmc(interp, PREG(1), PREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_deref_p_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_get_pmc(interp, PREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_set_p_ki_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_set_integer_keyed_int(interp, PREG(1), IREG(2), IREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_set_p_kic_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_set_integer_keyed_int(interp, PREG(1), ICONST(2), IREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_set_p_ki_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_set_integer_keyed_int(interp, PREG(1), IREG(2), ICONST(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_set_p_kic_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_set_integer_keyed_int(interp, PREG(1), ICONST(2), ICONST(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_set_p_ki_n(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_set_number_keyed_int(interp, PREG(1), IREG(2), NREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_set_p_kic_n(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_set_number_keyed_int(interp, PREG(1), ICONST(2), NREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_set_p_ki_nc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_set_number_keyed_int(interp, PREG(1), IREG(2), NCONST(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_set_p_kic_nc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_set_number_keyed_int(interp, PREG(1), ICONST(2), NCONST(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_set_p_ki_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_set_string_keyed_int(interp, PREG(1), IREG(2), SREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_set_p_kic_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_set_string_keyed_int(interp, PREG(1), ICONST(2), SREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_set_p_ki_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_set_string_keyed_int(interp, PREG(1), IREG(2), SCONST(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_set_p_kic_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_set_string_keyed_int(interp, PREG(1), ICONST(2), SCONST(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_set_p_ki_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_set_pmc_keyed_int(interp, PREG(1), IREG(2), PREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_set_p_kic_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_set_pmc_keyed_int(interp, PREG(1), ICONST(2), PREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_set_i_p_ki(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = VTABLE_get_integer_keyed_int(interp, PREG(2), IREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_set_i_p_kic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = VTABLE_get_integer_keyed_int(interp, PREG(2), ICONST(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_set_n_p_ki(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); NREG(1) = VTABLE_get_number_keyed_int(interp, PREG(2), IREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_set_n_p_kic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); NREG(1) = VTABLE_get_number_keyed_int(interp, PREG(2), ICONST(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_set_s_p_ki(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = VTABLE_get_string_keyed_int(interp, PREG(2), IREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_set_s_p_kic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = VTABLE_get_string_keyed_int(interp, PREG(2), ICONST(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_set_p_p_ki(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_get_pmc_keyed_int(interp, PREG(2), IREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_set_p_p_kic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_get_pmc_keyed_int(interp, PREG(2), ICONST(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_set_p_k_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_set_integer_keyed(interp, PREG(1), PREG(2), IREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_set_p_kc_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_set_integer_keyed(interp, PREG(1), PCONST(2), IREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_set_p_k_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_set_integer_keyed(interp, PREG(1), PREG(2), ICONST(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_set_p_kc_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_set_integer_keyed(interp, PREG(1), PCONST(2), ICONST(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_set_p_k_n(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_set_number_keyed(interp, PREG(1), PREG(2), NREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_set_p_kc_n(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_set_number_keyed(interp, PREG(1), PCONST(2), NREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_set_p_k_nc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_set_number_keyed(interp, PREG(1), PREG(2), NCONST(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_set_p_kc_nc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_set_number_keyed(interp, PREG(1), PCONST(2), NCONST(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_set_p_k_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_set_string_keyed(interp, PREG(1), PREG(2), SREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_set_p_kc_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_set_string_keyed(interp, PREG(1), PCONST(2), SREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_set_p_k_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_set_string_keyed(interp, PREG(1), PREG(2), SCONST(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_set_p_kc_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_set_string_keyed(interp, PREG(1), PCONST(2), SCONST(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_set_p_k_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_set_pmc_keyed(interp, PREG(1), PREG(2), PREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_set_p_kc_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_set_pmc_keyed(interp, PREG(1), PCONST(2), PREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_set_i_p_k(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = VTABLE_get_integer_keyed(interp, PREG(2), PREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_set_i_p_kc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = VTABLE_get_integer_keyed(interp, PREG(2), PCONST(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_set_n_p_k(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); NREG(1) = VTABLE_get_number_keyed(interp, PREG(2), PREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_set_n_p_kc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); NREG(1) = VTABLE_get_number_keyed(interp, PREG(2), PCONST(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_set_s_p_k(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = VTABLE_get_string_keyed(interp, PREG(2), PREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_set_s_p_kc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = VTABLE_get_string_keyed(interp, PREG(2), PCONST(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_set_p_p_k(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_get_pmc_keyed(interp, PREG(2), PREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_set_p_p_kc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_get_pmc_keyed(interp, PREG(2), PCONST(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_clone_p_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_clone(interp, PREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_clone_p_p_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_clone_pmc(interp, PREG(2), PREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_clone_p_p_pc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_clone_pmc(interp, PREG(2), PCONST(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_copy_p_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -22065,77 +22771,90 @@ Parrot_copy_p_p(opcode_t *cur_opcode, PARROT_INTERP) { } } -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_null_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = STRINGNULL; + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_null_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = 0; -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_null_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = PMCNULL; + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_null_n(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); NREG(1) = 0; -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_ord_i_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = STRING_ord(interp, SREG(2), 0); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_ord_i_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = STRING_ord(interp, SCONST(2), 0); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_ord_i_s_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = STRING_ord(interp, SREG(2), IREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_ord_i_sc_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = STRING_ord(interp, SCONST(2), IREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_ord_i_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = STRING_ord(interp, SREG(2), ICONST(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_ord_i_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = STRING_ord(interp, SCONST(2), ICONST(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_chr_s_i(opcode_t *cur_opcode, PARROT_INTERP) { @@ -22143,7 +22862,8 @@ Parrot_chr_s_i(opcode_t *cur_opcode, PARROT_INTERP) { STRING * const s = Parrot_str_chr(interp, (UINTVAL)IREG(2)); SREG(1) = s; -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_chr_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -22151,98 +22871,112 @@ Parrot_chr_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { STRING * const s = Parrot_str_chr(interp, (UINTVAL)ICONST(2)); SREG(1) = s; -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_chopn_s_s_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_chopn(interp, SREG(2), IREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_chopn_s_sc_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_chopn(interp, SCONST(2), IREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_chopn_s_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_chopn(interp, SREG(2), ICONST(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_chopn_s_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_chopn(interp, SCONST(2), ICONST(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_concat_p_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_i_concatenate(interp, PREG(1), PREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_concat_p_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_i_concatenate_str(interp, PREG(1), SREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_concat_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_i_concatenate_str(interp, PREG(1), SCONST(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_concat_s_s_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_concat(interp, SREG(2), SREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_concat_s_sc_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_concat(interp, SCONST(2), SREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_concat_s_s_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_concat(interp, SREG(2), SCONST(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_concat_p_p_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_concatenate_str(interp, PREG(2), SREG(3), PREG(1)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_concat_p_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_concatenate_str(interp, PREG(2), SCONST(3), PREG(1)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_concat_p_p_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_concatenate(interp, PREG(2), PREG(3), PREG(1)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_repeat_s_s_i(opcode_t *cur_opcode, PARROT_INTERP) { @@ -22254,7 +22988,8 @@ Parrot_repeat_s_s_i(opcode_t *cur_opcode, PARROT_INTERP) { } SREG(1) = Parrot_str_repeat(interp, SREG(2), (UINTVAL)IREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_repeat_s_sc_i(opcode_t *cur_opcode, PARROT_INTERP) { @@ -22266,7 +23001,8 @@ Parrot_repeat_s_sc_i(opcode_t *cur_opcode, PARROT_INTERP) { } SREG(1) = Parrot_str_repeat(interp, SCONST(2), (UINTVAL)IREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_repeat_s_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -22278,7 +23014,8 @@ Parrot_repeat_s_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { } SREG(1) = Parrot_str_repeat(interp, SREG(2), (UINTVAL)ICONST(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_repeat_s_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -22290,7 +23027,8 @@ Parrot_repeat_s_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) { } SREG(1) = Parrot_str_repeat(interp, SCONST(2), (UINTVAL)ICONST(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_repeat_p_p_i(opcode_t *cur_opcode, PARROT_INTERP) { @@ -22302,7 +23040,8 @@ Parrot_repeat_p_p_i(opcode_t *cur_opcode, PARROT_INTERP) { } PREG(1) = VTABLE_repeat_int(interp, PREG(2), IREG(3), PREG(1)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_repeat_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -22314,7 +23053,8 @@ Parrot_repeat_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { } PREG(1) = VTABLE_repeat_int(interp, PREG(2), ICONST(3), PREG(1)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_repeat_p_p_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -22326,70 +23066,82 @@ Parrot_repeat_p_p_p(opcode_t *cur_opcode, PARROT_INTERP) { } PREG(1) = VTABLE_repeat(interp, PREG(2), PREG(3), PREG(1)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_repeat_p_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_i_repeat_int(interp, PREG(1), IREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_repeat_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_i_repeat_int(interp, PREG(1), ICONST(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_repeat_p_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_i_repeat(interp, PREG(1), PREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_length_i_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = Parrot_str_length(interp, SREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_length_i_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = Parrot_str_length(interp, SCONST(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_bytelength_i_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = Parrot_str_byte_length(interp, SREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_bytelength_i_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = Parrot_str_byte_length(interp, SCONST(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_pin_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); Parrot_str_pin(interp, SREG(1)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_unpin_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); Parrot_str_unpin(interp, SREG(1)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_substr_s_s_i(opcode_t *cur_opcode, PARROT_INTERP) { @@ -22397,7 +23149,8 @@ Parrot_substr_s_s_i(opcode_t *cur_opcode, PARROT_INTERP) { const INTVAL len = Parrot_str_byte_length(interp, SREG(2)); SREG(1) = STRING_substr(interp, SREG(2), IREG(3), len); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_substr_s_sc_i(opcode_t *cur_opcode, PARROT_INTERP) { @@ -22405,7 +23158,8 @@ Parrot_substr_s_sc_i(opcode_t *cur_opcode, PARROT_INTERP) { const INTVAL len = Parrot_str_byte_length(interp, SCONST(2)); SREG(1) = STRING_substr(interp, SCONST(2), IREG(3), len); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_substr_s_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -22413,7 +23167,8 @@ Parrot_substr_s_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { const INTVAL len = Parrot_str_byte_length(interp, SREG(2)); SREG(1) = STRING_substr(interp, SREG(2), ICONST(3), len); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_substr_s_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -22421,301 +23176,344 @@ Parrot_substr_s_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) { const INTVAL len = Parrot_str_byte_length(interp, SCONST(2)); SREG(1) = STRING_substr(interp, SCONST(2), ICONST(3), len); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_substr_s_s_i_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = STRING_substr(interp, SREG(2), IREG(3), IREG(4)); -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_substr_s_sc_i_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = STRING_substr(interp, SCONST(2), IREG(3), IREG(4)); -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_substr_s_s_ic_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = STRING_substr(interp, SREG(2), ICONST(3), IREG(4)); -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_substr_s_sc_ic_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = STRING_substr(interp, SCONST(2), ICONST(3), IREG(4)); -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_substr_s_s_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = STRING_substr(interp, SREG(2), IREG(3), ICONST(4)); -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_substr_s_sc_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = STRING_substr(interp, SCONST(2), IREG(3), ICONST(4)); -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_substr_s_s_ic_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = STRING_substr(interp, SREG(2), ICONST(3), ICONST(4)); -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_substr_s_sc_ic_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = STRING_substr(interp, SCONST(2), ICONST(3), ICONST(4)); -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_substr_s_p_i_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = VTABLE_substr_str(interp, PREG(2), IREG(3), IREG(4)); -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_substr_s_p_ic_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = VTABLE_substr_str(interp, PREG(2), ICONST(3), IREG(4)); -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_substr_s_p_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = VTABLE_substr_str(interp, PREG(2), IREG(3), ICONST(4)); -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_substr_s_p_ic_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = VTABLE_substr_str(interp, PREG(2), ICONST(3), ICONST(4)); -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_replace_s_s_i_i_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_replace(interp, SREG(2), IREG(3), IREG(4), SREG(5)); -return (opcode_t *)cur_opcode + 6;} +return (opcode_t *)cur_opcode + 6; +} opcode_t * Parrot_replace_s_sc_i_i_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_replace(interp, SCONST(2), IREG(3), IREG(4), SREG(5)); -return (opcode_t *)cur_opcode + 6;} +return (opcode_t *)cur_opcode + 6; +} opcode_t * Parrot_replace_s_s_ic_i_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_replace(interp, SREG(2), ICONST(3), IREG(4), SREG(5)); -return (opcode_t *)cur_opcode + 6;} +return (opcode_t *)cur_opcode + 6; +} opcode_t * Parrot_replace_s_sc_ic_i_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_replace(interp, SCONST(2), ICONST(3), IREG(4), SREG(5)); -return (opcode_t *)cur_opcode + 6;} +return (opcode_t *)cur_opcode + 6; +} opcode_t * Parrot_replace_s_s_i_ic_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_replace(interp, SREG(2), IREG(3), ICONST(4), SREG(5)); -return (opcode_t *)cur_opcode + 6;} +return (opcode_t *)cur_opcode + 6; +} opcode_t * Parrot_replace_s_sc_i_ic_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_replace(interp, SCONST(2), IREG(3), ICONST(4), SREG(5)); -return (opcode_t *)cur_opcode + 6;} +return (opcode_t *)cur_opcode + 6; +} opcode_t * Parrot_replace_s_s_ic_ic_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_replace(interp, SREG(2), ICONST(3), ICONST(4), SREG(5)); -return (opcode_t *)cur_opcode + 6;} +return (opcode_t *)cur_opcode + 6; +} opcode_t * Parrot_replace_s_sc_ic_ic_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_replace(interp, SCONST(2), ICONST(3), ICONST(4), SREG(5)); -return (opcode_t *)cur_opcode + 6;} +return (opcode_t *)cur_opcode + 6; +} opcode_t * Parrot_replace_s_s_i_i_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_replace(interp, SREG(2), IREG(3), IREG(4), SCONST(5)); -return (opcode_t *)cur_opcode + 6;} +return (opcode_t *)cur_opcode + 6; +} opcode_t * Parrot_replace_s_sc_i_i_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_replace(interp, SCONST(2), IREG(3), IREG(4), SCONST(5)); -return (opcode_t *)cur_opcode + 6;} +return (opcode_t *)cur_opcode + 6; +} opcode_t * Parrot_replace_s_s_ic_i_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_replace(interp, SREG(2), ICONST(3), IREG(4), SCONST(5)); -return (opcode_t *)cur_opcode + 6;} +return (opcode_t *)cur_opcode + 6; +} opcode_t * Parrot_replace_s_sc_ic_i_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_replace(interp, SCONST(2), ICONST(3), IREG(4), SCONST(5)); -return (opcode_t *)cur_opcode + 6;} +return (opcode_t *)cur_opcode + 6; +} opcode_t * Parrot_replace_s_s_i_ic_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_replace(interp, SREG(2), IREG(3), ICONST(4), SCONST(5)); -return (opcode_t *)cur_opcode + 6;} +return (opcode_t *)cur_opcode + 6; +} opcode_t * Parrot_replace_s_sc_i_ic_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_replace(interp, SCONST(2), IREG(3), ICONST(4), SCONST(5)); -return (opcode_t *)cur_opcode + 6;} +return (opcode_t *)cur_opcode + 6; +} opcode_t * Parrot_replace_s_s_ic_ic_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_replace(interp, SREG(2), ICONST(3), ICONST(4), SCONST(5)); -return (opcode_t *)cur_opcode + 6;} +return (opcode_t *)cur_opcode + 6; +} opcode_t * Parrot_replace_s_sc_ic_ic_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_replace(interp, SCONST(2), ICONST(3), ICONST(4), SCONST(5)); -return (opcode_t *)cur_opcode + 6;} +return (opcode_t *)cur_opcode + 6; +} opcode_t * Parrot_index_i_s_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = (SREG(2) && SREG(3)) ? STRING_index(interp, SREG(2), SREG(3), 0) : -1; -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_index_i_sc_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = (SCONST(2) && SREG(3)) ? STRING_index(interp, SCONST(2), SREG(3), 0) : -1; -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_index_i_s_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = (SREG(2) && SCONST(3)) ? STRING_index(interp, SREG(2), SCONST(3), 0) : -1; -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_index_i_sc_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = (SCONST(2) && SCONST(3)) ? STRING_index(interp, SCONST(2), SCONST(3), 0) : -1; -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_index_i_s_s_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = (SREG(2) && SREG(3)) ? STRING_index(interp, SREG(2), SREG(3), IREG(4)) : -1; -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_index_i_sc_s_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = (SCONST(2) && SREG(3)) ? STRING_index(interp, SCONST(2), SREG(3), IREG(4)) : -1; -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_index_i_s_sc_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = (SREG(2) && SCONST(3)) ? STRING_index(interp, SREG(2), SCONST(3), IREG(4)) : -1; -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_index_i_sc_sc_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = (SCONST(2) && SCONST(3)) ? STRING_index(interp, SCONST(2), SCONST(3), IREG(4)) : -1; -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_index_i_s_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = (SREG(2) && SREG(3)) ? STRING_index(interp, SREG(2), SREG(3), ICONST(4)) : -1; -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_index_i_sc_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = (SCONST(2) && SREG(3)) ? STRING_index(interp, SCONST(2), SREG(3), ICONST(4)) : -1; -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_index_i_s_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = (SREG(2) && SCONST(3)) ? STRING_index(interp, SREG(2), SCONST(3), ICONST(4)) : -1; -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_index_i_sc_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = (SCONST(2) && SCONST(3)) ? STRING_index(interp, SCONST(2), SCONST(3), ICONST(4)) : -1; -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_sprintf_s_s_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1)=Parrot_psprintf(interp, SREG(2), PREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_sprintf_s_sc_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1)=Parrot_psprintf(interp, SCONST(2), PREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_sprintf_p_p_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -22723,28 +23521,33 @@ Parrot_sprintf_p_p_p(opcode_t *cur_opcode, PARROT_INTERP) { VTABLE_set_string_native(interp, PREG(1), Parrot_psprintf(interp, VTABLE_get_string(interp, PREG(2)), PREG(3))); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_new_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_new_noinit(interp, 0); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_new_s_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_new_noinit(interp, IREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_new_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_new_noinit(interp, ICONST(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_stringinfo_i_s_i(opcode_t *cur_opcode, PARROT_INTERP) { @@ -22780,7 +23583,8 @@ Parrot_stringinfo_i_s_i(opcode_t *cur_opcode, PARROT_INTERP) { } } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_stringinfo_i_sc_i(opcode_t *cur_opcode, PARROT_INTERP) { @@ -22816,7 +23620,8 @@ Parrot_stringinfo_i_sc_i(opcode_t *cur_opcode, PARROT_INTERP) { } } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_stringinfo_i_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -22852,7 +23657,8 @@ Parrot_stringinfo_i_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { } } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_stringinfo_i_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -22888,119 +23694,136 @@ Parrot_stringinfo_i_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) { } } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_upcase_s_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_upcase(interp, SREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_upcase_s_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_upcase(interp, SCONST(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_downcase_s_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_downcase(interp, SREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_downcase_s_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_downcase(interp, SCONST(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_titlecase_s_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_titlecase(interp, SREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_titlecase_s_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_titlecase(interp, SCONST(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_join_s_s_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_join(interp, SREG(2), PREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_join_s_sc_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_join(interp, SCONST(2), PREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_split_p_s_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = Parrot_str_split(interp, SREG(2), SREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_split_p_sc_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = Parrot_str_split(interp, SCONST(2), SREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_split_p_s_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = Parrot_str_split(interp, SREG(2), SCONST(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_split_p_sc_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = Parrot_str_split(interp, SCONST(2), SCONST(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_encoding_i_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = Parrot_encoding_number_of_str(interp, SREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_encoding_i_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = Parrot_encoding_number_of_str(interp, SCONST(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_encodingname_s_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_encoding_name(interp, IREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_encodingname_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_encoding_name(interp, ICONST(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_find_encoding_i_s(opcode_t *cur_opcode, PARROT_INTERP) { @@ -23013,7 +23836,8 @@ Parrot_find_encoding_i_s(opcode_t *cur_opcode, PARROT_INTERP) { } IREG(1) = n; -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_find_encoding_i_sc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -23026,336 +23850,384 @@ Parrot_find_encoding_i_sc(opcode_t *cur_opcode, PARROT_INTERP) { } IREG(1) = n; -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_trans_encoding_s_s_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_change_encoding(interp, SREG(2), IREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_trans_encoding_s_sc_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_change_encoding(interp, SCONST(2), IREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_trans_encoding_s_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_change_encoding(interp, SREG(2), ICONST(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_trans_encoding_s_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_change_encoding(interp, SCONST(2), ICONST(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_is_cclass_i_i_s_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = Parrot_str_is_cclass(interp, IREG(2), SREG(3), IREG(4)); -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_is_cclass_i_ic_s_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = Parrot_str_is_cclass(interp, ICONST(2), SREG(3), IREG(4)); -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_is_cclass_i_i_sc_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = Parrot_str_is_cclass(interp, IREG(2), SCONST(3), IREG(4)); -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_is_cclass_i_ic_sc_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = Parrot_str_is_cclass(interp, ICONST(2), SCONST(3), IREG(4)); -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_is_cclass_i_i_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = Parrot_str_is_cclass(interp, IREG(2), SREG(3), ICONST(4)); -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_is_cclass_i_ic_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = Parrot_str_is_cclass(interp, ICONST(2), SREG(3), ICONST(4)); -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_is_cclass_i_i_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = Parrot_str_is_cclass(interp, IREG(2), SCONST(3), ICONST(4)); -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_is_cclass_i_ic_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = Parrot_str_is_cclass(interp, ICONST(2), SCONST(3), ICONST(4)); -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_find_cclass_i_i_s_i_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = Parrot_str_find_cclass(interp, IREG(2), SREG(3), IREG(4), IREG(5)); -return (opcode_t *)cur_opcode + 6;} +return (opcode_t *)cur_opcode + 6; +} opcode_t * Parrot_find_cclass_i_ic_s_i_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = Parrot_str_find_cclass(interp, ICONST(2), SREG(3), IREG(4), IREG(5)); -return (opcode_t *)cur_opcode + 6;} +return (opcode_t *)cur_opcode + 6; +} opcode_t * Parrot_find_cclass_i_i_sc_i_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = Parrot_str_find_cclass(interp, IREG(2), SCONST(3), IREG(4), IREG(5)); -return (opcode_t *)cur_opcode + 6;} +return (opcode_t *)cur_opcode + 6; +} opcode_t * Parrot_find_cclass_i_ic_sc_i_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = Parrot_str_find_cclass(interp, ICONST(2), SCONST(3), IREG(4), IREG(5)); -return (opcode_t *)cur_opcode + 6;} +return (opcode_t *)cur_opcode + 6; +} opcode_t * Parrot_find_cclass_i_i_s_ic_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = Parrot_str_find_cclass(interp, IREG(2), SREG(3), ICONST(4), IREG(5)); -return (opcode_t *)cur_opcode + 6;} +return (opcode_t *)cur_opcode + 6; +} opcode_t * Parrot_find_cclass_i_ic_s_ic_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = Parrot_str_find_cclass(interp, ICONST(2), SREG(3), ICONST(4), IREG(5)); -return (opcode_t *)cur_opcode + 6;} +return (opcode_t *)cur_opcode + 6; +} opcode_t * Parrot_find_cclass_i_i_sc_ic_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = Parrot_str_find_cclass(interp, IREG(2), SCONST(3), ICONST(4), IREG(5)); -return (opcode_t *)cur_opcode + 6;} +return (opcode_t *)cur_opcode + 6; +} opcode_t * Parrot_find_cclass_i_ic_sc_ic_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = Parrot_str_find_cclass(interp, ICONST(2), SCONST(3), ICONST(4), IREG(5)); -return (opcode_t *)cur_opcode + 6;} +return (opcode_t *)cur_opcode + 6; +} opcode_t * Parrot_find_cclass_i_i_s_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = Parrot_str_find_cclass(interp, IREG(2), SREG(3), IREG(4), ICONST(5)); -return (opcode_t *)cur_opcode + 6;} +return (opcode_t *)cur_opcode + 6; +} opcode_t * Parrot_find_cclass_i_ic_s_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = Parrot_str_find_cclass(interp, ICONST(2), SREG(3), IREG(4), ICONST(5)); -return (opcode_t *)cur_opcode + 6;} +return (opcode_t *)cur_opcode + 6; +} opcode_t * Parrot_find_cclass_i_i_sc_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = Parrot_str_find_cclass(interp, IREG(2), SCONST(3), IREG(4), ICONST(5)); -return (opcode_t *)cur_opcode + 6;} +return (opcode_t *)cur_opcode + 6; +} opcode_t * Parrot_find_cclass_i_ic_sc_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = Parrot_str_find_cclass(interp, ICONST(2), SCONST(3), IREG(4), ICONST(5)); -return (opcode_t *)cur_opcode + 6;} +return (opcode_t *)cur_opcode + 6; +} opcode_t * Parrot_find_cclass_i_i_s_ic_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = Parrot_str_find_cclass(interp, IREG(2), SREG(3), ICONST(4), ICONST(5)); -return (opcode_t *)cur_opcode + 6;} +return (opcode_t *)cur_opcode + 6; +} opcode_t * Parrot_find_cclass_i_ic_s_ic_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = Parrot_str_find_cclass(interp, ICONST(2), SREG(3), ICONST(4), ICONST(5)); -return (opcode_t *)cur_opcode + 6;} +return (opcode_t *)cur_opcode + 6; +} opcode_t * Parrot_find_cclass_i_i_sc_ic_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = Parrot_str_find_cclass(interp, IREG(2), SCONST(3), ICONST(4), ICONST(5)); -return (opcode_t *)cur_opcode + 6;} +return (opcode_t *)cur_opcode + 6; +} opcode_t * Parrot_find_cclass_i_ic_sc_ic_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = Parrot_str_find_cclass(interp, ICONST(2), SCONST(3), ICONST(4), ICONST(5)); -return (opcode_t *)cur_opcode + 6;} +return (opcode_t *)cur_opcode + 6; +} opcode_t * Parrot_find_not_cclass_i_i_s_i_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = Parrot_str_find_not_cclass(interp, IREG(2), SREG(3), IREG(4), IREG(5)); -return (opcode_t *)cur_opcode + 6;} +return (opcode_t *)cur_opcode + 6; +} opcode_t * Parrot_find_not_cclass_i_ic_s_i_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = Parrot_str_find_not_cclass(interp, ICONST(2), SREG(3), IREG(4), IREG(5)); -return (opcode_t *)cur_opcode + 6;} +return (opcode_t *)cur_opcode + 6; +} opcode_t * Parrot_find_not_cclass_i_i_sc_i_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = Parrot_str_find_not_cclass(interp, IREG(2), SCONST(3), IREG(4), IREG(5)); -return (opcode_t *)cur_opcode + 6;} +return (opcode_t *)cur_opcode + 6; +} opcode_t * Parrot_find_not_cclass_i_ic_sc_i_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = Parrot_str_find_not_cclass(interp, ICONST(2), SCONST(3), IREG(4), IREG(5)); -return (opcode_t *)cur_opcode + 6;} +return (opcode_t *)cur_opcode + 6; +} opcode_t * Parrot_find_not_cclass_i_i_s_ic_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = Parrot_str_find_not_cclass(interp, IREG(2), SREG(3), ICONST(4), IREG(5)); -return (opcode_t *)cur_opcode + 6;} +return (opcode_t *)cur_opcode + 6; +} opcode_t * Parrot_find_not_cclass_i_ic_s_ic_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = Parrot_str_find_not_cclass(interp, ICONST(2), SREG(3), ICONST(4), IREG(5)); -return (opcode_t *)cur_opcode + 6;} +return (opcode_t *)cur_opcode + 6; +} opcode_t * Parrot_find_not_cclass_i_i_sc_ic_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = Parrot_str_find_not_cclass(interp, IREG(2), SCONST(3), ICONST(4), IREG(5)); -return (opcode_t *)cur_opcode + 6;} +return (opcode_t *)cur_opcode + 6; +} opcode_t * Parrot_find_not_cclass_i_ic_sc_ic_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = Parrot_str_find_not_cclass(interp, ICONST(2), SCONST(3), ICONST(4), IREG(5)); -return (opcode_t *)cur_opcode + 6;} +return (opcode_t *)cur_opcode + 6; +} opcode_t * Parrot_find_not_cclass_i_i_s_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = Parrot_str_find_not_cclass(interp, IREG(2), SREG(3), IREG(4), ICONST(5)); -return (opcode_t *)cur_opcode + 6;} +return (opcode_t *)cur_opcode + 6; +} opcode_t * Parrot_find_not_cclass_i_ic_s_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = Parrot_str_find_not_cclass(interp, ICONST(2), SREG(3), IREG(4), ICONST(5)); -return (opcode_t *)cur_opcode + 6;} +return (opcode_t *)cur_opcode + 6; +} opcode_t * Parrot_find_not_cclass_i_i_sc_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = Parrot_str_find_not_cclass(interp, IREG(2), SCONST(3), IREG(4), ICONST(5)); -return (opcode_t *)cur_opcode + 6;} +return (opcode_t *)cur_opcode + 6; +} opcode_t * Parrot_find_not_cclass_i_ic_sc_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = Parrot_str_find_not_cclass(interp, ICONST(2), SCONST(3), IREG(4), ICONST(5)); -return (opcode_t *)cur_opcode + 6;} +return (opcode_t *)cur_opcode + 6; +} opcode_t * Parrot_find_not_cclass_i_i_s_ic_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = Parrot_str_find_not_cclass(interp, IREG(2), SREG(3), ICONST(4), ICONST(5)); -return (opcode_t *)cur_opcode + 6;} +return (opcode_t *)cur_opcode + 6; +} opcode_t * Parrot_find_not_cclass_i_ic_s_ic_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = Parrot_str_find_not_cclass(interp, ICONST(2), SREG(3), ICONST(4), ICONST(5)); -return (opcode_t *)cur_opcode + 6;} +return (opcode_t *)cur_opcode + 6; +} opcode_t * Parrot_find_not_cclass_i_i_sc_ic_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = Parrot_str_find_not_cclass(interp, IREG(2), SCONST(3), ICONST(4), ICONST(5)); -return (opcode_t *)cur_opcode + 6;} +return (opcode_t *)cur_opcode + 6; +} opcode_t * Parrot_find_not_cclass_i_ic_sc_ic_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = Parrot_str_find_not_cclass(interp, ICONST(2), SCONST(3), ICONST(4), ICONST(5)); -return (opcode_t *)cur_opcode + 6;} +return (opcode_t *)cur_opcode + 6; +} opcode_t * Parrot_escape_s_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_escape(interp, SREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_compose_s_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_compose(interp, SREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_compose_s_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_compose(interp, SCONST(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_find_codepoint_i_s(opcode_t *cur_opcode, PARROT_INTERP) { @@ -23371,7 +24243,8 @@ Parrot_find_codepoint_i_s(opcode_t *cur_opcode, PARROT_INTERP) { EXCEPTION_LIBRARY_ERROR, "no ICU lib loaded");return (opcode_t *)dest; #endif -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_find_codepoint_i_sc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -23387,35 +24260,40 @@ Parrot_find_codepoint_i_sc(opcode_t *cur_opcode, PARROT_INTERP) { EXCEPTION_LIBRARY_ERROR, "no ICU lib loaded");return (opcode_t *)dest; #endif -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_spawnw_i_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = Parrot_Run_OS_Command(interp, SREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_spawnw_i_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = Parrot_Run_OS_Command(interp, SCONST(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_spawnw_i_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = Parrot_Run_OS_Command_Argv(interp, PREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_err_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = errno; -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_err_s(opcode_t *cur_opcode, PARROT_INTERP) { @@ -23423,8 +24301,10 @@ Parrot_err_s(opcode_t *cur_opcode, PARROT_INTERP) { const char * const tmp = strerror(errno); SREG(1) = Parrot_str_new_init(interp, tmp, strlen(tmp), Parrot_ascii_encoding_ptr, 0); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_err_s_i(opcode_t *cur_opcode, PARROT_INTERP) { @@ -23433,7 +24313,8 @@ Parrot_err_s_i(opcode_t *cur_opcode, PARROT_INTERP) { SREG(1) = Parrot_str_new_init(interp, tmp, strlen(tmp), Parrot_ascii_encoding_ptr, 0); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_err_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -23442,21 +24323,24 @@ Parrot_err_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { SREG(1) = Parrot_str_new_init(interp, tmp, strlen(tmp), Parrot_ascii_encoding_ptr, 0); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_time_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); IREG(1) = Parrot_intval_time(); -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_time_n(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); NREG(1) = Parrot_floatval_time(); -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_sleep_i(opcode_t *cur_opcode, PARROT_INTERP) { @@ -23520,7 +24404,8 @@ Parrot_store_lex_s_p(opcode_t *cur_opcode, PARROT_INTERP) { } VTABLE_set_pmc_keyed_str(interp, lex_pad, lex_name, PREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_store_lex_sc_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -23536,7 +24421,8 @@ Parrot_store_lex_sc_p(opcode_t *cur_opcode, PARROT_INTERP) { } VTABLE_set_pmc_keyed_str(interp, lex_pad, lex_name, PREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_store_dynamic_lex_s_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -23556,7 +24442,8 @@ Parrot_store_dynamic_lex_s_p(opcode_t *cur_opcode, PARROT_INTERP) { } VTABLE_set_pmc_keyed_str(interp, lex_pad, lex_name, PREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_store_dynamic_lex_sc_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -23576,7 +24463,8 @@ Parrot_store_dynamic_lex_sc_p(opcode_t *cur_opcode, PARROT_INTERP) { } VTABLE_set_pmc_keyed_str(interp, lex_pad, lex_name, PREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_find_lex_p_s(opcode_t *cur_opcode, PARROT_INTERP) { @@ -23591,7 +24479,8 @@ Parrot_find_lex_p_s(opcode_t *cur_opcode, PARROT_INTERP) { : VTABLE_get_pmc_keyed_str(interp, lex_pad, lex_name); PREG(1) = result; -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_find_lex_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -23606,7 +24495,8 @@ Parrot_find_lex_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { : VTABLE_get_pmc_keyed_str(interp, lex_pad, lex_name); PREG(1) = result; -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_find_dynamic_lex_p_s(opcode_t *cur_opcode, PARROT_INTERP) { @@ -23624,7 +24514,8 @@ Parrot_find_dynamic_lex_p_s(opcode_t *cur_opcode, PARROT_INTERP) { : VTABLE_get_pmc_keyed_str(interp, lex_pad, lex_name); PREG(1) = result; -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_find_dynamic_lex_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -23642,7 +24533,8 @@ Parrot_find_dynamic_lex_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { : VTABLE_get_pmc_keyed_str(interp, lex_pad, lex_name); PREG(1) = result; -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_find_caller_lex_p_s(opcode_t *cur_opcode, PARROT_INTERP) { @@ -23663,7 +24555,8 @@ Parrot_find_caller_lex_p_s(opcode_t *cur_opcode, PARROT_INTERP) { } PREG(1) = result; -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_find_caller_lex_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -23684,15 +24577,18 @@ Parrot_find_caller_lex_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { } PREG(1) = result; -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_get_namespace_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PMC * const cur_ns = Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp)); PREG(1) = cur_ns; + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_get_namespace_p_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -23702,7 +24598,8 @@ Parrot_get_namespace_p_p(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = PMC_IS_NULL(ns) ? PMCNULL : ns; -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_get_namespace_p_pc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -23712,15 +24609,18 @@ Parrot_get_namespace_p_pc(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = PMC_IS_NULL(ns) ? PMCNULL : ns; -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_get_hll_namespace_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PMC * const hll_ns = Parrot_hll_get_ctx_HLL_namespace(interp); PREG(1) = hll_ns; + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_get_hll_namespace_p_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -23733,7 +24633,8 @@ Parrot_get_hll_namespace_p_p(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = ns; } -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_get_hll_namespace_p_pc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -23746,15 +24647,18 @@ Parrot_get_hll_namespace_p_pc(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = ns; } -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_get_root_namespace_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PMC * const root_ns = interp->root_namespace; PREG(1) = root_ns; + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -return (opcode_t *)cur_opcode + 2;} +return (opcode_t *)cur_opcode + 2; +} opcode_t * Parrot_get_root_namespace_p_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -23767,7 +24671,8 @@ Parrot_get_root_namespace_p_p(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = ns; } -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_get_root_namespace_p_pc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -23780,7 +24685,8 @@ Parrot_get_root_namespace_p_pc(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = ns; } -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_get_global_p_s(opcode_t *cur_opcode, PARROT_INTERP) { @@ -23788,7 +24694,8 @@ Parrot_get_global_p_s(opcode_t *cur_opcode, PARROT_INTERP) { PMC * const cur_ns = Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp)); PREG(1) = Parrot_ns_find_global_from_op(interp, cur_ns, SREG(2), cur_opcode + 3); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_get_global_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -23796,7 +24703,8 @@ Parrot_get_global_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { PMC * const cur_ns = Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp)); PREG(1) = Parrot_ns_find_global_from_op(interp, cur_ns, SCONST(2), cur_opcode + 3); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_get_global_p_p_s(opcode_t *cur_opcode, PARROT_INTERP) { @@ -23813,7 +24721,8 @@ Parrot_get_global_p_p_s(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = Parrot_ns_find_global_from_op(interp, ns, SREG(3), cur_opcode + 4); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_get_global_p_pc_s(opcode_t *cur_opcode, PARROT_INTERP) { @@ -23830,7 +24739,8 @@ Parrot_get_global_p_pc_s(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = Parrot_ns_find_global_from_op(interp, ns, SREG(3), cur_opcode + 4); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_get_global_p_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -23847,7 +24757,8 @@ Parrot_get_global_p_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = Parrot_ns_find_global_from_op(interp, ns, SCONST(3), cur_opcode + 4); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_get_global_p_pc_sc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -23864,7 +24775,8 @@ Parrot_get_global_p_pc_sc(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = Parrot_ns_find_global_from_op(interp, ns, SCONST(3), cur_opcode + 4); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_get_hll_global_p_s(opcode_t *cur_opcode, PARROT_INTERP) { @@ -23872,7 +24784,8 @@ Parrot_get_hll_global_p_s(opcode_t *cur_opcode, PARROT_INTERP) { PMC * const hll_ns = Parrot_hll_get_ctx_HLL_namespace(interp); PREG(1) = Parrot_ns_find_global_from_op(interp, hll_ns, SREG(2), cur_opcode + 3); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_get_hll_global_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -23880,7 +24793,8 @@ Parrot_get_hll_global_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { PMC * const hll_ns = Parrot_hll_get_ctx_HLL_namespace(interp); PREG(1) = Parrot_ns_find_global_from_op(interp, hll_ns, SCONST(2), cur_opcode + 3); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_get_hll_global_p_p_s(opcode_t *cur_opcode, PARROT_INTERP) { @@ -23897,7 +24811,8 @@ Parrot_get_hll_global_p_p_s(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = Parrot_ns_find_global_from_op(interp, ns, SREG(3), cur_opcode + 4); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_get_hll_global_p_pc_s(opcode_t *cur_opcode, PARROT_INTERP) { @@ -23914,7 +24829,8 @@ Parrot_get_hll_global_p_pc_s(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = Parrot_ns_find_global_from_op(interp, ns, SREG(3), cur_opcode + 4); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_get_hll_global_p_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -23931,7 +24847,8 @@ Parrot_get_hll_global_p_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = Parrot_ns_find_global_from_op(interp, ns, SCONST(3), cur_opcode + 4); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_get_hll_global_p_pc_sc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -23948,7 +24865,8 @@ Parrot_get_hll_global_p_pc_sc(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = Parrot_ns_find_global_from_op(interp, ns, SCONST(3), cur_opcode + 4); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_get_root_global_p_s(opcode_t *cur_opcode, PARROT_INTERP) { @@ -23956,7 +24874,8 @@ Parrot_get_root_global_p_s(opcode_t *cur_opcode, PARROT_INTERP) { PMC * const root_ns = interp->root_namespace; PREG(1) = Parrot_ns_find_global_from_op(interp, root_ns, SREG(2), cur_opcode + 3); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_get_root_global_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -23964,7 +24883,8 @@ Parrot_get_root_global_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { PMC * const root_ns = interp->root_namespace; PREG(1) = Parrot_ns_find_global_from_op(interp, root_ns, SCONST(2), cur_opcode + 3); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_get_root_global_p_p_s(opcode_t *cur_opcode, PARROT_INTERP) { @@ -23980,7 +24900,8 @@ Parrot_get_root_global_p_p_s(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = Parrot_ns_find_global_from_op(interp, ns, SREG(3), cur_opcode + 4); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_get_root_global_p_pc_s(opcode_t *cur_opcode, PARROT_INTERP) { @@ -23996,7 +24917,8 @@ Parrot_get_root_global_p_pc_s(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = Parrot_ns_find_global_from_op(interp, ns, SREG(3), cur_opcode + 4); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_get_root_global_p_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24012,7 +24934,8 @@ Parrot_get_root_global_p_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = Parrot_ns_find_global_from_op(interp, ns, SCONST(3), cur_opcode + 4); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_get_root_global_p_pc_sc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24028,7 +24951,8 @@ Parrot_get_root_global_p_pc_sc(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = Parrot_ns_find_global_from_op(interp, ns, SCONST(3), cur_opcode + 4); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_set_global_s_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24036,7 +24960,8 @@ Parrot_set_global_s_p(opcode_t *cur_opcode, PARROT_INTERP) { PMC * const cur_ns = Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp)); Parrot_ns_set_global(interp, cur_ns, SREG(1), PREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_set_global_sc_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24044,7 +24969,8 @@ Parrot_set_global_sc_p(opcode_t *cur_opcode, PARROT_INTERP) { PMC * const cur_ns = Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp)); Parrot_ns_set_global(interp, cur_ns, SCONST(1), PREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_set_global_p_s_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24054,7 +24980,8 @@ Parrot_set_global_p_s_p(opcode_t *cur_opcode, PARROT_INTERP) { Parrot_ns_set_global(interp, ns, SREG(2), PREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_set_global_pc_s_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24064,7 +24991,8 @@ Parrot_set_global_pc_s_p(opcode_t *cur_opcode, PARROT_INTERP) { Parrot_ns_set_global(interp, ns, SREG(2), PREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_set_global_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24074,7 +25002,8 @@ Parrot_set_global_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP) { Parrot_ns_set_global(interp, ns, SCONST(2), PREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_set_global_pc_sc_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24084,7 +25013,8 @@ Parrot_set_global_pc_sc_p(opcode_t *cur_opcode, PARROT_INTERP) { Parrot_ns_set_global(interp, ns, SCONST(2), PREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_set_hll_global_s_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24092,7 +25022,8 @@ Parrot_set_hll_global_s_p(opcode_t *cur_opcode, PARROT_INTERP) { PMC * const hll_ns = Parrot_hll_get_ctx_HLL_namespace(interp); Parrot_ns_set_global(interp, hll_ns, SREG(1), PREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_set_hll_global_sc_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24100,7 +25031,8 @@ Parrot_set_hll_global_sc_p(opcode_t *cur_opcode, PARROT_INTERP) { PMC * const hll_ns = Parrot_hll_get_ctx_HLL_namespace(interp); Parrot_ns_set_global(interp, hll_ns, SCONST(1), PREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_set_hll_global_p_s_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24110,7 +25042,8 @@ Parrot_set_hll_global_p_s_p(opcode_t *cur_opcode, PARROT_INTERP) { Parrot_ns_set_global(interp, ns, SREG(2), PREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_set_hll_global_pc_s_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24120,7 +25053,8 @@ Parrot_set_hll_global_pc_s_p(opcode_t *cur_opcode, PARROT_INTERP) { Parrot_ns_set_global(interp, ns, SREG(2), PREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_set_hll_global_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24130,7 +25064,8 @@ Parrot_set_hll_global_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP) { Parrot_ns_set_global(interp, ns, SCONST(2), PREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_set_hll_global_pc_sc_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24140,7 +25075,8 @@ Parrot_set_hll_global_pc_sc_p(opcode_t *cur_opcode, PARROT_INTERP) { Parrot_ns_set_global(interp, ns, SCONST(2), PREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_set_root_global_s_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24148,7 +25084,8 @@ Parrot_set_root_global_s_p(opcode_t *cur_opcode, PARROT_INTERP) { PMC * const root_ns = interp->root_namespace; Parrot_ns_set_global(interp, root_ns, SREG(1), PREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_set_root_global_sc_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24156,7 +25093,8 @@ Parrot_set_root_global_sc_p(opcode_t *cur_opcode, PARROT_INTERP) { PMC * const root_ns = interp->root_namespace; Parrot_ns_set_global(interp, root_ns, SCONST(1), PREG(2)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_set_root_global_p_s_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24166,7 +25104,8 @@ Parrot_set_root_global_p_s_p(opcode_t *cur_opcode, PARROT_INTERP) { Parrot_ns_set_global(interp, ns, SREG(2), PREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_set_root_global_pc_s_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24176,7 +25115,8 @@ Parrot_set_root_global_pc_s_p(opcode_t *cur_opcode, PARROT_INTERP) { Parrot_ns_set_global(interp, ns, SREG(2), PREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_set_root_global_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24186,7 +25126,8 @@ Parrot_set_root_global_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP) { Parrot_ns_set_global(interp, ns, SCONST(2), PREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_set_root_global_pc_sc_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24196,7 +25137,8 @@ Parrot_set_root_global_pc_sc_p(opcode_t *cur_opcode, PARROT_INTERP) { Parrot_ns_set_global(interp, ns, SCONST(2), PREG(3)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_find_name_p_s(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24209,7 +25151,8 @@ Parrot_find_name_p_s(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = Parrot_ns_find_named_item(interp, SREG(2), cur_opcode + 3); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_find_name_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24222,7 +25165,8 @@ Parrot_find_name_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = Parrot_ns_find_named_item(interp, SCONST(2), cur_opcode + 3); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_find_sub_not_null_p_s(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24240,7 +25184,8 @@ Parrot_find_sub_not_null_p_s(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = sub; -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_find_sub_not_null_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24258,7 +25203,8 @@ Parrot_find_sub_not_null_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = sub; -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_trap(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24270,14 +25216,16 @@ Parrot_trap(opcode_t *cur_opcode, PARROT_INTERP) { __asm__("trap"); /* opcode tr 31, 0, 0 */ #endif -return (opcode_t *)cur_opcode + 1;} +return (opcode_t *)cur_opcode + 1; +} opcode_t * Parrot_set_label_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_set_pointer(interp, PREG(1), (CUR_OPCODE + ICONST(2))); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_get_label_i_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24285,7 +25233,8 @@ Parrot_get_label_i_p(opcode_t *cur_opcode, PARROT_INTERP) { void * const ptr = VTABLE_get_pointer(interp, PREG(2)); IREG(1) = PTR2INTVAL(ptr); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_fetch_p_p_p_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24307,7 +25256,8 @@ Parrot_fetch_p_p_p_p(opcode_t *cur_opcode, PARROT_INTERP) { } } -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_fetch_p_pc_p_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24329,7 +25279,8 @@ Parrot_fetch_p_pc_p_p(opcode_t *cur_opcode, PARROT_INTERP) { } } -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_fetch_p_p_pc_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24351,7 +25302,8 @@ Parrot_fetch_p_p_pc_p(opcode_t *cur_opcode, PARROT_INTERP) { } } -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_fetch_p_pc_pc_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24373,7 +25325,8 @@ Parrot_fetch_p_pc_pc_p(opcode_t *cur_opcode, PARROT_INTERP) { } } -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_fetch_p_p_p_pc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24395,7 +25348,8 @@ Parrot_fetch_p_p_p_pc(opcode_t *cur_opcode, PARROT_INTERP) { } } -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_fetch_p_pc_p_pc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24417,7 +25371,8 @@ Parrot_fetch_p_pc_p_pc(opcode_t *cur_opcode, PARROT_INTERP) { } } -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_fetch_p_p_pc_pc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24439,7 +25394,8 @@ Parrot_fetch_p_p_pc_pc(opcode_t *cur_opcode, PARROT_INTERP) { } } -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_fetch_p_pc_pc_pc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24461,7 +25417,8 @@ Parrot_fetch_p_pc_pc_pc(opcode_t *cur_opcode, PARROT_INTERP) { } } -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_fetch_p_p_i_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24483,7 +25440,8 @@ Parrot_fetch_p_p_i_p(opcode_t *cur_opcode, PARROT_INTERP) { } } -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_fetch_p_pc_i_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24505,7 +25463,8 @@ Parrot_fetch_p_pc_i_p(opcode_t *cur_opcode, PARROT_INTERP) { } } -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_fetch_p_p_ic_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24527,7 +25486,8 @@ Parrot_fetch_p_p_ic_p(opcode_t *cur_opcode, PARROT_INTERP) { } } -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_fetch_p_pc_ic_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24549,7 +25509,8 @@ Parrot_fetch_p_pc_ic_p(opcode_t *cur_opcode, PARROT_INTERP) { } } -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_fetch_p_p_i_pc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24571,7 +25532,8 @@ Parrot_fetch_p_p_i_pc(opcode_t *cur_opcode, PARROT_INTERP) { } } -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_fetch_p_pc_i_pc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24593,7 +25555,8 @@ Parrot_fetch_p_pc_i_pc(opcode_t *cur_opcode, PARROT_INTERP) { } } -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_fetch_p_p_ic_pc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24615,7 +25578,8 @@ Parrot_fetch_p_p_ic_pc(opcode_t *cur_opcode, PARROT_INTERP) { } } -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_fetch_p_pc_ic_pc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24637,7 +25601,8 @@ Parrot_fetch_p_pc_ic_pc(opcode_t *cur_opcode, PARROT_INTERP) { } } -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_fetch_p_p_s_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24659,7 +25624,8 @@ Parrot_fetch_p_p_s_p(opcode_t *cur_opcode, PARROT_INTERP) { } } -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_fetch_p_pc_s_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24681,7 +25647,8 @@ Parrot_fetch_p_pc_s_p(opcode_t *cur_opcode, PARROT_INTERP) { } } -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_fetch_p_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24703,7 +25670,8 @@ Parrot_fetch_p_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP) { } } -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_fetch_p_pc_sc_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24725,7 +25693,8 @@ Parrot_fetch_p_pc_sc_p(opcode_t *cur_opcode, PARROT_INTERP) { } } -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_fetch_p_p_s_pc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24747,7 +25716,8 @@ Parrot_fetch_p_p_s_pc(opcode_t *cur_opcode, PARROT_INTERP) { } } -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_fetch_p_pc_s_pc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24769,7 +25739,8 @@ Parrot_fetch_p_pc_s_pc(opcode_t *cur_opcode, PARROT_INTERP) { } } -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_fetch_p_p_sc_pc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24791,7 +25762,8 @@ Parrot_fetch_p_p_sc_pc(opcode_t *cur_opcode, PARROT_INTERP) { } } -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_fetch_p_pc_sc_pc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24813,7 +25785,8 @@ Parrot_fetch_p_pc_sc_pc(opcode_t *cur_opcode, PARROT_INTERP) { } } -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_vivify_p_p_p_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24838,7 +25811,8 @@ Parrot_vivify_p_p_p_p(opcode_t *cur_opcode, PARROT_INTERP) { VTABLE_set_pmc_keyed(interp, PREG(2), PREG(3), PREG(1)); } -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_vivify_p_pc_p_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24863,7 +25837,8 @@ Parrot_vivify_p_pc_p_p(opcode_t *cur_opcode, PARROT_INTERP) { VTABLE_set_pmc_keyed(interp, PCONST(2), PREG(3), PREG(1)); } -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_vivify_p_p_pc_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24888,7 +25863,8 @@ Parrot_vivify_p_p_pc_p(opcode_t *cur_opcode, PARROT_INTERP) { VTABLE_set_pmc_keyed(interp, PREG(2), PCONST(3), PREG(1)); } -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_vivify_p_pc_pc_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24913,7 +25889,8 @@ Parrot_vivify_p_pc_pc_p(opcode_t *cur_opcode, PARROT_INTERP) { VTABLE_set_pmc_keyed(interp, PCONST(2), PCONST(3), PREG(1)); } -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_vivify_p_p_p_pc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24938,7 +25915,8 @@ Parrot_vivify_p_p_p_pc(opcode_t *cur_opcode, PARROT_INTERP) { VTABLE_set_pmc_keyed(interp, PREG(2), PREG(3), PREG(1)); } -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_vivify_p_pc_p_pc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24963,7 +25941,8 @@ Parrot_vivify_p_pc_p_pc(opcode_t *cur_opcode, PARROT_INTERP) { VTABLE_set_pmc_keyed(interp, PCONST(2), PREG(3), PREG(1)); } -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_vivify_p_p_pc_pc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24988,7 +25967,8 @@ Parrot_vivify_p_p_pc_pc(opcode_t *cur_opcode, PARROT_INTERP) { VTABLE_set_pmc_keyed(interp, PREG(2), PCONST(3), PREG(1)); } -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_vivify_p_pc_pc_pc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -25013,7 +25993,8 @@ Parrot_vivify_p_pc_pc_pc(opcode_t *cur_opcode, PARROT_INTERP) { VTABLE_set_pmc_keyed(interp, PCONST(2), PCONST(3), PREG(1)); } -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_vivify_p_p_i_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -25038,7 +26019,8 @@ Parrot_vivify_p_p_i_p(opcode_t *cur_opcode, PARROT_INTERP) { VTABLE_set_pmc_keyed_int(interp, PREG(2), IREG(3), PREG(1)); } -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_vivify_p_pc_i_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -25063,7 +26045,8 @@ Parrot_vivify_p_pc_i_p(opcode_t *cur_opcode, PARROT_INTERP) { VTABLE_set_pmc_keyed_int(interp, PCONST(2), IREG(3), PREG(1)); } -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_vivify_p_p_ic_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -25088,7 +26071,8 @@ Parrot_vivify_p_p_ic_p(opcode_t *cur_opcode, PARROT_INTERP) { VTABLE_set_pmc_keyed_int(interp, PREG(2), ICONST(3), PREG(1)); } -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_vivify_p_pc_ic_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -25113,7 +26097,8 @@ Parrot_vivify_p_pc_ic_p(opcode_t *cur_opcode, PARROT_INTERP) { VTABLE_set_pmc_keyed_int(interp, PCONST(2), ICONST(3), PREG(1)); } -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_vivify_p_p_i_pc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -25138,7 +26123,8 @@ Parrot_vivify_p_p_i_pc(opcode_t *cur_opcode, PARROT_INTERP) { VTABLE_set_pmc_keyed_int(interp, PREG(2), IREG(3), PREG(1)); } -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_vivify_p_pc_i_pc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -25163,7 +26149,8 @@ Parrot_vivify_p_pc_i_pc(opcode_t *cur_opcode, PARROT_INTERP) { VTABLE_set_pmc_keyed_int(interp, PCONST(2), IREG(3), PREG(1)); } -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_vivify_p_p_ic_pc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -25188,7 +26175,8 @@ Parrot_vivify_p_p_ic_pc(opcode_t *cur_opcode, PARROT_INTERP) { VTABLE_set_pmc_keyed_int(interp, PREG(2), ICONST(3), PREG(1)); } -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_vivify_p_pc_ic_pc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -25213,7 +26201,8 @@ Parrot_vivify_p_pc_ic_pc(opcode_t *cur_opcode, PARROT_INTERP) { VTABLE_set_pmc_keyed_int(interp, PCONST(2), ICONST(3), PREG(1)); } -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_vivify_p_p_s_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -25238,7 +26227,8 @@ Parrot_vivify_p_p_s_p(opcode_t *cur_opcode, PARROT_INTERP) { VTABLE_set_pmc_keyed_str(interp, PREG(2), SREG(3), PREG(1)); } -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_vivify_p_pc_s_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -25263,7 +26253,8 @@ Parrot_vivify_p_pc_s_p(opcode_t *cur_opcode, PARROT_INTERP) { VTABLE_set_pmc_keyed_str(interp, PCONST(2), SREG(3), PREG(1)); } -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_vivify_p_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -25288,7 +26279,8 @@ Parrot_vivify_p_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP) { VTABLE_set_pmc_keyed_str(interp, PREG(2), SCONST(3), PREG(1)); } -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_vivify_p_pc_sc_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -25313,7 +26305,8 @@ Parrot_vivify_p_pc_sc_p(opcode_t *cur_opcode, PARROT_INTERP) { VTABLE_set_pmc_keyed_str(interp, PCONST(2), SCONST(3), PREG(1)); } -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_vivify_p_p_s_pc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -25338,7 +26331,8 @@ Parrot_vivify_p_p_s_pc(opcode_t *cur_opcode, PARROT_INTERP) { VTABLE_set_pmc_keyed_str(interp, PREG(2), SREG(3), PREG(1)); } -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_vivify_p_pc_s_pc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -25363,7 +26357,8 @@ Parrot_vivify_p_pc_s_pc(opcode_t *cur_opcode, PARROT_INTERP) { VTABLE_set_pmc_keyed_str(interp, PCONST(2), SREG(3), PREG(1)); } -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_vivify_p_p_sc_pc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -25388,7 +26383,8 @@ Parrot_vivify_p_p_sc_pc(opcode_t *cur_opcode, PARROT_INTERP) { VTABLE_set_pmc_keyed_str(interp, PREG(2), SCONST(3), PREG(1)); } -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_vivify_p_pc_sc_pc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -25413,7 +26409,8 @@ Parrot_vivify_p_pc_sc_pc(opcode_t *cur_opcode, PARROT_INTERP) { VTABLE_set_pmc_keyed_str(interp, PCONST(2), SCONST(3), PREG(1)); } -return (opcode_t *)cur_opcode + 5;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_new_p_s_i(opcode_t *cur_opcode, PARROT_INTERP) { @@ -25439,7 +26436,8 @@ Parrot_new_p_s_i(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = Parrot_pmc_new_init_int(interp, type, IREG(3)); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_new_p_sc_i(opcode_t *cur_opcode, PARROT_INTERP) { @@ -25465,7 +26463,8 @@ Parrot_new_p_sc_i(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = Parrot_pmc_new_init_int(interp, type, IREG(3)); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_new_p_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -25491,7 +26490,8 @@ Parrot_new_p_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = Parrot_pmc_new_init_int(interp, type, ICONST(3)); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_new_p_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -25517,7 +26517,8 @@ Parrot_new_p_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = Parrot_pmc_new_init_int(interp, type, ICONST(3)); } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_new_p_p_i(opcode_t *cur_opcode, PARROT_INTERP) { @@ -25549,7 +26550,8 @@ Parrot_new_p_p_i(opcode_t *cur_opcode, PARROT_INTERP) { "Class '%Ss' not found", VTABLE_get_repr(interp, name_key));return (opcode_t *)dest; } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_new_p_pc_i(opcode_t *cur_opcode, PARROT_INTERP) { @@ -25581,7 +26583,8 @@ Parrot_new_p_pc_i(opcode_t *cur_opcode, PARROT_INTERP) { "Class '%Ss' not found", VTABLE_get_repr(interp, name_key));return (opcode_t *)dest; } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_new_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -25613,7 +26616,8 @@ Parrot_new_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { "Class '%Ss' not found", VTABLE_get_repr(interp, name_key));return (opcode_t *)dest; } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_new_p_pc_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -25645,7 +26649,8 @@ Parrot_new_p_pc_ic(opcode_t *cur_opcode, PARROT_INTERP) { "Class '%Ss' not found", VTABLE_get_repr(interp, name_key));return (opcode_t *)dest; } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_root_new_p_p_i(opcode_t *cur_opcode, PARROT_INTERP) { @@ -25679,7 +26684,8 @@ Parrot_root_new_p_p_i(opcode_t *cur_opcode, PARROT_INTERP) { "Class '%Ss' not found", VTABLE_get_repr(interp, name_key));return (opcode_t *)dest; } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_root_new_p_pc_i(opcode_t *cur_opcode, PARROT_INTERP) { @@ -25713,7 +26719,8 @@ Parrot_root_new_p_pc_i(opcode_t *cur_opcode, PARROT_INTERP) { "Class '%Ss' not found", VTABLE_get_repr(interp, name_key));return (opcode_t *)dest; } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_root_new_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -25747,7 +26754,8 @@ Parrot_root_new_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { "Class '%Ss' not found", VTABLE_get_repr(interp, name_key));return (opcode_t *)dest; } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_root_new_p_pc_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -25781,7 +26789,8 @@ Parrot_root_new_p_pc_ic(opcode_t *cur_opcode, PARROT_INTERP) { "Class '%Ss' not found", VTABLE_get_repr(interp, name_key));return (opcode_t *)dest; } -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} /* From b760e3540c6d41111304ef9353b168cefdd2ad46 Mon Sep 17 00:00:00 2001 From: Vasily Chekalkin Date: Tue, 15 Feb 2011 17:13:20 +1100 Subject: [PATCH 07/17] Re-enable direct access to registers. We have write barriers inside ops now --- include/parrot/context.h | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/include/parrot/context.h b/include/parrot/context.h index b75fdbaa2f..ea1cbff0b8 100644 --- a/include/parrot/context.h +++ b/include/parrot/context.h @@ -32,25 +32,17 @@ typedef struct Parrot_CallContext_attributes Parrot_Context; * Macros to make accessing registers more convenient/readable. */ -/* Define these macros unconditionally for now until someone can rewrite them - * to use non-function access for NDEBUG builds for great speed; for now they - * need to use this approach to use PMC write barriers effectively */ - -#define CTX_REG_PMC(i, p, x) (*Parrot_pcc_get_PMC_reg((i), (p), (x))) -#define CTX_REG_STR(i, p, x) (*Parrot_pcc_get_STRING_reg((i), (p), (x))) - #ifndef NDEBUG - +# define CTX_REG_PMC(i, p, x) (*Parrot_pcc_get_PMC_reg((i), (p), (x))) +# define CTX_REG_STR(i, p, x) (*Parrot_pcc_get_STRING_reg((i), (p), (x))) # define CTX_REG_NUM(i, p, x) (*Parrot_pcc_get_FLOATVAL_reg((i), (p), (x))) # define CTX_REG_INT(i, p, x) (*Parrot_pcc_get_INTVAL_reg((i), (p), (x))) - #else /* NDEBUG */ - /* Manually inlined macros. Used in optimized builds */ - +# define CTX_REG_PMC(i, p, x) (CONTEXT_STRUCT(p)->bp_ps.regs_p[-1L - (x)]) +# define CTX_REG_STR(i, p, x) (CONTEXT_STRUCT(p)->bp_ps.regs_s[(x)]) # define CTX_REG_NUM(i, p, x) (CONTEXT_STRUCT(p)->bp.regs_n[-1L - (x)]) # define CTX_REG_INT(i, p, x) (CONTEXT_STRUCT(p)->bp.regs_i[(x)]) - #endif #define REG_NUM(interp, x) CTX_REG_NUM((interp), (interp)->ctx, (x)) From 9e325f800e7e9cb3093e02cf1a5efbe44b16005a Mon Sep 17 00:00:00 2001 From: Vasily Chekalkin Date: Tue, 15 Feb 2011 17:37:31 +1100 Subject: [PATCH 08/17] Remove Write Barrier from pcc_set_pc. We don't change anything GC related in it. --- src/call/context_accessors.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/call/context_accessors.c b/src/call/context_accessors.c index 916d604d07..2e8b47d48a 100644 --- a/src/call/context_accessors.c +++ b/src/call/context_accessors.c @@ -523,7 +523,6 @@ Parrot_pcc_set_pc_func(PARROT_INTERP, ARGIN(PMC *ctx), ARGIN_NULLOK(opcode_t *pc ASSERT_ARGS(Parrot_pcc_set_pc_func) Parrot_Context * const c = CONTEXT_STRUCT(ctx); PARROT_ASSERT(ctx->vtable->base_type == enum_class_CallContext); - PARROT_GC_WRITE_BARRIER(interp, ctx); c->current_pc = pc; } From 039db7d5ace0bd2b8dd9fb38c196b31b6522494d Mon Sep 17 00:00:00 2001 From: Vasily Chekalkin Date: Tue, 15 Feb 2011 17:49:50 +1100 Subject: [PATCH 09/17] Remove WB from set_constants. We are not marking them in CallContext.mark anyway. --- src/call/context_accessors.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/call/context_accessors.c b/src/call/context_accessors.c index 2e8b47d48a..a83c06ab51 100644 --- a/src/call/context_accessors.c +++ b/src/call/context_accessors.c @@ -103,7 +103,6 @@ Parrot_pcc_set_constants_func(PARROT_INTERP, ARGIN(PMC *ctx), ASSERT_ARGS(Parrot_pcc_set_constants_func) Parrot_Context * const c = CONTEXT_STRUCT(ctx); PARROT_ASSERT(ctx->vtable->base_type == enum_class_CallContext); - PARROT_GC_WRITE_BARRIER(interp, ctx); c->num_constants = ct->num.constants; c->str_constants = ct->str.constants; c->pmc_constants = ct->pmc.constants; From a861ec0e1ac90903ea549fbb5c6bb8f54966e3a9 Mon Sep 17 00:00:00 2001 From: Vasily Chekalkin Date: Tue, 15 Feb 2011 17:54:12 +1100 Subject: [PATCH 10/17] Reenable direct access to CallContext to get stuff out in optimized builds. Didn't test debug build and it can be broken --- include/parrot/context.h | 44 +++++++++++++++------------------------- 1 file changed, 16 insertions(+), 28 deletions(-) diff --git a/include/parrot/context.h b/include/parrot/context.h index ea1cbff0b8..16bac7e843 100644 --- a/include/parrot/context.h +++ b/include/parrot/context.h @@ -434,7 +434,7 @@ UINTVAL Parrot_pcc_warnings_test_func(SHIM_INTERP, /* HEADERIZER END: src/call/context_accessors.c */ /* Map Context manipulating functions to functions or macros */ -#if 0 +#ifdef NDEBUG # define Parrot_pcc_get_context_struct(i, c) CONTEXT_STRUCT(c) # define Parrot_pcc_get_num_constants(i, c) (CONTEXT_STRUCT(c)->num_constants) @@ -447,13 +447,11 @@ UINTVAL Parrot_pcc_warnings_test_func(SHIM_INTERP, } while (0) # define Parrot_pcc_get_continuation(i, c) (CONTEXT_STRUCT(c)->current_cont) -# define Parrot_pcc_set_continuation(i, c, value) (CONTEXT_STRUCT(c)->current_cont = (value)) - # define Parrot_pcc_get_caller_ctx(i, c) (CONTEXT_STRUCT(c)->caller_ctx) -# define Parrot_pcc_set_caller_ctx(i, c, value) (CONTEXT_STRUCT(c)->caller_ctx = (value)) - # define Parrot_pcc_get_namespace(i, c) (CONTEXT_STRUCT(c)->current_namespace) -# define Parrot_pcc_set_namespace(i, c, value) (CONTEXT_STRUCT(c)->current_namespace = (value)) +# define Parrot_pcc_get_object(i, c) (CONTEXT_STRUCT(c)->current_object) +# define Parrot_pcc_get_lex_pad(i, c) (CONTEXT_STRUCT(c)->lex_pad) +# define Parrot_pcc_get_handlers(i, c) (CONTEXT_STRUCT(c)->handlers) # define Parrot_pcc_get_pc(i, c) (CONTEXT_STRUCT(c)->current_pc) # define Parrot_pcc_set_pc(i, c, value) (CONTEXT_STRUCT(c)->current_pc = (value)) @@ -461,20 +459,9 @@ UINTVAL Parrot_pcc_warnings_test_func(SHIM_INTERP, # define Parrot_pcc_get_HLL(i, c) (CONTEXT_STRUCT(c)->current_HLL) # define Parrot_pcc_set_HLL(i, c, value) (CONTEXT_STRUCT(c)->current_HLL = (value)) -# define Parrot_pcc_get_object(i, c) (CONTEXT_STRUCT(c)->current_object) -# define Parrot_pcc_set_object(i, c, value) (CONTEXT_STRUCT(c)->current_object = (value)) - -# define Parrot_pcc_get_lex_pad(i, c) (CONTEXT_STRUCT(c)->lex_pad) -# define Parrot_pcc_set_lex_pad(i, c, value) (CONTEXT_STRUCT(c)->lex_pad = (value)) - -# define Parrot_pcc_get_handlers(i, c) (CONTEXT_STRUCT(c)->handlers) -# define Parrot_pcc_set_handlers(i, c, value) (CONTEXT_STRUCT(c)->handlers = (value)) - # define Parrot_pcc_get_outer_ctx(i, c) (CONTEXT_STRUCT(c)->outer_ctx) -# define Parrot_pcc_set_outer_ctx(i, c, value) (CONTEXT_STRUCT(c)->outer_ctx = (value)) # define Parrot_pcc_get_signature(i, c) (CONTEXT_STRUCT(c)->current_sig) -# define Parrot_pcc_set_signature(i, c, value) (CONTEXT_STRUCT(c)->current_sig = (value)) # define Parrot_pcc_get_num_constant(i, c, idx) (CONTEXT_STRUCT(c)->num_constants[(idx)]) # define Parrot_pcc_get_string_constant(i, c, idx) (CONTEXT_STRUCT(c)->str_constants[(idx)]) @@ -496,8 +483,6 @@ UINTVAL Parrot_pcc_warnings_test_func(SHIM_INTERP, # define Parrot_pcc_trace_flags_off(i, c, flags) (CONTEXT_STRUCT(c)->trace_flags &= ~(flags)) # define Parrot_pcc_trace_flags_test(i, c, flags) (CONTEXT_STRUCT(c)->trace_flags & (flags)) -# define Parrot_pcc_set_context(i, c) (CURRENT_CONTEXT(i) = (c)) - #else # define Parrot_pcc_get_context_struct(i, c) Parrot_pcc_get_context_struct_func((i), (c)) @@ -508,13 +493,10 @@ UINTVAL Parrot_pcc_warnings_test_func(SHIM_INTERP, # define Parrot_pcc_set_constants(i, c, value) Parrot_pcc_set_constants_func((i), (c), (value)) # define Parrot_pcc_get_continuation(i, c) Parrot_pcc_get_continuation_func((i), (c)) -# define Parrot_pcc_set_continuation(i, c, value) Parrot_pcc_set_continuation_func((i), (c), (value)) # define Parrot_pcc_get_caller_ctx(i, c) Parrot_pcc_get_caller_ctx_func((i), (c)) -# define Parrot_pcc_set_caller_ctx(i, c, value) Parrot_pcc_set_caller_ctx_func((i), (c), (value)) # define Parrot_pcc_get_namespace(i, c) Parrot_pcc_get_namespace_func((i), (c)) -# define Parrot_pcc_set_namespace(i, c, value) Parrot_pcc_set_namespace_func((i), (c), (value)) # define Parrot_pcc_get_pc(i, c) Parrot_pcc_get_pc_func((i), (c)) # define Parrot_pcc_set_pc(i, c, value) Parrot_pcc_set_pc_func((i), (c), (value)) @@ -523,19 +505,14 @@ UINTVAL Parrot_pcc_warnings_test_func(SHIM_INTERP, # define Parrot_pcc_set_HLL(i, c, value) Parrot_pcc_set_HLL_func((i), (c), (value)) # define Parrot_pcc_get_object(i, c) Parrot_pcc_get_object_func((i), (c)) -# define Parrot_pcc_set_object(i, c, value) Parrot_pcc_set_object_func((i), (c), (value)) # define Parrot_pcc_get_lex_pad(i, c) Parrot_pcc_get_lex_pad_func((i), (c)) -# define Parrot_pcc_set_lex_pad(i, c, value) Parrot_pcc_set_lex_pad_func((i), (c), (value)) # define Parrot_pcc_get_handlers(i, c) Parrot_pcc_get_handlers_func((i), (c)) -# define Parrot_pcc_set_handlers(i, c, value) Parrot_pcc_set_handlers_func((i), (c), (value)) # define Parrot_pcc_get_outer_ctx(i, c) Parrot_pcc_get_outer_ctx_func((i), (c)) -# define Parrot_pcc_set_outer_ctx(i, c, value) Parrot_pcc_set_outer_ctx_func((i), (c), (value)) # define Parrot_pcc_get_signature(i, c) Parrot_pcc_get_signature_func((i), (c)) -# define Parrot_pcc_set_signature(i, c, value) Parrot_pcc_set_signature_func((i), (c), (value)) # define Parrot_pcc_get_num_constant(i, c, idx) Parrot_pcc_get_num_constant_func((i), (c), (idx)) # define Parrot_pcc_get_string_constant(i, c, idx) Parrot_pcc_get_string_constant_func((i), (c), (idx)) @@ -557,9 +534,20 @@ UINTVAL Parrot_pcc_warnings_test_func(SHIM_INTERP, # define Parrot_pcc_trace_flags_off(i, c, flags) Parrot_pcc_trace_flags_off_func((i), (c), (flags)) # define Parrot_pcc_trace_flags_test(i, c, flags) Parrot_pcc_trace_flags_test_func((i), (c), (flags)) +#endif /* ifndef NDEBUG */ + + +/* TODO Drop defines if set_foo_func in favour set_foo functions */ +# define Parrot_pcc_set_continuation(i, c, value) Parrot_pcc_set_continuation_func((i), (c), (value)) +# define Parrot_pcc_set_caller_ctx(i, c, value) Parrot_pcc_set_caller_ctx_func((i), (c), (value)) +# define Parrot_pcc_set_namespace(i, c, value) Parrot_pcc_set_namespace_func((i), (c), (value)) +# define Parrot_pcc_set_object(i, c, value) Parrot_pcc_set_object_func((i), (c), (value)) +# define Parrot_pcc_set_lex_pad(i, c, value) Parrot_pcc_set_lex_pad_func((i), (c), (value)) +# define Parrot_pcc_set_handlers(i, c, value) Parrot_pcc_set_handlers_func((i), (c), (value)) +# define Parrot_pcc_set_outer_ctx(i, c, value) Parrot_pcc_set_outer_ctx_func((i), (c), (value)) +# define Parrot_pcc_set_signature(i, c, value) Parrot_pcc_set_signature_func((i), (c), (value)) # define Parrot_pcc_set_context(i, c) Parrot_pcc_set_context_func((i), (c)) -#endif /* ifndef NDEBUG */ #endif /* PARROT_CONTEXT_H_GUARD */ From 4148c46810cbe96b523b78a437037a5d49d8fcf6 Mon Sep 17 00:00:00 2001 From: Vasily Chekalkin Date: Tue, 15 Feb 2011 18:20:22 +1100 Subject: [PATCH 11/17] Fix calculating write barriers for ops. plobsing++ --- compilers/opsc/src/Ops/Op.pm | 1 + t/compilers/opsc/03-past.t | 6 ++++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/compilers/opsc/src/Ops/Op.pm b/compilers/opsc/src/Ops/Op.pm index c462925097..fd5472280b 100644 --- a/compilers/opsc/src/Ops/Op.pm +++ b/compilers/opsc/src/Ops/Op.pm @@ -132,6 +132,7 @@ method need_write_barrier() { for self.args -> $a { $need := ($a eq 'STR' || $a eq 'PMC') && ($a eq 'out' || $a eq 'inout'); + return $need if $need; } $need; } diff --git a/t/compilers/opsc/03-past.t b/t/compilers/opsc/03-past.t index cb46f08a18..80a635bc75 100644 --- a/t/compilers/opsc/03-past.t +++ b/t/compilers/opsc/03-past.t @@ -29,7 +29,7 @@ inline op bar(out PMC) { foo # We don't handle anything in C during parse/past. } -inline op bar(inout STR) { +inline op bar(out PMC, in INT) { foo # We don't handle anything in C during parse/past. } @@ -47,7 +47,7 @@ ok(~$preambles[0] ~~ /HEADER/, 'Header parsed'); my @ops := @($past); # One "bar" and two "foo" -is(+@ops, 5, 'We have 5 ops'); +is(+@ops, 6, 'We have 6 ops'); my $op := @ops[1]; ok($op.name == 'foo', "Name parsed"); @@ -114,6 +114,8 @@ $op := @ops[3]; ok( $op.need_write_barrier, "'out PMC' Write Barrier"); $op := @ops[4]; ok( $op.need_write_barrier, "'inout STR' Write Barrier"); +$op := @ops[5]; +ok( $op.need_write_barrier, "Write Barrier calculated properly"); ok( $op.body ~~ /PARROT_GC_WRITE_BARRIER/, "We have Write Barrier inserted into op"); From 77b7aba907f08bde983349742adc028118cdd2ed Mon Sep 17 00:00:00 2001 From: Vasily Chekalkin Date: Tue, 15 Feb 2011 18:22:06 +1100 Subject: [PATCH 12/17] Rebootstrap ops --- src/ops/core_ops.c | 305 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 305 insertions(+) diff --git a/src/ops/core_ops.c b/src/ops/core_ops.c index 353f6b96e3..74ebd64200 100644 --- a/src/ops/core_ops.c +++ b/src/ops/core_ops.c @@ -15343,6 +15343,7 @@ opcode_t * Parrot_newclosure_p_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = Parrot_sub_new_closure(interp, PREG(2)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -15917,6 +15918,7 @@ opcode_t * Parrot_interpinfo_p_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = interpinfo_p(interp, IREG(2)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -15925,6 +15927,7 @@ opcode_t * Parrot_interpinfo_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = interpinfo_p(interp, ICONST(2)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -15934,6 +15937,7 @@ Parrot_interpinfo_s_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); STRING * const s = interpinfo_s(interp, IREG(2)); SREG(1) = s; + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -15943,6 +15947,7 @@ Parrot_interpinfo_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); STRING * const s = interpinfo_s(interp, ICONST(2)); SREG(1) = s; + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -16107,6 +16112,7 @@ opcode_t * Parrot_loadlib_p_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = Parrot_dyn_load_lib(interp, SREG(2), NULL); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -16115,6 +16121,7 @@ opcode_t * Parrot_loadlib_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = Parrot_dyn_load_lib(interp, SCONST(2), NULL); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -16123,6 +16130,7 @@ opcode_t * Parrot_loadlib_p_s_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = Parrot_dyn_load_lib(interp, SREG(2), PREG(3)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -16131,6 +16139,7 @@ opcode_t * Parrot_loadlib_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = Parrot_dyn_load_lib(interp, SCONST(2), PREG(3)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -16139,6 +16148,7 @@ opcode_t * Parrot_loadlib_p_s_pc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = Parrot_dyn_load_lib(interp, SREG(2), PCONST(3)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -16147,6 +16157,7 @@ opcode_t * Parrot_loadlib_p_sc_pc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = Parrot_dyn_load_lib(interp, SCONST(2), PCONST(3)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -16177,6 +16188,7 @@ Parrot_dlfunc_p_p_s_s(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = Parrot_pmc_new(interp, enum_class_NCI); VTABLE_set_pointer_keyed_str(interp, PREG(1), SREG(4), F2DPTR(p)); } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 5; } @@ -16207,6 +16219,7 @@ Parrot_dlfunc_p_p_sc_s(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = Parrot_pmc_new(interp, enum_class_NCI); VTABLE_set_pointer_keyed_str(interp, PREG(1), SREG(4), F2DPTR(p)); } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 5; } @@ -16237,6 +16250,7 @@ Parrot_dlfunc_p_p_s_sc(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = Parrot_pmc_new(interp, enum_class_NCI); VTABLE_set_pointer_keyed_str(interp, PREG(1), SCONST(4), F2DPTR(p)); } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 5; } @@ -16267,6 +16281,7 @@ Parrot_dlfunc_p_p_sc_sc(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = Parrot_pmc_new(interp, enum_class_NCI); VTABLE_set_pointer_keyed_str(interp, PREG(1), SCONST(4), F2DPTR(p)); } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 5; } @@ -16297,6 +16312,7 @@ Parrot_dlvar_p_p_s(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = Parrot_pmc_new(interp, enum_class_UnManagedStruct); VTABLE_set_pointer(interp, PREG(1), p); } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -16327,6 +16343,7 @@ Parrot_dlvar_p_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = Parrot_pmc_new(interp, enum_class_UnManagedStruct); VTABLE_set_pointer(interp, PREG(1), p); } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -16357,6 +16374,7 @@ Parrot_compreg_p_s(opcode_t *cur_opcode, PARROT_INTERP) { PMC * const compreg_hash = VTABLE_get_pmc_keyed_int(interp, interp->iglobals, IGLOBALS_COMPREG_HASH); PREG(1) = VTABLE_get_pmc_keyed_str(interp, compreg_hash, SREG(2)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -16367,6 +16385,7 @@ Parrot_compreg_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { PMC * const compreg_hash = VTABLE_get_pmc_keyed_int(interp, interp->iglobals, IGLOBALS_COMPREG_HASH); PREG(1) = VTABLE_get_pmc_keyed_str(interp, compreg_hash, SCONST(2)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -16375,6 +16394,7 @@ opcode_t * Parrot_new_callback_p_p_p_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = Parrot_make_cb(interp, PREG(2), PREG(3), SREG(4)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 5; } @@ -16383,6 +16403,7 @@ opcode_t * Parrot_new_callback_p_p_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = Parrot_make_cb(interp, PREG(2), PREG(3), SCONST(4)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 5; } @@ -16414,6 +16435,7 @@ Parrot_annotations_p_s(opcode_t *cur_opcode, PARROT_INTERP) { else { PREG(1) = PMCNULL; } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -16429,6 +16451,7 @@ Parrot_annotations_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { else { PREG(1) = PMCNULL; } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -17876,6 +17899,7 @@ opcode_t * Parrot_cmp_pmc_p_p_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_cmp_pmc(interp, PREG(2), PREG(3)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -18419,6 +18443,7 @@ Parrot_not_p_p(opcode_t *cur_opcode, PARROT_INTERP) { if (PMC_IS_NULL(PREG(1))) PREG(1) = Parrot_pmc_new(interp, Parrot_hll_get_ctx_HLL_type(interp, enum_class_Boolean)); VTABLE_set_bool(interp, PREG(1), a); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -18820,6 +18845,7 @@ opcode_t * Parrot_abs_p_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_absolute(interp, PREG(2), PREG(1)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -19934,6 +19960,7 @@ opcode_t * Parrot_neg_p_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_neg(interp, PREG(2), PREG(1)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -20442,6 +20469,7 @@ Parrot_newclass_p_s(opcode_t *cur_opcode, PARROT_INTERP) { PMC * const name = Parrot_pmc_new(interp, enum_class_String); VTABLE_set_string_native(interp, name, SREG(2)); PREG(1) = Parrot_pmc_new_init(interp, enum_class_Class, name); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -20452,6 +20480,7 @@ Parrot_newclass_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { PMC * const name = Parrot_pmc_new(interp, enum_class_String); VTABLE_set_string_native(interp, name, SCONST(2)); PREG(1) = Parrot_pmc_new_init(interp, enum_class_Class, name); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -20460,6 +20489,7 @@ opcode_t * Parrot_newclass_p_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = Parrot_pmc_new_init(interp, enum_class_Class, PREG(2)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -20468,6 +20498,7 @@ opcode_t * Parrot_newclass_p_pc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = Parrot_pmc_new_init(interp, enum_class_Class, PCONST(2)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -20485,6 +20516,7 @@ Parrot_subclass_p_p(opcode_t *cur_opcode, PARROT_INTERP) { } PREG(1) = Parrot_pmc_new(interp, enum_class_Class); VTABLE_add_parent(interp, PREG(1), parent_class);return (opcode_t *)next; + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); } opcode_t * @@ -20500,6 +20532,7 @@ Parrot_subclass_p_pc(opcode_t *cur_opcode, PARROT_INTERP) { } PREG(1) = Parrot_pmc_new(interp, enum_class_Class); VTABLE_add_parent(interp, PREG(1), parent_class);return (opcode_t *)next; + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); } opcode_t * @@ -20515,6 +20548,7 @@ Parrot_subclass_p_p_s(opcode_t *cur_opcode, PARROT_INTERP) { } PREG(1) = Parrot_oo_newclass_from_str(interp, SREG(3)); VTABLE_add_parent(interp, PREG(1), parent_class);return (opcode_t *)next; + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); } opcode_t * @@ -20530,6 +20564,7 @@ Parrot_subclass_p_pc_s(opcode_t *cur_opcode, PARROT_INTERP) { } PREG(1) = Parrot_oo_newclass_from_str(interp, SREG(3)); VTABLE_add_parent(interp, PREG(1), parent_class);return (opcode_t *)next; + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); } opcode_t * @@ -20545,6 +20580,7 @@ Parrot_subclass_p_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { } PREG(1) = Parrot_oo_newclass_from_str(interp, SCONST(3)); VTABLE_add_parent(interp, PREG(1), parent_class);return (opcode_t *)next; + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); } opcode_t * @@ -20560,6 +20596,7 @@ Parrot_subclass_p_pc_sc(opcode_t *cur_opcode, PARROT_INTERP) { } PREG(1) = Parrot_oo_newclass_from_str(interp, SCONST(3)); VTABLE_add_parent(interp, PREG(1), parent_class);return (opcode_t *)next; + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); } opcode_t * @@ -20575,6 +20612,7 @@ Parrot_subclass_p_p_p(opcode_t *cur_opcode, PARROT_INTERP) { } PREG(1) = Parrot_pmc_new_init(interp, enum_class_Class, PREG(3)); VTABLE_add_parent(interp, PREG(1), parent_class);return (opcode_t *)next; + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); } opcode_t * @@ -20590,6 +20628,7 @@ Parrot_subclass_p_pc_p(opcode_t *cur_opcode, PARROT_INTERP) { } PREG(1) = Parrot_pmc_new_init(interp, enum_class_Class, PREG(3)); VTABLE_add_parent(interp, PREG(1), parent_class);return (opcode_t *)next; + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); } opcode_t * @@ -20605,6 +20644,7 @@ Parrot_subclass_p_p_pc(opcode_t *cur_opcode, PARROT_INTERP) { } PREG(1) = Parrot_pmc_new_init(interp, enum_class_Class, PCONST(3)); VTABLE_add_parent(interp, PREG(1), parent_class);return (opcode_t *)next; + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); } opcode_t * @@ -20620,6 +20660,7 @@ Parrot_subclass_p_pc_pc(opcode_t *cur_opcode, PARROT_INTERP) { } PREG(1) = Parrot_pmc_new_init(interp, enum_class_Class, PCONST(3)); VTABLE_add_parent(interp, PREG(1), parent_class);return (opcode_t *)next; + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); } opcode_t * @@ -20636,6 +20677,7 @@ Parrot_subclass_p_s(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = Parrot_pmc_new(interp, enum_class_Class); VTABLE_add_parent(interp, PREG(1), parent_class);return (opcode_t *)next; + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); } opcode_t * @@ -20652,6 +20694,7 @@ Parrot_subclass_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = Parrot_pmc_new(interp, enum_class_Class); VTABLE_add_parent(interp, PREG(1), parent_class);return (opcode_t *)next; + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); } opcode_t * @@ -20668,6 +20711,7 @@ Parrot_subclass_p_s_s(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = Parrot_oo_newclass_from_str(interp, SREG(3)); VTABLE_add_parent(interp, PREG(1), parent_class);return (opcode_t *)next; + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); } opcode_t * @@ -20684,6 +20728,7 @@ Parrot_subclass_p_sc_s(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = Parrot_oo_newclass_from_str(interp, SREG(3)); VTABLE_add_parent(interp, PREG(1), parent_class);return (opcode_t *)next; + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); } opcode_t * @@ -20700,6 +20745,7 @@ Parrot_subclass_p_s_sc(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = Parrot_oo_newclass_from_str(interp, SCONST(3)); VTABLE_add_parent(interp, PREG(1), parent_class);return (opcode_t *)next; + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); } opcode_t * @@ -20716,6 +20762,7 @@ Parrot_subclass_p_sc_sc(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = Parrot_oo_newclass_from_str(interp, SCONST(3)); VTABLE_add_parent(interp, PREG(1), parent_class);return (opcode_t *)next; + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); } opcode_t * @@ -20732,6 +20779,7 @@ Parrot_subclass_p_s_p(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = Parrot_pmc_new_init(interp, enum_class_Class, PREG(3)); VTABLE_add_parent(interp, PREG(1), parent_class);return (opcode_t *)next; + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); } opcode_t * @@ -20748,6 +20796,7 @@ Parrot_subclass_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = Parrot_pmc_new_init(interp, enum_class_Class, PREG(3)); VTABLE_add_parent(interp, PREG(1), parent_class);return (opcode_t *)next; + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); } opcode_t * @@ -20764,6 +20813,7 @@ Parrot_subclass_p_s_pc(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = Parrot_pmc_new_init(interp, enum_class_Class, PCONST(3)); VTABLE_add_parent(interp, PREG(1), parent_class);return (opcode_t *)next; + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); } opcode_t * @@ -20780,12 +20830,14 @@ Parrot_subclass_p_sc_pc(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = Parrot_pmc_new_init(interp, enum_class_Class, PCONST(3)); VTABLE_add_parent(interp, PREG(1), parent_class);return (opcode_t *)next; + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); } opcode_t * Parrot_get_class_p_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = Parrot_oo_get_class_str(interp, SREG(2)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -20794,6 +20846,7 @@ opcode_t * Parrot_get_class_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = Parrot_oo_get_class_str(interp, SCONST(2)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -20802,6 +20855,7 @@ opcode_t * Parrot_get_class_p_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = Parrot_oo_get_class(interp, PREG(2)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -20810,6 +20864,7 @@ opcode_t * Parrot_get_class_p_pc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = Parrot_oo_get_class(interp, PCONST(2)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -20818,6 +20873,7 @@ opcode_t * Parrot_class_p_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_get_class(interp, PREG(2)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -20882,6 +20938,7 @@ opcode_t * Parrot_getattribute_p_p_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_get_attr_str(interp, PREG(2), SREG(3)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -20890,6 +20947,7 @@ opcode_t * Parrot_getattribute_p_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_get_attr_str(interp, PREG(2), SCONST(3)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -20898,6 +20956,7 @@ opcode_t * Parrot_getattribute_p_p_p_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_get_attr_keyed(interp, PREG(2), PREG(3), SREG(4)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 5; } @@ -20906,6 +20965,7 @@ opcode_t * Parrot_getattribute_p_p_pc_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_get_attr_keyed(interp, PREG(2), PCONST(3), SREG(4)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 5; } @@ -20914,6 +20974,7 @@ opcode_t * Parrot_getattribute_p_p_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_get_attr_keyed(interp, PREG(2), PREG(3), SCONST(4)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 5; } @@ -20922,6 +20983,7 @@ opcode_t * Parrot_getattribute_p_p_pc_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_get_attr_keyed(interp, PREG(2), PCONST(3), SCONST(4)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 5; } @@ -20978,6 +21040,7 @@ opcode_t * Parrot_inspect_p_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_inspect(interp, PREG(2)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -20986,6 +21049,7 @@ opcode_t * Parrot_inspect_p_pc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_inspect(interp, PCONST(2)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -20994,6 +21058,7 @@ opcode_t * Parrot_inspect_p_p_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_inspect_str(interp, PREG(2), SREG(3)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -21002,6 +21067,7 @@ opcode_t * Parrot_inspect_p_pc_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_inspect_str(interp, PCONST(2), SREG(3)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -21010,6 +21076,7 @@ opcode_t * Parrot_inspect_p_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_inspect_str(interp, PREG(2), SCONST(3)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -21018,6 +21085,7 @@ opcode_t * Parrot_inspect_p_pc_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_inspect_str(interp, PCONST(2), SCONST(3)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -21041,6 +21109,7 @@ Parrot_new_p_s(opcode_t *cur_opcode, PARROT_INTERP) { } PREG(1) = Parrot_pmc_new(interp, type); } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -21064,6 +21133,7 @@ Parrot_new_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { } PREG(1) = Parrot_pmc_new(interp, type); } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -21087,6 +21157,7 @@ Parrot_new_p_s_p(opcode_t *cur_opcode, PARROT_INTERP) { } PREG(1) = Parrot_pmc_new_init(interp, type, PREG(3)); } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -21110,6 +21181,7 @@ Parrot_new_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP) { } PREG(1) = Parrot_pmc_new_init(interp, type, PREG(3)); } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -21133,6 +21205,7 @@ Parrot_new_p_s_pc(opcode_t *cur_opcode, PARROT_INTERP) { } PREG(1) = Parrot_pmc_new_init(interp, type, PCONST(3)); } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -21156,6 +21229,7 @@ Parrot_new_p_sc_pc(opcode_t *cur_opcode, PARROT_INTERP) { } PREG(1) = Parrot_pmc_new_init(interp, type, PCONST(3)); } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -21177,6 +21251,7 @@ Parrot_new_p_p(opcode_t *cur_opcode, PARROT_INTERP) { } PREG(1) = Parrot_pmc_new(interp, type); } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -21198,6 +21273,7 @@ Parrot_new_p_pc(opcode_t *cur_opcode, PARROT_INTERP) { } PREG(1) = Parrot_pmc_new(interp, type); } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -21219,6 +21295,7 @@ Parrot_new_p_p_p(opcode_t *cur_opcode, PARROT_INTERP) { } PREG(1) = Parrot_pmc_new_init(interp, type, PREG(3)); } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -21240,6 +21317,7 @@ Parrot_new_p_pc_p(opcode_t *cur_opcode, PARROT_INTERP) { } PREG(1) = Parrot_pmc_new_init(interp, type, PREG(3)); } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -21261,6 +21339,7 @@ Parrot_new_p_p_pc(opcode_t *cur_opcode, PARROT_INTERP) { } PREG(1) = Parrot_pmc_new_init(interp, type, PCONST(3)); } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -21282,6 +21361,7 @@ Parrot_new_p_pc_pc(opcode_t *cur_opcode, PARROT_INTERP) { } PREG(1) = Parrot_pmc_new_init(interp, type, PCONST(3)); } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -21303,6 +21383,7 @@ Parrot_root_new_p_p(opcode_t *cur_opcode, PARROT_INTERP) { EXCEPTION_NO_CLASS, "Class '%Ss' not found", VTABLE_get_repr(interp, key));return (opcode_t *)dest; } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -21324,6 +21405,7 @@ Parrot_root_new_p_pc(opcode_t *cur_opcode, PARROT_INTERP) { EXCEPTION_NO_CLASS, "Class '%Ss' not found", VTABLE_get_repr(interp, key));return (opcode_t *)dest; } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -21345,6 +21427,7 @@ Parrot_root_new_p_p_p(opcode_t *cur_opcode, PARROT_INTERP) { EXCEPTION_NO_CLASS, "Class '%Ss' not found", VTABLE_get_repr(interp, key));return (opcode_t *)dest; } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -21366,6 +21449,7 @@ Parrot_root_new_p_pc_p(opcode_t *cur_opcode, PARROT_INTERP) { EXCEPTION_NO_CLASS, "Class '%Ss' not found", VTABLE_get_repr(interp, key));return (opcode_t *)dest; } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -21387,6 +21471,7 @@ Parrot_root_new_p_p_pc(opcode_t *cur_opcode, PARROT_INTERP) { EXCEPTION_NO_CLASS, "Class '%Ss' not found", VTABLE_get_repr(interp, key));return (opcode_t *)dest; } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -21408,6 +21493,7 @@ Parrot_root_new_p_pc_pc(opcode_t *cur_opcode, PARROT_INTERP) { EXCEPTION_NO_CLASS, "Class '%Ss' not found", VTABLE_get_repr(interp, key));return (opcode_t *)dest; } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -21416,6 +21502,7 @@ opcode_t * Parrot_typeof_s_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = VTABLE_name(interp, PREG(2)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -21424,6 +21511,7 @@ opcode_t * Parrot_typeof_p_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_get_class(interp, PREG(2)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -21432,6 +21520,7 @@ opcode_t * Parrot_get_repr_s_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = VTABLE_get_repr(interp, PREG(2)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -21447,6 +21536,7 @@ Parrot_find_method_p_p_s(opcode_t *cur_opcode, PARROT_INTERP) { "Method '%Ss' not found for invocant of class '%Ss'", SREG(3), VTABLE_get_string(interp, VTABLE_get_class(interp, PREG(2))));return (opcode_t *)dest; }return (opcode_t *)resume; + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); } opcode_t * @@ -21460,6 +21550,7 @@ Parrot_find_method_p_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { "Method '%Ss' not found for invocant of class '%Ss'", SCONST(3), VTABLE_get_string(interp, VTABLE_get_class(interp, PREG(2))));return (opcode_t *)dest; }return (opcode_t *)resume; + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); } opcode_t * @@ -21650,6 +21741,7 @@ opcode_t * Parrot_pop_s_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = VTABLE_pop_string(interp, PREG(2)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -21658,6 +21750,7 @@ opcode_t * Parrot_pop_p_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_pop_pmc(interp, PREG(2)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -21738,6 +21831,7 @@ opcode_t * Parrot_shift_s_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = VTABLE_shift_string(interp, PREG(2)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -21746,6 +21840,7 @@ opcode_t * Parrot_shift_p_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_shift_pmc(interp, PREG(2)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -21802,6 +21897,7 @@ opcode_t * Parrot_getprop_p_s_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_getprop(interp, PREG(3), SREG(2)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -21810,6 +21906,7 @@ opcode_t * Parrot_getprop_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_getprop(interp, PREG(3), SCONST(2)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -21834,6 +21931,7 @@ opcode_t * Parrot_prophash_p_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_getprops(interp, PREG(2)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -21842,6 +21940,7 @@ opcode_t * Parrot_freeze_s_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_freeze(interp, PREG(2)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -21850,6 +21949,7 @@ opcode_t * Parrot_thaw_p_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = Parrot_thaw(interp, SREG(2)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -21858,6 +21958,7 @@ opcode_t * Parrot_thaw_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = Parrot_thaw(interp, SCONST(2)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -21898,6 +21999,7 @@ opcode_t * Parrot_find_multi_p_s_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = Parrot_mmd_find_multi_from_long_sig(interp, SREG(2), SREG(3)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -21906,6 +22008,7 @@ opcode_t * Parrot_find_multi_p_sc_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = Parrot_mmd_find_multi_from_long_sig(interp, SCONST(2), SREG(3)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -21914,6 +22017,7 @@ opcode_t * Parrot_find_multi_p_s_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = Parrot_mmd_find_multi_from_long_sig(interp, SREG(2), SCONST(3)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -21922,6 +22026,7 @@ opcode_t * Parrot_find_multi_p_sc_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = Parrot_mmd_find_multi_from_long_sig(interp, SCONST(2), SCONST(3)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -21946,6 +22051,7 @@ opcode_t * Parrot_box_p_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = Parrot_pmc_box_integer(interp, IREG(2)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -21954,6 +22060,7 @@ opcode_t * Parrot_box_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = Parrot_pmc_box_integer(interp, ICONST(2)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -21962,6 +22069,7 @@ opcode_t * Parrot_box_p_n(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = Parrot_pmc_box_number(interp, NREG(2)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -21970,6 +22078,7 @@ opcode_t * Parrot_box_p_nc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = Parrot_pmc_box_number(interp, NCONST(2)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -21978,6 +22087,7 @@ opcode_t * Parrot_box_p_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = Parrot_pmc_box_string(interp, SREG(2)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -21986,6 +22096,7 @@ opcode_t * Parrot_box_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = Parrot_pmc_box_string(interp, SCONST(2)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -21994,6 +22105,7 @@ opcode_t * Parrot_iter_p_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_get_iter(interp, PREG(2)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -22021,6 +22133,7 @@ Parrot_clone_s_s(opcode_t *cur_opcode, PARROT_INTERP) { SREG(1) = STRING_IS_NULL(SREG(2)) ? Parrot_str_new(interp, NULL, 0) : SREG(2); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -22032,6 +22145,7 @@ Parrot_clone_s_sc(opcode_t *cur_opcode, PARROT_INTERP) { SREG(1) = STRING_IS_NULL(SCONST(2)) ? Parrot_str_new(interp, NULL, 0) : SCONST(2); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -22144,6 +22258,7 @@ opcode_t * Parrot_set_s_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = VTABLE_get_string(interp, PREG(2)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -22152,6 +22267,7 @@ opcode_t * Parrot_set_s_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = SREG(2); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -22160,6 +22276,7 @@ opcode_t * Parrot_set_s_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = SCONST(2); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -22168,6 +22285,7 @@ opcode_t * Parrot_set_s_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_from_int(interp, IREG(2)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -22176,6 +22294,7 @@ opcode_t * Parrot_set_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_from_int(interp, ICONST(2)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -22184,6 +22303,7 @@ opcode_t * Parrot_set_s_n(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_from_num(interp, NREG(2)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -22192,6 +22312,7 @@ opcode_t * Parrot_set_s_nc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_from_num(interp, NCONST(2)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -22200,6 +22321,7 @@ opcode_t * Parrot_set_p_pc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = PCONST(2); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -22208,6 +22330,7 @@ opcode_t * Parrot_set_p_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = PREG(2); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -22328,6 +22451,7 @@ opcode_t * Parrot_assign_s_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = SREG(2); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -22336,6 +22460,7 @@ opcode_t * Parrot_assign_s_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = SCONST(2); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -22352,6 +22477,7 @@ opcode_t * Parrot_deref_p_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_get_pmc(interp, PREG(2)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -22504,6 +22630,7 @@ opcode_t * Parrot_set_s_p_ki(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = VTABLE_get_string_keyed_int(interp, PREG(2), IREG(3)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -22512,6 +22639,7 @@ opcode_t * Parrot_set_s_p_kic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = VTABLE_get_string_keyed_int(interp, PREG(2), ICONST(3)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -22520,6 +22648,7 @@ opcode_t * Parrot_set_p_p_ki(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_get_pmc_keyed_int(interp, PREG(2), IREG(3)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -22528,6 +22657,7 @@ opcode_t * Parrot_set_p_p_kic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_get_pmc_keyed_int(interp, PREG(2), ICONST(3)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -22680,6 +22810,7 @@ opcode_t * Parrot_set_s_p_k(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = VTABLE_get_string_keyed(interp, PREG(2), PREG(3)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -22688,6 +22819,7 @@ opcode_t * Parrot_set_s_p_kc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = VTABLE_get_string_keyed(interp, PREG(2), PCONST(3)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -22696,6 +22828,7 @@ opcode_t * Parrot_set_p_p_k(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_get_pmc_keyed(interp, PREG(2), PREG(3)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -22704,6 +22837,7 @@ opcode_t * Parrot_set_p_p_kc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_get_pmc_keyed(interp, PREG(2), PCONST(3)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -22712,6 +22846,7 @@ opcode_t * Parrot_clone_p_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_clone(interp, PREG(2)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -22720,6 +22855,7 @@ opcode_t * Parrot_clone_p_p_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_clone_pmc(interp, PREG(2), PREG(3)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -22728,6 +22864,7 @@ opcode_t * Parrot_clone_p_p_pc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = VTABLE_clone_pmc(interp, PREG(2), PCONST(3)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -22770,6 +22907,7 @@ Parrot_copy_p_p(opcode_t *cur_opcode, PARROT_INTERP) { } } } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -22861,6 +22999,7 @@ Parrot_chr_s_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); STRING * const s = Parrot_str_chr(interp, (UINTVAL)IREG(2)); SREG(1) = s; + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -22870,6 +23009,7 @@ Parrot_chr_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); STRING * const s = Parrot_str_chr(interp, (UINTVAL)ICONST(2)); SREG(1) = s; + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -22878,6 +23018,7 @@ opcode_t * Parrot_chopn_s_s_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_chopn(interp, SREG(2), IREG(3)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -22886,6 +23027,7 @@ opcode_t * Parrot_chopn_s_sc_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_chopn(interp, SCONST(2), IREG(3)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -22894,6 +23036,7 @@ opcode_t * Parrot_chopn_s_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_chopn(interp, SREG(2), ICONST(3)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -22902,6 +23045,7 @@ opcode_t * Parrot_chopn_s_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_chopn(interp, SCONST(2), ICONST(3)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -22934,6 +23078,7 @@ opcode_t * Parrot_concat_s_s_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_concat(interp, SREG(2), SREG(3)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -22942,6 +23087,7 @@ opcode_t * Parrot_concat_s_sc_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_concat(interp, SCONST(2), SREG(3)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -22950,6 +23096,7 @@ opcode_t * Parrot_concat_s_s_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_concat(interp, SREG(2), SCONST(3)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -22987,6 +23134,7 @@ Parrot_repeat_s_s_i(opcode_t *cur_opcode, PARROT_INTERP) { "Cannot repeat with negative arg");return (opcode_t *)handler; } SREG(1) = Parrot_str_repeat(interp, SREG(2), (UINTVAL)IREG(3)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -23000,6 +23148,7 @@ Parrot_repeat_s_sc_i(opcode_t *cur_opcode, PARROT_INTERP) { "Cannot repeat with negative arg");return (opcode_t *)handler; } SREG(1) = Parrot_str_repeat(interp, SCONST(2), (UINTVAL)IREG(3)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -23013,6 +23162,7 @@ Parrot_repeat_s_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { "Cannot repeat with negative arg");return (opcode_t *)handler; } SREG(1) = Parrot_str_repeat(interp, SREG(2), (UINTVAL)ICONST(3)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -23026,6 +23176,7 @@ Parrot_repeat_s_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) { "Cannot repeat with negative arg");return (opcode_t *)handler; } SREG(1) = Parrot_str_repeat(interp, SCONST(2), (UINTVAL)ICONST(3)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -23148,6 +23299,7 @@ Parrot_substr_s_s_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); const INTVAL len = Parrot_str_byte_length(interp, SREG(2)); SREG(1) = STRING_substr(interp, SREG(2), IREG(3), len); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -23157,6 +23309,7 @@ Parrot_substr_s_sc_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); const INTVAL len = Parrot_str_byte_length(interp, SCONST(2)); SREG(1) = STRING_substr(interp, SCONST(2), IREG(3), len); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -23166,6 +23319,7 @@ Parrot_substr_s_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); const INTVAL len = Parrot_str_byte_length(interp, SREG(2)); SREG(1) = STRING_substr(interp, SREG(2), ICONST(3), len); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -23175,6 +23329,7 @@ Parrot_substr_s_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); const INTVAL len = Parrot_str_byte_length(interp, SCONST(2)); SREG(1) = STRING_substr(interp, SCONST(2), ICONST(3), len); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -23183,6 +23338,7 @@ opcode_t * Parrot_substr_s_s_i_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = STRING_substr(interp, SREG(2), IREG(3), IREG(4)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 5; } @@ -23191,6 +23347,7 @@ opcode_t * Parrot_substr_s_sc_i_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = STRING_substr(interp, SCONST(2), IREG(3), IREG(4)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 5; } @@ -23199,6 +23356,7 @@ opcode_t * Parrot_substr_s_s_ic_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = STRING_substr(interp, SREG(2), ICONST(3), IREG(4)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 5; } @@ -23207,6 +23365,7 @@ opcode_t * Parrot_substr_s_sc_ic_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = STRING_substr(interp, SCONST(2), ICONST(3), IREG(4)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 5; } @@ -23215,6 +23374,7 @@ opcode_t * Parrot_substr_s_s_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = STRING_substr(interp, SREG(2), IREG(3), ICONST(4)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 5; } @@ -23223,6 +23383,7 @@ opcode_t * Parrot_substr_s_sc_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = STRING_substr(interp, SCONST(2), IREG(3), ICONST(4)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 5; } @@ -23231,6 +23392,7 @@ opcode_t * Parrot_substr_s_s_ic_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = STRING_substr(interp, SREG(2), ICONST(3), ICONST(4)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 5; } @@ -23239,6 +23401,7 @@ opcode_t * Parrot_substr_s_sc_ic_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = STRING_substr(interp, SCONST(2), ICONST(3), ICONST(4)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 5; } @@ -23247,6 +23410,7 @@ opcode_t * Parrot_substr_s_p_i_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = VTABLE_substr_str(interp, PREG(2), IREG(3), IREG(4)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 5; } @@ -23255,6 +23419,7 @@ opcode_t * Parrot_substr_s_p_ic_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = VTABLE_substr_str(interp, PREG(2), ICONST(3), IREG(4)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 5; } @@ -23263,6 +23428,7 @@ opcode_t * Parrot_substr_s_p_i_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = VTABLE_substr_str(interp, PREG(2), IREG(3), ICONST(4)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 5; } @@ -23271,6 +23437,7 @@ opcode_t * Parrot_substr_s_p_ic_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = VTABLE_substr_str(interp, PREG(2), ICONST(3), ICONST(4)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 5; } @@ -23279,6 +23446,7 @@ opcode_t * Parrot_replace_s_s_i_i_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_replace(interp, SREG(2), IREG(3), IREG(4), SREG(5)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 6; } @@ -23287,6 +23455,7 @@ opcode_t * Parrot_replace_s_sc_i_i_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_replace(interp, SCONST(2), IREG(3), IREG(4), SREG(5)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 6; } @@ -23295,6 +23464,7 @@ opcode_t * Parrot_replace_s_s_ic_i_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_replace(interp, SREG(2), ICONST(3), IREG(4), SREG(5)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 6; } @@ -23303,6 +23473,7 @@ opcode_t * Parrot_replace_s_sc_ic_i_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_replace(interp, SCONST(2), ICONST(3), IREG(4), SREG(5)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 6; } @@ -23311,6 +23482,7 @@ opcode_t * Parrot_replace_s_s_i_ic_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_replace(interp, SREG(2), IREG(3), ICONST(4), SREG(5)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 6; } @@ -23319,6 +23491,7 @@ opcode_t * Parrot_replace_s_sc_i_ic_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_replace(interp, SCONST(2), IREG(3), ICONST(4), SREG(5)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 6; } @@ -23327,6 +23500,7 @@ opcode_t * Parrot_replace_s_s_ic_ic_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_replace(interp, SREG(2), ICONST(3), ICONST(4), SREG(5)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 6; } @@ -23335,6 +23509,7 @@ opcode_t * Parrot_replace_s_sc_ic_ic_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_replace(interp, SCONST(2), ICONST(3), ICONST(4), SREG(5)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 6; } @@ -23343,6 +23518,7 @@ opcode_t * Parrot_replace_s_s_i_i_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_replace(interp, SREG(2), IREG(3), IREG(4), SCONST(5)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 6; } @@ -23351,6 +23527,7 @@ opcode_t * Parrot_replace_s_sc_i_i_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_replace(interp, SCONST(2), IREG(3), IREG(4), SCONST(5)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 6; } @@ -23359,6 +23536,7 @@ opcode_t * Parrot_replace_s_s_ic_i_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_replace(interp, SREG(2), ICONST(3), IREG(4), SCONST(5)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 6; } @@ -23367,6 +23545,7 @@ opcode_t * Parrot_replace_s_sc_ic_i_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_replace(interp, SCONST(2), ICONST(3), IREG(4), SCONST(5)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 6; } @@ -23375,6 +23554,7 @@ opcode_t * Parrot_replace_s_s_i_ic_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_replace(interp, SREG(2), IREG(3), ICONST(4), SCONST(5)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 6; } @@ -23383,6 +23563,7 @@ opcode_t * Parrot_replace_s_sc_i_ic_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_replace(interp, SCONST(2), IREG(3), ICONST(4), SCONST(5)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 6; } @@ -23391,6 +23572,7 @@ opcode_t * Parrot_replace_s_s_ic_ic_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_replace(interp, SREG(2), ICONST(3), ICONST(4), SCONST(5)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 6; } @@ -23399,6 +23581,7 @@ opcode_t * Parrot_replace_s_sc_ic_ic_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_replace(interp, SCONST(2), ICONST(3), ICONST(4), SCONST(5)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 6; } @@ -23503,6 +23686,7 @@ opcode_t * Parrot_sprintf_s_s_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1)=Parrot_psprintf(interp, SREG(2), PREG(3)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -23511,6 +23695,7 @@ opcode_t * Parrot_sprintf_s_sc_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1)=Parrot_psprintf(interp, SCONST(2), PREG(3)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -23520,6 +23705,7 @@ Parrot_sprintf_p_p_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); VTABLE_set_string_native(interp, PREG(1), Parrot_psprintf(interp, VTABLE_get_string(interp, PREG(2)), PREG(3))); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -23537,6 +23723,7 @@ opcode_t * Parrot_new_s_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_new_noinit(interp, IREG(2)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -23545,6 +23732,7 @@ opcode_t * Parrot_new_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_new_noinit(interp, ICONST(2)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -23701,6 +23889,7 @@ opcode_t * Parrot_upcase_s_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_upcase(interp, SREG(2)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -23709,6 +23898,7 @@ opcode_t * Parrot_upcase_s_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_upcase(interp, SCONST(2)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -23717,6 +23907,7 @@ opcode_t * Parrot_downcase_s_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_downcase(interp, SREG(2)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -23725,6 +23916,7 @@ opcode_t * Parrot_downcase_s_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_downcase(interp, SCONST(2)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -23733,6 +23925,7 @@ opcode_t * Parrot_titlecase_s_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_titlecase(interp, SREG(2)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -23741,6 +23934,7 @@ opcode_t * Parrot_titlecase_s_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_titlecase(interp, SCONST(2)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -23749,6 +23943,7 @@ opcode_t * Parrot_join_s_s_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_join(interp, SREG(2), PREG(3)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -23757,6 +23952,7 @@ opcode_t * Parrot_join_s_sc_p(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_join(interp, SCONST(2), PREG(3)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -23765,6 +23961,7 @@ opcode_t * Parrot_split_p_s_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = Parrot_str_split(interp, SREG(2), SREG(3)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -23773,6 +23970,7 @@ opcode_t * Parrot_split_p_sc_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = Parrot_str_split(interp, SCONST(2), SREG(3)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -23781,6 +23979,7 @@ opcode_t * Parrot_split_p_s_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = Parrot_str_split(interp, SREG(2), SCONST(3)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -23789,6 +23988,7 @@ opcode_t * Parrot_split_p_sc_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PREG(1) = Parrot_str_split(interp, SCONST(2), SCONST(3)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -23813,6 +24013,7 @@ opcode_t * Parrot_encodingname_s_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_encoding_name(interp, IREG(2)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -23821,6 +24022,7 @@ opcode_t * Parrot_encodingname_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_encoding_name(interp, ICONST(2)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -23857,6 +24059,7 @@ opcode_t * Parrot_trans_encoding_s_s_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_change_encoding(interp, SREG(2), IREG(3)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -23865,6 +24068,7 @@ opcode_t * Parrot_trans_encoding_s_sc_i(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_change_encoding(interp, SCONST(2), IREG(3)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -23873,6 +24077,7 @@ opcode_t * Parrot_trans_encoding_s_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_change_encoding(interp, SREG(2), ICONST(3)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -23881,6 +24086,7 @@ opcode_t * Parrot_trans_encoding_s_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_change_encoding(interp, SCONST(2), ICONST(3)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -24209,6 +24415,7 @@ opcode_t * Parrot_escape_s_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_escape(interp, SREG(2)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -24217,6 +24424,7 @@ opcode_t * Parrot_compose_s_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_compose(interp, SREG(2)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -24225,6 +24433,7 @@ opcode_t * Parrot_compose_s_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); SREG(1) = Parrot_str_compose(interp, SCONST(2)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -24312,6 +24521,7 @@ Parrot_err_s_i(opcode_t *cur_opcode, PARROT_INTERP) { const char * const tmp = strerror(IREG(2)); SREG(1) = Parrot_str_new_init(interp, tmp, strlen(tmp), Parrot_ascii_encoding_ptr, 0); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -24322,6 +24532,7 @@ Parrot_err_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { const char * const tmp = strerror(ICONST(2)); SREG(1) = Parrot_str_new_init(interp, tmp, strlen(tmp), Parrot_ascii_encoding_ptr, 0); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -24478,6 +24689,7 @@ Parrot_find_lex_p_s(opcode_t *cur_opcode, PARROT_INTERP) { ? PMCNULL : VTABLE_get_pmc_keyed_str(interp, lex_pad, lex_name); PREG(1) = result; + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -24494,6 +24706,7 @@ Parrot_find_lex_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { ? PMCNULL : VTABLE_get_pmc_keyed_str(interp, lex_pad, lex_name); PREG(1) = result; + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -24513,6 +24726,7 @@ Parrot_find_dynamic_lex_p_s(opcode_t *cur_opcode, PARROT_INTERP) { ? PMCNULL : VTABLE_get_pmc_keyed_str(interp, lex_pad, lex_name); PREG(1) = result; + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -24532,6 +24746,7 @@ Parrot_find_dynamic_lex_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { ? PMCNULL : VTABLE_get_pmc_keyed_str(interp, lex_pad, lex_name); PREG(1) = result; + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -24554,6 +24769,7 @@ Parrot_find_caller_lex_p_s(opcode_t *cur_opcode, PARROT_INTERP) { if (!result) result = PMCNULL; } PREG(1) = result; + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -24576,6 +24792,7 @@ Parrot_find_caller_lex_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { if (!result) result = PMCNULL; } PREG(1) = result; + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -24597,6 +24814,7 @@ Parrot_get_namespace_p_p(opcode_t *cur_opcode, PARROT_INTERP) { PMC * const ns = Parrot_ns_get_namespace_keyed(interp, cur_ns, PREG(2)); PREG(1) = PMC_IS_NULL(ns) ? PMCNULL : ns; + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -24608,6 +24826,7 @@ Parrot_get_namespace_p_pc(opcode_t *cur_opcode, PARROT_INTERP) { PMC * const ns = Parrot_ns_get_namespace_keyed(interp, cur_ns, PCONST(2)); PREG(1) = PMC_IS_NULL(ns) ? PMCNULL : ns; + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -24632,6 +24851,7 @@ Parrot_get_hll_namespace_p_p(opcode_t *cur_opcode, PARROT_INTERP) { PMC * const ns = Parrot_ns_get_namespace_keyed(interp, hll_ns, PREG(2)); PREG(1) = ns; } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -24646,6 +24866,7 @@ Parrot_get_hll_namespace_p_pc(opcode_t *cur_opcode, PARROT_INTERP) { PMC * const ns = Parrot_ns_get_namespace_keyed(interp, hll_ns, PCONST(2)); PREG(1) = ns; } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -24670,6 +24891,7 @@ Parrot_get_root_namespace_p_p(opcode_t *cur_opcode, PARROT_INTERP) { PMC * const ns = Parrot_ns_get_namespace_keyed(interp, root_ns, PREG(2)); PREG(1) = ns; } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -24684,6 +24906,7 @@ Parrot_get_root_namespace_p_pc(opcode_t *cur_opcode, PARROT_INTERP) { PMC * const ns = Parrot_ns_get_namespace_keyed(interp, root_ns, PCONST(2)); PREG(1) = ns; } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -24693,6 +24916,7 @@ Parrot_get_global_p_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PMC * const cur_ns = Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp)); PREG(1) = Parrot_ns_find_global_from_op(interp, cur_ns, SREG(2), cur_opcode + 3); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -24702,6 +24926,7 @@ Parrot_get_global_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PMC * const cur_ns = Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp)); PREG(1) = Parrot_ns_find_global_from_op(interp, cur_ns, SCONST(2), cur_opcode + 3); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -24720,6 +24945,7 @@ Parrot_get_global_p_p_s(opcode_t *cur_opcode, PARROT_INTERP) { else PREG(1) = Parrot_ns_find_global_from_op(interp, ns, SREG(3), cur_opcode + 4); } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -24738,6 +24964,7 @@ Parrot_get_global_p_pc_s(opcode_t *cur_opcode, PARROT_INTERP) { else PREG(1) = Parrot_ns_find_global_from_op(interp, ns, SREG(3), cur_opcode + 4); } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -24756,6 +24983,7 @@ Parrot_get_global_p_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { else PREG(1) = Parrot_ns_find_global_from_op(interp, ns, SCONST(3), cur_opcode + 4); } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -24774,6 +25002,7 @@ Parrot_get_global_p_pc_sc(opcode_t *cur_opcode, PARROT_INTERP) { else PREG(1) = Parrot_ns_find_global_from_op(interp, ns, SCONST(3), cur_opcode + 4); } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -24783,6 +25012,7 @@ Parrot_get_hll_global_p_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PMC * const hll_ns = Parrot_hll_get_ctx_HLL_namespace(interp); PREG(1) = Parrot_ns_find_global_from_op(interp, hll_ns, SREG(2), cur_opcode + 3); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -24792,6 +25022,7 @@ Parrot_get_hll_global_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PMC * const hll_ns = Parrot_hll_get_ctx_HLL_namespace(interp); PREG(1) = Parrot_ns_find_global_from_op(interp, hll_ns, SCONST(2), cur_opcode + 3); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -24810,6 +25041,7 @@ Parrot_get_hll_global_p_p_s(opcode_t *cur_opcode, PARROT_INTERP) { else PREG(1) = Parrot_ns_find_global_from_op(interp, ns, SREG(3), cur_opcode + 4); } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -24828,6 +25060,7 @@ Parrot_get_hll_global_p_pc_s(opcode_t *cur_opcode, PARROT_INTERP) { else PREG(1) = Parrot_ns_find_global_from_op(interp, ns, SREG(3), cur_opcode + 4); } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -24846,6 +25079,7 @@ Parrot_get_hll_global_p_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { else PREG(1) = Parrot_ns_find_global_from_op(interp, ns, SCONST(3), cur_opcode + 4); } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -24864,6 +25098,7 @@ Parrot_get_hll_global_p_pc_sc(opcode_t *cur_opcode, PARROT_INTERP) { else PREG(1) = Parrot_ns_find_global_from_op(interp, ns, SCONST(3), cur_opcode + 4); } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -24873,6 +25108,7 @@ Parrot_get_root_global_p_s(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PMC * const root_ns = interp->root_namespace; PREG(1) = Parrot_ns_find_global_from_op(interp, root_ns, SREG(2), cur_opcode + 3); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -24882,6 +25118,7 @@ Parrot_get_root_global_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx); PMC * const root_ns = interp->root_namespace; PREG(1) = Parrot_ns_find_global_from_op(interp, root_ns, SCONST(2), cur_opcode + 3); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -24899,6 +25136,7 @@ Parrot_get_root_global_p_p_s(opcode_t *cur_opcode, PARROT_INTERP) { else PREG(1) = Parrot_ns_find_global_from_op(interp, ns, SREG(3), cur_opcode + 4); } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -24916,6 +25154,7 @@ Parrot_get_root_global_p_pc_s(opcode_t *cur_opcode, PARROT_INTERP) { else PREG(1) = Parrot_ns_find_global_from_op(interp, ns, SREG(3), cur_opcode + 4); } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -24933,6 +25172,7 @@ Parrot_get_root_global_p_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { else PREG(1) = Parrot_ns_find_global_from_op(interp, ns, SCONST(3), cur_opcode + 4); } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -24950,6 +25190,7 @@ Parrot_get_root_global_p_pc_sc(opcode_t *cur_opcode, PARROT_INTERP) { else PREG(1) = Parrot_ns_find_global_from_op(interp, ns, SCONST(3), cur_opcode + 4); } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -25150,6 +25391,7 @@ Parrot_find_name_p_s(opcode_t *cur_opcode, PARROT_INTERP) { } PREG(1) = Parrot_ns_find_named_item(interp, SREG(2), cur_opcode + 3); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -25164,6 +25406,7 @@ Parrot_find_name_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { } PREG(1) = Parrot_ns_find_named_item(interp, SCONST(2), cur_opcode + 3); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -25183,6 +25426,7 @@ Parrot_find_sub_not_null_p_s(opcode_t *cur_opcode, PARROT_INTERP) { } PREG(1) = sub; + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -25202,6 +25446,7 @@ Parrot_find_sub_not_null_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { } PREG(1) = sub; + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 3; } @@ -25255,6 +25500,7 @@ Parrot_fetch_p_p_p_p(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = Parrot_pmc_new(interp, type); } } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 5; } @@ -25278,6 +25524,7 @@ Parrot_fetch_p_pc_p_p(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = Parrot_pmc_new(interp, type); } } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 5; } @@ -25301,6 +25548,7 @@ Parrot_fetch_p_p_pc_p(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = Parrot_pmc_new(interp, type); } } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 5; } @@ -25324,6 +25572,7 @@ Parrot_fetch_p_pc_pc_p(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = Parrot_pmc_new(interp, type); } } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 5; } @@ -25347,6 +25596,7 @@ Parrot_fetch_p_p_p_pc(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = Parrot_pmc_new(interp, type); } } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 5; } @@ -25370,6 +25620,7 @@ Parrot_fetch_p_pc_p_pc(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = Parrot_pmc_new(interp, type); } } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 5; } @@ -25393,6 +25644,7 @@ Parrot_fetch_p_p_pc_pc(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = Parrot_pmc_new(interp, type); } } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 5; } @@ -25416,6 +25668,7 @@ Parrot_fetch_p_pc_pc_pc(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = Parrot_pmc_new(interp, type); } } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 5; } @@ -25439,6 +25692,7 @@ Parrot_fetch_p_p_i_p(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = Parrot_pmc_new(interp, type); } } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 5; } @@ -25462,6 +25716,7 @@ Parrot_fetch_p_pc_i_p(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = Parrot_pmc_new(interp, type); } } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 5; } @@ -25485,6 +25740,7 @@ Parrot_fetch_p_p_ic_p(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = Parrot_pmc_new(interp, type); } } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 5; } @@ -25508,6 +25764,7 @@ Parrot_fetch_p_pc_ic_p(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = Parrot_pmc_new(interp, type); } } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 5; } @@ -25531,6 +25788,7 @@ Parrot_fetch_p_p_i_pc(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = Parrot_pmc_new(interp, type); } } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 5; } @@ -25554,6 +25812,7 @@ Parrot_fetch_p_pc_i_pc(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = Parrot_pmc_new(interp, type); } } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 5; } @@ -25577,6 +25836,7 @@ Parrot_fetch_p_p_ic_pc(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = Parrot_pmc_new(interp, type); } } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 5; } @@ -25600,6 +25860,7 @@ Parrot_fetch_p_pc_ic_pc(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = Parrot_pmc_new(interp, type); } } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 5; } @@ -25623,6 +25884,7 @@ Parrot_fetch_p_p_s_p(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = Parrot_pmc_new(interp, type); } } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 5; } @@ -25646,6 +25908,7 @@ Parrot_fetch_p_pc_s_p(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = Parrot_pmc_new(interp, type); } } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 5; } @@ -25669,6 +25932,7 @@ Parrot_fetch_p_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = Parrot_pmc_new(interp, type); } } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 5; } @@ -25692,6 +25956,7 @@ Parrot_fetch_p_pc_sc_p(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = Parrot_pmc_new(interp, type); } } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 5; } @@ -25715,6 +25980,7 @@ Parrot_fetch_p_p_s_pc(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = Parrot_pmc_new(interp, type); } } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 5; } @@ -25738,6 +26004,7 @@ Parrot_fetch_p_pc_s_pc(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = Parrot_pmc_new(interp, type); } } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 5; } @@ -25761,6 +26028,7 @@ Parrot_fetch_p_p_sc_pc(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = Parrot_pmc_new(interp, type); } } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 5; } @@ -25784,6 +26052,7 @@ Parrot_fetch_p_pc_sc_pc(opcode_t *cur_opcode, PARROT_INTERP) { PREG(1) = Parrot_pmc_new(interp, type); } } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 5; } @@ -25810,6 +26079,7 @@ Parrot_vivify_p_p_p_p(opcode_t *cur_opcode, PARROT_INTERP) { } VTABLE_set_pmc_keyed(interp, PREG(2), PREG(3), PREG(1)); } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 5; } @@ -25836,6 +26106,7 @@ Parrot_vivify_p_pc_p_p(opcode_t *cur_opcode, PARROT_INTERP) { } VTABLE_set_pmc_keyed(interp, PCONST(2), PREG(3), PREG(1)); } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 5; } @@ -25862,6 +26133,7 @@ Parrot_vivify_p_p_pc_p(opcode_t *cur_opcode, PARROT_INTERP) { } VTABLE_set_pmc_keyed(interp, PREG(2), PCONST(3), PREG(1)); } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 5; } @@ -25888,6 +26160,7 @@ Parrot_vivify_p_pc_pc_p(opcode_t *cur_opcode, PARROT_INTERP) { } VTABLE_set_pmc_keyed(interp, PCONST(2), PCONST(3), PREG(1)); } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 5; } @@ -25914,6 +26187,7 @@ Parrot_vivify_p_p_p_pc(opcode_t *cur_opcode, PARROT_INTERP) { } VTABLE_set_pmc_keyed(interp, PREG(2), PREG(3), PREG(1)); } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 5; } @@ -25940,6 +26214,7 @@ Parrot_vivify_p_pc_p_pc(opcode_t *cur_opcode, PARROT_INTERP) { } VTABLE_set_pmc_keyed(interp, PCONST(2), PREG(3), PREG(1)); } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 5; } @@ -25966,6 +26241,7 @@ Parrot_vivify_p_p_pc_pc(opcode_t *cur_opcode, PARROT_INTERP) { } VTABLE_set_pmc_keyed(interp, PREG(2), PCONST(3), PREG(1)); } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 5; } @@ -25992,6 +26268,7 @@ Parrot_vivify_p_pc_pc_pc(opcode_t *cur_opcode, PARROT_INTERP) { } VTABLE_set_pmc_keyed(interp, PCONST(2), PCONST(3), PREG(1)); } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 5; } @@ -26018,6 +26295,7 @@ Parrot_vivify_p_p_i_p(opcode_t *cur_opcode, PARROT_INTERP) { VTABLE_set_pmc_keyed_int(interp, PREG(2), IREG(3), PREG(1)); } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 5; } @@ -26044,6 +26322,7 @@ Parrot_vivify_p_pc_i_p(opcode_t *cur_opcode, PARROT_INTERP) { VTABLE_set_pmc_keyed_int(interp, PCONST(2), IREG(3), PREG(1)); } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 5; } @@ -26070,6 +26349,7 @@ Parrot_vivify_p_p_ic_p(opcode_t *cur_opcode, PARROT_INTERP) { VTABLE_set_pmc_keyed_int(interp, PREG(2), ICONST(3), PREG(1)); } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 5; } @@ -26096,6 +26376,7 @@ Parrot_vivify_p_pc_ic_p(opcode_t *cur_opcode, PARROT_INTERP) { VTABLE_set_pmc_keyed_int(interp, PCONST(2), ICONST(3), PREG(1)); } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 5; } @@ -26122,6 +26403,7 @@ Parrot_vivify_p_p_i_pc(opcode_t *cur_opcode, PARROT_INTERP) { VTABLE_set_pmc_keyed_int(interp, PREG(2), IREG(3), PREG(1)); } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 5; } @@ -26148,6 +26430,7 @@ Parrot_vivify_p_pc_i_pc(opcode_t *cur_opcode, PARROT_INTERP) { VTABLE_set_pmc_keyed_int(interp, PCONST(2), IREG(3), PREG(1)); } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 5; } @@ -26174,6 +26457,7 @@ Parrot_vivify_p_p_ic_pc(opcode_t *cur_opcode, PARROT_INTERP) { VTABLE_set_pmc_keyed_int(interp, PREG(2), ICONST(3), PREG(1)); } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 5; } @@ -26200,6 +26484,7 @@ Parrot_vivify_p_pc_ic_pc(opcode_t *cur_opcode, PARROT_INTERP) { VTABLE_set_pmc_keyed_int(interp, PCONST(2), ICONST(3), PREG(1)); } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 5; } @@ -26226,6 +26511,7 @@ Parrot_vivify_p_p_s_p(opcode_t *cur_opcode, PARROT_INTERP) { VTABLE_set_pmc_keyed_str(interp, PREG(2), SREG(3), PREG(1)); } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 5; } @@ -26252,6 +26538,7 @@ Parrot_vivify_p_pc_s_p(opcode_t *cur_opcode, PARROT_INTERP) { VTABLE_set_pmc_keyed_str(interp, PCONST(2), SREG(3), PREG(1)); } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 5; } @@ -26278,6 +26565,7 @@ Parrot_vivify_p_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP) { VTABLE_set_pmc_keyed_str(interp, PREG(2), SCONST(3), PREG(1)); } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 5; } @@ -26304,6 +26592,7 @@ Parrot_vivify_p_pc_sc_p(opcode_t *cur_opcode, PARROT_INTERP) { VTABLE_set_pmc_keyed_str(interp, PCONST(2), SCONST(3), PREG(1)); } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 5; } @@ -26330,6 +26619,7 @@ Parrot_vivify_p_p_s_pc(opcode_t *cur_opcode, PARROT_INTERP) { VTABLE_set_pmc_keyed_str(interp, PREG(2), SREG(3), PREG(1)); } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 5; } @@ -26356,6 +26646,7 @@ Parrot_vivify_p_pc_s_pc(opcode_t *cur_opcode, PARROT_INTERP) { VTABLE_set_pmc_keyed_str(interp, PCONST(2), SREG(3), PREG(1)); } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 5; } @@ -26382,6 +26673,7 @@ Parrot_vivify_p_p_sc_pc(opcode_t *cur_opcode, PARROT_INTERP) { VTABLE_set_pmc_keyed_str(interp, PREG(2), SCONST(3), PREG(1)); } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 5; } @@ -26408,6 +26700,7 @@ Parrot_vivify_p_pc_sc_pc(opcode_t *cur_opcode, PARROT_INTERP) { VTABLE_set_pmc_keyed_str(interp, PCONST(2), SCONST(3), PREG(1)); } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 5; } @@ -26435,6 +26728,7 @@ Parrot_new_p_s_i(opcode_t *cur_opcode, PARROT_INTERP) { } PREG(1) = Parrot_pmc_new_init_int(interp, type, IREG(3)); } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -26462,6 +26756,7 @@ Parrot_new_p_sc_i(opcode_t *cur_opcode, PARROT_INTERP) { } PREG(1) = Parrot_pmc_new_init_int(interp, type, IREG(3)); } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -26489,6 +26784,7 @@ Parrot_new_p_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { } PREG(1) = Parrot_pmc_new_init_int(interp, type, ICONST(3)); } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -26516,6 +26812,7 @@ Parrot_new_p_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) { } PREG(1) = Parrot_pmc_new_init_int(interp, type, ICONST(3)); } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -26549,6 +26846,7 @@ Parrot_new_p_p_i(opcode_t *cur_opcode, PARROT_INTERP) { EXCEPTION_NO_CLASS, "Class '%Ss' not found", VTABLE_get_repr(interp, name_key));return (opcode_t *)dest; } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -26582,6 +26880,7 @@ Parrot_new_p_pc_i(opcode_t *cur_opcode, PARROT_INTERP) { EXCEPTION_NO_CLASS, "Class '%Ss' not found", VTABLE_get_repr(interp, name_key));return (opcode_t *)dest; } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -26615,6 +26914,7 @@ Parrot_new_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { EXCEPTION_NO_CLASS, "Class '%Ss' not found", VTABLE_get_repr(interp, name_key));return (opcode_t *)dest; } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -26648,6 +26948,7 @@ Parrot_new_p_pc_ic(opcode_t *cur_opcode, PARROT_INTERP) { EXCEPTION_NO_CLASS, "Class '%Ss' not found", VTABLE_get_repr(interp, name_key));return (opcode_t *)dest; } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -26683,6 +26984,7 @@ Parrot_root_new_p_p_i(opcode_t *cur_opcode, PARROT_INTERP) { EXCEPTION_NO_CLASS, "Class '%Ss' not found", VTABLE_get_repr(interp, name_key));return (opcode_t *)dest; } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -26718,6 +27020,7 @@ Parrot_root_new_p_pc_i(opcode_t *cur_opcode, PARROT_INTERP) { EXCEPTION_NO_CLASS, "Class '%Ss' not found", VTABLE_get_repr(interp, name_key));return (opcode_t *)dest; } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -26753,6 +27056,7 @@ Parrot_root_new_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { EXCEPTION_NO_CLASS, "Class '%Ss' not found", VTABLE_get_repr(interp, name_key));return (opcode_t *)dest; } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } @@ -26788,6 +27092,7 @@ Parrot_root_new_p_pc_ic(opcode_t *cur_opcode, PARROT_INTERP) { EXCEPTION_NO_CLASS, "Class '%Ss' not found", VTABLE_get_repr(interp, name_key));return (opcode_t *)dest; } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); return (opcode_t *)cur_opcode + 4; } From af2e687c43c18c2c0a503ad3cfc8c48290c1d504 Mon Sep 17 00:00:00 2001 From: Vasily Chekalkin Date: Tue, 15 Feb 2011 19:13:23 +1100 Subject: [PATCH 13/17] Add accessors to PoolAllocator memory boundaries --- src/gc/fixed_allocator.c | 21 +++++++++++++++++++++ src/gc/fixed_allocator.h | 12 ++++++++++++ 2 files changed, 33 insertions(+) diff --git a/src/gc/fixed_allocator.c b/src/gc/fixed_allocator.c index 5e50c1e2ab..c2a473a130 100644 --- a/src/gc/fixed_allocator.c +++ b/src/gc/fixed_allocator.c @@ -269,6 +269,12 @@ check that pointer is probably owned by pool. Calculate size of memory allocated by pool. +=item C + +=item C + +Get low/high boundaries of allocated memory. + =back =cut @@ -367,6 +373,21 @@ Parrot_gc_pool_allocated_size(SHIM_INTERP, ARGIN(Pool_Allocator *pool)) return count * arena_size(pool); } +PARROT_CAN_RETURN_NULL +void* +Parrot_gc_pool_low_ptr(SHIM_INTERP, ARGIN(Pool_Allocator *pool)) +{ + ASSERT_ARGS(Parrot_gc_pool_low_ptr) + return pool->lo_arena_ptr; +} + +PARROT_CAN_RETURN_NULL +void* +Parrot_gc_pool_high_ptr(SHIM_INTERP, ARGIN(Pool_Allocator *pool)) +{ + ASSERT_ARGS(Parrot_gc_pool_high_ptr) + return pool->hi_arena_ptr; +} /* diff --git a/src/gc/fixed_allocator.h b/src/gc/fixed_allocator.h index 43f95476fa..e8a01f62b0 100644 --- a/src/gc/fixed_allocator.h +++ b/src/gc/fixed_allocator.h @@ -134,6 +134,14 @@ int Parrot_gc_pool_is_owned(SHIM_INTERP, FUNC_MODIFIES(*pool) FUNC_MODIFIES(*ptr); +PARROT_CAN_RETURN_NULL +void* Parrot_gc_pool_high_ptr(SHIM_INTERP, ARGIN(Pool_Allocator *pool)) + __attribute__nonnull__(2); + +PARROT_CAN_RETURN_NULL +void* Parrot_gc_pool_low_ptr(SHIM_INTERP, ARGIN(Pool_Allocator *pool)) + __attribute__nonnull__(2); + PARROT_CANNOT_RETURN_NULL PARROT_MALLOC Pool_Allocator * Parrot_gc_pool_new(SHIM_INTERP, size_t object_size); @@ -173,6 +181,10 @@ Pool_Allocator * Parrot_gc_pool_new(SHIM_INTERP, size_t object_size); #define ASSERT_ARGS_Parrot_gc_pool_is_owned __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ PARROT_ASSERT_ARG(pool) \ , PARROT_ASSERT_ARG(ptr)) +#define ASSERT_ARGS_Parrot_gc_pool_high_ptr __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ + PARROT_ASSERT_ARG(pool)) +#define ASSERT_ARGS_Parrot_gc_pool_low_ptr __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ + PARROT_ASSERT_ARG(pool)) #define ASSERT_ARGS_Parrot_gc_pool_new __attribute__unused__ int _ASSERT_ARGS_CHECK = (0) /* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */ /* HEADERIZER END: src/gc/fixed_allocator.c */ From 8862fbb113c71b575c18af6dec33a56b5542cce6 Mon Sep 17 00:00:00 2001 From: Vasily Chekalkin Date: Tue, 15 Feb 2011 19:18:20 +1100 Subject: [PATCH 14/17] Add accessors to get memory boundaries from GC Subsystem. --- src/gc/gc_private.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/gc/gc_private.h b/src/gc/gc_private.h index 4ef4e1d25b..7e08da9759 100644 --- a/src/gc/gc_private.h +++ b/src/gc/gc_private.h @@ -186,6 +186,12 @@ typedef struct GC_Subsystem { /* Return by value to simplify memory management */ size_t (*get_gc_info)(PARROT_INTERP, Interpinfo_enum); + /* Get boundaries of allocated memory. Used during scanning of C stack */ + void* (*get_low_str_ptr)(PARROT_INTERP); + void* (*get_high_str_ptr)(PARROT_INTERP); + void* (*get_low_pmc_ptr)(PARROT_INTERP); + void* (*get_high_pmc_ptr)(PARROT_INTERP); + /* Iterate over _live_ strings. Used for string pool compacting */ void (*iterate_live_strings)(PARROT_INTERP, string_iterator_callback callback, void *data); From 8801f0c0e75cc2dc258b985fde343c2553a2d57d Mon Sep 17 00:00:00 2001 From: Vasily Chekalkin Date: Tue, 15 Feb 2011 19:20:06 +1100 Subject: [PATCH 15/17] Pass interp to boundaries-getting functions --- src/gc/system.c | 60 +++++++++++++++++++++++++++++-------------------- 1 file changed, 36 insertions(+), 24 deletions(-) diff --git a/src/gc/system.c b/src/gc/system.c index 907d7dc22c..c8b74fc300 100644 --- a/src/gc/system.c +++ b/src/gc/system.c @@ -38,20 +38,24 @@ static size_t find_common_mask(PARROT_INTERP, size_t val1, size_t val2) __attribute__nonnull__(1); PARROT_WARN_UNUSED_RESULT -static size_t get_max_buffer_address( - ARGIN_NULLOK(const Memory_Pools *mem_pools)); +static size_t get_max_buffer_address(PARROT_INTERP, + ARGIN_NULLOK(const Memory_Pools *mem_pools)) + __attribute__nonnull__(1); PARROT_WARN_UNUSED_RESULT -static size_t get_max_pmc_address( - ARGIN_NULLOK(const Memory_Pools *mem_pools)); +static size_t get_max_pmc_address(PARROT_INTERP, + ARGIN_NULLOK(const Memory_Pools *mem_pools)) + __attribute__nonnull__(1); PARROT_WARN_UNUSED_RESULT -static size_t get_min_buffer_address( - ARGIN_NULLOK(const Memory_Pools *mem_pools)); +static size_t get_min_buffer_address(PARROT_INTERP, + ARGIN_NULLOK(const Memory_Pools *mem_pools)) + __attribute__nonnull__(1); PARROT_WARN_UNUSED_RESULT -static size_t get_min_pmc_address( - ARGIN_NULLOK(const Memory_Pools *mem_pools)); +static size_t get_min_pmc_address(PARROT_INTERP, + ARGIN_NULLOK(const Memory_Pools *mem_pools)) + __attribute__nonnull__(1); PARROT_WARN_UNUSED_RESULT static int is_buffer_ptr( @@ -79,10 +83,14 @@ static void trace_system_stack(PARROT_INTERP, #define ASSERT_ARGS_find_common_mask __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ PARROT_ASSERT_ARG(interp)) -#define ASSERT_ARGS_get_max_buffer_address __attribute__unused__ int _ASSERT_ARGS_CHECK = (0) -#define ASSERT_ARGS_get_max_pmc_address __attribute__unused__ int _ASSERT_ARGS_CHECK = (0) -#define ASSERT_ARGS_get_min_buffer_address __attribute__unused__ int _ASSERT_ARGS_CHECK = (0) -#define ASSERT_ARGS_get_min_pmc_address __attribute__unused__ int _ASSERT_ARGS_CHECK = (0) +#define ASSERT_ARGS_get_max_buffer_address __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ + PARROT_ASSERT_ARG(interp)) +#define ASSERT_ARGS_get_max_pmc_address __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ + PARROT_ASSERT_ARG(interp)) +#define ASSERT_ARGS_get_min_buffer_address __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ + PARROT_ASSERT_ARG(interp)) +#define ASSERT_ARGS_get_min_pmc_address __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ + PARROT_ASSERT_ARG(interp)) #define ASSERT_ARGS_is_buffer_ptr __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ PARROT_ASSERT_ARG(ptr)) #define ASSERT_ARGS_is_pmc_ptr __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ @@ -249,7 +257,8 @@ trace_system_stack(PARROT_INTERP, ARGIN_NULLOK(const Memory_Pools *mem_pools)) /* -=item C +=item C Calculates the maximum buffer address and returns it. This is done by looping through all the sized pools, and finding the pool whose C @@ -263,7 +272,7 @@ list may not be located at the highest memory address. PARROT_WARN_UNUSED_RESULT static size_t -get_max_buffer_address(ARGIN_NULLOK(const Memory_Pools *mem_pools)) +get_max_buffer_address(PARROT_INTERP, ARGIN_NULLOK(const Memory_Pools *mem_pools)) { ASSERT_ARGS(get_max_buffer_address) size_t max = 0; @@ -285,7 +294,8 @@ get_max_buffer_address(ARGIN_NULLOK(const Memory_Pools *mem_pools)) /* -=item C +=item C Calculates the minimum buffer address and returns it. Loops through all sized pools, and finds the one with the smallest C field. Notice @@ -300,7 +310,7 @@ memory manager). PARROT_WARN_UNUSED_RESULT static size_t -get_min_buffer_address(ARGIN_NULLOK(const Memory_Pools *mem_pools)) +get_min_buffer_address(PARROT_INTERP, ARGIN_NULLOK(const Memory_Pools *mem_pools)) { ASSERT_ARGS(get_min_buffer_address) size_t min = (size_t) 0; @@ -323,7 +333,8 @@ get_min_buffer_address(ARGIN_NULLOK(const Memory_Pools *mem_pools)) /* -=item C +=item C Returns the maximum memory address used by the C. @@ -333,7 +344,7 @@ Returns the maximum memory address used by the C. PARROT_WARN_UNUSED_RESULT static size_t -get_max_pmc_address(ARGIN_NULLOK(const Memory_Pools *mem_pools)) +get_max_pmc_address(PARROT_INTERP, ARGIN_NULLOK(const Memory_Pools *mem_pools)) { ASSERT_ARGS(get_max_pmc_address) return mem_pools @@ -344,7 +355,8 @@ get_max_pmc_address(ARGIN_NULLOK(const Memory_Pools *mem_pools)) /* -=item C +=item C Returns the minimum memory address used by the C. Notice that the memory region between C and C may be @@ -356,7 +368,7 @@ fragmented, and not all of it may be used directly by Parrot for storing PMCs. PARROT_WARN_UNUSED_RESULT static size_t -get_min_pmc_address(ARGIN_NULLOK(const Memory_Pools *mem_pools)) +get_min_pmc_address(PARROT_INTERP, ARGIN_NULLOK(const Memory_Pools *mem_pools)) { ASSERT_ARGS(get_min_pmc_address) return mem_pools @@ -429,10 +441,10 @@ trace_mem_block(PARROT_INTERP, size_t prefix; ptrdiff_t cur_var_ptr; - const size_t buffer_min = get_min_buffer_address(mem_pools); - const size_t buffer_max = get_max_buffer_address(mem_pools); - const size_t pmc_min = get_min_pmc_address(mem_pools); - const size_t pmc_max = get_max_pmc_address(mem_pools); + const size_t buffer_min = get_min_buffer_address(interp, mem_pools); + const size_t buffer_max = get_max_buffer_address(interp, mem_pools); + const size_t pmc_min = get_min_pmc_address(interp, mem_pools); + const size_t pmc_max = get_max_pmc_address(interp, mem_pools); const size_t mask = find_common_mask(interp, From 199dfb390dcc68cac2234ab15339f5bb4fb80a89 Mon Sep 17 00:00:00 2001 From: Vasily Chekalkin Date: Tue, 15 Feb 2011 19:22:53 +1100 Subject: [PATCH 16/17] Integrate with GC_Sys to get memory boundaries. --- src/gc/system.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/gc/system.c b/src/gc/system.c index c8b74fc300..403ca2109c 100644 --- a/src/gc/system.c +++ b/src/gc/system.c @@ -278,9 +278,13 @@ get_max_buffer_address(PARROT_INTERP, ARGIN_NULLOK(const Memory_Pools *mem_pools size_t max = 0; UINTVAL i; + if (interp->gc_sys->get_high_str_ptr) + return interp->gc_sys->get_high_str_ptr(interp); + if (!mem_pools) return -1; + /* FIXME Remove this code. And Memory_Pools. And old GC MS. */ for (i = 0; i < mem_pools->num_sized; ++i) { if (mem_pools->sized_header_pools[i]) { if (mem_pools->sized_header_pools[i]->end_arena_memory > max) @@ -316,6 +320,9 @@ get_min_buffer_address(PARROT_INTERP, ARGIN_NULLOK(const Memory_Pools *mem_pools size_t min = (size_t) 0; UINTVAL i; + if (interp->gc_sys->get_low_str_ptr) + return interp->gc_sys->get_low_str_ptr(interp); + if (!mem_pools) return 0; @@ -347,6 +354,10 @@ static size_t get_max_pmc_address(PARROT_INTERP, ARGIN_NULLOK(const Memory_Pools *mem_pools)) { ASSERT_ARGS(get_max_pmc_address) + + if (interp->gc_sys->get_high_pmc_ptr) + return interp->gc_sys->get_high_pmc_ptr(interp); + return mem_pools ? mem_pools->pmc_pool->end_arena_memory : (size_t)-1; @@ -371,6 +382,10 @@ static size_t get_min_pmc_address(PARROT_INTERP, ARGIN_NULLOK(const Memory_Pools *mem_pools)) { ASSERT_ARGS(get_min_pmc_address) + + if (interp->gc_sys->get_low_pmc_ptr) + return interp->gc_sys->get_low_pmc_ptr(interp); + return mem_pools ? mem_pools->pmc_pool->start_arena_memory : 0; From a6bc49b0473d47aa078238a317921d6ff8343b8c Mon Sep 17 00:00:00 2001 From: Vasily Chekalkin Date: Tue, 15 Feb 2011 19:33:28 +1100 Subject: [PATCH 17/17] Expose memory boundaries from GMS --- src/gc/gc_gms.c | 80 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) diff --git a/src/gc/gc_gms.c b/src/gc/gc_gms.c index daadf32f8a..3e0e871388 100644 --- a/src/gc/gc_gms.c +++ b/src/gc/gc_gms.c @@ -305,6 +305,22 @@ static void gc_gms_free_string_header(PARROT_INTERP, ARGFREE(STRING *s)) static size_t gc_gms_get_gc_info(PARROT_INTERP, Interpinfo_enum which) __attribute__nonnull__(1); +PARROT_CAN_RETURN_NULL +static void * gc_gms_get_high_pmc_ptr(PARROT_INTERP) + __attribute__nonnull__(1); + +PARROT_CAN_RETURN_NULL +static void * gc_gms_get_high_str_ptr(PARROT_INTERP) + __attribute__nonnull__(1); + +PARROT_CAN_RETURN_NULL +static void * gc_gms_get_low_pmc_ptr(PARROT_INTERP) + __attribute__nonnull__(1); + +PARROT_CAN_RETURN_NULL +static void * gc_gms_get_low_str_ptr(PARROT_INTERP) + __attribute__nonnull__(1); + static unsigned int gc_gms_is_blocked_GC_mark(PARROT_INTERP) __attribute__nonnull__(1); @@ -504,6 +520,14 @@ static int pobj2gen(ARGIN(PObj *pmc)) PARROT_ASSERT_ARG(interp)) #define ASSERT_ARGS_gc_gms_get_gc_info __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ PARROT_ASSERT_ARG(interp)) +#define ASSERT_ARGS_gc_gms_get_high_pmc_ptr __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ + PARROT_ASSERT_ARG(interp)) +#define ASSERT_ARGS_gc_gms_get_high_str_ptr __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ + PARROT_ASSERT_ARG(interp)) +#define ASSERT_ARGS_gc_gms_get_low_pmc_ptr __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ + PARROT_ASSERT_ARG(interp)) +#define ASSERT_ARGS_gc_gms_get_low_str_ptr __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ + PARROT_ASSERT_ARG(interp)) #define ASSERT_ARGS_gc_gms_is_blocked_GC_mark __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ PARROT_ASSERT_ARG(interp)) #define ASSERT_ARGS_gc_gms_is_blocked_GC_sweep __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ @@ -688,6 +712,11 @@ Parrot_gc_gms_init(PARROT_INTERP, ARGIN(Parrot_GC_Init_Args *args)) = gc_gms_reallocate_memory_chunk_zeroed; interp->gc_sys->free_memory_chunk = gc_gms_free_memory_chunk; + interp->gc_sys->get_low_str_ptr = gc_gms_get_low_str_ptr; + interp->gc_sys->get_high_str_ptr = gc_gms_get_high_str_ptr; + interp->gc_sys->get_low_pmc_ptr = gc_gms_get_low_pmc_ptr; + interp->gc_sys->get_high_pmc_ptr = gc_gms_get_high_pmc_ptr; + interp->gc_sys->iterate_live_strings = gc_gms_iterate_live_strings; interp->gc_sys->write_barrier = gc_gms_write_barrier; @@ -1951,6 +1980,57 @@ gc_gms_write_barrier(PARROT_INTERP, ARGIN(PMC *pmc)) gc_gms_unseal_object(interp, pmc); } +/* + +=item C + +=item C + +=item C + +=item C + +Get memory boudaries. + +*/ + +PARROT_CAN_RETURN_NULL +static void * +gc_gms_get_low_str_ptr(PARROT_INTERP) +{ + ASSERT_ARGS(gc_gms_get_low_str_ptr) + MarkSweep_GC *self = (MarkSweep_GC *)interp->gc_sys->gc_private; + return Parrot_gc_pool_low_ptr(interp, self->string_allocator); +} + +PARROT_CAN_RETURN_NULL +static void * +gc_gms_get_high_str_ptr(PARROT_INTERP) +{ + ASSERT_ARGS(gc_gms_get_high_str_ptr) + MarkSweep_GC *self = (MarkSweep_GC *)interp->gc_sys->gc_private; + return Parrot_gc_pool_high_ptr(interp, self->string_allocator); +} + +PARROT_CAN_RETURN_NULL +static void * +gc_gms_get_low_pmc_ptr(PARROT_INTERP) +{ + ASSERT_ARGS(gc_gms_get_low_pmc_ptr) + MarkSweep_GC *self = (MarkSweep_GC *)interp->gc_sys->gc_private; + return Parrot_gc_pool_low_ptr(interp, self->pmc_allocator); +} + +PARROT_CAN_RETURN_NULL +static void * +gc_gms_get_high_pmc_ptr(PARROT_INTERP) +{ + ASSERT_ARGS(gc_gms_get_high_pmc_ptr) + MarkSweep_GC *self = (MarkSweep_GC *)interp->gc_sys->gc_private; + return Parrot_gc_pool_high_ptr(interp, self->pmc_allocator); +} + + /* =item C