diff --git a/compilers/opsc/src/Ops/Compiler/Actions.pm b/compilers/opsc/src/Ops/Compiler/Actions.pm index fe3a1f3fb1..402e525624 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/compilers/opsc/src/Ops/Op.pm b/compilers/opsc/src/Ops/Op.pm index bff8eaf3bf..fd5472280b 100644 --- a/compilers/opsc/src/Ops/Op.pm +++ b/compilers/opsc/src/Ops/Op.pm @@ -126,6 +126,17 @@ method name($name?) { self.attr('name', $name, defined($name)) } method args($args?) { self.attr('args', $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'); + return $need if $need; + } + $need; +} + method arg_types($args?) { my $res := self.attr('arg_types', $args, defined($args)); diff --git a/include/parrot/context.h b/include/parrot/context.h index b75fdbaa2f..16bac7e843 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)) @@ -442,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) @@ -455,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)) @@ -469,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)]) @@ -504,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)) @@ -516,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)) @@ -531,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)) @@ -565,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 */ diff --git a/src/call/context_accessors.c b/src/call/context_accessors.c index 916d604d07..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; @@ -523,7 +522,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; } 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 */ 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 +=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,15 +272,19 @@ 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; 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) @@ -285,7 +298,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,12 +314,15 @@ 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; UINTVAL i; + if (interp->gc_sys->get_low_str_ptr) + return interp->gc_sys->get_low_str_ptr(interp); + if (!mem_pools) return 0; @@ -323,7 +340,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,9 +351,13 @@ 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) + + 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; @@ -344,7 +366,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,9 +379,13 @@ 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) + + 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; @@ -429,10 +456,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, diff --git a/src/ops/core_ops.c b/src/ops/core_ops.c index 157a2db7d0..74ebd64200 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,17 @@ 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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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 +15425,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 +15437,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 +15452,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 +15487,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 +15513,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 +15530,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 +15591,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 +15781,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 +15821,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 +15886,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,107 +15895,126 @@ 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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * 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;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * 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;} +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 +16024,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 +16035,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 +16057,110 @@ 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); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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) { @@ -16113,8 +16188,10 @@ 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;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_dlfunc_p_p_sc_s(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16142,8 +16219,10 @@ 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;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_dlfunc_p_p_s_sc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16171,8 +16250,10 @@ 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;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_dlfunc_p_p_sc_sc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16200,8 +16281,10 @@ 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;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_dlvar_p_p_s(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16229,8 +16312,10 @@ 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;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_dlvar_p_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16258,8 +16343,10 @@ 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;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_compreg_s_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16268,7 +16355,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 +16365,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) { @@ -16285,8 +16374,10 @@ 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;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_compreg_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16294,22 +16385,28 @@ 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;} +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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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 +16419,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) { @@ -16336,8 +16435,10 @@ 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;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_annotations_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -16350,113 +16451,130 @@ 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;} +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 +16582,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 +16591,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 +16600,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 +16609,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 +16618,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 +16628,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 +16638,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 +16711,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 +16720,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 +16729,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 +16738,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 +16747,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 +16756,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 +16765,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 +16774,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 +16783,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 +16792,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 +16807,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 +16822,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 +16837,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 +16852,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 +16861,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 +16870,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 +16879,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 +16888,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 +16897,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 +16906,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 +16915,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 +16924,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 +16933,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 +16942,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 +16951,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 +16960,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 +16969,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 +16978,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 +16987,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 +16996,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 +17005,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 +17014,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 +17023,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 +17038,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 +17053,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 +17062,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 +17071,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 +17080,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 +17089,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 +17098,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 +17107,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 +17116,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 +17125,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 +17134,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 +17143,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 +17152,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 +17161,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 +17170,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 +17179,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 +17188,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 +17197,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 +17206,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 +17215,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 +17224,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 +17233,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 +17242,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 +17257,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 +17272,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 +17281,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 +17290,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 +17299,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 +17308,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 +17317,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 +17326,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 +17335,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 +17344,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 +17353,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 +17362,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 +17371,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 +17380,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 +17389,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 +17398,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 +17407,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 +17416,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 +17431,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 +17446,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 +17455,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 +17464,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 +17473,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 +17482,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 +17491,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 +17500,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 +17509,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 +17524,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 +17539,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 +17548,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 +17557,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 +17566,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 +17575,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 +17584,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 +17593,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 +17602,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 +17617,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 +17632,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 +17641,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 +17650,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 +17659,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 +17668,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 +17677,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 +17686,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 +17695,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 +17704,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 +17713,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 +17722,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 +17732,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 +17742,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 +17752,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 +17762,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 +17772,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 +17782,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 +17825,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 +17836,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 +17847,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 +17858,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 +17867,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 +17876,33 @@ 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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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 +17912,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 +17955,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 +18294,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 +18377,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) { @@ -18121,57 +18443,66 @@ 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;} +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 +18519,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 +18553,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 +18571,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 +18581,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 +18591,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 +18602,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 +18636,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 +18654,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 +18665,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 +18676,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 +18696,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 +18707,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 +18718,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 +18729,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 +18740,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 +18750,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 +18760,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 +18771,268 @@ 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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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 +19045,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 +19059,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 +19073,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 +19087,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 +19141,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 +19155,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 +19169,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 +19183,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 +19197,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 +19211,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 +19225,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 +19239,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 +19297,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 +19315,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 +19329,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 +19343,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 +19401,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 +19419,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 +19437,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 +19451,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 +19465,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 +19479,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 +19536,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 +19561,577 @@ 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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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 +20372,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) { @@ -19949,8 +20469,10 @@ 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;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_newclass_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -19958,22 +20480,28 @@ 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;} +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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -return (opcode_t *)cur_opcode + 3;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_subclass_p_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -19988,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 * @@ -20003,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 * @@ -20018,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 * @@ -20033,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 * @@ -20048,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 * @@ -20063,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 * @@ -20078,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 * @@ -20093,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 * @@ -20108,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 * @@ -20123,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 * @@ -20139,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 * @@ -20155,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 * @@ -20171,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 * @@ -20187,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 * @@ -20203,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 * @@ -20219,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 * @@ -20235,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 * @@ -20251,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 * @@ -20267,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 * @@ -20283,217 +20830,265 @@ 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;} +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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_new_p_s(opcode_t *cur_opcode, PARROT_INTERP) { @@ -20514,8 +21109,10 @@ 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;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_new_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -20536,8 +21133,10 @@ 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;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_new_p_s_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -20558,8 +21157,10 @@ 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;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_new_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -20580,8 +21181,10 @@ 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;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_new_p_s_pc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -20602,8 +21205,10 @@ 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;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_new_p_sc_pc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -20624,8 +21229,10 @@ 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;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_new_p_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -20644,8 +21251,10 @@ 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;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_new_p_pc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -20664,8 +21273,10 @@ 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;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_new_p_p_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -20684,8 +21295,10 @@ 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;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_new_p_pc_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -20704,8 +21317,10 @@ 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;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_new_p_p_pc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -20724,8 +21339,10 @@ 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;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_new_p_pc_pc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -20744,8 +21361,10 @@ 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;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_root_new_p_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -20764,8 +21383,10 @@ 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;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_root_new_p_pc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -20784,8 +21405,10 @@ 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;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_root_new_p_p_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -20804,8 +21427,10 @@ 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;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_root_new_p_pc_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -20824,8 +21449,10 @@ 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;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_root_new_p_p_pc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -20844,8 +21471,10 @@ 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;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_root_new_p_pc_pc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -20864,29 +21493,37 @@ 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;} +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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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) { @@ -20899,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 * @@ -20912,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 * @@ -20919,483 +21558,573 @@ 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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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) { @@ -21404,8 +22133,10 @@ 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;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_clone_s_sc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -21414,617 +22145,729 @@ 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;} +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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -return (opcode_t *)cur_opcode + 4;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_copy_p_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -22064,185 +22907,223 @@ Parrot_copy_p_p(opcode_t *cur_opcode, PARROT_INTERP) { } } } + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(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) { 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;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * 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;} +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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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) { @@ -22253,8 +23134,10 @@ 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;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_repeat_s_sc_i(opcode_t *cur_opcode, PARROT_INTERP) { @@ -22265,8 +23148,10 @@ 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;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_repeat_s_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -22277,8 +23162,10 @@ 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;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_repeat_s_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -22289,8 +23176,10 @@ 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;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_repeat_p_p_i(opcode_t *cur_opcode, PARROT_INTERP) { @@ -22302,7 +23191,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 +23204,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,425 +23217,525 @@ 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) { 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;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * 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;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * 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;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * 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;} +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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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) { 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;} +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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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 +23771,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 +23808,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 +23845,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 +23882,150 @@ 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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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 +24038,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 +24052,391 @@ 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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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)); + PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp)); -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 +24452,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 +24469,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 +24510,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) { @@ -23432,8 +24521,10 @@ 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;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_err_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -23441,22 +24532,26 @@ 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;} +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 +24615,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 +24632,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 +24653,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 +24674,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) { @@ -23590,8 +24689,10 @@ 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;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_find_lex_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -23605,8 +24706,10 @@ 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;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_find_dynamic_lex_p_s(opcode_t *cur_opcode, PARROT_INTERP) { @@ -23623,8 +24726,10 @@ 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;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_find_dynamic_lex_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -23641,8 +24746,10 @@ 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;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_find_caller_lex_p_s(opcode_t *cur_opcode, PARROT_INTERP) { @@ -23662,8 +24769,10 @@ 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;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_find_caller_lex_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -23683,16 +24792,20 @@ 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;} +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) { @@ -23701,8 +24814,10 @@ 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;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_get_namespace_p_pc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -23711,16 +24826,20 @@ 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;} +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) { @@ -23732,8 +24851,10 @@ 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;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_get_hll_namespace_p_pc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -23745,16 +24866,20 @@ 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;} +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) { @@ -23766,8 +24891,10 @@ 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;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_get_root_namespace_p_pc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -23779,24 +24906,30 @@ 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;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * 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;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * 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;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_get_global_p_p_s(opcode_t *cur_opcode, PARROT_INTERP) { @@ -23812,8 +24945,10 @@ 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;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_get_global_p_pc_s(opcode_t *cur_opcode, PARROT_INTERP) { @@ -23829,8 +24964,10 @@ 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;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_get_global_p_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -23846,8 +24983,10 @@ 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;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_get_global_p_pc_sc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -23863,24 +25002,30 @@ 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;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * 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;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * 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;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_get_hll_global_p_p_s(opcode_t *cur_opcode, PARROT_INTERP) { @@ -23896,8 +25041,10 @@ 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;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_get_hll_global_p_pc_s(opcode_t *cur_opcode, PARROT_INTERP) { @@ -23913,8 +25060,10 @@ 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;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_get_hll_global_p_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -23930,8 +25079,10 @@ 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;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_get_hll_global_p_pc_sc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -23947,24 +25098,30 @@ 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;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * 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;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * 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;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_get_root_global_p_p_s(opcode_t *cur_opcode, PARROT_INTERP) { @@ -23979,8 +25136,10 @@ 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;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_get_root_global_p_pc_s(opcode_t *cur_opcode, PARROT_INTERP) { @@ -23995,8 +25154,10 @@ 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;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_get_root_global_p_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24011,8 +25172,10 @@ 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;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_get_root_global_p_pc_sc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24027,8 +25190,10 @@ 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;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_set_global_s_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24036,7 +25201,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 +25210,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 +25221,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 +25232,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 +25243,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 +25254,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 +25263,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 +25272,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 +25283,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 +25294,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 +25305,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 +25316,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 +25325,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 +25334,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 +25345,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 +25356,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 +25367,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 +25378,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) { @@ -24208,8 +25391,10 @@ 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;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_find_name_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24221,8 +25406,10 @@ 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;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_find_sub_not_null_p_s(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24239,8 +25426,10 @@ 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;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_find_sub_not_null_p_sc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24257,8 +25446,10 @@ 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;} +return (opcode_t *)cur_opcode + 3; +} opcode_t * Parrot_trap(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24270,14 +25461,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 +25478,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) { @@ -24306,8 +25500,10 @@ 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;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_fetch_p_pc_p_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24328,8 +25524,10 @@ 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;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_fetch_p_p_pc_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24350,8 +25548,10 @@ 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;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_fetch_p_pc_pc_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24372,8 +25572,10 @@ 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;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_fetch_p_p_p_pc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24394,8 +25596,10 @@ 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;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_fetch_p_pc_p_pc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24416,8 +25620,10 @@ 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;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_fetch_p_p_pc_pc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24438,8 +25644,10 @@ 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;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_fetch_p_pc_pc_pc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24460,8 +25668,10 @@ 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;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_fetch_p_p_i_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24482,8 +25692,10 @@ 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;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_fetch_p_pc_i_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24504,8 +25716,10 @@ 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;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_fetch_p_p_ic_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24526,8 +25740,10 @@ 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;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_fetch_p_pc_ic_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24548,8 +25764,10 @@ 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;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_fetch_p_p_i_pc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24570,8 +25788,10 @@ 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;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_fetch_p_pc_i_pc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24592,8 +25812,10 @@ 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;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_fetch_p_p_ic_pc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24614,8 +25836,10 @@ 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;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_fetch_p_pc_ic_pc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24636,8 +25860,10 @@ 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;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_fetch_p_p_s_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24658,8 +25884,10 @@ 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;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_fetch_p_pc_s_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24680,8 +25908,10 @@ 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;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_fetch_p_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24702,8 +25932,10 @@ 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;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_fetch_p_pc_sc_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24724,8 +25956,10 @@ 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;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_fetch_p_p_s_pc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24746,8 +25980,10 @@ 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;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_fetch_p_pc_s_pc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24768,8 +26004,10 @@ 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;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_fetch_p_p_sc_pc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24790,8 +26028,10 @@ 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;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_fetch_p_pc_sc_pc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24812,8 +26052,10 @@ 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;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_vivify_p_p_p_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24837,8 +26079,10 @@ 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;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_vivify_p_pc_p_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24862,8 +26106,10 @@ 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;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_vivify_p_p_pc_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24887,8 +26133,10 @@ 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;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_vivify_p_pc_pc_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24912,8 +26160,10 @@ 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;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_vivify_p_p_p_pc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24937,8 +26187,10 @@ 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;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_vivify_p_pc_p_pc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24962,8 +26214,10 @@ 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;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_vivify_p_p_pc_pc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -24987,8 +26241,10 @@ 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;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_vivify_p_pc_pc_pc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -25012,8 +26268,10 @@ 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;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_vivify_p_p_i_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -25037,8 +26295,10 @@ 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;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_vivify_p_pc_i_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -25062,8 +26322,10 @@ 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;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_vivify_p_p_ic_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -25087,8 +26349,10 @@ 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;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_vivify_p_pc_ic_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -25112,8 +26376,10 @@ 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;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_vivify_p_p_i_pc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -25137,8 +26403,10 @@ 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;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_vivify_p_pc_i_pc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -25162,8 +26430,10 @@ 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;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_vivify_p_p_ic_pc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -25187,8 +26457,10 @@ 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;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_vivify_p_pc_ic_pc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -25212,8 +26484,10 @@ 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;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_vivify_p_p_s_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -25237,8 +26511,10 @@ 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;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_vivify_p_pc_s_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -25262,8 +26538,10 @@ 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;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_vivify_p_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -25287,8 +26565,10 @@ 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;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_vivify_p_pc_sc_p(opcode_t *cur_opcode, PARROT_INTERP) { @@ -25312,8 +26592,10 @@ 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;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_vivify_p_p_s_pc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -25337,8 +26619,10 @@ 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;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_vivify_p_pc_s_pc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -25362,8 +26646,10 @@ 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;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_vivify_p_p_sc_pc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -25387,8 +26673,10 @@ 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;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_vivify_p_pc_sc_pc(opcode_t *cur_opcode, PARROT_INTERP) { @@ -25412,8 +26700,10 @@ 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;} +return (opcode_t *)cur_opcode + 5; +} opcode_t * Parrot_new_p_s_i(opcode_t *cur_opcode, PARROT_INTERP) { @@ -25438,8 +26728,10 @@ 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;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_new_p_sc_i(opcode_t *cur_opcode, PARROT_INTERP) { @@ -25464,8 +26756,10 @@ 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;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_new_p_s_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -25490,8 +26784,10 @@ 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;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_new_p_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -25516,8 +26812,10 @@ 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;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_new_p_p_i(opcode_t *cur_opcode, PARROT_INTERP) { @@ -25548,8 +26846,10 @@ 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;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_new_p_pc_i(opcode_t *cur_opcode, PARROT_INTERP) { @@ -25580,8 +26880,10 @@ 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;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_new_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -25612,8 +26914,10 @@ 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;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_new_p_pc_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -25644,8 +26948,10 @@ 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;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_root_new_p_p_i(opcode_t *cur_opcode, PARROT_INTERP) { @@ -25678,8 +26984,10 @@ 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;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_root_new_p_pc_i(opcode_t *cur_opcode, PARROT_INTERP) { @@ -25712,8 +27020,10 @@ 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;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_root_new_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -25746,8 +27056,10 @@ 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;} +return (opcode_t *)cur_opcode + 4; +} opcode_t * Parrot_root_new_p_pc_ic(opcode_t *cur_opcode, PARROT_INTERP) { @@ -25780,8 +27092,10 @@ 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;} +return (opcode_t *)cur_opcode + 4; +} /* diff --git a/t/compilers/opsc/03-past.t b/t/compilers/opsc/03-past.t index dcaee7da57..80a635bc75 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(out PMC, in INT) { + 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, 6, 'We have 6 ops'); my $op := @ops[1]; ok($op.name == 'foo', "Name parsed"); @@ -98,6 +107,19 @@ 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"); +$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"); + +done_testing(); # Don't forget to update plan!