[svn:parrot] r48412 - in trunk: . compilers/data_json compilers/imcc compilers/opsc/src/Ops compilers/opsc/src/Ops/Trans compilers/pct compilers/pge compilers/tge config/auto/sizes config/auto/zlib config/gen/config_h docs/book/draft docs/book/pct docs/dev docs/pdds examples/embed examples/languages/abc examples/languages/squaak examples/pge ext/nqp-rx ext/nqp-rx/src/stage0 include/parrot lib/Parrot lib/Parrot/Configure/Step ports/cygwin ports/debian runtime/parrot/languages runtime/parrot/library runtime/parrot/library/Math src src/call src/gc src/interp src/ops src/pmc src/runcore t/codingstd t/compilers/tge t/examples t/native_pbc t/oo t/pmc t/src t/steps/init/hints tools/build tools/dev tools/util

plobsing at svn.parrot.org plobsing at svn.parrot.org
Wed Aug 11 05:38:20 UTC 2010


Author: plobsing
Date: Wed Aug 11 05:38:18 2010
New Revision: 48412
URL: https://trac.parrot.org/parrot/changeset/48412

Log:
merge dynop_mapping branch

Modified:
   trunk/   (props changed)
   trunk/compilers/data_json/Rules.mak   (props changed)
   trunk/compilers/imcc/Rules.in   (props changed)
   trunk/compilers/imcc/cfg.c
   trunk/compilers/imcc/imc.c
   trunk/compilers/imcc/instructions.c
   trunk/compilers/imcc/optimizer.c
   trunk/compilers/imcc/pbc.c
   trunk/compilers/imcc/pcc.c
   trunk/compilers/imcc/symreg.c
   trunk/compilers/imcc/unit.h
   trunk/compilers/opsc/src/Ops/Emitter.pm
   trunk/compilers/opsc/src/Ops/Trans/C.pm
   trunk/compilers/pct/Rules.mak   (props changed)
   trunk/compilers/pge/Rules.mak   (props changed)
   trunk/compilers/tge/Rules.mak   (props changed)
   trunk/config/auto/sizes/intval_maxmin_c.in   (props changed)
   trunk/config/auto/zlib/   (props changed)
   trunk/config/gen/config_h/config_h.in
   trunk/docs/book/draft/README   (props changed)
   trunk/docs/book/draft/appa_glossary.pod   (props changed)
   trunk/docs/book/draft/appb_patch_submission.pod   (props changed)
   trunk/docs/book/draft/appc_command_line_options.pod   (props changed)
   trunk/docs/book/draft/appd_build_options.pod   (props changed)
   trunk/docs/book/draft/appe_source_code.pod   (props changed)
   trunk/docs/book/draft/ch01_introduction.pod   (props changed)
   trunk/docs/book/draft/ch02_getting_started.pod   (props changed)
   trunk/docs/book/draft/ch07_dynpmcs.pod   (props changed)
   trunk/docs/book/draft/ch08_dynops.pod   (props changed)
   trunk/docs/book/draft/ch10_opcode_reference.pod   (props changed)
   trunk/docs/book/draft/ch11_directive_reference.pod   (props changed)
   trunk/docs/book/draft/ch12_operator_reference.pod   (props changed)
   trunk/docs/book/draft/chXX_hlls.pod   (props changed)
   trunk/docs/book/draft/chXX_library.pod   (props changed)
   trunk/docs/book/draft/chXX_testing_and_debugging.pod   (props changed)
   trunk/docs/book/pct/ch01_introduction.pod   (props changed)
   trunk/docs/book/pct/ch02_getting_started.pod   (props changed)
   trunk/docs/book/pct/ch03_compiler_tools.pod   (props changed)
   trunk/docs/book/pct/ch04_pge.pod   (props changed)
   trunk/docs/book/pct/ch05_nqp.pod   (props changed)
   trunk/docs/dev/c_functions.pod   (props changed)
   trunk/docs/pdds/pdd30_install.pod   (props changed)
   trunk/examples/embed/cotorra.c   (props changed)
   trunk/examples/languages/abc/   (props changed)
   trunk/examples/languages/squaak/   (props changed)
   trunk/examples/pge/demo.pir   (props changed)
   trunk/ext/nqp-rx/Rules.mak   (props changed)
   trunk/ext/nqp-rx/src/stage0/Regex-s0.pir
   trunk/include/parrot/call.h   (contents, props changed)
   trunk/include/parrot/gc_api.h   (props changed)
   trunk/include/parrot/op.h
   trunk/include/parrot/packfile.h
   trunk/include/parrot/runcore_api.h   (contents, props changed)
   trunk/include/parrot/runcore_profiling.h   (props changed)
   trunk/include/parrot/runcore_trace.h   (props changed)
   trunk/lib/Parrot/Configure/Step/Test.pm   (props changed)
   trunk/lib/Parrot/H2inc.pm   (props changed)
   trunk/ports/cygwin/parrot-1.0.0-1.cygport   (props changed)
   trunk/ports/debian/libparrot-dev.install.in   (props changed)
   trunk/ports/debian/libparrot.install.in   (props changed)
   trunk/ports/debian/parrot-doc.install.in   (props changed)
   trunk/ports/debian/parrot.install.in   (props changed)
   trunk/runtime/parrot/languages/   (props changed)
   trunk/runtime/parrot/library/Math/Rand.pir   (props changed)
   trunk/runtime/parrot/library/Rules.mak   (props changed)
   trunk/src/call/ops.c   (props changed)
   trunk/src/call/pcc.c   (props changed)
   trunk/src/debug.c
   trunk/src/embed.c
   trunk/src/gc/alloc_memory.c   (props changed)
   trunk/src/gc/alloc_resources.c   (props changed)
   trunk/src/gc/api.c   (props changed)
   trunk/src/gc/malloc.c   (props changed)
   trunk/src/gc/malloc_trace.c   (props changed)
   trunk/src/gc/mark_sweep.c   (props changed)
   trunk/src/gc/system.c   (props changed)
   trunk/src/interp/inter_cb.c   (props changed)
   trunk/src/interp/inter_create.c   (props changed)
   trunk/src/interp/inter_misc.c   (props changed)
   trunk/src/ops/core_ops.c
   trunk/src/packfile.c
   trunk/src/pbc_dump.c
   trunk/src/pbc_merge.c
   trunk/src/pmc/opcode.pmc
   trunk/src/pmc/oplib.pmc
   trunk/src/pmc/sub.pmc
   trunk/src/runcore/cores.c   (props changed)
   trunk/src/runcore/main.c   (contents, props changed)
   trunk/src/runcore/profiling.c   (contents, props changed)
   trunk/src/runcore/trace.c   (contents, props changed)
   trunk/src/sub.c
   trunk/t/codingstd/pmc_docs.t   (props changed)
   trunk/t/compilers/tge/NoneGrammar.tg   (props changed)
   trunk/t/examples/pir.t
   trunk/t/native_pbc/annotations.pbc
   trunk/t/native_pbc/integer.pbc
   trunk/t/native_pbc/integer_2.pbc
   trunk/t/native_pbc/number.pbc
   trunk/t/native_pbc/number_1.pbc
   trunk/t/native_pbc/number_2.pbc
   trunk/t/native_pbc/string.pbc
   trunk/t/native_pbc/string_1.pbc
   trunk/t/native_pbc/string_2.pbc
   trunk/t/oo/objects.t   (props changed)
   trunk/t/oo/root_new.t   (props changed)
   trunk/t/pmc/namespace-old.t   (props changed)
   trunk/t/pmc/oplib.t
   trunk/t/pmc/pmc.t
   trunk/t/src/embed.t   (props changed)
   trunk/t/steps/init/hints/linux-01.t   (props changed)
   trunk/tools/build/h2inc.pl   (props changed)
   trunk/tools/dev/fetch_languages.pl   (props changed)
   trunk/tools/dev/mk_gitignore.pl   (props changed)
   trunk/tools/util/perlcritic-cage.conf   (props changed)

Modified: trunk/compilers/imcc/cfg.c
==============================================================================
--- trunk/compilers/imcc/cfg.c	Wed Aug 11 04:51:55 2010	(r48411)
+++ trunk/compilers/imcc/cfg.c	Wed Aug 11 05:38:18 2010	(r48412)
@@ -463,7 +463,7 @@
     if (r && (r->type & VTADDRESS) && r->first_ins)
         bb_add_edge(interp, unit, from, unit->bb_list[r->first_ins->bbindex]);
     else {
-        IMCC_debug(interp, DEBUG_CFG, "register branch %I ", from->end);
+        IMCC_debug(interp, DEBUG_CFG, "register branch %d ", from->end);
         for (ins = from->end; ins; ins = ins->prev) {
             if ((ins->type & ITBRANCH)
             &&   STREQ(ins->opname, "set_addr")

Modified: trunk/compilers/imcc/imc.c
==============================================================================
--- trunk/compilers/imcc/imc.c	Wed Aug 11 04:51:55 2010	(r48411)
+++ trunk/compilers/imcc/imc.c	Wed Aug 11 05:38:18 2010	(r48412)
@@ -97,6 +97,7 @@
     }
 
     IMCC_INFO(interp)->imc_units = NULL;
+    IMCC_INFO(interp)->cur_unit  = NULL;
     IMCC_INFO(interp)->last_unit = NULL;
 }
 

Modified: trunk/compilers/imcc/instructions.c
==============================================================================
--- trunk/compilers/imcc/instructions.c	Wed Aug 11 04:51:55 2010	(r48411)
+++ trunk/compilers/imcc/instructions.c	Wed Aug 11 05:38:18 2010	(r48412)
@@ -826,7 +826,7 @@
         (emitters[emitter]).new_sub(interp, param, unit);
 
     for (ins = unit->instructions; ins; ins = ins->next) {
-        IMCC_debug(interp, DEBUG_IMC, "emit %I\n", ins);
+        IMCC_debug(interp, DEBUG_IMC, "emit %d\n", ins);
         (emitters[emitter]).emit(interp, param, unit, ins);
     }
 

Modified: trunk/compilers/imcc/optimizer.c
==============================================================================
--- trunk/compilers/imcc/optimizer.c	Wed Aug 11 04:51:55 2010	(r48411)
+++ trunk/compilers/imcc/optimizer.c	Wed Aug 11 05:38:18 2010	(r48412)
@@ -461,12 +461,12 @@
                 ins->opnum == PARROT_OP_mul_n_nc_n) &&
              (ins->symregs[0] == ins->symregs[1] ||
               ins->symregs[0] == ins->symregs[2]))) {
-            IMCC_debug(interp, DEBUG_OPT1, "opt1 %I => ", ins);
+            IMCC_debug(interp, DEBUG_OPT1, "opt1 %d => ", ins);
             if (ins->symregs[0] == ins->symregs[1]) {
                 ins->symregs[1] = ins->symregs[2];
             }
             tmp = INS(interp, unit, ins->opname, "", ins->symregs, 2, 0, 0);
-            IMCC_debug(interp, DEBUG_OPT1, "%I\n", tmp);
+            IMCC_debug(interp, DEBUG_OPT1, "%d\n", tmp);
             subst_ins(unit, ins, tmp, 1);
             ins = tmp;
             changes = 1;
@@ -497,7 +497,7 @@
                 ins->opnum == PARROT_OP_div_n_nc ||
                 ins->opnum == PARROT_OP_fdiv_n_nc) &&
                       atof(ins->symregs[1]->name) == 1.0)) {
-            IMCC_debug(interp, DEBUG_OPT1, "opt1 %I => ", ins);
+            IMCC_debug(interp, DEBUG_OPT1, "opt1 %d => ", ins);
             ins = delete_ins(unit, ins);
             if (ins)
                 ins = ins->prev ? ins->prev : unit->instructions;
@@ -519,7 +519,7 @@
           || ((ins->opnum == PARROT_OP_add_n_nc ||
                 ins->opnum == PARROT_OP_sub_n_nc) &&
                       atof(ins->symregs[1]->name) == 1.0)) {
-            IMCC_debug(interp, DEBUG_OPT1, "opt1 %I => ", ins);
+            IMCC_debug(interp, DEBUG_OPT1, "opt1 %d => ", ins);
             --ins->symregs[1]->use_count;
             if (ins->opnum == PARROT_OP_add_i_ic ||
                 ins->opnum == PARROT_OP_add_n_nc)
@@ -527,7 +527,7 @@
             else
                 tmp = INS(interp, unit, "dec", "", ins->symregs, 1, 0, 0);
             subst_ins(unit, ins, tmp, 1);
-            IMCC_debug(interp, DEBUG_OPT1, "%I\n", tmp);
+            IMCC_debug(interp, DEBUG_OPT1, "%d\n", tmp);
             ins = tmp;
             changes = 1;
             continue;
@@ -570,7 +570,7 @@
                       atof(ins->symregs[2]->name) == 1.0)
           || (ins->opnum == PARROT_OP_mul_n_nc_n &&
                       atof(ins->symregs[1]->name) == 1.0)) {
-            IMCC_debug(interp, DEBUG_OPT1, "opt1 %I => ", ins);
+            IMCC_debug(interp, DEBUG_OPT1, "opt1 %d => ", ins);
             if (ins->symregs[1]->type == VTCONST) {
                 --ins->symregs[1]->use_count;
                 ins->symregs[1] = ins->symregs[2];
@@ -579,7 +579,7 @@
                 --ins->symregs[2]->use_count;
             }
             tmp = INS(interp, unit, "set", "", ins->symregs, 2, 0, 0);
-            IMCC_debug(interp, DEBUG_OPT1, "%I\n", tmp);
+            IMCC_debug(interp, DEBUG_OPT1, "%d\n", tmp);
             subst_ins(unit, ins, tmp, 1);
             ins = tmp;
             changes = 1;
@@ -600,14 +600,14 @@
           || ((ins->opnum == PARROT_OP_mul_n_nc_n ||
                 ins->opnum == PARROT_OP_mul_n_nc) &&
                 (f = atof(ins->symregs[1]->name), FLOAT_IS_ZERO(f)))) {
-            IMCC_debug(interp, DEBUG_OPT1, "opt1 %I => ", ins);
+            IMCC_debug(interp, DEBUG_OPT1, "opt1 %d => ", ins);
             r = mk_const(interp, "0", ins->symregs[0]->set);
             --ins->symregs[1]->use_count;
             if (ins->opsize == 4)
                 --ins->symregs[2]->use_count;
             ins->symregs[1] = r;
             tmp = INS(interp, unit, "set", "", ins->symregs, 2, 0, 0);
-            IMCC_debug(interp, DEBUG_OPT1, "%I\n", tmp);
+            IMCC_debug(interp, DEBUG_OPT1, "%d\n", tmp);
             subst_ins(unit, ins, tmp, 1);
             ins = tmp;
             changes = 1;
@@ -621,11 +621,11 @@
           || (ins->opnum == PARROT_OP_set_n_nc &&
              (f = atof(ins->symregs[1]->name), FLOAT_IS_ZERO(f)) &&
               ins->symregs[1]->name[0] != '-')) {
-            IMCC_debug(interp, DEBUG_OPT1, "opt1 %I => ", ins);
+            IMCC_debug(interp, DEBUG_OPT1, "opt1 %d => ", ins);
             --ins->symregs[1]->use_count;
             tmp = INS(interp, unit, "null", "", ins->symregs, 1, 0, 0);
             subst_ins(unit, ins, tmp, 1);
-            IMCC_debug(interp, DEBUG_OPT1, "%I\n", tmp);
+            IMCC_debug(interp, DEBUG_OPT1, "%d\n", tmp);
             ins = tmp;
             changes = 1;
             continue;
@@ -677,7 +677,7 @@
             Instruction *ins2;
 
             IMCC_debug(interp, DEBUG_OPT2,
-                    "propagating constant %I => \n", ins);
+                    "propagating constant %d => \n", ins);
             for (ins2 = ins->next; ins2; ins2 = ins2->next) {
                 int i;
                 if (ins2->bbindex != ins->bbindex)
@@ -694,7 +694,7 @@
                             SymReg *old;
 
                             IMCC_debug(interp, DEBUG_OPT2,
-                                    "\tpropagating into %I register %i",
+                                    "\tpropagating into %d register %i",
                                     ins2, i);
                             old = ins2->symregs[i];
                             ins2->symregs[i] = c;
@@ -708,7 +708,7 @@
                                     subst_ins(unit, ins2, tmp, 1);
                                     any = 1;
                                     IMCC_debug(interp, DEBUG_OPT2,
-                                            " reduced to %I\n", tmp);
+                                            " reduced to %d\n", tmp);
                                     ins2 = prev->next;
                                 }
                             }
@@ -726,7 +726,7 @@
                                     ins2->opnum = op;
                                     any = 1;
                                     IMCC_debug(interp, DEBUG_OPT2,
-                                            " -> %I\n", ins2);
+                                            " -> %d\n", ins2);
                                 }
                             }
                         }
@@ -777,7 +777,7 @@
             strcpy(b, r[1]->name);
             r[1] = mk_const(interp, b, 'N');
             tmp = INS(interp, unit, name, "", r, 2, 0, 0);
-            IMCC_debug(interp, DEBUG_OPT1, "%I\n", tmp);
+            IMCC_debug(interp, DEBUG_OPT1, "%d\n", tmp);
         }
     }
     return tmp;
@@ -1067,7 +1067,7 @@
         tmp = INS(interp, unit, "set", "", r, 2, 0, 0);
     }
     if (tmp) {
-        IMCC_debug(interp, DEBUG_OPT1, "%I\n", tmp);
+        IMCC_debug(interp, DEBUG_OPT1, "%d\n", tmp);
     }
     *ok = 1;
     return tmp;
@@ -1116,7 +1116,7 @@
                         !STREQ(next->symregs[0]->name, get_branch_reg(ins)->name)) {
                     const int regno = get_branch_regno(ins);
                     IMCC_debug(interp, DEBUG_OPT1,
-                            "found branch to branch '%s' %I\n",
+                            "found branch to branch '%s' %d\n",
                             r->first_ins->symregs[0]->name, next);
                     unit->ostat.branch_branch++;
                     if (regno < 0)
@@ -1209,7 +1209,7 @@
                         start->prev = ins;
 
                         IMCC_debug(interp, DEBUG_OPT1,
-                                "found branch to reorganize '%s' %I\n",
+                                "found branch to reorganize '%s' %d\n",
                                 r->first_ins->symregs[0]->name, ins);
 
                         /* unconditional jump can be eliminated */
@@ -1507,7 +1507,7 @@
 
             for (ins = bb->start; ins && ins->bbindex == bbi;) {
                 IMCC_debug(interp, DEBUG_OPT1,
-                        "\tins deleted (dead block) %I\n", ins);
+                        "\tins deleted (dead block) %d\n", ins);
                 ins = delete_ins(unit, ins);
                 unit->ostat.deleted_ins++;
                 changed++;
@@ -1525,7 +1525,7 @@
         if ((last->type & IF_goto) && !(ins->type & ITLABEL) &&
             STREQ(last->opname, "branch")) {
             IMCC_debug(interp, DEBUG_OPT1,
-                    "unreachable ins deleted (after branch) %I\n", ins);
+                    "unreachable ins deleted (after branch) %d\n", ins);
             ins = delete_ins(unit, ins);
             unit->ostat.deleted_ins++;
             changed++;
@@ -1538,7 +1538,7 @@
         if (ins && last && (last->type & IF_goto) && (ins->type & ITLABEL) &&
                 STREQ(last->opname, "branch") &&
                 STREQ(last->symregs[0]->name, ins->symregs[0]->name)) {
-            IMCC_debug(interp, DEBUG_OPT1, "dead branch deleted %I\n", ins);
+            IMCC_debug(interp, DEBUG_OPT1, "dead branch deleted %d\n", ins);
             ins = delete_ins(unit, last);
             unit->ostat.deleted_ins++;
             changed++;
@@ -1572,7 +1572,7 @@
         if (ins->symregs) {
             SymReg * const r = ins->symregs[0];
             if (r && (r->use_count == 1 && r->lhs_use_count == 1)) {
-                IMCC_debug(interp, DEBUG_OPT2, "used once '%I' deleted\n", ins);
+                IMCC_debug(interp, DEBUG_OPT2, "used once '%d' deleted\n", ins);
                 ins = delete_ins(unit, ins);
 
                 /* find previous instruction or first instruction of this CU

Modified: trunk/compilers/imcc/pbc.c
==============================================================================
--- trunk/compilers/imcc/pbc.c	Wed Aug 11 04:51:55 2010	(r48411)
+++ trunk/compilers/imcc/pbc.c	Wed Aug 11 05:38:18 2010	(r48412)
@@ -666,7 +666,7 @@
             (*src_lines)++;
             if (ins->opnum < 0)
                 IMCC_fatal(interp, 1, "get_code_size: "
-                        "no opnum ins#%d %I\n",
+                        "no opnum ins#%d %d\n",
                         ins->index, ins);
 
             if (ins->opnum == PARROT_OP_set_p_pc) {
@@ -691,6 +691,85 @@
 
 /*
 
+=item C<opcode_t bytecode_map_op(PARROT_INTERP, opcode_t op)>
+
+Lookup the mapping of an op for the current bytecode segment or make one if
+none exists.
+
+=cut
+
+*/
+
+static
+opcode_t
+bytecode_map_op(PARROT_INTERP, opcode_t op) {
+    int i;
+    op_info_t         *info    = &interp->op_info_table[op];
+    op_lib_t          *lib     = info->lib;
+    op_func_t         op_func  = interp->op_func_table[op];
+    PackFile_ByteCode *bc      = interp->code;
+    PackFile_ByteCode_OpMappingEntry *om;
+
+    for (i = 0; i < bc->op_mapping.n_libs; i++) {
+        if (lib == bc->op_mapping.libs[i].lib) {
+            om = &bc->op_mapping.libs[i];
+            goto found_lib;
+        }
+    }
+
+    /* library not yet mapped */
+    bc->op_mapping.n_libs++;
+    bc->op_mapping.libs = mem_gc_realloc_n_typed_zeroed(interp, bc->op_mapping.libs,
+                            bc->op_mapping.n_libs, bc->op_mapping.n_libs - 1,
+                            PackFile_ByteCode_OpMappingEntry);
+
+    /* initialize a new lib entry */
+    om            = &bc->op_mapping.libs[bc->op_mapping.n_libs - 1];
+    om->lib       = lib;
+    om->n_ops     = 0;
+    om->lib_ops   = mem_gc_allocate_n_zeroed_typed(interp, 0, opcode_t);
+    om->table_ops = mem_gc_allocate_n_zeroed_typed(interp, 0, opcode_t);
+
+  found_lib:
+    for (i = 0; i < om->n_ops; i++) {
+        if (bc->op_func_table[om->table_ops[i]] == op_func)
+            return om->table_ops[i];
+    }
+
+    /* op not yet mapped */
+    bc->op_count++;
+    bc->op_func_table =
+        mem_gc_realloc_n_typed_zeroed(interp, bc->op_func_table, bc->op_count, bc->op_count,
+                                        op_func_t);
+    bc->op_func_table[bc->op_count - 1] = op_func;
+    bc->op_info_table =
+        mem_gc_realloc_n_typed_zeroed(interp, bc->op_info_table, bc->op_count, bc->op_count,
+                                        op_info_t *);
+    bc->op_info_table[bc->op_count - 1] = info;
+
+    /* initialize new op mapping */
+    om->n_ops++;
+
+    om->lib_ops =
+        mem_gc_realloc_n_typed_zeroed(interp, om->lib_ops, om->n_ops, om->n_ops - 1, opcode_t);
+    for (i = 0; i < lib->op_count; i++) {
+        if (lib->op_func_table[i] == op_func) {
+            om->lib_ops[om->n_ops - 1] = i;
+            break;
+        }
+    }
+    PARROT_ASSERT(om->lib_ops[om->n_ops - 1] || !i);
+
+    om->table_ops =
+        mem_gc_realloc_n_typed_zeroed(interp, om->table_ops, om->n_ops, om->n_ops - 1, opcode_t);
+    om->table_ops[om->n_ops - 1] = bc->op_count - 1;
+
+    return bc->op_count - 1;
+}
+
+
+/*
+
 =item C<static subs_t * find_global_label(PARROT_INTERP, const char *name, const
 subs_t *sym, int *pc)>
 
@@ -836,7 +915,7 @@
                     const int op = interp->op_lib->op_code(interp, "find_sub_not_null_p_sc", 1);
                     PARROT_ASSERT(op);
 
-                    interp->code->base.data[addr] = op;
+                    interp->code->base.data[addr] = bytecode_map_op(interp, op);
 
                     if (nam->color < 0)
                         nam->color = add_const_str(interp, IMCC_string_from_reg(interp, nam));
@@ -1437,7 +1516,7 @@
     sub->namespace_name = ns_pmc;
     sub->start_offs     = offs;
     sub->end_offs       = end;
-    sub->HLL_id         = Parrot_pcc_get_HLL(interp, CURRENT_CONTEXT(interp));
+    sub->HLL_id         = unit->hll_id;
 
     for (i = 0; i < 4; ++i)
         sub->n_regs_used[i] = unit->n_regs_used[i];
@@ -1643,22 +1722,20 @@
 
     for (key_length = 0; reg ; reg = reg->nextkey, key_length++) {
         SymReg *r = reg;
-        int     type;
 
         if (key_length >= MAX_KEY_LEN)
             IMCC_fatal(interp, 1, "build_key:"
                     "Key too long, increase MAX_KEY_LEN.\n");
 
-        /* if key is a register, the original sym is in r->reg */
-        type = r->type;
-
-        if (r->reg)
-            r = r->reg;
-
-        switch (type) {
+        switch (r->type) {
           case VTIDENTIFIER:       /* P[S0] */
           case VTPASM:             /* P[S0] */
           case VTREG:              /* P[S0] */
+
+            /* if key is a register, the original sym is in r->reg */
+            if (r->reg)
+                r = r->reg;
+
             if (r->set == 'I')
                 *pc++ = PARROT_ARG_I;    /* register type */
             else if (r->set == 'S')
@@ -1678,7 +1755,9 @@
                     " keypart reg %s %c%d\n",
                     r->name, r->set, (int)r->color);
             break;
+
           case VT_CONSTP:
+            r = r->reg;
           case VTCONST:
           case VTCONST|VT_ENCODED:
             switch (r->set) {
@@ -1711,7 +1790,7 @@
             break;
           default:
             IMCC_fatal(interp, 1, "build_key: "
-                    "unknown type 0x%x on %s\n", type, r->name);
+                    "unknown type 0x%x on %s\n", r->type, r->name);
         }
     }
 
@@ -1969,7 +2048,7 @@
             SymReg *key = r;
 
             for (r = r->nextkey; r; r = r->nextkey)
-                if (r->type & VTCONST)
+                if (r->type & (VTCONST|VT_CONSTP))
                     add_1_const(interp, r);
                 build_key(interp, key);
         }
@@ -2351,15 +2430,15 @@
 
         op = (opcode_t)ins->opnum;
 
-        /* Start generating the bytecode */
-        *(IMCC_INFO(interp)->pc)++   = op;
-
         /* Get the info for that opcode */
         op_info = &interp->op_info_table[op];
 
         IMCC_debug(interp, DEBUG_PBC, "%d %s", IMCC_INFO(interp)->npc,
             op_info->full_name);
 
+        /* Start generating the bytecode */
+        *(IMCC_INFO(interp)->pc)++ = bytecode_map_op(interp, op);
+
         for (i = 0; i < op_info->op_count-1; i++) {
             switch (op_info->types[i]) {
               case PARROT_ARG_IC:
@@ -2429,7 +2508,7 @@
             }
         }
 
-        IMCC_debug(interp, DEBUG_PBC, "\t%I\n", ins);
+        IMCC_debug(interp, DEBUG_PBC, "\t%d\n", ins);
         IMCC_INFO(interp)->npc += ins->opsize;
     }
 

Modified: trunk/compilers/imcc/pcc.c
==============================================================================
--- trunk/compilers/imcc/pcc.c	Wed Aug 11 04:51:55 2010	(r48411)
+++ trunk/compilers/imcc/pcc.c	Wed Aug 11 05:38:18 2010	(r48412)
@@ -471,7 +471,7 @@
             tmp = INS(interp, unit, "returncc", NULL, regs, 0, 0, 0);
         }
 
-        IMCC_debug(interp, DEBUG_IMC, "add sub ret - %I\n", tmp);
+        IMCC_debug(interp, DEBUG_IMC, "add sub ret - %d\n", tmp);
         insert_ins(unit, unit->last_ins, tmp);
     }
 }

Modified: trunk/compilers/imcc/symreg.c
==============================================================================
--- trunk/compilers/imcc/symreg.c	Wed Aug 11 04:51:55 2010	(r48411)
+++ trunk/compilers/imcc/symreg.c	Wed Aug 11 05:38:18 2010	(r48412)
@@ -298,7 +298,7 @@
 mk_symreg(PARROT_INTERP, ARGIN(const char *name), int t)
 {
     ASSERT_ARGS(mk_symreg)
-    IMC_Unit * const unit = IMCC_INFO(interp)->last_unit;
+    IMC_Unit * const unit = IMCC_INFO(interp)->cur_unit;
 
     /* Check for the condition that fires up a segfault in TT #162 */
     PARROT_ASSERT(unit != NULL);
@@ -393,7 +393,7 @@
 mk_pcc_sub(PARROT_INTERP, ARGIN(const char *name), int proto)
 {
     ASSERT_ARGS(mk_pcc_sub)
-    IMC_Unit * const unit = IMCC_INFO(interp)->last_unit;
+    IMC_Unit * const unit = IMCC_INFO(interp)->cur_unit;
     SymReg   * const r    = _mk_symreg(interp, &unit->hash, name, proto);
 
     r->type    = VT_PCC_SUB;
@@ -407,7 +407,7 @@
 
 =item C<void add_namespace(PARROT_INTERP, IMC_Unit *unit)>
 
-Add the current namespace to a sub declaration.
+Add the current namespace (and HLL id) to a sub declaration.
 
 =cut
 
@@ -419,6 +419,8 @@
     ASSERT_ARGS(add_namespace)
     SymReg * const ns = IMCC_INFO(interp)->cur_namespace;
 
+    unit->hll_id = Parrot_pcc_get_HLL(interp, CURRENT_CONTEXT(interp));
+
     if (!ns)
         return;
 
@@ -647,7 +649,7 @@
 {
     ASSERT_ARGS(mk_ident)
     char   * const fullname = _mk_fullname(interp, IMCC_INFO(interp)->namespace_stack, name);
-    SymReg *r = get_sym_by_name(&(IMCC_INFO(interp)->last_unit->hash), name);
+    SymReg *r = get_sym_by_name(&(IMCC_INFO(interp)->cur_unit->hash), name);
     if (r && r->set != t)
         IMCC_fataly(interp, EXCEPTION_SYNTAX_ERROR,
                 "syntax error, duplicated IDENTIFIER '%s'\n", fullname);
@@ -1075,7 +1077,7 @@
 mk_local_label(PARROT_INTERP, ARGIN(const char *name))
 {
     ASSERT_ARGS(mk_local_label)
-    IMC_Unit * const unit = IMCC_INFO(interp)->last_unit;
+    IMC_Unit * const unit = IMCC_INFO(interp)->cur_unit;
     return _mk_address(interp, &unit->hash, name, U_add_uniq_label);
 }
 
@@ -1096,7 +1098,7 @@
 mk_label_address(PARROT_INTERP, ARGIN(const char *name))
 {
     ASSERT_ARGS(mk_label_address)
-    IMC_Unit * const unit = IMCC_INFO(interp)->last_unit;
+    IMC_Unit * const unit = IMCC_INFO(interp)->cur_unit;
     return _mk_address(interp, &unit->hash, name, U_add_once);
 }
 

Modified: trunk/compilers/imcc/unit.h
==============================================================================
--- trunk/compilers/imcc/unit.h	Wed Aug 11 04:51:55 2010	(r48411)
+++ trunk/compilers/imcc/unit.h	Wed Aug 11 05:38:18 2010	(r48412)
@@ -69,8 +69,8 @@
     char             *vtable_name;      /* vtable name, if any */
     char             *method_name;      /* method name, if any */
     char             *ns_entry_name;    /* ns entry name, if any */
-    char             *instance_of;      /* PMC or class this is an instance of
-                                         * if any */
+    char             *instance_of;      /* PMC or class this is an instance of if any */
+    INTVAL            hll_id;           /* HLL ID for this sub */
     SymReg           *subid;            /* Unique subroutine id */
 
     struct            imcc_ostat ostat;

Modified: trunk/compilers/opsc/src/Ops/Emitter.pm
==============================================================================
--- trunk/compilers/opsc/src/Ops/Emitter.pm	Wed Aug 11 04:51:55 2010	(r48411)
+++ trunk/compilers/opsc/src/Ops/Emitter.pm	Wed Aug 11 05:38:18 2010	(r48412)
@@ -217,6 +217,9 @@
 
 {self.trans.defines(self)}
 
+/* XXX should be static, but C++ doesn't want to play ball */
+extern op_lib_t {self.bs}op_lib;
+
 |);
 
     $fh.print(self.ops_file.preamble);
@@ -230,9 +233,10 @@
 ** op lib descriptor:
 */
 
-static op_lib_t | ~ self.bs ~ q|op_lib = {| ~ qq|
-  "{self.base}",               /* name */
-  "{self.suffix}",             /* suffix */
+/* XXX should be static, but C++ doesn't want to play ball */
+op_lib_t | ~ self.bs ~ q|op_lib = {| ~ qq|
+  "{self.base}_ops",                /* name */
+  "{self.suffix}",                  /* suffix */
   $core_type,                       /* core_type = PARROT_XX_CORE */
   0,                                /* flags */
   {self.ops_file.version_major},    /* major_version */

Modified: trunk/compilers/opsc/src/Ops/Trans/C.pm
==============================================================================
--- trunk/compilers/opsc/src/Ops/Trans/C.pm	Wed Aug 11 04:51:55 2010	(r48411)
+++ trunk/compilers/opsc/src/Ops/Trans/C.pm	Wed Aug 11 05:38:18 2010	(r48412)
@@ -180,6 +180,7 @@
 |);
 
     my $index := 0;
+    my $op_lib_ref := '&' ~ $emitter.bs() ~ 'op_lib';
 
     for $emitter.ops_file.ops -> $op {
         my $type := sprintf( "PARROT_%s_OP", uc($op.type ?? 'INLINE' !! 'FUNCTION') );
@@ -218,7 +219,8 @@
     $arg_count,
     $arg_types,
     $arg_dirs,
-    $labels
+    $labels,
+    $op_lib_ref
   | ~ '},
 ',
             );

Modified: trunk/config/gen/config_h/config_h.in
==============================================================================
--- trunk/config/gen/config_h/config_h.in	Wed Aug 11 04:51:55 2010	(r48411)
+++ trunk/config/gen/config_h/config_h.in	Wed Aug 11 05:38:18 2010	(r48412)
@@ -150,7 +150,7 @@
 #define PARROT_ at jitcpu@ 1
 
 /* Oplib and dynamic ops related. */
-#define PARROT_CORE_OPLIB_NAME "core"
+#define PARROT_CORE_OPLIB_NAME "core_ops"
 #define PARROT_CORE_OPLIB_INIT Parrot_DynOp_core_ at MAJOR@_ at MINOR@_ at PATCH@
 
 /* ICU. */

Modified: trunk/ext/nqp-rx/src/stage0/Regex-s0.pir
==============================================================================
--- trunk/ext/nqp-rx/src/stage0/Regex-s0.pir	Wed Aug 11 04:51:55 2010	(r48411)
+++ trunk/ext/nqp-rx/src/stage0/Regex-s0.pir	Wed Aug 11 05:38:18 2010	(r48412)
@@ -2122,7 +2122,7 @@
 # vim: expandtab shiftwidth=4 ft=pir:
 
 ### .include 'src/PAST/Regex.pir'
-# $Id: Regex.pir 41578 2009-09-30 14:45:23Z pmichaud $
+# $Id$
 
 =head1 NAME
 

Modified: trunk/include/parrot/call.h
==============================================================================
--- trunk/include/parrot/call.h	Wed Aug 11 04:51:55 2010	(r48411)
+++ trunk/include/parrot/call.h	Wed Aug 11 05:38:18 2010	(r48412)
@@ -302,12 +302,11 @@
     PARROT_ASSERT((sig)->vtable->base_type == enum_class_FixedIntegerArray); \
 } while (0)
 
-/* XXX Remove interp from this */
 #define ADD_OP_VAR_PART(interp, seg, pc, n) do { \
-    if (*(pc) == PARROT_OP_set_args_pc       \
-    ||  *(pc) == PARROT_OP_get_results_pc    \
-    ||  *(pc) == PARROT_OP_get_params_pc     \
-    ||  *(pc) == PARROT_OP_set_returns_pc) { \
+    if (OPCODE_IS((interp), (seg), *(pc), PARROT_OP_set_args_pc)       \
+    ||  OPCODE_IS((interp), (seg), *(pc), PARROT_OP_get_results_pc)    \
+    ||  OPCODE_IS((interp), (seg), *(pc), PARROT_OP_get_params_pc)     \
+    ||  OPCODE_IS((interp), (seg), *(pc), PARROT_OP_set_returns_pc)) { \
         PMC * const sig = (seg)->const_table->constants[(pc)[1]].u.key; \
         (n) += VTABLE_elements((interp), sig); \
     } \

Modified: trunk/include/parrot/op.h
==============================================================================
--- trunk/include/parrot/op.h	Wed Aug 11 04:51:55 2010	(r48411)
+++ trunk/include/parrot/op.h	Wed Aug 11 05:38:18 2010	(r48412)
@@ -67,16 +67,19 @@
 */
 
 typedef struct op_info_t {
-    const char    *name;
-    const char    *full_name;
-    const char    *func_name;
-    unsigned short jump;
-    short          op_count;                /* Includes opcode as one arg */
-    arg_type_t     types[PARROT_MAX_ARGS];  /* arg_type_t, 0 = 1st arg */
-    arg_dir_t      dirs[PARROT_MAX_ARGS];   /* arg_dir_t   0 = 1st arg */
-    char           labels[PARROT_MAX_ARGS]; /* 0/1         0 = 1st arg */
+    const char      *name;
+    const char      *full_name;
+    const char      *func_name;
+    unsigned short   jump;
+    short            op_count;                /* Includes opcode as one arg */
+    arg_type_t       types[PARROT_MAX_ARGS];  /* arg_type_t, 0 = 1st arg */
+    arg_dir_t        dirs[PARROT_MAX_ARGS];   /* arg_dir_t   0 = 1st arg */
+    char             labels[PARROT_MAX_ARGS]; /* 0/1         0 = 1st arg */
+    struct op_lib_t *lib;
 } op_info_t;
 
+#define OPCODE_IS(interp, seg, opnum, global_opnum) \
+    ((seg)->op_func_table[(opnum)] == (interp)->op_func_table[(global_opnum)])
 
 #endif /* PARROT_OP_H_GUARD */
 

Modified: trunk/include/parrot/packfile.h
==============================================================================
--- trunk/include/parrot/packfile.h	Wed Aug 11 04:51:55 2010	(r48411)
+++ trunk/include/parrot/packfile.h	Wed Aug 11 05:38:18 2010	(r48412)
@@ -263,16 +263,32 @@
     opcode_t                   const_count;
     PackFile_Constant         *constants;
     PackFile_ByteCode         *code;  /* where this segment belongs to */
-
     PMC                       *string_hash; /* Hash for lookup strings and numbers */
 } PackFile_ConstTable;
 
+typedef struct PackFile_ByteCode_OpMappingEntry {
+    op_lib_t *lib;       /* library for this entry */
+    opcode_t  n_ops;     /* number of ops used */
+    opcode_t *lib_ops;   /* indices of ops within the library */
+    opcode_t *table_ops; /* indices of ops within the op table */
+} PackFile_ByteCode_OpMappingEntry;
+
+typedef struct PackFile_ByteCode_OpMapping {
+    opcode_t                          n_libs; /* number of library entries */
+    PackFile_ByteCode_OpMappingEntry *libs;   /* opcode libraries used by this segment */
+} PackFile_ByteCode_OpMapping;
+
 struct PackFile_ByteCode {
-    PackFile_Segment       base;
-    struct PackFile_Debug *debugs;
-    PackFile_ConstTable   *const_table;
-    PackFile_FixupTable   *fixups;
-    struct PackFile_Annotations *annotations;
+    PackFile_Segment              base;
+    struct PackFile_Debug        *debugs;
+    PackFile_ConstTable          *const_table;
+    PackFile_FixupTable          *fixups;
+    struct PackFile_Annotations  *annotations;
+    PackFile_ByteCode_OpMapping   op_mapping;      /* opcode mapping information */
+    size_t                        op_count;        /* number of ops in the func table */
+    op_func_t                    *op_func_table;   /* opcode dispatch table */
+    op_func_t                    *save_func_table; /* for when we hijack op_func_table */
+    op_info_t                   **op_info_table;
 };
 
 typedef struct PackFile_DebugFilenameMapping {

Modified: trunk/include/parrot/runcore_api.h
==============================================================================
--- trunk/include/parrot/runcore_api.h	Wed Aug 11 04:51:55 2010	(r48411)
+++ trunk/include/parrot/runcore_api.h	Wed Aug 11 05:38:18 2010	(r48412)
@@ -15,7 +15,7 @@
 #include "parrot/parrot.h"
 #include "parrot/op.h"
 
-#  define DO_OP(PC, INTERP) ((PC) = (((INTERP)->op_func_table)[*(PC)])((PC), (INTERP)))
+#  define DO_OP(PC, INTERP) ((PC) = (((INTERP)->code->op_func_table)[*(PC)])((PC), (INTERP)))
 
 typedef opcode_t * (*runcore_runops_fn_type) (PARROT_INTERP, ARGIN(Parrot_runcore_t *), ARGIN(opcode_t *pc));
 typedef       void (*runcore_destroy_fn_type)(PARROT_INTERP, ARGIN(Parrot_runcore_t *));

Modified: trunk/src/debug.c
==============================================================================
--- trunk/src/debug.c	Wed Aug 11 04:51:55 2010	(r48411)
+++ trunk/src/debug.c	Wed Aug 11 05:38:18 2010	(r48412)
@@ -2452,13 +2452,15 @@
        one fixed parameter (the signature vector), plus a varying number of
        registers/constants.  For each arg/return, we show the register and its
        flags using PIR syntax. */
-    if (*(op) == PARROT_OP_set_args_pc || *(op) == PARROT_OP_set_returns_pc)
+    if (OPCODE_IS(interp, interp->code, *(op), PARROT_OP_set_args_pc)
+    ||  OPCODE_IS(interp, interp->code, *(op), PARROT_OP_set_returns_pc))
         specialop = 1;
 
     /* if it's a retrieving op, specialop = 2, so that later a :flat flag
      * can be changed into a :slurpy flag. See flag handling below.
      */
-    if (*(op) == PARROT_OP_get_results_pc || *(op) == PARROT_OP_get_params_pc)
+    if (OPCODE_IS(interp, interp->code, *(op), PARROT_OP_get_results_pc)
+    ||  OPCODE_IS(interp, interp->code, *(op), PARROT_OP_get_params_pc))
         specialop = 2;
 
     if (specialop > 0) {
@@ -2593,14 +2595,14 @@
         }
 
         size = PDB_disassemble_op(interp, pfile->source + pfile->size,
-                space, &interp->op_info_table[*pc], pc, pfile, NULL, 1);
+                space, interp->code->op_info_table[*pc], pc, pfile, NULL, 1);
         space       -= size;
         pfile->size += size;
         pfile->source[pfile->size - 1] = '\n';
 
         /* Store the opcode of this line */
         pline->opcode = pc;
-        n             = interp->op_info_table[*pc].op_count;
+        n             = interp->code->op_info_table[*pc]->op_count;
 
         ADD_OP_VAR_PART(interp, interp->code, pc, n);
         pc += n;
@@ -2797,7 +2799,8 @@
     pfile->line   = pline;
     pline->number = 1;
 
-    PARROT_ASSERT(interp->op_info_table);
+    PARROT_ASSERT(interp->code);
+    PARROT_ASSERT(interp->code->op_info_table);
     PARROT_ASSERT(pc);
 
     while ((c = fgetc(file)) != EOF) {
@@ -2817,7 +2820,7 @@
             PDB_line_t *newline = mem_gc_allocate_zeroed_typed(interp, PDB_line_t);
 
             if (PDB_hasinstruction(pfile->source + pline->source_offset)) {
-                size_t n      = interp->op_info_table[*pc].op_count;
+                size_t n      = interp->code->op_info_table[*pc]->op_count;
                 pline->opcode = pc;
                 ADD_OP_VAR_PART(interp, interp->code, pc, n);
                 pc           += n;

Modified: trunk/src/embed.c
==============================================================================
--- trunk/src/embed.c	Wed Aug 11 04:51:55 2010	(r48411)
+++ trunk/src/embed.c	Wed Aug 11 05:38:18 2010	(r48412)
@@ -1079,16 +1079,23 @@
 {
     ASSERT_ARGS(Parrot_run_native)
     PackFile * const pf = PackFile_new(interp, 0);
-    static opcode_t program_code[2];
+    static opcode_t program_code[2] = {
+        0, /* enternative */
+        1  /* end */
+    };
+
+    static op_func_t op_func_table[2];
+    op_func_table[0] = interp->op_func_table[ interp->op_lib->op_code(interp, "enternative", 0) ];
+    op_func_table[1] = interp->op_func_table[ interp->op_lib->op_code(interp, "end", 0) ];
 
-    program_code[0] = interp->op_lib->op_code(interp, "enternative", 0);
-    program_code[1] = 0; /* end */
 
     pf->cur_cs = (PackFile_ByteCode *)
         (pf->PackFuncs[PF_BYTEC_SEG].new_seg)(interp, pf,
                 Parrot_str_new_constant(interp, "code"), 1);
-    pf->cur_cs->base.data = program_code;
-    pf->cur_cs->base.size = 2;
+    pf->cur_cs->base.data     = program_code;
+    pf->cur_cs->base.size     = 2;
+    pf->cur_cs->op_func_table = op_func_table;
+    /* TODO fill out cur_cs with op_mapping */
 
     Parrot_pbc_load(interp, pf);
 

Modified: trunk/src/ops/core_ops.c
==============================================================================
--- trunk/src/ops/core_ops.c	Wed Aug 11 04:51:55 2010	(r48411)
+++ trunk/src/ops/core_ops.c	Wed Aug 11 05:38:18 2010	(r48412)
@@ -28,6 +28,9 @@
 static int get_op(PARROT_INTERP, const char * name, int full);
 
 
+/* XXX should be static, but C++ doesn't want to play ball */
+extern op_lib_t core_op_lib;
+
 
 
 #include "parrot/dynext.h"
@@ -1173,7 +1176,8 @@
     1,
     { (arg_type_t) 0 },
     { (arg_dir_t) 0 },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 1 */
     /* type PARROT_INLINE_OP, */
@@ -1185,7 +1189,8 @@
     1,
     { (arg_type_t) 0 },
     { (arg_dir_t) 0 },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 2 */
     /* type PARROT_INLINE_OP, */
@@ -1197,7 +1202,8 @@
     1,
     { (arg_type_t) 0 },
     { (arg_dir_t) 0 },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 3 */
     /* type PARROT_INLINE_OP, */
@@ -1209,7 +1215,8 @@
     1,
     { (arg_type_t) 0 },
     { (arg_dir_t) 0 },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 4 */
     /* type PARROT_INLINE_OP, */
@@ -1221,7 +1228,8 @@
     1,
     { (arg_type_t) 0 },
     { (arg_dir_t) 0 },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 5 */
     /* type PARROT_INLINE_OP, */
@@ -1233,7 +1241,8 @@
     2,
     { PARROT_ARG_S },
     { PARROT_ARGDIR_IN },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 6 */
     /* type PARROT_INLINE_OP, */
@@ -1245,7 +1254,8 @@
     2,
     { PARROT_ARG_SC },
     { PARROT_ARGDIR_IN },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 7 */
     /* type PARROT_INLINE_OP, */
@@ -1257,7 +1267,8 @@
     2,
     { PARROT_ARG_S },
     { PARROT_ARGDIR_IN },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 8 */
     /* type PARROT_INLINE_OP, */
@@ -1269,7 +1280,8 @@
     2,
     { PARROT_ARG_SC },
     { PARROT_ARGDIR_IN },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 9 */
     /* type PARROT_INLINE_OP, */
@@ -1281,7 +1293,8 @@
     2,
     { PARROT_ARG_I },
     { PARROT_ARGDIR_IN },
-    { 1 }
+    { 1 },
+    &core_op_lib
   },
   { /* 10 */
     /* type PARROT_INLINE_OP, */
@@ -1293,7 +1306,8 @@
     2,
     { PARROT_ARG_IC },
     { PARROT_ARGDIR_IN },
-    { 1 }
+    { 1 },
+    &core_op_lib
   },
   { /* 11 */
     /* type PARROT_INLINE_OP, */
@@ -1305,7 +1319,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_I },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 1 }
+    { 0, 1 },
+    &core_op_lib
   },
   { /* 12 */
     /* type PARROT_INLINE_OP, */
@@ -1317,7 +1332,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 1 }
+    { 0, 1 },
+    &core_op_lib
   },
   { /* 13 */
     /* type PARROT_INLINE_OP, */
@@ -1329,7 +1345,8 @@
     2,
     { PARROT_ARG_P },
     { PARROT_ARGDIR_IN },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 14 */
     /* type PARROT_INLINE_OP, */
@@ -1341,7 +1358,8 @@
     2,
     { PARROT_ARG_I },
     { PARROT_ARGDIR_IN },
-    { 1 }
+    { 1 },
+    &core_op_lib
   },
   { /* 15 */
     /* type PARROT_INLINE_OP, */
@@ -1353,7 +1371,8 @@
     2,
     { PARROT_ARG_IC },
     { PARROT_ARGDIR_IN },
-    { 1 }
+    { 1 },
+    &core_op_lib
   },
   { /* 16 */
     /* type PARROT_FUNCTION_OP, */
@@ -1365,7 +1384,8 @@
     1,
     { (arg_type_t) 0 },
     { (arg_dir_t) 0 },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 17 */
     /* type PARROT_INLINE_OP, */
@@ -1377,7 +1397,8 @@
     3,
     { PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 1 }
+    { 0, 1 },
+    &core_op_lib
   },
   { /* 18 */
     /* type PARROT_INLINE_OP, */
@@ -1389,7 +1410,8 @@
     3,
     { PARROT_ARG_N, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 1 }
+    { 0, 1 },
+    &core_op_lib
   },
   { /* 19 */
     /* type PARROT_FUNCTION_OP, */
@@ -1401,7 +1423,8 @@
     3,
     { PARROT_ARG_S, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 1 }
+    { 0, 1 },
+    &core_op_lib
   },
   { /* 20 */
     /* type PARROT_FUNCTION_OP, */
@@ -1413,7 +1436,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 1 }
+    { 0, 1 },
+    &core_op_lib
   },
   { /* 21 */
     /* type PARROT_INLINE_OP, */
@@ -1425,7 +1449,8 @@
     3,
     { PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 1 }
+    { 0, 1 },
+    &core_op_lib
   },
   { /* 22 */
     /* type PARROT_INLINE_OP, */
@@ -1437,7 +1462,8 @@
     3,
     { PARROT_ARG_N, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 1 }
+    { 0, 1 },
+    &core_op_lib
   },
   { /* 23 */
     /* type PARROT_FUNCTION_OP, */
@@ -1449,7 +1475,8 @@
     3,
     { PARROT_ARG_S, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 1 }
+    { 0, 1 },
+    &core_op_lib
   },
   { /* 24 */
     /* type PARROT_FUNCTION_OP, */
@@ -1461,7 +1488,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 1 }
+    { 0, 1 },
+    &core_op_lib
   },
   { /* 25 */
     /* type PARROT_INLINE_OP, */
@@ -1473,7 +1501,8 @@
     2,
     { PARROT_ARG_P },
     { PARROT_ARGDIR_IN },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 26 */
     /* type PARROT_INLINE_OP, */
@@ -1485,7 +1514,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 27 */
     /* type PARROT_INLINE_OP, */
@@ -1497,7 +1527,8 @@
     1,
     { (arg_type_t) 0 },
     { (arg_dir_t) 0 },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 28 */
     /* type PARROT_INLINE_OP, */
@@ -1509,7 +1540,8 @@
     2,
     { PARROT_ARG_P },
     { PARROT_ARGDIR_IN },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 29 */
     /* type PARROT_INLINE_OP, */
@@ -1521,7 +1553,8 @@
     1,
     { (arg_type_t) 0 },
     { (arg_dir_t) 0 },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 30 */
     /* type PARROT_INLINE_OP, */
@@ -1533,7 +1566,8 @@
     2,
     { PARROT_ARG_P },
     { PARROT_ARGDIR_IN },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 31 */
     /* type PARROT_INLINE_OP, */
@@ -1545,7 +1579,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 32 */
     /* type PARROT_FUNCTION_OP, */
@@ -1557,7 +1592,8 @@
     2,
     { PARROT_ARG_PC },
     { PARROT_ARGDIR_IN },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 33 */
     /* type PARROT_FUNCTION_OP, */
@@ -1569,7 +1605,8 @@
     2,
     { PARROT_ARG_PC },
     { PARROT_ARGDIR_IN },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 34 */
     /* type PARROT_FUNCTION_OP, */
@@ -1581,7 +1618,8 @@
     2,
     { PARROT_ARG_PC },
     { PARROT_ARGDIR_IN },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 35 */
     /* type PARROT_FUNCTION_OP, */
@@ -1593,7 +1631,8 @@
     2,
     { PARROT_ARG_PC },
     { PARROT_ARGDIR_IN },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 36 */
     /* type PARROT_INLINE_OP, */
@@ -1605,7 +1644,8 @@
     2,
     { PARROT_ARG_P },
     { PARROT_ARGDIR_IN },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 37 */
     /* type PARROT_INLINE_OP, */
@@ -1617,7 +1657,8 @@
     2,
     { PARROT_ARG_PC },
     { PARROT_ARGDIR_IN },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 38 */
     /* type PARROT_INLINE_OP, */
@@ -1629,7 +1670,8 @@
     2,
     { PARROT_ARG_P },
     { PARROT_ARGDIR_OUT },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 39 */
     /* type PARROT_INLINE_OP, */
@@ -1641,7 +1683,8 @@
     3,
     { PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 1 }
+    { 0, 1 },
+    &core_op_lib
   },
   { /* 40 */
     /* type PARROT_INLINE_OP, */
@@ -1653,7 +1696,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 1 }
+    { 0, 1 },
+    &core_op_lib
   },
   { /* 41 */
     /* type PARROT_INLINE_OP, */
@@ -1665,7 +1709,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_I },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 1 }
+    { 0, 1 },
+    &core_op_lib
   },
   { /* 42 */
     /* type PARROT_INLINE_OP, */
@@ -1677,7 +1722,8 @@
     3,
     { PARROT_ARG_I, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 43 */
     /* type PARROT_INLINE_OP, */
@@ -1689,7 +1735,8 @@
     2,
     { PARROT_ARG_P },
     { PARROT_ARGDIR_IN },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 44 */
     /* type PARROT_INLINE_OP, */
@@ -1701,7 +1748,8 @@
     2,
     { PARROT_ARG_P },
     { PARROT_ARGDIR_IN },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 45 */
     /* type PARROT_INLINE_OP, */
@@ -1713,7 +1761,8 @@
     2,
     { PARROT_ARG_IC },
     { PARROT_ARGDIR_IN },
-    { 1 }
+    { 1 },
+    &core_op_lib
   },
   { /* 46 */
     /* type PARROT_INLINE_OP, */
@@ -1725,7 +1774,8 @@
     2,
     { PARROT_ARG_P },
     { PARROT_ARGDIR_IN },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 47 */
     /* type PARROT_INLINE_OP, */
@@ -1737,7 +1787,8 @@
     1,
     { (arg_type_t) 0 },
     { (arg_dir_t) 0 },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 48 */
     /* type PARROT_INLINE_OP, */
@@ -1749,7 +1800,8 @@
     2,
     { PARROT_ARG_P },
     { PARROT_ARGDIR_IN },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 49 */
     /* type PARROT_INLINE_OP, */
@@ -1761,7 +1813,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 50 */
     /* type PARROT_INLINE_OP, */
@@ -1773,7 +1826,8 @@
     2,
     { PARROT_ARG_P },
     { PARROT_ARGDIR_IN },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 51 */
     /* type PARROT_INLINE_OP, */
@@ -1785,7 +1839,8 @@
     2,
     { PARROT_ARG_I },
     { PARROT_ARGDIR_OUT },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 52 */
     /* type PARROT_INLINE_OP, */
@@ -1797,7 +1852,8 @@
     2,
     { PARROT_ARG_S },
     { PARROT_ARGDIR_IN },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 53 */
     /* type PARROT_INLINE_OP, */
@@ -1809,7 +1865,8 @@
     2,
     { PARROT_ARG_SC },
     { PARROT_ARGDIR_IN },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 54 */
     /* type PARROT_INLINE_OP, */
@@ -1821,7 +1878,8 @@
     2,
     { PARROT_ARG_P },
     { PARROT_ARGDIR_IN },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 55 */
     /* type PARROT_INLINE_OP, */
@@ -1833,7 +1891,8 @@
     2,
     { PARROT_ARG_PC },
     { PARROT_ARGDIR_IN },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 56 */
     /* type PARROT_INLINE_OP, */
@@ -1845,7 +1904,8 @@
     3,
     { PARROT_ARG_I, PARROT_ARG_I },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 57 */
     /* type PARROT_INLINE_OP, */
@@ -1857,7 +1917,8 @@
     3,
     { PARROT_ARG_IC, PARROT_ARG_I },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 58 */
     /* type PARROT_INLINE_OP, */
@@ -1869,7 +1930,8 @@
     3,
     { PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 59 */
     /* type PARROT_INLINE_OP, */
@@ -1881,7 +1943,8 @@
     3,
     { PARROT_ARG_IC, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 60 */
     /* type PARROT_INLINE_OP, */
@@ -1893,7 +1956,8 @@
     2,
     { PARROT_ARG_I },
     { PARROT_ARGDIR_IN },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 61 */
     /* type PARROT_INLINE_OP, */
@@ -1905,7 +1969,8 @@
     2,
     { PARROT_ARG_IC },
     { PARROT_ARGDIR_IN },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 62 */
     /* type PARROT_INLINE_OP, */
@@ -1917,7 +1982,8 @@
     2,
     { PARROT_ARG_I },
     { PARROT_ARGDIR_IN },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 63 */
     /* type PARROT_INLINE_OP, */
@@ -1929,7 +1995,8 @@
     2,
     { PARROT_ARG_IC },
     { PARROT_ARGDIR_IN },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 64 */
     /* type PARROT_INLINE_OP, */
@@ -1941,7 +2008,8 @@
     2,
     { PARROT_ARG_I },
     { PARROT_ARGDIR_IN },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 65 */
     /* type PARROT_INLINE_OP, */
@@ -1953,7 +2021,8 @@
     2,
     { PARROT_ARG_IC },
     { PARROT_ARGDIR_IN },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 66 */
     /* type PARROT_INLINE_OP, */
@@ -1965,7 +2034,8 @@
     2,
     { PARROT_ARG_I },
     { PARROT_ARGDIR_IN },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 67 */
     /* type PARROT_INLINE_OP, */
@@ -1977,7 +2047,8 @@
     2,
     { PARROT_ARG_IC },
     { PARROT_ARGDIR_IN },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 68 */
     /* type PARROT_INLINE_OP, */
@@ -1989,7 +2060,8 @@
     2,
     { PARROT_ARG_I },
     { PARROT_ARGDIR_IN },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 69 */
     /* type PARROT_INLINE_OP, */
@@ -2001,7 +2073,8 @@
     2,
     { PARROT_ARG_IC },
     { PARROT_ARGDIR_IN },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 70 */
     /* type PARROT_INLINE_OP, */
@@ -2013,7 +2086,8 @@
     2,
     { PARROT_ARG_I },
     { PARROT_ARGDIR_IN },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 71 */
     /* type PARROT_INLINE_OP, */
@@ -2025,7 +2099,8 @@
     2,
     { PARROT_ARG_IC },
     { PARROT_ARGDIR_IN },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 72 */
     /* type PARROT_FUNCTION_OP, */
@@ -2037,7 +2112,8 @@
     3,
     { PARROT_ARG_I, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 73 */
     /* type PARROT_FUNCTION_OP, */
@@ -2049,7 +2125,8 @@
     3,
     { PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 74 */
     /* type PARROT_FUNCTION_OP, */
@@ -2061,7 +2138,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 75 */
     /* type PARROT_FUNCTION_OP, */
@@ -2073,7 +2151,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 76 */
     /* type PARROT_FUNCTION_OP, */
@@ -2085,7 +2164,8 @@
     3,
     { PARROT_ARG_S, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 77 */
     /* type PARROT_FUNCTION_OP, */
@@ -2097,7 +2177,8 @@
     3,
     { PARROT_ARG_S, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 78 */
     /* type PARROT_INLINE_OP, */
@@ -2109,7 +2190,8 @@
     2,
     { PARROT_ARG_I },
     { PARROT_ARGDIR_IN },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 79 */
     /* type PARROT_INLINE_OP, */
@@ -2121,7 +2203,8 @@
     2,
     { PARROT_ARG_IC },
     { PARROT_ARGDIR_IN },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 80 */
     /* type PARROT_INLINE_OP, */
@@ -2133,7 +2216,8 @@
     2,
     { PARROT_ARG_I },
     { PARROT_ARGDIR_IN },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 81 */
     /* type PARROT_INLINE_OP, */
@@ -2145,7 +2229,8 @@
     2,
     { PARROT_ARG_IC },
     { PARROT_ARGDIR_IN },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 82 */
     /* type PARROT_INLINE_OP, */
@@ -2157,7 +2242,8 @@
     2,
     { PARROT_ARG_I },
     { PARROT_ARGDIR_IN },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 83 */
     /* type PARROT_INLINE_OP, */
@@ -2169,7 +2255,8 @@
     2,
     { PARROT_ARG_IC },
     { PARROT_ARGDIR_IN },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 84 */
     /* type PARROT_INLINE_OP, */
@@ -2181,7 +2268,8 @@
     2,
     { PARROT_ARG_I },
     { PARROT_ARGDIR_IN },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 85 */
     /* type PARROT_INLINE_OP, */
@@ -2193,7 +2281,8 @@
     2,
     { PARROT_ARG_IC },
     { PARROT_ARGDIR_IN },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 86 */
     /* type PARROT_FUNCTION_OP, */
@@ -2205,7 +2294,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_I },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 1 }
+    { 0, 1 },
+    &core_op_lib
   },
   { /* 87 */
     /* type PARROT_FUNCTION_OP, */
@@ -2217,7 +2307,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 1 }
+    { 0, 1 },
+    &core_op_lib
   },
   { /* 88 */
     /* type PARROT_FUNCTION_OP, */
@@ -2229,7 +2320,8 @@
     2,
     { PARROT_ARG_P },
     { PARROT_ARGDIR_OUT },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 89 */
     /* type PARROT_FUNCTION_OP, */
@@ -2241,7 +2333,8 @@
     2,
     { PARROT_ARG_IC },
     { PARROT_ARGDIR_IN },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 90 */
     /* type PARROT_FUNCTION_OP, */
@@ -2253,7 +2346,8 @@
     1,
     { (arg_type_t) 0 },
     { (arg_dir_t) 0 },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 91 */
     /* type PARROT_FUNCTION_OP, */
@@ -2265,7 +2359,8 @@
     1,
     { (arg_type_t) 0 },
     { (arg_dir_t) 0 },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 92 */
     /* type PARROT_FUNCTION_OP, */
@@ -2277,7 +2372,8 @@
     1,
     { (arg_type_t) 0 },
     { (arg_dir_t) 0 },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 93 */
     /* type PARROT_FUNCTION_OP, */
@@ -2289,7 +2385,8 @@
     1,
     { (arg_type_t) 0 },
     { (arg_dir_t) 0 },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 94 */
     /* type PARROT_FUNCTION_OP, */
@@ -2301,7 +2398,8 @@
     1,
     { (arg_type_t) 0 },
     { (arg_dir_t) 0 },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 95 */
     /* type PARROT_FUNCTION_OP, */
@@ -2313,7 +2411,8 @@
     2,
     { PARROT_ARG_P },
     { PARROT_ARGDIR_IN },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 96 */
     /* type PARROT_INLINE_OP, */
@@ -2325,7 +2424,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 97 */
     /* type PARROT_INLINE_OP, */
@@ -2337,7 +2437,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 98 */
     /* type PARROT_INLINE_OP, */
@@ -2349,7 +2450,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 99 */
     /* type PARROT_INLINE_OP, */
@@ -2361,7 +2463,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 100 */
     /* type PARROT_INLINE_OP, */
@@ -2373,7 +2476,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_PC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 101 */
     /* type PARROT_INLINE_OP, */
@@ -2385,7 +2489,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_PC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 102 */
     /* type PARROT_FUNCTION_OP, */
@@ -2397,7 +2502,8 @@
     5,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 103 */
     /* type PARROT_FUNCTION_OP, */
@@ -2409,7 +2515,8 @@
     5,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 104 */
     /* type PARROT_FUNCTION_OP, */
@@ -2421,7 +2528,8 @@
     5,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 105 */
     /* type PARROT_FUNCTION_OP, */
@@ -2433,7 +2541,8 @@
     5,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 106 */
     /* type PARROT_FUNCTION_OP, */
@@ -2445,7 +2554,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 107 */
     /* type PARROT_FUNCTION_OP, */
@@ -2457,7 +2567,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 108 */
     /* type PARROT_INLINE_OP, */
@@ -2469,7 +2580,8 @@
     3,
     { PARROT_ARG_S, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 109 */
     /* type PARROT_INLINE_OP, */
@@ -2481,7 +2593,8 @@
     3,
     { PARROT_ARG_SC, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 110 */
     /* type PARROT_INLINE_OP, */
@@ -2493,7 +2606,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 111 */
     /* type PARROT_INLINE_OP, */
@@ -2505,7 +2619,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 112 */
     /* type PARROT_FUNCTION_OP, */
@@ -2517,7 +2632,8 @@
     5,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 113 */
     /* type PARROT_FUNCTION_OP, */
@@ -2529,7 +2645,8 @@
     5,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 114 */
     /* type PARROT_INLINE_OP, */
@@ -2541,7 +2658,8 @@
     2,
     { PARROT_ARG_P },
     { PARROT_ARGDIR_OUT },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 115 */
     /* type PARROT_INLINE_OP, */
@@ -2553,7 +2671,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 116 */
     /* type PARROT_INLINE_OP, */
@@ -2565,7 +2684,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 117 */
     /* type PARROT_INLINE_OP, */
@@ -2577,7 +2697,8 @@
     3,
     { PARROT_ARG_I, PARROT_ARG_I },
     { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 118 */
     /* type PARROT_INLINE_OP, */
@@ -2589,7 +2710,8 @@
     3,
     { PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 119 */
     /* type PARROT_INLINE_OP, */
@@ -2601,7 +2723,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 120 */
     /* type PARROT_INLINE_OP, */
@@ -2613,7 +2736,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 121 */
     /* type PARROT_INLINE_OP, */
@@ -2625,7 +2749,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 122 */
     /* type PARROT_INLINE_OP, */
@@ -2637,7 +2762,8 @@
     3,
     { PARROT_ARG_I, PARROT_ARG_I },
     { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 123 */
     /* type PARROT_INLINE_OP, */
@@ -2649,7 +2775,8 @@
     3,
     { PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 124 */
     /* type PARROT_INLINE_OP, */
@@ -2661,7 +2788,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 125 */
     /* type PARROT_INLINE_OP, */
@@ -2673,7 +2801,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 126 */
     /* type PARROT_INLINE_OP, */
@@ -2685,7 +2814,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 127 */
     /* type PARROT_INLINE_OP, */
@@ -2697,7 +2827,8 @@
     3,
     { PARROT_ARG_I, PARROT_ARG_I },
     { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 128 */
     /* type PARROT_INLINE_OP, */
@@ -2709,7 +2840,8 @@
     3,
     { PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 129 */
     /* type PARROT_INLINE_OP, */
@@ -2721,7 +2853,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 130 */
     /* type PARROT_INLINE_OP, */
@@ -2733,7 +2866,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 131 */
     /* type PARROT_INLINE_OP, */
@@ -2745,7 +2879,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 132 */
     /* type PARROT_INLINE_OP, */
@@ -2757,7 +2892,8 @@
     3,
     { PARROT_ARG_I, PARROT_ARG_I },
     { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 133 */
     /* type PARROT_INLINE_OP, */
@@ -2769,7 +2905,8 @@
     3,
     { PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 134 */
     /* type PARROT_INLINE_OP, */
@@ -2781,7 +2918,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 135 */
     /* type PARROT_INLINE_OP, */
@@ -2793,7 +2931,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 136 */
     /* type PARROT_INLINE_OP, */
@@ -2805,7 +2944,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 137 */
     /* type PARROT_INLINE_OP, */
@@ -2817,7 +2957,8 @@
     3,
     { PARROT_ARG_I, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 138 */
     /* type PARROT_INLINE_OP, */
@@ -2829,7 +2970,8 @@
     3,
     { PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 139 */
     /* type PARROT_INLINE_OP, */
@@ -2841,7 +2983,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 140 */
     /* type PARROT_INLINE_OP, */
@@ -2853,7 +2996,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 141 */
     /* type PARROT_INLINE_OP, */
@@ -2865,7 +3009,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 142 */
     /* type PARROT_INLINE_OP, */
@@ -2877,7 +3022,8 @@
     3,
     { PARROT_ARG_I, PARROT_ARG_I },
     { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 143 */
     /* type PARROT_INLINE_OP, */
@@ -2889,7 +3035,8 @@
     3,
     { PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 144 */
     /* type PARROT_INLINE_OP, */
@@ -2901,7 +3048,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 145 */
     /* type PARROT_INLINE_OP, */
@@ -2913,7 +3061,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 146 */
     /* type PARROT_INLINE_OP, */
@@ -2925,7 +3074,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 147 */
     /* type PARROT_INLINE_OP, */
@@ -2937,7 +3087,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 148 */
     /* type PARROT_INLINE_OP, */
@@ -2949,7 +3100,8 @@
     4,
     { PARROT_ARG_IC, PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 149 */
     /* type PARROT_INLINE_OP, */
@@ -2961,7 +3113,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 150 */
     /* type PARROT_INLINE_OP, */
@@ -2973,7 +3126,8 @@
     4,
     { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 151 */
     /* type PARROT_INLINE_OP, */
@@ -2985,7 +3139,8 @@
     4,
     { PARROT_ARG_NC, PARROT_ARG_N, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 152 */
     /* type PARROT_INLINE_OP, */
@@ -2997,7 +3152,8 @@
     4,
     { PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 153 */
     /* type PARROT_FUNCTION_OP, */
@@ -3009,7 +3165,8 @@
     4,
     { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 154 */
     /* type PARROT_FUNCTION_OP, */
@@ -3021,7 +3178,8 @@
     4,
     { PARROT_ARG_SC, PARROT_ARG_S, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 155 */
     /* type PARROT_FUNCTION_OP, */
@@ -3033,7 +3191,8 @@
     4,
     { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 156 */
     /* type PARROT_FUNCTION_OP, */
@@ -3045,7 +3204,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 157 */
     /* type PARROT_FUNCTION_OP, */
@@ -3057,7 +3217,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 158 */
     /* type PARROT_FUNCTION_OP, */
@@ -3069,7 +3230,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 159 */
     /* type PARROT_FUNCTION_OP, */
@@ -3081,7 +3243,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_N, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 160 */
     /* type PARROT_FUNCTION_OP, */
@@ -3093,7 +3256,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_NC, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 161 */
     /* type PARROT_FUNCTION_OP, */
@@ -3105,7 +3269,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 162 */
     /* type PARROT_FUNCTION_OP, */
@@ -3117,7 +3282,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 163 */
     /* type PARROT_FUNCTION_OP, */
@@ -3129,7 +3295,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 164 */
     /* type PARROT_FUNCTION_OP, */
@@ -3141,7 +3308,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 165 */
     /* type PARROT_FUNCTION_OP, */
@@ -3153,7 +3321,8 @@
     4,
     { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 166 */
     /* type PARROT_FUNCTION_OP, */
@@ -3165,7 +3334,8 @@
     4,
     { PARROT_ARG_SC, PARROT_ARG_S, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 167 */
     /* type PARROT_FUNCTION_OP, */
@@ -3177,7 +3347,8 @@
     4,
     { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 168 */
     /* type PARROT_FUNCTION_OP, */
@@ -3189,7 +3360,8 @@
     4,
     { PARROT_ARG_SC, PARROT_ARG_SC, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 169 */
     /* type PARROT_FUNCTION_OP, */
@@ -3201,7 +3373,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 170 */
     /* type PARROT_INLINE_OP, */
@@ -3213,7 +3386,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 171 */
     /* type PARROT_INLINE_OP, */
@@ -3225,7 +3399,8 @@
     4,
     { PARROT_ARG_IC, PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 172 */
     /* type PARROT_INLINE_OP, */
@@ -3237,7 +3412,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 173 */
     /* type PARROT_INLINE_OP, */
@@ -3249,7 +3425,8 @@
     4,
     { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 174 */
     /* type PARROT_INLINE_OP, */
@@ -3261,7 +3438,8 @@
     4,
     { PARROT_ARG_NC, PARROT_ARG_N, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 175 */
     /* type PARROT_INLINE_OP, */
@@ -3273,7 +3451,8 @@
     4,
     { PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 176 */
     /* type PARROT_FUNCTION_OP, */
@@ -3285,7 +3464,8 @@
     4,
     { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 177 */
     /* type PARROT_FUNCTION_OP, */
@@ -3297,7 +3477,8 @@
     4,
     { PARROT_ARG_SC, PARROT_ARG_S, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 178 */
     /* type PARROT_FUNCTION_OP, */
@@ -3309,7 +3490,8 @@
     4,
     { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 179 */
     /* type PARROT_FUNCTION_OP, */
@@ -3321,7 +3503,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 180 */
     /* type PARROT_FUNCTION_OP, */
@@ -3333,7 +3516,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 181 */
     /* type PARROT_FUNCTION_OP, */
@@ -3345,7 +3529,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 182 */
     /* type PARROT_FUNCTION_OP, */
@@ -3357,7 +3542,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_N, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 183 */
     /* type PARROT_FUNCTION_OP, */
@@ -3369,7 +3555,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_NC, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 184 */
     /* type PARROT_FUNCTION_OP, */
@@ -3381,7 +3568,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 185 */
     /* type PARROT_FUNCTION_OP, */
@@ -3393,7 +3581,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 186 */
     /* type PARROT_FUNCTION_OP, */
@@ -3405,7 +3594,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 187 */
     /* type PARROT_FUNCTION_OP, */
@@ -3417,7 +3607,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 188 */
     /* type PARROT_FUNCTION_OP, */
@@ -3429,7 +3620,8 @@
     4,
     { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 189 */
     /* type PARROT_FUNCTION_OP, */
@@ -3441,7 +3633,8 @@
     4,
     { PARROT_ARG_SC, PARROT_ARG_S, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 190 */
     /* type PARROT_FUNCTION_OP, */
@@ -3453,7 +3646,8 @@
     4,
     { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 191 */
     /* type PARROT_FUNCTION_OP, */
@@ -3465,7 +3659,8 @@
     4,
     { PARROT_ARG_SC, PARROT_ARG_SC, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 192 */
     /* type PARROT_FUNCTION_OP, */
@@ -3477,7 +3672,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 193 */
     /* type PARROT_INLINE_OP, */
@@ -3489,7 +3685,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 194 */
     /* type PARROT_INLINE_OP, */
@@ -3501,7 +3698,8 @@
     4,
     { PARROT_ARG_IC, PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 195 */
     /* type PARROT_INLINE_OP, */
@@ -3513,7 +3711,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 196 */
     /* type PARROT_INLINE_OP, */
@@ -3525,7 +3724,8 @@
     4,
     { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 197 */
     /* type PARROT_INLINE_OP, */
@@ -3537,7 +3737,8 @@
     4,
     { PARROT_ARG_NC, PARROT_ARG_N, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 198 */
     /* type PARROT_INLINE_OP, */
@@ -3549,7 +3750,8 @@
     4,
     { PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 199 */
     /* type PARROT_FUNCTION_OP, */
@@ -3561,7 +3763,8 @@
     4,
     { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 200 */
     /* type PARROT_FUNCTION_OP, */
@@ -3573,7 +3776,8 @@
     4,
     { PARROT_ARG_SC, PARROT_ARG_S, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 201 */
     /* type PARROT_FUNCTION_OP, */
@@ -3585,7 +3789,8 @@
     4,
     { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 202 */
     /* type PARROT_FUNCTION_OP, */
@@ -3597,7 +3802,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 203 */
     /* type PARROT_FUNCTION_OP, */
@@ -3609,7 +3815,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 204 */
     /* type PARROT_FUNCTION_OP, */
@@ -3621,7 +3828,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 205 */
     /* type PARROT_FUNCTION_OP, */
@@ -3633,7 +3841,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_N, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 206 */
     /* type PARROT_FUNCTION_OP, */
@@ -3645,7 +3854,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_NC, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 207 */
     /* type PARROT_FUNCTION_OP, */
@@ -3657,7 +3867,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 208 */
     /* type PARROT_FUNCTION_OP, */
@@ -3669,7 +3880,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 209 */
     /* type PARROT_FUNCTION_OP, */
@@ -3681,7 +3893,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 210 */
     /* type PARROT_FUNCTION_OP, */
@@ -3693,7 +3906,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 211 */
     /* type PARROT_INLINE_OP, */
@@ -3705,7 +3919,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 212 */
     /* type PARROT_INLINE_OP, */
@@ -3717,7 +3932,8 @@
     4,
     { PARROT_ARG_IC, PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 213 */
     /* type PARROT_INLINE_OP, */
@@ -3729,7 +3945,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 214 */
     /* type PARROT_INLINE_OP, */
@@ -3741,7 +3958,8 @@
     4,
     { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 215 */
     /* type PARROT_INLINE_OP, */
@@ -3753,7 +3971,8 @@
     4,
     { PARROT_ARG_NC, PARROT_ARG_N, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 216 */
     /* type PARROT_INLINE_OP, */
@@ -3765,7 +3984,8 @@
     4,
     { PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 217 */
     /* type PARROT_FUNCTION_OP, */
@@ -3777,7 +3997,8 @@
     4,
     { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 218 */
     /* type PARROT_FUNCTION_OP, */
@@ -3789,7 +4010,8 @@
     4,
     { PARROT_ARG_SC, PARROT_ARG_S, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 219 */
     /* type PARROT_FUNCTION_OP, */
@@ -3801,7 +4023,8 @@
     4,
     { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 220 */
     /* type PARROT_FUNCTION_OP, */
@@ -3813,7 +4036,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 221 */
     /* type PARROT_FUNCTION_OP, */
@@ -3825,7 +4049,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 222 */
     /* type PARROT_FUNCTION_OP, */
@@ -3837,7 +4062,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 223 */
     /* type PARROT_FUNCTION_OP, */
@@ -3849,7 +4075,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_N, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 224 */
     /* type PARROT_FUNCTION_OP, */
@@ -3861,7 +4088,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_NC, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 225 */
     /* type PARROT_FUNCTION_OP, */
@@ -3873,7 +4101,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 226 */
     /* type PARROT_FUNCTION_OP, */
@@ -3885,7 +4114,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 227 */
     /* type PARROT_FUNCTION_OP, */
@@ -3897,7 +4127,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 228 */
     /* type PARROT_FUNCTION_OP, */
@@ -3909,7 +4140,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 229 */
     /* type PARROT_FUNCTION_OP, */
@@ -3921,7 +4153,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 230 */
     /* type PARROT_FUNCTION_OP, */
@@ -3933,7 +4166,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 231 */
     /* type PARROT_FUNCTION_OP, */
@@ -3945,7 +4179,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 232 */
     /* type PARROT_FUNCTION_OP, */
@@ -3957,7 +4192,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_N, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 233 */
     /* type PARROT_FUNCTION_OP, */
@@ -3969,7 +4205,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_NC, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 234 */
     /* type PARROT_FUNCTION_OP, */
@@ -3981,7 +4218,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 235 */
     /* type PARROT_FUNCTION_OP, */
@@ -3993,7 +4231,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 236 */
     /* type PARROT_FUNCTION_OP, */
@@ -4005,7 +4244,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 237 */
     /* type PARROT_FUNCTION_OP, */
@@ -4017,7 +4257,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 238 */
     /* type PARROT_FUNCTION_OP, */
@@ -4029,7 +4270,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 239 */
     /* type PARROT_FUNCTION_OP, */
@@ -4041,7 +4283,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 240 */
     /* type PARROT_FUNCTION_OP, */
@@ -4053,7 +4296,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 241 */
     /* type PARROT_FUNCTION_OP, */
@@ -4065,7 +4309,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_N, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 242 */
     /* type PARROT_FUNCTION_OP, */
@@ -4077,7 +4322,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_NC, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 243 */
     /* type PARROT_FUNCTION_OP, */
@@ -4089,7 +4335,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 244 */
     /* type PARROT_FUNCTION_OP, */
@@ -4101,7 +4348,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 245 */
     /* type PARROT_FUNCTION_OP, */
@@ -4113,7 +4361,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 246 */
     /* type PARROT_FUNCTION_OP, */
@@ -4125,7 +4374,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 1 }
+    { 0, 0, 1 },
+    &core_op_lib
   },
   { /* 247 */
     /* type PARROT_FUNCTION_OP, */
@@ -4137,7 +4387,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 1 }
+    { 0, 1 },
+    &core_op_lib
   },
   { /* 248 */
     /* type PARROT_FUNCTION_OP, */
@@ -4149,7 +4400,8 @@
     3,
     { PARROT_ARG_S, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 1 }
+    { 0, 1 },
+    &core_op_lib
   },
   { /* 249 */
     /* type PARROT_FUNCTION_OP, */
@@ -4161,7 +4413,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 1 }
+    { 0, 1 },
+    &core_op_lib
   },
   { /* 250 */
     /* type PARROT_FUNCTION_OP, */
@@ -4173,7 +4426,8 @@
     3,
     { PARROT_ARG_S, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 1 }
+    { 0, 1 },
+    &core_op_lib
   },
   { /* 251 */
     /* type PARROT_INLINE_OP, */
@@ -4185,7 +4439,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 252 */
     /* type PARROT_INLINE_OP, */
@@ -4197,7 +4452,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 253 */
     /* type PARROT_INLINE_OP, */
@@ -4209,7 +4465,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 254 */
     /* type PARROT_INLINE_OP, */
@@ -4221,7 +4478,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_N, PARROT_ARG_N },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 255 */
     /* type PARROT_INLINE_OP, */
@@ -4233,7 +4491,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_NC, PARROT_ARG_N },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 256 */
     /* type PARROT_INLINE_OP, */
@@ -4245,7 +4504,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_N, PARROT_ARG_NC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 257 */
     /* type PARROT_INLINE_OP, */
@@ -4257,7 +4517,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 258 */
     /* type PARROT_INLINE_OP, */
@@ -4269,7 +4530,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 259 */
     /* type PARROT_INLINE_OP, */
@@ -4281,7 +4543,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 260 */
     /* type PARROT_INLINE_OP, */
@@ -4293,7 +4556,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 261 */
     /* type PARROT_INLINE_OP, */
@@ -4305,7 +4569,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 262 */
     /* type PARROT_INLINE_OP, */
@@ -4317,7 +4582,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 263 */
     /* type PARROT_INLINE_OP, */
@@ -4329,7 +4595,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_N },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 264 */
     /* type PARROT_INLINE_OP, */
@@ -4341,7 +4608,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_NC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 265 */
     /* type PARROT_INLINE_OP, */
@@ -4353,7 +4621,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 266 */
     /* type PARROT_INLINE_OP, */
@@ -4365,7 +4634,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 267 */
     /* type PARROT_INLINE_OP, */
@@ -4377,7 +4647,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 268 */
     /* type PARROT_INLINE_OP, */
@@ -4389,7 +4660,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 269 */
     /* type PARROT_INLINE_OP, */
@@ -4401,7 +4673,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 270 */
     /* type PARROT_INLINE_OP, */
@@ -4413,7 +4686,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 271 */
     /* type PARROT_INLINE_OP, */
@@ -4425,7 +4699,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 272 */
     /* type PARROT_INLINE_OP, */
@@ -4437,7 +4712,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 273 */
     /* type PARROT_INLINE_OP, */
@@ -4449,7 +4725,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 274 */
     /* type PARROT_INLINE_OP, */
@@ -4461,7 +4738,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 275 */
     /* type PARROT_INLINE_OP, */
@@ -4473,7 +4751,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 276 */
     /* type PARROT_INLINE_OP, */
@@ -4485,7 +4764,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 277 */
     /* type PARROT_INLINE_OP, */
@@ -4497,7 +4777,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 278 */
     /* type PARROT_INLINE_OP, */
@@ -4509,7 +4790,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 279 */
     /* type PARROT_INLINE_OP, */
@@ -4521,7 +4803,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 280 */
     /* type PARROT_INLINE_OP, */
@@ -4533,7 +4816,8 @@
     3,
     { PARROT_ARG_I, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 281 */
     /* type PARROT_INLINE_OP, */
@@ -4545,7 +4829,8 @@
     3,
     { PARROT_ARG_I, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 282 */
     /* type PARROT_INLINE_OP, */
@@ -4557,7 +4842,8 @@
     3,
     { PARROT_ARG_I, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 283 */
     /* type PARROT_INLINE_OP, */
@@ -4569,7 +4855,8 @@
     3,
     { PARROT_ARG_I, PARROT_ARG_PC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 284 */
     /* type PARROT_INLINE_OP, */
@@ -4581,7 +4868,8 @@
     3,
     { PARROT_ARG_I, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 285 */
     /* type PARROT_INLINE_OP, */
@@ -4593,7 +4881,8 @@
     3,
     { PARROT_ARG_I, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 286 */
     /* type PARROT_INLINE_OP, */
@@ -4605,7 +4894,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 287 */
     /* type PARROT_INLINE_OP, */
@@ -4617,7 +4907,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 288 */
     /* type PARROT_INLINE_OP, */
@@ -4629,7 +4920,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 289 */
     /* type PARROT_INLINE_OP, */
@@ -4641,7 +4933,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 290 */
     /* type PARROT_INLINE_OP, */
@@ -4653,7 +4946,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 291 */
     /* type PARROT_INLINE_OP, */
@@ -4665,7 +4959,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_N, PARROT_ARG_N },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 292 */
     /* type PARROT_INLINE_OP, */
@@ -4677,7 +4972,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_NC, PARROT_ARG_N },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 293 */
     /* type PARROT_INLINE_OP, */
@@ -4689,7 +4985,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_N, PARROT_ARG_NC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 294 */
     /* type PARROT_INLINE_OP, */
@@ -4701,7 +4998,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 295 */
     /* type PARROT_INLINE_OP, */
@@ -4713,7 +5011,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 296 */
     /* type PARROT_INLINE_OP, */
@@ -4725,7 +5024,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 297 */
     /* type PARROT_INLINE_OP, */
@@ -4737,7 +5037,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 298 */
     /* type PARROT_INLINE_OP, */
@@ -4749,7 +5050,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 299 */
     /* type PARROT_INLINE_OP, */
@@ -4761,7 +5063,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 300 */
     /* type PARROT_INLINE_OP, */
@@ -4773,7 +5076,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 301 */
     /* type PARROT_INLINE_OP, */
@@ -4785,7 +5089,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_N, PARROT_ARG_N },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 302 */
     /* type PARROT_INLINE_OP, */
@@ -4797,7 +5102,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_NC, PARROT_ARG_N },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 303 */
     /* type PARROT_INLINE_OP, */
@@ -4809,7 +5115,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_N, PARROT_ARG_NC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 304 */
     /* type PARROT_INLINE_OP, */
@@ -4821,7 +5128,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 305 */
     /* type PARROT_INLINE_OP, */
@@ -4833,7 +5141,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 306 */
     /* type PARROT_INLINE_OP, */
@@ -4845,7 +5154,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 307 */
     /* type PARROT_INLINE_OP, */
@@ -4857,7 +5167,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 308 */
     /* type PARROT_INLINE_OP, */
@@ -4869,7 +5180,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 309 */
     /* type PARROT_INLINE_OP, */
@@ -4881,7 +5193,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 310 */
     /* type PARROT_INLINE_OP, */
@@ -4893,7 +5206,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 311 */
     /* type PARROT_INLINE_OP, */
@@ -4905,7 +5219,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_N, PARROT_ARG_N },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 312 */
     /* type PARROT_INLINE_OP, */
@@ -4917,7 +5232,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_NC, PARROT_ARG_N },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 313 */
     /* type PARROT_INLINE_OP, */
@@ -4929,7 +5245,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_N, PARROT_ARG_NC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 314 */
     /* type PARROT_INLINE_OP, */
@@ -4941,7 +5258,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 315 */
     /* type PARROT_INLINE_OP, */
@@ -4953,7 +5271,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 316 */
     /* type PARROT_INLINE_OP, */
@@ -4965,7 +5284,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 317 */
     /* type PARROT_INLINE_OP, */
@@ -4977,7 +5297,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 318 */
     /* type PARROT_INLINE_OP, */
@@ -4989,7 +5310,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 319 */
     /* type PARROT_INLINE_OP, */
@@ -5001,7 +5323,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 320 */
     /* type PARROT_INLINE_OP, */
@@ -5013,7 +5336,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 321 */
     /* type PARROT_INLINE_OP, */
@@ -5025,7 +5349,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_N, PARROT_ARG_N },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 322 */
     /* type PARROT_INLINE_OP, */
@@ -5037,7 +5362,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_NC, PARROT_ARG_N },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 323 */
     /* type PARROT_INLINE_OP, */
@@ -5049,7 +5375,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_N, PARROT_ARG_NC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 324 */
     /* type PARROT_INLINE_OP, */
@@ -5061,7 +5388,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 325 */
     /* type PARROT_INLINE_OP, */
@@ -5073,7 +5401,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 326 */
     /* type PARROT_INLINE_OP, */
@@ -5085,7 +5414,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 327 */
     /* type PARROT_INLINE_OP, */
@@ -5097,7 +5427,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 328 */
     /* type PARROT_INLINE_OP, */
@@ -5109,7 +5440,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 329 */
     /* type PARROT_INLINE_OP, */
@@ -5121,7 +5453,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 330 */
     /* type PARROT_INLINE_OP, */
@@ -5133,7 +5466,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 331 */
     /* type PARROT_INLINE_OP, */
@@ -5145,7 +5479,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 332 */
     /* type PARROT_INLINE_OP, */
@@ -5157,7 +5492,8 @@
     2,
     { PARROT_ARG_I },
     { PARROT_ARGDIR_INOUT },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 333 */
     /* type PARROT_INLINE_OP, */
@@ -5169,7 +5505,8 @@
     3,
     { PARROT_ARG_I, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 334 */
     /* type PARROT_INLINE_OP, */
@@ -5181,7 +5518,8 @@
     2,
     { PARROT_ARG_P },
     { PARROT_ARGDIR_IN },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 335 */
     /* type PARROT_INLINE_OP, */
@@ -5193,7 +5531,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 336 */
     /* type PARROT_INLINE_OP, */
@@ -5205,7 +5544,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 337 */
     /* type PARROT_INLINE_OP, */
@@ -5217,7 +5557,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 338 */
     /* type PARROT_INLINE_OP, */
@@ -5229,7 +5570,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 339 */
     /* type PARROT_INLINE_OP, */
@@ -5241,7 +5583,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 340 */
     /* type PARROT_INLINE_OP, */
@@ -5253,7 +5596,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 341 */
     /* type PARROT_INLINE_OP, */
@@ -5265,7 +5609,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 342 */
     /* type PARROT_INLINE_OP, */
@@ -5277,7 +5622,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 343 */
     /* type PARROT_INLINE_OP, */
@@ -5289,7 +5635,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 344 */
     /* type PARROT_INLINE_OP, */
@@ -5301,7 +5648,8 @@
     2,
     { PARROT_ARG_I },
     { PARROT_ARGDIR_IN },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 345 */
     /* type PARROT_INLINE_OP, */
@@ -5313,7 +5661,8 @@
     2,
     { PARROT_ARG_IC },
     { PARROT_ARGDIR_IN },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 346 */
     /* type PARROT_INLINE_OP, */
@@ -5325,7 +5674,8 @@
     2,
     { PARROT_ARG_N },
     { PARROT_ARGDIR_IN },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 347 */
     /* type PARROT_INLINE_OP, */
@@ -5337,7 +5687,8 @@
     2,
     { PARROT_ARG_NC },
     { PARROT_ARGDIR_IN },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 348 */
     /* type PARROT_FUNCTION_OP, */
@@ -5349,7 +5700,8 @@
     2,
     { PARROT_ARG_S },
     { PARROT_ARGDIR_IN },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 349 */
     /* type PARROT_FUNCTION_OP, */
@@ -5361,7 +5713,8 @@
     2,
     { PARROT_ARG_SC },
     { PARROT_ARGDIR_IN },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 350 */
     /* type PARROT_FUNCTION_OP, */
@@ -5373,7 +5726,8 @@
     2,
     { PARROT_ARG_P },
     { PARROT_ARGDIR_IN },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 351 */
     /* type PARROT_INLINE_OP, */
@@ -5385,7 +5739,8 @@
     2,
     { PARROT_ARG_I },
     { PARROT_ARGDIR_IN },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 352 */
     /* type PARROT_INLINE_OP, */
@@ -5397,7 +5752,8 @@
     2,
     { PARROT_ARG_IC },
     { PARROT_ARGDIR_IN },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 353 */
     /* type PARROT_INLINE_OP, */
@@ -5409,7 +5765,8 @@
     2,
     { PARROT_ARG_N },
     { PARROT_ARGDIR_IN },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 354 */
     /* type PARROT_INLINE_OP, */
@@ -5421,7 +5778,8 @@
     2,
     { PARROT_ARG_NC },
     { PARROT_ARGDIR_IN },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 355 */
     /* type PARROT_FUNCTION_OP, */
@@ -5433,7 +5791,8 @@
     2,
     { PARROT_ARG_S },
     { PARROT_ARGDIR_IN },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 356 */
     /* type PARROT_FUNCTION_OP, */
@@ -5445,7 +5804,8 @@
     2,
     { PARROT_ARG_SC },
     { PARROT_ARGDIR_IN },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 357 */
     /* type PARROT_FUNCTION_OP, */
@@ -5457,7 +5817,8 @@
     2,
     { PARROT_ARG_P },
     { PARROT_ARGDIR_IN },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 358 */
     /* type PARROT_FUNCTION_OP, */
@@ -5469,7 +5830,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_I },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 359 */
     /* type PARROT_FUNCTION_OP, */
@@ -5481,7 +5843,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 360 */
     /* type PARROT_FUNCTION_OP, */
@@ -5493,7 +5856,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_N },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 361 */
     /* type PARROT_FUNCTION_OP, */
@@ -5505,7 +5869,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_NC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 362 */
     /* type PARROT_FUNCTION_OP, */
@@ -5517,7 +5882,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_S },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 363 */
     /* type PARROT_FUNCTION_OP, */
@@ -5529,7 +5895,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_SC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 364 */
     /* type PARROT_FUNCTION_OP, */
@@ -5541,7 +5908,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 365 */
     /* type PARROT_INLINE_OP, */
@@ -5553,7 +5921,8 @@
     2,
     { PARROT_ARG_P },
     { PARROT_ARGDIR_OUT },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 366 */
     /* type PARROT_INLINE_OP, */
@@ -5565,7 +5934,8 @@
     2,
     { PARROT_ARG_P },
     { PARROT_ARGDIR_OUT },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 367 */
     /* type PARROT_INLINE_OP, */
@@ -5577,7 +5947,8 @@
     2,
     { PARROT_ARG_P },
     { PARROT_ARGDIR_OUT },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 368 */
     /* type PARROT_INLINE_OP, */
@@ -5589,7 +5960,8 @@
     2,
     { PARROT_ARG_I },
     { PARROT_ARGDIR_INOUT },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 369 */
     /* type PARROT_INLINE_OP, */
@@ -5601,7 +5973,8 @@
     2,
     { PARROT_ARG_N },
     { PARROT_ARGDIR_INOUT },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 370 */
     /* type PARROT_INLINE_OP, */
@@ -5613,7 +5986,8 @@
     3,
     { PARROT_ARG_I, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 371 */
     /* type PARROT_INLINE_OP, */
@@ -5625,7 +5999,8 @@
     3,
     { PARROT_ARG_N, PARROT_ARG_N },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 372 */
     /* type PARROT_INLINE_OP, */
@@ -5637,7 +6012,8 @@
     2,
     { PARROT_ARG_P },
     { PARROT_ARGDIR_IN },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 373 */
     /* type PARROT_INLINE_OP, */
@@ -5649,7 +6025,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 374 */
     /* type PARROT_INLINE_OP, */
@@ -5661,7 +6038,8 @@
     3,
     { PARROT_ARG_I, PARROT_ARG_I },
     { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 375 */
     /* type PARROT_INLINE_OP, */
@@ -5673,7 +6051,8 @@
     3,
     { PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 376 */
     /* type PARROT_INLINE_OP, */
@@ -5685,7 +6064,8 @@
     3,
     { PARROT_ARG_N, PARROT_ARG_N },
     { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 377 */
     /* type PARROT_INLINE_OP, */
@@ -5697,7 +6077,8 @@
     3,
     { PARROT_ARG_N, PARROT_ARG_NC },
     { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 378 */
     /* type PARROT_INLINE_OP, */
@@ -5709,7 +6090,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 379 */
     /* type PARROT_INLINE_OP, */
@@ -5721,7 +6103,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_I },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 380 */
     /* type PARROT_INLINE_OP, */
@@ -5733,7 +6116,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 381 */
     /* type PARROT_INLINE_OP, */
@@ -5745,7 +6129,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_N },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 382 */
     /* type PARROT_INLINE_OP, */
@@ -5757,7 +6142,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_NC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 383 */
     /* type PARROT_INLINE_OP, */
@@ -5769,7 +6155,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 384 */
     /* type PARROT_INLINE_OP, */
@@ -5781,7 +6168,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 385 */
     /* type PARROT_INLINE_OP, */
@@ -5793,7 +6181,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 386 */
     /* type PARROT_INLINE_OP, */
@@ -5805,7 +6194,8 @@
     4,
     { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_N },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 387 */
     /* type PARROT_INLINE_OP, */
@@ -5817,7 +6207,8 @@
     4,
     { PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_N },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 388 */
     /* type PARROT_INLINE_OP, */
@@ -5829,7 +6220,8 @@
     4,
     { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_NC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 389 */
     /* type PARROT_INLINE_OP, */
@@ -5841,7 +6233,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 390 */
     /* type PARROT_INLINE_OP, */
@@ -5853,7 +6246,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 391 */
     /* type PARROT_INLINE_OP, */
@@ -5865,7 +6259,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 392 */
     /* type PARROT_INLINE_OP, */
@@ -5877,7 +6272,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_N },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 393 */
     /* type PARROT_INLINE_OP, */
@@ -5889,7 +6285,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_NC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 394 */
     /* type PARROT_INLINE_OP, */
@@ -5901,7 +6298,8 @@
     2,
     { PARROT_ARG_I },
     { PARROT_ARGDIR_INOUT },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 395 */
     /* type PARROT_INLINE_OP, */
@@ -5913,7 +6311,8 @@
     2,
     { PARROT_ARG_N },
     { PARROT_ARGDIR_INOUT },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 396 */
     /* type PARROT_INLINE_OP, */
@@ -5925,7 +6324,8 @@
     2,
     { PARROT_ARG_P },
     { PARROT_ARGDIR_IN },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 397 */
     /* type PARROT_INLINE_OP, */
@@ -5937,7 +6337,8 @@
     3,
     { PARROT_ARG_I, PARROT_ARG_I },
     { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 398 */
     /* type PARROT_INLINE_OP, */
@@ -5949,7 +6350,8 @@
     3,
     { PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 399 */
     /* type PARROT_INLINE_OP, */
@@ -5961,7 +6363,8 @@
     3,
     { PARROT_ARG_N, PARROT_ARG_N },
     { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 400 */
     /* type PARROT_INLINE_OP, */
@@ -5973,7 +6376,8 @@
     3,
     { PARROT_ARG_N, PARROT_ARG_NC },
     { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 401 */
     /* type PARROT_INLINE_OP, */
@@ -5985,7 +6389,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 402 */
     /* type PARROT_INLINE_OP, */
@@ -5997,7 +6402,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_I },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 403 */
     /* type PARROT_INLINE_OP, */
@@ -6009,7 +6415,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 404 */
     /* type PARROT_INLINE_OP, */
@@ -6021,7 +6428,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_N },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 405 */
     /* type PARROT_INLINE_OP, */
@@ -6033,7 +6441,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_NC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 406 */
     /* type PARROT_INLINE_OP, */
@@ -6045,7 +6454,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 407 */
     /* type PARROT_INLINE_OP, */
@@ -6057,7 +6467,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 408 */
     /* type PARROT_INLINE_OP, */
@@ -6069,7 +6480,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 409 */
     /* type PARROT_INLINE_OP, */
@@ -6081,7 +6493,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 410 */
     /* type PARROT_INLINE_OP, */
@@ -6093,7 +6506,8 @@
     4,
     { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_N },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 411 */
     /* type PARROT_INLINE_OP, */
@@ -6105,7 +6519,8 @@
     4,
     { PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_N },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 412 */
     /* type PARROT_INLINE_OP, */
@@ -6117,7 +6532,8 @@
     4,
     { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_NC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 413 */
     /* type PARROT_INLINE_OP, */
@@ -6129,7 +6545,8 @@
     4,
     { PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_NC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 414 */
     /* type PARROT_INLINE_OP, */
@@ -6141,7 +6558,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 415 */
     /* type PARROT_INLINE_OP, */
@@ -6153,7 +6571,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 416 */
     /* type PARROT_INLINE_OP, */
@@ -6165,7 +6584,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 417 */
     /* type PARROT_INLINE_OP, */
@@ -6177,7 +6597,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_N },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 418 */
     /* type PARROT_INLINE_OP, */
@@ -6189,7 +6610,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_NC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 419 */
     /* type PARROT_INLINE_OP, */
@@ -6201,7 +6623,8 @@
     3,
     { PARROT_ARG_I, PARROT_ARG_I },
     { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 420 */
     /* type PARROT_INLINE_OP, */
@@ -6213,7 +6636,8 @@
     3,
     { PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 421 */
     /* type PARROT_INLINE_OP, */
@@ -6225,7 +6649,8 @@
     3,
     { PARROT_ARG_N, PARROT_ARG_N },
     { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 422 */
     /* type PARROT_INLINE_OP, */
@@ -6237,7 +6662,8 @@
     3,
     { PARROT_ARG_N, PARROT_ARG_NC },
     { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 423 */
     /* type PARROT_INLINE_OP, */
@@ -6249,7 +6675,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 424 */
     /* type PARROT_INLINE_OP, */
@@ -6261,7 +6688,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_I },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 425 */
     /* type PARROT_INLINE_OP, */
@@ -6273,7 +6701,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 426 */
     /* type PARROT_INLINE_OP, */
@@ -6285,7 +6714,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_N },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 427 */
     /* type PARROT_INLINE_OP, */
@@ -6297,7 +6727,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_NC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 428 */
     /* type PARROT_INLINE_OP, */
@@ -6309,7 +6740,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 429 */
     /* type PARROT_INLINE_OP, */
@@ -6321,7 +6753,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 430 */
     /* type PARROT_INLINE_OP, */
@@ -6333,7 +6766,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 431 */
     /* type PARROT_INLINE_OP, */
@@ -6345,7 +6779,8 @@
     4,
     { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_N },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 432 */
     /* type PARROT_INLINE_OP, */
@@ -6357,7 +6792,8 @@
     4,
     { PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_N },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 433 */
     /* type PARROT_INLINE_OP, */
@@ -6369,7 +6805,8 @@
     4,
     { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_NC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 434 */
     /* type PARROT_INLINE_OP, */
@@ -6381,7 +6818,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 435 */
     /* type PARROT_INLINE_OP, */
@@ -6393,7 +6831,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 436 */
     /* type PARROT_INLINE_OP, */
@@ -6405,7 +6844,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 437 */
     /* type PARROT_INLINE_OP, */
@@ -6417,7 +6857,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_N },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 438 */
     /* type PARROT_INLINE_OP, */
@@ -6429,7 +6870,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_NC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 439 */
     /* type PARROT_INLINE_OP, */
@@ -6441,7 +6883,8 @@
     2,
     { PARROT_ARG_N },
     { PARROT_ARGDIR_INOUT },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 440 */
     /* type PARROT_INLINE_OP, */
@@ -6453,7 +6896,8 @@
     3,
     { PARROT_ARG_I, PARROT_ARG_N },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 441 */
     /* type PARROT_INLINE_OP, */
@@ -6465,7 +6909,8 @@
     3,
     { PARROT_ARG_N, PARROT_ARG_N },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 442 */
     /* type PARROT_INLINE_OP, */
@@ -6477,7 +6922,8 @@
     2,
     { PARROT_ARG_N },
     { PARROT_ARGDIR_INOUT },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 443 */
     /* type PARROT_INLINE_OP, */
@@ -6489,7 +6935,8 @@
     3,
     { PARROT_ARG_I, PARROT_ARG_N },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 444 */
     /* type PARROT_INLINE_OP, */
@@ -6501,7 +6948,8 @@
     3,
     { PARROT_ARG_N, PARROT_ARG_N },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 445 */
     /* type PARROT_INLINE_OP, */
@@ -6513,7 +6961,8 @@
     2,
     { PARROT_ARG_I },
     { PARROT_ARGDIR_INOUT },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 446 */
     /* type PARROT_INLINE_OP, */
@@ -6525,7 +6974,8 @@
     2,
     { PARROT_ARG_N },
     { PARROT_ARGDIR_INOUT },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 447 */
     /* type PARROT_INLINE_OP, */
@@ -6537,7 +6987,8 @@
     2,
     { PARROT_ARG_P },
     { PARROT_ARGDIR_IN },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 448 */
     /* type PARROT_FUNCTION_OP, */
@@ -6549,7 +7000,8 @@
     3,
     { PARROT_ARG_I, PARROT_ARG_I },
     { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 449 */
     /* type PARROT_FUNCTION_OP, */
@@ -6561,7 +7013,8 @@
     3,
     { PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 450 */
     /* type PARROT_FUNCTION_OP, */
@@ -6573,7 +7026,8 @@
     3,
     { PARROT_ARG_N, PARROT_ARG_N },
     { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 451 */
     /* type PARROT_FUNCTION_OP, */
@@ -6585,7 +7039,8 @@
     3,
     { PARROT_ARG_N, PARROT_ARG_NC },
     { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 452 */
     /* type PARROT_INLINE_OP, */
@@ -6597,7 +7052,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 453 */
     /* type PARROT_INLINE_OP, */
@@ -6609,7 +7065,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_I },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 454 */
     /* type PARROT_INLINE_OP, */
@@ -6621,7 +7078,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 455 */
     /* type PARROT_INLINE_OP, */
@@ -6633,7 +7091,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_N },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 456 */
     /* type PARROT_INLINE_OP, */
@@ -6645,7 +7104,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_NC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 457 */
     /* type PARROT_FUNCTION_OP, */
@@ -6657,7 +7117,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 458 */
     /* type PARROT_FUNCTION_OP, */
@@ -6669,7 +7130,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 459 */
     /* type PARROT_FUNCTION_OP, */
@@ -6681,7 +7143,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 460 */
     /* type PARROT_FUNCTION_OP, */
@@ -6693,7 +7156,8 @@
     4,
     { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_N },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 461 */
     /* type PARROT_FUNCTION_OP, */
@@ -6705,7 +7169,8 @@
     4,
     { PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_N },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 462 */
     /* type PARROT_FUNCTION_OP, */
@@ -6717,7 +7182,8 @@
     4,
     { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_NC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 463 */
     /* type PARROT_INLINE_OP, */
@@ -6729,7 +7195,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 464 */
     /* type PARROT_INLINE_OP, */
@@ -6741,7 +7208,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 465 */
     /* type PARROT_INLINE_OP, */
@@ -6753,7 +7221,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 466 */
     /* type PARROT_INLINE_OP, */
@@ -6765,7 +7234,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_N },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 467 */
     /* type PARROT_INLINE_OP, */
@@ -6777,7 +7247,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_NC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 468 */
     /* type PARROT_INLINE_OP, */
@@ -6789,7 +7260,8 @@
     3,
     { PARROT_ARG_I, PARROT_ARG_I },
     { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 469 */
     /* type PARROT_INLINE_OP, */
@@ -6801,7 +7273,8 @@
     3,
     { PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 470 */
     /* type PARROT_INLINE_OP, */
@@ -6813,7 +7286,8 @@
     3,
     { PARROT_ARG_N, PARROT_ARG_N },
     { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 471 */
     /* type PARROT_INLINE_OP, */
@@ -6825,7 +7299,8 @@
     3,
     { PARROT_ARG_N, PARROT_ARG_NC },
     { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 472 */
     /* type PARROT_INLINE_OP, */
@@ -6837,7 +7312,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 473 */
     /* type PARROT_INLINE_OP, */
@@ -6849,7 +7325,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_I },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 474 */
     /* type PARROT_INLINE_OP, */
@@ -6861,7 +7338,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 475 */
     /* type PARROT_INLINE_OP, */
@@ -6873,7 +7351,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_N },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 476 */
     /* type PARROT_INLINE_OP, */
@@ -6885,7 +7364,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_NC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 477 */
     /* type PARROT_INLINE_OP, */
@@ -6897,7 +7377,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 478 */
     /* type PARROT_INLINE_OP, */
@@ -6909,7 +7390,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 479 */
     /* type PARROT_INLINE_OP, */
@@ -6921,7 +7403,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 480 */
     /* type PARROT_INLINE_OP, */
@@ -6933,7 +7416,8 @@
     4,
     { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_N },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 481 */
     /* type PARROT_INLINE_OP, */
@@ -6945,7 +7429,8 @@
     4,
     { PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_N },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 482 */
     /* type PARROT_INLINE_OP, */
@@ -6957,7 +7442,8 @@
     4,
     { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_NC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 483 */
     /* type PARROT_INLINE_OP, */
@@ -6969,7 +7455,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 484 */
     /* type PARROT_INLINE_OP, */
@@ -6981,7 +7468,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 485 */
     /* type PARROT_INLINE_OP, */
@@ -6993,7 +7481,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 486 */
     /* type PARROT_INLINE_OP, */
@@ -7005,7 +7494,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_N },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 487 */
     /* type PARROT_INLINE_OP, */
@@ -7017,7 +7507,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_NC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 488 */
     /* type PARROT_INLINE_OP, */
@@ -7029,7 +7520,8 @@
     2,
     { PARROT_ARG_I },
     { PARROT_ARGDIR_INOUT },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 489 */
     /* type PARROT_INLINE_OP, */
@@ -7041,7 +7533,8 @@
     2,
     { PARROT_ARG_N },
     { PARROT_ARGDIR_INOUT },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 490 */
     /* type PARROT_INLINE_OP, */
@@ -7053,7 +7546,8 @@
     2,
     { PARROT_ARG_P },
     { PARROT_ARGDIR_IN },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 491 */
     /* type PARROT_INLINE_OP, */
@@ -7065,7 +7559,8 @@
     3,
     { PARROT_ARG_I, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 492 */
     /* type PARROT_INLINE_OP, */
@@ -7077,7 +7572,8 @@
     3,
     { PARROT_ARG_N, PARROT_ARG_N },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 493 */
     /* type PARROT_INLINE_OP, */
@@ -7089,7 +7585,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 494 */
     /* type PARROT_INLINE_OP, */
@@ -7101,7 +7598,8 @@
     3,
     { PARROT_ARG_I, PARROT_ARG_I },
     { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 495 */
     /* type PARROT_INLINE_OP, */
@@ -7113,7 +7611,8 @@
     3,
     { PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 496 */
     /* type PARROT_INLINE_OP, */
@@ -7125,7 +7624,8 @@
     3,
     { PARROT_ARG_N, PARROT_ARG_N },
     { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 497 */
     /* type PARROT_INLINE_OP, */
@@ -7137,7 +7637,8 @@
     3,
     { PARROT_ARG_N, PARROT_ARG_NC },
     { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 498 */
     /* type PARROT_INLINE_OP, */
@@ -7149,7 +7650,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 499 */
     /* type PARROT_INLINE_OP, */
@@ -7161,7 +7663,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_I },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 500 */
     /* type PARROT_INLINE_OP, */
@@ -7173,7 +7676,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 501 */
     /* type PARROT_INLINE_OP, */
@@ -7185,7 +7689,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_N },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 502 */
     /* type PARROT_INLINE_OP, */
@@ -7197,7 +7702,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_NC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 503 */
     /* type PARROT_INLINE_OP, */
@@ -7209,7 +7715,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 504 */
     /* type PARROT_INLINE_OP, */
@@ -7221,7 +7728,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 505 */
     /* type PARROT_INLINE_OP, */
@@ -7233,7 +7741,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 506 */
     /* type PARROT_INLINE_OP, */
@@ -7245,7 +7754,8 @@
     4,
     { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_N },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 507 */
     /* type PARROT_INLINE_OP, */
@@ -7257,7 +7767,8 @@
     4,
     { PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_N },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 508 */
     /* type PARROT_INLINE_OP, */
@@ -7269,7 +7780,8 @@
     4,
     { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_NC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 509 */
     /* type PARROT_INLINE_OP, */
@@ -7281,7 +7793,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 510 */
     /* type PARROT_INLINE_OP, */
@@ -7293,7 +7806,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 511 */
     /* type PARROT_INLINE_OP, */
@@ -7305,7 +7819,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 512 */
     /* type PARROT_INLINE_OP, */
@@ -7317,7 +7832,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_N },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 513 */
     /* type PARROT_INLINE_OP, */
@@ -7329,7 +7845,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_NC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 514 */
     /* type PARROT_INLINE_OP, */
@@ -7341,7 +7858,8 @@
     3,
     { PARROT_ARG_N, PARROT_ARG_N },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 515 */
     /* type PARROT_FUNCTION_OP, */
@@ -7353,7 +7871,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_S },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 516 */
     /* type PARROT_FUNCTION_OP, */
@@ -7365,7 +7884,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_SC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 517 */
     /* type PARROT_FUNCTION_OP, */
@@ -7377,7 +7897,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 518 */
     /* type PARROT_FUNCTION_OP, */
@@ -7389,7 +7910,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 519 */
     /* type PARROT_FUNCTION_OP, */
@@ -7401,7 +7923,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 520 */
     /* type PARROT_FUNCTION_OP, */
@@ -7413,7 +7936,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 521 */
     /* type PARROT_FUNCTION_OP, */
@@ -7425,7 +7949,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_S },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 522 */
     /* type PARROT_FUNCTION_OP, */
@@ -7437,7 +7962,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_SC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 523 */
     /* type PARROT_FUNCTION_OP, */
@@ -7449,7 +7975,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 524 */
     /* type PARROT_INLINE_OP, */
@@ -7461,7 +7988,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 525 */
     /* type PARROT_INLINE_OP, */
@@ -7473,7 +8001,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 526 */
     /* type PARROT_INLINE_OP, */
@@ -7485,7 +8014,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 527 */
     /* type PARROT_INLINE_OP, */
@@ -7497,7 +8027,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 528 */
     /* type PARROT_INLINE_OP, */
@@ -7509,7 +8040,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 529 */
     /* type PARROT_INLINE_OP, */
@@ -7521,7 +8053,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 530 */
     /* type PARROT_INLINE_OP, */
@@ -7533,7 +8066,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 531 */
     /* type PARROT_INLINE_OP, */
@@ -7545,7 +8079,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_PC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 532 */
     /* type PARROT_INLINE_OP, */
@@ -7557,7 +8092,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 533 */
     /* type PARROT_INLINE_OP, */
@@ -7569,7 +8105,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 534 */
     /* type PARROT_INLINE_OP, */
@@ -7581,7 +8118,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 535 */
     /* type PARROT_INLINE_OP, */
@@ -7593,7 +8131,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_PC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 536 */
     /* type PARROT_INLINE_OP, */
@@ -7605,7 +8144,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 537 */
     /* type PARROT_INLINE_OP, */
@@ -7617,7 +8157,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 538 */
     /* type PARROT_INLINE_OP, */
@@ -7629,7 +8170,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 539 */
     /* type PARROT_INLINE_OP, */
@@ -7641,7 +8183,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_PC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 540 */
     /* type PARROT_INLINE_OP, */
@@ -7653,7 +8196,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 541 */
     /* type PARROT_INLINE_OP, */
@@ -7665,7 +8209,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_PC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 542 */
     /* type PARROT_INLINE_OP, */
@@ -7677,7 +8222,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 543 */
     /* type PARROT_INLINE_OP, */
@@ -7689,7 +8235,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 544 */
     /* type PARROT_INLINE_OP, */
@@ -7701,7 +8248,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 545 */
     /* type PARROT_INLINE_OP, */
@@ -7713,7 +8261,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 546 */
     /* type PARROT_INLINE_OP, */
@@ -7725,7 +8274,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 547 */
     /* type PARROT_INLINE_OP, */
@@ -7737,7 +8287,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 548 */
     /* type PARROT_INLINE_OP, */
@@ -7749,7 +8300,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_PC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 549 */
     /* type PARROT_INLINE_OP, */
@@ -7761,7 +8313,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_PC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 550 */
     /* type PARROT_FUNCTION_OP, */
@@ -7773,7 +8326,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 551 */
     /* type PARROT_FUNCTION_OP, */
@@ -7785,7 +8339,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 552 */
     /* type PARROT_FUNCTION_OP, */
@@ -7797,7 +8352,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 553 */
     /* type PARROT_FUNCTION_OP, */
@@ -7809,7 +8365,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 554 */
     /* type PARROT_FUNCTION_OP, */
@@ -7821,7 +8378,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 555 */
     /* type PARROT_FUNCTION_OP, */
@@ -7833,7 +8391,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 556 */
     /* type PARROT_FUNCTION_OP, */
@@ -7845,7 +8404,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 557 */
     /* type PARROT_FUNCTION_OP, */
@@ -7857,7 +8417,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 558 */
     /* type PARROT_FUNCTION_OP, */
@@ -7869,7 +8430,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_PC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 559 */
     /* type PARROT_FUNCTION_OP, */
@@ -7881,7 +8443,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_PC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 560 */
     /* type PARROT_INLINE_OP, */
@@ -7893,7 +8456,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 561 */
     /* type PARROT_INLINE_OP, */
@@ -7905,7 +8469,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 562 */
     /* type PARROT_INLINE_OP, */
@@ -7917,7 +8482,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 563 */
     /* type PARROT_INLINE_OP, */
@@ -7929,7 +8495,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_PC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 564 */
     /* type PARROT_INLINE_OP, */
@@ -7941,7 +8508,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 565 */
     /* type PARROT_INLINE_OP, */
@@ -7953,7 +8521,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 566 */
     /* type PARROT_INLINE_OP, */
@@ -7965,7 +8534,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 567 */
     /* type PARROT_INLINE_OP, */
@@ -7977,7 +8547,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 568 */
     /* type PARROT_INLINE_OP, */
@@ -7989,7 +8560,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_S },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 569 */
     /* type PARROT_INLINE_OP, */
@@ -8001,7 +8573,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_SC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 570 */
     /* type PARROT_FUNCTION_OP, */
@@ -8013,7 +8586,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_S },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 571 */
     /* type PARROT_FUNCTION_OP, */
@@ -8025,7 +8599,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_SC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 572 */
     /* type PARROT_INLINE_OP, */
@@ -8037,7 +8612,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 573 */
     /* type PARROT_INLINE_OP, */
@@ -8049,7 +8625,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 574 */
     /* type PARROT_INLINE_OP, */
@@ -8061,7 +8638,8 @@
     5,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 575 */
     /* type PARROT_INLINE_OP, */
@@ -8073,7 +8651,8 @@
     5,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 576 */
     /* type PARROT_INLINE_OP, */
@@ -8085,7 +8664,8 @@
     5,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 577 */
     /* type PARROT_INLINE_OP, */
@@ -8097,7 +8677,8 @@
     5,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 578 */
     /* type PARROT_INLINE_OP, */
@@ -8109,7 +8690,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 579 */
     /* type PARROT_INLINE_OP, */
@@ -8121,7 +8703,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 580 */
     /* type PARROT_INLINE_OP, */
@@ -8133,7 +8716,8 @@
     5,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 581 */
     /* type PARROT_INLINE_OP, */
@@ -8145,7 +8729,8 @@
     5,
     { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_S, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 582 */
     /* type PARROT_INLINE_OP, */
@@ -8157,7 +8742,8 @@
     5,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 583 */
     /* type PARROT_INLINE_OP, */
@@ -8169,7 +8755,8 @@
     5,
     { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_SC, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 584 */
     /* type PARROT_INLINE_OP, */
@@ -8181,7 +8768,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 585 */
     /* type PARROT_INLINE_OP, */
@@ -8193,7 +8781,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_PC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 586 */
     /* type PARROT_INLINE_OP, */
@@ -8205,7 +8794,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 587 */
     /* type PARROT_INLINE_OP, */
@@ -8217,7 +8807,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 588 */
     /* type PARROT_INLINE_OP, */
@@ -8229,7 +8820,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 589 */
     /* type PARROT_INLINE_OP, */
@@ -8241,7 +8833,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 590 */
     /* type PARROT_FUNCTION_OP, */
@@ -8253,7 +8846,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 591 */
     /* type PARROT_FUNCTION_OP, */
@@ -8265,7 +8859,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 592 */
     /* type PARROT_FUNCTION_OP, */
@@ -8277,7 +8872,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 593 */
     /* type PARROT_FUNCTION_OP, */
@@ -8289,7 +8885,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 594 */
     /* type PARROT_FUNCTION_OP, */
@@ -8301,7 +8898,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_PC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 595 */
     /* type PARROT_FUNCTION_OP, */
@@ -8313,7 +8911,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_PC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 596 */
     /* type PARROT_INLINE_OP, */
@@ -8325,7 +8924,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 597 */
     /* type PARROT_INLINE_OP, */
@@ -8337,7 +8937,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_PC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 598 */
     /* type PARROT_FUNCTION_OP, */
@@ -8349,7 +8950,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 599 */
     /* type PARROT_FUNCTION_OP, */
@@ -8361,7 +8963,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 600 */
     /* type PARROT_FUNCTION_OP, */
@@ -8373,7 +8976,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_PC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 601 */
     /* type PARROT_FUNCTION_OP, */
@@ -8385,7 +8989,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_PC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 602 */
     /* type PARROT_FUNCTION_OP, */
@@ -8397,7 +9002,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 603 */
     /* type PARROT_FUNCTION_OP, */
@@ -8409,7 +9015,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_PC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 604 */
     /* type PARROT_FUNCTION_OP, */
@@ -8421,7 +9028,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 605 */
     /* type PARROT_FUNCTION_OP, */
@@ -8433,7 +9041,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 606 */
     /* type PARROT_FUNCTION_OP, */
@@ -8445,7 +9054,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_PC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 607 */
     /* type PARROT_FUNCTION_OP, */
@@ -8457,7 +9067,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_PC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 608 */
     /* type PARROT_INLINE_OP, */
@@ -8469,7 +9080,8 @@
     3,
     { PARROT_ARG_S, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 609 */
     /* type PARROT_INLINE_OP, */
@@ -8481,7 +9093,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 610 */
     /* type PARROT_FUNCTION_OP, */
@@ -8493,7 +9106,8 @@
     3,
     { PARROT_ARG_S, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 611 */
     /* type PARROT_FUNCTION_OP, */
@@ -8505,7 +9119,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 612 */
     /* type PARROT_FUNCTION_OP, */
@@ -8517,7 +9132,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 613 */
     /* type PARROT_INLINE_OP, */
@@ -8529,7 +9145,8 @@
     3,
     { PARROT_ARG_I, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 614 */
     /* type PARROT_INLINE_OP, */
@@ -8541,7 +9158,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_KI },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 615 */
     /* type PARROT_INLINE_OP, */
@@ -8553,7 +9171,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_KIC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 616 */
     /* type PARROT_INLINE_OP, */
@@ -8565,7 +9184,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_K },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 617 */
     /* type PARROT_INLINE_OP, */
@@ -8577,7 +9197,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_KC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 618 */
     /* type PARROT_INLINE_OP, */
@@ -8589,7 +9210,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_KI },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 619 */
     /* type PARROT_INLINE_OP, */
@@ -8601,7 +9223,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_KIC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 620 */
     /* type PARROT_INLINE_OP, */
@@ -8613,7 +9236,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_K },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 621 */
     /* type PARROT_INLINE_OP, */
@@ -8625,7 +9249,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_KC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 622 */
     /* type PARROT_INLINE_OP, */
@@ -8637,7 +9262,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_K },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 623 */
     /* type PARROT_INLINE_OP, */
@@ -8649,7 +9275,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_KC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 624 */
     /* type PARROT_INLINE_OP, */
@@ -8661,7 +9288,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_KI },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 625 */
     /* type PARROT_INLINE_OP, */
@@ -8673,7 +9301,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_KIC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 626 */
     /* type PARROT_INLINE_OP, */
@@ -8685,7 +9314,8 @@
     3,
     { PARROT_ARG_I, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 627 */
     /* type PARROT_INLINE_OP, */
@@ -8697,7 +9327,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_I },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 628 */
     /* type PARROT_INLINE_OP, */
@@ -8709,7 +9340,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 629 */
     /* type PARROT_INLINE_OP, */
@@ -8721,7 +9353,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_N },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 630 */
     /* type PARROT_INLINE_OP, */
@@ -8733,7 +9366,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_NC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 631 */
     /* type PARROT_INLINE_OP, */
@@ -8745,7 +9379,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_S },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 632 */
     /* type PARROT_INLINE_OP, */
@@ -8757,7 +9392,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_SC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 633 */
     /* type PARROT_INLINE_OP, */
@@ -8769,7 +9405,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 634 */
     /* type PARROT_INLINE_OP, */
@@ -8781,7 +9418,8 @@
     3,
     { PARROT_ARG_I, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 635 */
     /* type PARROT_INLINE_OP, */
@@ -8793,7 +9431,8 @@
     3,
     { PARROT_ARG_N, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 636 */
     /* type PARROT_INLINE_OP, */
@@ -8805,7 +9444,8 @@
     3,
     { PARROT_ARG_S, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 637 */
     /* type PARROT_INLINE_OP, */
@@ -8817,7 +9457,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 638 */
     /* type PARROT_INLINE_OP, */
@@ -8829,7 +9470,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_I },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 639 */
     /* type PARROT_INLINE_OP, */
@@ -8841,7 +9483,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 640 */
     /* type PARROT_INLINE_OP, */
@@ -8853,7 +9496,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_N },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 641 */
     /* type PARROT_INLINE_OP, */
@@ -8865,7 +9509,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_NC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 642 */
     /* type PARROT_INLINE_OP, */
@@ -8877,7 +9522,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_S },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 643 */
     /* type PARROT_INLINE_OP, */
@@ -8889,7 +9535,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_SC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 644 */
     /* type PARROT_INLINE_OP, */
@@ -8901,7 +9548,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 645 */
     /* type PARROT_INLINE_OP, */
@@ -8913,7 +9561,8 @@
     3,
     { PARROT_ARG_I, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 646 */
     /* type PARROT_INLINE_OP, */
@@ -8925,7 +9574,8 @@
     3,
     { PARROT_ARG_N, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 647 */
     /* type PARROT_INLINE_OP, */
@@ -8937,7 +9587,8 @@
     3,
     { PARROT_ARG_S, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 648 */
     /* type PARROT_INLINE_OP, */
@@ -8949,7 +9600,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 649 */
     /* type PARROT_INLINE_OP, */
@@ -8961,7 +9613,8 @@
     5,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_I },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 650 */
     /* type PARROT_INLINE_OP, */
@@ -8973,7 +9626,8 @@
     5,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_I },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 651 */
     /* type PARROT_INLINE_OP, */
@@ -8985,7 +9639,8 @@
     5,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 652 */
     /* type PARROT_INLINE_OP, */
@@ -8997,7 +9652,8 @@
     5,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 653 */
     /* type PARROT_FUNCTION_OP, */
@@ -9009,7 +9665,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 654 */
     /* type PARROT_FUNCTION_OP, */
@@ -9021,7 +9678,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 655 */
     /* type PARROT_FUNCTION_OP, */
@@ -9033,7 +9691,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 656 */
     /* type PARROT_FUNCTION_OP, */
@@ -9045,7 +9704,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 657 */
     /* type PARROT_FUNCTION_OP, */
@@ -9057,7 +9717,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_S },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 658 */
     /* type PARROT_FUNCTION_OP, */
@@ -9069,7 +9730,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_SC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 659 */
     /* type PARROT_FUNCTION_OP, */
@@ -9081,7 +9743,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 660 */
     /* type PARROT_FUNCTION_OP, */
@@ -9093,7 +9756,8 @@
     3,
     { PARROT_ARG_S, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 661 */
     /* type PARROT_FUNCTION_OP, */
@@ -9105,7 +9769,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 662 */
     /* type PARROT_FUNCTION_OP, */
@@ -9117,7 +9782,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 663 */
     /* type PARROT_INLINE_OP, */
@@ -9129,7 +9795,8 @@
     4,
     { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 664 */
     /* type PARROT_INLINE_OP, */
@@ -9141,7 +9808,8 @@
     4,
     { PARROT_ARG_SC, PARROT_ARG_S, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 665 */
     /* type PARROT_INLINE_OP, */
@@ -9153,7 +9821,8 @@
     4,
     { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 666 */
     /* type PARROT_INLINE_OP, */
@@ -9165,7 +9834,8 @@
     4,
     { PARROT_ARG_SC, PARROT_ARG_SC, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 667 */
     /* type PARROT_INLINE_OP, */
@@ -9177,7 +9847,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 668 */
     /* type PARROT_INLINE_OP, */
@@ -9189,7 +9860,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 669 */
     /* type PARROT_INLINE_OP, */
@@ -9201,7 +9873,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 670 */
     /* type PARROT_INLINE_OP, */
@@ -9213,7 +9886,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 671 */
     /* type PARROT_FUNCTION_OP, */
@@ -9225,7 +9899,8 @@
     2,
     { PARROT_ARG_P },
     { PARROT_ARGDIR_IN },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 672 */
     /* type PARROT_FUNCTION_OP, */
@@ -9237,7 +9912,8 @@
     2,
     { PARROT_ARG_P },
     { PARROT_ARGDIR_IN },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 673 */
     /* type PARROT_FUNCTION_OP, */
@@ -9249,7 +9925,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 674 */
     /* type PARROT_FUNCTION_OP, */
@@ -9261,7 +9938,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 675 */
     /* type PARROT_FUNCTION_OP, */
@@ -9273,7 +9951,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_N },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 676 */
     /* type PARROT_FUNCTION_OP, */
@@ -9285,7 +9964,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_NC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 677 */
     /* type PARROT_FUNCTION_OP, */
@@ -9297,7 +9977,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 678 */
     /* type PARROT_FUNCTION_OP, */
@@ -9309,7 +9990,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 679 */
     /* type PARROT_INLINE_OP, */
@@ -9321,7 +10003,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 680 */
     /* type PARROT_INLINE_OP, */
@@ -9333,7 +10016,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 681 */
     /* type PARROT_INLINE_OP, */
@@ -9345,7 +10029,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_PC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 682 */
     /* type PARROT_INLINE_OP, */
@@ -9357,7 +10042,8 @@
     3,
     { PARROT_ARG_S, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 683 */
     /* type PARROT_INLINE_OP, */
@@ -9369,7 +10055,8 @@
     3,
     { PARROT_ARG_S, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 684 */
     /* type PARROT_INLINE_OP, */
@@ -9381,7 +10068,8 @@
     3,
     { PARROT_ARG_I, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 685 */
     /* type PARROT_INLINE_OP, */
@@ -9393,7 +10081,8 @@
     3,
     { PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 686 */
     /* type PARROT_INLINE_OP, */
@@ -9405,7 +10094,8 @@
     3,
     { PARROT_ARG_I, PARROT_ARG_N },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 687 */
     /* type PARROT_INLINE_OP, */
@@ -9417,7 +10107,8 @@
     3,
     { PARROT_ARG_I, PARROT_ARG_NC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 688 */
     /* type PARROT_INLINE_OP, */
@@ -9429,7 +10120,8 @@
     3,
     { PARROT_ARG_I, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 689 */
     /* type PARROT_INLINE_OP, */
@@ -9441,7 +10133,8 @@
     3,
     { PARROT_ARG_I, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 690 */
     /* type PARROT_INLINE_OP, */
@@ -9453,7 +10146,8 @@
     3,
     { PARROT_ARG_N, PARROT_ARG_N },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 691 */
     /* type PARROT_INLINE_OP, */
@@ -9465,7 +10159,8 @@
     3,
     { PARROT_ARG_N, PARROT_ARG_NC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 692 */
     /* type PARROT_INLINE_OP, */
@@ -9477,7 +10172,8 @@
     3,
     { PARROT_ARG_N, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 693 */
     /* type PARROT_INLINE_OP, */
@@ -9489,7 +10185,8 @@
     3,
     { PARROT_ARG_N, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 694 */
     /* type PARROT_INLINE_OP, */
@@ -9501,7 +10198,8 @@
     3,
     { PARROT_ARG_N, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 695 */
     /* type PARROT_INLINE_OP, */
@@ -9513,7 +10211,8 @@
     3,
     { PARROT_ARG_N, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 696 */
     /* type PARROT_INLINE_OP, */
@@ -9525,7 +10224,8 @@
     3,
     { PARROT_ARG_N, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 697 */
     /* type PARROT_INLINE_OP, */
@@ -9537,7 +10237,8 @@
     3,
     { PARROT_ARG_S, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 698 */
     /* type PARROT_INLINE_OP, */
@@ -9549,7 +10250,8 @@
     3,
     { PARROT_ARG_S, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 699 */
     /* type PARROT_INLINE_OP, */
@@ -9561,7 +10263,8 @@
     3,
     { PARROT_ARG_S, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 700 */
     /* type PARROT_INLINE_OP, */
@@ -9573,7 +10276,8 @@
     3,
     { PARROT_ARG_S, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 701 */
     /* type PARROT_INLINE_OP, */
@@ -9585,7 +10289,8 @@
     3,
     { PARROT_ARG_S, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 702 */
     /* type PARROT_INLINE_OP, */
@@ -9597,7 +10302,8 @@
     3,
     { PARROT_ARG_S, PARROT_ARG_N },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 703 */
     /* type PARROT_INLINE_OP, */
@@ -9609,7 +10315,8 @@
     3,
     { PARROT_ARG_S, PARROT_ARG_NC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 704 */
     /* type PARROT_INLINE_OP, */
@@ -9621,7 +10328,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_PC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 705 */
     /* type PARROT_INLINE_OP, */
@@ -9633,7 +10341,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 706 */
     /* type PARROT_INLINE_OP, */
@@ -9645,7 +10354,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_I },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 707 */
     /* type PARROT_INLINE_OP, */
@@ -9657,7 +10367,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 708 */
     /* type PARROT_INLINE_OP, */
@@ -9669,7 +10380,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_N },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 709 */
     /* type PARROT_INLINE_OP, */
@@ -9681,7 +10393,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_NC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 710 */
     /* type PARROT_INLINE_OP, */
@@ -9693,7 +10406,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_S },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 711 */
     /* type PARROT_INLINE_OP, */
@@ -9705,7 +10419,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_SC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 712 */
     /* type PARROT_INLINE_OP, */
@@ -9717,7 +10432,8 @@
     3,
     { PARROT_ARG_I, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 713 */
     /* type PARROT_INLINE_OP, */
@@ -9729,7 +10445,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 714 */
     /* type PARROT_INLINE_OP, */
@@ -9741,7 +10458,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_I },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 715 */
     /* type PARROT_INLINE_OP, */
@@ -9753,7 +10471,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 716 */
     /* type PARROT_INLINE_OP, */
@@ -9765,7 +10484,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_N },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 717 */
     /* type PARROT_INLINE_OP, */
@@ -9777,7 +10497,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_NC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 718 */
     /* type PARROT_INLINE_OP, */
@@ -9789,7 +10510,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_S },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 719 */
     /* type PARROT_INLINE_OP, */
@@ -9801,7 +10523,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_SC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 720 */
     /* type PARROT_INLINE_OP, */
@@ -9813,7 +10536,8 @@
     3,
     { PARROT_ARG_S, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 721 */
     /* type PARROT_INLINE_OP, */
@@ -9825,7 +10549,8 @@
     3,
     { PARROT_ARG_S, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 722 */
     /* type PARROT_INLINE_OP, */
@@ -9837,7 +10562,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 723 */
     /* type PARROT_INLINE_OP, */
@@ -9849,7 +10575,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 724 */
     /* type PARROT_INLINE_OP, */
@@ -9861,7 +10588,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_KI, PARROT_ARG_I },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 725 */
     /* type PARROT_INLINE_OP, */
@@ -9873,7 +10601,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_KIC, PARROT_ARG_I },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 726 */
     /* type PARROT_INLINE_OP, */
@@ -9885,7 +10614,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_KI, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 727 */
     /* type PARROT_INLINE_OP, */
@@ -9897,7 +10627,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_KIC, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 728 */
     /* type PARROT_INLINE_OP, */
@@ -9909,7 +10640,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_KI, PARROT_ARG_N },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 729 */
     /* type PARROT_INLINE_OP, */
@@ -9921,7 +10653,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_KIC, PARROT_ARG_N },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 730 */
     /* type PARROT_INLINE_OP, */
@@ -9933,7 +10666,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_KI, PARROT_ARG_NC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 731 */
     /* type PARROT_INLINE_OP, */
@@ -9945,7 +10679,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_KIC, PARROT_ARG_NC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 732 */
     /* type PARROT_INLINE_OP, */
@@ -9957,7 +10692,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_KI, PARROT_ARG_S },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 733 */
     /* type PARROT_INLINE_OP, */
@@ -9969,7 +10705,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_KIC, PARROT_ARG_S },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 734 */
     /* type PARROT_INLINE_OP, */
@@ -9981,7 +10718,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_KI, PARROT_ARG_SC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 735 */
     /* type PARROT_INLINE_OP, */
@@ -9993,7 +10731,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_KIC, PARROT_ARG_SC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 736 */
     /* type PARROT_INLINE_OP, */
@@ -10005,7 +10744,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_KI, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 737 */
     /* type PARROT_INLINE_OP, */
@@ -10017,7 +10757,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_KIC, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 738 */
     /* type PARROT_INLINE_OP, */
@@ -10029,7 +10770,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_KI },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 739 */
     /* type PARROT_INLINE_OP, */
@@ -10041,7 +10783,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_KIC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 740 */
     /* type PARROT_INLINE_OP, */
@@ -10053,7 +10796,8 @@
     4,
     { PARROT_ARG_N, PARROT_ARG_P, PARROT_ARG_KI },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 741 */
     /* type PARROT_INLINE_OP, */
@@ -10065,7 +10809,8 @@
     4,
     { PARROT_ARG_N, PARROT_ARG_P, PARROT_ARG_KIC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 742 */
     /* type PARROT_INLINE_OP, */
@@ -10077,7 +10822,8 @@
     4,
     { PARROT_ARG_S, PARROT_ARG_P, PARROT_ARG_KI },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 743 */
     /* type PARROT_INLINE_OP, */
@@ -10089,7 +10835,8 @@
     4,
     { PARROT_ARG_S, PARROT_ARG_P, PARROT_ARG_KIC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 744 */
     /* type PARROT_INLINE_OP, */
@@ -10101,7 +10848,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_KI },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 745 */
     /* type PARROT_INLINE_OP, */
@@ -10113,7 +10861,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_KIC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 746 */
     /* type PARROT_INLINE_OP, */
@@ -10125,7 +10874,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_K, PARROT_ARG_I },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 747 */
     /* type PARROT_INLINE_OP, */
@@ -10137,7 +10887,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_KC, PARROT_ARG_I },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 748 */
     /* type PARROT_INLINE_OP, */
@@ -10149,7 +10900,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_K, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 749 */
     /* type PARROT_INLINE_OP, */
@@ -10161,7 +10913,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_KC, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 750 */
     /* type PARROT_INLINE_OP, */
@@ -10173,7 +10926,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_K, PARROT_ARG_N },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 751 */
     /* type PARROT_INLINE_OP, */
@@ -10185,7 +10939,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_KC, PARROT_ARG_N },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 752 */
     /* type PARROT_INLINE_OP, */
@@ -10197,7 +10952,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_K, PARROT_ARG_NC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 753 */
     /* type PARROT_INLINE_OP, */
@@ -10209,7 +10965,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_KC, PARROT_ARG_NC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 754 */
     /* type PARROT_INLINE_OP, */
@@ -10221,7 +10978,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_K, PARROT_ARG_S },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 755 */
     /* type PARROT_INLINE_OP, */
@@ -10233,7 +10991,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_KC, PARROT_ARG_S },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 756 */
     /* type PARROT_INLINE_OP, */
@@ -10245,7 +11004,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_K, PARROT_ARG_SC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 757 */
     /* type PARROT_INLINE_OP, */
@@ -10257,7 +11017,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_KC, PARROT_ARG_SC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 758 */
     /* type PARROT_INLINE_OP, */
@@ -10269,7 +11030,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_K, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 759 */
     /* type PARROT_INLINE_OP, */
@@ -10281,7 +11043,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_KC, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 760 */
     /* type PARROT_INLINE_OP, */
@@ -10293,7 +11056,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_K },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 761 */
     /* type PARROT_INLINE_OP, */
@@ -10305,7 +11069,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_KC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 762 */
     /* type PARROT_INLINE_OP, */
@@ -10317,7 +11082,8 @@
     4,
     { PARROT_ARG_N, PARROT_ARG_P, PARROT_ARG_K },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 763 */
     /* type PARROT_INLINE_OP, */
@@ -10329,7 +11095,8 @@
     4,
     { PARROT_ARG_N, PARROT_ARG_P, PARROT_ARG_KC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 764 */
     /* type PARROT_INLINE_OP, */
@@ -10341,7 +11108,8 @@
     4,
     { PARROT_ARG_S, PARROT_ARG_P, PARROT_ARG_K },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 765 */
     /* type PARROT_INLINE_OP, */
@@ -10353,7 +11121,8 @@
     4,
     { PARROT_ARG_S, PARROT_ARG_P, PARROT_ARG_KC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 766 */
     /* type PARROT_INLINE_OP, */
@@ -10365,7 +11134,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_K },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 767 */
     /* type PARROT_INLINE_OP, */
@@ -10377,7 +11147,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_KC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 768 */
     /* type PARROT_INLINE_OP, */
@@ -10389,7 +11160,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 769 */
     /* type PARROT_INLINE_OP, */
@@ -10401,7 +11173,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 770 */
     /* type PARROT_INLINE_OP, */
@@ -10413,7 +11186,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_PC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 771 */
     /* type PARROT_INLINE_OP, */
@@ -10425,7 +11199,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 772 */
     /* type PARROT_INLINE_OP, */
@@ -10437,7 +11212,8 @@
     2,
     { PARROT_ARG_S },
     { PARROT_ARGDIR_OUT },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 773 */
     /* type PARROT_INLINE_OP, */
@@ -10449,7 +11225,8 @@
     2,
     { PARROT_ARG_I },
     { PARROT_ARGDIR_OUT },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 774 */
     /* type PARROT_INLINE_OP, */
@@ -10461,7 +11238,8 @@
     2,
     { PARROT_ARG_P },
     { PARROT_ARGDIR_OUT },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 775 */
     /* type PARROT_INLINE_OP, */
@@ -10473,7 +11251,8 @@
     2,
     { PARROT_ARG_N },
     { PARROT_ARGDIR_OUT },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 776 */
     /* type PARROT_INLINE_OP, */
@@ -10485,7 +11264,8 @@
     3,
     { PARROT_ARG_I, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 777 */
     /* type PARROT_INLINE_OP, */
@@ -10497,7 +11277,8 @@
     3,
     { PARROT_ARG_I, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 778 */
     /* type PARROT_INLINE_OP, */
@@ -10509,7 +11290,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 779 */
     /* type PARROT_INLINE_OP, */
@@ -10521,7 +11303,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 780 */
     /* type PARROT_INLINE_OP, */
@@ -10533,7 +11316,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 781 */
     /* type PARROT_INLINE_OP, */
@@ -10545,7 +11329,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 782 */
     /* type PARROT_INLINE_OP, */
@@ -10557,7 +11342,8 @@
     3,
     { PARROT_ARG_S, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 783 */
     /* type PARROT_INLINE_OP, */
@@ -10569,7 +11355,8 @@
     3,
     { PARROT_ARG_S, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 784 */
     /* type PARROT_INLINE_OP, */
@@ -10581,7 +11368,8 @@
     4,
     { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 785 */
     /* type PARROT_INLINE_OP, */
@@ -10593,7 +11381,8 @@
     4,
     { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 786 */
     /* type PARROT_INLINE_OP, */
@@ -10605,7 +11394,8 @@
     4,
     { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 787 */
     /* type PARROT_INLINE_OP, */
@@ -10617,7 +11407,8 @@
     4,
     { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 788 */
     /* type PARROT_INLINE_OP, */
@@ -10629,7 +11420,8 @@
     3,
     { PARROT_ARG_S, PARROT_ARG_S },
     { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 789 */
     /* type PARROT_INLINE_OP, */
@@ -10641,7 +11433,8 @@
     3,
     { PARROT_ARG_S, PARROT_ARG_SC },
     { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 790 */
     /* type PARROT_INLINE_OP, */
@@ -10653,7 +11446,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 791 */
     /* type PARROT_INLINE_OP, */
@@ -10665,7 +11459,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_S },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 792 */
     /* type PARROT_INLINE_OP, */
@@ -10677,7 +11472,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_SC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 793 */
     /* type PARROT_INLINE_OP, */
@@ -10689,7 +11485,8 @@
     4,
     { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 794 */
     /* type PARROT_INLINE_OP, */
@@ -10701,7 +11498,8 @@
     4,
     { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 795 */
     /* type PARROT_INLINE_OP, */
@@ -10713,7 +11511,8 @@
     4,
     { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 796 */
     /* type PARROT_INLINE_OP, */
@@ -10725,7 +11524,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 797 */
     /* type PARROT_INLINE_OP, */
@@ -10737,7 +11537,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 798 */
     /* type PARROT_INLINE_OP, */
@@ -10749,7 +11550,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 799 */
     /* type PARROT_INLINE_OP, */
@@ -10761,7 +11563,8 @@
     4,
     { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 800 */
     /* type PARROT_INLINE_OP, */
@@ -10773,7 +11576,8 @@
     4,
     { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 801 */
     /* type PARROT_INLINE_OP, */
@@ -10785,7 +11589,8 @@
     4,
     { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 802 */
     /* type PARROT_INLINE_OP, */
@@ -10797,7 +11602,8 @@
     4,
     { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 803 */
     /* type PARROT_INLINE_OP, */
@@ -10809,7 +11615,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 804 */
     /* type PARROT_INLINE_OP, */
@@ -10821,7 +11628,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 805 */
     /* type PARROT_INLINE_OP, */
@@ -10833,7 +11641,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 806 */
     /* type PARROT_INLINE_OP, */
@@ -10845,7 +11654,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_I },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 807 */
     /* type PARROT_INLINE_OP, */
@@ -10857,7 +11667,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 808 */
     /* type PARROT_INLINE_OP, */
@@ -10869,7 +11680,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 809 */
     /* type PARROT_INLINE_OP, */
@@ -10881,7 +11693,8 @@
     3,
     { PARROT_ARG_I, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 810 */
     /* type PARROT_INLINE_OP, */
@@ -10893,7 +11706,8 @@
     3,
     { PARROT_ARG_I, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 811 */
     /* type PARROT_INLINE_OP, */
@@ -10905,7 +11719,8 @@
     3,
     { PARROT_ARG_I, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 812 */
     /* type PARROT_INLINE_OP, */
@@ -10917,7 +11732,8 @@
     3,
     { PARROT_ARG_I, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 813 */
     /* type PARROT_FUNCTION_OP, */
@@ -10929,7 +11745,8 @@
     2,
     { PARROT_ARG_S },
     { PARROT_ARGDIR_INOUT },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 814 */
     /* type PARROT_FUNCTION_OP, */
@@ -10941,7 +11758,8 @@
     2,
     { PARROT_ARG_S },
     { PARROT_ARGDIR_INOUT },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 815 */
     /* type PARROT_INLINE_OP, */
@@ -10953,7 +11771,8 @@
     4,
     { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 816 */
     /* type PARROT_INLINE_OP, */
@@ -10965,7 +11784,8 @@
     4,
     { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 817 */
     /* type PARROT_INLINE_OP, */
@@ -10977,7 +11797,8 @@
     4,
     { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 818 */
     /* type PARROT_INLINE_OP, */
@@ -10989,7 +11810,8 @@
     4,
     { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 819 */
     /* type PARROT_INLINE_OP, */
@@ -11001,7 +11823,8 @@
     5,
     { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_I, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 820 */
     /* type PARROT_INLINE_OP, */
@@ -11013,7 +11836,8 @@
     5,
     { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_I, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 821 */
     /* type PARROT_INLINE_OP, */
@@ -11025,7 +11849,8 @@
     5,
     { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 822 */
     /* type PARROT_INLINE_OP, */
@@ -11037,7 +11862,8 @@
     5,
     { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 823 */
     /* type PARROT_INLINE_OP, */
@@ -11049,7 +11875,8 @@
     5,
     { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 824 */
     /* type PARROT_INLINE_OP, */
@@ -11061,7 +11888,8 @@
     5,
     { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 825 */
     /* type PARROT_INLINE_OP, */
@@ -11073,7 +11901,8 @@
     5,
     { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 826 */
     /* type PARROT_INLINE_OP, */
@@ -11085,7 +11914,8 @@
     5,
     { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 827 */
     /* type PARROT_INLINE_OP, */
@@ -11097,7 +11927,8 @@
     5,
     { PARROT_ARG_S, PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 828 */
     /* type PARROT_INLINE_OP, */
@@ -11109,7 +11940,8 @@
     5,
     { PARROT_ARG_S, PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 829 */
     /* type PARROT_INLINE_OP, */
@@ -11121,7 +11953,8 @@
     5,
     { PARROT_ARG_S, PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 830 */
     /* type PARROT_INLINE_OP, */
@@ -11133,7 +11966,8 @@
     5,
     { PARROT_ARG_S, PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 831 */
     /* type PARROT_INLINE_OP, */
@@ -11145,7 +11979,8 @@
     6,
     { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
+    { 0, 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 832 */
     /* type PARROT_INLINE_OP, */
@@ -11157,7 +11992,8 @@
     6,
     { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
+    { 0, 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 833 */
     /* type PARROT_INLINE_OP, */
@@ -11169,7 +12005,8 @@
     6,
     { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC, PARROT_ARG_I, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
+    { 0, 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 834 */
     /* type PARROT_INLINE_OP, */
@@ -11181,7 +12018,8 @@
     6,
     { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC, PARROT_ARG_I, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
+    { 0, 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 835 */
     /* type PARROT_INLINE_OP, */
@@ -11193,7 +12031,8 @@
     6,
     { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
+    { 0, 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 836 */
     /* type PARROT_INLINE_OP, */
@@ -11205,7 +12044,8 @@
     6,
     { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
+    { 0, 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 837 */
     /* type PARROT_INLINE_OP, */
@@ -11217,7 +12057,8 @@
     6,
     { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC, PARROT_ARG_IC, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
+    { 0, 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 838 */
     /* type PARROT_INLINE_OP, */
@@ -11229,7 +12070,8 @@
     6,
     { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC, PARROT_ARG_IC, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
+    { 0, 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 839 */
     /* type PARROT_INLINE_OP, */
@@ -11241,7 +12083,8 @@
     6,
     { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
+    { 0, 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 840 */
     /* type PARROT_INLINE_OP, */
@@ -11253,7 +12096,8 @@
     6,
     { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
+    { 0, 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 841 */
     /* type PARROT_INLINE_OP, */
@@ -11265,7 +12109,8 @@
     6,
     { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC, PARROT_ARG_I, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
+    { 0, 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 842 */
     /* type PARROT_INLINE_OP, */
@@ -11277,7 +12122,8 @@
     6,
     { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC, PARROT_ARG_I, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
+    { 0, 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 843 */
     /* type PARROT_INLINE_OP, */
@@ -11289,7 +12135,8 @@
     6,
     { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
+    { 0, 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 844 */
     /* type PARROT_INLINE_OP, */
@@ -11301,7 +12148,8 @@
     6,
     { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
+    { 0, 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 845 */
     /* type PARROT_INLINE_OP, */
@@ -11313,7 +12161,8 @@
     6,
     { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC, PARROT_ARG_IC, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
+    { 0, 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 846 */
     /* type PARROT_INLINE_OP, */
@@ -11325,7 +12174,8 @@
     6,
     { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC, PARROT_ARG_IC, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
+    { 0, 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 847 */
     /* type PARROT_INLINE_OP, */
@@ -11337,7 +12187,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 848 */
     /* type PARROT_INLINE_OP, */
@@ -11349,7 +12200,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 849 */
     /* type PARROT_INLINE_OP, */
@@ -11361,7 +12213,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 850 */
     /* type PARROT_INLINE_OP, */
@@ -11373,7 +12226,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 851 */
     /* type PARROT_INLINE_OP, */
@@ -11385,7 +12239,8 @@
     5,
     { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 852 */
     /* type PARROT_INLINE_OP, */
@@ -11397,7 +12252,8 @@
     5,
     { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_S, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 853 */
     /* type PARROT_INLINE_OP, */
@@ -11409,7 +12265,8 @@
     5,
     { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 854 */
     /* type PARROT_INLINE_OP, */
@@ -11421,7 +12278,8 @@
     5,
     { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_SC, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 855 */
     /* type PARROT_INLINE_OP, */
@@ -11433,7 +12291,8 @@
     5,
     { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 856 */
     /* type PARROT_INLINE_OP, */
@@ -11445,7 +12304,8 @@
     5,
     { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_S, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 857 */
     /* type PARROT_INLINE_OP, */
@@ -11457,7 +12317,8 @@
     5,
     { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 858 */
     /* type PARROT_INLINE_OP, */
@@ -11469,7 +12330,8 @@
     5,
     { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_SC, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 859 */
     /* type PARROT_INLINE_OP, */
@@ -11481,7 +12343,8 @@
     4,
     { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 860 */
     /* type PARROT_INLINE_OP, */
@@ -11493,7 +12356,8 @@
     4,
     { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 861 */
     /* type PARROT_INLINE_OP, */
@@ -11505,7 +12369,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 862 */
     /* type PARROT_INLINE_OP, */
@@ -11517,7 +12382,8 @@
     2,
     { PARROT_ARG_S },
     { PARROT_ARGDIR_OUT },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 863 */
     /* type PARROT_INLINE_OP, */
@@ -11529,7 +12395,8 @@
     3,
     { PARROT_ARG_S, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 864 */
     /* type PARROT_INLINE_OP, */
@@ -11541,7 +12408,8 @@
     3,
     { PARROT_ARG_S, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 865 */
     /* type PARROT_INLINE_OP, */
@@ -11553,7 +12421,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 866 */
     /* type PARROT_INLINE_OP, */
@@ -11565,7 +12434,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 867 */
     /* type PARROT_INLINE_OP, */
@@ -11577,7 +12447,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 868 */
     /* type PARROT_INLINE_OP, */
@@ -11589,7 +12460,8 @@
     4,
     { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 869 */
     /* type PARROT_INLINE_OP, */
@@ -11601,7 +12473,8 @@
     3,
     { PARROT_ARG_S, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 870 */
     /* type PARROT_INLINE_OP, */
@@ -11613,7 +12486,8 @@
     3,
     { PARROT_ARG_S, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 871 */
     /* type PARROT_INLINE_OP, */
@@ -11625,7 +12499,8 @@
     3,
     { PARROT_ARG_S, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 872 */
     /* type PARROT_INLINE_OP, */
@@ -11637,7 +12512,8 @@
     3,
     { PARROT_ARG_S, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 873 */
     /* type PARROT_INLINE_OP, */
@@ -11649,7 +12525,8 @@
     3,
     { PARROT_ARG_S, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 874 */
     /* type PARROT_INLINE_OP, */
@@ -11661,7 +12538,8 @@
     3,
     { PARROT_ARG_S, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 875 */
     /* type PARROT_FUNCTION_OP, */
@@ -11673,7 +12551,8 @@
     4,
     { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 876 */
     /* type PARROT_FUNCTION_OP, */
@@ -11685,7 +12564,8 @@
     4,
     { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 877 */
     /* type PARROT_FUNCTION_OP, */
@@ -11697,7 +12577,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 878 */
     /* type PARROT_FUNCTION_OP, */
@@ -11709,7 +12590,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 879 */
     /* type PARROT_FUNCTION_OP, */
@@ -11721,7 +12603,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 880 */
     /* type PARROT_FUNCTION_OP, */
@@ -11733,7 +12616,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 881 */
     /* type PARROT_FUNCTION_OP, */
@@ -11745,7 +12629,8 @@
     3,
     { PARROT_ARG_I, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 882 */
     /* type PARROT_FUNCTION_OP, */
@@ -11757,7 +12642,8 @@
     3,
     { PARROT_ARG_I, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 883 */
     /* type PARROT_FUNCTION_OP, */
@@ -11769,7 +12655,8 @@
     3,
     { PARROT_ARG_S, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 884 */
     /* type PARROT_FUNCTION_OP, */
@@ -11781,7 +12668,8 @@
     3,
     { PARROT_ARG_S, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 885 */
     /* type PARROT_FUNCTION_OP, */
@@ -11793,7 +12681,8 @@
     3,
     { PARROT_ARG_I, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 886 */
     /* type PARROT_FUNCTION_OP, */
@@ -11805,7 +12694,8 @@
     3,
     { PARROT_ARG_I, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 887 */
     /* type PARROT_FUNCTION_OP, */
@@ -11817,7 +12707,8 @@
     4,
     { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 888 */
     /* type PARROT_FUNCTION_OP, */
@@ -11829,7 +12720,8 @@
     4,
     { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 889 */
     /* type PARROT_FUNCTION_OP, */
@@ -11841,7 +12733,8 @@
     4,
     { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 890 */
     /* type PARROT_FUNCTION_OP, */
@@ -11853,7 +12746,8 @@
     4,
     { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 891 */
     /* type PARROT_FUNCTION_OP, */
@@ -11865,7 +12759,8 @@
     3,
     { PARROT_ARG_I, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 892 */
     /* type PARROT_FUNCTION_OP, */
@@ -11877,7 +12772,8 @@
     3,
     { PARROT_ARG_I, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 893 */
     /* type PARROT_FUNCTION_OP, */
@@ -11889,7 +12785,8 @@
     3,
     { PARROT_ARG_S, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 894 */
     /* type PARROT_FUNCTION_OP, */
@@ -11901,7 +12798,8 @@
     3,
     { PARROT_ARG_S, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 895 */
     /* type PARROT_FUNCTION_OP, */
@@ -11913,7 +12811,8 @@
     3,
     { PARROT_ARG_I, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 896 */
     /* type PARROT_FUNCTION_OP, */
@@ -11925,7 +12824,8 @@
     3,
     { PARROT_ARG_I, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 897 */
     /* type PARROT_FUNCTION_OP, */
@@ -11937,7 +12837,8 @@
     4,
     { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 898 */
     /* type PARROT_FUNCTION_OP, */
@@ -11949,7 +12850,8 @@
     4,
     { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 899 */
     /* type PARROT_FUNCTION_OP, */
@@ -11961,7 +12863,8 @@
     4,
     { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 900 */
     /* type PARROT_FUNCTION_OP, */
@@ -11973,7 +12876,8 @@
     4,
     { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 901 */
     /* type PARROT_INLINE_OP, */
@@ -11985,7 +12889,8 @@
     5,
     { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 902 */
     /* type PARROT_INLINE_OP, */
@@ -11997,7 +12902,8 @@
     5,
     { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_S, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 903 */
     /* type PARROT_INLINE_OP, */
@@ -12009,7 +12915,8 @@
     5,
     { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 904 */
     /* type PARROT_INLINE_OP, */
@@ -12021,7 +12928,8 @@
     5,
     { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_SC, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 905 */
     /* type PARROT_INLINE_OP, */
@@ -12033,7 +12941,8 @@
     5,
     { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 906 */
     /* type PARROT_INLINE_OP, */
@@ -12045,7 +12954,8 @@
     5,
     { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_S, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 907 */
     /* type PARROT_INLINE_OP, */
@@ -12057,7 +12967,8 @@
     5,
     { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 908 */
     /* type PARROT_INLINE_OP, */
@@ -12069,7 +12980,8 @@
     5,
     { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_SC, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 909 */
     /* type PARROT_INLINE_OP, */
@@ -12081,7 +12993,8 @@
     6,
     { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_I, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
+    { 0, 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 910 */
     /* type PARROT_INLINE_OP, */
@@ -12093,7 +13006,8 @@
     6,
     { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_S, PARROT_ARG_I, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
+    { 0, 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 911 */
     /* type PARROT_INLINE_OP, */
@@ -12105,7 +13019,8 @@
     6,
     { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_I, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
+    { 0, 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 912 */
     /* type PARROT_INLINE_OP, */
@@ -12117,7 +13032,8 @@
     6,
     { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_SC, PARROT_ARG_I, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
+    { 0, 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 913 */
     /* type PARROT_INLINE_OP, */
@@ -12129,7 +13045,8 @@
     6,
     { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_IC, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
+    { 0, 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 914 */
     /* type PARROT_INLINE_OP, */
@@ -12141,7 +13058,8 @@
     6,
     { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_S, PARROT_ARG_IC, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
+    { 0, 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 915 */
     /* type PARROT_INLINE_OP, */
@@ -12153,7 +13071,8 @@
     6,
     { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_IC, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
+    { 0, 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 916 */
     /* type PARROT_INLINE_OP, */
@@ -12165,7 +13084,8 @@
     6,
     { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_SC, PARROT_ARG_IC, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
+    { 0, 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 917 */
     /* type PARROT_INLINE_OP, */
@@ -12177,7 +13097,8 @@
     6,
     { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
+    { 0, 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 918 */
     /* type PARROT_INLINE_OP, */
@@ -12189,7 +13110,8 @@
     6,
     { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_S, PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
+    { 0, 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 919 */
     /* type PARROT_INLINE_OP, */
@@ -12201,7 +13123,8 @@
     6,
     { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
+    { 0, 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 920 */
     /* type PARROT_INLINE_OP, */
@@ -12213,7 +13136,8 @@
     6,
     { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_SC, PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
+    { 0, 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 921 */
     /* type PARROT_INLINE_OP, */
@@ -12225,7 +13149,8 @@
     6,
     { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_IC, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
+    { 0, 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 922 */
     /* type PARROT_INLINE_OP, */
@@ -12237,7 +13162,8 @@
     6,
     { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_S, PARROT_ARG_IC, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
+    { 0, 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 923 */
     /* type PARROT_INLINE_OP, */
@@ -12249,7 +13175,8 @@
     6,
     { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_IC, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
+    { 0, 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 924 */
     /* type PARROT_INLINE_OP, */
@@ -12261,7 +13188,8 @@
     6,
     { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_SC, PARROT_ARG_IC, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
+    { 0, 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 925 */
     /* type PARROT_INLINE_OP, */
@@ -12273,7 +13201,8 @@
     6,
     { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_I, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
+    { 0, 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 926 */
     /* type PARROT_INLINE_OP, */
@@ -12285,7 +13214,8 @@
     6,
     { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_S, PARROT_ARG_I, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
+    { 0, 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 927 */
     /* type PARROT_INLINE_OP, */
@@ -12297,7 +13227,8 @@
     6,
     { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_I, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
+    { 0, 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 928 */
     /* type PARROT_INLINE_OP, */
@@ -12309,7 +13240,8 @@
     6,
     { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_SC, PARROT_ARG_I, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
+    { 0, 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 929 */
     /* type PARROT_INLINE_OP, */
@@ -12321,7 +13253,8 @@
     6,
     { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_IC, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
+    { 0, 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 930 */
     /* type PARROT_INLINE_OP, */
@@ -12333,7 +13266,8 @@
     6,
     { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_S, PARROT_ARG_IC, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
+    { 0, 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 931 */
     /* type PARROT_INLINE_OP, */
@@ -12345,7 +13279,8 @@
     6,
     { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_IC, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
+    { 0, 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 932 */
     /* type PARROT_INLINE_OP, */
@@ -12357,7 +13292,8 @@
     6,
     { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_SC, PARROT_ARG_IC, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
+    { 0, 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 933 */
     /* type PARROT_INLINE_OP, */
@@ -12369,7 +13305,8 @@
     6,
     { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
+    { 0, 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 934 */
     /* type PARROT_INLINE_OP, */
@@ -12381,7 +13318,8 @@
     6,
     { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_S, PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
+    { 0, 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 935 */
     /* type PARROT_INLINE_OP, */
@@ -12393,7 +13331,8 @@
     6,
     { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
+    { 0, 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 936 */
     /* type PARROT_INLINE_OP, */
@@ -12405,7 +13344,8 @@
     6,
     { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_SC, PARROT_ARG_I, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
+    { 0, 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 937 */
     /* type PARROT_INLINE_OP, */
@@ -12417,7 +13357,8 @@
     6,
     { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_IC, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
+    { 0, 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 938 */
     /* type PARROT_INLINE_OP, */
@@ -12429,7 +13370,8 @@
     6,
     { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_S, PARROT_ARG_IC, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
+    { 0, 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 939 */
     /* type PARROT_INLINE_OP, */
@@ -12441,7 +13383,8 @@
     6,
     { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_IC, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
+    { 0, 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 940 */
     /* type PARROT_INLINE_OP, */
@@ -12453,7 +13396,8 @@
     6,
     { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_SC, PARROT_ARG_IC, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0, 0 }
+    { 0, 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 941 */
     /* type PARROT_FUNCTION_OP, */
@@ -12465,7 +13409,8 @@
     3,
     { PARROT_ARG_S, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 942 */
     /* type PARROT_FUNCTION_OP, */
@@ -12477,7 +13422,8 @@
     3,
     { PARROT_ARG_S, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 943 */
     /* type PARROT_FUNCTION_OP, */
@@ -12489,7 +13435,8 @@
     3,
     { PARROT_ARG_S, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 944 */
     /* type PARROT_INLINE_OP, */
@@ -12501,7 +13448,8 @@
     3,
     { PARROT_ARG_I, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 945 */
     /* type PARROT_INLINE_OP, */
@@ -12513,7 +13461,8 @@
     3,
     { PARROT_ARG_I, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 946 */
     /* type PARROT_INLINE_OP, */
@@ -12525,7 +13474,8 @@
     3,
     { PARROT_ARG_I, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 947 */
     /* type PARROT_INLINE_OP, */
@@ -12537,7 +13487,8 @@
     2,
     { PARROT_ARG_I },
     { PARROT_ARGDIR_OUT },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 948 */
     /* type PARROT_FUNCTION_OP, */
@@ -12549,7 +13500,8 @@
     2,
     { PARROT_ARG_S },
     { PARROT_ARGDIR_OUT },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 949 */
     /* type PARROT_FUNCTION_OP, */
@@ -12561,7 +13513,8 @@
     3,
     { PARROT_ARG_S, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 950 */
     /* type PARROT_FUNCTION_OP, */
@@ -12573,7 +13526,8 @@
     3,
     { PARROT_ARG_S, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 951 */
     /* type PARROT_INLINE_OP, */
@@ -12585,7 +13539,8 @@
     2,
     { PARROT_ARG_I },
     { PARROT_ARGDIR_OUT },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 952 */
     /* type PARROT_INLINE_OP, */
@@ -12597,7 +13552,8 @@
     2,
     { PARROT_ARG_N },
     { PARROT_ARGDIR_OUT },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 953 */
     /* type PARROT_INLINE_OP, */
@@ -12609,7 +13565,8 @@
     2,
     { PARROT_ARG_I },
     { PARROT_ARGDIR_IN },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 954 */
     /* type PARROT_INLINE_OP, */
@@ -12621,7 +13578,8 @@
     2,
     { PARROT_ARG_IC },
     { PARROT_ARGDIR_IN },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 955 */
     /* type PARROT_INLINE_OP, */
@@ -12633,7 +13591,8 @@
     2,
     { PARROT_ARG_N },
     { PARROT_ARGDIR_IN },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 956 */
     /* type PARROT_INLINE_OP, */
@@ -12645,7 +13604,8 @@
     2,
     { PARROT_ARG_NC },
     { PARROT_ARGDIR_IN },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 957 */
     /* type PARROT_FUNCTION_OP, */
@@ -12657,7 +13617,8 @@
     3,
     { PARROT_ARG_S, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 958 */
     /* type PARROT_FUNCTION_OP, */
@@ -12669,7 +13630,8 @@
     3,
     { PARROT_ARG_SC, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 959 */
     /* type PARROT_FUNCTION_OP, */
@@ -12681,7 +13643,8 @@
     3,
     { PARROT_ARG_S, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 960 */
     /* type PARROT_FUNCTION_OP, */
@@ -12693,7 +13656,8 @@
     3,
     { PARROT_ARG_SC, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 961 */
     /* type PARROT_FUNCTION_OP, */
@@ -12705,7 +13669,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 962 */
     /* type PARROT_FUNCTION_OP, */
@@ -12717,7 +13682,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 963 */
     /* type PARROT_FUNCTION_OP, */
@@ -12729,7 +13695,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 964 */
     /* type PARROT_FUNCTION_OP, */
@@ -12741,7 +13708,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 965 */
     /* type PARROT_FUNCTION_OP, */
@@ -12753,7 +13721,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 966 */
     /* type PARROT_FUNCTION_OP, */
@@ -12765,7 +13734,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 967 */
     /* type PARROT_FUNCTION_OP, */
@@ -12777,7 +13747,8 @@
     2,
     { PARROT_ARG_P },
     { PARROT_ARGDIR_OUT },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 968 */
     /* type PARROT_FUNCTION_OP, */
@@ -12789,7 +13760,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 969 */
     /* type PARROT_FUNCTION_OP, */
@@ -12801,7 +13773,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_PC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 970 */
     /* type PARROT_FUNCTION_OP, */
@@ -12813,7 +13786,8 @@
     2,
     { PARROT_ARG_P },
     { PARROT_ARGDIR_OUT },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 971 */
     /* type PARROT_FUNCTION_OP, */
@@ -12825,7 +13799,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 972 */
     /* type PARROT_FUNCTION_OP, */
@@ -12837,7 +13812,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_PC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 973 */
     /* type PARROT_FUNCTION_OP, */
@@ -12849,7 +13825,8 @@
     2,
     { PARROT_ARG_P },
     { PARROT_ARGDIR_OUT },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 974 */
     /* type PARROT_FUNCTION_OP, */
@@ -12861,7 +13838,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 975 */
     /* type PARROT_FUNCTION_OP, */
@@ -12873,7 +13851,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_PC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 976 */
     /* type PARROT_FUNCTION_OP, */
@@ -12885,7 +13864,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 977 */
     /* type PARROT_FUNCTION_OP, */
@@ -12897,7 +13877,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 978 */
     /* type PARROT_FUNCTION_OP, */
@@ -12909,7 +13890,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 979 */
     /* type PARROT_FUNCTION_OP, */
@@ -12921,7 +13903,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 980 */
     /* type PARROT_FUNCTION_OP, */
@@ -12933,7 +13916,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 981 */
     /* type PARROT_FUNCTION_OP, */
@@ -12945,7 +13929,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 982 */
     /* type PARROT_FUNCTION_OP, */
@@ -12957,7 +13942,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 983 */
     /* type PARROT_FUNCTION_OP, */
@@ -12969,7 +13955,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 984 */
     /* type PARROT_FUNCTION_OP, */
@@ -12981,7 +13968,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 985 */
     /* type PARROT_FUNCTION_OP, */
@@ -12993,7 +13981,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 986 */
     /* type PARROT_FUNCTION_OP, */
@@ -13005,7 +13994,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 987 */
     /* type PARROT_FUNCTION_OP, */
@@ -13017,7 +14007,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 988 */
     /* type PARROT_FUNCTION_OP, */
@@ -13029,7 +14020,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 989 */
     /* type PARROT_FUNCTION_OP, */
@@ -13041,7 +14033,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 990 */
     /* type PARROT_FUNCTION_OP, */
@@ -13053,7 +14046,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 991 */
     /* type PARROT_FUNCTION_OP, */
@@ -13065,7 +14059,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 992 */
     /* type PARROT_FUNCTION_OP, */
@@ -13077,7 +14072,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 993 */
     /* type PARROT_FUNCTION_OP, */
@@ -13089,7 +14085,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 994 */
     /* type PARROT_FUNCTION_OP, */
@@ -13101,7 +14098,8 @@
     3,
     { PARROT_ARG_S, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 995 */
     /* type PARROT_FUNCTION_OP, */
@@ -13113,7 +14111,8 @@
     3,
     { PARROT_ARG_SC, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 996 */
     /* type PARROT_FUNCTION_OP, */
@@ -13125,7 +14124,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 997 */
     /* type PARROT_FUNCTION_OP, */
@@ -13137,7 +14137,8 @@
     4,
     { PARROT_ARG_PC, PARROT_ARG_S, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 998 */
     /* type PARROT_FUNCTION_OP, */
@@ -13149,7 +14150,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 999 */
     /* type PARROT_FUNCTION_OP, */
@@ -13161,7 +14163,8 @@
     4,
     { PARROT_ARG_PC, PARROT_ARG_SC, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 1000 */
     /* type PARROT_FUNCTION_OP, */
@@ -13173,7 +14176,8 @@
     3,
     { PARROT_ARG_S, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 1001 */
     /* type PARROT_FUNCTION_OP, */
@@ -13185,7 +14189,8 @@
     3,
     { PARROT_ARG_SC, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 1002 */
     /* type PARROT_FUNCTION_OP, */
@@ -13197,7 +14202,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 1003 */
     /* type PARROT_FUNCTION_OP, */
@@ -13209,7 +14215,8 @@
     4,
     { PARROT_ARG_PC, PARROT_ARG_S, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 1004 */
     /* type PARROT_FUNCTION_OP, */
@@ -13221,7 +14228,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 1005 */
     /* type PARROT_FUNCTION_OP, */
@@ -13233,7 +14241,8 @@
     4,
     { PARROT_ARG_PC, PARROT_ARG_SC, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 1006 */
     /* type PARROT_FUNCTION_OP, */
@@ -13245,7 +14254,8 @@
     3,
     { PARROT_ARG_S, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 1007 */
     /* type PARROT_FUNCTION_OP, */
@@ -13257,7 +14267,8 @@
     3,
     { PARROT_ARG_SC, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 1008 */
     /* type PARROT_FUNCTION_OP, */
@@ -13269,7 +14280,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 1009 */
     /* type PARROT_FUNCTION_OP, */
@@ -13281,7 +14293,8 @@
     4,
     { PARROT_ARG_PC, PARROT_ARG_S, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 1010 */
     /* type PARROT_FUNCTION_OP, */
@@ -13293,7 +14306,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 1011 */
     /* type PARROT_FUNCTION_OP, */
@@ -13305,7 +14319,8 @@
     4,
     { PARROT_ARG_PC, PARROT_ARG_SC, PARROT_ARG_P },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 1012 */
     /* type PARROT_FUNCTION_OP, */
@@ -13317,7 +14332,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 1013 */
     /* type PARROT_FUNCTION_OP, */
@@ -13329,7 +14345,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 1014 */
     /* type PARROT_INLINE_OP, */
@@ -13341,7 +14358,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 1015 */
     /* type PARROT_INLINE_OP, */
@@ -13353,7 +14371,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 1016 */
     /* type PARROT_FUNCTION_OP, */
@@ -13365,7 +14384,8 @@
     1,
     { (arg_type_t) 0 },
     { (arg_dir_t) 0 },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 1017 */
     /* type PARROT_INLINE_OP, */
@@ -13377,7 +14397,8 @@
     3,
     { PARROT_ARG_P, PARROT_ARG_IC },
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 1 }
+    { 0, 1 },
+    &core_op_lib
   },
   { /* 1018 */
     /* type PARROT_INLINE_OP, */
@@ -13389,7 +14410,8 @@
     3,
     { PARROT_ARG_I, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 1019 */
     /* type PARROT_INLINE_OP, */
@@ -13401,7 +14423,8 @@
     5,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 1020 */
     /* type PARROT_INLINE_OP, */
@@ -13413,7 +14436,8 @@
     5,
     { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 1021 */
     /* type PARROT_INLINE_OP, */
@@ -13425,7 +14449,8 @@
     5,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 1022 */
     /* type PARROT_INLINE_OP, */
@@ -13437,7 +14462,8 @@
     5,
     { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_PC, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 1023 */
     /* type PARROT_INLINE_OP, */
@@ -13449,7 +14475,8 @@
     5,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_PC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 1024 */
     /* type PARROT_INLINE_OP, */
@@ -13461,7 +14488,8 @@
     5,
     { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_P, PARROT_ARG_PC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 1025 */
     /* type PARROT_INLINE_OP, */
@@ -13473,7 +14501,8 @@
     5,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_PC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 1026 */
     /* type PARROT_INLINE_OP, */
@@ -13485,7 +14514,8 @@
     5,
     { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_PC, PARROT_ARG_PC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 1027 */
     /* type PARROT_INLINE_OP, */
@@ -13497,7 +14527,8 @@
     5,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 1028 */
     /* type PARROT_INLINE_OP, */
@@ -13509,7 +14540,8 @@
     5,
     { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_I, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 1029 */
     /* type PARROT_INLINE_OP, */
@@ -13521,7 +14553,8 @@
     5,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 1030 */
     /* type PARROT_INLINE_OP, */
@@ -13533,7 +14566,8 @@
     5,
     { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_IC, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 1031 */
     /* type PARROT_INLINE_OP, */
@@ -13545,7 +14579,8 @@
     5,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_PC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 1032 */
     /* type PARROT_INLINE_OP, */
@@ -13557,7 +14592,8 @@
     5,
     { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_I, PARROT_ARG_PC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 1033 */
     /* type PARROT_INLINE_OP, */
@@ -13569,7 +14605,8 @@
     5,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_PC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 1034 */
     /* type PARROT_INLINE_OP, */
@@ -13581,7 +14618,8 @@
     5,
     { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_IC, PARROT_ARG_PC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 1035 */
     /* type PARROT_INLINE_OP, */
@@ -13593,7 +14631,8 @@
     5,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 1036 */
     /* type PARROT_INLINE_OP, */
@@ -13605,7 +14644,8 @@
     5,
     { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_S, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 1037 */
     /* type PARROT_INLINE_OP, */
@@ -13617,7 +14657,8 @@
     5,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 1038 */
     /* type PARROT_INLINE_OP, */
@@ -13629,7 +14670,8 @@
     5,
     { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_SC, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 1039 */
     /* type PARROT_INLINE_OP, */
@@ -13641,7 +14683,8 @@
     5,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_PC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 1040 */
     /* type PARROT_INLINE_OP, */
@@ -13653,7 +14696,8 @@
     5,
     { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_S, PARROT_ARG_PC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 1041 */
     /* type PARROT_INLINE_OP, */
@@ -13665,7 +14709,8 @@
     5,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_PC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 1042 */
     /* type PARROT_INLINE_OP, */
@@ -13677,7 +14722,8 @@
     5,
     { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_SC, PARROT_ARG_PC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 1043 */
     /* type PARROT_INLINE_OP, */
@@ -13689,7 +14735,8 @@
     5,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 1044 */
     /* type PARROT_INLINE_OP, */
@@ -13701,7 +14748,8 @@
     5,
     { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_P, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 1045 */
     /* type PARROT_INLINE_OP, */
@@ -13713,7 +14761,8 @@
     5,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 1046 */
     /* type PARROT_INLINE_OP, */
@@ -13725,7 +14774,8 @@
     5,
     { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_PC, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 1047 */
     /* type PARROT_INLINE_OP, */
@@ -13737,7 +14787,8 @@
     5,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_PC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 1048 */
     /* type PARROT_INLINE_OP, */
@@ -13749,7 +14800,8 @@
     5,
     { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_P, PARROT_ARG_PC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 1049 */
     /* type PARROT_INLINE_OP, */
@@ -13761,7 +14813,8 @@
     5,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_PC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 1050 */
     /* type PARROT_INLINE_OP, */
@@ -13773,7 +14826,8 @@
     5,
     { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_PC, PARROT_ARG_PC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 1051 */
     /* type PARROT_INLINE_OP, */
@@ -13785,7 +14839,8 @@
     5,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 1052 */
     /* type PARROT_INLINE_OP, */
@@ -13797,7 +14852,8 @@
     5,
     { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_I, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 1053 */
     /* type PARROT_INLINE_OP, */
@@ -13809,7 +14865,8 @@
     5,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 1054 */
     /* type PARROT_INLINE_OP, */
@@ -13821,7 +14878,8 @@
     5,
     { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_IC, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 1055 */
     /* type PARROT_INLINE_OP, */
@@ -13833,7 +14891,8 @@
     5,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_PC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 1056 */
     /* type PARROT_INLINE_OP, */
@@ -13845,7 +14904,8 @@
     5,
     { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_I, PARROT_ARG_PC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 1057 */
     /* type PARROT_INLINE_OP, */
@@ -13857,7 +14917,8 @@
     5,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_PC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 1058 */
     /* type PARROT_INLINE_OP, */
@@ -13869,7 +14930,8 @@
     5,
     { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_IC, PARROT_ARG_PC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 1059 */
     /* type PARROT_INLINE_OP, */
@@ -13881,7 +14943,8 @@
     5,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 1060 */
     /* type PARROT_INLINE_OP, */
@@ -13893,7 +14956,8 @@
     5,
     { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_S, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 1061 */
     /* type PARROT_INLINE_OP, */
@@ -13905,7 +14969,8 @@
     5,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 1062 */
     /* type PARROT_INLINE_OP, */
@@ -13917,7 +14982,8 @@
     5,
     { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_SC, PARROT_ARG_P },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 1063 */
     /* type PARROT_INLINE_OP, */
@@ -13929,7 +14995,8 @@
     5,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_PC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 1064 */
     /* type PARROT_INLINE_OP, */
@@ -13941,7 +15008,8 @@
     5,
     { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_S, PARROT_ARG_PC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 1065 */
     /* type PARROT_INLINE_OP, */
@@ -13953,7 +15021,8 @@
     5,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_PC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 1066 */
     /* type PARROT_INLINE_OP, */
@@ -13965,7 +15034,8 @@
     5,
     { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_SC, PARROT_ARG_PC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0, 0 }
+    { 0, 0, 0, 0 },
+    &core_op_lib
   },
   { /* 1067 */
     /* type PARROT_FUNCTION_OP, */
@@ -13977,7 +15047,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 1068 */
     /* type PARROT_FUNCTION_OP, */
@@ -13989,7 +15060,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 1069 */
     /* type PARROT_FUNCTION_OP, */
@@ -14001,7 +15073,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 1070 */
     /* type PARROT_FUNCTION_OP, */
@@ -14013,7 +15086,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 1071 */
     /* type PARROT_FUNCTION_OP, */
@@ -14025,7 +15099,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 1072 */
     /* type PARROT_FUNCTION_OP, */
@@ -14037,7 +15112,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 1073 */
     /* type PARROT_FUNCTION_OP, */
@@ -14049,7 +15125,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 1074 */
     /* type PARROT_FUNCTION_OP, */
@@ -14061,7 +15138,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 1075 */
     /* type PARROT_FUNCTION_OP, */
@@ -14073,7 +15151,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 1076 */
     /* type PARROT_FUNCTION_OP, */
@@ -14085,7 +15164,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_I },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 1077 */
     /* type PARROT_FUNCTION_OP, */
@@ -14097,7 +15177,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 1078 */
     /* type PARROT_FUNCTION_OP, */
@@ -14109,7 +15190,8 @@
     4,
     { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_IC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
-    { 0, 0, 0 }
+    { 0, 0, 0 },
+    &core_op_lib
   },
   { /* 1079 */
     /* type PARROT_FUNCTION_OP, */
@@ -14121,7 +15203,8 @@
     3,
     { PARROT_ARG_I, PARROT_ARG_S },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 1080 */
     /* type PARROT_FUNCTION_OP, */
@@ -14133,7 +15216,8 @@
     3,
     { PARROT_ARG_I, PARROT_ARG_SC },
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
+    { 0, 0 },
+    &core_op_lib
   },
   { /* 1081 */
     /* type PARROT_FUNCTION_OP, */
@@ -14145,7 +15229,8 @@
     2,
     { PARROT_ARG_P },
     { PARROT_ARGDIR_IN },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
   { /* 1082 */
     /* type PARROT_FUNCTION_OP, */
@@ -14157,7 +15242,8 @@
     2,
     { PARROT_ARG_PC },
     { PARROT_ARGDIR_IN },
-    { 0 }
+    { 0 },
+    &core_op_lib
   },
 
 };
@@ -25011,9 +26097,10 @@
 ** op lib descriptor:
 */
 
-static op_lib_t core_op_lib = {
-  "core",               /* name */
-  "",             /* suffix */
+/* XXX should be static, but C++ doesn't want to play ball */
+op_lib_t core_op_lib = {
+  "core_ops",                /* name */
+  "",                  /* suffix */
   PARROT_FUNCTION_CORE,                       /* core_type = PARROT_XX_CORE */
   0,                                /* flags */
   2,    /* major_version */

Modified: trunk/src/packfile.c
==============================================================================
--- trunk/src/packfile.c	Wed Aug 11 04:51:55 2010	(r48411)
+++ trunk/src/packfile.c	Wed Aug 11 05:38:18 2010	(r48412)
@@ -25,15 +25,18 @@
 */
 
 #include "parrot/parrot.h"
+#include "parrot/packfile.h"
 #include "parrot/embed.h"
 #include "parrot/extend.h"
-#include "parrot/packfile.h"
+#include "parrot/dynext.h"
 #include "parrot/runcore_api.h"
 #include "../compilers/imcc/imc.h"
 #include "packfile.str"
 #include "pmc/pmc_sub.h"
 #include "pmc/pmc_key.h"
 #include "pmc/pmc_callcontext.h"
+#include "pmc/pmc_parrotlibrary.h"
+#include "parrot/oplib/core_ops.h"
 
 /* HEADERIZER HFILE: include/parrot/packfile.h */
 
@@ -53,6 +56,31 @@
     SHIM(int add))
         __attribute__nonnull__(1);
 
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+static opcode_t * byte_code_pack(PARROT_INTERP,
+    ARGMOD(PackFile_Segment *self),
+    ARGOUT(opcode_t *cursor))
+        __attribute__nonnull__(1)
+        __attribute__nonnull__(2)
+        __attribute__nonnull__(3)
+        FUNC_MODIFIES(*self)
+        FUNC_MODIFIES(*cursor);
+
+static size_t byte_code_packed_size(SHIM_INTERP,
+    ARGIN(PackFile_Segment *self))
+        __attribute__nonnull__(2);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+static const opcode_t * byte_code_unpack(PARROT_INTERP,
+    ARGMOD(PackFile_Segment *self),
+    ARGIN(const opcode_t *cursor))
+        __attribute__nonnull__(1)
+        __attribute__nonnull__(2)
+        __attribute__nonnull__(3)
+        FUNC_MODIFIES(*self);
+
 static void clone_constant(PARROT_INTERP,
     ARGIN(PackFile_Constant *old_const),
     ARGMOD(PackFile_Constant *new_const))
@@ -353,6 +381,16 @@
     , PARROT_ASSERT_ARG(self))
 #define ASSERT_ARGS_byte_code_new __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_byte_code_pack __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp) \
+    , PARROT_ASSERT_ARG(self) \
+    , PARROT_ASSERT_ARG(cursor))
+#define ASSERT_ARGS_byte_code_packed_size __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(self))
+#define ASSERT_ARGS_byte_code_unpack __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp) \
+    , PARROT_ASSERT_ARG(self) \
+    , PARROT_ASSERT_ARG(cursor))
 #define ASSERT_ARGS_clone_constant __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
     , PARROT_ASSERT_ARG(old_const) \
@@ -1626,7 +1664,8 @@
 pf_register_standard_funcs(PARROT_INTERP, ARGMOD(PackFile *pf))
 {
     ASSERT_ARGS(pf_register_standard_funcs)
-    PackFile_funcs dirf = {
+
+    static const PackFile_funcs dirf = {
         directory_new,
         directory_destroy,
         directory_packed_size,
@@ -1635,7 +1674,7 @@
         directory_dump
     };
 
-    PackFile_funcs defaultf = {
+    static const PackFile_funcs defaultf = {
         PackFile_Segment_new,
         (PackFile_Segment_destroy_func_t)     NULLfunc,
         (PackFile_Segment_packed_size_func_t) NULLfunc,
@@ -1644,7 +1683,7 @@
         default_dump
     };
 
-    PackFile_funcs fixupf = {
+    static const PackFile_funcs fixupf = {
         fixup_new,
         fixup_destroy,
         fixup_packed_size,
@@ -1653,7 +1692,7 @@
         default_dump
     };
 
-    PackFile_funcs constf = {
+    static const PackFile_funcs constf = {
         const_new,
         const_destroy,
         PackFile_ConstTable_pack_size,
@@ -1662,16 +1701,16 @@
         default_dump
     };
 
-    PackFile_funcs bytef = {
+    static const PackFile_funcs bytef = {
         byte_code_new,
         byte_code_destroy,
-        (PackFile_Segment_packed_size_func_t) NULLfunc,
-        (PackFile_Segment_pack_func_t)        NULLfunc,
-        (PackFile_Segment_unpack_func_t)      NULLfunc,
+        byte_code_packed_size,
+        byte_code_pack,
+        byte_code_unpack,
         default_dump
     };
 
-    const PackFile_funcs debugf = {
+    static const PackFile_funcs debugf = {
         pf_debug_new,
         pf_debug_destroy,
         pf_debug_packed_size,
@@ -1680,7 +1719,7 @@
         pf_debug_dump
     };
 
-    const PackFile_funcs annotationf = {
+    static const PackFile_funcs annotationf = {
         PackFile_Annotations_new,
         PackFile_Annotations_destroy,
         PackFile_Annotations_packed_size,
@@ -2589,9 +2628,19 @@
     ASSERT_ARGS(byte_code_destroy)
     PackFile_ByteCode * const byte_code = (PackFile_ByteCode *)self;
 
-    byte_code->fixups      = NULL;
-    byte_code->const_table = NULL;
-    byte_code->debugs      = NULL;
+    if (byte_code->op_func_table)
+        mem_gc_free(interp, byte_code->op_func_table);
+    if (byte_code->op_info_table)
+        mem_gc_free(interp, byte_code->op_info_table);
+    if (byte_code->op_mapping.libs)
+        mem_gc_free(interp, byte_code->op_mapping.libs);
+
+    byte_code->fixups          = NULL;
+    byte_code->const_table     = NULL;
+    byte_code->debugs          = NULL;
+    byte_code->op_mapping.libs = NULL;
+    byte_code->op_func_table   = NULL;
+    byte_code->op_info_table   = NULL;
 }
 
 
@@ -2617,6 +2666,206 @@
     return (PackFile_Segment *) byte_code;
 }
 
+/*
+
+=item C<static size_t byte_code_packed_size(PARROT_INTERP, PackFile_Segment
+*self)>
+
+Computes the size in multiples of C<opcode_t> required to store the passed
+C<PackFile_ByteCode>.
+
+=cut
+
+*/
+
+static size_t
+byte_code_packed_size(SHIM_INTERP, ARGIN(PackFile_Segment *self))
+{
+    ASSERT_ARGS(byte_code_packed_size)
+    PackFile_ByteCode * const byte_code = (PackFile_ByteCode *)self;
+    size_t size;
+    int i;
+
+    size = 2; /* op_count + n_libs */
+
+    for (i = 0; i < byte_code->op_mapping.n_libs; i++) {
+        PackFile_ByteCode_OpMappingEntry * const entry = &byte_code->op_mapping.libs[i];
+
+        /* dynoplib data */
+        size += PF_size_cstring(entry->lib->name);
+        size += 3; /* major + minor + patch */
+
+        /* op entries */
+        size += 1;                /* n_ops */
+        size += entry->n_ops * 2; /* lib_ops and table_ops */
+    }
+
+    return size;
+}
+
+/*
+
+=item C<static opcode_t * byte_code_pack(PARROT_INTERP, PackFile_Segment *self,
+opcode_t *cursor)>
+
+Stores the passed C<PackFile_ByteCode> segment in bytecode.
+
+=cut
+
+*/
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+static opcode_t *
+byte_code_pack(PARROT_INTERP, ARGMOD(PackFile_Segment *self), ARGOUT(opcode_t *cursor))
+{
+    ASSERT_ARGS(byte_code_pack)
+    PackFile_ByteCode * const byte_code = (PackFile_ByteCode *)self;
+    int i, j;
+
+    *cursor++ = byte_code->op_count;
+    *cursor++ = byte_code->op_mapping.n_libs;
+
+    for (i = 0; i < byte_code->op_mapping.n_libs; i++) {
+        PackFile_ByteCode_OpMappingEntry * const entry = &byte_code->op_mapping.libs[i];
+
+        /* dynoplib data */
+        cursor    = PF_store_cstring(cursor, entry->lib->name);
+        *cursor++ = entry->lib->major_version;
+        *cursor++ = entry->lib->minor_version;
+        *cursor++ = entry->lib->patch_version;
+
+        /* op entries */
+        *cursor++ = entry->n_ops;
+        for (j = 0; j < entry->n_ops; j++) {
+            *cursor++ = entry->table_ops[j];
+            *cursor++ = entry->lib_ops[j];
+        }
+    }
+
+    return cursor;
+}
+
+/*
+
+=item C<static const opcode_t * byte_code_unpack(PARROT_INTERP, PackFile_Segment
+*self, const opcode_t *cursor)>
+
+Unpacks a bytecode segment into the passed C<PackFile_ByteCode>.
+
+=cut
+
+*/
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+static const opcode_t *
+byte_code_unpack(PARROT_INTERP, ARGMOD(PackFile_Segment *self), ARGIN(const opcode_t *cursor))
+{
+    ASSERT_ARGS(byte_code_unpack)
+    PackFile_ByteCode * const byte_code = (PackFile_ByteCode *)self;
+    int i;
+    int total_ops = 0;
+
+    byte_code->op_count          = PF_fetch_opcode(self->pf, &cursor);
+    byte_code->op_func_table     = mem_gc_allocate_n_zeroed_typed(interp,
+                                        byte_code->op_count, op_func_t);
+    byte_code->op_info_table     = mem_gc_allocate_n_zeroed_typed(interp,
+                                        byte_code->op_count, op_info_t *);
+
+
+    byte_code->op_mapping.n_libs = PF_fetch_opcode(self->pf, &cursor);
+    byte_code->op_mapping.libs   = mem_gc_allocate_n_zeroed_typed(interp,
+                                    byte_code->op_mapping.n_libs,
+                                    PackFile_ByteCode_OpMappingEntry);
+
+    for (i = 0; i < byte_code->op_mapping.n_libs; i++) {
+        PackFile_ByteCode_OpMappingEntry * const entry = &byte_code->op_mapping.libs[i];
+
+        /* dynoplib data */
+        {
+            char * const    lib_name = PF_fetch_cstring(interp, self->pf, &cursor);
+            const opcode_t  major    = PF_fetch_opcode(self->pf, &cursor);
+            const opcode_t  minor    = PF_fetch_opcode(self->pf, &cursor);
+            const opcode_t  patch    = PF_fetch_opcode(self->pf, &cursor);
+
+            /* XXX
+             * broken encapsulation => should make this data easier to access somehow
+             */
+            if (STREQ(lib_name, PARROT_CORE_OPLIB_NAME)) {
+                entry->lib = PARROT_CORE_OPLIB_INIT(interp, 1);
+            }
+            else {
+                PMC *lib_pmc = Parrot_load_lib(interp,
+                                                Parrot_str_new(interp, lib_name, 0),
+                                                NULL);
+                typedef op_lib_t *(*oplib_init_t)(PARROT_INTERP, long init);
+                void *oplib_init;
+                oplib_init_t oplib_init_f;
+                if (!VTABLE_get_bool(interp, lib_pmc))
+                    Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_LIBRARY_ERROR,
+                        "Could not load oplib `%s'", lib_name);
+                GETATTR_ParrotLibrary_oplib_init(interp, lib_pmc, oplib_init);
+                oplib_init_f = (oplib_init_t)D2FPTR(oplib_init);
+                entry->lib = oplib_init_f(interp, 1);
+            }
+
+
+            mem_gc_free(interp, lib_name);
+
+            if (entry->lib->major_version != major
+            ||  entry->lib->minor_version != minor
+            ||  entry->lib->patch_version != patch)
+                Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_LIBRARY_ERROR,
+                    "Incompatible versions of `%s' oplib. Found %d.%d.%d but loaded %d.%d.%d",
+                    entry->lib->name, major, minor, patch, entry->lib->major_version,
+                    entry->lib->minor_version, entry->lib->patch_version);
+        }
+
+        /* op entries */
+        {
+            int       j;
+            total_ops += entry->n_ops = PF_fetch_opcode(self->pf, &cursor);
+
+            entry->table_ops = mem_gc_allocate_n_zeroed_typed(interp,
+                                    entry->n_ops, opcode_t);
+            entry->lib_ops   = mem_gc_allocate_n_zeroed_typed(interp,
+                                    entry->n_ops, opcode_t);
+
+            for (j = 0; j < entry->n_ops; j++) {
+                opcode_t idx = PF_fetch_opcode(self->pf, &cursor);
+                opcode_t op  = PF_fetch_opcode(self->pf, &cursor);
+
+                if (0 > op || op >= entry->lib->op_count)
+                    Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_MALFORMED_PACKFILE,
+                        "opcode index out of bounds on library `%s'. Found %d, expected 0 to %d.",
+                        entry->lib->name, op, entry->lib->op_count - 1);
+
+                if (0 > idx || idx >= byte_code->op_count)
+                    Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_MALFORMED_PACKFILE,
+                        "op table index out of bounds for entry from library `%s'."
+                        " Found %d, expected 0 to %d",
+                        entry->lib->name, idx, byte_code->op_count - 1);
+
+                if (byte_code->op_func_table[idx])
+                    Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_MALFORMED_PACKFILE,
+                        "duplicate entries in optable");
+
+                entry->table_ops[j]           = idx;
+                entry->lib_ops[j]             = op;
+                byte_code->op_func_table[idx] = entry->lib->op_func_table[op];
+                byte_code->op_info_table[idx] = &entry->lib->op_info_table[op];
+            }
+        }
+    }
+
+    if (total_ops != byte_code->op_count)
+        Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_MALFORMED_PACKFILE,
+            "wrong number of ops decoded for optable. Decoded %d, but expected %d",
+            total_ops, byte_code->op_count);
+
+    return cursor;
+}
 
 /*
 

Modified: trunk/src/pbc_dump.c
==============================================================================
--- trunk/src/pbc_dump.c	Wed Aug 11 04:51:55 2010	(r48411)
+++ trunk/src/pbc_dump.c	Wed Aug 11 05:38:18 2010	(r48412)
@@ -118,7 +118,7 @@
 
     while (pc < self->data + self->size) {
         /* n can't be const; the ADD_OP_VAR_PART macro increments it */
-        size_t n = (size_t)interp->op_info_table[*pc].op_count;
+        size_t n = (size_t)interp->code->op_info_table[*pc]->op_count;
         size_t i;
 
         /* trace_op_dump(interp, self->pf->src, pc); */
@@ -131,7 +131,7 @@
                 Parrot_io_printf(interp, "         ");
 
         Parrot_io_printf(interp, "%s\n",
-                interp->op_info_table[*pc].full_name);
+                interp->code->op_info_table[*pc]->full_name);
 
         ADD_OP_VAR_PART(interp, interp->code, pc, n);
         pc += n;
@@ -159,16 +159,16 @@
     const PackFile_Segment *debug      = PackFile_find_segment(interp,
                                             self->dir, debug_name, 1);
 
-    const opcode_t  * pc            = self->data;
-    const opcode_t  * debug_ops     = debug->data;
-    const op_info_t * const op_info = interp->op_info_table;
+    opcode_t   * pc            = self->data;
+    opcode_t   * debug_ops     = debug->data;
+    op_info_t ** const op_info = interp->code->op_info_table;
 
     while (pc < self->data + self->size) {
         /* n can't be const; the ADD_OP_VAR_PART macro increments it */
-        size_t n = (size_t)op_info[*pc].op_count;
+        size_t n = (size_t)op_info[*pc]->op_count;
 
         Parrot_io_printf(interp, " %04x:  %s\n",
-            *(debug_ops++), op_info[*pc].full_name);
+            *(debug_ops++), op_info[*pc]->full_name);
 
         ADD_OP_VAR_PART(interp, interp->code, pc, n);
         pc += n;

Modified: trunk/src/pbc_merge.c
==============================================================================
--- trunk/src/pbc_merge.c	Wed Aug 11 04:51:55 2010	(r48411)
+++ trunk/src/pbc_merge.c	Wed Aug 11 05:38:18 2010	(r48412)
@@ -64,6 +64,16 @@
 static void help(PARROT_INTERP)
         __attribute__nonnull__(1);
 
+static void pbc_fixup_bytecode(PARROT_INTERP,
+    ARGMOD(pbc_merge_input **inputs),
+    int num_inputs,
+    ARGMOD(PackFile_ByteCode *bc))
+        __attribute__nonnull__(1)
+        __attribute__nonnull__(2)
+        __attribute__nonnull__(4)
+        FUNC_MODIFIES(*inputs)
+        FUNC_MODIFIES(*bc);
+
 PARROT_WARN_UNUSED_RESULT
 PARROT_CANNOT_RETURN_NULL
 static PackFile* pbc_merge_begin(PARROT_INTERP,
@@ -100,16 +110,6 @@
         FUNC_MODIFIES(*pf)
         FUNC_MODIFIES(*bc);
 
-static void pbc_merge_ctpointers(PARROT_INTERP,
-    ARGMOD(pbc_merge_input **inputs),
-    int num_inputs,
-    ARGMOD(PackFile_ByteCode *bc))
-        __attribute__nonnull__(1)
-        __attribute__nonnull__(2)
-        __attribute__nonnull__(4)
-        FUNC_MODIFIES(*inputs)
-        FUNC_MODIFIES(*bc);
-
 static void pbc_merge_debugs(PARROT_INTERP,
     ARGMOD(pbc_merge_input **inputs),
     int num_inputs,
@@ -149,6 +149,10 @@
 
 #define ASSERT_ARGS_help __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_pbc_fixup_bytecode __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp) \
+    , PARROT_ASSERT_ARG(inputs) \
+    , PARROT_ASSERT_ARG(bc))
 #define ASSERT_ARGS_pbc_merge_begin __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
     , PARROT_ASSERT_ARG(inputs))
@@ -161,10 +165,6 @@
     , PARROT_ASSERT_ARG(inputs) \
     , PARROT_ASSERT_ARG(pf) \
     , PARROT_ASSERT_ARG(bc))
-#define ASSERT_ARGS_pbc_merge_ctpointers __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(inputs) \
-    , PARROT_ASSERT_ARG(bc))
 #define ASSERT_ARGS_pbc_merge_debugs __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
     , PARROT_ASSERT_ARG(inputs) \
@@ -601,7 +601,6 @@
     /* Create merged debug segment. Replace created data and mappings
        with merged ones we have created. */
     debug_seg = Parrot_new_debug_seg(interp, bc, num_lines);
-    PackFile_add_segment(interp, &pf->directory, (PackFile_Segment*)debug_seg);
     mem_gc_free(interp, debug_seg->base.data);
     debug_seg->base.data    = lines;
     mem_gc_free(interp, debug_seg->mappings);
@@ -610,23 +609,90 @@
     debug_seg->num_mappings = num_mappings;
 }
 
+
+static opcode_t
+bytecode_remap_op(PARROT_INTERP, PackFile *pf, opcode_t op) {
+    int i;
+    op_info_t         *info    = pf->cur_cs->op_info_table[op];
+    op_lib_t          *lib     = info->lib;
+    op_func_t         op_func  = pf->cur_cs->op_func_table[op];
+    PackFile_ByteCode *bc      = interp->code;
+    PackFile_ByteCode_OpMappingEntry *om;
+
+    for (i = 0; i < bc->op_mapping.n_libs; i++) {
+        if (lib == bc->op_mapping.libs[i].lib) {
+            om = &bc->op_mapping.libs[i];
+            goto found_lib;
+        }
+    }
+
+    /* library not yet mapped */
+    bc->op_mapping.n_libs++;
+    bc->op_mapping.libs = mem_gc_realloc_n_typed_zeroed(interp, bc->op_mapping.libs,
+                            bc->op_mapping.n_libs, bc->op_mapping.n_libs - 1,
+                            PackFile_ByteCode_OpMappingEntry);
+
+    /* initialize a new lib entry */
+    om            = &bc->op_mapping.libs[bc->op_mapping.n_libs - 1];
+    om->lib       = lib;
+    om->n_ops     = 0;
+    om->lib_ops   = mem_gc_allocate_n_zeroed_typed(interp, 0, opcode_t);
+    om->table_ops = mem_gc_allocate_n_zeroed_typed(interp, 0, opcode_t);
+
+  found_lib:
+    for (i = 0; i < om->n_ops; i++) {
+        if (bc->op_func_table[om->table_ops[i]] == op_func)
+            return om->table_ops[i];
+    }
+
+    /* op not yet mapped */
+    bc->op_count++;
+    bc->op_func_table =
+        mem_gc_realloc_n_typed_zeroed(interp, bc->op_func_table, bc->op_count, bc->op_count,
+                                        op_func_t);
+    bc->op_func_table[bc->op_count - 1] = op_func;
+    bc->op_info_table =
+        mem_gc_realloc_n_typed_zeroed(interp, bc->op_info_table, bc->op_count, bc->op_count,
+                                        op_info_t *);
+    bc->op_info_table[bc->op_count - 1] = info;
+
+    /* initialize new op mapping */
+    om->n_ops++;
+
+    om->lib_ops =
+        mem_gc_realloc_n_typed_zeroed(interp, om->lib_ops, om->n_ops, om->n_ops - 1, opcode_t);
+    for (i = 0; i < lib->op_count; i++) {
+        if (lib->op_func_table[i] == op_func) {
+            om->lib_ops[om->n_ops - 1] = i;
+            break;
+        }
+    }
+    PARROT_ASSERT(om->lib_ops[om->n_ops - 1] || !i);
+
+    om->table_ops =
+        mem_gc_realloc_n_typed_zeroed(interp, om->table_ops, om->n_ops, om->n_ops - 1, opcode_t);
+    om->table_ops[om->n_ops - 1] = bc->op_count - 1;
+
+    return bc->op_count - 1;
+}
+
 /*
 
-=item C<static void pbc_merge_ctpointers(PARROT_INTERP, pbc_merge_input
-**inputs, int num_inputs, PackFile_ByteCode *bc)>
+=item C<static void pbc_fixup_bytecode(PARROT_INTERP, pbc_merge_input **inputs,
+int num_inputs, PackFile_ByteCode *bc)>
 
-This function corrects the pointers into the constants table found in the
-bytecode.
+Fixup bytecode. This includes correcting pointers into the constant table
+and updating the ops mapping.
 
 =cut
 
 */
 
 static void
-pbc_merge_ctpointers(PARROT_INTERP, ARGMOD(pbc_merge_input **inputs),
+pbc_fixup_bytecode(PARROT_INTERP, ARGMOD(pbc_merge_input **inputs),
                      int num_inputs, ARGMOD(PackFile_ByteCode *bc))
 {
-    ASSERT_ARGS(pbc_merge_ctpointers)
+    ASSERT_ARGS(pbc_fixup_bytecode)
     int        cur_arg;
     opcode_t  *op_ptr;
     opcode_t  *ops       = bc->base.data;
@@ -637,15 +703,16 @@
     while (cur_op < (opcode_t)bc->base.size) {
         op_info_t *op;
         opcode_t   op_num;
+        op_func_t  op_func;
 
         /* Keep track of the current input file. */
         if (cur_input + 1 < num_inputs &&
             cur_op >= inputs[cur_input + 1]->code_start)
             ++cur_input;
 
-        /* Get info about this op and jump over it. */
-        op_num = ops[cur_op];
-        op     = &interp->op_info_table[op_num];
+        /* Get info about this op, remap it, and jump over it. */
+        op_num = ops[cur_op] = bytecode_remap_op(interp, inputs[cur_input]->pf, ops[cur_op]);
+        op     = bc->op_info_table[op_num];
         op_ptr = ops + cur_op;
         ++cur_op;
 
@@ -669,10 +736,11 @@
         }
 
         /* Handle special case variable argument opcodes. */
-        if (op_num == PARROT_OP_set_args_pc    ||
-                op_num == PARROT_OP_get_results_pc ||
-                op_num == PARROT_OP_get_params_pc  ||
-                op_num == PARROT_OP_set_returns_pc) {
+        op_func = interp->code->op_func_table[op_num];
+        if (op_func == interp->op_func_table[PARROT_OP_set_args_pc]    ||
+            op_func == interp->op_func_table[PARROT_OP_get_results_pc] ||
+            op_func == interp->op_func_table[PARROT_OP_get_params_pc]  ||
+            op_func == interp->op_func_table[PARROT_OP_set_returns_pc]) {
             /* Get the signature. */
             PMC * const sig = bc->const_table->constants[op_ptr[1]].u.key;
 
@@ -739,7 +807,7 @@
     }
 
     /* Merge the various stuff. */
-    bc = pbc_merge_bytecode(interp, inputs, num_inputs, merged);
+    bc = interp->code = pbc_merge_bytecode(interp, inputs, num_inputs, merged);
     ct = pbc_merge_constants(interp, inputs, num_inputs, merged, bc);
     UNUSED(ct);
 
@@ -747,7 +815,7 @@
     pbc_merge_debugs(interp, inputs, num_inputs, merged, bc);
 
     /* Walk bytecode and fix ops that reference the constants table. */
-    pbc_merge_ctpointers(interp, inputs, num_inputs, bc);
+    pbc_fixup_bytecode(interp, inputs, num_inputs, bc);
 
     for (i = 0; i < num_inputs; ++i) {
         mem_gc_free(interp, inputs[i]->const_map);

Modified: trunk/src/pmc/opcode.pmc
==============================================================================
--- trunk/src/pmc/opcode.pmc	Wed Aug 11 04:51:55 2010	(r48411)
+++ trunk/src/pmc/opcode.pmc	Wed Aug 11 05:38:18 2010	(r48412)
@@ -23,19 +23,12 @@
 pmclass Opcode auto_attrs {
     ATTR op_info_t *info;
     ATTR INTVAL op_number;
-    ATTR STRING *full_name_cache;
 
     VTABLE void init() {
         Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_INVALID_OPERATION,
             "Opcode must be created from OpLib.");
     }
 
-    VTABLE void mark() {
-        Parrot_Opcode_attributes * const attrs = PARROT_OPCODE(SELF);
-        if (attrs->full_name_cache)
-            Parrot_gc_mark_STRING_alive(INTERP, attrs->full_name_cache);
-    }
-
     VTABLE void set_pointer(void *i) {
         Parrot_Opcode_attributes * const attrs = PARROT_OPCODE(SELF);
         if (attrs->info)
@@ -44,16 +37,6 @@
         attrs->info = (op_info_t *)i;
     }
 
-    VTABLE void set_string_native(STRING *name) {
-        char * const cstr = Parrot_str_to_cstring(INTERP, name);
-        const INTVAL num = INTERP->op_lib->op_code(INTERP, cstr, 1);
-        Parrot_str_free_cstring(cstr);
-        if (num == -1)
-            Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_OUT_OF_BOUNDS,
-                "Opcode: Opcode %S not found", name);
-        VTABLE_set_integer_native(INTERP, SELF, num);
-    }
-
     VTABLE INTVAL get_integer() {
         Parrot_Opcode_attributes * const attrs = PARROT_OPCODE(SELF);
         if (!attrs->info)
@@ -62,27 +45,18 @@
     }
 
     VTABLE void set_integer_native(INTVAL value) {
-        const INTVAL opcount = INTERP->op_lib->op_count;
         Parrot_Opcode_attributes * const attrs = PARROT_OPCODE(SELF);
         if (attrs->info)
             Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_INVALID_OPERATION,
                 "Opcode has already been initialized");
-        if (value >= opcount || value < 0)
-            Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_OUT_OF_BOUNDS,
-                "Opcode: Opcode index %d out of bounds", value);
-        attrs->info = &(INTERP->op_info_table[value]);
         attrs->op_number = value;
     }
 
     VTABLE STRING* get_string() {
         Parrot_Opcode_attributes * const attrs = PARROT_OPCODE(SELF);
-        if (attrs->full_name_cache == NULL) {
-            const char * const name = attrs->info->full_name;
-            const INTVAL len = strlen(name);
-            STRING * const newstr = Parrot_str_new(INTERP, name, len);
-            attrs->full_name_cache = newstr;
-        }
-        return attrs->full_name_cache;
+        const char * const name                = attrs->info->full_name;
+        const INTVAL len                       = strlen(name);
+        return Parrot_str_new(INTERP, name, len);
     }
 
     VTABLE INTVAL elements() {

Modified: trunk/src/pmc/oplib.pmc
==============================================================================
--- trunk/src/pmc/oplib.pmc	Wed Aug 11 04:51:55 2010	(r48411)
+++ trunk/src/pmc/oplib.pmc	Wed Aug 11 05:38:18 2010	(r48412)
@@ -15,51 +15,59 @@
 */
 
 #include "parrot/parrot.h"
+#include "parrot/oplib/core_ops.h"
 
 /* HEADERIZER HFILE: none */
 /* HEADERIZER BEGIN: static */
 /* HEADERIZER END: static */
 
-/* TODO: Since Opcode PMCs are essentially read-only after initialization
-         here, we should cache them. A FixedPMCArray would be okay, an
-         INTVAL->PMC HASH might be better, since it's unlikely that we will
-         need to cache even a majority of the ~1300 ops. */
-static PMC *OPLIB_PMC_INSTANCE;
-static PMC *OPLIB_OPCODE_CACHE;
-pmclass OpLib singleton {
-    void class_init() {
-        OPLIB_PMC_INSTANCE = NULL;
-        OPLIB_OPCODE_CACHE = NULL;
-    }
+pmclass OpLib auto_attrs {
+    ATTR op_lib_t *oplib;
 
-    VTABLE void *get_pointer() {
-        return OPLIB_PMC_INSTANCE;
+    VTABLE void init() {
+        Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_INVALID_OPERATION,
+                "OpLib must be initialized with an oplib name");
     }
 
-    VTABLE void set_pointer(void *ptr) {
-        OPLIB_PMC_INSTANCE = (PMC *)ptr;
-    }
+    VTABLE void init_pmc(PMC *name_pmc) {
+        STRING   *name      = VTABLE_get_string(INTERP, name_pmc);
+        char     *name_cstr = Parrot_str_to_cstring(INTERP, name);
+        op_lib_t *oplib     = NULL;
+        int       i;
 
-    VTABLE void init() {
-        if (OPLIB_OPCODE_CACHE == NULL) {
-            OPLIB_OPCODE_CACHE = Parrot_pmc_new(INTERP, enum_class_Hash);
-            Parrot_pmc_gc_register(INTERP, OPLIB_OPCODE_CACHE);
+        if (STREQ(name_cstr, PARROT_CORE_OPLIB_NAME)) {
+            oplib = PARROT_CORE_OPLIB_INIT(INTERP, 1);
         }
-        PObj_custom_mark_SET(SELF);
-    }
+        else {
+            for (i = 0; i < INTERP->n_libs; i++) {
+                if (STREQ(name_cstr, INTERP->all_op_libs[i]->name)) {
+                    oplib = INTERP->all_op_libs[i];
+                    break;
+                }
+            }
+        }
+
+        Parrot_str_free_cstring(name_cstr);
 
-    VTABLE void mark() {
-        if (OPLIB_OPCODE_CACHE != NULL)
-            Parrot_gc_mark_PMC_alive(INTERP, OPLIB_OPCODE_CACHE);
+        if (!oplib)
+            Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_LIBRARY_NOT_LOADED,
+                    "Could not find oplib `%S'", name);
+
+        SET_ATTR_oplib(INTERP, SELF, oplib);
     }
 
     /* Look up an opnumber given the name of the op. First we look for the
        specific name, then the more general short name. */
     VTABLE INTVAL get_integer_keyed_str(STRING *name) {
-        char * const cstr = Parrot_str_to_cstring(INTERP, name);
-        INTVAL num = INTERP->op_lib->op_code(INTERP, cstr, 1);
+        op_lib_t     *oplib;
+        char * const  cstr = Parrot_str_to_cstring(INTERP, name);
+        INTVAL        num;
+
+        GET_ATTR_oplib(INTERP, SELF, oplib);
+        num  = oplib->op_code(INTERP, cstr, 1);
         if (num == -1)
-            num = INTERP->op_lib->op_code(INTERP, cstr, 0);
+            num = oplib->op_code(INTERP, cstr, 0);
+
         Parrot_str_free_cstring(cstr);
         return num;
     }
@@ -70,17 +78,11 @@
     }
 
     VTABLE PMC* get_pmc_keyed_str(STRING *name) {
-        if (VTABLE_defined_keyed_str(INTERP, OPLIB_OPCODE_CACHE, name)) {
-            PMC * const op = VTABLE_get_pmc_keyed_str(INTERP, OPLIB_OPCODE_CACHE, name);
-            return op;
-        }
-        else {
-            PMC * const op = Parrot_pmc_new_noinit(INTERP, enum_class_Opcode);
-            VTABLE_set_string_native(INTERP, op, name);
-            PObj_custom_mark_SET(op);
-            VTABLE_set_pmc_keyed_str(INTERP, OPLIB_OPCODE_CACHE, name, op);
-            return op;
-        }
+        const INTVAL  num = STATICSELF.get_integer_keyed_str(name);
+        if (num == -1)
+            Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_OUT_OF_BOUNDS,
+                "Opcode: Opcode %S not found", name);
+        return STATICSELF.get_pmc_keyed_int(num);
     }
 
     VTABLE PMC* get_pmc_keyed(PMC *key) {
@@ -89,18 +91,29 @@
     }
 
     VTABLE PMC* get_pmc_keyed_int(INTVAL value) {
-        if ((UINTVAL)value >= INTERP->op_lib->op_count)
+        op_lib_t *oplib;
+        GET_ATTR_oplib(INTERP, SELF, oplib);
+        if ((UINTVAL)value >= oplib->op_count ||
+                     value <  0) {
             Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_OUT_OF_BOUNDS,
-                "OpLib: Opcode index %d out of bounds", value);
+                "OpLib `%s': Opcode index %d out of bounds", oplib->name, value);
+        }
         else {
-            const char * const name   = INTERP->op_info_table[value].full_name;
-            STRING     * const newstr = Parrot_str_new(INTERP, name, 0);
-            return VTABLE_get_pmc_keyed_str(INTERP, SELF, newstr);
+            PMC * const op = Parrot_pmc_new_noinit(INTERP, enum_class_Opcode);
+            VTABLE_set_integer_native(INTERP, op, value);
+            VTABLE_set_pointer(INTERP, op, &oplib->op_info_table[value]);
+            return op;
         }
     }
 
     VTABLE INTVAL elements() {
-        return INTERP->op_lib->op_count;
+        op_lib_t *oplib;
+        GET_ATTR_oplib(INTERP, SELF, oplib);
+        return oplib->op_count;
+    }
+
+    VTABLE INTVAL get_integer() {
+        return STATICSELF.elements();
     }
 
     VTABLE INTVAL get_integer() {
@@ -110,11 +123,14 @@
     METHOD op_family(STRING *shortname)
     {
         char * const sname = Parrot_str_to_cstring(INTERP, shortname);
-        const op_lib_t * const op_lib = INTERP->op_lib;
-        const op_info_t * const table = op_lib->op_info_table;
+        op_lib_t  *oplib;
+        op_info_t *table;
         PMC *result = PMCNULL;
         UINTVAL i;
-        for (i = 0; i < op_lib->op_count; ++i) {
+
+        GET_ATTR_oplib(INTERP, SELF, oplib);
+        table = oplib->op_info_table;
+        for (i = 0; i < oplib->op_count; ++i) {
             if (strcmp(table[i].name, sname) == 0) {
                 if (PMC_IS_NULL(result))
                     result = Parrot_pmc_new(INTERP, enum_class_ResizablePMCArray);

Modified: trunk/src/pmc/sub.pmc
==============================================================================
--- trunk/src/pmc/sub.pmc	Wed Aug 11 04:51:55 2010	(r48411)
+++ trunk/src/pmc/sub.pmc	Wed Aug 11 05:38:18 2010	(r48412)
@@ -871,7 +871,8 @@
                     Parrot_sub_arginfo);
 
             /* If the first instruction is a get_params... */
-            if (*pc == PARROT_OP_get_params_pc) {
+            if (sub->seg->op_func_table[*pc]
+                == interp->op_func_table[PARROT_OP_get_params_pc]) {
                 /* Get the signature (the next thing in the bytecode). */
                 PMC * const sig = PF_CONST(sub->seg, *(++pc)).u.key;
 

Modified: trunk/src/runcore/main.c
==============================================================================
--- trunk/src/runcore/main.c	Wed Aug 11 04:51:55 2010	(r48411)
+++ trunk/src/runcore/main.c	Wed Aug 11 05:38:18 2010	(r48412)
@@ -520,9 +520,11 @@
 disable_event_checking(PARROT_INTERP)
 {
     ASSERT_ARGS(disable_event_checking)
+    PackFile_ByteCode *cs = interp->code;
     /* restore func table */
-    PARROT_ASSERT(interp->save_func_table);
-    notify_func_table(interp, interp->save_func_table, 0);
+    PARROT_ASSERT(cs->save_func_table);
+    cs->op_func_table   = cs->save_func_table;
+    cs->save_func_table = NULL;
 }
 
 
@@ -546,8 +548,12 @@
 enable_event_checking(PARROT_INTERP)
 {
     ASSERT_ARGS(enable_event_checking)
-    /* put table in place */
-    notify_func_table(interp, interp->evc_func_table, 1);
+    PackFile_ByteCode *cs = interp->code;
+    /* only save if we're not already event checking */
+    if (cs->save_func_table == NULL)
+        cs->save_func_table = cs->op_func_table;
+    /* put evc table in place */
+    cs->op_func_table   = interp->evc_func_table;
 }
 
 

Modified: trunk/src/runcore/profiling.c
==============================================================================
--- trunk/src/runcore/profiling.c	Wed Aug 11 04:51:55 2010	(r48411)
+++ trunk/src/runcore/profiling.c	Wed Aug 11 05:38:18 2010	(r48412)
@@ -459,7 +459,7 @@
             pprof_data[PPROF_DATA_TIME] = op_time;
         }
         pprof_data[PPROF_DATA_LINE]   = preop_line;
-        pprof_data[PPROF_DATA_OPNAME] = (PPROF_DATA)(interp->op_info_table)[*preop_pc].name;
+        pprof_data[PPROF_DATA_OPNAME] = (PPROF_DATA)(interp->code->op_info_table)[*preop_pc]->name;
         runcore->output_fn(runcore, pprof_data, PPROF_LINE_OP);
     }
 

Modified: trunk/src/runcore/trace.c
==============================================================================
--- trunk/src/runcore/trace.c	Wed Aug 11 04:51:55 2010	(r48411)
+++ trunk/src/runcore/trace.c	Wed Aug 11 05:38:18 2010	(r48412)
@@ -297,7 +297,7 @@
 {
     ASSERT_ARGS(trace_op_dump)
     Interp    * const debugger = debugger_or_interp(interp);
-    op_info_t * const info     = &interp->op_info_table[*pc];
+    op_info_t * const info     = interp->code->op_info_table[*pc];
     PMC *sig                   = PMCNULL;
     INTVAL n                   = info->op_count;
     INTVAL s                   = 1;

Modified: trunk/src/sub.c
==============================================================================
--- trunk/src/sub.c	Wed Aug 11 04:51:55 2010	(r48411)
+++ trunk/src/sub.c	Wed Aug 11 05:38:18 2010	(r48412)
@@ -182,7 +182,7 @@
         if (!debug)
             return 0;
         for (i = n = 0; n < sub->seg->base.size; ++i) {
-            op_info_t * const op_info = &interp->op_info_table[*pc];
+            op_info_t * const op_info = sub->seg->op_info_table[*pc];
             opcode_t var_args = 0;
 
             if (i >= debug->base.size)
@@ -234,7 +234,7 @@
     current_annotation = pc - base_pc;
 
     for (i = op = 0; op < debug_size; ++i) {
-        op_info_t * const op_info  = &interp->op_info_table[*base_pc];
+        op_info_t * const op_info  = interp->code->op_info_table[*base_pc];
         opcode_t          var_args = 0;
 
         if (i >= debug_size)

Modified: trunk/t/examples/pir.t
==============================================================================
--- trunk/t/examples/pir.t	Wed Aug 11 04:51:55 2010	(r48411)
+++ trunk/t/examples/pir.t	Wed Aug 11 05:38:18 2010	(r48412)
@@ -191,7 +191,9 @@
 # TODO currently broken
 # $expected{'quine_ord.pir'} = Parrot::Test::slurp_file("examples/pir/quine_ord.pir");
 
-my %skips;
+my %skips = (
+    'make_hello_pbc.pir' => [ 1, "PackfileRawSegment no longer valid for bytecode" ],
+);
 
 while ( my ( $example, $expected ) = each %expected ) {
     my $skip = $skips{$example};

Modified: trunk/t/native_pbc/annotations.pbc
==============================================================================
Binary file (source and/or target). No diff available.

Modified: trunk/t/native_pbc/integer.pbc
==============================================================================
Binary file (source and/or target). No diff available.

Modified: trunk/t/native_pbc/integer_2.pbc
==============================================================================
Binary file (source and/or target). No diff available.

Modified: trunk/t/native_pbc/number.pbc
==============================================================================
Binary file (source and/or target). No diff available.

Modified: trunk/t/native_pbc/number_1.pbc
==============================================================================
Binary file (source and/or target). No diff available.

Modified: trunk/t/native_pbc/number_2.pbc
==============================================================================
Binary file (source and/or target). No diff available.

Modified: trunk/t/native_pbc/string.pbc
==============================================================================
Binary file (source and/or target). No diff available.

Modified: trunk/t/native_pbc/string_1.pbc
==============================================================================
Binary file (source and/or target). No diff available.

Modified: trunk/t/native_pbc/string_2.pbc
==============================================================================
Binary file (source and/or target). No diff available.

Modified: trunk/t/pmc/oplib.t
==============================================================================
--- trunk/t/pmc/oplib.t	Wed Aug 11 04:51:55 2010	(r48411)
+++ trunk/t/pmc/oplib.t	Wed Aug 11 05:38:18 2010	(r48412)
@@ -37,15 +37,17 @@
 .end
 
 .sub new_oplib
-    $P0 = new ['OpLib']
-    $I0 = isnull $P0
+    $P0 = box "core_ops"
+    $P1 = new ['OpLib'], $P0
+    $I0 = isnull $P1
     nok($I0, "new OpLib")
 .end
 
 .sub check_elements
     .local pmc oplib, op, eh
     .local int n, i
-    oplib = new ['OpLib']
+    $P0 = box "core_ops"
+    oplib = new ['OpLib'], $P0
     n = elements oplib
     i = n - 1
     op = oplib[i]
@@ -66,14 +68,16 @@
 .end
 
 .sub getint_end
-    $P0 = new ['OpLib']
+    $P0 = box 'core_ops'
+    $P0 = new ['OpLib'], $P0
     $I1 = $P0[TESTED_OP]
     $I0 = isne $I1, -1
     ok($I0, "got end opcode")
 .end
 
 .sub getint_no_opcode
-    $P0 = new ['OpLib']
+    $P0 = box 'core_ops'
+    $P0 = new ['OpLib'], $P0
     $I1 = $P0[TESTED_NOSUCHOP]
     $I0 = iseq $I1, -1
     ok($I0, "get non existent opcode fails")
@@ -81,7 +85,8 @@
 
 .sub getop_end
     .local pmc oplib, op, op2, name
-    oplib = new ['OpLib']
+    $P0 = box 'core_ops'
+    oplib = new ['OpLib'], $P0
 
     # Using a string constant
     op = oplib[TESTED_OP]
@@ -99,7 +104,8 @@
     is($I0, 0, "got end opcode data keyed pmc")
 
     $I0 = issame op, op2
-    ok($I0, "got same result from both ways")
+    $S0 = "Implement cacheing, Opcode.is_same, or change comparison"
+    todo($I0, "got same result from both ways", $S0)
 
     $I1 = op
     $I0 = oplib[TESTED_OP]
@@ -110,7 +116,8 @@
 .end
 
 .sub family_end
-    $P0 = new ['OpLib']
+    $P0 = box 'core_ops'
+    $P0 = new ['OpLib'], $P0
     $P1 = $P0.'op_family'(TESTED_OP)
     $I0 = isnull $P1
     dec $I0
@@ -121,7 +128,8 @@
 .end
 
 .sub family_no_opcode
-    $P0 = new ['OpLib']
+    $P0 = box 'core_ops'
+    $P0 = new ['OpLib'], $P0
     $P1 = $P0.'op_family'(TESTED_NOSUCHOP)
     $I0 = isnull $P1
     ok($I0, "non existent opcode family is null")

Modified: trunk/t/pmc/pmc.t
==============================================================================
--- trunk/t/pmc/pmc.t	Wed Aug 11 04:51:55 2010	(r48411)
+++ trunk/t/pmc/pmc.t	Wed Aug 11 05:38:18 2010	(r48412)
@@ -51,7 +51,9 @@
 my $checkTypes;
 my %types_we_cant_test
     = map { $_ => 1; } (    # These require initializers.
-    qw(default Null Iterator ArrayIterator HashIterator StringIterator OrderedHashIterator Enumerate ParrotObject ParrotThread BigInt LexInfo LexPad Object Handle Opcode),
+    qw(default Null Iterator ArrayIterator HashIterator StringIterator
+        OrderedHashIterator Enumerate ParrotObject ParrotThread BigInt LexInfo
+        LexPad Object Handle Opcode OpLib),
 
     # Instances of these appear to have other types.
     qw(PMCProxy Class) );


More information about the parrot-commits mailing list