[svn:parrot] r46974 - in branches/ucs4_encoding: . compilers/imcc compilers/opsc compilers/opsc/gen compilers/opsc/gen/Ops compilers/opsc/gen/Ops/Compiler compilers/opsc/gen/Ops/Trans compilers/opsc/src compilers/opsc/src/Ops compilers/opsc/src/Ops/Compiler compilers/opsc/src/Ops/Trans compilers/pct config/auto config/gen/makefiles docs docs/pdds docs/pdds/draft editor examples/io examples/languages/squaak/t examples/tools ext/nqp-rx/src/stage0 include/parrot include/parrot/oplib lib/Parrot lib/Parrot/Configure/Options/Test lib/Parrot/Docs/Section lib/Parrot/Harness lib/Parrot/OpTrans lib/Parrot/Ops2c lib/Parrot/Ops2pm lib/Parrot/Test runtime/parrot/library runtime/parrot/library/HTTP runtime/parrot/library/LWP src src/dynoplibs src/interp src/ops src/packfile src/pmc src/runcore src/string t t/codingstd t/compilers/imcc/syn t/compilers/opsc t/library t/op t/pmc t/src t/tools t/tools/ops2cutils t/tools/ops2pm tools/build tools/dev

darbelo at svn.parrot.org darbelo at svn.parrot.org
Mon May 24 21:18:46 UTC 2010


Author: darbelo
Date: Mon May 24 21:18:41 2010
New Revision: 46974
URL: https://trac.parrot.org/parrot/changeset/46974

Log:
Sync with trunk.

Added:
   branches/ucs4_encoding/compilers/opsc/
      - copied from r46972, trunk/compilers/opsc/
   branches/ucs4_encoding/include/parrot/oplib/core_ops.h
      - copied unchanged from r46972, trunk/include/parrot/oplib/core_ops.h
   branches/ucs4_encoding/include/parrot/oplib/ops.h
      - copied unchanged from r46972, trunk/include/parrot/oplib/ops.h
   branches/ucs4_encoding/include/parrot/opsenum.h
      - copied unchanged from r46972, trunk/include/parrot/opsenum.h
   branches/ucs4_encoding/runtime/parrot/library/LWP/   (props changed)
      - copied from r46972, trunk/runtime/parrot/library/LWP/
   branches/ucs4_encoding/src/ops/core_ops.c
      - copied unchanged from r46972, trunk/src/ops/core_ops.c
   branches/ucs4_encoding/t/compilers/opsc/
      - copied from r46972, trunk/t/compilers/opsc/
Replaced:
   branches/ucs4_encoding/compilers/opsc/Defines.mak
      - copied unchanged from r46972, trunk/compilers/opsc/Defines.mak
   branches/ucs4_encoding/compilers/opsc/Rules.mak
      - copied unchanged from r46972, trunk/compilers/opsc/Rules.mak
   branches/ucs4_encoding/compilers/opsc/TODO
      - copied unchanged from r46972, trunk/compilers/opsc/TODO
   branches/ucs4_encoding/compilers/opsc/gen/
      - copied from r46972, trunk/compilers/opsc/gen/
   branches/ucs4_encoding/compilers/opsc/gen/Ops/   (props changed)
      - copied from r46972, trunk/compilers/opsc/gen/Ops/
   branches/ucs4_encoding/compilers/opsc/gen/Ops/Compiler/   (props changed)
      - copied from r46972, trunk/compilers/opsc/gen/Ops/Compiler/
   branches/ucs4_encoding/compilers/opsc/gen/Ops/Compiler/IGNOREME
      - copied unchanged from r46972, trunk/compilers/opsc/gen/Ops/Compiler/IGNOREME
   branches/ucs4_encoding/compilers/opsc/gen/Ops/Trans/   (props changed)
      - copied from r46972, trunk/compilers/opsc/gen/Ops/Trans/
   branches/ucs4_encoding/compilers/opsc/gen/Ops/Trans/IGNOREME
      - copied unchanged from r46972, trunk/compilers/opsc/gen/Ops/Trans/IGNOREME
   branches/ucs4_encoding/compilers/opsc/ops2c.nqp
      - copied unchanged from r46972, trunk/compilers/opsc/ops2c.nqp
   branches/ucs4_encoding/compilers/opsc/opsc.pir
      - copied unchanged from r46972, trunk/compilers/opsc/opsc.pir
   branches/ucs4_encoding/compilers/opsc/src/
      - copied from r46972, trunk/compilers/opsc/src/
   branches/ucs4_encoding/compilers/opsc/src/Ops/
      - copied from r46972, trunk/compilers/opsc/src/Ops/
   branches/ucs4_encoding/compilers/opsc/src/Ops/Compiler/
      - copied from r46972, trunk/compilers/opsc/src/Ops/Compiler/
   branches/ucs4_encoding/compilers/opsc/src/Ops/Compiler.pm
      - copied unchanged from r46972, trunk/compilers/opsc/src/Ops/Compiler.pm
   branches/ucs4_encoding/compilers/opsc/src/Ops/Compiler/Actions.pm
      - copied unchanged from r46972, trunk/compilers/opsc/src/Ops/Compiler/Actions.pm
   branches/ucs4_encoding/compilers/opsc/src/Ops/Compiler/Grammar.pm
      - copied unchanged from r46972, trunk/compilers/opsc/src/Ops/Compiler/Grammar.pm
   branches/ucs4_encoding/compilers/opsc/src/Ops/Emitter.pm
      - copied unchanged from r46972, trunk/compilers/opsc/src/Ops/Emitter.pm
   branches/ucs4_encoding/compilers/opsc/src/Ops/File.pm
      - copied unchanged from r46972, trunk/compilers/opsc/src/Ops/File.pm
   branches/ucs4_encoding/compilers/opsc/src/Ops/Op.pm
      - copied unchanged from r46972, trunk/compilers/opsc/src/Ops/Op.pm
   branches/ucs4_encoding/compilers/opsc/src/Ops/OpLib.pm
      - copied unchanged from r46972, trunk/compilers/opsc/src/Ops/OpLib.pm
   branches/ucs4_encoding/compilers/opsc/src/Ops/Renumberer.pm
      - copied unchanged from r46972, trunk/compilers/opsc/src/Ops/Renumberer.pm
   branches/ucs4_encoding/compilers/opsc/src/Ops/Trans/
      - copied from r46972, trunk/compilers/opsc/src/Ops/Trans/
   branches/ucs4_encoding/compilers/opsc/src/Ops/Trans.pm
      - copied unchanged from r46972, trunk/compilers/opsc/src/Ops/Trans.pm
   branches/ucs4_encoding/compilers/opsc/src/Ops/Trans/C.pm
      - copied unchanged from r46972, trunk/compilers/opsc/src/Ops/Trans/C.pm
   branches/ucs4_encoding/compilers/opsc/src/builtins.pir
      - copied unchanged from r46972, trunk/compilers/opsc/src/builtins.pir
   branches/ucs4_encoding/runtime/parrot/library/LWP/Protocol.pir
      - copied unchanged from r46972, trunk/runtime/parrot/library/LWP/Protocol.pir
   branches/ucs4_encoding/runtime/parrot/library/LWP/UserAgent.pir
      - copied unchanged from r46972, trunk/runtime/parrot/library/LWP/UserAgent.pir
   branches/ucs4_encoding/t/compilers/opsc/01-parse.t
      - copied unchanged from r46972, trunk/t/compilers/opsc/01-parse.t
   branches/ucs4_encoding/t/compilers/opsc/02-parse-all-ops.t
      - copied unchanged from r46972, trunk/t/compilers/opsc/02-parse-all-ops.t
   branches/ucs4_encoding/t/compilers/opsc/03-past.t
      - copied unchanged from r46972, trunk/t/compilers/opsc/03-past.t
   branches/ucs4_encoding/t/compilers/opsc/04-op.t
      - copied unchanged from r46972, trunk/t/compilers/opsc/04-op.t
   branches/ucs4_encoding/t/compilers/opsc/05-oplib.t
      - copied unchanged from r46972, trunk/t/compilers/opsc/05-oplib.t
   branches/ucs4_encoding/t/compilers/opsc/06-opsfile.t
      - copied unchanged from r46972, trunk/t/compilers/opsc/06-opsfile.t
   branches/ucs4_encoding/t/compilers/opsc/07-emitter.t
      - copied unchanged from r46972, trunk/t/compilers/opsc/07-emitter.t
   branches/ucs4_encoding/t/compilers/opsc/common.pir
      - copied unchanged from r46972, trunk/t/compilers/opsc/common.pir
Deleted:
   branches/ucs4_encoding/lib/Parrot/Op.pm
   branches/ucs4_encoding/lib/Parrot/OpTrans/
   branches/ucs4_encoding/lib/Parrot/OpTrans.pm
   branches/ucs4_encoding/lib/Parrot/Ops2c/
   branches/ucs4_encoding/lib/Parrot/Ops2pm/
   branches/ucs4_encoding/lib/Parrot/Ops2pm.pm
   branches/ucs4_encoding/lib/Parrot/OpsFile.pm
   branches/ucs4_encoding/lib/Parrot/OpsRenumber.pm
   branches/ucs4_encoding/runtime/parrot/library/LWP.pir
   branches/ucs4_encoding/t/op/01-parse_ops.t
   branches/ucs4_encoding/t/tools/ops2cutils/
   branches/ucs4_encoding/t/tools/ops2pm/
   branches/ucs4_encoding/tools/build/ops2pm.pl
   branches/ucs4_encoding/tools/dev/opsrenumber.pl
Modified:
   branches/ucs4_encoding/   (props changed)
   branches/ucs4_encoding/MANIFEST
   branches/ucs4_encoding/MANIFEST.SKIP
   branches/ucs4_encoding/MANIFEST.generated
   branches/ucs4_encoding/NEWS
   branches/ucs4_encoding/compilers/imcc/debug.c
   branches/ucs4_encoding/compilers/imcc/debug.h
   branches/ucs4_encoding/compilers/imcc/imc.c
   branches/ucs4_encoding/compilers/imcc/imc.h
   branches/ucs4_encoding/compilers/imcc/imcc.l
   branches/ucs4_encoding/compilers/imcc/imclexer.c
   branches/ucs4_encoding/compilers/imcc/instructions.c
   branches/ucs4_encoding/compilers/imcc/instructions.h
   branches/ucs4_encoding/compilers/imcc/main.c
   branches/ucs4_encoding/compilers/imcc/optimizer.c
   branches/ucs4_encoding/compilers/imcc/parser.h
   branches/ucs4_encoding/compilers/imcc/parser_util.c
   branches/ucs4_encoding/compilers/imcc/pbc.c
   branches/ucs4_encoding/compilers/pct/Rules.mak
   branches/ucs4_encoding/config/auto/extra_nci_thunks.pm
   branches/ucs4_encoding/config/auto/warnings.pm
   branches/ucs4_encoding/config/gen/makefiles/root.in
   branches/ucs4_encoding/docs/pdds/draft/pdd31_hll.pod
   branches/ucs4_encoding/docs/pdds/pdd13_bytecode.pod
   branches/ucs4_encoding/docs/tests.pod
   branches/ucs4_encoding/editor/pir-mode.el
   branches/ucs4_encoding/examples/io/get.pir
   branches/ucs4_encoding/examples/io/post.pir
   branches/ucs4_encoding/examples/languages/squaak/t/00-sanity.t
   branches/ucs4_encoding/examples/tools/pbc_checker.cpp
   branches/ucs4_encoding/ext/nqp-rx/src/stage0/   (props changed)
   branches/ucs4_encoding/ext/nqp-rx/src/stage0/HLL-s0.pir
   branches/ucs4_encoding/ext/nqp-rx/src/stage0/NQP-s0.pir
   branches/ucs4_encoding/ext/nqp-rx/src/stage0/P6Regex-s0.pir
   branches/ucs4_encoding/ext/nqp-rx/src/stage0/Regex-s0.pir
   branches/ucs4_encoding/ext/nqp-rx/src/stage0/nqp-setting.nqp
   branches/ucs4_encoding/include/parrot/charset.h
   branches/ucs4_encoding/include/parrot/compiler.h
   branches/ucs4_encoding/include/parrot/embed.h
   branches/ucs4_encoding/include/parrot/hash.h
   branches/ucs4_encoding/include/parrot/imcc.h
   branches/ucs4_encoding/include/parrot/interpreter.h
   branches/ucs4_encoding/include/parrot/longopt.h
   branches/ucs4_encoding/include/parrot/packfile.h
   branches/ucs4_encoding/include/parrot/pmc.h
   branches/ucs4_encoding/include/parrot/runcore_trace.h   (contents, props changed)
   branches/ucs4_encoding/include/parrot/string_funcs.h
   branches/ucs4_encoding/lib/Parrot/Configure/Options/Test/Prepare.pm
   branches/ucs4_encoding/lib/Parrot/Distribution.pm
   branches/ucs4_encoding/lib/Parrot/Docs/Section/Ops.pm
   branches/ucs4_encoding/lib/Parrot/Docs/Section/Tools.pm
   branches/ucs4_encoding/lib/Parrot/Harness/DefaultTests.pm
   branches/ucs4_encoding/lib/Parrot/Test/Pod.pm
   branches/ucs4_encoding/runtime/parrot/library/HTTP/Message.pir
   branches/ucs4_encoding/runtime/parrot/library/URI.pir
   branches/ucs4_encoding/runtime/parrot/library/distutils.pir
   branches/ucs4_encoding/src/debug.c
   branches/ucs4_encoding/src/dynoplibs/Rules.in
   branches/ucs4_encoding/src/embed.c
   branches/ucs4_encoding/src/hash.c
   branches/ucs4_encoding/src/interp/inter_create.c   (props changed)
   branches/ucs4_encoding/src/interp/inter_misc.c
   branches/ucs4_encoding/src/longopt.c
   branches/ucs4_encoding/src/main.c
   branches/ucs4_encoding/src/ops/var.ops
   branches/ucs4_encoding/src/packfile/pf_items.c
   branches/ucs4_encoding/src/parrot_debugger.c
   branches/ucs4_encoding/src/pmc.c
   branches/ucs4_encoding/src/pmc/nci.pmc
   branches/ucs4_encoding/src/runcore/cores.c   (props changed)
   branches/ucs4_encoding/src/runcore/trace.c   (contents, props changed)
   branches/ucs4_encoding/src/string/api.c
   branches/ucs4_encoding/src/string/charset.c
   branches/ucs4_encoding/t/codingstd/linelength.t
   branches/ucs4_encoding/t/codingstd/perlcritic.t
   branches/ucs4_encoding/t/compilers/imcc/syn/regressions.t
   branches/ucs4_encoding/t/harness.pir
   branches/ucs4_encoding/t/library/lwp.t
   branches/ucs4_encoding/t/library/uri.t
   branches/ucs4_encoding/t/op/stringu.t
   branches/ucs4_encoding/t/pmc/resizablestringarray.t
   branches/ucs4_encoding/t/src/embed.t   (props changed)
   branches/ucs4_encoding/t/tools/   (props changed)
   branches/ucs4_encoding/tools/build/ops2c.pl
   branches/ucs4_encoding/tools/dev/mk_gitignore.pl   (props changed)

Modified: branches/ucs4_encoding/MANIFEST
==============================================================================
--- branches/ucs4_encoding/MANIFEST	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/MANIFEST	Mon May 24 21:18:41 2010	(r46974)
@@ -28,13 +28,13 @@
 RESPONSIBLE_PARTIES                                         [main]doc
 TODO                                                        [devel]doc
 VERSION                                                     [devel]
-compilers/data_json/Defines.mak                             [data_json]
-compilers/data_json/Rules.mak                               [data_json]
+compilers/data_json/Defines.mak                             []
+compilers/data_json/Rules.mak                               []
 compilers/data_json/data_json.pir                           [data_json]
 compilers/data_json/data_json/grammar.pg                    [data_json]
 compilers/data_json/data_json/pge2pir.tg                    [data_json]
-compilers/imcc/Defines.mak                                  [imcc]
-compilers/imcc/Rules.in                                     [imcc]
+compilers/imcc/Defines.mak                                  []
+compilers/imcc/Rules.in                                     []
 compilers/imcc/cfg.c                                        [imcc]
 compilers/imcc/cfg.h                                        [imcc]
 compilers/imcc/debug.c                                      [imcc]
@@ -62,10 +62,28 @@
 compilers/imcc/symreg.c                                     [imcc]
 compilers/imcc/symreg.h                                     [imcc]
 compilers/imcc/unit.h                                       [imcc]
-compilers/pct/Defines.mak                                   [pct]
+compilers/opsc/Defines.mak                                  []
+compilers/opsc/Rules.mak                                    []
+compilers/opsc/TODO                                         [opsc]
+compilers/opsc/gen/Ops/Compiler/IGNOREME                    [opsc]
+compilers/opsc/gen/Ops/Trans/IGNOREME                       [opsc]
+compilers/opsc/ops2c.nqp                                    [opsc]
+compilers/opsc/opsc.pir                                     [opsc]
+compilers/opsc/src/Ops/Compiler.pm                          [opsc]
+compilers/opsc/src/Ops/Compiler/Actions.pm                  [opsc]
+compilers/opsc/src/Ops/Compiler/Grammar.pm                  [opsc]
+compilers/opsc/src/Ops/Emitter.pm                           [opsc]
+compilers/opsc/src/Ops/File.pm                              [opsc]
+compilers/opsc/src/Ops/Op.pm                                [opsc]
+compilers/opsc/src/Ops/OpLib.pm                             [opsc]
+compilers/opsc/src/Ops/Renumberer.pm                        [opsc]
+compilers/opsc/src/Ops/Trans.pm                             [opsc]
+compilers/opsc/src/Ops/Trans/C.pm                           [opsc]
+compilers/opsc/src/builtins.pir                             [opsc]
+compilers/pct/Defines.mak                                   []
 compilers/pct/PCT.pir                                       [pct]
 compilers/pct/README.pod                                    []doc
-compilers/pct/Rules.mak                                     [pct]
+compilers/pct/Rules.mak                                     []
 compilers/pct/src/PAST.pir                                  [pct]
 compilers/pct/src/PAST/Compiler.pir                         [pct]
 compilers/pct/src/PAST/Node.pir                             [pct]
@@ -75,7 +93,7 @@
 compilers/pct/src/PCT/Node.pir                              [pct]
 compilers/pct/src/POST/Compiler.pir                         [pct]
 compilers/pct/src/POST/Node.pir                             [pct]
-compilers/pge/Defines.mak                                   [pge]
+compilers/pge/Defines.mak                                   []
 compilers/pge/P6Rule.grammar                                [pge]
 compilers/pge/PGE.pir                                       [pge]
 compilers/pge/PGE/Exp.pir                                   [pge]
@@ -86,11 +104,11 @@
 compilers/pge/PGE/Regex.pir                                 [pge]
 compilers/pge/PGE/builtins.pg                               [pge]
 compilers/pge/README.pod                                    []doc
-compilers/pge/Rules.mak                                     [pge]
+compilers/pge/Rules.mak                                     []
 compilers/pge/STATUS                                        [pge]
-compilers/pirc/Defines.mak                                  [pirc]
+compilers/pirc/Defines.mak                                  []
 compilers/pirc/README.pod                                   []doc
-compilers/pirc/Rules.mak                                    [pirc]
+compilers/pirc/Rules.mak                                    []
 compilers/pirc/TODO                                         [pirc]
 compilers/pirc/heredoc/heredocmain.c                        [pirc]
 compilers/pirc/macro/lexer.h                                [pirc]
@@ -141,9 +159,9 @@
 compilers/pirc/t/macro.t                                    [test]
 compilers/pirc/t/stmts.t                                    [test]
 compilers/pirc/t/subflags.t                                 [test]
-compilers/tge/Defines.mak                                   [tge]
+compilers/tge/Defines.mak                                   []
 compilers/tge/README                                        []doc
-compilers/tge/Rules.mak                                     [tge]
+compilers/tge/Rules.mak                                     []
 compilers/tge/TGE.pir                                       [tge]
 compilers/tge/TGE/Compiler.pir                              [tge]
 compilers/tge/TGE/Grammar.pir                               [tge]
@@ -963,6 +981,9 @@
 include/parrot/oo_private.h                                 [main]include
 include/parrot/op.h                                         [main]include
 include/parrot/oplib.h                                      [main]include
+include/parrot/oplib/core_ops.h                             [main]include
+include/parrot/oplib/ops.h                                  [main]include
+include/parrot/opsenum.h                                    [main]include
 include/parrot/packfile.h                                   [main]include
 include/parrot/parrot.h                                     [main]include
 include/parrot/platform_interface.h                         [main]include
@@ -1044,16 +1065,6 @@
 lib/Parrot/IO/Path.pm                                       [devel]lib
 lib/Parrot/Install.pm                                       [devel]lib
 lib/Parrot/Manifest.pm                                      [devel]lib
-lib/Parrot/Op.pm                                            [devel]lib
-lib/Parrot/OpTrans.pm                                       [devel]lib
-lib/Parrot/OpTrans/C.pm                                     [devel]lib
-lib/Parrot/Ops2c/Auxiliary.pm                               [devel]lib
-lib/Parrot/Ops2c/Utils.pm                                   [devel]lib
-lib/Parrot/Ops2pm.pm                                        [devel]lib
-lib/Parrot/Ops2pm/Auxiliary.pm                              [devel]lib
-lib/Parrot/Ops2pm/Base.pm                                   [devel]lib
-lib/Parrot/OpsFile.pm                                       [devel]lib
-lib/Parrot/OpsRenumber.pm                                   [devel]lib
 lib/Parrot/Pmc2c/Attribute.pm                               [devel]lib
 lib/Parrot/Pmc2c/ComposedMethod.pm                          [devel]lib
 lib/Parrot/Pmc2c/Dumper.pm                                  [devel]lib
@@ -1146,7 +1157,8 @@
 runtime/parrot/library/HTTP/Message.pir                     [library]
 runtime/parrot/library/Iter.pir                             [library]
 runtime/parrot/library/JSON.pir                             [library]
-runtime/parrot/library/LWP.pir                              [library]
+runtime/parrot/library/LWP/Protocol.pir                     [library]
+runtime/parrot/library/LWP/UserAgent.pir                    [library]
 runtime/parrot/library/MIME/Base64.pir                      [library]
 runtime/parrot/library/Math/Rand.pir                        [library]
 runtime/parrot/library/NCI/Utils.pir                        [library]
@@ -1169,7 +1181,7 @@
 runtime/parrot/library/ProfTest/Want.nqp                    [library]
 runtime/parrot/library/Protoobject.pir                      [library]
 runtime/parrot/library/Range.pir                            [library]
-runtime/parrot/library/Rules.mak                            [library]
+runtime/parrot/library/Rules.mak                            []
 runtime/parrot/library/SDL.pir                              [library]
 runtime/parrot/library/SDL/App.pir                          [library]
 runtime/parrot/library/SDL/Button.pir                       [library]
@@ -1311,6 +1323,7 @@
 src/ops/bit.ops                                             []
 src/ops/cmp.ops                                             []
 src/ops/core.ops                                            []
+src/ops/core_ops.c                                          []
 src/ops/debug.ops                                           []
 src/ops/experimental.ops                                    []
 src/ops/io.ops                                              []
@@ -1522,6 +1535,14 @@
 t/compilers/imcc/syn/symbols.t                              [test]
 t/compilers/imcc/syn/tail.t                                 [test]
 t/compilers/imcc/syn/veracity.t                             [test]
+t/compilers/opsc/01-parse.t                                 [test]
+t/compilers/opsc/02-parse-all-ops.t                         [test]
+t/compilers/opsc/03-past.t                                  [test]
+t/compilers/opsc/04-op.t                                    [test]
+t/compilers/opsc/05-oplib.t                                 [test]
+t/compilers/opsc/06-opsfile.t                               [test]
+t/compilers/opsc/07-emitter.t                               [test]
+t/compilers/opsc/common.pir                                 [test]
 t/compilers/pct/complete_workflow.t                         [test]
 t/compilers/pct/past.t                                      [test]
 t/compilers/pct/pct_hllcompiler.t                           [test]
@@ -1742,7 +1763,6 @@
 t/oo/vtableoverride.t                                       [test]
 t/op/00ff-dos.t                                             [test]
 t/op/00ff-unix.t                                            [test]
-t/op/01-parse_ops.t                                         [test]
 t/op/64bit.t                                                [test]
 t/op/annotate-old.t                                         [test]
 t/op/annotate.t                                             [test]
@@ -2035,34 +2055,6 @@
 t/tools/install/testlib/src/pmc/pmc_object.h                [test]
 t/tools/install/testlib/tools/build/ops2c.pl                [test]
 t/tools/install/testlib/vtable.dump                         [test]
-t/tools/ops2cutils/01-new.t                                 [test]
-t/tools/ops2cutils/02-usage.t                               [test]
-t/tools/ops2cutils/03-print_c_header_file.t                 [test]
-t/tools/ops2cutils/04-print_c_source_top.t                  [test]
-t/tools/ops2cutils/05-print_c_source_bottom.t               [test]
-t/tools/ops2cutils/06-dynamic.t                             [test]
-t/tools/ops2cutils/07-make_incdir.t                         [test]
-t/tools/ops2cutils/08-nolines.t                             [test]
-t/tools/ops2cutils/09-dynamic_nolines.t                     [test]
-t/tools/ops2cutils/10-print_c_source_file.t                 [test]
-t/tools/ops2cutils/testlib/GenerateCore.pm                  [test]
-t/tools/ops2pm/00-qualify.t                                 [test]
-t/tools/ops2pm/01-ops2pm.t                                  [test]
-t/tools/ops2pm/02-usage.t                                   [test]
-t/tools/ops2pm/03-new.t                                     [test]
-t/tools/ops2pm/04-prepare_ops.t                             [test]
-t/tools/ops2pm/05-renum_op_map_file.t                       [test]
-t/tools/ops2pm/06-load_op_map_files.t                       [test]
-t/tools/ops2pm/07-no_ops_skip.t                             [test]
-t/tools/ops2pm/08-sort_ops.t                                [test]
-t/tools/ops2pm/09-prepare_real_ops.t                        [test]
-t/tools/ops2pm/10-print_module.t                            [test]
-t/tools/ops2pm/11-print_h.t                                 [test]
-t/tools/ops2pm/samples/bit_ops.original                     [test]
-t/tools/ops2pm/samples/bit_ops.second                       [test]
-t/tools/ops2pm/samples/core_ops.original                    [test]
-t/tools/ops2pm/samples/ops_num.original                     [test]
-t/tools/ops2pm/samples/pic_ops.original                     [test]
 t/tools/parrot_debugger.t                                   [test]
 t/tools/pbc_disassemble.t                                   [test]
 t/tools/pbc_dump.t                                          [test]
@@ -2082,7 +2074,6 @@
 tools/build/h2inc.pl                                        []
 tools/build/headerizer.pl                                   []
 tools/build/ops2c.pl                                        [devel]
-tools/build/ops2pm.pl                                       []
 tools/build/parrot_config_c.pl                              []
 tools/build/pbcversion_h.pl                                 []
 tools/build/pmc2c.pl                                        [devel]
@@ -2120,7 +2111,6 @@
 tools/dev/nm.pl                                             []
 tools/dev/nopaste.pl                                        []
 tools/dev/ops_not_tested.pl                                 []
-tools/dev/opsrenumber.pl                                    []
 tools/dev/parrot-fuzzer                                     []
 tools/dev/parrot.supp                                       []
 tools/dev/parrot_api.pl                                     []

Modified: branches/ucs4_encoding/MANIFEST.SKIP
==============================================================================
--- branches/ucs4_encoding/MANIFEST.SKIP	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/MANIFEST.SKIP	Mon May 24 21:18:41 2010	(r46974)
@@ -1,6 +1,6 @@
 # ex: set ro:
 # $Id$
-# generated by tools/dev/mk_manifest_and_skip.pl Mon May 17 15:32:39 2010 UT
+# generated by tools/dev/mk_manifest_and_skip.pl Mon May 24 03:29:34 2010 UT
 #
 # This file should contain a transcript of the svn:ignore properties
 # of the directories in the Parrot subversion repository. (Needed for
@@ -81,6 +81,14 @@
 ^miniparrot/
 ^myconfig$
 ^myconfig/
+^ops2c$
+^ops2c/
+^ops2c\.c$
+^ops2c\.c/
+^ops2c\.pbc$
+^ops2c\.pbc/
+^ops2c\.pir$
+^ops2c\.pir/
 ^parrot$
 ^parrot/
 ^parrot-nqp$
@@ -188,6 +196,15 @@
 ^compilers/imcc/imcparser\.h/
 ^compilers/imcc/imcparser\.output$
 ^compilers/imcc/imcparser\.output/
+# generated from svn:ignore of 'compilers/opsc/gen/Ops/'
+^compilers/opsc/gen/Ops/.*\.pir$
+^compilers/opsc/gen/Ops/.*\.pir/
+# generated from svn:ignore of 'compilers/opsc/gen/Ops/Compiler/'
+^compilers/opsc/gen/Ops/Compiler/.*\.pir$
+^compilers/opsc/gen/Ops/Compiler/.*\.pir/
+# generated from svn:ignore of 'compilers/opsc/gen/Ops/Trans/'
+^compilers/opsc/gen/Ops/Trans/.*\.pir$
+^compilers/opsc/gen/Ops/Trans/.*\.pir/
 # generated from svn:ignore of 'compilers/pct/src/PAST/'
 ^compilers/pct/src/PAST/.*\.pbc$
 ^compilers/pct/src/PAST/.*\.pbc/
@@ -428,6 +445,9 @@
 # generated from svn:ignore of 'ext/Parrot-Embed/t/'
 ^ext/Parrot-Embed/t/.*\.pbc$
 ^ext/Parrot-Embed/t/.*\.pbc/
+# generated from svn:ignore of 'ext/nqp-rx/src/stage0/'
+^ext/nqp-rx/src/stage0/nqp-setting\.pir$
+^ext/nqp-rx/src/stage0/nqp-setting\.pir/
 # generated from svn:ignore of 'include/parrot/'
 ^include/parrot/.*\.tmp$
 ^include/parrot/.*\.tmp/
@@ -566,6 +586,9 @@
 # generated from svn:ignore of 'runtime/parrot/library/HTTP/'
 ^runtime/parrot/library/HTTP/.*\.pbc$
 ^runtime/parrot/library/HTTP/.*\.pbc/
+# generated from svn:ignore of 'runtime/parrot/library/LWP/'
+^runtime/parrot/library/LWP/.*\.pbc$
+^runtime/parrot/library/LWP/.*\.pbc/
 # generated from svn:ignore of 'runtime/parrot/library/MIME/'
 ^runtime/parrot/library/MIME/.*\.pbc$
 ^runtime/parrot/library/MIME/.*\.pbc/
@@ -1046,6 +1069,8 @@
 ^t/tools/.*\.pbc/
 ^t/tools/.*\.pir$
 ^t/tools/.*\.pir/
+^t/tools/.*\.stdout$
+^t/tools/.*\.stdout/
 ^t/tools/pdb\.t\..*$
 ^t/tools/pdb\.t\..*/
 ^t/tools/pmc2c\..*\.c$

Modified: branches/ucs4_encoding/MANIFEST.generated
==============================================================================
--- branches/ucs4_encoding/MANIFEST.generated	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/MANIFEST.generated	Mon May 24 21:18:41 2010	(r46974)
@@ -125,6 +125,8 @@
 include/pmc/pmc_undef.h                          [devel]include
 include/pmc/pmc_unmanagedstruct.h                [devel]include
 install_config.fpmc                              [main]lib
+installable_ops2c                                [main]bin
+installable_ops2c.exe                            [main]bin
 installable_parrot                               [main]bin
 installable_parrot-nqp                           [main]bin
 installable_parrot-nqp.exe                       [main]bin
@@ -145,7 +147,6 @@
 installable_pbc_to_exe                           [main]bin
 installable_pbc_to_exe.exe                       [main]bin
 lib/Parrot/Config/Generated.pm                   [devel]lib
-lib/Parrot/OpLib/core.pm                         [devel]lib
 lib/Parrot/PMC.pm                                [devel]lib
 lib/Parrot/Pmc2c/PCCMETHOD_BITS.pm               [devel]lib
 libparrot.dll                                    [main]bin
@@ -232,7 +233,8 @@
 runtime/parrot/library/HTTP/Message.pbc          [main]
 runtime/parrot/library/Iter.pbc                  [main]
 runtime/parrot/library/JSON.pbc                  [main]
-runtime/parrot/library/LWP.pbc                   [main]
+runtime/parrot/library/LWP/Protocol.pbc          [main]
+runtime/parrot/library/LWP/UserAgent.pbc         [main]
 runtime/parrot/library/MIME/Base64.pbc           [main]
 runtime/parrot/library/Math/Rand.pbc             [main]
 runtime/parrot/library/NCI/call_toolkit_init.pbc [main]
@@ -271,7 +273,7 @@
 runtime/parrot/library/TAP/Formatter.pbc         [main]
 runtime/parrot/library/TAP/Harness.pbc           [main]
 runtime/parrot/library/TAP/Parser.pbc            [main]
-runtime/parrot/library/TGE.pbc                   [tge]
+runtime/parrot/library/TGE.pbc			 [main]
 runtime/parrot/library/Tcl/Glob.pbc              [main]
 runtime/parrot/library/TclLibrary.pbc            [main]
 runtime/parrot/library/Test/Builder.pbc          [main]
@@ -293,6 +295,7 @@
 runtime/parrot/library/ncurses.pbc               [main]
 runtime/parrot/library/nqp-rx.pbc                [nqp]
 runtime/parrot/library/nqp-setting.pbc           [nqp]
+runtime/parrot/library/opsc.pbc                  [main]
 runtime/parrot/library/osutils.pbc               [main]
 runtime/parrot/library/parrotlib.pbc             [main]
 runtime/parrot/library/pcore.pbc                 [main]

Modified: branches/ucs4_encoding/NEWS
==============================================================================
--- branches/ucs4_encoding/NEWS	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/NEWS	Mon May 24 21:18:41 2010	(r46974)
@@ -1,5 +1,9 @@
 # $Id$
 
+New in 2.5.0
+- Platforms
+  + EPEL (Extra Packages for Enterprise Linux) packages for RHEL6.beta are available
+
 New in 2.4.0
 - Core
   + Various long-standing bugs in IMCC were fixed

Modified: branches/ucs4_encoding/compilers/imcc/debug.c
==============================================================================
--- branches/ucs4_encoding/compilers/imcc/debug.c	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/compilers/imcc/debug.c	Mon May 24 21:18:41 2010	(r46974)
@@ -39,7 +39,6 @@
 
 */
 
-PARROT_EXPORT
 PARROT_DOES_NOT_RETURN
 void
 IMCC_fatal(PARROT_INTERP, SHIM(int code), ARGIN(const char *fmt), ...)
@@ -63,7 +62,6 @@
 
 */
 
-PARROT_EXPORT
 PARROT_DOES_NOT_RETURN
 void
 IMCC_fataly(PARROT_INTERP, SHIM(int code), ARGIN(const char *fmt), ...)
@@ -89,7 +87,6 @@
 
 */
 
-PARROT_EXPORT
 PARROT_DOES_NOT_RETURN
 void
 IMCC_fatal_standalone(PARROT_INTERP, int code, ARGIN(const char *fmt), ...)
@@ -114,7 +111,6 @@
 
 */
 
-PARROT_EXPORT
 void
 IMCC_warning(PARROT_INTERP, ARGIN(const char *fmt), ...)
 {
@@ -139,7 +135,6 @@
 
 */
 
-PARROT_EXPORT
 void
 IMCC_info(PARROT_INTERP, int level, ARGIN(const char *fmt), ...)
 {
@@ -164,7 +159,6 @@
 
 */
 
-PARROT_EXPORT
 void
 IMCC_debug(PARROT_INTERP, int level, ARGIN(const char *fmt), ...)
 {

Modified: branches/ucs4_encoding/compilers/imcc/debug.h
==============================================================================
--- branches/ucs4_encoding/compilers/imcc/debug.h	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/compilers/imcc/debug.h	Mon May 24 21:18:41 2010	(r46974)
@@ -27,12 +27,32 @@
 /* HEADERIZER BEGIN: compilers/imcc/debug.c */
 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
 
-PARROT_EXPORT
+void dump_cfg(ARGIN(const IMC_Unit *unit))
+        __attribute__nonnull__(1);
+
+void dump_dominance_frontiers(ARGIN(const IMC_Unit *unit))
+        __attribute__nonnull__(1);
+
+void dump_dominators(ARGIN(const IMC_Unit *unit))
+        __attribute__nonnull__(1);
+
+void dump_instructions(PARROT_INTERP, ARGIN(const IMC_Unit *unit))
+        __attribute__nonnull__(1)
+        __attribute__nonnull__(2);
+
+void dump_labels(ARGIN(const IMC_Unit *unit))
+        __attribute__nonnull__(1);
+
+void dump_loops(ARGIN(const IMC_Unit *unit))
+        __attribute__nonnull__(1);
+
+void dump_symreg(ARGIN(const IMC_Unit *unit))
+        __attribute__nonnull__(1);
+
 void IMCC_debug(PARROT_INTERP, int level, ARGIN(const char *fmt), ...)
         __attribute__nonnull__(1)
         __attribute__nonnull__(3);
 
-PARROT_EXPORT
 PARROT_DOES_NOT_RETURN
 void IMCC_fatal(PARROT_INTERP,
     NULLOK(int code),
@@ -41,7 +61,6 @@
         __attribute__nonnull__(1)
         __attribute__nonnull__(3);
 
-PARROT_EXPORT
 PARROT_DOES_NOT_RETURN
 void IMCC_fatal_standalone(PARROT_INTERP,
     int code,
@@ -50,7 +69,6 @@
         __attribute__nonnull__(1)
         __attribute__nonnull__(3);
 
-PARROT_EXPORT
 PARROT_DOES_NOT_RETURN
 void IMCC_fataly(PARROT_INTERP,
     NULLOK(int code),
@@ -59,38 +77,29 @@
         __attribute__nonnull__(1)
         __attribute__nonnull__(3);
 
-PARROT_EXPORT
 void IMCC_info(PARROT_INTERP, int level, ARGIN(const char *fmt), ...)
         __attribute__nonnull__(1)
         __attribute__nonnull__(3);
 
-PARROT_EXPORT
 void IMCC_warning(PARROT_INTERP, ARGIN(const char *fmt), ...)
         __attribute__nonnull__(1)
         __attribute__nonnull__(2);
 
-void dump_cfg(ARGIN(const IMC_Unit *unit))
-        __attribute__nonnull__(1);
-
-void dump_dominance_frontiers(ARGIN(const IMC_Unit *unit))
-        __attribute__nonnull__(1);
-
-void dump_dominators(ARGIN(const IMC_Unit *unit))
-        __attribute__nonnull__(1);
-
-void dump_instructions(PARROT_INTERP, ARGIN(const IMC_Unit *unit))
-        __attribute__nonnull__(1)
-        __attribute__nonnull__(2);
-
-void dump_labels(ARGIN(const IMC_Unit *unit))
-        __attribute__nonnull__(1);
-
-void dump_loops(ARGIN(const IMC_Unit *unit))
-        __attribute__nonnull__(1);
-
-void dump_symreg(ARGIN(const IMC_Unit *unit))
-        __attribute__nonnull__(1);
-
+#define ASSERT_ARGS_dump_cfg __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(unit))
+#define ASSERT_ARGS_dump_dominance_frontiers __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(unit))
+#define ASSERT_ARGS_dump_dominators __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(unit))
+#define ASSERT_ARGS_dump_instructions __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp) \
+    , PARROT_ASSERT_ARG(unit))
+#define ASSERT_ARGS_dump_labels __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(unit))
+#define ASSERT_ARGS_dump_loops __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(unit))
+#define ASSERT_ARGS_dump_symreg __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(unit))
 #define ASSERT_ARGS_IMCC_debug __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
     , PARROT_ASSERT_ARG(fmt))
@@ -109,21 +118,6 @@
 #define ASSERT_ARGS_IMCC_warning __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
     , PARROT_ASSERT_ARG(fmt))
-#define ASSERT_ARGS_dump_cfg __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(unit))
-#define ASSERT_ARGS_dump_dominance_frontiers __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(unit))
-#define ASSERT_ARGS_dump_dominators __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(unit))
-#define ASSERT_ARGS_dump_instructions __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(unit))
-#define ASSERT_ARGS_dump_labels __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(unit))
-#define ASSERT_ARGS_dump_loops __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(unit))
-#define ASSERT_ARGS_dump_symreg __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(unit))
 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
 /* HEADERIZER END: compilers/imcc/debug.c */
 

Modified: branches/ucs4_encoding/compilers/imcc/imc.c
==============================================================================
--- branches/ucs4_encoding/compilers/imcc/imc.c	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/compilers/imcc/imc.c	Mon May 24 21:18:41 2010	(r46974)
@@ -63,7 +63,6 @@
 
 */
 
-PARROT_EXPORT
 void
 imc_compile_all_units(PARROT_INTERP)
 {
@@ -113,7 +112,6 @@
 
 */
 
-PARROT_EXPORT
 void
 imc_compile_unit(PARROT_INTERP, ARGIN(IMC_Unit *unit))
 {
@@ -136,7 +134,6 @@
 
 */
 
-PARROT_EXPORT
 void
 imc_cleanup(PARROT_INTERP, ARGIN_NULLOK(void *yyscanner))
 {

Modified: branches/ucs4_encoding/compilers/imcc/imc.h
==============================================================================
--- branches/ucs4_encoding/compilers/imcc/imc.h	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/compilers/imcc/imc.h	Mon May 24 21:18:41 2010	(r46974)
@@ -106,35 +106,32 @@
 /* HEADERIZER BEGIN: compilers/imcc/imc.c */
 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
 
-PARROT_EXPORT
 void imc_cleanup(PARROT_INTERP, ARGIN_NULLOK(void *yyscanner))
         __attribute__nonnull__(1);
 
-PARROT_EXPORT
+void imc_close_unit(PARROT_INTERP, ARGIN_NULLOK(IMC_Unit *unit))
+        __attribute__nonnull__(1);
+
 void imc_compile_all_units(PARROT_INTERP)
         __attribute__nonnull__(1);
 
-PARROT_EXPORT
 void imc_compile_unit(PARROT_INTERP, ARGIN(IMC_Unit *unit))
         __attribute__nonnull__(1)
         __attribute__nonnull__(2);
 
-void imc_close_unit(PARROT_INTERP, ARGIN_NULLOK(IMC_Unit *unit))
-        __attribute__nonnull__(1);
-
 PARROT_CANNOT_RETURN_NULL
 IMC_Unit * imc_open_unit(PARROT_INTERP, IMC_Unit_Type t)
         __attribute__nonnull__(1);
 
 #define ASSERT_ARGS_imc_cleanup __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_imc_close_unit __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
 #define ASSERT_ARGS_imc_compile_all_units __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp))
 #define ASSERT_ARGS_imc_compile_unit __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
     , PARROT_ASSERT_ARG(unit))
-#define ASSERT_ARGS_imc_close_unit __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp))
 #define ASSERT_ARGS_imc_open_unit __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp))
 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
@@ -189,20 +186,6 @@
 /* HEADERIZER BEGIN: compilers/imcc/parser_util.c */
 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
 
-PARROT_EXPORT
-int do_yylex_init(PARROT_INTERP, ARGOUT(yyscan_t* yyscanner))
-        __attribute__nonnull__(1)
-        __attribute__nonnull__(2)
-        FUNC_MODIFIES(* yyscanner);
-
-PARROT_EXPORT
-void imcc_destroy(PARROT_INTERP)
-        __attribute__nonnull__(1);
-
-PARROT_EXPORT
-void imcc_init(PARROT_INTERP)
-        __attribute__nonnull__(1);
-
 PARROT_WARN_UNUSED_RESULT
 int check_op(PARROT_INTERP,
     ARGOUT(char *fullname),
@@ -285,6 +268,12 @@
         __attribute__nonnull__(3)
         FUNC_MODIFIES(*error_message);
 
+void imcc_destroy(PARROT_INTERP)
+        __attribute__nonnull__(1);
+
+void imcc_init(PARROT_INTERP)
+        __attribute__nonnull__(1);
+
 PARROT_IGNORABLE_RESULT
 int /*@alt void@*/
 imcc_vfprintf(PARROT_INTERP,
@@ -346,13 +335,6 @@
         FUNC_MODIFIES(*unit)
         FUNC_MODIFIES(*r);
 
-#define ASSERT_ARGS_do_yylex_init __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(yyscanner))
-#define ASSERT_ARGS_imcc_destroy __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_imcc_init __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp))
 #define ASSERT_ARGS_check_op __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
     , PARROT_ASSERT_ARG(fullname) \
@@ -389,6 +371,10 @@
        PARROT_ASSERT_ARG(interp) \
     , PARROT_ASSERT_ARG(s) \
     , PARROT_ASSERT_ARG(error_message))
+#define ASSERT_ARGS_imcc_destroy __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_imcc_init __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
 #define ASSERT_ARGS_imcc_vfprintf __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
     , PARROT_ASSERT_ARG(io) \
@@ -512,8 +498,8 @@
     AsmInYield
 } AsmState;
 
-PARROT_EXPORT void IMCC_push_parser_state(PARROT_INTERP);
-PARROT_EXPORT void IMCC_pop_parser_state(PARROT_INTERP, void *yyscanner);
+void IMCC_push_parser_state(PARROT_INTERP);
+void IMCC_pop_parser_state(PARROT_INTERP, void *yyscanner);
 
 /* globals store the state between individual e_pbc_emit calls */
 typedef struct subs_t {
@@ -545,7 +531,6 @@
 } imcc_globals;
 
 typedef struct _imc_info_t {
-    void                  *yyscanner;
     struct _imc_info_t    *prev;
     IMC_Unit              *imc_units;
     IMC_Unit              *last_unit;
@@ -592,7 +577,6 @@
     int                   error_code;      /* The Error code. */
     int                   expect_pasm;
     int                   gc_off;
-    int                   has_compile;
     int                   imcc_warn;
     int                   in_pod;
     int                   ins_line;
@@ -656,9 +640,8 @@
 #define UNSET_STATE_RUN_FROM_FILE(i) (COMPILER_STATE(i) &= ~PBC_RUN_FILE)
 
 /* imclexer.c */
-PARROT_EXPORT FILE * imc_yyin_set(FILE *new_yyin, void *yyscanner);
-PARROT_EXPORT FILE * imc_yyin_get(void *yyscanner);
-
+FILE * imc_yyin_set(FILE *new_yyin, void *yyscanner);
+FILE * imc_yyin_get(void *yyscanner);
 
 #endif /* PARROT_IMCC_IMC_H_GUARD */
 

Modified: branches/ucs4_encoding/compilers/imcc/imcc.l
==============================================================================
--- branches/ucs4_encoding/compilers/imcc/imcc.l	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/compilers/imcc/imcc.l	Mon May 24 21:18:41 2010	(r46974)
@@ -41,7 +41,6 @@
 #include "imc.h"
 #include "parser.h"
 
-// typedef struct yyguts_t       yyguts_t;
 typedef struct parser_state_t parser_state_t;
 
 /* parser state structure
@@ -125,7 +124,6 @@
 BIN             0[bB][01]+
 DOT             [.]
 SIGN            [-+]
-BIGINT          {SIGN}?{DIGITS}"L"
 FLOATNUM        {SIGN}?(({DIGITS}{DOT}{DIGIT}*|{DOT}{DIGITS})([eE]{SIGN}?{DIGITS})?|{DIGITS}[eE]{SIGN}?{DIGITS})
 LETTERDIGIT     [a-zA-Z0-9_]
 LABELLETTERDIGIT([a-zA-Z0-9_@])
@@ -137,7 +135,6 @@
 UNICODE         {ENC}{ENC}?{DQ_STRING}
 STRINGCONSTANT  {SQ_STRING}|{DQ_STRING}
 SQ_STRING       \'[^'\n]*\'
-RANKSPEC        \[[,]*\]
 EOL             \r?\n
 WS              [\t\f\r\x1a ]
 SP              [ ]
@@ -217,8 +214,6 @@
             yy_pop_state(yyscanner);
             yy_scan_string(IMCC_INFO(interp)->frames->heredoc_rest, yyscanner);
 
-            /* not sure we need this decrement; more testing needed */
-            IMCC_INFO(interp)->line--;
             return STRINGC;
         }
         else {
@@ -542,16 +537,6 @@
 <*>{BIN}              DUP_AND_RET(valp, INTC);
 <*>{OCT}              DUP_AND_RET(valp, INTC);
 
-<*>{BIGINT} {
-        valp->s = mem_sys_strdup(yytext);
-
-        /* trailing 'L' */
-        valp->s[strlen(valp->s) - 1] = '\0';
-
-        /* no BIGINT native format yet */
-        return STRINGC;
-    }
-
 <*>{STRINGCONSTANT} {
         valp->s = mem_sys_strdup(yytext);
 

Modified: branches/ucs4_encoding/compilers/imcc/imclexer.c
==============================================================================
--- branches/ucs4_encoding/compilers/imcc/imclexer.c	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/compilers/imcc/imclexer.c	Mon May 24 21:18:41 2010	(r46974)
@@ -380,8 +380,8 @@
 	*yy_cp = '\0'; \
 	yyg->yy_c_buf_p = yy_cp;
 
-#define YY_NUM_RULES 148
-#define YY_END_OF_BUFFER 149
+#define YY_NUM_RULES 147
+#define YY_END_OF_BUFFER 148
 /* This struct is not used in this scanner,
    but its presence is necessary. */
 struct yy_trans_info
@@ -389,129 +389,127 @@
 	flex_int32_t yy_verify;
 	flex_int32_t yy_nxt;
 	};
-static yyconst flex_int16_t yy_accept[1095] =
+static yyconst flex_int16_t yy_accept[1088] =
     {   0,
         0,    1,    0,    1,    0,    1,   17,    1,    0,    1,
         0,    1,    0,    1,    0,    1,    0,    1,    0,    1,
-        4,    1,  149,  136,  135,   11,  135,  136,  136,   12,
-      136,  136,  136,  136,  136,  136,  116,  136,   96,  136,
-      120,  120,  136,   88,  136,   90,  134,  134,  134,  134,
-      134,  134,  134,  134,  136,  136,    1,    1,  136,  135,
-      135,  136,  136,  136,  136,  134,    1,    1,  136,  147,
-      142,  138,  142,  147,  147,  147,  147,  147,  120,  120,
-      147,  145,  145,  145,    1,    1,  147,   17,   18,   17,
+        4,    1,  148,  135,  134,   11,  134,  135,  135,   12,
+      135,  135,  135,  135,  135,  135,  116,  135,   96,  135,
+      120,  120,  135,   88,  135,   90,  133,  133,  133,  133,
+      133,  133,  133,  133,  135,  135,    1,    1,  135,  134,
+      134,  135,  135,  135,  135,  133,    1,    1,  135,  146,
+      141,  137,  141,  146,  146,  146,  146,  146,  120,  120,
+      146,  144,  144,  144,    1,    1,  146,   17,   18,   17,
        17,   17,   17,   17,   17,   17,   17,   17,   17,    1,
 
-        1,   17,  148,  136,    9,    9,  136,  136,    1,    5,
+        1,   17,  147,  135,    9,    9,  135,  135,    1,    5,
         5,    5,    5,    5,    5,    5,    5,    5,    5,    1,
-        6,  136,   10,  136,  136,  136,  136,  136,  120,  120,
-      136,  136,  136,    1,    1,  136,   13,  136,  136,  136,
-      136,  136,  120,  120,  136,  136,  136,    1,    1,  148,
-        2,  148,  148,  148,  148,  148,  120,  120,  148,  148,
-      148,    1,    1,    4,    3,    4,    4,    4,    4,    4,
-        4,    4,    4,    4,    4,    1,    1,  135,    0,   11,
-       93,    0,  125,    0,  132,  132,  132,  132,  132,  101,
+        6,  135,   10,  135,  135,  135,  135,  135,  120,  120,
+      135,  135,  135,    1,    1,  135,   13,  135,  135,  135,
+      135,  135,  120,  120,  135,  135,  135,    1,    1,  147,
+        2,  147,  147,  147,  147,  147,  120,  120,  147,  147,
+      147,    1,    1,    4,    3,    4,    4,    4,    4,    4,
+        4,    4,    4,    4,    4,    1,    1,  134,    0,   11,
+       93,    0,  124,    0,  131,  131,  131,  131,  131,  101,
        85,  104,    0,   94,   99,    0,  120,   97,   98,  119,
 
       110,  118,  118,  118,  118,  118,  118,  118,  118,  118,
       118,  118,  118,  118,  118,  118,  118,  118,  102,  100,
-      119,    0,    0,  124,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,   82,   89,
-       92,   65,   91,   83,  115,    0,  134,  117,  133,  134,
-       75,  134,  134,  134,  134,  134,  134,  105,   86,  106,
-       87,    1,    0,   15,    0,   92,   65,    0,  135,  118,
-      118,  118,  118,  118,  118,    0,    0,    0,    0,    1,
-      142,  138,  142,    0,    0,    0,  146,  146,  146,  146,
-      145,    0,  143,  145,    1,    1,   17,   18,   17,   17,
+      119,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,   82,   89,   92,
+       65,   91,   83,  115,    0,  133,  117,  132,  133,   75,
+      133,  133,  133,  133,  133,  133,  105,   86,  106,   87,
+        1,    0,   15,    0,   92,   65,    0,  134,  118,  118,
+      118,  118,  118,  118,    0,    0,    0,    0,    1,  141,
+      137,  141,    0,    0,    0,  145,  145,  145,  145,  144,
+        0,  142,  144,    1,    1,   17,   18,   17,   17,   17,
 
        17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
-       17,   17,   17,   17,   17,   17,   17,    1,   17,    0,
-        0,    9,    0,    1,    5,    5,    5,    5,    5,    5,
-        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
-        5,    5,    1,    0,   10,    0,    0,    0,  125,    0,
-        0,    0,    0,  120,  119,    0,    0,  119,    0,    0,
-      124,    0,    0,    0,    0,    0,    0,    1,    1,    0,
-       13,    0,    0,    0,  125,    0,    0,    0,    0,  120,
-      119,    0,    0,  119,    0,    0,  124,    0,    0,    0,
-        0,    0,    0,    1,    1,    0,    2,    0,    0,    0,
-
-      125,    0,    0,    0,    0,  120,  119,    0,    0,  119,
-        0,    0,  124,    0,    0,    0,    0,    0,    0,    1,
-        1,    4,    3,    4,    4,    4,    4,    4,    4,    4,
+       17,   17,   17,   17,   17,    1,   17,    0,    0,    9,
+        0,    1,    5,    5,    5,    5,    5,    5,    5,    5,
+        5,    5,    5,    5,    5,    5,    5,    5,    5,    1,
+        0,   10,    0,    0,    0,  124,    0,    0,    0,    0,
+      120,  119,    0,    0,  119,    0,    0,    0,    0,    0,
+        0,    0,    0,    1,    1,    0,   13,    0,    0,    0,
+      124,    0,    0,    0,    0,  120,  119,    0,    0,  119,
+        0,    0,    0,    0,    0,    0,    0,    0,    1,    1,
+        0,    2,    0,    0,    0,  124,    0,    0,    0,    0,
+
+      120,  119,    0,    0,  119,    0,    0,    0,    0,    0,
+        0,    0,    0,    1,    1,    4,    3,    4,    4,    4,
         4,    4,    4,    4,    4,    4,    4,    4,    4,    4,
-        4,    4,    1,   95,  128,  129,  131,  130,    0,  118,
+        4,    4,    4,    4,    4,    1,   95,  127,  128,  130,
+      129,    0,  118,  118,  118,  118,  118,  118,  118,  118,
       118,  118,  118,  118,  118,  118,  118,  118,  118,  118,
-      118,  118,  118,  118,  118,  118,  118,  118,  118,  118,
-      118,  118,  118,  118,  103,  119,  122,    0,  119,  123,
-      121,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-
-        0,    0,  108,  107,   84,  114,    0,    0,  133,  134,
-       78,  134,   79,   80,  134,  134,  134,    0,  118,  118,
-        0,    0,  139,  144,  141,  146,  146,  146,  146,  146,
-      145,   17,   17,   17,   17,   17,   17,   17,   17,   17,
-       17,   17,   17,   17,   17,   17,    0,    0,    0,    5,
-        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
-        5,    0,    0,    0,  119,  122,    0,  119,  123,  121,
-        0,    0,    0,    0,    0,    0,    0,    0,  119,  122,
+      118,  118,  118,  118,  118,  118,  118,  103,  119,  122,
         0,  119,  123,  121,    0,    0,    0,    0,    0,    0,
-        0,    0,  119,  122,    0,  119,  123,  121,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,  108,  107,   84,  114,    0,
 
-        0,    0,    0,    4,    4,    4,    4,    4,    4,    4,
-        4,    4,    4,    4,    4,    4,    4,    0,  119,   69,
-      118,  118,  118,  118,   25,  118,  118,  118,  118,  118,
-       22,  118,  118,  118,  118,  118,  118,  118,  118,  118,
-      118,  118,   24,  118,  118,    0,    0,    0,    0,    0,
-        0,    0,   46,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,  126,    0,    0,
-      109,    0,  127,    0,    0,    0,   74,   77,  134,  134,
-      134,  134,    0,  141,  146,  146,  146,  146,  145,  145,
-       17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
+        0,  132,  133,   78,  133,   79,   80,  133,  133,  133,
+        0,  118,  118,    0,    0,  138,  143,  140,  145,  145,
+      145,  145,  145,  144,   17,   17,   17,   17,   17,   17,
+       17,   17,   17,   17,   17,   17,   17,   17,   17,    0,
+        0,    0,    5,    5,    5,    5,    5,    5,    5,    5,
+        5,    5,    5,    5,    0,    0,    0,  119,  122,    0,
+      119,  123,  121,    0,    0,    0,    0,    0,    0,    0,
+        0,  119,  122,    0,  119,  123,  121,    0,    0,    0,
+        0,    0,    0,    0,    0,  119,  122,    0,  119,  123,
+      121,    0,    0,    0,    0,    0,    4,    4,    4,    4,
 
-       17,   17,   17,   17,   17,   17,    0,    0,    0,    0,
-        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
-        0,  119,    0,    0,    0,    0,  126,    0,    0,    0,
-        0,    0,  127,    0,    0,    0,    0,    0,    0,  119,
-        0,    0,    0,    0,  126,    0,    0,    0,    0,    0,
-      127,    0,    0,    0,    0,    0,    0,  119,    0,    0,
-        0,    0,  126,    0,    0,    0,    0,    0,  127,    0,
-        0,    0,    0,    0,    4,    4,    4,    4,    4,    4,
-        4,    4,    4,    4,    4,    4,    4,    4,    4,  118,
-      118,   28,  118,  118,   20,  118,  118,  118,  118,   19,
+        4,    4,    4,    4,    4,    4,    4,    4,    4,    4,
+        0,  119,   69,  118,  118,  118,  118,   25,  118,  118,
+      118,  118,  118,   22,  118,  118,  118,  118,  118,  118,
+      118,  118,  118,  118,  118,   24,  118,  118,    0,    0,
+        0,    0,    0,    0,    0,   46,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+      125,    0,    0,  109,    0,  126,    0,    0,    0,   74,
+       77,  133,  133,  133,  133,    0,  140,  145,  145,  145,
+      145,  144,  144,   17,   17,   17,   17,   17,   17,   17,
+       17,   17,   17,   17,   17,   17,   17,   17,   17,    0,
+
+        0,    0,    0,    5,    5,    5,    5,    5,    5,    5,
+        5,    5,    5,    0,  119,    0,    0,    0,    0,  125,
+        0,    0,    0,    0,    0,  126,    0,    0,    0,    0,
+        0,    0,  119,    0,    0,    0,    0,  125,    0,    0,
+        0,    0,    0,  126,    0,    0,    0,    0,    0,    0,
+      119,    0,    0,    0,    0,  125,    0,    0,    0,    0,
+        0,  126,    0,    0,    0,    0,    0,    4,    4,    4,
+        4,    4,    4,    4,    4,    4,    4,    4,    4,    4,
+        4,    4,  118,  118,   28,  118,  118,   20,  118,  118,
+      118,  118,   19,  118,  118,  118,  118,  118,  118,  118,
 
+      118,  118,  118,  118,  118,   44,    0,   60,    0,   41,
+        0,    0,   40,   39,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,  133,  133,  133,  133,
+       14,    0,  136,   20,  145,   19,  144,  144,   17,   17,
+       17,   17,   16,   17,   20,   19,    0,    0,    5,    5,
+        5,    5,   20,   19,    0,    0,   20,   19,    0,    0,
+       20,   19,    0,    0,    4,    4,    4,    4,  118,  118,
+       71,  118,  118,  118,  118,  118,  118,  118,  118,   70,
+      112,  118,  118,  118,   73,  118,  118,  118,  118,  118,
+      118,   54,    0,    0,    0,    0,    0,   38,   64,    0,
+
+        0,    0,   45,    0,    0,   51,    0,    0,  133,  133,
+       81,   76,  145,  144,  144,   17,   17,    0,    0,    5,
+        5,    0,    0,    0,    0,    0,    0,    4,    4,  118,
       118,  118,  118,  118,  118,  118,  118,  118,  118,  118,
-      118,  118,   44,    0,   60,    0,   41,    0,    0,   40,
-       39,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,  134,  134,  134,  134,   14,    0,  137,
-       20,  146,   19,  145,  145,   17,   17,   17,   17,   16,
-       17,   20,   19,    0,    0,    5,    5,    5,    5,   20,
-       19,    0,    0,   20,   19,    0,    0,   20,   19,    0,
-        0,    4,    4,    4,    4,  118,  118,   71,  118,  118,
-      118,  118,  118,  118,  118,  118,   70,  112,  118,  118,
-      118,   73,  118,  118,  118,  118,  118,  118,   54,    0,
-
-        0,    0,    0,    0,   38,   64,    0,    0,    0,   45,
-        0,    0,   51,    0,    0,  134,  134,   81,   76,  146,
-      145,  145,   17,   17,    0,    0,    5,    5,    0,    0,
-        0,    0,    0,    0,    4,    4,  118,  118,  118,  118,
-      118,  118,  118,  118,  118,  118,  118,  118,  118,  118,
-      118,   56,  118,  118,  118,  118,    0,    0,    0,    0,
-       37,    0,    0,    0,    0,   61,    0,   47,  134,  134,
-      140,  145,  145,   17,   17,    0,    0,    5,    5,    0,
-        0,    0,    0,    0,    0,    4,    4,  118,  118,  118,
-      118,  118,  118,  118,  118,  118,  113,  118,   59,  118,
-
-      118,  118,  118,   32,   23,  118,  118,  118,    0,    0,
-        0,    0,   48,    0,    0,    0,    0,    0,    8,   17,
-        8,    5,    5,    0,    8,    0,    8,    0,    8,    4,
-        4,   21,  118,  118,  118,   27,  118,  118,  118,  118,
-       31,  118,  118,  118,   29,  118,  118,   58,   67,    0,
-        0,   66,   63,   62,   43,    0,    7,    7,    7,    7,
-        7,    4,  118,  118,  118,  118,   36,  118,  118,  118,
-       30,   68,  118,   55,   42,    0,    0,   26,  118,  118,
-       34,   52,  118,  118,   57,   50,   49,  118,   35,   53,
-       72,  111,   33,    0
-
+      118,  118,  118,  118,   56,  118,  118,  118,  118,    0,
+        0,    0,    0,   37,    0,    0,    0,    0,   61,    0,
+       47,  133,  133,  139,  144,  144,   17,   17,    0,    0,
+        5,    5,    0,    0,    0,    0,    0,    0,    4,    4,
+      118,  118,  118,  118,  118,  118,  118,  118,  118,  113,
+      118,   59,  118,  118,  118,  118,   32,   23,  118,  118,
+
+      118,    0,    0,    0,    0,   48,    0,    0,    0,    0,
+        0,    8,   17,    8,    5,    5,    0,    8,    0,    8,
+        0,    8,    4,    4,   21,  118,  118,  118,   27,  118,
+      118,  118,  118,   31,  118,  118,  118,   29,  118,  118,
+       58,   67,    0,    0,   66,   63,   62,   43,    0,    7,
+        7,    7,    7,    7,    4,  118,  118,  118,  118,   36,
+      118,  118,  118,   30,   68,  118,   55,   42,    0,    0,
+       26,  118,  118,   34,   52,  118,  118,   57,   50,   49,
+      118,   35,   53,   72,  111,   33,    0
     } ;
 
 static yyconst flex_int32_t yy_ec[256] =
@@ -557,289 +555,289 @@
        10,   10,   10,    1,    1
     } ;
 
-static yyconst flex_int16_t yy_base[1251] =
+static yyconst flex_int16_t yy_base[1244] =
     {   0,
         0,   64,   88,   70,  153,   75,  218,   82,  283,  113,
       348,  117,  109,  412,  434,  121,  499,  130,  564,  135,
-      629,  140, 4665, 7097,  693, 7097,  697, 4639,   63, 7097,
-      385, 4638,   56, 4648,   58,  686, 7097,  696,  703,   60,
-      750,  780,  785,   72,   83,  124,  703,  797,  767,  825,
-      765,  759,  769,  833,   63,  766,  848,  856,  851,  422,
-      864,  862,  871,  838, 4623,  848,  803,  898,  819, 7097,
-      902, 7097,  906,   84,  898, 4570,  920,  929,    0,  935,
-     4553,  405,  951,  828,  941,  956,  909,    0, 7097, 4573,
-      689, 4563,  965,  969, 1004,  965, 4550, 1066, 1131,  991,
-
-      995, 4529, 7097,  990, 1009, 1077, 4549,   87, 1001,    0,
-        0,  791, 1032, 1066, 1180, 1003, 4547, 1242, 1307, 1013,
-      878,  426, 7097,  894, 1111, 1010, 1105, 1160, 1370, 1129,
-      959, 1432, 1497, 1057, 1098,  974, 7097, 1032, 1163, 1052,
-     1218, 1276, 1560, 1300, 1149, 1622, 1687, 1157, 1182, 1041,
-     7097, 1101, 1185, 1116, 1266, 1337, 1750, 1306, 1209, 1812,
-     1877, 1225, 1259,    0, 7097, 4567,  880, 4557, 1254, 1356,
-     1926, 1369, 4544, 1988, 2053, 1213, 1287, 1297, 1346, 7097,
-     7097, 1168, 7097,    0,    0, 1344, 1360, 1374, 1398, 7097,
-     7097, 7097, 4555, 7097, 7097, 1406, 1443, 7097, 7097, 1448,
-
-     7097,    0, 4532, 4512, 4518, 1136, 4510, 4512,  658, 4508,
-     1425,  105,  883,  922, 4514,  727, 4517, 4508, 4532, 7097,
-     1505, 1174, 1466, 7097, 1185,    0, 4503, 4513, 4502, 1179,
-      816, 1292,  685,  947, 4498,   22, 4498, 4491, 1109, 7097,
-     7097, 7097, 7097, 1252, 4526, 4525, 1406, 4540, 1525, 1533,
-     1443, 1543, 1467, 1544, 1549, 1560, 1562, 7097, 7097, 7097,
-     7097, 1593, 1290, 7097, 1300, 1366, 1382, 1513, 1449, 4492,
-     4492, 1482, 4502, 4501, 4498, 1349, 4483, 4476, 1162, 1582,
-     1616, 7097, 1639, 4512, 1630,    0,    0, 4481, 4483, 1199,
-     1321, 4523, 1638, 1515, 1661, 1665,    0, 7097, 1265,    0,
-
-        0, 4505, 1652, 1698, 1704, 4458, 4457, 1716, 1391, 1661,
-        0, 1472, 2100, 1543, 2147, 2212, 2277, 1607, 4446, 4455,
-     4454, 1744,  909, 1674,    0, 1736,    0, 1687, 1823, 1828,
-     4453, 4452, 1885, 1510, 1778,    0, 1710, 2324, 1563, 2371,
-     2436, 2501, 1753, 1536, 7097, 1597, 1799, 1856, 1601, 1612,
-     1737, 1756, 1851, 2564, 1905, 1778, 1784, 2004, 1894, 1918,
-     1652, 1954, 2608, 1964, 2655, 2720, 2785, 1805, 1862, 1681,
-     7097, 1718, 1926, 1946, 1772, 1828, 1907, 1975, 2016, 2848,
-     2026, 1960, 1981, 2070, 2013, 2082, 1858, 2091, 2892, 2037,
-     2939, 3004, 3069, 2078, 2103, 1978, 7097, 2018, 2128, 2134,
-
-     2039, 2084, 2111, 2121, 2163, 3132, 2293, 2136, 2301, 2387,
-     2172, 2174, 2123, 2305, 3176, 2194, 3223, 3288, 3353, 2200,
-     2205,    0, 7097, 1321,    0,    0, 4489, 2299, 2382, 2310,
-     4450, 4449, 2501, 2160, 2341,    0, 2314, 3400, 1735, 3447,
-     3512, 3577, 2345, 2416, 2403, 2410, 2513, 2517, 2529,    0,
-     4464, 4441, 4445, 4441, 4438, 4445, 4367, 4358, 4362,  786,
-     4353, 4361, 1051, 4369, 4353, 4359, 4360, 4352, 4364, 4348,
-     4347, 4362, 4354, 4357, 7097, 2533, 2180, 2537, 2550, 2394,
-        0, 4348, 4350, 4358, 4347, 2249, 4336, 4355, 4346, 4335,
-     4342, 4340, 4345, 4331, 4330, 4330, 4327, 4343, 4335, 4342,
-
-     1390, 4371, 7097, 7097, 4357, 7097, 1441, 4354, 2564, 2566,
-     2579, 2581, 2583, 2584, 2592, 2624, 2600, 2334, 4332, 4333,
-     4324, 4348, 7097, 2663,    0,    0, 4304, 4297, 4304, 4293,
-     2598, 2677, 4294, 4291, 2785, 2308, 2668, 2681, 2509, 3624,
-     1921, 4331, 1937, 3671, 3736, 4283, 4290, 4287, 1754, 2690,
-     4288, 4282, 2797, 2339, 2694, 2801, 2557, 3783, 2610, 3830,
-     3895, 2826, 2809, 2622, 2834, 2615, 2854, 2868, 2880, 3958,
-     2920, 2829, 2926, 4005, 4070, 2888, 2922, 2832, 2955, 2912,
-     2967, 2977, 3085, 4133, 3104, 2894, 3110, 4180, 4245, 3126,
-     3087, 2914, 3153, 3096, 3099, 3165, 3173, 4308, 3119, 2979,
-
-     3160, 4355, 4420, 3193, 4283, 4280, 3223, 2345, 2973, 3169,
-     2842, 4467, 2011, 4320, 2129, 4514, 4579, 3235, 3239,    0,
-     4277, 4276, 4274, 4266, 4282, 4276, 4280, 4277, 4268, 4264,
-        0, 4271, 4271, 4273, 4257, 4264, 4197, 4201, 4199, 4199,
-     4179, 4197,    0, 4186, 4185, 4182, 4183, 4174, 4186, 4172,
-     4171, 4175, 7097, 4183, 4174, 4177, 4166, 4178, 4170,  783,
-     4176, 4162, 4162, 4168, 4161, 4173, 2584, 7097,    0, 4203,
-     7097, 2637, 7097,    0, 4191, 4206, 2870, 3116, 3364, 3365,
-     3373, 3194, 2423,    0, 4160, 4165, 4164, 4163, 3108, 3374,
-     3245, 3251, 4162, 4161, 2794,    0,    0, 4190, 2819,    0,
-
-        0, 4644, 4193, 4709, 4149, 2558, 4128, 4126, 1733, 1818,
-     3255, 3259, 4124, 4123, 3158,    0, 4774, 4161, 4839, 4117,
-     3380, 3388, 3391, 3428, 3475, 3607, 2638, 2704, 3401, 3463,
-     3609, 3615, 2714, 2965, 4904, 3094, 4969, 4115, 3473, 3477,
-     3437, 3593, 3617, 3622, 3178, 3198, 3497, 3595, 3624, 3699,
-     3247, 3279, 5034, 3431, 5099, 4110, 3485, 3688, 3602, 3605,
-     3811, 3817, 3281, 3382, 3701, 3711, 3862, 3986, 3465, 3481,
-     5164, 3630, 5229, 4108, 3639, 3679, 4110, 4105, 2921,    0,
-        0, 4138, 3103,    0,    0, 5294, 4142, 5359, 4098, 4088,
-     4093,    0, 4086, 1855,    0, 4087, 4101, 4082, 4097,    0,
-
-     4089, 4088, 4084, 4027, 4009, 4022, 4013, 4005, 4005, 1006,
-     4017, 4015, 7097, 4018, 7097, 4013, 7097, 4015, 4012, 7097,
-     7097, 4001, 4000, 3996, 3965, 3950, 3942, 3925, 3931, 3915,
-     3923, 3906, 3842, 3976, 4148, 4016, 3800, 7097, 3487,    0,
-        0, 3834,    0, 2580, 3640,    0,    0, 5424, 1059, 7097,
-     3878, 7097, 7097, 1332, 1986,    0,    0, 5489, 1540, 3499,
-     3713, 3668, 1097, 3717, 3721, 3676, 1231, 3725, 3727, 3682,
-     1504,    0,    0, 3756, 3158, 3821, 3796,    0, 3780, 3773,
-     3767, 3764, 3757, 3689, 3680, 3662,    0, 3649, 3643, 3619,
-     3623,    0, 3580, 3582, 3566, 3569, 3530, 3468,    0, 3428,
-
-     3400, 3386, 3394, 3388, 7097, 7097, 3370, 3365, 3358, 7097,
-     3352, 3340, 7097, 3352, 3329, 3975, 4150, 3851, 3852, 3874,
-     3836, 3948, 1800, 1908, 1438, 1810, 2247, 2260, 1174, 1745,
-     1870, 2063, 2494, 2496, 2778, 2831, 3313, 3820, 3318, 3227,
-     3222, 3181, 3127, 3114, 3102, 3094, 3083, 3070, 3043, 2951,
-     2947,    0, 2936, 2919, 2926, 2868, 2816, 2797, 2770, 2652,
-     7097, 2629, 2634, 2629, 2553, 7097, 2533, 7097, 3958, 3960,
-     3882, 2382, 3857, 1295, 2643,  772, 1490, 3211, 3599,  942,
-     1965, 2950, 3091, 3458, 3588, 3841, 3990, 2518, 2475, 2462,
-     2384, 2368, 2350, 2349, 2332, 2324,    0, 2289,    0, 2268,
-
-     2265, 2236, 2164,    0,    0, 2129, 2130, 2112, 2102, 2075,
-     2051, 2025, 7097, 2027, 2018, 1972, 1947, 1709, 1986, 2898,
-     1978, 3418, 1947, 3885, 4030, 4039, 4033, 4044, 4049, 3625,
-     1931,    0, 1842, 1816, 1765,    0, 1728, 1728, 1694, 1650,
-        0, 1585, 1556, 1522,    0, 1476, 1429,    0, 7097, 1375,
-     1360, 7097, 7097, 7097, 7097, 1321, 7097,    0, 3846, 3868,
-     3969,    0, 1275, 1198, 1185, 1145,    0, 1117, 1071, 1024,
-        0,    0,  926,    0, 7097,  869,  827,    0,  752,  675,
-        0,  367,  356,   61,    0, 7097, 7097,   23,    0,    0,
-        0,    0,    0, 7097, 5554, 5560, 5570, 5578, 5589, 5593,
-
-     5601, 5608, 5619, 5630, 5641, 5652, 5659, 5670, 5681, 5692,
-     5703, 5714, 5725, 5736, 5747, 5758, 5769, 5780, 5791, 5802,
-     5813, 5824, 5835, 5846, 5857, 5868, 5874, 5884, 5890, 5896,
-     5901, 5909, 5918, 5929, 5935, 5939, 5945, 5952, 5963, 5974,
-     5985, 5996, 6007, 6018, 6029, 6040, 6051, 6062, 6073, 6084,
-     6095, 6106, 6117, 6128, 6139, 6150, 6161, 6172, 6183, 6194,
-     6205, 6211, 6216, 6222, 6231, 6242, 6253, 6260, 6268, 6279,
-     6285, 6291, 6297, 6304, 6315, 6326, 6337, 6348, 6359, 6366,
-     6377, 6388, 6399, 6410, 6421, 6432, 6443, 6454, 6465, 6476,
-     6487, 6498, 6509, 6520, 6531, 6542, 6553, 6564, 6575, 6586,
-
-     6597, 6608, 6619, 6625, 6636, 6647, 6658, 6665, 6673, 6684,
-     6690, 6696, 6703, 6714, 6725, 6736, 6747, 6758, 6765, 6776,
-     6787, 6798, 6809, 6820, 6831, 6842, 6853, 6864, 6875, 6886,
-     6897, 6908, 6919, 6930, 6941, 6952, 6963, 6974, 6985, 6996,
-     7007, 7018, 7024, 7032, 7043, 7049, 7056, 7067, 7074, 7085
+      629,  140, 4821, 6967,  693, 6967,  697, 4795,   63, 6967,
+      385, 4794,   56, 4806,   58,  686, 6967,  696,  703,   60,
+      750,  778,  783,   72,   83,  124,  703,  794,  765,  823,
+      768,  759,  831,  767,   63,  753,  846,  854,  849,  422,
+      862,  861,  869,  845, 4793,  846,  884,  899,  798, 6967,
+      905, 6967,  931,   84,  904, 4804,  926,  931,    0,  937,
+     4791,  405,  949,  845,  958,  971,  881,    0, 6967, 4810,
+      689, 4800,  967,  971, 1006,  967, 4787, 1068, 1133,  993,
+
+      997, 4766, 6967,  992, 1011, 1079, 4786,   87, 1003,    0,
+        0,  819, 1034, 1068, 1182, 1005, 4784, 1244, 1309, 1015,
+      766,  426, 6967,  869, 1109,  926, 1101, 1149, 1372, 1151,
+     1034, 1434, 1499, 1059, 1124,  976, 6967, 1012, 1174, 1099,
+     1212, 1188, 1562, 1235, 1151, 1624, 1689, 1158, 1162, 1043,
+     6967, 1062, 1179, 1181, 1273, 1337, 1752, 1244, 1219, 1814,
+     1879, 1297, 1326,    0, 6967, 4804,  904, 4794, 1325, 1317,
+     1928, 1324, 4781, 1990, 2055, 1222, 1367, 1378, 1236, 6967,
+     6967,  909, 6967,    0,    0, 1377, 1384, 1400, 1408, 6967,
+     6967, 6967, 4792, 6967, 6967, 1434, 1445, 6967, 6967, 1449,
+
+     6967,    0, 4769, 4749, 4755,  767, 4743, 4745,  658, 4741,
+     1060,  105,  743,  750, 4747, 1011, 4748, 4657, 4681, 6967,
+     1507, 1111, 1462, 1284,    0, 4652, 4662, 4652, 1136,  877,
+     1306,  685,  949, 4648,   22, 4648, 4641, 1400, 6967, 6967,
+     6967, 6967, 1240, 4676, 4675, 1263, 4690, 1527, 1471, 1400,
+     1535, 1545, 1546, 1551, 1562, 1564, 6967, 6967, 6967, 6967,
+     1516, 1278, 6967, 1347, 1358, 1410, 1428, 1488, 4642, 4642,
+     1331, 4652, 4651, 4648, 1420, 4633, 4630, 1230, 1530, 1609,
+     6967, 1618, 4666, 1632,    0,    0, 4635, 4637, 1246, 1101,
+     4678, 1640, 1536, 1641, 1663,    0, 6967, 1223,    0,    0,
+
+     4671, 1650, 1700, 1704, 4632, 4631, 1717, 1466, 1659, 1521,
+     2102, 1563, 2149, 2214, 2279, 1584, 4620, 4628, 4627, 1740,
+     1113, 1598,    0, 1737,    0, 1663, 1825, 1746, 4626, 4625,
+     1829, 1477, 1780, 1689, 2326, 1565, 2373, 2438, 2503, 1602,
+     1553, 6967, 1614, 1724, 1738, 1654, 1673, 1781, 1800, 1895,
+     1907, 2006, 1683, 1786, 2028, 1849, 1919, 1853, 2566, 1858,
+     2613, 2678, 2743, 1805, 1904, 1748, 6967, 1776, 1860, 1948,
+     1830, 1873, 1909, 1956, 1958, 2072, 2095, 1962, 1969, 2165,
+     1966, 2019, 2084, 2806, 2017, 2853, 2918, 2983, 2040, 2080,
+     1927, 6967, 1972, 2093, 2103, 1980, 2014, 2123, 2125, 2177,
+
+     2295, 2307, 2167, 2317, 2389, 2173, 2187, 2303, 3046, 2327,
+     3093, 3158, 3223, 2347, 2355,    0, 6967, 1347,    0,    0,
+     4662, 2342, 2384, 2503, 4623, 4621, 2515, 2089, 2401, 2092,
+     3270, 1704, 3317, 3382, 3447, 2134, 2200, 2405, 2412, 2519,
+     2531, 2544,    0, 4632, 4612, 4616, 4612, 4607, 4606, 4531,
+     4518, 4521,  920, 4512, 4520,  763, 4528, 4512, 4518, 4519,
+     4511, 4523, 4507, 4506, 4521, 4513, 4516, 6967, 2552, 2159,
+     2535, 2556, 2511,    0, 4507, 4509, 4517, 4506, 2531, 4495,
+     4514, 4505, 4494, 4501, 4499, 4504, 4490, 4488, 4488, 4485,
+     4501, 4493, 4500, 1393, 4524, 6967, 6967, 4510, 6967, 1410,
+
+     4510, 2574, 2761, 2584, 2624, 2625, 2626, 2765, 2755, 2771,
+     2543, 4486, 4475, 4397, 4423, 6967, 2635,    0,    0, 4400,
+     4393, 4400, 4389, 2285, 2645, 4390, 4387, 2776, 2163, 2584,
+     2624, 2631, 3494, 1569, 4427, 1790, 3541, 3606, 4379, 4386,
+     4383, 1895, 2823, 4384, 4381, 2853, 2346, 2649, 2770, 2653,
+     3653, 2306, 3700, 3765, 2881, 2769, 2576, 2999, 2810, 2885,
+     3011, 3007, 3828, 3031, 2820, 3033, 3875, 3940, 3040, 2782,
+     2837, 3109, 3060, 3121, 3131, 3066, 4003, 3074, 3001, 3253,
+     4050, 4115, 3248, 2796, 3079, 3255, 3117, 3275, 3333, 3341,
+     4178, 3299, 3013, 3477, 4225, 4290, 2894, 4382, 4379, 3328,
+
+     2375, 3125, 3223, 2861, 4337, 1894, 4419, 1947, 4384, 4449,
+     3288, 3344,    0, 4376, 4379, 4377, 4369, 4385, 4379, 4382,
+     4379, 4370, 4366,    0, 4372, 4372, 4372, 4356, 4363, 4360,
+     4363, 4361, 4346, 4316, 4332,    0, 4320, 4313, 4309, 4310,
+     4301, 4242, 4228, 4227, 4231, 6967, 4238, 4229, 4232, 4221,
+     4233, 4225,  864, 4231, 4217, 4218, 4224, 4217, 4229, 1949,
+     6967,    0, 4259, 6967, 2046, 6967,    0, 4247, 4262, 2795,
+     3030, 3459, 3460, 3476, 3470, 2425,    0, 4216, 4221, 4220,
+     4218, 3099, 3288, 3348, 3356, 4217, 4216, 2293,    0,    0,
+     4248, 2592,    0,    0, 4514, 4252, 4579, 4208, 2659, 4211,
+
+     4210, 1293, 1682, 3469, 3475, 4209, 4207, 2884,    0, 4644,
+     4238, 4709, 4194, 3499, 3557, 3522, 3527, 3681, 3687, 2759,
+     2772, 3268, 3368, 3732, 3856, 2908, 3048, 4774, 3497, 4839,
+     4168, 3566, 3571, 3673, 3676, 3862, 4031, 3054, 3123, 3559,
+     3591, 4037, 4206, 3250, 3262, 4904, 3593, 4969, 4167, 3725,
+     3729, 3848, 3851, 4212, 4365, 3280, 3463, 3749, 3751, 4371,
+     4412, 3474, 3504, 5034, 3595, 5099, 4164, 3513, 3737, 4166,
+     4159, 3015,    0,    0, 4191, 3116,    0,    0, 5164, 4195,
+     5229, 4151, 4137, 4142,    0, 4135, 3847,    0, 4136, 4150,
+     4131, 4146,    0, 4138, 4137, 4133, 4145, 4127, 4140, 4131,
+
+     4055, 4055, 3674, 4066, 4064, 6967, 4067, 6967, 4062, 6967,
+     4060, 4050, 6967, 6967, 4035, 4038, 4040, 4025, 4023, 4012,
+     3980, 3986, 3965, 3970, 3953, 3960, 4525, 4663, 4063, 4020,
+     6967, 3579,    0,    0, 3957,    0, 3817, 4188,    0,    0,
+     5294, 1044, 6967, 3932, 6967, 6967,  943,  826,    0,    0,
+     5359, 1123, 3683, 3689, 3691, 1167, 3831, 3833, 3788, 1984,
+     3838, 3840, 3795, 2729,    0,    0, 3811, 3306, 3891, 3887,
+        0, 3882, 3865, 3859, 3849, 3816, 3819, 3811, 3712,    0,
+     3719, 3699, 3683, 3678,    0, 3647, 3636, 3621, 3563, 3554,
+     3559,    0, 3531, 3507, 3491, 3463, 3453, 6967, 6967, 3417,
+
+     3412, 3397, 6967, 3331, 3310, 6967, 3300, 3274, 4238, 4354,
+     3896, 3897, 3912, 3993, 3996, 1697, 1960, 1061, 1492, 2000,
+     2289, 1737, 1886, 2366, 2498, 2848, 3534, 3684, 3857, 3227,
+     3864, 3230, 3214, 3215, 3197, 3206, 3193, 3095, 3095, 3040,
+     3030, 2999, 2973, 2969,    0, 2951, 2850, 2840, 2818, 2781,
+     2779, 2775, 2712, 6967, 2696, 2634, 2618, 2549, 6967, 2550,
+     6967, 3913, 4005, 3921, 2384, 4064, 2137, 2841, 1302, 1958,
+     3300, 3328, 1201, 1360, 1374, 1808, 2160, 2788, 3104, 3522,
+     2538, 2517, 2496, 2469, 2459, 2376, 2367, 2342, 2326,    0,
+     2283,    0, 2241, 2231, 2168, 2149,    0,    0, 2134, 2101,
+
+     2089, 2086, 2031, 2031, 2012, 6967, 1945, 1869, 1840, 1809,
+     1456, 1855, 1770, 1830, 1836, 1806, 3927, 4078, 4088, 4093,
+     4096, 4101, 2796, 1800,    0, 1707, 1659, 1628,    0, 1583,
+     1554, 1542, 1478,    0, 1466, 1438, 1431,    0, 1333, 1246,
+        0, 6967, 1239, 1221, 6967, 6967, 6967, 6967, 1214, 6967,
+        0, 3934, 4014, 4023,    0, 1144,  990,  989,  971,    0,
+      926,  897,  860,    0,    0,  807,    0, 6967,  798,  781,
+        0,  766,  675,    0,  367,  356,   61,    0, 6967, 6967,
+       23,    0,    0,    0,    0,    0, 6967, 5424, 5430, 5440,
+     5448, 5459, 5463, 5471, 5478, 5489, 5500, 5511, 5522, 5529,
+
+     5540, 5551, 5562, 5573, 5584, 5595, 5606, 5617, 5628, 5639,
+     5650, 5661, 5672, 5683, 5694, 5705, 5716, 5727, 5738, 5744,
+     5754, 5760, 5766, 5771, 5779, 5788, 5799, 5805, 5809, 5815,
+     5822, 5833, 5844, 5855, 5866, 5877, 5888, 5899, 5910, 5921,
+     5932, 5943, 5954, 5965, 5976, 5987, 5998, 6009, 6020, 6031,
+     6042, 6053, 6064, 6075, 6081, 6086, 6092, 6101, 6112, 6123,
+     6130, 6138, 6149, 6155, 6161, 6167, 6174, 6185, 6196, 6207,
+     6218, 6229, 6236, 6247, 6258, 6269, 6280, 6291, 6302, 6313,
+     6324, 6335, 6346, 6357, 6368, 6379, 6390, 6401, 6412, 6423,
+     6434, 6445, 6456, 6467, 6478, 6489, 6495, 6506, 6517, 6528,
+
+     6535, 6543, 6554, 6560, 6566, 6573, 6584, 6595, 6606, 6617,
+     6628, 6635, 6646, 6657, 6668, 6679, 6690, 6701, 6712, 6723,
+     6734, 6745, 6756, 6767, 6778, 6789, 6800, 6811, 6822, 6833,
+     6844, 6855, 6866, 6877, 6888, 6894, 6902, 6913, 6919, 6926,
+     6937, 6944, 6955
     } ;
 
-static yyconst flex_int16_t yy_def[1251] =
+static yyconst flex_int16_t yy_def[1244] =
     {   0,
-     1094,    1,    1,    3, 1094,    5, 1094,    7, 1094,    9,
-     1094,   11,    9,    9, 1094,   15, 1094,   17, 1094,   19,
-     1094,   21, 1094, 1094, 1094, 1094, 1094, 1094, 1095, 1094,
-     1096, 1094, 1094, 1097, 1094, 1094, 1094, 1094, 1094, 1094,
-     1094, 1094, 1094, 1094, 1094, 1094, 1098, 1098, 1098, 1098,
-     1098, 1098, 1098, 1098, 1094, 1094, 1094, 1094, 1099, 1094,
-     1094, 1094,   39, 1094, 1094, 1098, 1094, 1094, 1099, 1094,
-     1094, 1094, 1094, 1095, 1100, 1097, 1094, 1101,   41, 1094,
-     1094, 1102, 1102, 1102, 1094, 1094, 1099, 1103, 1094, 1103,
-     1104, 1105, 1103, 1103, 1103,   95, 1103, 1106, 1106, 1103,
-
-     1103, 1103, 1094, 1094,   41, 1094, 1107, 1107, 1094, 1108,
-     1108, 1109, 1108, 1108, 1108,  115, 1108, 1110, 1110, 1108,
-     1095, 1111, 1094, 1111, 1112, 1113, 1111, 1111, 1111,  129,
-     1111, 1114, 1114, 1111, 1111, 1115, 1094, 1115, 1116, 1117,
-     1115, 1115, 1115,  143, 1115, 1118, 1118, 1115, 1115, 1119,
-     1094, 1119, 1120, 1121, 1119, 1119, 1119,  157, 1119, 1122,
-     1122, 1119, 1119, 1123, 1094, 1123, 1124, 1125, 1123, 1123,
-     1123,  171, 1123, 1126, 1126, 1123, 1123, 1094, 1094, 1094,
-     1094, 1095, 1094, 1095, 1127, 1127, 1127, 1127, 1127, 1094,
-     1094, 1094, 1128, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
-
-     1094, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129,
-     1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1094, 1094,
-     1094, 1094, 1094, 1094, 1094, 1130, 1094, 1094, 1094, 1094,
-     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
-     1094, 1094, 1094, 1094, 1094, 1131, 1132, 1133, 1132, 1132,
-     1132, 1132, 1132, 1132, 1132, 1132, 1132, 1094, 1094, 1094,
-     1094, 1094, 1134, 1094, 1134, 1134, 1134, 1134, 1094, 1129,
-     1129, 1129, 1129, 1129, 1129, 1094, 1094, 1094, 1094, 1094,
-     1094, 1094, 1094, 1135, 1135, 1136, 1137, 1137, 1137, 1137,
-     1138, 1133, 1138, 1138, 1094, 1094, 1139, 1094, 1140, 1139,
-
-     1140, 1141, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139,
-     1139, 1139, 1139, 1139, 1142, 1094, 1142, 1139, 1139, 1094,
-     1094, 1094, 1131, 1094, 1143, 1144, 1143, 1143, 1143, 1143,
-     1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1145,
-     1094, 1145, 1143, 1146, 1094, 1146, 1147, 1147, 1146, 1147,
-     1148, 1148, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146,
-     1146, 1146, 1146, 1146, 1149, 1094, 1149, 1146, 1146, 1150,
-     1094, 1150, 1151, 1151, 1150, 1151, 1152, 1152, 1150, 1150,
-     1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150,
-     1153, 1094, 1153, 1150, 1150, 1154, 1094, 1154, 1155, 1155,
-
-     1154, 1155, 1156, 1156, 1154, 1154, 1154, 1154, 1154, 1154,
-     1154, 1154, 1154, 1154, 1154, 1154, 1157, 1094, 1157, 1154,
-     1154, 1158, 1094, 1159, 1158, 1159, 1160, 1158, 1158, 1158,
-     1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1161,
-     1094, 1161, 1158, 1094, 1162, 1162, 1162, 1162, 1094, 1163,
-     1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163,
-     1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163,
-     1163, 1163, 1163, 1163, 1094, 1094, 1094, 1094, 1094, 1094,
-     1164, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
-     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
-
-     1165, 1166, 1094, 1094, 1094, 1094, 1167, 1168, 1169, 1169,
-     1169, 1169, 1169, 1169, 1169, 1169, 1169, 1170, 1163, 1163,
-     1094, 1171, 1094, 1171, 1172, 1173, 1173, 1173, 1173, 1173,
-     1174, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175,
-     1176, 1177, 1178, 1179, 1094, 1175, 1094, 1094, 1180, 1181,
-     1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1182, 1183,
-     1094, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184,
-     1185, 1186, 1187, 1188, 1094, 1189, 1189, 1189, 1189, 1189,
-     1189, 1189, 1189, 1189, 1190, 1191, 1192, 1193, 1094, 1194,
-     1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1195, 1196,
-
-     1197, 1198, 1094, 1199, 1199, 1199, 1199, 1199, 1199, 1199,
-     1199, 1199, 1200, 1201, 1202, 1203, 1094, 1094, 1094, 1204,
-     1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204,
-     1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204,
-     1204, 1204, 1204, 1204, 1204, 1094, 1094, 1094, 1094, 1094,
-     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
-     1094, 1094, 1094, 1094, 1094, 1094, 1205, 1094, 1205, 1206,
-     1094, 1207, 1094, 1207, 1208, 1094, 1209, 1209, 1209, 1209,
-     1209, 1209, 1210, 1211, 1212, 1212, 1212, 1212, 1213, 1213,
-     1214, 1214, 1214, 1214, 1215, 1214, 1215, 1216, 1217, 1214,
-
-     1217, 1218, 1214, 1094,  704, 1214, 1094, 1094, 1219, 1219,
-     1220, 1220, 1220, 1220, 1221, 1220, 1222, 1220, 1094,  719,
-     1223, 1223, 1223, 1223, 1224, 1224, 1223, 1224, 1225, 1225,
-     1226, 1226, 1223, 1226, 1227, 1223, 1094,  737, 1228, 1228,
-     1228, 1228, 1229, 1229, 1228, 1229, 1230, 1230, 1231, 1231,
-     1228, 1231, 1232, 1228, 1094,  755, 1233, 1233, 1233, 1233,
-     1234, 1234, 1233, 1234, 1235, 1235, 1236, 1236, 1233, 1236,
-     1237, 1233, 1094,  773, 1238, 1238, 1238, 1238, 1239, 1238,
-     1239, 1240, 1241, 1238, 1241, 1242, 1238, 1094,  788, 1243,
-     1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243,
-
-     1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243,
-     1243, 1243, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
-     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
-     1094, 1094, 1094, 1244, 1244, 1244, 1244, 1094, 1245, 1246,
-     1246, 1246, 1246, 1247, 1247, 1248, 1248, 1094,  848, 1094,
-     1248, 1094, 1094, 1249, 1249, 1250, 1250, 1094,  858, 1223,
-     1223,  737,  737, 1228, 1228,  755,  755, 1233, 1233,  773,
-      773, 1238, 1238,  788,  788, 1243, 1243, 1243, 1243, 1243,
-     1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243,
-     1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1094,
-
-     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
-     1094, 1094, 1094, 1094, 1094, 1244, 1244, 1244, 1244, 1246,
-     1247, 1247,  848,  848, 1249, 1249,  858,  858,  737,  737,
-      755,  755,  773,  773,  788,  788, 1243, 1243, 1243, 1243,
-     1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243,
-     1243, 1243, 1243, 1243, 1243, 1243, 1094, 1094, 1094, 1094,
-     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1244, 1244,
-     1094, 1247, 1247,  848,  848, 1249, 1249,  858,  858,  737,
-      737,  755,  755,  773,  773,  788,  788, 1243, 1243, 1243,
-     1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243,
-
-     1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1094, 1094,
-     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1248,
-     1248, 1250, 1250, 1223, 1223, 1228, 1228, 1233, 1233, 1238,
-     1238, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243,
-     1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1094, 1094,
-     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1248, 1223, 1228,
-     1233, 1238, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243,
-     1243, 1243, 1243, 1243, 1094, 1094, 1094, 1243, 1243, 1243,
-     1243, 1243, 1243, 1243, 1243, 1094, 1094, 1243, 1243, 1243,
-     1243, 1243, 1243,    0, 1094, 1094, 1094, 1094, 1094, 1094,
-
-     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
-     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
-     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
-     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
-     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
-     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
-     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
-     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
-     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
-     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
-
-     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
-     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
-     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
-     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
-     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094
+     1087,    1,    1,    3, 1087,    5, 1087,    7, 1087,    9,
+     1087,   11,    9,    9, 1087,   15, 1087,   17, 1087,   19,
+     1087,   21, 1087, 1087, 1087, 1087, 1087, 1087, 1088, 1087,
+     1089, 1087, 1087, 1090, 1087, 1087, 1087, 1087, 1087, 1087,
+     1087, 1087, 1087, 1087, 1087, 1087, 1091, 1091, 1091, 1091,
+     1091, 1091, 1091, 1091, 1087, 1087, 1087, 1087, 1092, 1087,
+     1087, 1087,   39, 1087, 1087, 1091, 1087, 1087, 1092, 1087,
+     1087, 1087, 1087, 1088, 1093, 1090, 1087, 1094,   41, 1087,
+     1087, 1095, 1095, 1095, 1087, 1087, 1092, 1096, 1087, 1096,
+     1097, 1098, 1096, 1096, 1096,   95, 1096, 1099, 1099, 1096,
+
+     1096, 1096, 1087, 1087,   41, 1087, 1100, 1100, 1087, 1101,
+     1101, 1102, 1101, 1101, 1101,  115, 1101, 1103, 1103, 1101,
+     1088, 1104, 1087, 1104, 1105, 1106, 1104, 1104, 1104,  129,
+     1104, 1107, 1107, 1104, 1104, 1108, 1087, 1108, 1109, 1110,
+     1108, 1108, 1108,  143, 1108, 1111, 1111, 1108, 1108, 1112,
+     1087, 1112, 1113, 1114, 1112, 1112, 1112,  157, 1112, 1115,
+     1115, 1112, 1112, 1116, 1087, 1116, 1117, 1118, 1116, 1116,
+     1116,  171, 1116, 1119, 1119, 1116, 1116, 1087, 1087, 1087,
+     1087, 1088, 1087, 1088, 1120, 1120, 1120, 1120, 1120, 1087,
+     1087, 1087, 1121, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+
+     1087, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122,
+     1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1087, 1087,
+     1087, 1087, 1087, 1087, 1123, 1087, 1087, 1087, 1087, 1087,
+     1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+     1087, 1087, 1087, 1087, 1124, 1125, 1126, 1125, 1125, 1125,
+     1125, 1125, 1125, 1125, 1125, 1125, 1087, 1087, 1087, 1087,
+     1087, 1127, 1087, 1127, 1127, 1127, 1127, 1087, 1122, 1122,
+     1122, 1122, 1122, 1122, 1087, 1087, 1087, 1087, 1087, 1087,
+     1087, 1087, 1128, 1128, 1129, 1130, 1130, 1130, 1130, 1131,
+     1126, 1131, 1131, 1087, 1087, 1132, 1087, 1133, 1132, 1133,
+
+     1134, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132,
+     1132, 1132, 1135, 1087, 1135, 1132, 1132, 1087, 1087, 1087,
+     1124, 1087, 1136, 1137, 1136, 1136, 1136, 1136, 1136, 1136,
+     1136, 1136, 1136, 1136, 1136, 1136, 1138, 1087, 1138, 1136,
+     1139, 1087, 1139, 1140, 1140, 1139, 1140, 1141, 1141, 1139,
+     1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139,
+     1142, 1087, 1142, 1139, 1139, 1143, 1087, 1143, 1144, 1144,
+     1143, 1144, 1145, 1145, 1143, 1143, 1143, 1143, 1143, 1143,
+     1143, 1143, 1143, 1143, 1143, 1146, 1087, 1146, 1143, 1143,
+     1147, 1087, 1147, 1148, 1148, 1147, 1148, 1149, 1149, 1147,
+
+     1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147,
+     1150, 1087, 1150, 1147, 1147, 1151, 1087, 1152, 1151, 1152,
+     1153, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
+     1151, 1151, 1154, 1087, 1154, 1151, 1087, 1155, 1155, 1155,
+     1155, 1087, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156,
+     1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156,
+     1156, 1156, 1156, 1156, 1156, 1156, 1156, 1087, 1087, 1087,
+     1087, 1087, 1087, 1157, 1087, 1087, 1087, 1087, 1087, 1087,
+     1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+     1087, 1087, 1087, 1158, 1159, 1087, 1087, 1087, 1087, 1160,
+
+     1161, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162,
+     1163, 1156, 1156, 1087, 1164, 1087, 1164, 1165, 1166, 1166,
+     1166, 1166, 1166, 1167, 1168, 1168, 1168, 1168, 1168, 1168,
+     1168, 1168, 1168, 1169, 1170, 1171, 1172, 1087, 1168, 1087,
+     1087, 1173, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174,
+     1174, 1175, 1176, 1087, 1177, 1177, 1177, 1177, 1177, 1177,
+     1177, 1177, 1177, 1178, 1179, 1180, 1181, 1087, 1182, 1182,
+     1182, 1182, 1182, 1182, 1182, 1182, 1182, 1183, 1184, 1185,
+     1186, 1087, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187,
+     1187, 1188, 1189, 1190, 1191, 1087, 1192, 1192, 1192, 1192,
+
+     1192, 1192, 1192, 1192, 1192, 1193, 1194, 1195, 1196, 1087,
+     1087, 1087, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197,
+     1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197,
+     1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1087, 1087,
+     1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+     1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1198,
+     1087, 1198, 1199, 1087, 1200, 1087, 1200, 1201, 1087, 1202,
+     1202, 1202, 1202, 1202, 1202, 1203, 1204, 1205, 1205, 1205,
+     1205, 1206, 1206, 1207, 1207, 1207, 1207, 1208, 1207, 1208,
+     1209, 1210, 1207, 1210, 1211, 1207, 1087,  697, 1207, 1087,
+
+     1087, 1212, 1212, 1213, 1213, 1213, 1213, 1214, 1213, 1215,
+     1213, 1087,  712, 1216, 1216, 1216, 1216, 1217, 1217, 1216,
+     1217, 1218, 1218, 1219, 1219, 1216, 1219, 1220, 1216, 1087,
+      730, 1221, 1221, 1221, 1221, 1222, 1222, 1221, 1222, 1223,
+     1223, 1224, 1224, 1221, 1224, 1225, 1221, 1087,  748, 1226,
+     1226, 1226, 1226, 1227, 1227, 1226, 1227, 1228, 1228, 1229,
+     1229, 1226, 1229, 1230, 1226, 1087,  766, 1231, 1231, 1231,
+     1231, 1232, 1231, 1232, 1233, 1234, 1231, 1234, 1235, 1231,
+     1087,  781, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
+     1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
+
+     1236, 1236, 1236, 1236, 1236, 1087, 1087, 1087, 1087, 1087,
+     1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+     1087, 1087, 1087, 1087, 1087, 1087, 1237, 1237, 1237, 1237,
+     1087, 1238, 1239, 1239, 1239, 1239, 1240, 1240, 1241, 1241,
+     1087,  841, 1087, 1241, 1087, 1087, 1242, 1242, 1243, 1243,
+     1087,  851, 1216, 1216,  730,  730, 1221, 1221,  748,  748,
+     1226, 1226,  766,  766, 1231, 1231,  781,  781, 1236, 1236,
+     1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
+     1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
+     1236, 1236, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+
+     1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1237, 1237,
+     1237, 1237, 1239, 1240, 1240,  841,  841, 1242, 1242,  851,
+      851,  730,  730,  748,  748,  766,  766,  781,  781, 1236,
+     1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
+     1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1087,
+     1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+     1087, 1237, 1237, 1087, 1240, 1240,  841,  841, 1242, 1242,
+      851,  851,  730,  730,  748,  748,  766,  766,  781,  781,
+     1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
+     1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
+
+     1236, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+     1087, 1087, 1241, 1241, 1243, 1243, 1216, 1216, 1221, 1221,
+     1226, 1226, 1231, 1231, 1236, 1236, 1236, 1236, 1236, 1236,
+     1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
+     1236, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+     1241, 1216, 1221, 1226, 1231, 1236, 1236, 1236, 1236, 1236,
+     1236, 1236, 1236, 1236, 1236, 1236, 1236, 1087, 1087, 1087,
+     1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1087, 1087,
+     1236, 1236, 1236, 1236, 1236, 1236,    0, 1087, 1087, 1087,
+     1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+
+     1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+     1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+     1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+     1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+     1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+     1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+     1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+     1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+     1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+     1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+
+     1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+     1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+     1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+     1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+     1087, 1087, 1087
     } ;
 
-static yyconst flex_int16_t yy_nxt[7163] =
+static yyconst flex_int16_t yy_nxt[7033] =
     {   0,
        24,   25,   26,   27,   25,   28,   29,   30,   31,   32,
        33,   34,   35,   36,   37,   38,   39,   40,   41,   42,
@@ -848,16 +846,16 @@
        47,   47,   47,   47,   47,   47,   47,   49,   47,   50,
        47,   47,   51,   47,   52,   47,   47,   53,   47,   54,
        47,   47,   47,   55,   56,   57,  191,   58,   57,  183,
-      194,   67,  497,   68,   67, 1093,   85,  219,   86,   85,
-      192,  498,  195,  100,  220,  101,  100,  258,   59,   60,
-      183,   61,   60,   24,   69,  239,  240,   24,   24,   87,
-
-       24,   62,  184,   62,   63,   24,  102,  241,  242,  292,
-       64,   65,   24,   24,  109,  121,  109,  109,  120, 1092,
-      120,  120,  134,  184,  135,  134,  259,   41,   42,   42,
-       42,  148,  323,  149,  148,   47,  162,   47,  163,  162,
-       47,  176,   47,  177,  176,   66,  464,   47,  243,  244,
-      465,   24,   24,   70,   71,   72,   73,   71,   70,   74,
+      194,   67,  490,   68,   67, 1086,   85,  219,   86,   85,
+      192,  491,  195,  100,  220,  101,  100,  257,   59,   60,
+      183,   61,   60,   24,   69,  238,  239,   24,   24,   87,
+
+       24,   62,  184,   62,   63,   24,  102,  240,  241,  291,
+       64,   65,   24,   24,  109,  121,  109,  109,  120, 1085,
+      120,  120,  134,  184,  135,  134,  258,   41,   42,   42,
+       42,  148,  321,  149,  148,   47,  162,   47,  163,  162,
+       47,  176,   47,  177,  176,   66,  457,   47,  242,  243,
+      458,   24,   24,   70,   71,   72,   73,   71,   70,   74,
        70,   75,   70,   70,   76,   70,   77,   70,   77,   78,
        70,   79,   80,   80,   80,   70,   81,   70,   70,   82,
        82,   82,   82,   82,   82,   83,   82,   83,   82,   83,
@@ -886,8 +884,8 @@
       118,  118,  118,  118,  118,  118,  118,  118,  118,  118,
 
       118,  118,  118,  118,  118,  119,  118,  118,  118,  118,
-      118,  110,  110,  109, 1091,  109,  109,  186,  121,  187,
-      246,  188,  189,  269, 1090,  269,  269,  292,  345,  346,
+      118,  110,  110,  109, 1084,  109,  109,  186,  121,  187,
+      245,  188,  189,  268, 1083,  268,  268,  291,  342,  343,
        41,   42,   42,   42,  122,  122,  123,  124,  122,  122,
       125,  122,  122,  122,  122,  126,  122,  127,  122,  127,
       128,  122,  129,  130,  130,  130,  122,  131,  122,  122,
@@ -916,722 +914,708 @@
       174,  174,  174,  174,  174,  174,  174,  174,  164,  174,
       174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
       174,  174,  174,  174,  174,  174,  175,  174,  174,  174,
-      174,  174,  164,  164,  178,  300,  178,  178,  178,  180,
+      174,  174,  164,  164,  178,  299,  178,  178,  178,  180,
 
-      178,  178,  196,  458,  197,  197,  197,  197,  459,  179,
-      198,  245,  196,  179,  197,  197,  197,  197,  246, 1089,
-      199,  200,  200,  200,  200,  248,  492,  201,  301,  202,
+      178,  178,  196,  451,  197,  197,  197,  197,  452,  179,
+      198,  244,  196,  179,  197,  197,  197,  197,  245, 1082,
+      199,  200,  200,  200,  200,  247,  485,  201,  300,  202,
       202,  202,  202,  202,  203,  202,  202,  202,  202,  202,
-      202,  202,  493,  202,  204,  205,  206,  202,  207,  208,
+      202,  202,  486,  202,  204,  205,  206,  202,  207,  208,
       209,  202,  210,  211,  212,  213,  202,  214,  202,  215,
-      216,  217,  202,  202,  202,  218,  221,  245,  197,  197,
-      197,  197,  471,  245,  246,  245, 1018,  245,  222,  223,
-      246,  248,  246,  224,  246,  225,  472,  248,  226,  248,
-      260,  248,  222,  325,  292,  223,  221,  193,  197,  197,
-
-      197,  197,  327,  225,  280,  245,  280,  280, 1088,  223,
-      254,  226,  246,  224,  255,  249,  249,  249,  249,  248,
-      250,  264,  265,  826,  253,  223,  227,  256,  228,  629,
-      261,  229,  827,  245,  230,  231,  232,  233,  234,  235,
-      246,  245,  236,  246,  237,  238,  630,  248,  246,  262,
-      292,  262,  262,  264,  265,  248,  245,  262,  180,  262,
-      262,  487,  268,  246,  179,  269,  180,  269,  269,  488,
-      248,  251,  179,  294, 1087,  266,  267,  252,  196,  227,
-      197,  197,  197,  197,  183,  257,  425,  276,  231,  232,
-      277,  278,  235,  255,  268, 1094,  345,  346,  238,  280,
-
-      180,  280,  280,  281,  282,  283,  281,  281,  282,  283,
-      281,  264,  265,  202,  270, 1086,  202,  184,  202,  426,
-      271,  272,  273,  274,  466,  275,  467,  202,  202,  202,
-      285,  292,  285,  202,  285,  285,  196,  286,  197,  197,
-      197,  197,  295,  282,  296,  295, 1024,  200,  200,  200,
-      200,  221,  268,  197,  197,  197,  197,  295,  282,  296,
-      295,  345,  346,  468,  223,  469,  246,  549,  224,  293,
-      293,  293,  293,  292,  288,  289,  371,  372, 1085,  290,
-      223,  303,  364,  304,  304,  304,  304,  305,  305,  305,
-      305,  365,  318,  297,  318,  318,  318,  298,  318,  318,
-
-      297,  494,  324,  297,  324,  324,  495,  297,  200,  200,
-      200,  200,  345,  352,  343,  306,  343,  343,  297,  307,
-      308,  349,  304,  304,  304,  304,  297,  322,  322,  322,
-      322,  325,  309,  310,  371,  372,  320,  311,  325,  312,
-      321,  325,  313,  397,  398,  325,  309,  895,  328,  310,
-      329,  329,  329,  329,  371,  378,  325,  312,  368,  345,
-      369,  368,  896,  375,  325,  313,  297,  297,  897,  297,
-      297,  297,  297,  297,  297,  297,  297,  297,  297,  297,
-      297, 1084,  297,  297,  330,  330,  330,  330,  316,  297,
-      297,  297,  633,  221,  634,  322,  322,  322,  322,  368,
-
-      345,  369,  368,  397,  398,  297,  223,  345,  346,  315,
-      224,  924,  331,  345,  348,  501,  332,  349,  397,  404,
-      502,  353,  223,  354,  354,  354,  354,  401, 1083,  297,
-      297,  297,  297,  503,  297,  297,  297,  297,  297,  297,
-      297,  297,  297,  297,  297,  297,  365,  297,  297,  930,
-      350,  371,  372,  316,  297,  297,  297,  344,  394,  371,
-      395,  394,  345,  346,  344,  371,  374,  344,  501,  375,
-      297,  344,  390,  502,  183, 1082,  317,  454,  355,  355,
-      355,  355,  344,  394,  371,  395,  394,  397,  400,  455,
-      344,  401,  477,  477,  297,  297,  333, 1081,  329,  329,
-
-      329,  329,  376,  480,  480,  480,  356,  184,  334,  335,
-      357,  397,  398,  336,  443,  337,  443,  443,  338,  980,
-      371,  372,  334,  365,  402,  335,  420,  397,  421,  420,
-      485,  486,  416,  337,  379, 1080,  380,  380,  380,  380,
-      529,  338,  325,  325,  325,  325,  325,  325,  530,  325,
-      325,  325,  325,  325,  325,  325,  325, 1079,  325,  325,
-      420,  397,  421,  420,  341,  325,  325,  325,  397,  398,
-      428,  300,  429,  429,  429,  429,  504,  505,  371,  372,
-      391,  325,  405,  932,  406,  406,  406,  406,  443,  423,
-      443,  443,  264,  265,  381,  381,  381,  381,  178, 1020,
-
-      178,  178,  264,  265,  301,  325,  325,  325,  325,  325,
-      325,  325,  325,  179,  325,  325,  325,  325,  325,  325,
-      325,  325,  382,  325,  325, 1078,  383,  425,  370,  341,
-      325,  325,  325,  489,  396,  370,  246,  490,  370,  397,
-      398,  396,  370,  292,  396,  315,  325,  444,  396,  444,
-      444,  491,  342,  370,  292,  407,  407,  407,  407,  396,
-      426,  370,  445,  445,  445,  445, 1077,  396,  264,  265,
-      325,  325,  345,  346,  430,  430,  430,  430,  446,  446,
-      446,  446,  925,  408,  264,  265,  358,  409,  354,  354,
-      354,  354,  447,  447,  447,  447,  668,  422,  359,  360,
-
-      485,  521,  431,  361,  422,  362,  432,  422,  363,  536,
-      536,  422,  359, 1076,  245,  360,  448,  448,  448,  448,
-     1075,  246,  422,  362,  200,  200,  200,  200,  248,  669,
-      422,  363,  344,  344,  345,  346,  344,  344,  344,  344,
-      344,  344,  344,  344,  344,  344,  344,  673,  344,  344,
-      269,  245,  269,  269,  366,  344,  344,  344,  246,  221,
-      292,  197,  197,  197,  197,  248,  200,  200,  200,  200,
-      461,  344,  223, 1074,  462,  245,  224,  449,  463,  478,
-      674,  478,  246,  976,  479,  479,  479,  479,  223,  248,
-      539,  539,  539,  449, 1019,  344,  344,  344,  344,  345,
-
-      346,  344,  344,  344,  344,  344,  344,  344,  344,  344,
-      344,  344,  292,  344,  344,  264,  265,  512,  513,  366,
-      344,  344,  344,  476,  476,  476,  476,  461,  554,  554,
-      246,  462, 1073,  245,  449,  520,  344,  292,  345,  346,
-      246,  245,  367,  509,  509,  509,  509,  248,  246,  541,
-      449,  245,  245,  417,  542,  248,  934,  245,  246,  246,
-      344,  344,  371,  372,  246,  248,  248, 1072,  245,  501,
-      245,  248,  518,  531,  559,  246,  384,  246,  380,  380,
-      380,  380,  248,  280,  248,  280,  280,  514,  385,  386,
-      340,  510,  928,  387,  262,  388,  262,  262,  389,  345,
-
-      346,  511,  385,  345,  346,  386, 1071,  515,  318,  179,
-      318,  318,  517,  388,  345,  348,  516,  281,  282,  283,
-      281,  389,  370,  370,  371,  372,  370,  370,  370,  370,
-      370,  370,  370,  370,  370,  370,  370, 1070,  370,  370,
-      281,  282,  283,  281,  392,  370,  370,  370,  524,  524,
-      524,  524,  523,  246,  345,  346,  293,  293,  293,  293,
-      292,  370,  295,  282,  296,  295,  295,  282,  296,  295,
-      305,  305,  305,  305,  537,  324,  537,  324,  324,  538,
-      538,  538,  538,  371,  372,  370,  370,  370,  370,  371,
-      372,  370,  370,  370,  370,  370,  370,  370,  370,  370,
-
-      370,  370, 1069,  370,  370,  330,  330,  330,  330,  392,
-      370,  370,  370, 1018,  308, 1057,  304,  304,  304,  304,
-      371,  372,  305,  305,  305,  305,  370,  310,  557,  557,
-      557,  311,  393,  532,  535,  535,  535,  535,  325,  345,
-      352,  613,  193,  310, 1068,  532,  614,  327,  349,  532,
-      370,  370,  397,  398,  343,  292,  343,  343,  345,  352,
-      221,  532,  322,  322,  322,  322,  410,  349,  406,  406,
-      406,  406, 1067,  223,  371,  372,  292,  224,  411,  412,
-      345,  346,  854,  413, 1066,  414,  345,  346,  415,  223,
-      981,  555,  411,  555,  365,  412,  556,  556,  556,  556,
-
-      709,  345,  348,  414,  710,  349,  368,  345,  369,  368,
-     1065,  415,  396,  396,  397,  398,  396,  396,  396,  396,
-      396,  396,  396,  396,  396,  396,  396,  563,  396,  396,
-      371,  374,  292,  564,  418,  396,  396,  396,  350,  333,
-      292,  329,  329,  329,  329,  974,  330,  330,  330,  330,
-      315,  396,  335,  345,  346,  977,  336,  550,  345,  348,
-      371,  372,  349,  368,  345,  369,  368,  855,  335,  355,
-      355,  355,  355,  550, 1064,  396,  396,  396,  396,  397,
-      398,  396,  396,  396,  396,  396,  396,  396,  396,  396,
-      396,  396, 1063,  396,  396,  350,  345,  346,  879,  418,
-
-      396,  396,  396,  553,  553,  553,  553,  345,  346,  371,
-      378,  880,  566,  566,  550,  982,  396,  881,  375,  391,
-      345,  346,  419,  355,  355,  355,  355,  696,  371,  374,
-      550,  567,  375,  567,  562, 1031,  568,  568,  568,  568,
-      396,  396,  433,  700,  429,  429,  429,  429,  371,  374,
-      562, 1023,  375,  975,  434,  435,  345,  346,  315,  436,
-      697,  437,  371,  372,  438,  376,  345,  346,  434, 1025,
-      571,  435,  569,  569,  569,  572,  701,  371,  378,  437,
-      397,  398, 1021,  371,  372,  376,  375,  438,  422,  422,
-     1019,  422,  422,  422,  422,  422,  422,  422,  422,  422,
-
-      422,  422,  422, 1056,  422,  422,  345,  346,  292,  577,
-      441,  422,  422,  422,  365,  371,  372,  780,  371,  372,
-      397,  398,  565,  565,  565,  565, 1055,  422,  371,  372,
-      578,  580,  580,  562,  381,  381,  381,  381,  926,  371,
-      372,  397,  398,  585,  381,  381,  381,  381,  586,  562,
-      781,  422,  422,  422,  422,  576,  422,  422,  422,  422,
-      422,  422,  422,  422,  422,  422,  422,  422, 1054,  422,
-      422,  576,  371,  372, 1053,  441,  422,  422,  422,  394,
-      371,  395,  394, 1052,  371,  372,  397,  400,  579,  579,
-      579,  579,  422,  371,  372,  581, 1051,  581,  442,  576,
-
-      582,  582,  582,  582,  394,  371,  395,  394,  983,  583,
-      583,  583,  391,  397,  404,  576,  422,  422,  540,  540,
-      540,  540,  401,  397,  404,  397,  398,  540,  540,  540,
-      397,  400,  401, 1050,  401,  784,  397,  400,  397,  398,
-      401,  540,  540,  540,  540,  540,  540,  297,  297, 1049,
-      297,  297,  297,  297,  297,  297,  297,  297,  297,  297,
-      297,  297, 1048,  297,  297,  397,  398,  402,  785,  316,
-      297,  297,  297,  402,  397,  398,  397,  398,  608,  608,
-     1047,  407,  407,  407,  407,  591,  297,  595, 1046,  595,
-      594,  594,  596,  596,  596,  596,  397,  398,  477,  477,
-
-      599,  420,  397,  421,  420,  600,  420,  397,  421,  420,
-      297,  297,  297,  297, 1045,  297,  297,  297,  543,  297,
-      297,  297,  297,  297,  297,  297,  297,  297,  297,  297,
-      297,  297,  297,  297,  297,  297,  297,  297,  544,  544,
-      544,  544,  544,  544,  544,  544,  544,  544,  544,  544,
-      544,  297,  544,  544,  544,  544,  544,  544,  544,  544,
-      544,  544,  544,  544,  544,  544,  544,  544,  544,  544,
-      544,  544,  544,  544,  544,  297,  297,  297,  297, 1044,
-      297,  297,  297,  297,  297,  297,  297,  297,  297,  297,
-      297,  297,  978,  297,  297,  397,  398,  340,  650,  316,
-
-      297,  297,  297,  397,  398,  979,  651,  397,  398,  652,
-      340,  407,  407,  407,  407, 1043,  297,  430,  430,  430,
-      430, 1042,  590,  597,  597,  597,  536,  536,  430,  430,
-      430,  430,  611,  611,  611,  545,  264,  265,  590,  604,
-      297,  297,  558,  558,  558,  558,  443, 1041,  443,  443,
-      592,  558,  558,  558,  609,  604,  609,  554,  554,  610,
-      610,  610,  610,  608,  608,  558,  558,  558,  558,  558,
-      558,  325,  325,  325,  325,  325,  325, 1040,  325,  325,
-      325,  325,  325,  325,  325,  325, 1018,  325,  325,  397,
-      398, 1039,  683,  341,  325,  325,  325,  246,  433, 1038,
-
-      429,  429,  429,  429,  292,  593,  593,  593,  593, 1037,
-      325,  435,  480,  480,  480,  436,  590,  444, 1036,  444,
-      444,  445,  445,  445,  445,  838,  839,  435,  446,  446,
-      446,  446,  590, 1035,  325,  325,  325,  325,  325,  325,
-      325,  325,  507,  325,  325,  325,  325,  325,  325,  325,
-      325,  325,  325,  325,  325,  325,  325,  325,  325,  325,
-      325,  325,  560,  560,  560,  560,  560,  560,  560,  560,
-      560,  560,  560,  560,  560,  325,  560,  560,  560,  560,
-      560,  560,  560,  560,  560,  560,  560,  560,  560,  560,
-      560,  560,  560,  560,  560,  560,  560,  560,  560,  325,
-
-      325,  325,  325,  325,  325,  325,  325, 1034,  325,  325,
-      325,  325,  325,  325,  325,  325, 1033,  325,  325,  607,
-      607,  607,  607,  341,  325,  325,  325,  539,  539,  539,
-      604,  447,  447,  447,  447,  448,  448,  448,  448,  984,
-      325,  985,  618,  417,  618,  417,  604,  619,  619,  619,
-      619,  476,  476,  476,  476,  479,  479,  479,  479,  561,
-      850,  851,  449, 1032,  325,  325,  345,  346,  479,  479,
-      479,  479,  245, 1017,  245,  557,  557,  557,  449,  246,
-      358,  246,  354,  354,  354,  354,  248,  245,  248,  245,
-      668,  245,  245,  360,  246,  246,  246,  361,  246,  246,
-
-      245,  248,  292,  248, 1016,  248,  248,  246,  245,  360,
-      345,  346,  325,  246,  248,  246,  670,  345,  346,  677,
-      292,  716,  248,  669,  345,  346,  570,  570,  570,  570,
-      921,  678,  245,  566,  566,  570,  570,  570,  679,  246,
-      345,  346,  680,  673,  689,  682,  248, 1021,  690,  570,
-      570,  570,  570,  570,  570,  344,  344,  345,  346,  344,
-      344,  344,  344,  344,  344,  344,  344,  344,  344,  344,
-     1015,  344,  344,  681,  724, 1014,  674,  366,  344,  344,
-      344,  524,  524,  524,  524,  523,  538,  538,  538,  538,
-      691, 1013,  691,  315,  344,  692,  692,  692,  692,  538,
-
-      538,  538,  538,  711, 1012,  711,  345,  726,  712,  712,
-      712,  712,  556,  556,  556,  556,  345,  346,  344,  344,
-      344,  344,  345,  346,  344,  344,  573,  344,  344,  344,
-      344,  344,  344,  344,  344,  344,  344,  344,  344,  344,
-      344,  344,  344,  344,  344,  344,  574,  574,  574,  574,
-      574,  574,  574,  574,  574,  574,  574,  574,  574,  344,
-      574,  574,  574,  574,  574,  574,  574,  574,  574,  574,
-      574,  574,  574,  574,  574,  574,  574,  574,  574,  574,
-      574,  574,  574,  344,  344,  344,  344,  345,  346,  344,
-      344,  344,  344,  344,  344,  344,  344,  344,  344,  344,
-
-      696,  344,  344,  535,  535,  535,  535,  366,  344,  344,
-      344,  345,  346, 1011,  532,  553,  553,  553,  553,  556,
-      556,  556,  556,  986,  344,  700,  550,  440,  345,  346,
-      532,  345,  730,  697,  371,  372,  345,  346, 1010,  721,
-      727,  721,  550,  575,  722,  722,  722,  722,  344,  344,
-      371,  372,  565,  565,  565,  565,  345,  346,  701,  723,
-      611,  611,  611,  562,  384, 1009,  380,  380,  380,  380,
-      345,  346,  568,  568,  568,  568,  987,  386,  245,  562,
-      440,  387,  345,  346,  742,  246,  568,  568,  568,  568,
-      371,  372,  248,  386,  371,  372,  371,  748,  569,  569,
-
-      569,  739, 1020,  739, 1058,  745,  740,  740,  740,  740,
-      584,  584,  584,  584,  371,  372,  397,  398, 1008,  584,
-      584,  584,  345,  726,  371,  372,  727,  780,  345,  732,
-      580,  580,  733,  584,  584,  584,  584,  584,  584,  370,
-      370,  371,  372,  370,  370,  370,  370,  370,  370,  370,
-      370,  370,  370,  370, 1026,  370,  370,  371,  372,  728,
-      781,  392,  370,  370,  370,  734,  760,  345,  732,  371,
-      372, 1007,  741,  579,  579,  579,  579, 1006,  370,  371,
-      372,  397,  766, 1005,  576,  582,  582,  582,  582, 1004,
-      763,  610,  610,  610,  610,  582,  582,  582,  582,  391,
-
-      576, 1003,  370,  370,  370,  370,  371,  372,  370,  370,
-      587,  370,  370,  370,  370,  370,  370,  370,  370,  370,
-      370,  370,  370,  370,  370,  370,  370,  370,  370,  370,
-      588,  588,  588,  588,  588,  588,  588,  588,  588,  588,
-      588,  588,  588,  370,  588,  588,  588,  588,  588,  588,
-      588,  588,  588,  588,  588,  588,  588,  588,  588,  588,
-      588,  588,  588,  588,  588,  588,  588,  370,  370,  370,
-      370,  371,  372,  370,  370,  370,  370,  370,  370,  370,
-      370,  370,  370,  370, 1002,  370,  370,  371,  372,  397,
-      398,  392,  370,  370,  370, 1027,  345,  346,  397,  398,
-
-      573,  397,  398,  583,  583,  583,  371,  744,  370,  784,
-      745, 1001,  371,  750,  594,  594,  751,  596,  596,  596,
-      596,  397,  762,  246,  245,  763, 1000,  589,  397,  398,
-      292,  246,  370,  370,  397,  398,  999,  759,  248,  757,
-      391,  757,  785,  746,  758,  758,  758,  758,  410,  752,
-      406,  406,  406,  406,  998,  397,  398,  844,  764,  997,
-      325,  412,  397,  768,  670,  413,  769,  397,  398,  716,
-      996,  593,  593,  593,  593,  397,  398,  412,  397,  398,
-      371,  372,  590,  596,  596,  596,  596,  610,  610,  610,
-      610,  597,  597,  597,  598,  598,  598,  598,  590,  770,
-
-      371,  744,  245,  598,  598,  598,  775,  440,  775,  246,
-      936,  776,  776,  776,  776, 1022,  248,  598,  598,  598,
-      598,  598,  598,  396,  396,  397,  398,  396,  396,  396,
-      396,  396,  396,  396,  396,  396,  396,  396,  995,  396,
-      396,  607,  607,  607,  607,  418,  396,  396,  396,  371,
-      372,  837,  604,  619,  619,  619,  619,  619,  619,  619,
-      619,  340,  396,  692,  692,  692,  692,  994,  604,  692,
-      692,  692,  692,  712,  712,  712,  712,  712,  712,  712,
-      712,  371,  750,  397,  398,  993,  396,  396,  396,  396,
-      397,  398,  396,  396,  601,  396,  396,  396,  396,  396,
-
-      396,  396,  396,  396,  396,  396,  396,  396,  396,  396,
-      396,  396,  396,  396,  602,  602,  602,  602,  602,  602,
-      602,  602,  602,  602,  602,  602,  602,  396,  602,  602,
-      602,  602,  602,  602,  602,  602,  602,  602,  602,  602,
-      602,  602,  602,  602,  602,  602,  602,  602,  602,  602,
-      602,  396,  396,  396,  396,  397,  398,  396,  396,  396,
-      396,  396,  396,  396,  396,  396,  396,  396,  992,  396,
-      396,  988,  245,  245,  968,  418,  396,  396,  396,  246,
-      246,  245,  345,  346,  397,  762,  248,  248,  246,  246,
-      345,  346,  396,  345,  346,  248,  292,  967,  722,  722,
-
-      722,  722,  966,  345,  730,  965,  722,  722,  722,  722,
-      964,  603,  727,  834,  835,  963,  396,  396,  612,  612,
-      612,  612, 1022,  845, 1057,  836,  962,  612,  612,  612,
-      345,  346,  961,  371,  372,  960,  860,  587,  959,  371,
-      372,  612,  612,  612,  612,  612,  612,  422,  422,  958,
-      422,  422,  422,  422,  422,  422,  422,  422,  422,  422,
-      422,  422, 1028,  422,  422,  345,  730,  397,  398,  441,
-      422,  422,  422,  861,  727,  371,  372,  345,  726,  371,
-      372,  727,  864,  397,  768,  957,  422,  397,  398,  838,
-      265,  740,  740,  740,  740,  740,  740,  740,  740,  371,
-
-      748,  345,  346,  758,  758,  758,  758,  417,  745,  956,
-      422,  422,  422,  422,  728,  422,  422,  422,  615,  422,
-      422,  422,  422,  422,  422,  422,  422,  422,  422,  422,
-      422,  422,  422,  422,  422,  422,  422,  422,  616,  616,
-      616,  616,  616,  616,  616,  616,  616,  616,  616,  616,
-      616,  422,  616,  616,  616,  616,  616,  616,  616,  616,
-      616,  616,  616,  616,  616,  616,  616,  616,  616,  616,
-      616,  616,  616,  616,  616,  422,  422,  422,  422,  955,
-      422,  422,  422,  422,  422,  422,  422,  422,  422,  422,
-      422,  422, 1029,  422,  422,  371,  372,  371,  748,  441,
-
-      422,  422,  422, 1023,  397,  398,  745,  397,  398,  345,
-      726,  345,  732,  727,  954,  733,  422,  345,  732,  371,
-      744,  733,  953,  745,  371,  744,  371,  750,  745, 1030,
-      751, 1062,  397,  398,  952,  617,  601,  417,  865,  951,
-      422,  422,  540,  540,  540,  540,  728,  868,  734,  340,
-      869,  540,  540,  540,  734,  246,  746,  776,  776,  776,
-      776,  746,  292,  752,  950,  540,  540,  540,  540,  540,
-      540,  297,  297,  949,  297,  297,  297,  297,  297,  297,
-      297,  297,  297,  297,  297,  297,  948,  297,  297,  947,
-      397,  398,  922,  703,  297,  297,  297,  776,  776,  776,
-
-      776,  371,  750,  397,  766,  751,  758,  758,  758,  758,
-      297,  946,  763,  397,  766,  345,  346,  365,  929,  371,
-      372,  945,  763,  371,  372,  391,  931,  397,  398,  397,
-      398,  417,  933,  944,  297,  297,  297,  297,  752,  297,
-      297,  297,  297,  297,  297,  297,  297,  297,  297,  297,
-      297,  315,  297,  297,  315,  315,  315,  315,  316,  297,
-      297,  297,  315,  315,  315,  315,  315,  315,  315,  315,
-      315,  315,  315,  315,  315,  297,  315,  315,  315,  315,
-      315,  315,  704,  315,  315,  315,  705,  315,  315,  315,
-      315,  315,  315,  315,  315,  315,  315,  315,  315,  297,
-
-      297,  558,  558,  558,  558,  440,  935,  943,  245,  942,
-      558,  558,  558,  397,  762,  246,  941,  763,  940,  397,
-      762,  939,  248,  763,  558,  558,  558,  558,  558,  558,
-      325,  325,  325,  325,  325,  325,  938,  325,  325,  325,
-      325,  325,  325,  325,  325, 1030,  325,  325,  345,  346,
-      764,  246,  718,  325,  325,  325,  764,  919,  292,  245,
-      245, 1019,  937,  989,  397,  768,  246,  246,  769,  325,
-      371,  372,  246,  248,  248,  971,  990,  971,  971,  292,
-      850,  972,  991,  971,  920,  971,  971,  345,  346, 1024,
-      440, 1059,  915,  325,  325,  325,  325,  325,  325,  325,
-
-      325,  770,  325,  325,  325,  325,  325,  325,  325,  325,
-      340,  325,  325,  340,  340,  340,  340,  341,  325,  325,
-      325,  340,  340,  340,  340,  340,  340,  340,  340,  340,
-      340,  340,  340,  340,  325,  340,  340,  340,  340,  340,
-      340,  719,  340,  340,  340,  720,  340,  340,  340,  340,
-      340,  340,  340,  340,  340,  340,  340,  340,  325,  325,
-      345,  346, 1018,  246, 1019,  914,  245,  913,  245,  912,
-      292,  397,  398,  246,  911,  246,  570,  570,  570,  570,
-      248,  910,  248,  245,  245,  570,  570,  570,  397,  768,
-      246,  246,  769,  973, 1031,  909,  908,  248,  248,  570,
-
-      570,  570,  570,  570,  570,  344,  344,  345,  346,  344,
-      344,  344,  344,  344,  344,  344,  344,  344,  344,  344,
-      969,  344,  344,  907,  245,  770,  916,  736,  344,  344,
-      344,  246,  345,  346, 1025,  371,  372, 1027,  248,  440,
-      906,  371,  372, 1026,  344, 1060,  397,  398, 1028,  905,
-     1061,  397,  398, 1029,  904,  903,  902,  901,  900,  899,
-      898,  894,  893,  918,  892,  891,  890,  889,  344,  344,
-      344,  344,  345,  346,  344,  344,  344,  344,  344,  344,
-      344,  344,  344,  344,  344,  365,  344,  344,  365,  365,
-      365,  365,  366,  344,  344,  344,  365,  365,  365,  365,
-
-      365,  365,  365,  365,  365,  365,  365,  365,  365,  344,
-      365,  365,  365,  365,  365,  365,  737,  365,  365,  365,
-      738,  365,  365,  365,  365,  365,  365,  365,  365,  365,
-      365,  365,  365,  344,  344,  371,  372,  888,  887,  886,
-      885,  884,  883,  882,  878,  877,  876,  875,  615,  780,
-      873,  584,  584,  584,  584,  872,  245,  871,  245,  867,
-      584,  584,  584,  246,  863,  246,  859,  507,  857,  856,
-      248,  853,  248,  852,  584,  584,  584,  584,  584,  584,
-      370,  370,  371,  372,  370,  370,  370,  370,  370,  370,
-      370,  370,  370,  370,  370,  970,  370,  370,  849,  543,
-
-      917,  696,  754,  370,  370,  370,  847,  846,  843,  842,
-      841,  840,  507,  676,  668,  833,  832,  831,  830,  370,
-      829,  828,  825,  824,  823,  822,  821,  820,  819,  818,
-      817,  816,  815,  814,  813,  812,  811,  810,  809,  808,
-      807,  806,  805,  370,  370,  370,  370,  371,  372,  370,
-      370,  370,  370,  370,  370,  370,  370,  370,  370,  370,
-      391,  370,  370,  391,  391,  391,  391,  392,  370,  370,
-      370,  391,  391,  391,  391,  391,  391,  391,  391,  391,
-      391,  391,  391,  391,  370,  391,  391,  391,  391,  391,
-      391,  755,  391,  391,  391,  756,  391,  391,  391,  391,
-
-      391,  391,  391,  391,  391,  391,  391,  391,  370,  370,
-      397,  398,  804,  803,  802,  801,  800,  799,  798,  797,
-      796,  795,  794,  793,  792,  791,  598,  598,  598,  598,
-      790,  780,  778,  777,  714,  598,  598,  598,  713,  708,
-      707,  706,  696,  694,  693,  688,  687,  686,  685,  598,
-      598,  598,  598,  598,  598,  396,  396,  397,  398,  396,
-      396,  396,  396,  396,  396,  396,  396,  396,  396,  396,
-      523,  396,  396,  650,  633,  629,  676,  772,  396,  396,
-      396,  671,  668,  666,  665,  664,  663,  662,  661,  660,
-      659,  658,  657,  656,  396,  655,  654,  653,  649,  648,
-
-      647,  646,  645,  644,  643,  642,  641,  640,  639,  638,
-      637,  636,  635,  632,  631,  628,  627,  626,  396,  396,
-      396,  396,  397,  398,  396,  396,  396,  396,  396,  396,
-      396,  396,  396,  396,  396,  417,  396,  396,  417,  417,
-      417,  417,  418,  396,  396,  396,  417,  417,  417,  417,
-      417,  417,  417,  417,  417,  417,  417,  417,  417,  396,
-      417,  417,  417,  417,  417,  417,  773,  417,  417,  417,
-      774,  417,  417,  417,  417,  417,  417,  417,  417,  417,
-      417,  417,  417,  396,  396,  612,  612,  612,  612,  625,
-      624,  623,  622,  621,  612,  612,  612,  620,  606,  605,
-
-      425,  552,  551,  548,  547,  546,  534,  533,  612,  612,
-      612,  612,  612,  612,  422,  422,  300,  422,  422,  422,
-      422,  422,  422,  422,  422,  422,  422,  422,  422,  507,
-      422,  422,  528,  527,  523,  495,  787,  422,  422,  422,
-      493,  469,  466,  464,  519,  455,  507,  292,  506,  500,
-      499,  496,  484,  422,  483,  482,  475,  474,  473,  470,
-      460,  457,  456,  453,  452,  451,  183,  439,  425,  423,
-      339,  292,  319,  314,  300,  298,  279,  422,  422,  422,
-      422,  183,  422,  422,  422,  422,  422,  422,  422,  422,
-      422,  422,  422,  422,  440,  422,  422,  440,  440,  440,
-
-      440,  441,  422,  422,  422,  440,  440,  440,  440,  440,
-      440,  440,  440,  440,  440,  440,  440,  440,  422,  440,
-      440,  440,  440,  440,  440,  788,  440,  440,  440,  789,
-      440,  440,  440,  440,  440,  440,  440,  440,  440,  440,
-      440,  440,  422,  422,  297,  297,  279,  297,  297,  297,
-      297,  297,  297,  297,  297,  297,  297,  297,  297,  183,
-      297,  297,  190,  181, 1094, 1094,  703,  297,  297,  297,
-     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
-     1094, 1094, 1094,  297, 1094, 1094, 1094, 1094, 1094, 1094,
-     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
-
-     1094, 1094, 1094, 1094, 1094, 1094, 1094,  297,  297,  297,
-      297, 1094,  297,  297,  297,  297,  297,  297,  297,  297,
-      297,  297,  297,  297,  315,  297,  297,  315,  315,  315,
-      315,  316,  297,  297,  297,  315,  315,  315,  315,  315,
-      315,  315,  315,  315,  315,  315,  315,  315,  297,  315,
-      315,  315,  315,  315,  315,  315,  315,  315,  848,  315,
-      315,  315,  315,  315,  315,  315,  315,  315,  315,  315,
-      315,  315,  297,  297,  325,  325,  325,  325,  325,  325,
-     1094,  325,  325,  325,  325,  325,  325,  325,  325, 1094,
-      325,  325, 1094, 1094, 1094, 1094,  718,  325,  325,  325,
-
-     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
-     1094, 1094, 1094,  325, 1094, 1094, 1094, 1094, 1094, 1094,
-     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
-     1094, 1094, 1094, 1094, 1094, 1094, 1094,  325,  325,  325,
-      325,  325,  325,  325,  325, 1094,  325,  325,  325,  325,
-      325,  325,  325,  325,  340,  325,  325,  340,  340,  340,
-      340,  341,  325,  325,  325,  340,  340,  340,  340,  340,
-      340,  340,  340,  340,  340,  340,  340,  340,  325,  340,
-      340,  340,  340,  340,  340,  340,  340,  340,  858,  340,
-      340,  340,  340,  340,  340,  340,  340,  340,  340,  340,
-
-      340,  340,  325,  325,  344,  344,  345,  346,  344,  344,
-      344,  344,  344,  344,  344,  344,  344,  344,  344, 1094,
-      344,  344, 1094, 1094, 1094, 1094,  736,  344,  344,  344,
-     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
-     1094, 1094, 1094,  344, 1094, 1094, 1094, 1094, 1094, 1094,
-     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
-     1094, 1094, 1094, 1094, 1094, 1094, 1094,  344,  344,  344,
-      344,  345,  346,  344,  344,  344,  344,  344,  344,  344,
-      344,  344,  344,  344,  365,  344,  344,  365,  365,  365,
-      365,  366,  344,  344,  344,  365,  365,  365,  365,  365,
-
-      365,  365,  365,  365,  365,  365,  365,  365,  344,  365,
-      365,  365,  365,  365,  365,  365,  365,  365,  862,  365,
-      365,  365,  365,  365,  365,  365,  365,  365,  365,  365,
-      365,  365,  344,  344,  370,  370,  371,  372,  370,  370,
-      370,  370,  370,  370,  370,  370,  370,  370,  370, 1094,
-      370,  370, 1094, 1094, 1094, 1094,  754,  370,  370,  370,
-     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
-     1094, 1094, 1094,  370, 1094, 1094, 1094, 1094, 1094, 1094,
-     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
-     1094, 1094, 1094, 1094, 1094, 1094, 1094,  370,  370,  370,
-
-      370,  371,  372,  370,  370,  370,  370,  370,  370,  370,
-      370,  370,  370,  370,  391,  370,  370,  391,  391,  391,
-      391,  392,  370,  370,  370,  391,  391,  391,  391,  391,
-      391,  391,  391,  391,  391,  391,  391,  391,  370,  391,
-      391,  391,  391,  391,  391,  391,  391,  391,  866,  391,
+      216,  217,  202,  202,  202,  218,  221,  244,  197,  197,
+      197,  197,  183,  244,  245,  244,  244,  259,  222,  223,
+      245,  247,  245,  245,  459,  224,  460,  247,  225,  247,
+      247,  461,  222,  462,  221,  223,  197,  197,  197,  197,
+
+      263,  264,  244,  224,  626,  184,  627,  223,  447,  245,
+      253,  225,  248,  248,  248,  248,  247,  260,  249,  256,
+      448,  323, 1081,  223,  226,  193,  227,  252, 1080,  228,
+      325,  244,  229,  230,  231,  232,  233,  234,  245,  244,
+      235,  267,  236,  237, 1079,  247,  245,  261,  291,  261,
+      261,  263,  264,  247,  244,  261,  180,  261,  261, 1078,
+      245,  245,  179,  268,  180,  268,  268,  291,  247,  250,
+      179,  342,  343,  265,  266,  251,  254,  196,  919,  197,
+      197,  197,  197,  263,  264,  279,  226,  279,  279,  255,
+      293,  254,  267, 1087,  275,  230,  231,  276,  277,  234,
+
+      279,  180,  279,  279,  819,  237,  280,  281,  282,  280,
+      419,  202,  269,  820,  202,  183,  202, 1077,  270,  271,
+      272,  273,  480,  274,  267,  202,  202,  202,  342,  349,
+      481,  202,  280,  281,  282,  280,  284,  346,  284,  285,
+      284,  284,  196,  420,  197,  197,  197,  197,  184,  200,
+      200,  200,  200,  221, 1076,  197,  197,  197,  197,  294,
+      281,  295,  294,  622,  245,  291,  223,  292,  292,  292,
+      292,  291,  294,  281,  295,  294,  287,  288,  367,  368,
+      623,  289,  223,  302, 1075,  303,  303,  303,  303,  304,
+      304,  304,  304,  918,  316,  296,  316,  316,  316,  297,
+
+      316,  316,  296,  487,  322,  296,  322,  322,  488,  296,
+      200,  200,  200,  200,  367,  368,  340,  305,  340,  340,
+      296,  306,  307, 1074,  303,  303,  303,  303,  296,  320,
+      320,  320,  320,  323,  308,  309,  342,  343,  318, 1073,
+      323,  310,  319,  323,  311,  392,  393,  323,  308, 1072,
+      326,  309,  327,  327,  327,  327,  464,  360,  323,  310,
+      364,  342,  365,  364,  392,  393,  323,  311,  296,  296,
+      465,  296,  296,  296,  296,  296,  296,  296,  296,  296,
+      296,  296,  296,  291,  296,  296,  328,  328,  328,  328,
+      314,  296,  296,  296,  313,  221,  917,  320,  320,  320,
+
+      320,  367,  374,  342,  343,  454,  969,  296,  223,  455,
+      371,  342,  345,  456,  329,  346,  245,  350,  330,  351,
+      351,  351,  351,  291,  223,  364,  342,  365,  364,  470,
+      470,  296,  296,  296,  296,  291,  296,  296,  296,  296,
+      296,  296,  296,  296,  296,  296,  296,  296,  347,  296,
+      296,  342,  343,  367,  368,  314,  296,  296,  296,  389,
+      367,  390,  389,  389,  367,  390,  389,  352,  352,  352,
+      352,  542,  296,  337,  385,  921,  367,  370,  315,  341,
+      371,  392,  395,  392,  399,  396,  341,  478,  479,  341,
+      367,  368,  396,  341, 1071,  353,  296,  296,  331,  354,
+
+      327,  327,  327,  327,  341, 1017,  377,  377,  377,  377,
+      332,  333,  341,  372,  367,  368,  361,  334,  397,  923,
+      335,  392,  393,  436,  332,  436,  436,  333,  375,  299,
+      376,  376,  376,  376,  378,  334,  494,  437,  379,  437,
+      437,  495,  410,  335,  323,  323,  323,  323,  323,  323,
+      361,  323,  323,  323,  323,  323,  323,  323,  323, 1070,
+      323,  323,  300,  366,  497,  498,  338,  323,  323,  323,
+      366,  244,  391,  366, 1069,  392,  393,  366,  245,  391,
+      263,  264,  391,  323, 1068,  247,  391,  522,  366,  400,
+     1067,  401,  401,  401,  401,  523,  366,  391,  414,  392,
+
+      415,  414,  473,  473,  473,  391, 1011,  323,  323,  323,
+      323,  323,  323,  323,  323,  291,  323,  323,  323,  323,
+      323,  323,  323,  323,  291,  323,  323,  414,  392,  415,
+      414,  338,  323,  323,  323,  424,  424,  424,  424,  392,
+      393,  422,  847,  423,  423,  423,  423,  482,  323,  263,
+      264,  483,  416,  419,  339,  402,  402,  402,  402,  416,
+      263,  264,  416,  425, 1018,  484,  416,  426,  436,  417,
+      436,  436,  323,  323,  342,  343,  454,  416, 1019,  178,
+      455,  178,  178,  403,  513,  416,  420,  404,  355, 1066,
+      351,  351,  351,  351,  179,  438,  438,  438,  438,  661,
+
+      356,  357,  439,  439,  439,  439,  494,  358,  244,  361,
+      359,  495,  263,  264,  356,  245,  666,  357,  440,  440,
+      440,  440,  247,  386,  496,  358,  441,  441,  441,  441,
+      263,  264,  662,  359,  341,  341,  342,  343,  341,  341,
+      341,  341,  341,  341,  341,  341,  341,  341,  341,  667,
+      341,  341,  200,  200,  200,  200,  362,  341,  341,  341,
+     1011,  221, 1050,  197,  197,  197,  197,  200,  200,  200,
+      200,  478,  514,  341,  223,  471, 1065,  471,  442,  244,
+      472,  472,  472,  472,  529,  529,  245,  511, 1064,  268,
+      223,  268,  268,  247,  442,  547,  547,  341,  341,  341,
+
+      341,  342,  343,  341,  341,  341,  341,  341,  341,  341,
+      341,  341,  341,  341,  291,  341,  341,  261, 1063,  261,
+      261,  362,  341,  341,  341,  469,  469,  469,  469,  503,
+     1062,  279,  179,  279,  279,  244,  442,  970,  341,  532,
+      532,  532,  245,  244,  363,  502,  502,  502,  502,  247,
+      245,  245,  442,  244,  244,  342,  343,  247,  291,  244,
+      245,  245,  341,  341,  367,  368,  245,  247,  247,  534,
+      244,  494,  244,  247,  535,  689,  552,  245,  380,  245,
+      376,  376,  376,  376,  247,  316,  247,  316,  316,  507,
+      381,  382, 1061,  504,  524,  505,  506,  383, 1060,  322,
+
+      384,  322,  322,  340,  381,  340,  340,  382,  690,  508,
+      280,  281,  282,  280,  510,  383,  342,  343,  509,  280,
+      281,  282,  280,  384,  366,  366,  367,  368,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366, 1059,
+      366,  366,  294,  281,  295,  294,  387,  366,  366,  366,
+      517,  517,  517,  517,  516,  245,  342,  343,  292,  292,
+      292,  292,  291,  366,  294,  281,  295,  294,  304,  304,
+      304,  304,  530, 1058,  530,  342,  345,  531,  531,  531,
+      531,  328,  328,  328,  328,  342,  343,  366,  366,  366,
+      366,  367,  368,  366,  366,  366,  366,  366,  366,  366,
+
+      366,  366,  366,  366,  291,  366,  366,  550,  550,  550,
+      606,  387,  366,  366,  366,  607,  307, 1057,  303,  303,
+      303,  303,  304,  304,  304,  304,  342,  345,  366,  309,
+      346,  848,  556,  525,  388,  528,  528,  528,  528,  323,
+      342,  345,  967,  193,  346,  309,  525,  313,  325,  525,
+      367,  368,  366,  366,  392,  393,  221, 1056,  320,  320,
+      320,  320,  525,  347,  328,  328,  328,  328,  405,  223,
+      401,  401,  401,  401, 1013,  543, 1051,  347,  367,  368,
+      406,  407,  973,  342,  349,  223,  361,  408,  342,  343,
+      409,  543,  346,  548,  406,  548,  693,  407,  549,  549,
+
+      549,  549,  342,  349, 1024,  408,  364,  342,  365,  364,
+     1016,  346, 1020,  409,  391,  391,  392,  393,  391,  391,
+      391,  391,  391,  391,  391,  391,  391,  391,  391,  694,
+      391,  391,  367,  368, 1014,  557,  412,  391,  391,  391,
+     1015,  331, 1050,  327,  327,  327,  327,  546,  546,  546,
+      546,  342,  343,  391,  333,  342,  343,  386,  543, 1012,
+      342,  343,  367,  370,  564, 1049,  371,  559,  559,  565,
+      333,  562,  562,  562,  543,  367,  370,  391,  391,  391,
+      391,  392,  393,  391,  391,  391,  391,  391,  391,  391,
+      391,  391,  391,  391, 1048,  391,  391,  342,  343,  372,
+
+      773,  412,  391,  391,  391,  364,  342,  365,  364,  342,
+      343,  367,  374,  352,  352,  352,  352,  291,  391, 1047,
+      371,  342,  343,  355,  413,  351,  351,  351,  351,  392,
+      393,  974,  560,  774,  560,  361,  357,  561,  561,  561,
+      561,  702,  391,  391,  427,  703,  423,  423,  423,  423,
+      367,  370,  357,  777,  371,  661,  428,  429,  367,  374,
+      367,  368, 1012,  430,  367,  368,  431,  371,  367,  368,
+      428,  367,  368,  429,  392,  393,  377,  377,  377,  377,
+      291,  430,  392,  393,  573,  573,  778,  372,  662,  431,
+      416,  416, 1046,  416,  416,  416,  416,  416,  416,  416,
+
+      416,  416,  416,  416,  416,  968,  416,  416,  342,  343,
+      313,  570,  434,  416,  416,  416,  392,  395,  571,  367,
+      368,  367,  368,  578,  352,  352,  352,  352,  579,  416,
+      342,  343,  574,  386,  574,  555,  925,  575,  575,  575,
+      575,  389,  367,  390,  389,  971,  558,  558,  558,  558,
+      337,  555,  666,  416,  416,  416,  416,  555,  416,  416,
+      416,  416,  416,  416,  416,  416,  416,  416,  416,  416,
+     1045,  416,  416,  555,  367,  368, 1044,  434,  416,  416,
+      416,  389,  367,  390,  389,  667,  367,  368,  380, 1043,
+      376,  376,  376,  376,  416,  392,  395,  367,  368,  396,
+
+      435,  382,  576,  576,  576,  392,  395,  601,  601,  396,
+      604,  604,  604,  377,  377,  377,  377,  382,  416,  416,
+      533,  533,  533,  533,  569,  392,  399,  392,  399,  533,
+      533,  533,  397, 1042,  396,  436,  396,  436,  436, 1041,
+      569, 1013,  397,  533,  533,  533,  533,  533,  533,  296,
+      296, 1040,  296,  296,  296,  296,  296,  296,  296,  296,
+      296,  296,  296,  296, 1021,  296,  296,  367,  368,  392,
+      393,  314,  296,  296,  296,  392,  393,  470,  470,  392,
+      393,  529,  529,  572,  572,  572,  572,  313,  296,  392,
+      393,  587,  587, 1039,  569,  402,  402,  402,  402, 1038,
+
+      588,  437,  588,  437,  437,  589,  589,  589,  589,  411,
+      569, 1037,  296,  296,  296,  296,  584,  296,  296,  296,
+      536,  296,  296,  296,  296,  296,  296,  296,  296,  296,
+      296,  296,  296,  296,  296,  296,  296,  296,  296,  296,
+      537,  537,  537,  537,  537,  537,  537,  537,  537,  537,
+      537,  537,  537,  296,  537,  537,  537,  537,  537,  537,
+      537,  537,  537,  537,  537,  537,  537,  537,  537,  537,
+      537,  537,  537,  537,  537,  537,  537,  296,  296,  296,
+      296, 1036,  296,  296,  296,  296,  296,  296,  296,  296,
+      296,  296,  296,  296, 1035,  296,  296,  392,  393,  689,
+
+      245,  314,  296,  296,  296,  392,  393,  291,  323,  392,
+      393,  405,  663,  401,  401,  401,  401,  709,  296,  392,
+      393,  590,  590,  590,  407,  402,  402,  402,  402,  392,
+      393,  682,  690,  592,  972,  683,  583,  538,  593,  337,
+      407, 1034,  296,  296,  551,  551,  551,  551,  414,  392,
+      415,  414,  583,  551,  551,  551,  414,  392,  415,  414,
+      424,  424,  424,  424,  547,  547,  585,  551,  551,  551,
+      551,  551,  551,  323,  323,  323,  323,  323,  323, 1033,
+      323,  323,  323,  323,  323,  323,  323,  323, 1011,  323,
+      323,  392,  393,  601,  601,  338,  323,  323,  323,  245,
+
+      427, 1032,  423,  423,  423,  423,  291,  586,  586,  586,
+      586,  975,  323,  429,  602,  386,  602, 1031,  583,  603,
+      603,  603,  603,  438,  438,  438,  438,  831,  832,  429,
+      439,  439,  439,  439,  583, 1030,  323,  323,  323,  323,
+      323,  323,  323,  323,  500,  323,  323,  323,  323,  323,
+      323,  323,  323,  323,  323,  323,  323,  323,  323,  323,
+      323,  323,  323,  323,  553,  553,  553,  553,  553,  553,
+      553,  553,  553,  553,  553,  553,  553,  323,  553,  553,
+      553,  553,  553,  553,  553,  553,  553,  553,  553,  553,
+      553,  553,  553,  553,  553,  553,  553,  553,  553,  553,
+
+      553,  323,  323,  323,  323,  323,  323,  323,  323, 1029,
+      323,  323,  323,  323,  323,  323,  323,  323, 1028,  323,
+      323,  424,  424,  424,  424,  338,  323,  323,  323,  473,
+      473,  473,  597,  600,  600,  600,  600,  440,  440,  440,
+      440, 1027,  323,  976,  597,  263,  264,  386,  597,  441,
+      441,  441,  441,  472,  472,  472,  472,  611, 1026,  611,
+      597,  554,  612,  612,  612,  612,  323,  323,  342,  343,
+      469,  469,  469,  469,  472,  472,  472,  472,  342,  343,
+      643,  442,  244, 1025,  563,  563,  563,  563,  644,  245,
+     1010,  645,  244,  563,  563,  563,  247,  442,  693,  245,
+
+     1009,  676,  531,  531,  531,  531,  247,  563,  563,  563,
+      563,  563,  563,  341,  341,  342,  343,  341,  341,  341,
+      341,  341,  341,  341,  341,  341,  341,  341,  717,  341,
+      341,  694,  244,  244,  244,  362,  341,  341,  341,  245,
+      245,  245,  531,  531,  531,  531,  247,  247,  247,  532,
+      532,  532,  341,  517,  517,  517,  517,  516,  684, 1008,
+      684,  843,  844,  685,  685,  685,  685,  549,  549,  549,
+      549,  550,  550,  550,  671, 1007,  341,  341,  341,  341,
+      342,  343,  341,  341,  566,  341,  341,  341,  341,  341,
+      341,  341,  341,  341,  341,  341,  341,  341,  341,  341,
+
+      341,  341,  341,  341,  567,  567,  567,  567,  567,  567,
+      567,  567,  567,  567,  567,  567,  567,  341,  567,  567,
+      567,  567,  567,  567,  567,  567,  567,  567,  567,  567,
+      567,  567,  567,  567,  567,  567,  567,  567,  567,  567,
+      567,  341,  341,  341,  341,  342,  343,  341,  341,  341,
+      341,  341,  341,  341,  341,  341,  341,  341, 1006,  341,
+      341,  342,  343,  244, 1005,  362,  341,  341,  341,  244,
+      245,  342,  343,  244,  342,  719,  245,  247,  411,  244,
+      245,  927,  341,  247,  367,  368,  245,  247,  549,  549,
+      549,  549, 1022,  247,  528,  528,  528,  528,  392,  393,
+
+     1023,  568, 1055,  244,  674,  525,  341,  341,  367,  368,
+      245,  672,  342,  343,  670,  673,  675,  247, 1004,  716,
+     1003,  525,  342,  723,  577,  577,  577,  577,  559,  559,
+     1002,  720,  734,  577,  577,  577,  704,  411,  704,  367,
+      368,  705,  705,  705,  705, 1014,  752,  577,  577,  577,
+      577,  577,  577,  366,  366,  367,  368,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366, 1001,  366,
+      366,  546,  546,  546,  546,  387,  366,  366,  366,  604,
+      604,  604,  543,  342,  343, 1000,  323,  342,  343,  735,
+      663,  313,  366,  977,  714,  709,  714,  411,  543,  715,
+
+      715,  715,  715,  561,  561,  561,  561,  768,  999,  768,
+      342,  343,  769,  769,  769,  769,  366,  366,  366,  366,
+      367,  368,  366,  366,  580,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  581,  581,  581,  581,  581,  581,
+      581,  581,  581,  581,  581,  581,  581,  366,  581,  581,
+      581,  581,  581,  581,  581,  581,  581,  581,  581,  581,
+      581,  581,  581,  581,  581,  581,  581,  581,  581,  581,
+      581,  366,  366,  366,  366,  367,  368,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  998,  366,
+
+      366,  342,  343,  367,  741,  387,  366,  366,  366,  342,
+      343,  997,  738,  342,  343,  392,  759,  558,  558,  558,
+      558,  773,  366,  996,  756,  562,  562,  562,  555,  561,
+      561,  561,  561,  342,  719,  342,  725,  720,  244,  726,
+      995,  582,  367,  368,  555,  245,  366,  366,  392,  393,
+      342,  725,  247,  732,  774,  732,  367,  368,  733,  733,
+      733,  733,  367,  368,  591,  591,  591,  591,  367,  368,
+      721,  994,  727,  591,  591,  591,  367,  737,  573,  573,
+      738,  392,  393,  993,  576,  576,  576,  591,  591,  591,
+      591,  591,  591,  391,  391,  392,  393,  391,  391,  391,
+
+      391,  391,  391,  391,  391,  391,  391,  391, 1023,  391,
+      391,  367,  368,  739,  245,  412,  391,  391,  391,  392,
+      393,  291,  777,  367,  368,  367,  737,  572,  572,  572,
+      572,  753,  391,  367,  368,  587,  587,  992,  569,  575,
+      575,  575,  575,  603,  603,  603,  603,  991,  837,  575,
+      575,  575,  575,  433,  569,  778,  391,  391,  391,  391,
+      392,  393,  391,  391,  594,  391,  391,  391,  391,  391,
+      391,  391,  391,  391,  391,  391,  391,  391,  391,  391,
+      391,  391,  391,  391,  595,  595,  595,  595,  595,  595,
+      595,  595,  595,  595,  595,  595,  595,  391,  595,  595,
+
+      595,  595,  595,  595,  595,  595,  595,  595,  595,  595,
+      595,  595,  595,  595,  595,  595,  595,  595,  595,  595,
+      595,  391,  391,  391,  391,  392,  393,  391,  391,  391,
+      391,  391,  391,  391,  391,  391,  391,  391,  990,  391,
+      391,  603,  603,  603,  603,  412,  391,  391,  391,  989,
+      392,  393,  367,  368,  988,  367,  743,  392,  393,  744,
+      987,  750,  391,  750,  367,  743,  751,  751,  751,  751,
+      342,  723,  986,  586,  586,  586,  586,  392,  393,  720,
+      985,  596,  392,  393,  583,  981,  391,  391,  605,  605,
+      605,  605,  745,  589,  589,  589,  589,  605,  605,  605,
+
+      583,  392,  755,  245, 1015,  756,  612,  612,  612,  612,
+      291,  605,  605,  605,  605,  605,  605,  416,  416,  961,
+      416,  416,  416,  416,  416,  416,  416,  416,  416,  416,
+      416,  416, 1016,  416,  416,  392,  393,  838,  757,  434,
+      416,  416,  416,  392,  393,  960,  600,  600,  600,  600,
+      337,  589,  589,  589,  589,  433,  416,  597,  929,  590,
+      590,  590,  612,  612,  612,  612,  685,  685,  685,  685,
+      342,  723,  959,  597,  685,  685,  685,  685,  337,  720,
+      416,  416,  416,  416,  958,  416,  416,  416,  608,  416,
+      416,  416,  416,  416,  416,  416,  416,  416,  416,  416,
+
+      416,  416,  416,  416,  416,  416,  416,  416,  609,  609,
+      609,  609,  609,  609,  609,  609,  609,  609,  609,  609,
+      609,  416,  609,  609,  609,  609,  609,  609,  609,  609,
+      609,  609,  609,  609,  609,  609,  609,  609,  609,  609,
+      609,  609,  609,  609,  609,  416,  416,  416,  416,  957,
+      416,  416,  416,  416,  416,  416,  416,  416,  416,  416,
+      416,  416,  956,  416,  416,  392,  755,  244,  244,  434,
+      416,  416,  416,  955,  245,  245,  392,  393,  244,  392,
+      761,  247,  247,  762,  244,  245,  416,  705,  705,  705,
+      705,  245,  247,  705,  705,  705,  705,  954,  247,  342,
+
+      343,  342,  343,  566,  953,  610,  392,  761,  827,  828,
+      416,  416,  533,  533,  533,  533,  763,  715,  715,  715,
+      715,  533,  533,  533,  342,  343, 1024,  830,  829,  342,
+      343,  769,  769,  769,  769,  533,  533,  533,  533,  533,
+      533,  296,  296,  952,  296,  296,  296,  296,  296,  296,
+      296,  296,  296,  296,  296,  296,  951,  296,  296,  342,
+      343,  367,  741,  696,  296,  296,  296,  853,  367,  368,
+      738,  433,  854,  367,  368,  715,  715,  715,  715,  978,
+      296,  831,  264,  411,  733,  733,  733,  733,  950,  733,
+      733,  733,  733,  367,  741,  367,  368,  392,  393,  580,
+
+      949,  594,  738,  948,  296,  296,  296,  296,  947,  296,
+      296,  296,  296,  296,  296,  296,  296,  296,  296,  296,
+      296,  313,  296,  296,  313,  313,  313,  313,  314,  296,
+      296,  296,  313,  313,  313,  313,  313,  313,  313,  313,
+      313,  313,  313,  313,  313,  296,  313,  313,  313,  313,
+      313,  313,  697,  313,  313,  313,  698,  313,  313,  313,
+      313,  313,  313,  313,  313,  313,  313,  313,  313,  296,
+      296,  551,  551,  551,  551,  367,  368,  946,  367,  368,
+      551,  551,  551,  342,  719,  342,  343,  720,  945,  342,
+      719,  342,  343,  720,  551,  551,  551,  551,  551,  551,
+
+      323,  323,  323,  323,  323,  323,  944,  323,  323,  323,
+      323,  323,  323,  323,  323,  888,  323,  323,  857,  943,
+      721,  858,  711,  323,  323,  323,  721,  392,  393,  979,
+      889,  392,  393,  433,  342,  725,  890,  942,  726,  323,
+      361,  922,  941,  751,  751,  751,  751,  751,  751,  751,
+      751,  392,  759,  392,  759,  769,  769,  769,  769,  940,
+      756,  939,  756,  323,  323,  323,  323,  323,  323,  323,
+      323,  727,  323,  323,  323,  323,  323,  323,  323,  323,
+      337,  323,  323,  337,  337,  337,  337,  338,  323,  323,
+      323,  337,  337,  337,  337,  337,  337,  337,  337,  337,
+
+      337,  337,  337,  337,  323,  337,  337,  337,  337,  337,
+      337,  712,  337,  337,  337,  713,  337,  337,  337,  337,
+      337,  337,  337,  337,  337,  337,  337,  337,  323,  323,
+      342,  343,  245,  367,  368,  367,  368,  386,  924,  291,
+      392,  393,  392,  393,  411,  926,  563,  563,  563,  563,
+      392,  393,  938,  392,  393,  563,  563,  563,  342,  725,
+      433,  928,  726,  937,  367,  737,  936,  914,  738,  563,
+      563,  563,  563,  563,  563,  341,  341,  342,  343,  341,
+      341,  341,  341,  341,  341,  341,  341,  341,  341,  341,
+      872,  341,  341,  861,  935,  727,  862,  729,  341,  341,
+
+      341,  739,  980,  873,  244,  244,  433,  982,  934,  874,
+      933,  245,  245,  964,  341,  964,  964, 1011,  247,  247,
+      983,  244,  964,  932,  964,  964,  984,  931,  245,  342,
+      343, 1017,  930, 1052,  843,  247,  342,  343,  341,  341,
+      341,  341,  342,  343,  341,  341,  341,  341,  341,  341,
+      341,  341,  341,  341,  341,  361,  341,  341,  361,  361,
+      361,  361,  362,  341,  341,  341,  361,  361,  361,  361,
+      361,  361,  361,  361,  361,  361,  361,  361,  361,  341,
+      361,  361,  361,  361,  361,  361,  730,  361,  361,  361,
+      731,  361,  361,  361,  361,  361,  361,  361,  361,  361,
+
+      361,  361,  361,  341,  341,  367,  368,  913,  245, 1012,
+      908,  245,  907,  244,  906,  291,  367,  368,  291,  905,
+      245,  577,  577,  577,  577,  392,  393,  247,  244,  904,
+      577,  577,  577,  367,  737,  245,  903,  738,  965,  367,
+      743,  966,  247,  744,  577,  577,  577,  577,  577,  577,
+      366,  366,  367,  368,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  902,  366,  366, 1012,  901,
+      739,  244,  747,  366,  366,  366,  745,  912,  245,  245,
+      342,  343, 1018,  900,  899,  247,  291,  898,  897,  366,
+      367,  368, 1019,  896, 1053,  367,  368, 1020,  392,  393,
+
+     1021,  895, 1054,  392,  393, 1022,  894,  893,  892,  891,
+      911,  887,  886,  366,  366,  366,  366,  367,  368,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      386,  366,  366,  386,  386,  386,  386,  387,  366,  366,
+      366,  386,  386,  386,  386,  386,  386,  386,  386,  386,
+      386,  386,  386,  386,  366,  386,  386,  386,  386,  386,
+      386,  748,  386,  386,  386,  749,  386,  386,  386,  386,
+      386,  386,  386,  386,  386,  386,  386,  386,  366,  366,
+      392,  393,  885,  884,  883,  882,  881,  880,  879,  878,
+      877,  876,  875,  871,  870,  869,  591,  591,  591,  591,
+
+      868,  608,  773,  245,  866,  591,  591,  591,  367,  743,
+      291,  865,  744,  864,  392,  755,  860,  856,  756,  591,
+      591,  591,  591,  591,  591,  391,  391,  392,  393,  391,
       391,  391,  391,  391,  391,  391,  391,  391,  391,  391,
-      391,  391,  370,  370,  396,  396,  397,  398,  396,  396,
-      396,  396,  396,  396,  396,  396,  396,  396,  396, 1094,
-      396,  396, 1094, 1094, 1094, 1094,  772,  396,  396,  396,
-     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
-
-     1094, 1094, 1094,  396, 1094, 1094, 1094, 1094, 1094, 1094,
-     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
-     1094, 1094, 1094, 1094, 1094, 1094, 1094,  396,  396,  396,
-      396,  397,  398,  396,  396,  396,  396,  396,  396,  396,
-      396,  396,  396,  396,  417,  396,  396,  417,  417,  417,
-      417,  418,  396,  396,  396,  417,  417,  417,  417,  417,
-      417,  417,  417,  417,  417,  417,  417,  417,  396,  417,
-      417,  417,  417,  417,  417,  417,  417,  417,  870,  417,
-      417,  417,  417,  417,  417,  417,  417,  417,  417,  417,
-      417,  417,  396,  396,  422,  422, 1094,  422,  422,  422,
-
-      422,  422,  422,  422,  422,  422,  422,  422,  422, 1094,
-      422,  422, 1094, 1094, 1094, 1094,  787,  422,  422,  422,
-     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
-     1094, 1094, 1094,  422, 1094, 1094, 1094, 1094, 1094, 1094,
-     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
-     1094, 1094, 1094, 1094, 1094, 1094, 1094,  422,  422,  422,
-      422, 1094,  422,  422,  422,  422,  422,  422,  422,  422,
-      422,  422,  422,  422,  440,  422,  422,  440,  440,  440,
-      440,  441,  422,  422,  422,  440,  440,  440,  440,  440,
-      440,  440,  440,  440,  440,  440,  440,  440,  422,  440,
-
-      440,  440,  440,  440,  440,  440,  440,  440,  874,  440,
-      440,  440,  440,  440,  440,  440,  440,  440,  440,  440,
-      440,  440,  422,  422,  297,  297, 1094,  297,  297,  297,
-      297,  297,  297,  297,  297,  297,  297,  297,  297,  315,
-      297,  297,  315,  315,  315,  315,  316,  297,  297,  297,
-      315,  315,  315,  315,  315,  315,  315,  315,  315,  315,
-      315,  315,  315,  297,  315,  315,  315,  315,  315,  315,
-      315,  315,  315,  315,  923,  315,  315,  315,  315,  315,
-      315,  315,  315,  315,  315,  315,  315,  297,  297,  325,
-      325,  325,  325,  325,  325, 1094,  325,  325,  325,  325,
-
-      325,  325,  325,  325,  340,  325,  325,  340,  340,  340,
-      340,  341,  325,  325,  325,  340,  340,  340,  340,  340,
-      340,  340,  340,  340,  340,  340,  340,  340,  325,  340,
-      340,  340,  340,  340,  340,  340,  340,  340,  340,  927,
-      340,  340,  340,  340,  340,  340,  340,  340,  340,  340,
-      340,  340,  325,  325,  182, 1094,  182,  182,  182,  182,
-      182,  182,  182,  182,  182,  185, 1094, 1094,  185,  185,
-      193, 1094,  193,  193,  193,  193,  193,  193,  193,  193,
-      193,  247,  247,  247,  247,  247,  247,  247,  247,  263,
-      263,  263,  263,  263,  263,  263,  263,  263,  263,  263,
-
-      284,  284,  284,  284,  287, 1094,  287, 1094,  287,  287,
-      287,  287,  291,  291,  291,  291,  291,  291,  291,  297,
-     1094,  297,  297,  297,  297,  297,  297,  297,  297,  297,
-      299, 1094,  299,  299,  299,  299,  299,  299,  299,  299,
-      299,  302, 1094,  302,  302,  302,  302,  302,  302,  302,
-      302,  302,  315, 1094,  315,  315,  315,  315,  315,  315,
-      315,  315,  315,  246,  246,  246,  246,  246,  246,  246,
-      325,  325, 1094,  325,  325,  325,  325,  325,  325,  325,
-      325,  326,  326,  326,  326,  326,  326,  326,  326,  326,
-      326,  326,  340,  340, 1094,  340,  340,  340,  340,  340,
-
-      340,  340,  340,  344,  344,  344,  344,  344,  344,  344,
-      344,  344,  344,  344,  347,  347,  347,  347,  347,  347,
-      347,  347,  347,  347,  347,  351,  351,  351,  351,  351,
-      351,  351,  351,  351,  351,  351,  365,  365,  365,  365,
-      365,  365,  365,  365,  365,  365,  365,  370,  370,  370,
-      370,  370,  370,  370,  370,  370,  370,  370,  373,  373,
-      373,  373,  373,  373,  373,  373,  373,  373,  373,  377,
-      377,  377,  377,  377,  377,  377,  377,  377,  377,  377,
+      915,  391,  391,  852,  500,  745,  244,  765,  391,  391,
+      391,  757,  850,  245,  849,  846,  845,  842,  536,  689,
+      247,  840,  839,  836,  391,  835,  834,  833,  500,  669,
+      661,  826,  825,  824,  823,  822,  821,  818,  817,  816,
+      815,  814,  813,  962,  812,  811,  810,  809,  391,  391,
+      391,  391,  392,  393,  391,  391,  391,  391,  391,  391,
+
+      391,  391,  391,  391,  391,  411,  391,  391,  411,  411,
+      411,  411,  412,  391,  391,  391,  411,  411,  411,  411,
+      411,  411,  411,  411,  411,  411,  411,  411,  411,  391,
+      411,  411,  411,  411,  411,  411,  766,  411,  411,  411,
+      767,  411,  411,  411,  411,  411,  411,  411,  411,  411,
+      411,  411,  411,  391,  391,  605,  605,  605,  605,  808,
+      807,  806,  244,  805,  605,  605,  605,  392,  755,  245,
+      804,  756,  803,  392,  761,  802,  247,  762,  605,  605,
+      605,  605,  605,  605,  416,  416,  801,  416,  416,  416,
+      416,  416,  416,  416,  416,  416,  416,  416,  416,  963,
+
+      416,  416,  800,  799,  757,  798,  780,  416,  416,  416,
+      763,  797,  796,  795,  392,  761,  794,  793,  762,  792,
+      791,  790,  789,  416,  788,  787,  786,  785,  784,  783,
+      773,  771,  770,  707,  706,  701,  700,  699,  689,  687,
+      686,  681,  680,  679,  678,  516,  643,  416,  416,  416,
+      416,  763,  416,  416,  416,  416,  416,  416,  416,  416,
+      416,  416,  416,  416,  433,  416,  416,  433,  433,  433,
+      433,  434,  416,  416,  416,  433,  433,  433,  433,  433,
+      433,  433,  433,  433,  433,  433,  433,  433,  416,  433,
+      433,  433,  433,  433,  433,  781,  433,  433,  433,  782,
+
+      433,  433,  433,  433,  433,  433,  433,  433,  433,  433,
+      433,  433,  416,  416,  296,  296,  626,  296,  296,  296,
+      296,  296,  296,  296,  296,  296,  296,  296,  296,  622,
+      296,  296,  669,  244,  664,  661,  696,  296,  296,  296,
+      245,  659,  658,  657,  656,  655,  654,  247,  653,  652,
+      651,  650,  649,  296,  648,  647,  646,  642,  641,  640,
+      639,  638,  637,  636,  635,  634,  633,  632,  631,  630,
+      629,  628,  625,  624,  621,  909,  620,  296,  296,  296,
+      296,  619,  296,  296,  296,  296,  296,  296,  296,  296,
+      296,  296,  296,  296,  313,  296,  296,  313,  313,  313,
+
+      313,  314,  296,  296,  296,  313,  313,  313,  313,  313,
+      313,  313,  313,  313,  313,  313,  313,  313,  296,  313,
+      313,  313,  313,  313,  313,  313,  313,  313,  841,  313,
+      313,  313,  313,  313,  313,  313,  313,  313,  313,  313,
+      313,  313,  296,  296,  323,  323,  323,  323,  323,  323,
+      618,  323,  323,  323,  323,  323,  323,  323,  323,  617,
+      323,  323,  616,  615,  614,  613,  711,  323,  323,  323,
+      599,  244,  598,  419,  545,  544,  541,  540,  245,  539,
+      527,  526,  299,  323,  500,  247,  521,  520,  516,  488,
+      486,  462,  459,  457,  512,  448,  500,  291,  499,  493,
+
+      492,  489,  477,  476,  475,  468,  467,  323,  323,  323,
+      323,  323,  323,  323,  323,  910,  323,  323,  323,  323,
+      323,  323,  323,  323,  337,  323,  323,  337,  337,  337,
+      337,  338,  323,  323,  323,  337,  337,  337,  337,  337,
+      337,  337,  337,  337,  337,  337,  337,  337,  323,  337,
+      337,  337,  337,  337,  337,  337,  337,  337,  851,  337,
+      337,  337,  337,  337,  337,  337,  337,  337,  337,  337,
+      337,  337,  323,  323,  341,  341,  342,  343,  341,  341,
+      341,  341,  341,  341,  341,  341,  341,  341,  341,  466,
+      341,  341,  463,  453,  450,  449,  729,  341,  341,  341,
+
+      446,  445,  444,  183,  432,  419,  417,  336,  291,  317,
+      312,  299,  297,  341,  278,  183,  278,  183,  190,  181,
+     1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+     1087, 1087, 1087, 1087, 1087, 1087, 1087,  341,  341,  341,
+      341,  342,  343,  341,  341,  341,  341,  341,  341,  341,
+      341,  341,  341,  341,  361,  341,  341,  361,  361,  361,
+      361,  362,  341,  341,  341,  361,  361,  361,  361,  361,
+      361,  361,  361,  361,  361,  361,  361,  361,  341,  361,
+      361,  361,  361,  361,  361,  361,  361,  361,  855,  361,
+      361,  361,  361,  361,  361,  361,  361,  361,  361,  361,
+
+      361,  361,  341,  341,  366,  366,  367,  368,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366, 1087,
+      366,  366, 1087, 1087, 1087, 1087,  747,  366,  366,  366,
+     1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+     1087, 1087, 1087,  366, 1087, 1087, 1087, 1087, 1087, 1087,
+     1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+     1087, 1087, 1087, 1087, 1087, 1087, 1087,  366,  366,  366,
+      366,  367,  368,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  386,  366,  366,  386,  386,  386,
+      386,  387,  366,  366,  366,  386,  386,  386,  386,  386,
+
+      386,  386,  386,  386,  386,  386,  386,  386,  366,  386,
+      386,  386,  386,  386,  386,  386,  386,  386,  859,  386,
+      386,  386,  386,  386,  386,  386,  386,  386,  386,  386,
+      386,  386,  366,  366,  391,  391,  392,  393,  391,  391,
+      391,  391,  391,  391,  391,  391,  391,  391,  391, 1087,
+      391,  391, 1087, 1087, 1087, 1087,  765,  391,  391,  391,
+     1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+     1087, 1087, 1087,  391, 1087, 1087, 1087, 1087, 1087, 1087,
+     1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+     1087, 1087, 1087, 1087, 1087, 1087, 1087,  391,  391,  391,
+
+      391,  392,  393,  391,  391,  391,  391,  391,  391,  391,
+      391,  391,  391,  391,  411,  391,  391,  411,  411,  411,
+      411,  412,  391,  391,  391,  411,  411,  411,  411,  411,
+      411,  411,  411,  411,  411,  411,  411,  411,  391,  411,
+      411,  411,  411,  411,  411,  411,  411,  411,  863,  411,
+      411,  411,  411,  411,  411,  411,  411,  411,  411,  411,
+      411,  411,  391,  391,  416,  416, 1087,  416,  416,  416,
+      416,  416,  416,  416,  416,  416,  416,  416,  416, 1087,
+      416,  416, 1087, 1087, 1087, 1087,  780,  416,  416,  416,
+     1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+
+     1087, 1087, 1087,  416, 1087, 1087, 1087, 1087, 1087, 1087,
+     1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+     1087, 1087, 1087, 1087, 1087, 1087, 1087,  416,  416,  416,
+      416, 1087,  416,  416,  416,  416,  416,  416,  416,  416,
+      416,  416,  416,  416,  433,  416,  416,  433,  433,  433,
+      433,  434,  416,  416,  416,  433,  433,  433,  433,  433,
+      433,  433,  433,  433,  433,  433,  433,  433,  416,  433,
+      433,  433,  433,  433,  433,  433,  433,  433,  867,  433,
+      433,  433,  433,  433,  433,  433,  433,  433,  433,  433,
+      433,  433,  416,  416,  296,  296, 1087,  296,  296,  296,
+
+      296,  296,  296,  296,  296,  296,  296,  296,  296,  313,
+      296,  296,  313,  313,  313,  313,  314,  296,  296,  296,
+      313,  313,  313,  313,  313,  313,  313,  313,  313,  313,
+      313,  313,  313,  296,  313,  313,  313,  313,  313,  313,
+      313,  313,  313,  313,  916,  313,  313,  313,  313,  313,
+      313,  313,  313,  313,  313,  313,  313,  296,  296,  323,
+      323,  323,  323,  323,  323, 1087,  323,  323,  323,  323,
+      323,  323,  323,  323,  337,  323,  323,  337,  337,  337,
+      337,  338,  323,  323,  323,  337,  337,  337,  337,  337,
+      337,  337,  337,  337,  337,  337,  337,  337,  323,  337,
+
+      337,  337,  337,  337,  337,  337,  337,  337,  337,  920,
+      337,  337,  337,  337,  337,  337,  337,  337,  337,  337,
+      337,  337,  323,  323,  182, 1087,  182,  182,  182,  182,
+      182,  182,  182,  182,  182,  185, 1087, 1087,  185,  185,
+      193, 1087,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  246,  246,  246,  246,  246,  246,  246,  246,  262,
+      262,  262,  262,  262,  262,  262,  262,  262,  262,  262,
+      283,  283,  283,  283,  286, 1087,  286, 1087,  286,  286,
+      286,  286,  290,  290,  290,  290,  290,  290,  290,  296,
+     1087,  296,  296,  296,  296,  296,  296,  296,  296,  296,
+
+      298, 1087,  298,  298,  298,  298,  298,  298,  298,  298,
+      298,  301, 1087,  301,  301,  301,  301,  301,  301,  301,
+      301,  301,  313, 1087,  313,  313,  313,  313,  313,  313,
+      313,  313,  313,  245,  245,  245,  245,  245,  245,  245,
+      323,  323, 1087,  323,  323,  323,  323,  323,  323,  323,
+      323,  324,  324,  324,  324,  324,  324,  324,  324,  324,
+      324,  324,  337,  337, 1087,  337,  337,  337,  337,  337,
+      337,  337,  337,  341,  341,  341,  341,  341,  341,  341,
+      341,  341,  341,  341,  344,  344,  344,  344,  344,  344,
+      344,  344,  344,  344,  344,  348,  348,  348,  348,  348,
+
+      348,  348,  348,  348,  348,  348,  361,  361,  361,  361,
+      361,  361,  361,  361,  361,  361,  361,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  369,  369,
+      369,  369,  369,  369,  369,  369,  369,  369,  369,  373,
+      373,  373,  373,  373,  373,  373,  373,  373,  373,  373,
+      386,  386,  386,  386,  386,  386,  386,  386,  386,  386,
+      386,  391,  391,  391,  391,  391,  391,  391,  391,  391,
+      391,  391,  394,  394,  394,  394,  394,  394,  394,  394,
+      394,  394,  394,  398,  398,  398,  398,  398,  398,  398,
+      398,  398,  398,  398,  411,  411,  411,  411,  411,  411,
+
+      411,  411,  411,  411,  411,  416, 1087,  416,  416,  416,
+      416,  416,  416,  416,  416,  416,  418, 1087,  418,  418,
+      418,  418,  418,  418,  418,  418,  418,  421, 1087,  421,
+      421,  421,  421,  421,  421,  421,  421,  421,  433, 1087,
+      433,  433,  433,  433,  433,  433,  433,  433,  433,  185,
+     1087, 1087,  185,  185,  193, 1087,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  443, 1087, 1087,  443,  443,
+      443,  474, 1087, 1087,  474,  245,  245,  245,  245,  245,
+      245,  245,  246,  246,  246,  246,  246,  246,  246,  246,
+      501, 1087, 1087, 1087, 1087,  501,  501,  501,  501,  262,
+
+      262,  262,  262,  262,  262,  262,  262,  262,  262,  262,
+      515,  515,  515,  515,  515,  515,  518,  518,  518,  518,
+      519, 1087,  519,  519,  519,  519,  290,  290,  290,  290,
+      290,  290,  290,  296, 1087,  296,  296,  296,  296,  296,
+      296,  296,  296,  296,  298, 1087,  298,  298,  298,  298,
+      298,  298,  298,  298,  298,  301, 1087,  301,  301,  301,
+      301,  301,  301,  301,  301,  301,  313, 1087,  313,  313,
+      313,  313,  313,  313,  313,  313,  313,  323,  323, 1087,
+      323,  323,  323,  323,  323,  323,  323,  323,  324,  324,
+      324,  324,  324,  324,  324,  324,  324,  324,  324,  337,
+
+      337, 1087,  337,  337,  337,  337,  337,  337,  337,  337,
+      341,  341,  341,  341,  341,  341,  341,  341,  341,  341,
+      341,  344,  344,  344,  344,  344,  344,  344,  344,  344,
+      344,  344,  348,  348,  348,  348,  348,  348,  348,  348,
+      348,  348,  348,  361,  361,  361,  361,  361,  361,  361,
+      361,  361,  361,  361,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  369,  369,  369,  369,  369,
+      369,  369,  369,  369,  369,  369,  373,  373,  373,  373,
+      373,  373,  373,  373,  373,  373,  373,  386,  386,  386,
+      386,  386,  386,  386,  386,  386,  386,  386,  391,  391,
+
+      391,  391,  391,  391,  391,  391,  391,  391,  391,  394,
+      394,  394,  394,  394,  394,  394,  394,  394,  394,  394,
+      398,  398,  398,  398,  398,  398,  398,  398,  398,  398,
+      398,  411,  411,  411,  411,  411,  411,  411,  411,  411,
+      411,  411,  416, 1087,  416,  416,  416,  416,  416,  416,
+      416,  416,  416,  418, 1087,  418,  418,  418,  418,  418,
+      418,  418,  418,  418,  421, 1087,  421,  421,  421,  421,
+      421,  421,  421,  421,  421,  433, 1087,  433,  433,  433,
+      433,  433,  433,  433,  433,  433,  185, 1087, 1087,  185,
+      185,  443, 1087, 1087,  443,  443,  443,  474, 1087, 1087,
+
+      474,  660, 1087,  660,  660,  660,  660,  660,  660,  660,
+      660,  660,  663, 1087,  663,  663,  663,  663,  663,  663,
+      663,  663,  663,  665, 1087,  665,  665,  665,  665,  665,
+      665,  665,  665,  665,  668,  668,  668,  668,  668,  668,
+      668,  246,  246,  246,  246,  246,  246,  246,  246,  262,
+      262,  262,  262,  262,  262,  262,  262,  262,  262,  262,
+      515,  515,  515,  515,  515,  515,  677, 1087,  677,  677,
+      677,  677,  519, 1087,  519,  519,  519,  519,  290,  290,
+      290,  290,  290,  290,  290,  296, 1087,  296,  296,  296,
+      296,  296,  296,  296,  296,  296,  688, 1087,  688,  688,
+
+      688,  688,  688,  688,  688,  688,  688,  691, 1087,  691,
+      691,  691,  691,  691,  691,  691,  691,  691,  692, 1087,
+      692,  692,  692,  692,  692,  692,  692,  692,  692,  695,
+     1087,  695,  695,  695,  695,  695,  695,  695,  695,  695,
+      245,  245,  245,  245,  245,  245,  245,  323,  323, 1087,
+      323,  323,  323,  323,  323,  323,  323,  323,  708,  708,
+      708,  708,  708,  708,  708,  708,  708,  708,  708,  710,
+      710, 1087,  710,  710,  710,  710,  710,  710,  710,  710,
+      341,  341,  341,  341,  341,  341,  341,  341,  341,  341,
+      341,  718,  718,  718,  718,  718,  718,  718,  718,  718,
+
+      718,  718,  722,  722,  722,  722,  722,  722,  722,  722,
+      722,  722,  722,  724,  724,  724,  724,  724,  724,  724,
+      724,  724,  724,  724,  728,  728,  728,  728,  728,  728,
+      728,  728,  728,  728,  728,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  736,  736,  736,  736,
+      736,  736,  736,  736,  736,  736,  736,  740,  740,  740,
+      740,  740,  740,  740,  740,  740,  740,  740,  742,  742,
+      742,  742,  742,  742,  742,  742,  742,  742,  742,  746,
+      746,  746,  746,  746,  746,  746,  746,  746,  746,  746,
       391,  391,  391,  391,  391,  391,  391,  391,  391,  391,
-      391,  396,  396,  396,  396,  396,  396,  396,  396,  396,
 
-      396,  396,  399,  399,  399,  399,  399,  399,  399,  399,
-      399,  399,  399,  403,  403,  403,  403,  403,  403,  403,
-      403,  403,  403,  403,  417,  417,  417,  417,  417,  417,
-      417,  417,  417,  417,  417,  422, 1094,  422,  422,  422,
-      422,  422,  422,  422,  422,  422,  424, 1094,  424,  424,
-      424,  424,  424,  424,  424,  424,  424,  427, 1094,  427,
-      427,  427,  427,  427,  427,  427,  427,  427,  440, 1094,
-      440,  440,  440,  440,  440,  440,  440,  440,  440,  185,
-     1094, 1094,  185,  185,  193, 1094,  193,  193,  193,  193,
-      193,  193,  193,  193,  193,  450, 1094, 1094,  450,  450,
-
-      450,  481, 1094, 1094,  481,  246,  246,  246,  246,  246,
-      246,  246,  247,  247,  247,  247,  247,  247,  247,  247,
-      508, 1094, 1094, 1094, 1094,  508,  508,  508,  508,  263,
-      263,  263,  263,  263,  263,  263,  263,  263,  263,  263,
-      522,  522,  522,  522,  522,  522,  525,  525,  525,  525,
-      526, 1094,  526,  526,  526,  526,  291,  291,  291,  291,
-      291,  291,  291,  297, 1094,  297,  297,  297,  297,  297,
-      297,  297,  297,  297,  299, 1094,  299,  299,  299,  299,
-      299,  299,  299,  299,  299,  302, 1094,  302,  302,  302,
-      302,  302,  302,  302,  302,  302,  315, 1094,  315,  315,
-
-      315,  315,  315,  315,  315,  315,  315,  325,  325, 1094,
-      325,  325,  325,  325,  325,  325,  325,  325,  326,  326,
-      326,  326,  326,  326,  326,  326,  326,  326,  326,  340,
-      340, 1094,  340,  340,  340,  340,  340,  340,  340,  340,
-      344,  344,  344,  344,  344,  344,  344,  344,  344,  344,
-      344,  347,  347,  347,  347,  347,  347,  347,  347,  347,
-      347,  347,  351,  351,  351,  351,  351,  351,  351,  351,
-      351,  351,  351,  365,  365,  365,  365,  365,  365,  365,
-      365,  365,  365,  365,  370,  370,  370,  370,  370,  370,
-      370,  370,  370,  370,  370,  373,  373,  373,  373,  373,
-
-      373,  373,  373,  373,  373,  373,  377,  377,  377,  377,
-      377,  377,  377,  377,  377,  377,  377,  391,  391,  391,
-      391,  391,  391,  391,  391,  391,  391,  391,  396,  396,
-      396,  396,  396,  396,  396,  396,  396,  396,  396,  399,
-      399,  399,  399,  399,  399,  399,  399,  399,  399,  399,
-      403,  403,  403,  403,  403,  403,  403,  403,  403,  403,
-      403,  417,  417,  417,  417,  417,  417,  417,  417,  417,
-      417,  417,  422, 1094,  422,  422,  422,  422,  422,  422,
-      422,  422,  422,  424, 1094,  424,  424,  424,  424,  424,
-      424,  424,  424,  424,  427, 1094,  427,  427,  427,  427,
-
-      427,  427,  427,  427,  427,  440, 1094,  440,  440,  440,
-      440,  440,  440,  440,  440,  440,  185, 1094, 1094,  185,
-      185,  450, 1094, 1094,  450,  450,  450,  481, 1094, 1094,
-      481,  667, 1094,  667,  667,  667,  667,  667,  667,  667,
-      667,  667,  670, 1094,  670,  670,  670,  670,  670,  670,
-      670,  670,  670,  672, 1094,  672,  672,  672,  672,  672,
-      672,  672,  672,  672,  675,  675,  675,  675,  675,  675,
-      675,  247,  247,  247,  247,  247,  247,  247,  247,  263,
-      263,  263,  263,  263,  263,  263,  263,  263,  263,  263,
-      522,  522,  522,  522,  522,  522,  684, 1094,  684,  684,
-
-      684,  684,  526, 1094,  526,  526,  526,  526,  291,  291,
-      291,  291,  291,  291,  291,  297, 1094,  297,  297,  297,
-      297,  297,  297,  297,  297,  297,  695, 1094,  695,  695,
-      695,  695,  695,  695,  695,  695,  695,  698, 1094,  698,
-      698,  698,  698,  698,  698,  698,  698,  698,  699, 1094,
-      699,  699,  699,  699,  699,  699,  699,  699,  699,  702,
-     1094,  702,  702,  702,  702,  702,  702,  702,  702,  702,
-      246,  246,  246,  246,  246,  246,  246,  325,  325, 1094,
-      325,  325,  325,  325,  325,  325,  325,  325,  715,  715,
-      715,  715,  715,  715,  715,  715,  715,  715,  715,  717,
-
-      717, 1094,  717,  717,  717,  717,  717,  717,  717,  717,
-      344,  344,  344,  344,  344,  344,  344,  344,  344,  344,
-      344,  725,  725,  725,  725,  725,  725,  725,  725,  725,
-      725,  725,  729,  729,  729,  729,  729,  729,  729,  729,
-      729,  729,  729,  731,  731,  731,  731,  731,  731,  731,
-      731,  731,  731,  731,  735,  735,  735,  735,  735,  735,
-      735,  735,  735,  735,  735,  370,  370,  370,  370,  370,
-      370,  370,  370,  370,  370,  370,  743,  743,  743,  743,
-      743,  743,  743,  743,  743,  743,  743,  747,  747,  747,
-      747,  747,  747,  747,  747,  747,  747,  747,  749,  749,
-
-      749,  749,  749,  749,  749,  749,  749,  749,  749,  753,
-      753,  753,  753,  753,  753,  753,  753,  753,  753,  753,
-      396,  396,  396,  396,  396,  396,  396,  396,  396,  396,
-      396,  761,  761,  761,  761,  761,  761,  761,  761,  761,
-      761,  761,  765,  765,  765,  765,  765,  765,  765,  765,
-      765,  765,  765,  767,  767,  767,  767,  767,  767,  767,
-      767,  767,  767,  767,  771,  771,  771,  771,  771,  771,
-      771,  771,  771,  771,  771,  422, 1094,  422,  422,  422,
-      422,  422,  422,  422,  422,  422,  779, 1094,  779,  779,
-      779,  779,  779,  779,  779,  779,  779,  782, 1094,  782,
-
-      782,  782,  782,  782,  782,  782,  782,  782,  783, 1094,
-      783,  783,  783,  783,  783,  783,  783,  783,  783,  786,
-     1094,  786,  786,  786,  786,  786,  786,  786,  786,  786,
-      450, 1094, 1094,  450,  450,  450,  667, 1094,  667,  667,
-      667,  667,  667,  667,  667,  667,  667,  670, 1094,  670,
-      670,  670,  670,  670,  670,  670,  670,  670,  672, 1094,
-      672,  672,  672,  672,  672,  672,  672,  672,  672,  675,
-      675,  675,  675,  675,  675,  675,  247,  247,  247,  247,
-      247,  247,  247,  247,  263,  263,  263,  263,  263,  263,
-      263,  263,  263,  263,  263,  684, 1094,  684,  684,  684,
-
-      684,  526, 1094,  526,  526,  526,  526,  291,  291,  291,
-      291,  291,  291,  291,  297, 1094,  297,  297,  297,  297,
-      297,  297,  297,  297,  297,  695, 1094,  695,  695,  695,
-      695,  695,  695,  695,  695,  695,  698, 1094,  698,  698,
-      698,  698,  698,  698,  698,  698,  698,  699, 1094,  699,
-      699,  699,  699,  699,  699,  699,  699,  699,  702, 1094,
-      702,  702,  702,  702,  702,  702,  702,  702,  702,  246,
-      246,  246,  246,  246,  246,  246,  325,  325, 1094,  325,
-      325,  325,  325,  325,  325,  325,  325,  715,  715,  715,
-      715,  715,  715,  715,  715,  715,  715,  715,  717,  717,
-
-     1094,  717,  717,  717,  717,  717,  717,  717,  717,  344,
-      344,  344,  344,  344,  344,  344,  344,  344,  344,  344,
-      725,  725,  725,  725,  725,  725,  725,  725,  725,  725,
-      725,  729,  729,  729,  729,  729,  729,  729,  729,  729,
-      729,  729,  731,  731,  731,  731,  731,  731,  731,  731,
-      731,  731,  731,  735,  735,  735,  735,  735,  735,  735,
-      735,  735,  735,  735,  370,  370,  370,  370,  370,  370,
-      370,  370,  370,  370,  370,  743,  743,  743,  743,  743,
-      743,  743,  743,  743,  743,  743,  747,  747,  747,  747,
-      747,  747,  747,  747,  747,  747,  747,  749,  749,  749,
-
-      749,  749,  749,  749,  749,  749,  749,  749,  753,  753,
-      753,  753,  753,  753,  753,  753,  753,  753,  753,  396,
-      396,  396,  396,  396,  396,  396,  396,  396,  396,  396,
-      761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
-      761,  765,  765,  765,  765,  765,  765,  765,  765,  765,
-      765,  765,  767,  767,  767,  767,  767,  767,  767,  767,
-      767,  767,  767,  771,  771,  771,  771,  771,  771,  771,
-      771,  771,  771,  771,  422, 1094,  422,  422,  422,  422,
-      422,  422,  422,  422,  422,  779, 1094,  779,  779,  779,
-      779,  779,  779,  779,  779,  779,  782, 1094,  782,  782,
-
-      782,  782,  782,  782,  782,  782,  782,  783, 1094,  783,
-      783,  783,  783,  783,  783,  783,  783,  783,  786, 1094,
-      786,  786,  786,  786,  786,  786,  786,  786,  786,  450,
-     1094, 1094,  450,  450,  450,  247,  247,  247,  247,  247,
-      247,  247,  247,  263,  263,  263,  263,  263,  263,  263,
-      263,  263,  263,  263,  526, 1094,  526,  526,  526,  526,
-      291,  291,  291,  291,  291,  291,  291,  297, 1094,  297,
-      297,  297,  297,  297,  297,  297,  297,  297,  246,  246,
-      246,  246,  246,  246,  246,  325,  325, 1094,  325,  325,
-      325,  325,  325,  325,  325,  325,   23, 1094, 1094, 1094,
-
-     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
-     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
-     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
-     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
-     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
-     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
-     1094, 1094
+      391,  754,  754,  754,  754,  754,  754,  754,  754,  754,
+      754,  754,  758,  758,  758,  758,  758,  758,  758,  758,
+      758,  758,  758,  760,  760,  760,  760,  760,  760,  760,
+      760,  760,  760,  760,  764,  764,  764,  764,  764,  764,
+      764,  764,  764,  764,  764,  416, 1087,  416,  416,  416,
+      416,  416,  416,  416,  416,  416,  772, 1087,  772,  772,
+      772,  772,  772,  772,  772,  772,  772,  775, 1087,  775,
+      775,  775,  775,  775,  775,  775,  775,  775,  776, 1087,
+      776,  776,  776,  776,  776,  776,  776,  776,  776,  779,
+     1087,  779,  779,  779,  779,  779,  779,  779,  779,  779,
+
+      443, 1087, 1087,  443,  443,  443,  660, 1087,  660,  660,
+      660,  660,  660,  660,  660,  660,  660,  663, 1087,  663,
+      663,  663,  663,  663,  663,  663,  663,  663,  665, 1087,
+      665,  665,  665,  665,  665,  665,  665,  665,  665,  668,
+      668,  668,  668,  668,  668,  668,  246,  246,  246,  246,
+      246,  246,  246,  246,  262,  262,  262,  262,  262,  262,
+      262,  262,  262,  262,  262,  677, 1087,  677,  677,  677,
+      677,  519, 1087,  519,  519,  519,  519,  290,  290,  290,
+      290,  290,  290,  290,  296, 1087,  296,  296,  296,  296,
+      296,  296,  296,  296,  296,  688, 1087,  688,  688,  688,
+
+      688,  688,  688,  688,  688,  688,  691, 1087,  691,  691,
+      691,  691,  691,  691,  691,  691,  691,  692, 1087,  692,
+      692,  692,  692,  692,  692,  692,  692,  692,  695, 1087,
+      695,  695,  695,  695,  695,  695,  695,  695,  695,  245,
+      245,  245,  245,  245,  245,  245,  323,  323, 1087,  323,
+      323,  323,  323,  323,  323,  323,  323,  708,  708,  708,
+      708,  708,  708,  708,  708,  708,  708,  708,  710,  710,
+     1087,  710,  710,  710,  710,  710,  710,  710,  710,  341,
+      341,  341,  341,  341,  341,  341,  341,  341,  341,  341,
+      718,  718,  718,  718,  718,  718,  718,  718,  718,  718,
+
+      718,  722,  722,  722,  722,  722,  722,  722,  722,  722,
+      722,  722,  724,  724,  724,  724,  724,  724,  724,  724,
+      724,  724,  724,  728,  728,  728,  728,  728,  728,  728,
+      728,  728,  728,  728,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  736,  736,  736,  736,  736,
+      736,  736,  736,  736,  736,  736,  740,  740,  740,  740,
+      740,  740,  740,  740,  740,  740,  740,  742,  742,  742,
+      742,  742,  742,  742,  742,  742,  742,  742,  746,  746,
+      746,  746,  746,  746,  746,  746,  746,  746,  746,  391,
+      391,  391,  391,  391,  391,  391,  391,  391,  391,  391,
+
+      754,  754,  754,  754,  754,  754,  754,  754,  754,  754,
+      754,  758,  758,  758,  758,  758,  758,  758,  758,  758,
+      758,  758,  760,  760,  760,  760,  760,  760,  760,  760,
+      760,  760,  760,  764,  764,  764,  764,  764,  764,  764,
+      764,  764,  764,  764,  416, 1087,  416,  416,  416,  416,
+      416,  416,  416,  416,  416,  772, 1087,  772,  772,  772,
+      772,  772,  772,  772,  772,  772,  775, 1087,  775,  775,
+      775,  775,  775,  775,  775,  775,  775,  776, 1087,  776,
+      776,  776,  776,  776,  776,  776,  776,  776,  779, 1087,
+      779,  779,  779,  779,  779,  779,  779,  779,  779,  443,
+
+     1087, 1087,  443,  443,  443,  246,  246,  246,  246,  246,
+      246,  246,  246,  262,  262,  262,  262,  262,  262,  262,
+      262,  262,  262,  262,  519, 1087,  519,  519,  519,  519,
+      290,  290,  290,  290,  290,  290,  290,  296, 1087,  296,
+      296,  296,  296,  296,  296,  296,  296,  296,  245,  245,
+      245,  245,  245,  245,  245,  323,  323, 1087,  323,  323,
+      323,  323,  323,  323,  323,  323,   23, 1087, 1087, 1087,
+     1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+     1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+     1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+
+     1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+     1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+     1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+     1087, 1087
     } ;
 
-static yyconst flex_int16_t yy_chk[7163] =
+static yyconst flex_int16_t yy_chk[7033] =
     {   0,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
@@ -1640,12 +1624,12 @@
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    2,   33,    2,    2,   29,
-       35,    4,  236,    4,    4, 1088,    6,   40,    6,    6,
-       33,  236,   35,    8,   40,    8,    8,   55,    2,    3,
+       35,    4,  235,    4,    4, 1081,    6,   40,    6,    6,
+       33,  235,   35,    8,   40,    8,    8,   55,    2,    3,
        74,    3,    3,    3,    4,   44,   44,    3,    3,    6,
 
         3,    3,   29,    3,    3,    3,    8,   45,   45,  108,
-        3,    3,    3,    3,   10,   13,   10,   10,   12, 1084,
+        3,    3,    3,    3,   10,   13,   10,   10,   12, 1077,
        12,   12,   16,   74,   16,   16,   55,   13,   13,   13,
        13,   18,  108,   18,   18,    3,   20,    3,   20,   20,
         3,   22,    3,   22,   22,    3,  212,    3,   46,   46,
@@ -1678,8 +1662,8 @@
        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
 
        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
-       11,   11,   11,   14, 1083,   14,   14,   31,   14,   31,
-       82,   31,   31,   60, 1082,   60,   60,   82,  122,  122,
+       11,   11,   11,   14, 1076,   14,   14,   31,   14,   31,
+       82,   31,   31,   60, 1075,   60,   60,   82,  122,  122,
        14,   14,   14,   14,   15,   15,   15,   15,   15,   15,
        15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
        15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
@@ -1711,720 +1695,706 @@
        21,   21,   21,   21,   25,   91,   25,   25,   27,   27,
 
        27,   27,   36,  209,   36,   36,   36,   36,  209,   25,
-       36,   47,   38,   27,   38,   38,   38,   38,   47, 1080,
-       38,   39,   39,   39,   39,   47,  233,   39,   91,   39,
+       36,   47,   38,   27,   38,   38,   38,   38,   47, 1073,
+       38,   39,   39,   39,   39,   47,  232,   39,   91,   39,
        39,   39,   39,   39,   39,   39,   39,   39,   39,   39,
-       39,   39,  233,   39,   39,   39,   39,   39,   39,   39,
+       39,   39,  232,   39,   39,   39,   39,   39,   39,   39,
        39,   39,   39,   39,   39,   39,   39,   39,   39,   39,
        39,   39,   39,   39,   39,   39,   41,   52,   41,   41,
-       41,   41,  216,   51,   52,   49,  976,   53,   41,   41,
-       51,   52,   49,   41,   53,   41,  216,   51,   41,   49,
-       56,   53,   41,  112,  976,   41,   42,  112,   42,   42,
-
-       42,   42,  112,   41,   67,   48,   67,   67, 1079,   42,
-       52,   41,   48,   42,   53,   48,   48,   48,   48,   48,
-       49,   69,   69,  660,   51,   42,   43,   53,   43,  460,
-       56,   43,  660,   50,   43,   43,   43,   43,   43,   43,
-       50,   54,   43,   84,   43,   43,  460,   50,   54,   57,
-       84,   57,   57,   59,   59,   54,   66,   58,   58,   58,
-       58,  231,   69,   66,   57,   61,   61,   61,   61,  231,
-       66,   50,   58,   84, 1077,   59,   59,   50,   62,   64,
-       62,   62,   62,   62,  121,   54,  167,   64,   64,   64,
-       64,   64,   64,   66,   59,   63,  124,  124,   64,   68,
-
-       68,   68,   68,   71,   71,   71,   71,   73,   73,   73,
-       73,   87,   87,   63,   63, 1076,   63,  121,   63,  167,
-       63,   63,   63,   63,  213,   63,  213,   63,   63,   63,
-       75,  323,   75,   63,   75,   75,   77,   78,   77,   77,
-       77,   77,   85,   85,   85,   85,  980,   78,   78,   78,
-       78,   80,   87,   80,   80,   80,   80,   86,   86,   86,
-       86,  131,  131,  214,   80,  214,   83,  323,   80,   83,
-       83,   83,   83,   83,   78,   78,  136,  136, 1073,   78,
-       80,   93,  131,   93,   93,   93,   93,   94,   94,   94,
-       94,  980,  100,   96,  100,  100,  101,  101,  101,  101,
-
-       96,  234,  109,   96,  109,  109,  234,   96,  104,  104,
-      104,  104,  126,  126,  120,   94,  120,  120,   96,   94,
-       95,  126,   95,   95,   95,   95,   96,  105,  105,  105,
-      105,  116,   95,   95,  138,  138,  104,   95,  116,   95,
-      104,  116,   95,  150,  150,  116,   95,  810,  113,   95,
-      113,  113,  113,  113,  140,  140,  116,   95,  134,  134,
-      134,  134,  810,  140,  116,   95,   98,   98,  810,   98,
-       98,   98,   98,   98,   98,   98,   98,   98,   98,   98,
-       98, 1070,   98,   98,  114,  114,  114,  114,   98,   98,
-       98,   98,  463,  106,  463,  106,  106,  106,  106,  135,
-
-      135,  135,  135,  152,  152,   98,  106,  127,  127,  849,
-      106,  849,  114,  125,  125,  239,  114,  125,  154,  154,
-      239,  127,  106,  127,  127,  127,  127,  154, 1069,   98,
-       98,   99,   99,  239,   99,   99,   99,   99,   99,   99,
-       99,   99,   99,   99,   99,   99,  863,   99,   99,  863,
-      125,  145,  145,   99,   99,   99,   99,  130,  148,  148,
-      148,  148,  128,  128,  130,  139,  139,  130,  279,  139,
-       99,  130,  145,  279,  182, 1068,   99,  206,  128,  128,
-      128,  128,  130,  149,  149,  149,  149,  153,  153,  206,
-      130,  153,  222,  222,   99,   99,  115, 1066,  115,  115,
-
-      115,  115,  139,  225,  225,  225,  128,  182,  115,  115,
-      128,  159,  159,  115,  176,  115,  176,  176,  115,  929,
-      141,  141,  115,  929,  153,  115,  162,  162,  162,  162,
-      230,  230,  159,  115,  141, 1065,  141,  141,  141,  141,
-      290,  115,  118,  118,  118,  118,  118,  118,  290,  118,
-      118,  118,  118,  118,  118,  118,  118, 1064,  118,  118,
-      163,  163,  163,  163,  118,  118,  118,  118,  155,  155,
-      169,  299,  169,  169,  169,  169,  244,  244,  142,  142,
-      867,  118,  155,  867,  155,  155,  155,  155,  177,  177,
-      177,  177,  263,  263,  142,  142,  142,  142,  178,  974,
-
-      178,  178,  265,  265,  299,  118,  118,  119,  119,  119,
-      119,  119,  119,  178,  119,  119,  119,  119,  119,  119,
-      119,  119,  142,  119,  119, 1063,  142,  424,  144,  119,
-      119,  119,  119,  232,  158,  144,  291,  232,  144,  156,
-      156,  158,  144,  291,  158,  974,  119,  179,  158,  179,
-      179,  232,  119,  144,  854,  156,  156,  156,  156,  158,
-      424,  144,  186,  186,  186,  186, 1056,  158,  266,  266,
-      119,  119,  129,  129,  170,  170,  170,  170,  187,  187,
-      187,  187,  854,  156,  267,  267,  129,  156,  129,  129,
-      129,  129,  188,  188,  188,  188,  501,  172,  129,  129,
-
-      276,  276,  170,  129,  172,  129,  170,  172,  129,  309,
-      309,  172,  129, 1051,  247,  129,  189,  189,  189,  189,
-     1050,  247,  172,  129,  196,  196,  196,  196,  247,  501,
-      172,  129,  132,  132,  132,  132,  132,  132,  132,  132,
-      132,  132,  132,  132,  132,  132,  132,  507,  132,  132,
-      269,  251,  269,  269,  132,  132,  132,  132,  251,  197,
-      925,  197,  197,  197,  197,  251,  200,  200,  200,  200,
-      211,  132,  197, 1047,  211,  253,  197,  200,  211,  223,
-      507,  223,  253,  925,  223,  223,  223,  223,  197,  253,
-      312,  312,  312,  200,  977,  132,  132,  133,  133,  133,
+       41,   41,  121,   49,   52,   54,   51,   56,   41,   41,
+       49,   52,   54,   51,  213,   41,  213,   49,   41,   54,
+       51,  214,   41,  214,   42,   41,   42,   42,   42,   42,
+
+       69,   69,   48,   41,  456,  121,  456,   42,  206,   48,
+       52,   41,   48,   48,   48,   48,   48,   56,   49,   54,
+      206,  112, 1072,   42,   43,  112,   43,   51, 1070,   43,
+      112,   50,   43,   43,   43,   43,   43,   43,   50,   53,
+       43,   69,   43,   43, 1069,   50,   53,   57,  848,   57,
+       57,   59,   59,   53,   66,   58,   58,   58,   58, 1066,
+       84,   66,   57,   61,   61,   61,   61,   84,   66,   50,
+       58,  124,  124,   59,   59,   50,   53,   62,  848,   62,
+       62,   62,   62,   87,   87,   67,   64,   67,   67,   53,
+       84,   66,   59,   63,   64,   64,   64,   64,   64,   64,
+
+       68,   68,   68,   68,  653,   64,   71,   71,   71,   71,
+      167,   63,   63,  653,   63,  182,   63, 1063,   63,   63,
+       63,   63,  230,   63,   87,   63,   63,   63,  126,  126,
+      230,   63,   73,   73,   73,   73,   75,  126,   75,   78,
+       75,   75,   77,  167,   77,   77,   77,   77,  182,   78,
+       78,   78,   78,   80, 1062,   80,   80,   80,   80,   85,
+       85,   85,   85,  453,   83,  847,   80,   83,   83,   83,
+       83,   83,   86,   86,   86,   86,   78,   78,  136,  136,
+      453,   78,   80,   93, 1061,   93,   93,   93,   93,   94,
+       94,   94,   94,  847,  100,   96,  100,  100,  101,  101,
+
+      101,  101,   96,  233,  109,   96,  109,  109,  233,   96,
+      104,  104,  104,  104,  138,  138,  120,   94,  120,  120,
+       96,   94,   95, 1059,   95,   95,   95,   95,   96,  105,
+      105,  105,  105,  116,   95,   95,  131,  131,  104, 1058,
+      116,   95,  104,  116,   95,  150,  150,  116,   95, 1057,
+      113,   95,  113,  113,  113,  113,  216,  131,  116,   95,
+      134,  134,  134,  134,  152,  152,  116,   95,   98,   98,
+      216,   98,   98,   98,   98,   98,   98,   98,   98,   98,
+       98,   98,   98,  918,   98,   98,  114,  114,  114,  114,
+       98,   98,   98,   98,  842,  106,  842,  106,  106,  106,
+
+      106,  140,  140,  127,  127,  211,  918,   98,  106,  211,
+      140,  125,  125,  211,  114,  125,  290,  127,  114,  127,
+      127,  127,  127,  290,  106,  135,  135,  135,  135,  222,
+      222,   98,   98,   99,   99,  321,   99,   99,   99,   99,
+       99,   99,   99,   99,   99,   99,   99,   99,  125,   99,
+       99,  128,  128,  145,  145,   99,   99,   99,   99,  148,
+      148,  148,  148,  149,  149,  149,  149,  128,  128,  128,
+      128,  321,   99,  852,  145,  852,  139,  139,   99,  130,
+      139,  153,  153,  154,  154,  153,  130,  229,  229,  130,
+      142,  142,  154,  130, 1056,  128,   99,   99,  115,  128,
+
+      115,  115,  115,  115,  130,  973,  142,  142,  142,  142,
+      115,  115,  130,  139,  141,  141,  856,  115,  153,  856,
+      115,  159,  159,  176,  115,  176,  176,  115,  141,  298,
+      141,  141,  141,  141,  142,  115,  278,  179,  142,  179,
+      179,  278,  159,  115,  118,  118,  118,  118,  118,  118,
+      973,  118,  118,  118,  118,  118,  118,  118,  118, 1049,
+      118,  118,  298,  144,  243,  243,  118,  118,  118,  118,
+      144,  246,  158,  144, 1044,  155,  155,  144,  246,  158,
+      262,  262,  158,  118, 1043,  246,  158,  289,  144,  155,
+     1040,  155,  155,  155,  155,  289,  144,  158,  162,  162,
+
+      162,  162,  224,  224,  224,  158,  969,  118,  118,  119,
+      119,  119,  119,  119,  119,  702,  119,  119,  119,  119,
+      119,  119,  119,  119,  969,  119,  119,  163,  163,  163,
+      163,  119,  119,  119,  119,  170,  170,  170,  170,  156,
+      156,  169,  702,  169,  169,  169,  169,  231,  119,  264,
+      264,  231,  172,  418,  119,  156,  156,  156,  156,  172,
+      265,  265,  172,  170,  974,  231,  172,  170,  177,  177,
+      177,  177,  119,  119,  129,  129,  271,  172,  975,  178,
+      271,  178,  178,  156,  271,  172,  418,  156,  129, 1039,
+      129,  129,  129,  129,  178,  186,  186,  186,  186,  494,
+
+      129,  129,  187,  187,  187,  187,  238,  129,  250,  974,
+      129,  238,  266,  266,  129,  250,  500,  129,  188,  188,
+      188,  188,  250,  975,  238,  129,  189,  189,  189,  189,
+      267,  267,  494,  129,  132,  132,  132,  132,  132,  132,
+      132,  132,  132,  132,  132,  132,  132,  132,  132,  500,
+      132,  132,  196,  196,  196,  196,  132,  132,  132,  132,
+     1011,  197, 1011,  197,  197,  197,  197,  200,  200,  200,
+      200,  275,  275,  132,  197,  223, 1037,  223,  200,  249,
+      223,  223,  223,  223,  308,  308,  249,  267, 1036,  268,
+      197,  268,  268,  249,  200,  332,  332,  132,  132,  133,
 
       133,  133,  133,  133,  133,  133,  133,  133,  133,  133,
-      133,  133,  977,  133,  133,  268,  268,  253,  253,  133,
-      133,  133,  133,  221,  221,  221,  221,  272,  334,  334,
-      294,  272, 1046,  249,  221,  272,  133,  294,  344,  344,
-      249,  250,  133,  249,  249,  249,  249,  249,  250,  314,
-      221,  252,  254,  871,  314,  250,  871,  255,  252,  254,
-      133,  133,  143,  143,  255,  252,  254, 1044,  256,  339,
-      257,  255,  268,  294,  339,  256,  143,  257,  143,  143,
-      143,  143,  256,  280,  257,  280,  280,  254,  143,  143,
-      859,  250,  859,  143,  262,  143,  262,  262,  143,  346,
-
-      346,  252,  143,  349,  349,  143, 1043,  255,  318,  262,
-      318,  318,  257,  143,  350,  350,  256,  281,  281,  281,
-      281,  143,  146,  146,  146,  146,  146,  146,  146,  146,
-      146,  146,  146,  146,  146,  146,  146, 1042,  146,  146,
-      283,  283,  283,  283,  146,  146,  146,  146,  285,  285,
-      285,  285,  285,  293,  361,  361,  293,  293,  293,  293,
-      293,  146,  295,  295,  295,  295,  296,  296,  296,  296,
-      303,  303,  303,  303,  310,  324,  310,  324,  324,  310,
-      310,  310,  310,  370,  370,  146,  146,  147,  147,  147,
+      133,  133,  133,  133,  919,  133,  133,  261, 1035,  261,
+      261,  133,  133,  133,  133,  221,  221,  221,  221,  249,
+     1033,  279,  261,  279,  279,  248,  221,  919,  133,  310,
+      310,  310,  248,  251,  133,  248,  248,  248,  248,  248,
+      251,  293,  221,  252,  253,  341,  341,  251,  293,  254,
+      252,  253,  133,  133,  143,  143,  254,  252,  253,  312,
+      255,  336,  256,  254,  312,  534,  336,  255,  143,  256,
+      143,  143,  143,  143,  255,  316,  256,  316,  316,  253,
+      143,  143, 1032,  251,  293,  252,  252,  143, 1031,  322,
+
+      143,  322,  322,  340,  143,  340,  340,  143,  534,  254,
+      280,  280,  280,  280,  256,  143,  343,  343,  255,  282,
+      282,  282,  282,  143,  146,  146,  146,  146,  146,  146,
+      146,  146,  146,  146,  146,  146,  146,  146,  146, 1030,
+      146,  146,  294,  294,  294,  294,  146,  146,  146,  146,
+      284,  284,  284,  284,  284,  292,  346,  346,  292,  292,
+      292,  292,  292,  146,  295,  295,  295,  295,  302,  302,
+      302,  302,  309, 1028,  309,  347,  347,  309,  309,  309,
+      309,  326,  326,  326,  326,  353,  353,  146,  146,  147,
       147,  147,  147,  147,  147,  147,  147,  147,  147,  147,
 
-      147,  147, 1040,  147,  147,  328,  328,  328,  328,  147,
-      147,  147,  147, 1018,  304, 1018,  304,  304,  304,  304,
-      372,  372,  305,  305,  305,  305,  147,  304,  337,  337,
-      337,  304,  147,  305,  308,  308,  308,  308,  326,  351,
-      351,  439,  326,  304, 1039,  308,  439,  326,  351,  305,
-      147,  147,  157,  157,  343,  709,  343,  343,  352,  352,
-      322,  308,  322,  322,  322,  322,  157,  352,  157,  157,
-      157,  157, 1038,  322,  375,  375,  549,  322,  157,  157,
-      356,  356,  709,  157, 1037,  157,  357,  357,  157,  322,
-      930,  335,  157,  335,  930,  157,  335,  335,  335,  335,
-
-      549,  347,  347,  157,  549,  347,  368,  368,  368,  368,
-     1035,  157,  160,  160,  160,  160,  160,  160,  160,  160,
-      160,  160,  160,  160,  160,  160,  160,  356,  160,  160,
-      376,  376,  926,  357,  160,  160,  160,  160,  347,  329,
-      710,  329,  329,  329,  329,  923,  330,  330,  330,  330,
-      923,  160,  329,  353,  353,  926,  329,  330,  348,  348,
-      387,  387,  348,  369,  369,  369,  369,  710,  329,  353,
-      353,  353,  353,  330, 1034,  160,  160,  161,  161,  161,
+      147,  147,  147,  147,  703,  147,  147,  334,  334,  334,
+      432,  147,  147,  147,  147,  432,  303, 1027,  303,  303,
+      303,  303,  304,  304,  304,  304,  344,  344,  147,  303,
+      344,  703,  353,  304,  147,  307,  307,  307,  307,  324,
+      345,  345,  916,  324,  345,  303,  307,  916,  324,  304,
+      366,  366,  147,  147,  157,  157,  320, 1026,  320,  320,
+      320,  320,  307,  344,  328,  328,  328,  328,  157,  320,
+      157,  157,  157,  157, 1013,  328, 1013,  345,  368,  368,
+      157,  157,  922,  348,  348,  320,  922,  157,  354,  354,
+      157,  328,  348,  333,  157,  333,  536,  157,  333,  333,
+
+      333,  333,  349,  349, 1024,  157,  364,  364,  364,  364,
+     1016,  349,  976,  157,  160,  160,  160,  160,  160,  160,
+      160,  160,  160,  160,  160,  160,  160,  160,  160,  536,
+      160,  160,  371,  371, 1014,  354,  160,  160,  160,  160,
+     1015,  327, 1015,  327,  327,  327,  327,  331,  331,  331,
+      331,  356,  356,  160,  327,  358,  358,  976,  331, 1012,
+      360,  360,  369,  369,  360, 1010,  369,  356,  356,  360,
+      327,  358,  358,  358,  331,  372,  372,  160,  160,  161,
       161,  161,  161,  161,  161,  161,  161,  161,  161,  161,
-      161,  161, 1033,  161,  161,  348,  359,  359,  794,  161,
-
-      161,  161,  161,  333,  333,  333,  333,  355,  355,  377,
-      377,  794,  359,  359,  333,  931,  161,  794,  377,  931,
-      360,  360,  161,  355,  355,  355,  355,  541,  373,  373,
-      333,  360,  373,  360,  355, 1031,  360,  360,  360,  360,
-      161,  161,  171,  543,  171,  171,  171,  171,  374,  374,
-      355, 1023,  374,  924,  171,  171,  362,  362,  924,  171,
-      541,  171,  382,  382,  171,  373,  364,  364,  171,  981,
-      364,  171,  362,  362,  362,  364,  543,  378,  378,  171,
-      396,  396, 1021,  383,  383,  374,  378,  171,  174,  174,
-     1019,  174,  174,  174,  174,  174,  174,  174,  174,  174,
-
-      174,  174,  174, 1017,  174,  174,  358,  358,  855,  382,
-      174,  174,  174,  174,  981,  385,  385,  613,  379,  379,
-      398,  398,  358,  358,  358,  358, 1016,  174,  381,  381,
-      383,  385,  385,  358,  379,  379,  379,  379,  855,  390,
-      390,  401,  401,  390,  381,  381,  381,  381,  390,  358,
-      613,  174,  174,  175,  175,  381,  175,  175,  175,  175,
-      175,  175,  175,  175,  175,  175,  175,  175, 1015,  175,
-      175,  381,  384,  384, 1014,  175,  175,  175,  175,  394,
-      394,  394,  394, 1012,  386,  386,  402,  402,  384,  384,
-      384,  384,  175,  388,  388,  386, 1011,  386,  175,  384,
-
-      386,  386,  386,  386,  395,  395,  395,  395,  932,  388,
-      388,  388,  932,  403,  403,  384,  175,  175,  313,  313,
-      313,  313,  403,  404,  404,  413,  413,  313,  313,  313,
-      399,  399,  404, 1010,  399,  615,  400,  400,  408,  408,
-      400,  313,  313,  313,  313,  313,  313,  315,  315, 1009,
-      315,  315,  315,  315,  315,  315,  315,  315,  315,  315,
-      315,  315, 1008,  315,  315,  405,  405,  399,  615,  315,
-      315,  315,  315,  400,  411,  411,  412,  412,  434,  434,
-     1007,  405,  405,  405,  405,  408,  315,  412, 1006,  412,
-      411,  411,  412,  412,  412,  412,  416,  416,  477,  477,
-
-      416,  420,  420,  420,  420,  416,  421,  421,  421,  421,
-      315,  315,  316,  316, 1003,  316,  316,  316,  316,  316,
-      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
-      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
-      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
-      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
-      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
-      316,  316,  316,  316,  316,  316,  316,  317,  317, 1002,
-      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
-      317,  317,  927,  317,  317,  407,  407,  927,  486,  317,
-
-      317,  317,  317,  409,  409,  928,  486,  414,  414,  486,
-      928,  407,  407,  407,  407, 1001,  317,  428,  428,  428,
-      428, 1000,  407,  414,  414,  414,  536,  536,  430,  430,
-      430,  430,  437,  437,  437,  317,  518,  518,  407,  430,
-      317,  317,  338,  338,  338,  338,  443,  998,  443,  443,
-      409,  338,  338,  338,  435,  430,  435,  554,  554,  435,
-      435,  435,  435,  608,  608,  338,  338,  338,  338,  338,
-      338,  340,  340,  340,  340,  340,  340,  996,  340,  340,
-      340,  340,  340,  340,  340,  340,  972,  340,  340,  410,
-      410,  995,  518,  340,  340,  340,  340,  972,  429,  994,
-
-      429,  429,  429,  429,  972,  410,  410,  410,  410,  993,
-      340,  429,  480,  480,  480,  429,  410,  444,  992,  444,
-      444,  445,  445,  445,  445,  683,  683,  429,  446,  446,
-      446,  446,  410,  991,  340,  340,  341,  341,  341,  341,
-      341,  341,  341,  341,  341,  341,  341,  341,  341,  341,
-      341,  341,  341,  341,  341,  341,  341,  341,  341,  341,
-      341,  341,  341,  341,  341,  341,  341,  341,  341,  341,
-      341,  341,  341,  341,  341,  341,  341,  341,  341,  341,
-      341,  341,  341,  341,  341,  341,  341,  341,  341,  341,
-      341,  341,  341,  341,  341,  341,  341,  341,  341,  341,
-
-      341,  342,  342,  342,  342,  342,  342,  990,  342,  342,
-      342,  342,  342,  342,  342,  342,  989,  342,  342,  433,
-      433,  433,  433,  342,  342,  342,  342,  539,  539,  539,
-      433,  447,  447,  447,  447,  448,  448,  448,  448,  933,
-      342,  934,  449,  933,  449,  934,  433,  449,  449,  449,
-      449,  476,  476,  476,  476,  478,  478,  478,  478,  342,
-      706,  706,  476,  988,  342,  342,  354,  354,  479,  479,
-      479,  479,  509,  967,  510,  557,  557,  557,  476,  509,
-      354,  510,  354,  354,  354,  354,  509,  511,  510,  512,
-      667,  513,  514,  354,  511,  844,  512,  354,  513,  514,
-
-      515,  511,  844,  512,  965,  513,  514,  515,  517,  354,
-      363,  363,  559,  531,  515,  517,  559,  566,  566,  510,
-      531,  559,  517,  667,  564,  564,  363,  363,  363,  363,
-      844,  512,  516,  566,  566,  363,  363,  363,  515,  516,
-      727,  727,  515,  672,  531,  517,  516,  975,  531,  363,
-      363,  363,  363,  363,  363,  365,  365,  365,  365,  365,
-      365,  365,  365,  365,  365,  365,  365,  365,  365,  365,
-      964,  365,  365,  516,  564,  963,  672,  365,  365,  365,
-      365,  524,  524,  524,  524,  524,  537,  537,  537,  537,
-      532,  962,  532,  975,  365,  532,  532,  532,  532,  538,
-
-      538,  538,  538,  550,  960,  550,  728,  728,  550,  550,
-      550,  550,  555,  555,  555,  555,  733,  733,  365,  365,
-      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
-      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
-      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
-      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
-      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
-      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
-      366,  366,  366,  366,  366,  367,  367,  367,  367,  367,
-      367,  367,  367,  367,  367,  367,  367,  367,  367,  367,
-
-      695,  367,  367,  535,  535,  535,  535,  367,  367,  367,
-      367,  563,  563,  959,  535,  553,  553,  553,  553,  556,
-      556,  556,  556,  935,  367,  699,  553,  935,  562,  562,
-      535,  572,  572,  695,  578,  578,  565,  565,  958,  562,
-      572,  562,  553,  367,  562,  562,  562,  562,  367,  367,
-      380,  380,  565,  565,  565,  565,  567,  567,  699,  563,
-      611,  611,  611,  565,  380,  957,  380,  380,  380,  380,
-      568,  568,  567,  567,  567,  567,  936,  380,  677,  565,
-      936,  380,  569,  569,  578,  677,  568,  568,  568,  568,
-      576,  576,  677,  380,  389,  389,  586,  586,  569,  569,
-
-      569,  576, 1020,  576, 1020,  586,  576,  576,  576,  576,
-      389,  389,  389,  389,  580,  580,  592,  592,  956,  389,
-      389,  389,  571,  571,  577,  577,  571,  779,  573,  573,
-      580,  580,  573,  389,  389,  389,  389,  389,  389,  391,
-      391,  391,  391,  391,  391,  391,  391,  391,  391,  391,
-      391,  391,  391,  391,  982,  391,  391,  579,  579,  571,
-      779,  391,  391,  391,  391,  573,  592,  734,  734,  581,
-      581,  955,  577,  579,  579,  579,  579,  954,  391,  582,
-      582,  600,  600,  953,  579,  581,  581,  581,  581,  951,
-      600,  609,  609,  609,  609,  582,  582,  582,  582,  982,
-
-      579,  950,  391,  391,  392,  392,  392,  392,  392,  392,
-      392,  392,  392,  392,  392,  392,  392,  392,  392,  392,
-      392,  392,  392,  392,  392,  392,  392,  392,  392,  392,
-      392,  392,  392,  392,  392,  392,  392,  392,  392,  392,
-      392,  392,  392,  392,  392,  392,  392,  392,  392,  392,
-      392,  392,  392,  392,  392,  392,  392,  392,  392,  392,
-      392,  392,  392,  392,  392,  392,  392,  392,  392,  393,
-      393,  393,  393,  393,  393,  393,  393,  393,  393,  393,
-      393,  393,  393,  393,  949,  393,  393,  583,  583,  591,
-      591,  393,  393,  393,  393,  983,  736,  736,  594,  594,
-
-      736,  595,  595,  583,  583,  583,  585,  585,  393,  783,
-      585,  948,  587,  587,  594,  594,  587,  595,  595,  595,
-      595,  599,  599,  689,  678,  599,  947,  393,  590,  590,
-      689,  678,  393,  393,  406,  406,  946,  591,  678,  590,
-      983,  590,  783,  585,  590,  590,  590,  590,  406,  587,
-      406,  406,  406,  406,  945,  593,  593,  689,  599,  944,
-      715,  406,  601,  601,  715,  406,  601,  596,  596,  715,
-      943,  593,  593,  593,  593,  597,  597,  406,  415,  415,
-      745,  745,  593,  596,  596,  596,  596,  610,  610,  610,
-      610,  597,  597,  597,  415,  415,  415,  415,  593,  601,
-
-      746,  746,  682,  415,  415,  415,  604,  875,  604,  682,
-      875,  604,  604,  604,  604,  978,  682,  415,  415,  415,
-      415,  415,  415,  417,  417,  417,  417,  417,  417,  417,
-      417,  417,  417,  417,  417,  417,  417,  417,  942,  417,
-      417,  607,  607,  607,  607,  417,  417,  417,  417,  751,
-      751,  682,  607,  618,  618,  618,  618,  619,  619,  619,
-      619,  978,  417,  691,  691,  691,  691,  941,  607,  692,
-      692,  692,  692,  711,  711,  711,  711,  712,  712,  712,
-      712,  752,  752,  763,  763,  940,  417,  417,  418,  418,
-      418,  418,  418,  418,  418,  418,  418,  418,  418,  418,
-
-      418,  418,  418,  418,  418,  418,  418,  418,  418,  418,
-      418,  418,  418,  418,  418,  418,  418,  418,  418,  418,
-      418,  418,  418,  418,  418,  418,  418,  418,  418,  418,
-      418,  418,  418,  418,  418,  418,  418,  418,  418,  418,
-      418,  418,  418,  418,  418,  418,  418,  418,  418,  418,
-      418,  418,  418,  419,  419,  419,  419,  419,  419,  419,
-      419,  419,  419,  419,  419,  419,  419,  419,  939,  419,
-      419,  937,  679,  680,  915,  419,  419,  419,  419,  679,
-      680,  681,  721,  721,  764,  764,  679,  680,  681,  690,
-      722,  722,  419,  723,  723,  681,  690,  914,  721,  721,
-
-      721,  721,  912,  729,  729,  911,  722,  722,  722,  722,
-      909,  419,  729,  679,  680,  908,  419,  419,  438,  438,
-      438,  438, 1022,  690, 1022,  681,  907,  438,  438,  438,
-      724,  724,  904,  754,  754,  903,  723,  754,  902,  741,
-      741,  438,  438,  438,  438,  438,  438,  440,  440,  901,
-      440,  440,  440,  440,  440,  440,  440,  440,  440,  440,
-      440,  440,  984,  440,  440,  730,  730,  769,  769,  440,
-      440,  440,  440,  724,  730,  739,  739,  725,  725,  740,
-      740,  725,  741,  770,  770,  900,  440,  757,  757,  839,
-      839,  739,  739,  739,  739,  740,  740,  740,  740,  747,
-
-      747,  860,  860,  757,  757,  757,  757,  984,  747,  898,
-      440,  440,  441,  441,  725,  441,  441,  441,  441,  441,
-      441,  441,  441,  441,  441,  441,  441,  441,  441,  441,
-      441,  441,  441,  441,  441,  441,  441,  441,  441,  441,
-      441,  441,  441,  441,  441,  441,  441,  441,  441,  441,
-      441,  441,  441,  441,  441,  441,  441,  441,  441,  441,
-      441,  441,  441,  441,  441,  441,  441,  441,  441,  441,
-      441,  441,  441,  441,  441,  441,  441,  442,  442,  897,
-      442,  442,  442,  442,  442,  442,  442,  442,  442,  442,
-      442,  442,  985,  442,  442,  742,  742,  748,  748,  442,
-
-      442,  442,  442,  979,  759,  759,  748,  760,  760,  726,
-      726,  731,  731,  726,  896,  731,  442,  732,  732,  743,
-      743,  732,  895,  743,  744,  744,  749,  749,  744, 1030,
-      749, 1030,  772,  772,  894,  442,  772,  985,  742,  893,
-      442,  442,  540,  540,  540,  540,  726,  759,  731,  979,
-      760,  540,  540,  540,  732,  845,  743,  775,  775,  775,
-      775,  744,  845,  749,  891,  540,  540,  540,  540,  540,
-      540,  544,  544,  890,  544,  544,  544,  544,  544,  544,
-      544,  544,  544,  544,  544,  544,  889,  544,  544,  888,
-      758,  758,  845,  544,  544,  544,  544,  776,  776,  776,
-
-      776,  750,  750,  765,  765,  750,  758,  758,  758,  758,
-      544,  886,  765,  766,  766,  861,  861,  862,  862,  864,
-      864,  885,  766,  865,  865,  866,  866,  868,  868,  869,
-      869,  870,  870,  884,  544,  544,  545,  545,  750,  545,
-      545,  545,  545,  545,  545,  545,  545,  545,  545,  545,
-      545,  545,  545,  545,  545,  545,  545,  545,  545,  545,
-      545,  545,  545,  545,  545,  545,  545,  545,  545,  545,
-      545,  545,  545,  545,  545,  545,  545,  545,  545,  545,
-      545,  545,  545,  545,  545,  545,  545,  545,  545,  545,
-      545,  545,  545,  545,  545,  545,  545,  545,  545,  545,
-
-      545,  558,  558,  558,  558,  874,  874,  883,  837,  882,
-      558,  558,  558,  761,  761,  837,  881,  761,  880,  762,
-      762,  879,  837,  762,  558,  558,  558,  558,  558,  558,
-      560,  560,  560,  560,  560,  560,  877,  560,  560,  560,
-      560,  560,  560,  560,  560,  986,  560,  560, 1059, 1059,
-      761,  921,  560,  560,  560,  560,  762,  837,  921,  918,
-      919,  973,  876,  938,  767,  767,  918,  919,  767,  560,
-     1060, 1060,  973,  918,  919,  920,  938,  920,  920,  973,
-      851,  921,  938,  971,  842,  971,  971, 1024, 1024, 1024,
-      986, 1024,  833,  560,  560,  561,  561,  561,  561,  561,
-
-      561,  767,  561,  561,  561,  561,  561,  561,  561,  561,
-      561,  561,  561,  561,  561,  561,  561,  561,  561,  561,
-      561,  561,  561,  561,  561,  561,  561,  561,  561,  561,
-      561,  561,  561,  561,  561,  561,  561,  561,  561,  561,
-      561,  561,  561,  561,  561,  561,  561,  561,  561,  561,
-      561,  561,  561,  561,  561,  561,  561,  561,  561,  561,
-      570,  570,  969,  922,  970,  832,  969,  831,  970,  830,
-      922, 1061, 1061,  969,  829,  970,  570,  570,  570,  570,
-      969,  828,  970,  916,  834,  570,  570,  570,  768,  768,
-      916,  834,  768,  922,  987,  827,  826,  916,  834,  570,
-
-      570,  570,  570,  570,  570,  574,  574,  574,  574,  574,
-      574,  574,  574,  574,  574,  574,  574,  574,  574,  574,
-      916,  574,  574,  825,  836,  768,  834,  574,  574,  574,
-      574,  836, 1025, 1025, 1025, 1027, 1027, 1027,  836,  987,
-      824, 1026, 1026, 1026,  574, 1026, 1028, 1028, 1028,  823,
-     1028, 1029, 1029, 1029,  822,  819,  818,  816,  814,  812,
-      811,  809,  808,  836,  807,  806,  805,  804,  574,  574,
-      575,  575,  575,  575,  575,  575,  575,  575,  575,  575,
-      575,  575,  575,  575,  575,  575,  575,  575,  575,  575,
-      575,  575,  575,  575,  575,  575,  575,  575,  575,  575,
-
-      575,  575,  575,  575,  575,  575,  575,  575,  575,  575,
-      575,  575,  575,  575,  575,  575,  575,  575,  575,  575,
-      575,  575,  575,  575,  575,  575,  575,  575,  575,  575,
-      575,  575,  575,  575,  575,  584,  584,  803,  802,  801,
-      799,  798,  797,  796,  793,  791,  790,  789,  787,  782,
-      778,  584,  584,  584,  584,  777,  835,  774,  917,  756,
-      584,  584,  584,  835,  738,  917,  720,  718,  714,  713,
-      835,  708,  917,  707,  584,  584,  584,  584,  584,  584,
-      588,  588,  588,  588,  588,  588,  588,  588,  588,  588,
-      588,  588,  588,  588,  588,  917,  588,  588,  705,  703,
-
-      835,  698,  588,  588,  588,  588,  694,  693,  688,  687,
-      686,  685,  676,  675,  670,  666,  665,  664,  663,  588,
-      662,  661,  659,  658,  657,  656,  655,  654,  652,  651,
-      650,  649,  648,  647,  646,  645,  644,  642,  641,  640,
-      639,  638,  637,  588,  588,  589,  589,  589,  589,  589,
-      589,  589,  589,  589,  589,  589,  589,  589,  589,  589,
-      589,  589,  589,  589,  589,  589,  589,  589,  589,  589,
-      589,  589,  589,  589,  589,  589,  589,  589,  589,  589,
-      589,  589,  589,  589,  589,  589,  589,  589,  589,  589,
-      589,  589,  589,  589,  589,  589,  589,  589,  589,  589,
-
-      589,  589,  589,  589,  589,  589,  589,  589,  589,  589,
-      598,  598,  636,  635,  634,  633,  632,  630,  629,  628,
-      627,  626,  625,  624,  623,  622,  598,  598,  598,  598,
-      621,  614,  606,  605,  552,  598,  598,  598,  551,  548,
-      547,  546,  542,  534,  533,  530,  529,  528,  527,  598,
-      598,  598,  598,  598,  598,  602,  602,  602,  602,  602,
-      602,  602,  602,  602,  602,  602,  602,  602,  602,  602,
-      522,  602,  602,  521,  520,  519,  508,  602,  602,  602,
-      602,  505,  502,  500,  499,  498,  497,  496,  495,  494,
-      493,  492,  491,  490,  602,  489,  488,  487,  485,  484,
-
-      483,  482,  474,  473,  472,  471,  470,  469,  468,  467,
-      466,  465,  464,  462,  461,  459,  458,  457,  602,  602,
-      603,  603,  603,  603,  603,  603,  603,  603,  603,  603,
-      603,  603,  603,  603,  603,  603,  603,  603,  603,  603,
-      603,  603,  603,  603,  603,  603,  603,  603,  603,  603,
-      603,  603,  603,  603,  603,  603,  603,  603,  603,  603,
-      603,  603,  603,  603,  603,  603,  603,  603,  603,  603,
-      603,  603,  603,  603,  603,  603,  603,  603,  603,  603,
-      603,  603,  603,  603,  603,  612,  612,  612,  612,  456,
-      455,  454,  453,  452,  612,  612,  612,  451,  432,  431,
-
-      427,  332,  331,  321,  320,  319,  307,  306,  612,  612,
-      612,  612,  612,  612,  616,  616,  302,  616,  616,  616,
-      616,  616,  616,  616,  616,  616,  616,  616,  616,  292,
-      616,  616,  289,  288,  284,  278,  616,  616,  616,  616,
-      277,  275,  274,  273,  271,  270,  248,  246,  245,  238,
-      237,  235,  229,  616,  228,  227,  219,  218,  217,  215,
-      210,  208,  207,  205,  204,  203,  193,  173,  168,  166,
-      117,  107,  102,   97,   92,   90,   81,  616,  616,  617,
-      617,   76,  617,  617,  617,  617,  617,  617,  617,  617,
-      617,  617,  617,  617,  617,  617,  617,  617,  617,  617,
-
-      617,  617,  617,  617,  617,  617,  617,  617,  617,  617,
-      617,  617,  617,  617,  617,  617,  617,  617,  617,  617,
-      617,  617,  617,  617,  617,  617,  617,  617,  617,  617,
-      617,  617,  617,  617,  617,  617,  617,  617,  617,  617,
-      617,  617,  617,  617,  702,  702,   65,  702,  702,  702,
-      702,  702,  702,  702,  702,  702,  702,  702,  702,   34,
-      702,  702,   32,   28,   23,    0,  702,  702,  702,  702,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,  702,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-
-        0,    0,    0,    0,    0,    0,    0,  702,  702,  704,
-      704,    0,  704,  704,  704,  704,  704,  704,  704,  704,
-      704,  704,  704,  704,  704,  704,  704,  704,  704,  704,
-      704,  704,  704,  704,  704,  704,  704,  704,  704,  704,
-      704,  704,  704,  704,  704,  704,  704,  704,  704,  704,
-      704,  704,  704,  704,  704,  704,  704,  704,  704,  704,
-      704,  704,  704,  704,  704,  704,  704,  704,  704,  704,
-      704,  704,  704,  704,  717,  717,  717,  717,  717,  717,
-        0,  717,  717,  717,  717,  717,  717,  717,  717,    0,
-      717,  717,    0,    0,    0,    0,  717,  717,  717,  717,
+      161,  161,  161,  161, 1009,  161,  161,  350,  350,  369,
 
+      606,  161,  161,  161,  161,  365,  365,  365,  365,  351,
+      351,  373,  373,  350,  350,  350,  350,  542,  161, 1008,
+      373,  357,  357,  351,  161,  351,  351,  351,  351,  391,
+      391,  923,  357,  606,  357,  923,  351,  357,  357,  357,
+      357,  542,  161,  161,  171,  542,  171,  171,  171,  171,
+      370,  370,  351,  608,  370,  660,  171,  171,  374,  374,
+      375,  375,  970,  171,  378,  378,  171,  374,  381,  381,
+      171,  379,  379,  171,  393,  393,  375,  375,  375,  375,
+      970,  171,  396,  396,  381,  381,  608,  370,  660,  171,
+      174,  174, 1007,  174,  174,  174,  174,  174,  174,  174,
+
+      174,  174,  174,  174,  174,  917,  174,  174,  352,  352,
+      917,  378,  174,  174,  174,  174,  397,  397,  379,  385,
+      385,  382,  382,  385,  352,  352,  352,  352,  385,  174,
+      355,  355,  382,  860,  382,  352,  860,  382,  382,  382,
+      382,  389,  389,  389,  389,  920,  355,  355,  355,  355,
+      920,  352,  665,  174,  174,  175,  175,  355,  175,  175,
+      175,  175,  175,  175,  175,  175,  175,  175,  175,  175,
+     1005,  175,  175,  355,  376,  376, 1004,  175,  175,  175,
+      175,  390,  390,  390,  390,  665,  383,  383,  376, 1003,
+      376,  376,  376,  376,  175,  394,  394,  377,  377,  394,
+
+      175,  376,  383,  383,  383,  395,  395,  428,  428,  395,
+      430,  430,  430,  377,  377,  377,  377,  376,  175,  175,
+      311,  311,  311,  311,  377,  398,  398,  399,  399,  311,
+      311,  311,  394, 1002,  398,  436,  399,  436,  436, 1001,
+      377,  967,  395,  311,  311,  311,  311,  311,  311,  313,
+      313, 1000,  313,  313,  313,  313,  313,  313,  313,  313,
+      313,  313,  313,  313,  977,  313,  313,  380,  380,  403,
+      403,  313,  313,  313,  313,  406,  406,  470,  470,  400,
+      400,  529,  529,  380,  380,  380,  380,  967,  313,  407,
+      407,  406,  406,  999,  380,  400,  400,  400,  400,  996,
+
+      407,  437,  407,  437,  437,  407,  407,  407,  407,  977,
+      380,  995,  313,  313,  314,  314,  403,  314,  314,  314,
+      314,  314,  314,  314,  314,  314,  314,  314,  314,  314,
+      314,  314,  314,  314,  314,  314,  314,  314,  314,  314,
+      314,  314,  314,  314,  314,  314,  314,  314,  314,  314,
+      314,  314,  314,  314,  314,  314,  314,  314,  314,  314,
+      314,  314,  314,  314,  314,  314,  314,  314,  314,  314,
+      314,  314,  314,  314,  314,  314,  314,  314,  314,  315,
+      315,  994,  315,  315,  315,  315,  315,  315,  315,  315,
+      315,  315,  315,  315,  993,  315,  315,  401,  401,  688,
+
+      524,  315,  315,  315,  315,  408,  408,  524,  552,  402,
+      402,  401,  552,  401,  401,  401,  401,  552,  315,  404,
+      404,  408,  408,  408,  401,  402,  402,  402,  402,  410,
+      410,  524,  688,  410,  921,  524,  402,  315,  410,  921,
+      401,  991,  315,  315,  335,  335,  335,  335,  414,  414,
+      414,  414,  402,  335,  335,  335,  415,  415,  415,  415,
+      422,  422,  422,  422,  547,  547,  404,  335,  335,  335,
+      335,  335,  335,  337,  337,  337,  337,  337,  337,  989,
+      337,  337,  337,  337,  337,  337,  337,  337,  965,  337,
+      337,  405,  405,  601,  601,  337,  337,  337,  337,  965,
+
+      423,  988,  423,  423,  423,  423,  965,  405,  405,  405,
+      405,  924,  337,  423,  429,  924,  429,  987,  405,  429,
+      429,  429,  429,  438,  438,  438,  438,  676,  676,  423,
+      439,  439,  439,  439,  405,  986,  337,  337,  338,  338,
+      338,  338,  338,  338,  338,  338,  338,  338,  338,  338,
+      338,  338,  338,  338,  338,  338,  338,  338,  338,  338,
+      338,  338,  338,  338,  338,  338,  338,  338,  338,  338,
+      338,  338,  338,  338,  338,  338,  338,  338,  338,  338,
+      338,  338,  338,  338,  338,  338,  338,  338,  338,  338,
+      338,  338,  338,  338,  338,  338,  338,  338,  338,  338,
+
+      338,  338,  338,  339,  339,  339,  339,  339,  339,  985,
+      339,  339,  339,  339,  339,  339,  339,  339,  984,  339,
+      339,  424,  424,  424,  424,  339,  339,  339,  339,  473,
+      473,  473,  424,  427,  427,  427,  427,  440,  440,  440,
+      440,  983,  339,  925,  427,  511,  511,  925,  424,  441,
+      441,  441,  441,  471,  471,  471,  471,  442,  982,  442,
+      427,  339,  442,  442,  442,  442,  339,  339,  359,  359,
+      469,  469,  469,  469,  472,  472,  472,  472,  557,  557,
+      479,  469,  502,  981,  359,  359,  359,  359,  479,  502,
+      960,  479,  504,  359,  359,  359,  502,  469,  692,  504,
+
+      958,  511,  530,  530,  530,  530,  504,  359,  359,  359,
+      359,  359,  359,  361,  361,  361,  361,  361,  361,  361,
+      361,  361,  361,  361,  361,  361,  361,  361,  557,  361,
+      361,  692,  505,  506,  507,  361,  361,  361,  361,  505,
+      506,  507,  531,  531,  531,  531,  505,  506,  507,  532,
+      532,  532,  361,  517,  517,  517,  517,  517,  525,  957,
+      525,  699,  699,  525,  525,  525,  525,  548,  548,  548,
+      548,  550,  550,  550,  505,  956,  361,  361,  362,  362,
+      362,  362,  362,  362,  362,  362,  362,  362,  362,  362,
+      362,  362,  362,  362,  362,  362,  362,  362,  362,  362,
+
+      362,  362,  362,  362,  362,  362,  362,  362,  362,  362,
+      362,  362,  362,  362,  362,  362,  362,  362,  362,  362,
+      362,  362,  362,  362,  362,  362,  362,  362,  362,  362,
+      362,  362,  362,  362,  362,  362,  362,  362,  362,  362,
+      362,  362,  362,  363,  363,  363,  363,  363,  363,  363,
+      363,  363,  363,  363,  363,  363,  363,  363,  955,  363,
+      363,  720,  720,  509,  953,  363,  363,  363,  363,  503,
+      509,  556,  556,  508,  721,  721,  503,  509,  864,  510,
+      508,  864,  363,  503,  570,  570,  510,  508,  549,  549,
+      549,  549,  978,  510,  528,  528,  528,  528,  584,  584,
+
+     1023,  363, 1023,  670,  509,  528,  363,  363,  384,  384,
+      670,  508,  559,  559,  503,  508,  510,  670,  952,  556,
+      951,  528,  565,  565,  384,  384,  384,  384,  559,  559,
+      950,  565,  570,  384,  384,  384,  543,  978,  543,  571,
+      571,  543,  543,  543,  543,  968,  584,  384,  384,  384,
+      384,  384,  384,  386,  386,  386,  386,  386,  386,  386,
+      386,  386,  386,  386,  386,  386,  386,  386,  949,  386,
+      386,  546,  546,  546,  546,  386,  386,  386,  386,  604,
+      604,  604,  546,  555,  555,  948,  708,  560,  560,  571,
+      708,  968,  386,  926,  555,  708,  555,  926,  546,  555,
+
+      555,  555,  555,  560,  560,  560,  560,  597,  947,  597,
+      726,  726,  597,  597,  597,  597,  386,  386,  387,  387,
+      387,  387,  387,  387,  387,  387,  387,  387,  387,  387,
+      387,  387,  387,  387,  387,  387,  387,  387,  387,  387,
+      387,  387,  387,  387,  387,  387,  387,  387,  387,  387,
+      387,  387,  387,  387,  387,  387,  387,  387,  387,  387,
+      387,  387,  387,  387,  387,  387,  387,  387,  387,  387,
+      387,  387,  387,  387,  387,  387,  387,  387,  387,  387,
+      387,  387,  387,  388,  388,  388,  388,  388,  388,  388,
+      388,  388,  388,  388,  388,  388,  388,  388,  946,  388,
+
+      388,  558,  558,  579,  579,  388,  388,  388,  388,  562,
+      562,  944,  579,  561,  561,  593,  593,  558,  558,  558,
+      558,  772,  388,  943,  593,  562,  562,  562,  558,  561,
+      561,  561,  561,  564,  564,  566,  566,  564,  671,  566,
+      942,  388,  569,  569,  558,  671,  388,  388,  409,  409,
+      727,  727,  671,  569,  772,  569,  738,  738,  569,  569,
+      569,  569,  573,  573,  409,  409,  409,  409,  576,  576,
+      564,  941,  566,  409,  409,  409,  578,  578,  573,  573,
+      578,  585,  585,  940,  576,  576,  576,  409,  409,  409,
+      409,  409,  409,  411,  411,  411,  411,  411,  411,  411,
+
+      411,  411,  411,  411,  411,  411,  411,  411,  979,  411,
+      411,  572,  572,  578,  682,  411,  411,  411,  411,  587,
+      587,  682,  776,  574,  574,  739,  739,  572,  572,  572,
+      572,  585,  411,  575,  575,  587,  587,  939,  572,  574,
+      574,  574,  574,  602,  602,  602,  602,  938,  682,  575,
+      575,  575,  575,  979,  572,  776,  411,  411,  412,  412,
+      412,  412,  412,  412,  412,  412,  412,  412,  412,  412,
+      412,  412,  412,  412,  412,  412,  412,  412,  412,  412,
+      412,  412,  412,  412,  412,  412,  412,  412,  412,  412,
+      412,  412,  412,  412,  412,  412,  412,  412,  412,  412,
+
+      412,  412,  412,  412,  412,  412,  412,  412,  412,  412,
+      412,  412,  412,  412,  412,  412,  412,  412,  412,  412,
+      412,  412,  412,  413,  413,  413,  413,  413,  413,  413,
+      413,  413,  413,  413,  413,  413,  413,  413,  937,  413,
+      413,  603,  603,  603,  603,  413,  413,  413,  413,  936,
+      583,  583,  744,  744,  935,  580,  580,  586,  586,  580,
+      934,  583,  413,  583,  745,  745,  583,  583,  583,  583,
+      722,  722,  933,  586,  586,  586,  586,  588,  588,  722,
+      932,  413,  756,  756,  586,  930,  413,  413,  431,  431,
+      431,  431,  580,  588,  588,  588,  588,  431,  431,  431,
+
+      586,  592,  592,  683,  971,  592,  611,  611,  611,  611,
+      683,  431,  431,  431,  431,  431,  431,  433,  433,  908,
+      433,  433,  433,  433,  433,  433,  433,  433,  433,  433,
+      433,  433,  972,  433,  433,  589,  589,  683,  592,  433,
+      433,  433,  433,  590,  590,  907,  600,  600,  600,  600,
+      971,  589,  589,  589,  589,  868,  433,  600,  868,  590,
+      590,  590,  612,  612,  612,  612,  684,  684,  684,  684,
+      723,  723,  905,  600,  685,  685,  685,  685,  972,  723,
+      433,  433,  434,  434,  904,  434,  434,  434,  434,  434,
+      434,  434,  434,  434,  434,  434,  434,  434,  434,  434,
+
+      434,  434,  434,  434,  434,  434,  434,  434,  434,  434,
+      434,  434,  434,  434,  434,  434,  434,  434,  434,  434,
+      434,  434,  434,  434,  434,  434,  434,  434,  434,  434,
+      434,  434,  434,  434,  434,  434,  434,  434,  434,  434,
+      434,  434,  434,  434,  434,  434,  434,  435,  435,  902,
+      435,  435,  435,  435,  435,  435,  435,  435,  435,  435,
+      435,  435,  901,  435,  435,  757,  757,  672,  673,  435,
+      435,  435,  435,  900,  672,  673,  762,  762,  675,  594,
+      594,  672,  673,  594,  674,  675,  435,  704,  704,  704,
+      704,  674,  675,  705,  705,  705,  705,  897,  674,  729,
+
+      729,  714,  714,  729,  896,  435,  763,  763,  672,  673,
+      435,  435,  533,  533,  533,  533,  594,  714,  714,  714,
+      714,  533,  533,  533,  716,  716,  980,  675,  674,  717,
+      717,  768,  768,  768,  768,  533,  533,  533,  533,  533,
+      533,  537,  537,  895,  537,  537,  537,  537,  537,  537,
+      537,  537,  537,  537,  537,  537,  894,  537,  537,  715,
+      715,  740,  740,  537,  537,  537,  537,  716,  732,  732,
+      740,  980,  717,  733,  733,  715,  715,  715,  715,  927,
+      537,  832,  832,  927,  732,  732,  732,  732,  893,  733,
+      733,  733,  733,  741,  741,  747,  747,  765,  765,  747,
+
+      891,  765,  741,  890,  537,  537,  538,  538,  889,  538,
+      538,  538,  538,  538,  538,  538,  538,  538,  538,  538,
+      538,  538,  538,  538,  538,  538,  538,  538,  538,  538,
+      538,  538,  538,  538,  538,  538,  538,  538,  538,  538,
+      538,  538,  538,  538,  538,  538,  538,  538,  538,  538,
+      538,  538,  538,  538,  538,  538,  538,  538,  538,  538,
+      538,  538,  538,  538,  538,  538,  538,  538,  538,  538,
+      538,  551,  551,  551,  551,  734,  734,  888,  735,  735,
+      551,  551,  551,  718,  718,  853,  853,  718,  887,  719,
+      719,  854,  854,  719,  551,  551,  551,  551,  551,  551,
+
+      553,  553,  553,  553,  553,  553,  886,  553,  553,  553,
+      553,  553,  553,  553,  553,  803,  553,  553,  734,  884,
+      718,  735,  553,  553,  553,  553,  719,  750,  750,  928,
+      803,  751,  751,  928,  724,  724,  803,  883,  724,  553,
+      855,  855,  882,  750,  750,  750,  750,  751,  751,  751,
+      751,  758,  758,  759,  759,  769,  769,  769,  769,  881,
+      758,  879,  759,  553,  553,  554,  554,  554,  554,  554,
+      554,  724,  554,  554,  554,  554,  554,  554,  554,  554,
+      554,  554,  554,  554,  554,  554,  554,  554,  554,  554,
+      554,  554,  554,  554,  554,  554,  554,  554,  554,  554,
+
+      554,  554,  554,  554,  554,  554,  554,  554,  554,  554,
+      554,  554,  554,  554,  554,  554,  554,  554,  554,  554,
+      554,  554,  554,  554,  554,  554,  554,  554,  554,  554,
+      563,  563,  837,  857,  857,  858,  858,  859,  859,  837,
+      861,  861,  862,  862,  863,  863,  563,  563,  563,  563,
+      752,  752,  878,  753,  753,  563,  563,  563,  725,  725,
+      867,  867,  725,  877,  736,  736,  876,  837,  736,  563,
+      563,  563,  563,  563,  563,  567,  567,  567,  567,  567,
+      567,  567,  567,  567,  567,  567,  567,  567,  567,  567,
+      787,  567,  567,  752,  875,  725,  753,  567,  567,  567,
+
+      567,  736,  929,  787,  911,  912,  929,  931,  874,  787,
+      873,  911,  912,  913,  567,  913,  913,  962,  911,  912,
+      931,  962,  964,  872,  964,  964,  931,  870,  962, 1017,
+     1017, 1017,  869, 1017,  844,  962, 1052, 1052,  567,  567,
+      568,  568,  568,  568,  568,  568,  568,  568,  568,  568,
+      568,  568,  568,  568,  568,  568,  568,  568,  568,  568,
+      568,  568,  568,  568,  568,  568,  568,  568,  568,  568,
+      568,  568,  568,  568,  568,  568,  568,  568,  568,  568,
+      568,  568,  568,  568,  568,  568,  568,  568,  568,  568,
+      568,  568,  568,  568,  568,  568,  568,  568,  568,  568,
+
+      568,  568,  568,  568,  568,  577,  577,  835,  914,  963,
+      826,  915,  825,  963,  824,  914, 1053, 1053,  915,  823,
+      963,  577,  577,  577,  577, 1054, 1054,  963,  830,  822,
+      577,  577,  577,  737,  737,  830,  821,  737,  914,  742,
+      742,  915,  830,  742,  577,  577,  577,  577,  577,  577,
+      581,  581,  581,  581,  581,  581,  581,  581,  581,  581,
+      581,  581,  581,  581,  581,  820,  581,  581,  966,  819,
+      737,  829,  581,  581,  581,  581,  742,  830,  829,  966,
+     1018, 1018, 1018,  818,  817,  829,  966,  816,  815,  581,
+     1019, 1019, 1019,  812, 1019, 1020, 1020, 1020, 1021, 1021,
+
+     1021,  811, 1021, 1022, 1022, 1022,  809,  807,  805,  804,
+      829,  802,  801,  581,  581,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      591,  591,  800,  799,  798,  797,  796,  795,  794,  792,
+      791,  790,  789,  786,  784,  783,  591,  591,  591,  591,
+
+      782,  780,  775,  838,  771,  591,  591,  591,  743,  743,
+      838,  770,  743,  767,  754,  754,  749,  731,  754,  591,
+      591,  591,  591,  591,  591,  595,  595,  595,  595,  595,
+      595,  595,  595,  595,  595,  595,  595,  595,  595,  595,
+      838,  595,  595,  713,  711,  743,  909,  595,  595,  595,
+      595,  754,  707,  909,  706,  701,  700,  698,  696,  691,
+      909,  687,  686,  681,  595,  680,  679,  678,  669,  668,
+      663,  659,  658,  657,  656,  655,  654,  652,  651,  650,
+      649,  648,  647,  909,  645,  644,  643,  642,  595,  595,
+      596,  596,  596,  596,  596,  596,  596,  596,  596,  596,
+
+      596,  596,  596,  596,  596,  596,  596,  596,  596,  596,
+      596,  596,  596,  596,  596,  596,  596,  596,  596,  596,
+      596,  596,  596,  596,  596,  596,  596,  596,  596,  596,
+      596,  596,  596,  596,  596,  596,  596,  596,  596,  596,
+      596,  596,  596,  596,  596,  596,  596,  596,  596,  596,
+      596,  596,  596,  596,  596,  605,  605,  605,  605,  641,
+      640,  639,  910,  638,  605,  605,  605,  755,  755,  910,
+      637,  755,  635,  760,  760,  634,  910,  760,  605,  605,
+      605,  605,  605,  605,  609,  609,  633,  609,  609,  609,
+      609,  609,  609,  609,  609,  609,  609,  609,  609,  910,
+
+      609,  609,  632,  631,  755,  630,  609,  609,  609,  609,
+      760,  629,  628,  627,  761,  761,  626,  625,  761,  623,
+      622,  621,  620,  609,  619,  618,  617,  616,  615,  614,
+      607,  599,  598,  545,  544,  541,  540,  539,  535,  527,
+      526,  523,  522,  521,  520,  515,  514,  609,  609,  610,
+      610,  761,  610,  610,  610,  610,  610,  610,  610,  610,
+      610,  610,  610,  610,  610,  610,  610,  610,  610,  610,
+      610,  610,  610,  610,  610,  610,  610,  610,  610,  610,
+      610,  610,  610,  610,  610,  610,  610,  610,  610,  610,
+      610,  610,  610,  610,  610,  610,  610,  610,  610,  610,
+
+      610,  610,  610,  610,  610,  610,  610,  610,  610,  610,
+      610,  610,  610,  610,  695,  695,  513,  695,  695,  695,
+      695,  695,  695,  695,  695,  695,  695,  695,  695,  512,
+      695,  695,  501,  827,  498,  495,  695,  695,  695,  695,
+      827,  493,  492,  491,  490,  489,  488,  827,  487,  486,
+      485,  484,  483,  695,  482,  481,  480,  478,  477,  476,
+      475,  467,  466,  465,  464,  463,  462,  461,  460,  459,
+      458,  457,  455,  454,  452,  827,  451,  695,  695,  697,
+      697,  450,  697,  697,  697,  697,  697,  697,  697,  697,
+      697,  697,  697,  697,  697,  697,  697,  697,  697,  697,
+
+      697,  697,  697,  697,  697,  697,  697,  697,  697,  697,
+      697,  697,  697,  697,  697,  697,  697,  697,  697,  697,
+      697,  697,  697,  697,  697,  697,  697,  697,  697,  697,
+      697,  697,  697,  697,  697,  697,  697,  697,  697,  697,
+      697,  697,  697,  697,  710,  710,  710,  710,  710,  710,
+      449,  710,  710,  710,  710,  710,  710,  710,  710,  448,
+      710,  710,  447,  446,  445,  444,  710,  710,  710,  710,
+      426,  828,  425,  421,  330,  329,  319,  318,  828,  317,
+      306,  305,  301,  710,  291,  828,  288,  287,  283,  277,
+      276,  274,  273,  272,  270,  269,  247,  245,  244,  237,
+
+      236,  234,  228,  227,  226,  219,  218,  710,  710,  712,
+      712,  712,  712,  712,  712,  828,  712,  712,  712,  712,
+      712,  712,  712,  712,  712,  712,  712,  712,  712,  712,
+      712,  712,  712,  712,  712,  712,  712,  712,  712,  712,
+      712,  712,  712,  712,  712,  712,  712,  712,  712,  712,
+      712,  712,  712,  712,  712,  712,  712,  712,  712,  712,
+      712,  712,  712,  712,  712,  712,  712,  712,  712,  712,
+      712,  712,  712,  712,  728,  728,  728,  728,  728,  728,
+      728,  728,  728,  728,  728,  728,  728,  728,  728,  217,
+      728,  728,  215,  210,  208,  207,  728,  728,  728,  728,
+
+      205,  204,  203,  193,  173,  168,  166,  117,  107,  102,
+       97,   92,   90,  728,   81,   76,   65,   34,   32,   28,
+       23,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,  728,  728,  730,
+      730,  730,  730,  730,  730,  730,  730,  730,  730,  730,
+      730,  730,  730,  730,  730,  730,  730,  730,  730,  730,
+      730,  730,  730,  730,  730,  730,  730,  730,  730,  730,
+      730,  730,  730,  730,  730,  730,  730,  730,  730,  730,
+      730,  730,  730,  730,  730,  730,  730,  730,  730,  730,
+      730,  730,  730,  730,  730,  730,  730,  730,  730,  730,
+
+      730,  730,  730,  730,  746,  746,  746,  746,  746,  746,
+      746,  746,  746,  746,  746,  746,  746,  746,  746,    0,
+      746,  746,    0,    0,    0,    0,  746,  746,  746,  746,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,  717,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,  717,  717,  719,
-      719,  719,  719,  719,  719,    0,  719,  719,  719,  719,
-      719,  719,  719,  719,  719,  719,  719,  719,  719,  719,
-      719,  719,  719,  719,  719,  719,  719,  719,  719,  719,
-      719,  719,  719,  719,  719,  719,  719,  719,  719,  719,
-      719,  719,  719,  719,  719,  719,  719,  719,  719,  719,
-      719,  719,  719,  719,  719,  719,  719,  719,  719,  719,
-
-      719,  719,  719,  719,  735,  735,  735,  735,  735,  735,
-      735,  735,  735,  735,  735,  735,  735,  735,  735,    0,
-      735,  735,    0,    0,    0,    0,  735,  735,  735,  735,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,  735,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,  746,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,  735,  735,  737,
-      737,  737,  737,  737,  737,  737,  737,  737,  737,  737,
-      737,  737,  737,  737,  737,  737,  737,  737,  737,  737,
-      737,  737,  737,  737,  737,  737,  737,  737,  737,  737,
-
-      737,  737,  737,  737,  737,  737,  737,  737,  737,  737,
-      737,  737,  737,  737,  737,  737,  737,  737,  737,  737,
-      737,  737,  737,  737,  737,  737,  737,  737,  737,  737,
-      737,  737,  737,  737,  753,  753,  753,  753,  753,  753,
-      753,  753,  753,  753,  753,  753,  753,  753,  753,    0,
-      753,  753,    0,    0,    0,    0,  753,  753,  753,  753,
+        0,    0,    0,    0,    0,    0,    0,  746,  746,  748,
+      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
+      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
+      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
+
+      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
+      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
+      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
+      748,  748,  748,  748,  764,  764,  764,  764,  764,  764,
+      764,  764,  764,  764,  764,  764,  764,  764,  764,    0,
+      764,  764,    0,    0,    0,    0,  764,  764,  764,  764,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,  753,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,  764,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,  753,  753,  755,
+        0,    0,    0,    0,    0,    0,    0,  764,  764,  766,
 
-      755,  755,  755,  755,  755,  755,  755,  755,  755,  755,
-      755,  755,  755,  755,  755,  755,  755,  755,  755,  755,
-      755,  755,  755,  755,  755,  755,  755,  755,  755,  755,
-      755,  755,  755,  755,  755,  755,  755,  755,  755,  755,
-      755,  755,  755,  755,  755,  755,  755,  755,  755,  755,
-      755,  755,  755,  755,  755,  755,  755,  755,  755,  755,
-      755,  755,  755,  755,  771,  771,  771,  771,  771,  771,
-      771,  771,  771,  771,  771,  771,  771,  771,  771,    0,
-      771,  771,    0,    0,    0,    0,  771,  771,  771,  771,
+      766,  766,  766,  766,  766,  766,  766,  766,  766,  766,
+      766,  766,  766,  766,  766,  766,  766,  766,  766,  766,
+      766,  766,  766,  766,  766,  766,  766,  766,  766,  766,
+      766,  766,  766,  766,  766,  766,  766,  766,  766,  766,
+      766,  766,  766,  766,  766,  766,  766,  766,  766,  766,
+      766,  766,  766,  766,  766,  766,  766,  766,  766,  766,
+      766,  766,  766,  766,  779,  779,    0,  779,  779,  779,
+      779,  779,  779,  779,  779,  779,  779,  779,  779,    0,
+      779,  779,    0,    0,    0,    0,  779,  779,  779,  779,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
-        0,    0,    0,  771,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,  779,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,  771,  771,  773,
-      773,  773,  773,  773,  773,  773,  773,  773,  773,  773,
-      773,  773,  773,  773,  773,  773,  773,  773,  773,  773,
-      773,  773,  773,  773,  773,  773,  773,  773,  773,  773,
-      773,  773,  773,  773,  773,  773,  773,  773,  773,  773,
-      773,  773,  773,  773,  773,  773,  773,  773,  773,  773,
-      773,  773,  773,  773,  773,  773,  773,  773,  773,  773,
-      773,  773,  773,  773,  786,  786,    0,  786,  786,  786,
+        0,    0,    0,    0,    0,    0,    0,  779,  779,  781,
+      781,    0,  781,  781,  781,  781,  781,  781,  781,  781,
+      781,  781,  781,  781,  781,  781,  781,  781,  781,  781,
+      781,  781,  781,  781,  781,  781,  781,  781,  781,  781,
+      781,  781,  781,  781,  781,  781,  781,  781,  781,  781,
+      781,  781,  781,  781,  781,  781,  781,  781,  781,  781,
+      781,  781,  781,  781,  781,  781,  781,  781,  781,  781,
+      781,  781,  781,  781,  841,  841,    0,  841,  841,  841,
+
+      841,  841,  841,  841,  841,  841,  841,  841,  841,  841,
+      841,  841,  841,  841,  841,  841,  841,  841,  841,  841,
+      841,  841,  841,  841,  841,  841,  841,  841,  841,  841,
+      841,  841,  841,  841,  841,  841,  841,  841,  841,  841,
+      841,  841,  841,  841,  841,  841,  841,  841,  841,  841,
+      841,  841,  841,  841,  841,  841,  841,  841,  841,  851,
+      851,  851,  851,  851,  851,    0,  851,  851,  851,  851,
+      851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
+      851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
+      851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
+
+      851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
+      851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
+      851,  851,  851,  851, 1088,    0, 1088, 1088, 1088, 1088,
+     1088, 1088, 1088, 1088, 1088, 1089,    0,    0, 1089, 1089,
+     1090,    0, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090,
+     1090, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1092,
+     1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092,
+     1093, 1093, 1093, 1093, 1094,    0, 1094,    0, 1094, 1094,
+     1094, 1094, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1096,
+        0, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096,
 
-      786,  786,  786,  786,  786,  786,  786,  786,  786,    0,
-      786,  786,    0,    0,    0,    0,  786,  786,  786,  786,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,  786,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,  786,  786,  788,
-      788,    0,  788,  788,  788,  788,  788,  788,  788,  788,
-      788,  788,  788,  788,  788,  788,  788,  788,  788,  788,
-      788,  788,  788,  788,  788,  788,  788,  788,  788,  788,
-      788,  788,  788,  788,  788,  788,  788,  788,  788,  788,
-
-      788,  788,  788,  788,  788,  788,  788,  788,  788,  788,
-      788,  788,  788,  788,  788,  788,  788,  788,  788,  788,
-      788,  788,  788,  788,  848,  848,    0,  848,  848,  848,
-      848,  848,  848,  848,  848,  848,  848,  848,  848,  848,
-      848,  848,  848,  848,  848,  848,  848,  848,  848,  848,
-      848,  848,  848,  848,  848,  848,  848,  848,  848,  848,
-      848,  848,  848,  848,  848,  848,  848,  848,  848,  848,
-      848,  848,  848,  848,  848,  848,  848,  848,  848,  848,
-      848,  848,  848,  848,  848,  848,  848,  848,  848,  858,
-      858,  858,  858,  858,  858,    0,  858,  858,  858,  858,
-
-      858,  858,  858,  858,  858,  858,  858,  858,  858,  858,
-      858,  858,  858,  858,  858,  858,  858,  858,  858,  858,
-      858,  858,  858,  858,  858,  858,  858,  858,  858,  858,
-      858,  858,  858,  858,  858,  858,  858,  858,  858,  858,
-      858,  858,  858,  858,  858,  858,  858,  858,  858,  858,
-      858,  858,  858,  858, 1095,    0, 1095, 1095, 1095, 1095,
-     1095, 1095, 1095, 1095, 1095, 1096,    0,    0, 1096, 1096,
      1097,    0, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
-     1097, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1099,
-     1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099,
-
-     1100, 1100, 1100, 1100, 1101,    0, 1101,    0, 1101, 1101,
-     1101, 1101, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1103,
-        0, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103,
-     1104,    0, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104,
-     1104, 1105,    0, 1105, 1105, 1105, 1105, 1105, 1105, 1105,
-     1105, 1105, 1106,    0, 1106, 1106, 1106, 1106, 1106, 1106,
-     1106, 1106, 1106, 1107, 1107, 1107, 1107, 1107, 1107, 1107,
-     1108, 1108,    0, 1108, 1108, 1108, 1108, 1108, 1108, 1108,
-     1108, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109,
-     1109, 1109, 1110, 1110,    0, 1110, 1110, 1110, 1110, 1110,
-
-     1110, 1110, 1110, 1111, 1111, 1111, 1111, 1111, 1111, 1111,
-     1111, 1111, 1111, 1111, 1112, 1112, 1112, 1112, 1112, 1112,
-     1112, 1112, 1112, 1112, 1112, 1113, 1113, 1113, 1113, 1113,
-     1113, 1113, 1113, 1113, 1113, 1113, 1114, 1114, 1114, 1114,
-     1114, 1114, 1114, 1114, 1114, 1114, 1114, 1115, 1115, 1115,
-     1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1116, 1116,
-     1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1117,
-     1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117,
-     1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118,
-     1118, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119,
-
-     1119, 1119, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120,
-     1120, 1120, 1120, 1121, 1121, 1121, 1121, 1121, 1121, 1121,
-     1121, 1121, 1121, 1121, 1122, 1122, 1122, 1122, 1122, 1122,
-     1122, 1122, 1122, 1122, 1122, 1123,    0, 1123, 1123, 1123,
-     1123, 1123, 1123, 1123, 1123, 1123, 1124,    0, 1124, 1124,
-     1124, 1124, 1124, 1124, 1124, 1124, 1124, 1125,    0, 1125,
-     1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1126,    0,
-     1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1127,
-        0,    0, 1127, 1127, 1128,    0, 1128, 1128, 1128, 1128,
-     1128, 1128, 1128, 1128, 1128, 1129,    0,    0, 1129, 1129,
-
-     1129, 1130,    0,    0, 1130, 1131, 1131, 1131, 1131, 1131,
-     1131, 1131, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132,
-     1133,    0,    0,    0,    0, 1133, 1133, 1133, 1133, 1134,
-     1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134,
-     1135, 1135, 1135, 1135, 1135, 1135, 1136, 1136, 1136, 1136,
-     1137,    0, 1137, 1137, 1137, 1137, 1138, 1138, 1138, 1138,
-     1138, 1138, 1138, 1139,    0, 1139, 1139, 1139, 1139, 1139,
-     1139, 1139, 1139, 1139, 1140,    0, 1140, 1140, 1140, 1140,
-     1140, 1140, 1140, 1140, 1140, 1141,    0, 1141, 1141, 1141,
-     1141, 1141, 1141, 1141, 1141, 1141, 1142,    0, 1142, 1142,
-
-     1142, 1142, 1142, 1142, 1142, 1142, 1142, 1143, 1143,    0,
-     1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1144, 1144,
-     1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1145,
-     1145,    0, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145,
-     1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146,
-     1146, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147,
-     1147, 1147, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148,
-     1148, 1148, 1148, 1149, 1149, 1149, 1149, 1149, 1149, 1149,
-     1149, 1149, 1149, 1149, 1150, 1150, 1150, 1150, 1150, 1150,
-     1150, 1150, 1150, 1150, 1150, 1151, 1151, 1151, 1151, 1151,
-
-     1151, 1151, 1151, 1151, 1151, 1151, 1152, 1152, 1152, 1152,
-     1152, 1152, 1152, 1152, 1152, 1152, 1152, 1153, 1153, 1153,
-     1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1154, 1154,
-     1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1155,
-     1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155,
-     1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156,
-     1156, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157,
-     1157, 1157, 1158,    0, 1158, 1158, 1158, 1158, 1158, 1158,
-     1158, 1158, 1158, 1159,    0, 1159, 1159, 1159, 1159, 1159,
-     1159, 1159, 1159, 1159, 1160,    0, 1160, 1160, 1160, 1160,
-
-     1160, 1160, 1160, 1160, 1160, 1161,    0, 1161, 1161, 1161,
-     1161, 1161, 1161, 1161, 1161, 1161, 1162,    0,    0, 1162,
-     1162, 1163,    0,    0, 1163, 1163, 1163, 1164,    0,    0,
-     1164, 1165,    0, 1165, 1165, 1165, 1165, 1165, 1165, 1165,
-     1165, 1165, 1166,    0, 1166, 1166, 1166, 1166, 1166, 1166,
-     1166, 1166, 1166, 1167,    0, 1167, 1167, 1167, 1167, 1167,
-     1167, 1167, 1167, 1167, 1168, 1168, 1168, 1168, 1168, 1168,
-     1168, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1170,
-     1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170,
-     1171, 1171, 1171, 1171, 1171, 1171, 1172,    0, 1172, 1172,
-
-     1172, 1172, 1173,    0, 1173, 1173, 1173, 1173, 1174, 1174,
-     1174, 1174, 1174, 1174, 1174, 1175,    0, 1175, 1175, 1175,
-     1175, 1175, 1175, 1175, 1175, 1175, 1176,    0, 1176, 1176,
-     1176, 1176, 1176, 1176, 1176, 1176, 1176, 1177,    0, 1177,
-     1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1178,    0,
-     1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1179,
-        0, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179,
-     1180, 1180, 1180, 1180, 1180, 1180, 1180, 1181, 1181,    0,
-     1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1182, 1182,
-     1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1183,
-
-     1183,    0, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183,
-     1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184,
-     1184, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185,
-     1185, 1185, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186,
-     1186, 1186, 1186, 1187, 1187, 1187, 1187, 1187, 1187, 1187,
-     1187, 1187, 1187, 1187, 1188, 1188, 1188, 1188, 1188, 1188,
-     1188, 1188, 1188, 1188, 1188, 1189, 1189, 1189, 1189, 1189,
-     1189, 1189, 1189, 1189, 1189, 1189, 1190, 1190, 1190, 1190,
-     1190, 1190, 1190, 1190, 1190, 1190, 1190, 1191, 1191, 1191,
-     1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1192, 1192,
-
-     1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1193,
-     1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193,
-     1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194,
-     1194, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195,
-     1195, 1195, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196,
-     1196, 1196, 1196, 1197, 1197, 1197, 1197, 1197, 1197, 1197,
-     1197, 1197, 1197, 1197, 1198, 1198, 1198, 1198, 1198, 1198,
-     1198, 1198, 1198, 1198, 1198, 1199,    0, 1199, 1199, 1199,
-     1199, 1199, 1199, 1199, 1199, 1199, 1200,    0, 1200, 1200,
-     1200, 1200, 1200, 1200, 1200, 1200, 1200, 1201,    0, 1201,
-
-     1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1202,    0,
-     1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1203,
-        0, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203,
-     1204,    0,    0, 1204, 1204, 1204, 1205,    0, 1205, 1205,
-     1205, 1205, 1205, 1205, 1205, 1205, 1205, 1206,    0, 1206,
-     1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1207,    0,
-     1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1208,
-     1208, 1208, 1208, 1208, 1208, 1208, 1209, 1209, 1209, 1209,
-     1209, 1209, 1209, 1209, 1210, 1210, 1210, 1210, 1210, 1210,
-     1210, 1210, 1210, 1210, 1210, 1211,    0, 1211, 1211, 1211,
-
-     1211, 1212,    0, 1212, 1212, 1212, 1212, 1213, 1213, 1213,
-     1213, 1213, 1213, 1213, 1214,    0, 1214, 1214, 1214, 1214,
-     1214, 1214, 1214, 1214, 1214, 1215,    0, 1215, 1215, 1215,
-     1215, 1215, 1215, 1215, 1215, 1215, 1216,    0, 1216, 1216,
-     1216, 1216, 1216, 1216, 1216, 1216, 1216, 1217,    0, 1217,
-     1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1218,    0,
-     1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1219,
-     1219, 1219, 1219, 1219, 1219, 1219, 1220, 1220,    0, 1220,
-     1220, 1220, 1220, 1220, 1220, 1220, 1220, 1221, 1221, 1221,
-     1221, 1221, 1221, 1221, 1221, 1221, 1221, 1221, 1222, 1222,
-
-        0, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1223,
-     1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
-     1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224,
-     1224, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225,
-     1225, 1225, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226,
-     1226, 1226, 1226, 1227, 1227, 1227, 1227, 1227, 1227, 1227,
-     1227, 1227, 1227, 1227, 1228, 1228, 1228, 1228, 1228, 1228,
-     1228, 1228, 1228, 1228, 1228, 1229, 1229, 1229, 1229, 1229,
-     1229, 1229, 1229, 1229, 1229, 1229, 1230, 1230, 1230, 1230,
-     1230, 1230, 1230, 1230, 1230, 1230, 1230, 1231, 1231, 1231,
-
-     1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1232, 1232,
-     1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1233,
-     1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233,
-     1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
-     1234, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235,
-     1235, 1235, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
-     1236, 1236, 1236, 1237, 1237, 1237, 1237, 1237, 1237, 1237,
-     1237, 1237, 1237, 1237, 1238,    0, 1238, 1238, 1238, 1238,
-     1238, 1238, 1238, 1238, 1238, 1239,    0, 1239, 1239, 1239,
-     1239, 1239, 1239, 1239, 1239, 1239, 1240,    0, 1240, 1240,
-
+     1097, 1098,    0, 1098, 1098, 1098, 1098, 1098, 1098, 1098,
+     1098, 1098, 1099,    0, 1099, 1099, 1099, 1099, 1099, 1099,
+     1099, 1099, 1099, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
+     1101, 1101,    0, 1101, 1101, 1101, 1101, 1101, 1101, 1101,
+     1101, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102,
+     1102, 1102, 1103, 1103,    0, 1103, 1103, 1103, 1103, 1103,
+     1103, 1103, 1103, 1104, 1104, 1104, 1104, 1104, 1104, 1104,
+     1104, 1104, 1104, 1104, 1105, 1105, 1105, 1105, 1105, 1105,
+     1105, 1105, 1105, 1105, 1105, 1106, 1106, 1106, 1106, 1106,
+
+     1106, 1106, 1106, 1106, 1106, 1106, 1107, 1107, 1107, 1107,
+     1107, 1107, 1107, 1107, 1107, 1107, 1107, 1108, 1108, 1108,
+     1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1109, 1109,
+     1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1110,
+     1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110,
+     1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111,
+     1111, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112,
+     1112, 1112, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
+     1113, 1113, 1113, 1114, 1114, 1114, 1114, 1114, 1114, 1114,
+     1114, 1114, 1114, 1114, 1115, 1115, 1115, 1115, 1115, 1115,
+
+     1115, 1115, 1115, 1115, 1115, 1116,    0, 1116, 1116, 1116,
+     1116, 1116, 1116, 1116, 1116, 1116, 1117,    0, 1117, 1117,
+     1117, 1117, 1117, 1117, 1117, 1117, 1117, 1118,    0, 1118,
+     1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1119,    0,
+     1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1120,
+        0,    0, 1120, 1120, 1121,    0, 1121, 1121, 1121, 1121,
+     1121, 1121, 1121, 1121, 1121, 1122,    0,    0, 1122, 1122,
+     1122, 1123,    0,    0, 1123, 1124, 1124, 1124, 1124, 1124,
+     1124, 1124, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125,
+     1126,    0,    0,    0,    0, 1126, 1126, 1126, 1126, 1127,
+
+     1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127,
+     1128, 1128, 1128, 1128, 1128, 1128, 1129, 1129, 1129, 1129,
+     1130,    0, 1130, 1130, 1130, 1130, 1131, 1131, 1131, 1131,
+     1131, 1131, 1131, 1132,    0, 1132, 1132, 1132, 1132, 1132,
+     1132, 1132, 1132, 1132, 1133,    0, 1133, 1133, 1133, 1133,
+     1133, 1133, 1133, 1133, 1133, 1134,    0, 1134, 1134, 1134,
+     1134, 1134, 1134, 1134, 1134, 1134, 1135,    0, 1135, 1135,
+     1135, 1135, 1135, 1135, 1135, 1135, 1135, 1136, 1136,    0,
+     1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1137, 1137,
+     1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1138,
+
+     1138,    0, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138,
+     1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139,
+     1139, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140,
+     1140, 1140, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141,
+     1141, 1141, 1141, 1142, 1142, 1142, 1142, 1142, 1142, 1142,
+     1142, 1142, 1142, 1142, 1143, 1143, 1143, 1143, 1143, 1143,
+     1143, 1143, 1143, 1143, 1143, 1144, 1144, 1144, 1144, 1144,
+     1144, 1144, 1144, 1144, 1144, 1144, 1145, 1145, 1145, 1145,
+     1145, 1145, 1145, 1145, 1145, 1145, 1145, 1146, 1146, 1146,
+     1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1147, 1147,
+
+     1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1148,
+     1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148,
+     1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149,
+     1149, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150,
+     1150, 1150, 1151,    0, 1151, 1151, 1151, 1151, 1151, 1151,
+     1151, 1151, 1151, 1152,    0, 1152, 1152, 1152, 1152, 1152,
+     1152, 1152, 1152, 1152, 1153,    0, 1153, 1153, 1153, 1153,
+     1153, 1153, 1153, 1153, 1153, 1154,    0, 1154, 1154, 1154,
+     1154, 1154, 1154, 1154, 1154, 1154, 1155,    0,    0, 1155,
+     1155, 1156,    0,    0, 1156, 1156, 1156, 1157,    0,    0,
+
+     1157, 1158,    0, 1158, 1158, 1158, 1158, 1158, 1158, 1158,
+     1158, 1158, 1159,    0, 1159, 1159, 1159, 1159, 1159, 1159,
+     1159, 1159, 1159, 1160,    0, 1160, 1160, 1160, 1160, 1160,
+     1160, 1160, 1160, 1160, 1161, 1161, 1161, 1161, 1161, 1161,
+     1161, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1163,
+     1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163,
+     1164, 1164, 1164, 1164, 1164, 1164, 1165,    0, 1165, 1165,
+     1165, 1165, 1166,    0, 1166, 1166, 1166, 1166, 1167, 1167,
+     1167, 1167, 1167, 1167, 1167, 1168,    0, 1168, 1168, 1168,
+     1168, 1168, 1168, 1168, 1168, 1168, 1169,    0, 1169, 1169,
+
+     1169, 1169, 1169, 1169, 1169, 1169, 1169, 1170,    0, 1170,
+     1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1171,    0,
+     1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1172,
+        0, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172,
+     1173, 1173, 1173, 1173, 1173, 1173, 1173, 1174, 1174,    0,
+     1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1175, 1175,
+     1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1176,
+     1176,    0, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176,
+     1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177,
+     1177, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
+
+     1178, 1178, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179,
+     1179, 1179, 1179, 1180, 1180, 1180, 1180, 1180, 1180, 1180,
+     1180, 1180, 1180, 1180, 1181, 1181, 1181, 1181, 1181, 1181,
+     1181, 1181, 1181, 1181, 1181, 1182, 1182, 1182, 1182, 1182,
+     1182, 1182, 1182, 1182, 1182, 1182, 1183, 1183, 1183, 1183,
+     1183, 1183, 1183, 1183, 1183, 1183, 1183, 1184, 1184, 1184,
+     1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1185, 1185,
+     1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1186,
+     1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186,
+     1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187,
+
+     1187, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188,
+     1188, 1188, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189,
+     1189, 1189, 1189, 1190, 1190, 1190, 1190, 1190, 1190, 1190,
+     1190, 1190, 1190, 1190, 1191, 1191, 1191, 1191, 1191, 1191,
+     1191, 1191, 1191, 1191, 1191, 1192,    0, 1192, 1192, 1192,
+     1192, 1192, 1192, 1192, 1192, 1192, 1193,    0, 1193, 1193,
+     1193, 1193, 1193, 1193, 1193, 1193, 1193, 1194,    0, 1194,
+     1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1195,    0,
+     1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1196,
+        0, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196,
+
+     1197,    0,    0, 1197, 1197, 1197, 1198,    0, 1198, 1198,
+     1198, 1198, 1198, 1198, 1198, 1198, 1198, 1199,    0, 1199,
+     1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1200,    0,
+     1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1201,
+     1201, 1201, 1201, 1201, 1201, 1201, 1202, 1202, 1202, 1202,
+     1202, 1202, 1202, 1202, 1203, 1203, 1203, 1203, 1203, 1203,
+     1203, 1203, 1203, 1203, 1203, 1204,    0, 1204, 1204, 1204,
+     1204, 1205,    0, 1205, 1205, 1205, 1205, 1206, 1206, 1206,
+     1206, 1206, 1206, 1206, 1207,    0, 1207, 1207, 1207, 1207,
+     1207, 1207, 1207, 1207, 1207, 1208,    0, 1208, 1208, 1208,
+
+     1208, 1208, 1208, 1208, 1208, 1208, 1209,    0, 1209, 1209,
+     1209, 1209, 1209, 1209, 1209, 1209, 1209, 1210,    0, 1210,
+     1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1211,    0,
+     1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1212,
+     1212, 1212, 1212, 1212, 1212, 1212, 1213, 1213,    0, 1213,
+     1213, 1213, 1213, 1213, 1213, 1213, 1213, 1214, 1214, 1214,
+     1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1215, 1215,
+        0, 1215, 1215, 1215, 1215, 1215, 1215, 1215, 1215, 1216,
+     1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216,
+     1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
+
+     1217, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218,
+     1218, 1218, 1219, 1219, 1219, 1219, 1219, 1219, 1219, 1219,
+     1219, 1219, 1219, 1220, 1220, 1220, 1220, 1220, 1220, 1220,
+     1220, 1220, 1220, 1220, 1221, 1221, 1221, 1221, 1221, 1221,
+     1221, 1221, 1221, 1221, 1221, 1222, 1222, 1222, 1222, 1222,
+     1222, 1222, 1222, 1222, 1222, 1222, 1223, 1223, 1223, 1223,
+     1223, 1223, 1223, 1223, 1223, 1223, 1223, 1224, 1224, 1224,
+     1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1225, 1225,
+     1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1226,
+     1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226,
+
+     1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227,
+     1227, 1228, 1228, 1228, 1228, 1228, 1228, 1228, 1228, 1228,
+     1228, 1228, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229,
+     1229, 1229, 1229, 1230, 1230, 1230, 1230, 1230, 1230, 1230,
+     1230, 1230, 1230, 1230, 1231,    0, 1231, 1231, 1231, 1231,
+     1231, 1231, 1231, 1231, 1231, 1232,    0, 1232, 1232, 1232,
+     1232, 1232, 1232, 1232, 1232, 1232, 1233,    0, 1233, 1233,
+     1233, 1233, 1233, 1233, 1233, 1233, 1233, 1234,    0, 1234,
+     1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1235,    0,
+     1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1236,
+
+        0,    0, 1236, 1236, 1236, 1237, 1237, 1237, 1237, 1237,
+     1237, 1237, 1237, 1238, 1238, 1238, 1238, 1238, 1238, 1238,
+     1238, 1238, 1238, 1238, 1239,    0, 1239, 1239, 1239, 1239,
      1240, 1240, 1240, 1240, 1240, 1240, 1240, 1241,    0, 1241,
-     1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1242,    0,
-     1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1243,
-        0,    0, 1243, 1243, 1243, 1244, 1244, 1244, 1244, 1244,
-     1244, 1244, 1244, 1245, 1245, 1245, 1245, 1245, 1245, 1245,
-     1245, 1245, 1245, 1245, 1246,    0, 1246, 1246, 1246, 1246,
-     1247, 1247, 1247, 1247, 1247, 1247, 1247, 1248,    0, 1248,
-     1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1249, 1249,
-     1249, 1249, 1249, 1249, 1249, 1250, 1250,    0, 1250, 1250,
-     1250, 1250, 1250, 1250, 1250, 1250, 1094, 1094, 1094, 1094,
-
-     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
-     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
-     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
-     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
-     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
-     1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
-     1094, 1094
+     1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1242, 1242,
+     1242, 1242, 1242, 1242, 1242, 1243, 1243,    0, 1243, 1243,
+     1243, 1243, 1243, 1243, 1243, 1243, 1087, 1087, 1087, 1087,
+     1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+     1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+     1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+
+     1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+     1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+     1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+     1087, 1087
     } ;
 
 /* Table of booleans, true if rule could match eol. */
-static yyconst flex_int32_t yy_rule_can_match_eol[149] =
+static yyconst flex_int32_t yy_rule_can_match_eol[148] =
     {   0,
 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
@@ -2432,8 +2402,8 @@
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 
-    0, 0, 0, 0, 0, 0, 0, 0, 0,     };
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0,     };
 
 /* The intent behind this definition is that it'll catch
  * any uses of REJECT which flex missed.
@@ -2466,7 +2436,6 @@
 #include "imc.h"
 #include "parser.h"
 
-// typedef struct yyguts_t       yyguts_t;
 typedef struct parser_state_t parser_state_t;
 
 /* parser state structure
@@ -2545,7 +2514,7 @@
 
 
 
-#line 2549 "compilers/imcc/imclexer.c"
+#line 2518 "compilers/imcc/imclexer.c"
 
 #define INITIAL 0
 #define emit 1
@@ -2785,7 +2754,7 @@
 	register int yy_act;
     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
 
-#line 157 "compilers/imcc/imcc.l"
+#line 154 "compilers/imcc/imcc.l"
 
         /* for emacs "*/
         if (IMCC_INFO(interp)->expect_pasm == 1 && !IMCC_INFO(interp)->in_pod) {
@@ -2804,7 +2773,7 @@
             return 0;
         }
 
-#line 2808 "compilers/imcc/imclexer.c"
+#line 2777 "compilers/imcc/imclexer.c"
 
 	if ( !yyg->yy_init )
 		{
@@ -2858,13 +2827,13 @@
 			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 				{
 				yy_current_state = (int) yy_def[yy_current_state];
-				if ( yy_current_state >= 1095 )
+				if ( yy_current_state >= 1088 )
 					yy_c = yy_meta[(unsigned int) yy_c];
 				}
 			yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
 			++yy_cp;
 			}
-		while ( yy_current_state != 1094 );
+		while ( yy_current_state != 1087 );
 		yy_cp = yyg->yy_last_accepting_cpos;
 		yy_current_state = yyg->yy_last_accepting_state;
 
@@ -2898,13 +2867,13 @@
 
 case 1:
 YY_RULE_SETUP
-#line 175 "compilers/imcc/imcc.l"
+#line 172 "compilers/imcc/imcc.l"
 { SET_LINE_NUMBER; }
 	YY_BREAK
 case 2:
 /* rule 2 can match eol */
 YY_RULE_SETUP
-#line 177 "compilers/imcc/imcc.l"
+#line 174 "compilers/imcc/imcc.l"
 {
             SET_LINE_NUMBER;
             IMCC_INFO(interp)->frames->heredoc_rest = mem_sys_strdup(yytext);
@@ -2914,7 +2883,7 @@
 case 3:
 /* rule 3 can match eol */
 YY_RULE_SETUP
-#line 183 "compilers/imcc/imcc.l"
+#line 180 "compilers/imcc/imcc.l"
 {
         /* heredocs have highest priority
          * arrange them before all wildcard state matches */
@@ -2930,7 +2899,7 @@
 	YY_BREAK
 case 4:
 YY_RULE_SETUP
-#line 196 "compilers/imcc/imcc.l"
+#line 193 "compilers/imcc/imcc.l"
 {
         SET_LINE_NUMBER;
         /* Are we at the end of the heredoc? */
@@ -2955,8 +2924,6 @@
             yy_pop_state(yyscanner);
             yy_scan_string(IMCC_INFO(interp)->frames->heredoc_rest,yyscanner);
 
-            /* not sure we need this decrement; more testing needed */
-            IMCC_INFO(interp)->line--;
             return STRINGC;
         }
         else {
@@ -2973,7 +2940,7 @@
 case 5:
 /* rule 5 can match eol */
 YY_RULE_SETUP
-#line 235 "compilers/imcc/imcc.l"
+#line 230 "compilers/imcc/imcc.l"
 {
         yy_pop_state(yyscanner);
         yy_push_state(cmt3, yyscanner);
@@ -2986,7 +2953,7 @@
 	YY_BREAK
 case 6:
 YY_RULE_SETUP
-#line 245 "compilers/imcc/imcc.l"
+#line 240 "compilers/imcc/imcc.l"
 {
         yy_pop_state(yyscanner);
         yy_push_state(cmt4, yyscanner);
@@ -2994,17 +2961,17 @@
 	YY_BREAK
 case 7:
 YY_RULE_SETUP
-#line 250 "compilers/imcc/imcc.l"
+#line 245 "compilers/imcc/imcc.l"
 { yy_push_state(cmt2, yyscanner); }
 	YY_BREAK
 case 8:
 YY_RULE_SETUP
-#line 252 "compilers/imcc/imcc.l"
+#line 247 "compilers/imcc/imcc.l"
 { yy_push_state(cmt1, yyscanner);  }
 	YY_BREAK
 case 9:
 YY_RULE_SETUP
-#line 254 "compilers/imcc/imcc.l"
+#line 249 "compilers/imcc/imcc.l"
 {
         yylineno = IMCC_INFO(interp)->line = atoi(yytext);
         yy_pop_state(yyscanner);
@@ -3015,7 +2982,7 @@
 case 10:
 /* rule 10 can match eol */
 YY_RULE_SETUP
-#line 261 "compilers/imcc/imcc.l"
+#line 256 "compilers/imcc/imcc.l"
 {
         yy_pop_state(yyscanner);
     }
@@ -3023,7 +2990,7 @@
 case 11:
 /* rule 11 can match eol */
 YY_RULE_SETUP
-#line 265 "compilers/imcc/imcc.l"
+#line 260 "compilers/imcc/imcc.l"
 {
         if (IMCC_INFO(interp)->expect_pasm == 2)
             BEGIN(INITIAL);
@@ -3035,7 +3002,7 @@
 	YY_BREAK
 case 12:
 YY_RULE_SETUP
-#line 274 "compilers/imcc/imcc.l"
+#line 269 "compilers/imcc/imcc.l"
 {
         yy_push_state(cmt5, yyscanner);
     }
@@ -3043,7 +3010,7 @@
 case 13:
 /* rule 13 can match eol */
 YY_RULE_SETUP
-#line 278 "compilers/imcc/imcc.l"
+#line 273 "compilers/imcc/imcc.l"
 {
         if (IMCC_INFO(interp)->expect_pasm == 2)
             BEGIN(INITIAL);
@@ -3058,7 +3025,7 @@
 case 14:
 /* rule 14 can match eol */
 YY_RULE_SETUP
-#line 290 "compilers/imcc/imcc.l"
+#line 285 "compilers/imcc/imcc.l"
 {
     /* this is a stand-alone =cut, but we're not in POD mode, so ignore.  */
     SET_LINE_NUMBER;
@@ -3067,7 +3034,7 @@
 case 15:
 /* rule 15 can match eol */
 YY_RULE_SETUP
-#line 295 "compilers/imcc/imcc.l"
+#line 290 "compilers/imcc/imcc.l"
 {
         SET_LINE_NUMBER;
         IMCC_INFO(interp)->in_pod = 1;
@@ -3077,7 +3044,7 @@
 case 16:
 /* rule 16 can match eol */
 YY_RULE_SETUP
-#line 301 "compilers/imcc/imcc.l"
+#line 296 "compilers/imcc/imcc.l"
 {
         SET_LINE_NUMBER;
         IMCC_INFO(interp)->in_pod = 0;
@@ -3086,478 +3053,478 @@
 	YY_BREAK
 case 17:
 YY_RULE_SETUP
-#line 307 "compilers/imcc/imcc.l"
+#line 302 "compilers/imcc/imcc.l"
 { SET_LINE_NUMBER; }
 	YY_BREAK
 case 18:
 /* rule 18 can match eol */
 YY_RULE_SETUP
-#line 309 "compilers/imcc/imcc.l"
+#line 304 "compilers/imcc/imcc.l"
 { /* ignore */ }
 	YY_BREAK
 case 19:
 YY_RULE_SETUP
-#line 311 "compilers/imcc/imcc.l"
+#line 306 "compilers/imcc/imcc.l"
 return TK_LINE;
 	YY_BREAK
 case 20:
 YY_RULE_SETUP
-#line 312 "compilers/imcc/imcc.l"
+#line 307 "compilers/imcc/imcc.l"
 return TK_FILE;
 	YY_BREAK
 case 21:
 YY_RULE_SETUP
-#line 313 "compilers/imcc/imcc.l"
+#line 308 "compilers/imcc/imcc.l"
 return ANNOTATE;
 	YY_BREAK
 case 22:
 YY_RULE_SETUP
-#line 314 "compilers/imcc/imcc.l"
+#line 309 "compilers/imcc/imcc.l"
 return LEXICAL;
 	YY_BREAK
 case 23:
 YY_RULE_SETUP
-#line 315 "compilers/imcc/imcc.l"
+#line 310 "compilers/imcc/imcc.l"
 return ARG;
 	YY_BREAK
 case 24:
 YY_RULE_SETUP
-#line 316 "compilers/imcc/imcc.l"
+#line 311 "compilers/imcc/imcc.l"
 return SUB;
 	YY_BREAK
 case 25:
 YY_RULE_SETUP
-#line 317 "compilers/imcc/imcc.l"
+#line 312 "compilers/imcc/imcc.l"
 return ESUB;
 	YY_BREAK
 case 26:
 YY_RULE_SETUP
-#line 318 "compilers/imcc/imcc.l"
+#line 313 "compilers/imcc/imcc.l"
 return PCC_BEGIN;
 	YY_BREAK
 case 27:
 YY_RULE_SETUP
-#line 319 "compilers/imcc/imcc.l"
+#line 314 "compilers/imcc/imcc.l"
 return PCC_END;
 	YY_BREAK
 case 28:
 YY_RULE_SETUP
-#line 320 "compilers/imcc/imcc.l"
+#line 315 "compilers/imcc/imcc.l"
 return PCC_CALL;
 	YY_BREAK
 case 29:
 YY_RULE_SETUP
-#line 321 "compilers/imcc/imcc.l"
+#line 316 "compilers/imcc/imcc.l"
 return NCI_CALL;
 	YY_BREAK
 case 30:
 YY_RULE_SETUP
-#line 322 "compilers/imcc/imcc.l"
+#line 317 "compilers/imcc/imcc.l"
 return METH_CALL;
 	YY_BREAK
 case 31:
 YY_RULE_SETUP
-#line 323 "compilers/imcc/imcc.l"
+#line 318 "compilers/imcc/imcc.l"
 return INVOCANT;
 	YY_BREAK
 case 32:
 YY_RULE_SETUP
-#line 324 "compilers/imcc/imcc.l"
+#line 319 "compilers/imcc/imcc.l"
 return PCC_SUB;
 	YY_BREAK
 case 33:
 YY_RULE_SETUP
-#line 325 "compilers/imcc/imcc.l"
+#line 320 "compilers/imcc/imcc.l"
 return PCC_BEGIN_RETURN;
 	YY_BREAK
 case 34:
 YY_RULE_SETUP
-#line 326 "compilers/imcc/imcc.l"
+#line 321 "compilers/imcc/imcc.l"
 return PCC_END_RETURN;
 	YY_BREAK
 case 35:
 YY_RULE_SETUP
-#line 327 "compilers/imcc/imcc.l"
+#line 322 "compilers/imcc/imcc.l"
 return PCC_BEGIN_YIELD;
 	YY_BREAK
 case 36:
 YY_RULE_SETUP
-#line 328 "compilers/imcc/imcc.l"
+#line 323 "compilers/imcc/imcc.l"
 return PCC_END_YIELD;
 	YY_BREAK
 case 37:
 YY_RULE_SETUP
-#line 330 "compilers/imcc/imcc.l"
+#line 325 "compilers/imcc/imcc.l"
 return METHOD;
 	YY_BREAK
 case 38:
 YY_RULE_SETUP
-#line 331 "compilers/imcc/imcc.l"
+#line 326 "compilers/imcc/imcc.l"
 return MULTI;
 	YY_BREAK
 case 39:
 YY_RULE_SETUP
-#line 332 "compilers/imcc/imcc.l"
+#line 327 "compilers/imcc/imcc.l"
 return MAIN;
 	YY_BREAK
 case 40:
 YY_RULE_SETUP
-#line 333 "compilers/imcc/imcc.l"
+#line 328 "compilers/imcc/imcc.l"
 return LOAD;
 	YY_BREAK
 case 41:
 YY_RULE_SETUP
-#line 334 "compilers/imcc/imcc.l"
+#line 329 "compilers/imcc/imcc.l"
 return INIT;
 	YY_BREAK
 case 42:
 YY_RULE_SETUP
-#line 335 "compilers/imcc/imcc.l"
+#line 330 "compilers/imcc/imcc.l"
 return IMMEDIATE;
 	YY_BREAK
 case 43:
 YY_RULE_SETUP
-#line 336 "compilers/imcc/imcc.l"
+#line 331 "compilers/imcc/imcc.l"
 return POSTCOMP;
 	YY_BREAK
 case 44:
 YY_RULE_SETUP
-#line 337 "compilers/imcc/imcc.l"
+#line 332 "compilers/imcc/imcc.l"
 return ANON;
 	YY_BREAK
 case 45:
 YY_RULE_SETUP
-#line 338 "compilers/imcc/imcc.l"
+#line 333 "compilers/imcc/imcc.l"
 return OUTER;
 	YY_BREAK
 case 46:
 YY_RULE_SETUP
-#line 339 "compilers/imcc/imcc.l"
+#line 334 "compilers/imcc/imcc.l"
 return NEED_LEX;
 	YY_BREAK
 case 47:
 YY_RULE_SETUP
-#line 340 "compilers/imcc/imcc.l"
+#line 335 "compilers/imcc/imcc.l"
 return VTABLE_METHOD;
 	YY_BREAK
 case 48:
 YY_RULE_SETUP
-#line 341 "compilers/imcc/imcc.l"
+#line 336 "compilers/imcc/imcc.l"
 return NS_ENTRY;
 	YY_BREAK
 case 49:
 YY_RULE_SETUP
-#line 342 "compilers/imcc/imcc.l"
+#line 337 "compilers/imcc/imcc.l"
 return UNIQUE_REG;
 	YY_BREAK
 case 50:
 YY_RULE_SETUP
-#line 343 "compilers/imcc/imcc.l"
+#line 338 "compilers/imcc/imcc.l"
 return SUB_INSTANCE_OF;
 	YY_BREAK
 case 51:
 YY_RULE_SETUP
-#line 344 "compilers/imcc/imcc.l"
+#line 339 "compilers/imcc/imcc.l"
 return SUBID;
 	YY_BREAK
 case 52:
 YY_RULE_SETUP
-#line 346 "compilers/imcc/imcc.l"
+#line 341 "compilers/imcc/imcc.l"
 return RESULT;
 	YY_BREAK
 case 53:
 YY_RULE_SETUP
-#line 347 "compilers/imcc/imcc.l"
+#line 342 "compilers/imcc/imcc.l"
 return GET_RESULTS;
 	YY_BREAK
 case 54:
 YY_RULE_SETUP
-#line 348 "compilers/imcc/imcc.l"
+#line 343 "compilers/imcc/imcc.l"
 return YIELDT;
 	YY_BREAK
 case 55:
 YY_RULE_SETUP
-#line 349 "compilers/imcc/imcc.l"
+#line 344 "compilers/imcc/imcc.l"
 return SET_YIELD;
 	YY_BREAK
 case 56:
 YY_RULE_SETUP
-#line 350 "compilers/imcc/imcc.l"
+#line 345 "compilers/imcc/imcc.l"
 return RETURN;
 	YY_BREAK
 case 57:
 YY_RULE_SETUP
-#line 351 "compilers/imcc/imcc.l"
+#line 346 "compilers/imcc/imcc.l"
 return SET_RETURN;
 	YY_BREAK
 case 58:
 YY_RULE_SETUP
-#line 352 "compilers/imcc/imcc.l"
+#line 347 "compilers/imcc/imcc.l"
 return TAILCALL;
 	YY_BREAK
 case 59:
 YY_RULE_SETUP
-#line 353 "compilers/imcc/imcc.l"
+#line 348 "compilers/imcc/imcc.l"
 return LOADLIB;
 	YY_BREAK
 case 60:
 YY_RULE_SETUP
-#line 355 "compilers/imcc/imcc.l"
+#line 350 "compilers/imcc/imcc.l"
 return ADV_FLAT;
 	YY_BREAK
 case 61:
 YY_RULE_SETUP
-#line 356 "compilers/imcc/imcc.l"
+#line 351 "compilers/imcc/imcc.l"
 return ADV_SLURPY;
 	YY_BREAK
 case 62:
 YY_RULE_SETUP
-#line 357 "compilers/imcc/imcc.l"
+#line 352 "compilers/imcc/imcc.l"
 return ADV_OPTIONAL;
 	YY_BREAK
 case 63:
 YY_RULE_SETUP
-#line 358 "compilers/imcc/imcc.l"
+#line 353 "compilers/imcc/imcc.l"
 return ADV_OPT_FLAG;
 	YY_BREAK
 case 64:
 YY_RULE_SETUP
-#line 359 "compilers/imcc/imcc.l"
+#line 354 "compilers/imcc/imcc.l"
 return ADV_NAMED;
 	YY_BREAK
 case 65:
 YY_RULE_SETUP
-#line 360 "compilers/imcc/imcc.l"
+#line 355 "compilers/imcc/imcc.l"
 return ADV_ARROW;
 	YY_BREAK
 case 66:
 YY_RULE_SETUP
-#line 361 "compilers/imcc/imcc.l"
+#line 356 "compilers/imcc/imcc.l"
 return ADV_INVOCANT;
 	YY_BREAK
 case 67:
 YY_RULE_SETUP
-#line 362 "compilers/imcc/imcc.l"
+#line 357 "compilers/imcc/imcc.l"
 return ADV_CALL_SIG;
 	YY_BREAK
 case 68:
 YY_RULE_SETUP
-#line 364 "compilers/imcc/imcc.l"
+#line 359 "compilers/imcc/imcc.l"
 return NAMESPACE;
 	YY_BREAK
 case 69:
 YY_RULE_SETUP
-#line 365 "compilers/imcc/imcc.l"
+#line 360 "compilers/imcc/imcc.l"
 return HLL;
 	YY_BREAK
 case 70:
 YY_RULE_SETUP
-#line 367 "compilers/imcc/imcc.l"
+#line 362 "compilers/imcc/imcc.l"
 return LOCAL;
 	YY_BREAK
 case 71:
 YY_RULE_SETUP
-#line 368 "compilers/imcc/imcc.l"
+#line 363 "compilers/imcc/imcc.l"
 return CONST;
 	YY_BREAK
 case 72:
 YY_RULE_SETUP
-#line 369 "compilers/imcc/imcc.l"
+#line 364 "compilers/imcc/imcc.l"
 return GLOBAL_CONST;
 	YY_BREAK
 case 73:
 YY_RULE_SETUP
-#line 370 "compilers/imcc/imcc.l"
+#line 365 "compilers/imcc/imcc.l"
 return PARAM;
 	YY_BREAK
 case 74:
 YY_RULE_SETUP
-#line 371 "compilers/imcc/imcc.l"
+#line 366 "compilers/imcc/imcc.l"
 return GOTO;
 	YY_BREAK
 case 75:
 YY_RULE_SETUP
-#line 372 "compilers/imcc/imcc.l"
+#line 367 "compilers/imcc/imcc.l"
 return IF;
 	YY_BREAK
 case 76:
 YY_RULE_SETUP
-#line 373 "compilers/imcc/imcc.l"
+#line 368 "compilers/imcc/imcc.l"
 return UNLESS;
 	YY_BREAK
 case 77:
 YY_RULE_SETUP
-#line 374 "compilers/imcc/imcc.l"
+#line 369 "compilers/imcc/imcc.l"
 return PNULL;
 	YY_BREAK
 case 78:
 YY_RULE_SETUP
-#line 375 "compilers/imcc/imcc.l"
+#line 370 "compilers/imcc/imcc.l"
 return INTV;
 	YY_BREAK
 case 79:
 YY_RULE_SETUP
-#line 376 "compilers/imcc/imcc.l"
+#line 371 "compilers/imcc/imcc.l"
 return FLOATV;
 	YY_BREAK
 case 80:
 YY_RULE_SETUP
-#line 378 "compilers/imcc/imcc.l"
+#line 373 "compilers/imcc/imcc.l"
 return PMCV;
 	YY_BREAK
 case 81:
 YY_RULE_SETUP
-#line 379 "compilers/imcc/imcc.l"
+#line 374 "compilers/imcc/imcc.l"
 return STRINGV;
 	YY_BREAK
 case 82:
 YY_RULE_SETUP
-#line 380 "compilers/imcc/imcc.l"
+#line 375 "compilers/imcc/imcc.l"
 return SHIFT_LEFT;
 	YY_BREAK
 case 83:
 YY_RULE_SETUP
-#line 381 "compilers/imcc/imcc.l"
+#line 376 "compilers/imcc/imcc.l"
 return SHIFT_RIGHT;
 	YY_BREAK
 case 84:
 YY_RULE_SETUP
-#line 382 "compilers/imcc/imcc.l"
+#line 377 "compilers/imcc/imcc.l"
 return SHIFT_RIGHT_U;
 	YY_BREAK
 case 85:
 YY_RULE_SETUP
-#line 383 "compilers/imcc/imcc.l"
+#line 378 "compilers/imcc/imcc.l"
 return LOG_AND;
 	YY_BREAK
 case 86:
 YY_RULE_SETUP
-#line 384 "compilers/imcc/imcc.l"
+#line 379 "compilers/imcc/imcc.l"
 return LOG_OR;
 	YY_BREAK
 case 87:
 YY_RULE_SETUP
-#line 385 "compilers/imcc/imcc.l"
+#line 380 "compilers/imcc/imcc.l"
 return LOG_XOR;
 	YY_BREAK
 case 88:
 YY_RULE_SETUP
-#line 386 "compilers/imcc/imcc.l"
+#line 381 "compilers/imcc/imcc.l"
 return RELOP_LT;
 	YY_BREAK
 case 89:
 YY_RULE_SETUP
-#line 387 "compilers/imcc/imcc.l"
+#line 382 "compilers/imcc/imcc.l"
 return RELOP_LTE;
 	YY_BREAK
 case 90:
 YY_RULE_SETUP
-#line 388 "compilers/imcc/imcc.l"
+#line 383 "compilers/imcc/imcc.l"
 return RELOP_GT;
 	YY_BREAK
 case 91:
 YY_RULE_SETUP
-#line 389 "compilers/imcc/imcc.l"
+#line 384 "compilers/imcc/imcc.l"
 return RELOP_GTE;
 	YY_BREAK
 case 92:
 YY_RULE_SETUP
-#line 390 "compilers/imcc/imcc.l"
+#line 385 "compilers/imcc/imcc.l"
 return RELOP_EQ;
 	YY_BREAK
 case 93:
 YY_RULE_SETUP
-#line 391 "compilers/imcc/imcc.l"
+#line 386 "compilers/imcc/imcc.l"
 return RELOP_NE;
 	YY_BREAK
 case 94:
 YY_RULE_SETUP
-#line 392 "compilers/imcc/imcc.l"
+#line 387 "compilers/imcc/imcc.l"
 return POW;
 	YY_BREAK
 case 95:
 YY_RULE_SETUP
-#line 394 "compilers/imcc/imcc.l"
+#line 389 "compilers/imcc/imcc.l"
 return CONCAT;
 	YY_BREAK
 case 96:
 YY_RULE_SETUP
-#line 395 "compilers/imcc/imcc.l"
+#line 390 "compilers/imcc/imcc.l"
 return DOT;
 	YY_BREAK
 case 97:
 YY_RULE_SETUP
-#line 397 "compilers/imcc/imcc.l"
+#line 392 "compilers/imcc/imcc.l"
 return PLUS_ASSIGN;
 	YY_BREAK
 case 98:
 YY_RULE_SETUP
-#line 398 "compilers/imcc/imcc.l"
+#line 393 "compilers/imcc/imcc.l"
 return MINUS_ASSIGN;
 	YY_BREAK
 case 99:
 YY_RULE_SETUP
-#line 399 "compilers/imcc/imcc.l"
+#line 394 "compilers/imcc/imcc.l"
 return MUL_ASSIGN;
 	YY_BREAK
 case 100:
 YY_RULE_SETUP
-#line 400 "compilers/imcc/imcc.l"
+#line 395 "compilers/imcc/imcc.l"
 return DIV_ASSIGN;
 	YY_BREAK
 case 101:
 YY_RULE_SETUP
-#line 401 "compilers/imcc/imcc.l"
+#line 396 "compilers/imcc/imcc.l"
 return MOD_ASSIGN;
 	YY_BREAK
 case 102:
 YY_RULE_SETUP
-#line 402 "compilers/imcc/imcc.l"
+#line 397 "compilers/imcc/imcc.l"
 return FDIV;
 	YY_BREAK
 case 103:
 YY_RULE_SETUP
-#line 403 "compilers/imcc/imcc.l"
+#line 398 "compilers/imcc/imcc.l"
 return FDIV_ASSIGN;
 	YY_BREAK
 case 104:
 YY_RULE_SETUP
-#line 404 "compilers/imcc/imcc.l"
+#line 399 "compilers/imcc/imcc.l"
 return BAND_ASSIGN;
 	YY_BREAK
 case 105:
 YY_RULE_SETUP
-#line 405 "compilers/imcc/imcc.l"
+#line 400 "compilers/imcc/imcc.l"
 return BOR_ASSIGN;
 	YY_BREAK
 case 106:
 YY_RULE_SETUP
-#line 406 "compilers/imcc/imcc.l"
+#line 401 "compilers/imcc/imcc.l"
 return BXOR_ASSIGN;
 	YY_BREAK
 case 107:
 YY_RULE_SETUP
-#line 407 "compilers/imcc/imcc.l"
+#line 402 "compilers/imcc/imcc.l"
 return SHR_ASSIGN;
 	YY_BREAK
 case 108:
 YY_RULE_SETUP
-#line 408 "compilers/imcc/imcc.l"
+#line 403 "compilers/imcc/imcc.l"
 return SHL_ASSIGN;
 	YY_BREAK
 case 109:
 YY_RULE_SETUP
-#line 409 "compilers/imcc/imcc.l"
+#line 404 "compilers/imcc/imcc.l"
 return SHR_U_ASSIGN;
 	YY_BREAK
 case 110:
 YY_RULE_SETUP
-#line 410 "compilers/imcc/imcc.l"
+#line 405 "compilers/imcc/imcc.l"
 return CONCAT_ASSIGN;
 	YY_BREAK
 case 111:
 YY_RULE_SETUP
-#line 412 "compilers/imcc/imcc.l"
+#line 407 "compilers/imcc/imcc.l"
 {
         char *macro_name   = NULL;
         int   start_cond   = YY_START;
@@ -3603,7 +3570,7 @@
 	YY_BREAK
 case 112:
 YY_RULE_SETUP
-#line 455 "compilers/imcc/imcc.l"
+#line 450 "compilers/imcc/imcc.l"
 {
         /* the initial whitespace catcher misses this one */
         SET_LINE_NUMBER;
@@ -3612,7 +3579,7 @@
 	YY_BREAK
 case 113:
 YY_RULE_SETUP
-#line 461 "compilers/imcc/imcc.l"
+#line 456 "compilers/imcc/imcc.l"
 {
         const int c = yylex(valp,yyscanner,interp);
 
@@ -3627,7 +3594,7 @@
 	YY_BREAK
 case 114:
 YY_RULE_SETUP
-#line 473 "compilers/imcc/imcc.l"
+#line 468 "compilers/imcc/imcc.l"
 {
         if (valp) {
             char *label;
@@ -3652,7 +3619,7 @@
 	YY_BREAK
 case 115:
 YY_RULE_SETUP
-#line 495 "compilers/imcc/imcc.l"
+#line 490 "compilers/imcc/imcc.l"
 {
         if (valp) {
             char *label;
@@ -3675,12 +3642,12 @@
 	YY_BREAK
 case 116:
 YY_RULE_SETUP
-#line 515 "compilers/imcc/imcc.l"
+#line 510 "compilers/imcc/imcc.l"
 return COMMA;
 	YY_BREAK
 case 117:
 YY_RULE_SETUP
-#line 517 "compilers/imcc/imcc.l"
+#line 512 "compilers/imcc/imcc.l"
 {
         /* trim last ':' */
         YYCHOP();
@@ -3693,7 +3660,7 @@
 	YY_BREAK
 case 118:
 YY_RULE_SETUP
-#line 527 "compilers/imcc/imcc.l"
+#line 522 "compilers/imcc/imcc.l"
 {
         char   * const macro_name = mem_sys_strdup(yytext + 1);
         int failed = expand_macro(interp, macro_name, yyscanner);
@@ -3706,54 +3673,41 @@
 	YY_BREAK
 case 119:
 YY_RULE_SETUP
-#line 539 "compilers/imcc/imcc.l"
+#line 534 "compilers/imcc/imcc.l"
 DUP_AND_RET(valp, FLOATC);
 	YY_BREAK
 case 120:
 YY_RULE_SETUP
-#line 540 "compilers/imcc/imcc.l"
+#line 535 "compilers/imcc/imcc.l"
 DUP_AND_RET(valp, INTC);
 	YY_BREAK
 case 121:
 YY_RULE_SETUP
-#line 541 "compilers/imcc/imcc.l"
+#line 536 "compilers/imcc/imcc.l"
 DUP_AND_RET(valp, INTC);
 	YY_BREAK
 case 122:
 YY_RULE_SETUP
-#line 542 "compilers/imcc/imcc.l"
+#line 537 "compilers/imcc/imcc.l"
 DUP_AND_RET(valp, INTC);
 	YY_BREAK
 case 123:
 YY_RULE_SETUP
-#line 543 "compilers/imcc/imcc.l"
+#line 538 "compilers/imcc/imcc.l"
 DUP_AND_RET(valp, INTC);
 	YY_BREAK
 case 124:
 YY_RULE_SETUP
-#line 545 "compilers/imcc/imcc.l"
+#line 540 "compilers/imcc/imcc.l"
 {
         valp->s = mem_sys_strdup(yytext);
 
-        /* trailing 'L' */
-        valp->s[strlen(valp->s) - 1] = '\0';
-
-        /* no BIGINT native format yet */
         return STRINGC;
     }
 	YY_BREAK
 case 125:
 YY_RULE_SETUP
-#line 555 "compilers/imcc/imcc.l"
-{
-        valp->s = mem_sys_strdup(yytext);
-
-        return STRINGC;
-    }
-	YY_BREAK
-case 126:
-YY_RULE_SETUP
-#line 561 "compilers/imcc/imcc.l"
+#line 546 "compilers/imcc/imcc.l"
 {
         macro_frame_t *frame;
 
@@ -3782,9 +3736,9 @@
         yy_push_state(heredoc1, yyscanner);
     }
 	YY_BREAK
-case 127:
+case 126:
 YY_RULE_SETUP
-#line 589 "compilers/imcc/imcc.l"
+#line 574 "compilers/imcc/imcc.l"
 {
         /* charset:"..." */
         valp->s = mem_sys_strdup(yytext);
@@ -3793,9 +3747,9 @@
         return USTRINGC;
     }
 	YY_BREAK
-case 128:
+case 127:
 YY_RULE_SETUP
-#line 597 "compilers/imcc/imcc.l"
+#line 582 "compilers/imcc/imcc.l"
 {
         if (valp) (valp)->s = yytext;
         if (IMCC_INFO(interp)->state->pasm_file)
@@ -3804,9 +3758,9 @@
         return IREG;
     }
 	YY_BREAK
-case 129:
+case 128:
 YY_RULE_SETUP
-#line 605 "compilers/imcc/imcc.l"
+#line 590 "compilers/imcc/imcc.l"
 {
         if (valp) (valp)->s = yytext;
         if (IMCC_INFO(interp)->state->pasm_file)
@@ -3815,9 +3769,9 @@
         return NREG;
     }
 	YY_BREAK
-case 130:
+case 129:
 YY_RULE_SETUP
-#line 613 "compilers/imcc/imcc.l"
+#line 598 "compilers/imcc/imcc.l"
 {
         if (valp) (valp)->s = yytext;
         if (IMCC_INFO(interp)->state->pasm_file)
@@ -3826,9 +3780,9 @@
         return SREG;
     }
 	YY_BREAK
-case 131:
+case 130:
 YY_RULE_SETUP
-#line 621 "compilers/imcc/imcc.l"
+#line 606 "compilers/imcc/imcc.l"
 {
         if (valp) (valp)->s = yytext;
         if (IMCC_INFO(interp)->state->pasm_file)
@@ -3837,17 +3791,17 @@
         return PREG;
     }
 	YY_BREAK
-case 132:
+case 131:
 YY_RULE_SETUP
-#line 629 "compilers/imcc/imcc.l"
+#line 614 "compilers/imcc/imcc.l"
 {
         IMCC_fataly(interp, EXCEPTION_SYNTAX_ERROR,
             "'%s' is not a valid register name", yytext);
     }
 	YY_BREAK
-case 133:
+case 132:
 YY_RULE_SETUP
-#line 634 "compilers/imcc/imcc.l"
+#line 619 "compilers/imcc/imcc.l"
 {
         if (IMCC_INFO(interp)->state->pasm_file == 0)
             IMCC_fataly(interp, EXCEPTION_SYNTAX_ERROR,
@@ -3859,26 +3813,26 @@
         return REG;
     }
 	YY_BREAK
-case 134:
+case 133:
 YY_RULE_SETUP
-#line 646 "compilers/imcc/imcc.l"
+#line 631 "compilers/imcc/imcc.l"
 { return handle_identifier(interp, valp, yytext); }
 	YY_BREAK
-case 135:
+case 134:
 YY_RULE_SETUP
-#line 648 "compilers/imcc/imcc.l"
+#line 633 "compilers/imcc/imcc.l"
 /* skip */;
 	YY_BREAK
-case 136:
+case 135:
 YY_RULE_SETUP
-#line 650 "compilers/imcc/imcc.l"
+#line 635 "compilers/imcc/imcc.l"
 {
         /* catch all except for state macro */
         return yytext[0];
     }
 	YY_BREAK
 case YY_STATE_EOF(emit):
-#line 655 "compilers/imcc/imcc.l"
+#line 640 "compilers/imcc/imcc.l"
 {
         BEGIN(INITIAL);
 
@@ -3891,34 +3845,34 @@
     }
 	YY_BREAK
 case YY_STATE_EOF(INITIAL):
-#line 666 "compilers/imcc/imcc.l"
+#line 651 "compilers/imcc/imcc.l"
 yyterminate();
 	YY_BREAK
-case 137:
+case 136:
 YY_RULE_SETUP
-#line 668 "compilers/imcc/imcc.l"
+#line 653 "compilers/imcc/imcc.l"
 {
         /* the initial whitespace catcher misses this one */
         SET_LINE_NUMBER;
         DUP_AND_RET(valp, ENDM);
 }
 	YY_BREAK
-case 138:
-/* rule 138 can match eol */
+case 137:
+/* rule 137 can match eol */
 YY_RULE_SETUP
-#line 674 "compilers/imcc/imcc.l"
+#line 659 "compilers/imcc/imcc.l"
 {
         DUP_AND_RET(valp, '\n');
     }
 	YY_BREAK
-case 139:
+case 138:
 YY_RULE_SETUP
-#line 678 "compilers/imcc/imcc.l"
+#line 663 "compilers/imcc/imcc.l"
 return LABEL;
 	YY_BREAK
-case 140:
+case 139:
 YY_RULE_SETUP
-#line 680 "compilers/imcc/imcc.l"
+#line 665 "compilers/imcc/imcc.l"
 {
 
         if (yylex(valp,yyscanner,interp) != LABEL)
@@ -3943,9 +3897,9 @@
         return LABEL;
     }
 	YY_BREAK
-case 141:
+case 140:
 YY_RULE_SETUP
-#line 704 "compilers/imcc/imcc.l"
+#line 689 "compilers/imcc/imcc.l"
 {
     if (valp) {
         if (!IMCC_INFO(interp)->cur_macro_name) {
@@ -3974,46 +3928,46 @@
     return IDENTIFIER;
 }
 	YY_BREAK
-case 142:
+case 141:
 YY_RULE_SETUP
-#line 732 "compilers/imcc/imcc.l"
+#line 717 "compilers/imcc/imcc.l"
 DUP_AND_RET(valp, ' ');
 	YY_BREAK
-case 143:
+case 142:
 YY_RULE_SETUP
-#line 733 "compilers/imcc/imcc.l"
+#line 718 "compilers/imcc/imcc.l"
 DUP_AND_RET(valp, REG);
 	YY_BREAK
-case 144:
+case 143:
 YY_RULE_SETUP
-#line 734 "compilers/imcc/imcc.l"
+#line 719 "compilers/imcc/imcc.l"
 DUP_AND_RET(valp, REG);
 	YY_BREAK
-case 145:
+case 144:
 YY_RULE_SETUP
-#line 735 "compilers/imcc/imcc.l"
+#line 720 "compilers/imcc/imcc.l"
 DUP_AND_RET(valp, IDENTIFIER);
 	YY_BREAK
-case 146:
+case 145:
 YY_RULE_SETUP
-#line 736 "compilers/imcc/imcc.l"
+#line 721 "compilers/imcc/imcc.l"
 DUP_AND_RET(valp, MACRO);
 	YY_BREAK
-case 147:
+case 146:
 YY_RULE_SETUP
-#line 737 "compilers/imcc/imcc.l"
+#line 722 "compilers/imcc/imcc.l"
 DUP_AND_RET(valp, yytext[0]);
 	YY_BREAK
 case YY_STATE_EOF(macro):
-#line 738 "compilers/imcc/imcc.l"
+#line 723 "compilers/imcc/imcc.l"
 yyterminate();
 	YY_BREAK
-case 148:
+case 147:
 YY_RULE_SETUP
-#line 740 "compilers/imcc/imcc.l"
+#line 725 "compilers/imcc/imcc.l"
 ECHO;
 	YY_BREAK
-#line 4017 "compilers/imcc/imclexer.c"
+#line 3971 "compilers/imcc/imclexer.c"
 case YY_STATE_EOF(pod):
 case YY_STATE_EOF(cmt1):
 case YY_STATE_EOF(cmt2):
@@ -4316,7 +4270,7 @@
 		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 			{
 			yy_current_state = (int) yy_def[yy_current_state];
-			if ( yy_current_state >= 1095 )
+			if ( yy_current_state >= 1088 )
 				yy_c = yy_meta[(unsigned int) yy_c];
 			}
 		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -4345,11 +4299,11 @@
 	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 		{
 		yy_current_state = (int) yy_def[yy_current_state];
-		if ( yy_current_state >= 1095 )
+		if ( yy_current_state >= 1088 )
 			yy_c = yy_meta[(unsigned int) yy_c];
 		}
 	yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-	yy_is_jam = (yy_current_state == 1094);
+	yy_is_jam = (yy_current_state == 1087);
 
 	return yy_is_jam ? 0 : yy_current_state;
 }
@@ -5225,7 +5179,7 @@
 
 #define YYTABLES_NAME "yytables"
 
-#line 740 "compilers/imcc/imcc.l"
+#line 725 "compilers/imcc/imcc.l"
 
 
 
@@ -5849,7 +5803,7 @@
 imcc_run_compilation(PARROT_INTERP, void *yyscanner) {
     IMCC_TRY(IMCC_INFO(interp)->jump_buf, IMCC_INFO(interp)->error_code) {
         if (yyparse(yyscanner, interp)) {
-            IMCC_INFO(interp)->error_code = IMCC_PARSEFAIL_EXCEPTION;
+            IMCC_INFO(interp)->error_code    = IMCC_PARSEFAIL_EXCEPTION;
             IMCC_INFO(interp)->error_message = string_from_literal(interp, "syntax error ... somewhere");
             return;
         }

Modified: branches/ucs4_encoding/compilers/imcc/instructions.c
==============================================================================
--- branches/ucs4_encoding/compilers/imcc/instructions.c	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/compilers/imcc/instructions.c	Mon May 24 21:18:41 2010	(r46974)
@@ -794,13 +794,11 @@
 
 */
 
-PARROT_EXPORT
 int
 emit_open(PARROT_INTERP, int type, ARGIN_NULLOK(const char *param))
 {
     ASSERT_ARGS(emit_open)
     IMCC_INFO(interp)->emitter       = type;
-    IMCC_INFO(interp)->has_compile   = 0;
     IMCC_INFO(interp)->dont_optimize = 0;
 
     return (emitters[IMCC_INFO(interp)->emitter]).open(interp, param);
@@ -817,7 +815,6 @@
 
 */
 
-PARROT_EXPORT
 int
 emit_flush(PARROT_INTERP, ARGIN_NULLOK(void *param), ARGIN(IMC_Unit *unit))
 {
@@ -849,7 +846,6 @@
 
 */
 
-PARROT_EXPORT
 int
 emit_close(PARROT_INTERP, ARGIN_NULLOK(void *param))
 {

Modified: branches/ucs4_encoding/compilers/imcc/instructions.h
==============================================================================
--- branches/ucs4_encoding/compilers/imcc/instructions.h	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/compilers/imcc/instructions.h	Mon May 24 21:18:41 2010	(r46974)
@@ -91,21 +91,6 @@
 /* HEADERIZER BEGIN: compilers/imcc/instructions.c */
 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
 
-PARROT_EXPORT
-int emit_close(PARROT_INTERP, ARGIN_NULLOK(void *param))
-        __attribute__nonnull__(1);
-
-PARROT_EXPORT
-int emit_flush(PARROT_INTERP,
-    ARGIN_NULLOK(void *param),
-    ARGIN(IMC_Unit *unit))
-        __attribute__nonnull__(1)
-        __attribute__nonnull__(3);
-
-PARROT_EXPORT
-int emit_open(PARROT_INTERP, int type, ARGIN_NULLOK(const char *param))
-        __attribute__nonnull__(1);
-
 PARROT_WARN_UNUSED_RESULT
 PARROT_CAN_RETURN_NULL
 Instruction * _delete_ins(ARGMOD(IMC_Unit *unit), ARGIN(Instruction *ins))
@@ -133,6 +118,18 @@
         FUNC_MODIFIES(*unit)
         FUNC_MODIFIES(*ins);
 
+int emit_close(PARROT_INTERP, ARGIN_NULLOK(void *param))
+        __attribute__nonnull__(1);
+
+int emit_flush(PARROT_INTERP,
+    ARGIN_NULLOK(void *param),
+    ARGIN(IMC_Unit *unit))
+        __attribute__nonnull__(1)
+        __attribute__nonnull__(3);
+
+int emit_open(PARROT_INTERP, int type, ARGIN_NULLOK(const char *param))
+        __attribute__nonnull__(1);
+
 PARROT_CAN_RETURN_NULL
 Instruction * emitb(PARROT_INTERP,
     ARGMOD_NULLOK(IMC_Unit *unit),
@@ -215,13 +212,6 @@
         FUNC_MODIFIES(*ins)
         FUNC_MODIFIES(*tmp);
 
-#define ASSERT_ARGS_emit_close __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_emit_flush __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(unit))
-#define ASSERT_ARGS_emit_open __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp))
 #define ASSERT_ARGS__delete_ins __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(unit) \
     , PARROT_ASSERT_ARG(ins))
@@ -232,6 +222,13 @@
 #define ASSERT_ARGS_delete_ins __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(unit) \
     , PARROT_ASSERT_ARG(ins))
+#define ASSERT_ARGS_emit_close __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_emit_flush __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp) \
+    , PARROT_ASSERT_ARG(unit))
+#define ASSERT_ARGS_emit_open __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
 #define ASSERT_ARGS_emitb __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp))
 #define ASSERT_ARGS_free_ins __attribute__unused__ int _ASSERT_ARGS_CHECK = (\

Modified: branches/ucs4_encoding/compilers/imcc/main.c
==============================================================================
--- branches/ucs4_encoding/compilers/imcc/main.c	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/compilers/imcc/main.c	Mon May 24 21:18:41 2010	(r46974)
@@ -47,24 +47,25 @@
 
 static void compile_to_bytecode(PARROT_INTERP,
     ARGIN(const char * const sourcefile),
-    ARGIN_NULLOK(const char * const output_file))
+    ARGIN_NULLOK(const char * const output_file),
+    ARGIN(yyscan_t yyscanner))
         __attribute__nonnull__(1)
-        __attribute__nonnull__(2);
+        __attribute__nonnull__(2)
+        __attribute__nonnull__(4);
 
 static void determine_input_file_type(PARROT_INTERP,
-    ARGIN(const char * const sourcefile))
+    ARGIN(const char * const sourcefile),
+    ARGIN(yyscan_t yyscanner))
         __attribute__nonnull__(1)
-        __attribute__nonnull__(2);
+        __attribute__nonnull__(2)
+        __attribute__nonnull__(3);
 
 static void determine_output_file_type(PARROT_INTERP,
-    ARGMOD(int *obj_file),
     ARGIN(const char *output_file))
         __attribute__nonnull__(1)
-        __attribute__nonnull__(2)
-        __attribute__nonnull__(3)
-        FUNC_MODIFIES(*obj_file);
+        __attribute__nonnull__(2);
 
-static void do_pre_process(PARROT_INTERP)
+static void do_pre_process(PARROT_INTERP, yyscan_t yyscanner)
         __attribute__nonnull__(1);
 
 static void imcc_get_optimization_description(
@@ -74,13 +75,11 @@
         __attribute__nonnull__(3)
         FUNC_MODIFIES(*opt_desc);
 
-static void imcc_run_pbc(PARROT_INTERP,
-    int obj_file,
-    ARGIN_NULLOK(const char *output_file),
+static void imcc_parseflags(PARROT_INTERP,
     int argc,
     ARGIN(const char **argv))
         __attribute__nonnull__(1)
-        __attribute__nonnull__(5);
+        __attribute__nonnull__(3);
 
 static void imcc_write_pbc(PARROT_INTERP, ARGIN(const char *output_file))
         __attribute__nonnull__(1)
@@ -93,20 +92,21 @@
 
 #define ASSERT_ARGS_compile_to_bytecode __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(sourcefile))
+    , PARROT_ASSERT_ARG(sourcefile) \
+    , PARROT_ASSERT_ARG(yyscanner))
 #define ASSERT_ARGS_determine_input_file_type __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(sourcefile))
+    , PARROT_ASSERT_ARG(sourcefile) \
+    , PARROT_ASSERT_ARG(yyscanner))
 #define ASSERT_ARGS_determine_output_file_type __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(obj_file) \
     , PARROT_ASSERT_ARG(output_file))
 #define ASSERT_ARGS_do_pre_process __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp))
 #define ASSERT_ARGS_imcc_get_optimization_description \
      __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(opt_desc))
-#define ASSERT_ARGS_imcc_run_pbc __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+#define ASSERT_ARGS_imcc_parseflags __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
     , PARROT_ASSERT_ARG(argv))
 #define ASSERT_ARGS_imcc_write_pbc __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
@@ -149,119 +149,102 @@
 
 /*
 
-=item C<void imcc_start_handling_flags(PARROT_INTERP)>
+=item C<static void imcc_parseflags(PARROT_INTERP, int argc, const char **argv)>
 
-Initialize handling of IMCC related command line flags.
+Parse flags ans set approptiate state(s)
 
 =cut
 
 */
-void
-imcc_start_handling_flags(PARROT_INTERP)
-{
-    SET_STATE_RUN_PBC(interp);
-}
-
-/*
-
-=item C<int imcc_handle_flag(PARROT_INTERP, struct longopt_opt_info *opt,
-Parrot_Run_core_t *core)>
 
-Handle Parrot's command line for IMCC related option and set appropriate flags.
+static void
+imcc_parseflags(PARROT_INTERP, int argc, ARGIN(const char **argv))
+{
+    ASSERT_ARGS(imcc_parseflags)
+    struct longopt_opt_info opt = LONGOPT_OPT_INFO_INIT;
 
-Return 1 if flag handled, 0 if not.
+    /* default state: run pbc */
+    SET_STATE_RUN_PBC(interp);
 
-=cut
+    while (longopt_get(interp, argc, argv, Parrot_cmd_options(), &opt) > 0) {
+        switch (opt.opt_id) {
+          case 'd':
+            if (opt.opt_arg && is_all_hex_digits(opt.opt_arg)) {
+                IMCC_INFO(interp)->debug = strtoul(opt.opt_arg, NULL, 16);
+            }
+            else {
+                IMCC_INFO(interp)->debug++;
+            }
+            break;
+          case 'w':
+            /* FIXME It's not best way to set warnings... */
+            Parrot_setwarnings(interp, PARROT_WARNINGS_ALL_FLAG);
+            IMCC_INFO(interp)->imcc_warn = 1;
+            break;
+          case 'G':
+            IMCC_INFO(interp)->gc_off = 1;
+            break;
+          case 'a':
+            SET_STATE_PASM_FILE(interp);
+            break;
+          case 'r':
+            if (STATE_RUN_PBC(interp))
+                SET_STATE_RUN_FROM_FILE(interp);
+            SET_STATE_RUN_PBC(interp);
+            break;
+          case 'c':
+            SET_STATE_LOAD_PBC(interp);
+            break;
+          case 'v':
+            IMCC_INFO(interp)->verbose++;
+            break;
+          case 'y':
+            yydebug = 1;
+            break;
+          case 'E':
+            SET_STATE_PRE_PROCESS(interp);
+            break;
+          case 'o':
+            UNSET_STATE_RUN_PBC(interp);
+            interp->output_file = opt.opt_arg;
+            break;
 
-*/
+          case OPT_PBC_OUTPUT:
+            UNSET_STATE_RUN_PBC(interp);
+            SET_STATE_WRITE_PBC(interp);
+            if (!interp->output_file)
+                interp->output_file = "-";
+            break;
 
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-int
-imcc_handle_flag(PARROT_INTERP, struct longopt_opt_info *opt,
-    Parrot_Run_core_t *core)
-{
-    PARROT_ASSERT(opt);
-    PARROT_ASSERT(core);
+          case 'O':
+            if (!opt.opt_arg) {
+                IMCC_INFO(interp)->optimizer_level |= OPT_PRE;
+                break;
+            }
+            if (strchr(opt.opt_arg, 'p'))
+                IMCC_INFO(interp)->optimizer_level |= OPT_PASM;
+            if (strchr(opt.opt_arg, 'c'))
+                IMCC_INFO(interp)->optimizer_level |= OPT_SUB;
+
+            /* currently not ok due to different register allocation */
+            if (strchr(opt.opt_arg, '1')) {
+                IMCC_INFO(interp)->optimizer_level |= OPT_PRE;
+            }
+            if (strchr(opt.opt_arg, '2')) {
+                IMCC_INFO(interp)->optimizer_level |= (OPT_PRE | OPT_CFG);
+            }
+            break;
 
-    switch (opt->opt_id) {
-      case 'd':
-        if (opt->opt_arg && is_all_hex_digits(opt->opt_arg)) {
-            IMCC_INFO(interp)->debug = strtoul(opt->opt_arg, NULL, 16);
-        }
-        else {
-            IMCC_INFO(interp)->debug++;
-        }
-        break;
-      case 'w':
-        /* FIXME It's not best way to set warnings... */
-        Parrot_setwarnings(interp, PARROT_WARNINGS_ALL_FLAG);
-        IMCC_INFO(interp)->imcc_warn = 1;
-        break;
-      case 'G':
-        IMCC_INFO(interp)->gc_off = 1;
-        break;
-      case 'a':
-        SET_STATE_PASM_FILE(interp);
-        break;
-      case 'r':
-        if (STATE_RUN_PBC(interp))
-            SET_STATE_RUN_FROM_FILE(interp);
-        SET_STATE_RUN_PBC(interp);
-        break;
-      case 'c':
-        SET_STATE_LOAD_PBC(interp);
-        break;
-      case 'v':
-        IMCC_INFO(interp)->verbose++;
-        break;
-      case 'y':
-        yydebug = 1;
-        break;
-      case 'E':
-        SET_STATE_PRE_PROCESS(interp);
-        break;
-      case 'o':
-        UNSET_STATE_RUN_PBC(interp);
-        interp->output_file = opt->opt_arg;
-        break;
-
-      case OPT_PBC_OUTPUT:
-        UNSET_STATE_RUN_PBC(interp);
-        SET_STATE_WRITE_PBC(interp);
-        if (!interp->output_file)
-            interp->output_file = "-";
-        break;
-
-      case 'O':
-        if (!opt->opt_arg) {
-            IMCC_INFO(interp)->optimizer_level |= OPT_PRE;
+          default:
+            /* skip already processed arguments */
             break;
         }
-        if (strchr(opt->opt_arg, 'p'))
-            IMCC_INFO(interp)->optimizer_level |= OPT_PASM;
-        if (strchr(opt->opt_arg, 'c'))
-            IMCC_INFO(interp)->optimizer_level |= OPT_SUB;
-
-        /* currently not ok due to different register allocation */
-        if (strchr(opt->opt_arg, '1')) {
-            IMCC_INFO(interp)->optimizer_level |= OPT_PRE;
-        }
-        if (strchr(opt->opt_arg, '2')) {
-            IMCC_INFO(interp)->optimizer_level |= (OPT_PRE | OPT_CFG);
-        }
-        break;
-
-      default:
-        return 0;
     }
-
-    return 1;
 }
 
 /*
 
-=item C<static void do_pre_process(PARROT_INTERP)>
+=item C<static void do_pre_process(PARROT_INTERP, yyscan_t yyscanner)>
 
 Pre-processor step.  Turn parser's output codes into Parrot instructions.
 
@@ -270,14 +253,12 @@
 */
 
 static void
-do_pre_process(PARROT_INTERP)
+do_pre_process(PARROT_INTERP, yyscan_t yyscanner)
 {
     ASSERT_ARGS(do_pre_process)
     int       c;
     YYSTYPE   val;
 
-    const yyscan_t yyscanner = IMCC_INFO(interp)->yyscanner;
-
     IMCC_push_parser_state(interp);
     c = yylex(&val, yyscanner, interp); /* is reset at end of while loop */
     while (c) {
@@ -409,42 +390,8 @@
 
 /*
 
-=item C<void imcc_initialize(PARROT_INTERP)>
-
-Initialise interpreter and set optimisation level.
-
-=cut
-
-*/
-
-void
-imcc_initialize(PARROT_INTERP)
-{
-    yyscan_t yyscanner = IMCC_INFO(interp)->yyscanner;
-
-    do_yylex_init(interp, &yyscanner);
-
-    Parrot_block_GC_mark(interp);
-    Parrot_block_GC_sweep(interp);
-
-    IMCC_INFO(interp)->yyscanner = yyscanner;
-
-    /* Default optimization level is zero; see optimizer.c, imc.h */
-    if (!IMCC_INFO(interp)->optimizer_level) {
-#if 1
-        IMCC_INFO(interp)->optimizer_level = 0;
-#else
-        /* won't even make with this: something with Data::Dumper and
-         * set_i_p_i*/
-        IMCC_INFO(interp)->optimizer_level = OPT_PRE;
-#endif
-    }
-}
-
-/*
-
-=item C<static void imcc_run_pbc(PARROT_INTERP, int obj_file, const char
-*output_file, int argc, const char **argv)>
+=item C<void imcc_run_pbc(PARROT_INTERP, const char *output_file, int argc,
+const char **argv)>
 
 Write out or run Parrot bytecode.
 
@@ -452,25 +399,13 @@
 
 */
 
-static void
-imcc_run_pbc(PARROT_INTERP, int obj_file, ARGIN_NULLOK(const char *output_file),
+void
+imcc_run_pbc(PARROT_INTERP, ARGIN_NULLOK(const char *output_file),
         int argc, ARGIN(const char **argv))
 {
-    ASSERT_ARGS(imcc_run_pbc)
-    if (IMCC_INFO(interp)->imcc_warn)
-        PARROT_WARNINGS_on(interp, PARROT_WARNINGS_ALL_FLAG);
-    else
-        PARROT_WARNINGS_off(interp, PARROT_WARNINGS_ALL_FLAG);
+    /* ASSERT_ARGS(imcc_run_pbc) */
 
-    if (!IMCC_INFO(interp)->gc_off) {
-        Parrot_unblock_GC_mark(interp);
-        Parrot_unblock_GC_sweep(interp);
-    }
-
-    if (obj_file)
-        IMCC_info(interp, 1, "Writing %s\n", output_file);
-    else
-        IMCC_info(interp, 1, "Running...\n");
+    IMCC_info(interp, 1, "Running...\n");
 
     /* runs :init functions */
     PackFile_fixup_subs(interp, PBC_IMMEDIATE, NULL);
@@ -522,7 +457,7 @@
 /*
 
 =item C<static void determine_input_file_type(PARROT_INTERP, const char * const
-sourcefile)>
+sourcefile, yyscan_t yyscanner)>
 
 Read in the source and determine whether it's Parrot bytecode or PASM
 
@@ -531,10 +466,10 @@
 */
 
 static void
-determine_input_file_type(PARROT_INTERP, ARGIN(const char * const sourcefile))
+determine_input_file_type(PARROT_INTERP, ARGIN(const char * const sourcefile),
+                            ARGIN(yyscan_t yyscanner))
 {
     ASSERT_ARGS(determine_input_file_type)
-    yyscan_t yyscanner = IMCC_INFO(interp)->yyscanner;
 
     /* Read in the source and check the file extension for the input type;
        a file extension .pbc means it's parrot bytecode;
@@ -566,8 +501,8 @@
 
 /*
 
-=item C<static void determine_output_file_type(PARROT_INTERP, int *obj_file,
-const char *output_file)>
+=item C<static void determine_output_file_type(PARROT_INTERP, const char
+*output_file)>
 
 Decide what kind of file we are to output.
 
@@ -576,8 +511,7 @@
 */
 
 static void
-determine_output_file_type(PARROT_INTERP,
-    ARGMOD(int *obj_file), ARGIN(const char *output_file))
+determine_output_file_type(PARROT_INTERP, ARGIN(const char *output_file))
 {
     ASSERT_ARGS(determine_output_file_type)
     const char * const ext = strrchr(output_file, '.');
@@ -585,17 +519,13 @@
     if (ext) {
         if (STREQ(ext, ".pbc"))
             SET_STATE_WRITE_PBC(interp);
-        else if (STREQ(ext, PARROT_OBJ_EXT)) {
-            UNUSED(obj_file);
-            IMCC_fatal_standalone(interp, 1, "main: can't produce object file");
-        }
     }
 }
 
 /*
 
 =item C<static void compile_to_bytecode(PARROT_INTERP, const char * const
-sourcefile, const char * const output_file)>
+sourcefile, const char * const output_file, yyscan_t yyscanner)>
 
 Compile source code into bytecode (or die trying).
 
@@ -606,11 +536,11 @@
 static void
 compile_to_bytecode(PARROT_INTERP,
                     ARGIN(const char * const sourcefile),
-                    ARGIN_NULLOK(const char * const output_file))
+                    ARGIN_NULLOK(const char * const output_file),
+                    ARGIN(yyscan_t yyscanner))
 {
     ASSERT_ARGS(compile_to_bytecode)
     PackFile *pf;
-    yyscan_t  yyscanner = IMCC_INFO(interp)->yyscanner;
     const int per_pbc   = STATE_WRITE_PBC(interp) || STATE_RUN_PBC(interp);
     const int opt_level = IMCC_INFO(interp)->optimizer_level;
 
@@ -672,29 +602,34 @@
 imcc_run(PARROT_INTERP, ARGIN(const char *sourcefile), int argc,
         ARGIN(const char **argv))
 {
-    int                obj_file;
-    yyscan_t           yyscanner   = IMCC_INFO(interp)->yyscanner;
+    yyscan_t           yyscanner;
     const char * const output_file = interp->output_file;
 
+    imcc_parseflags(interp, argc, argv);
+
+    /* PMCs in IMCC_INFO won't get marked */
+    Parrot_block_GC_mark(interp);
+    Parrot_block_GC_sweep(interp);
+
+    yylex_init_extra(interp, &yyscanner);
+
     /* Figure out what kind of source file we have -- if we have one */
     if (!sourcefile || !*sourcefile)
         IMCC_fatal_standalone(interp, 1, "main: No source file specified.\n");
     else
-        determine_input_file_type(interp, sourcefile);
+        determine_input_file_type(interp, sourcefile, yyscanner);
 
     if (STATE_PRE_PROCESS(interp)) {
-        do_pre_process(interp);
+        do_pre_process(interp, yyscanner);
         Parrot_destroy(interp);
         yylex_destroy(yyscanner);
-        IMCC_INFO(interp)->yyscanner = NULL;
 
         return 0;
     }
 
     /* Do we need to produce an output file? If so, what type? */
-    obj_file = 0;
     if (output_file) {
-        determine_output_file_type(interp, &obj_file, output_file);
+        determine_output_file_type(interp, output_file);
 
         if (STREQ(sourcefile, output_file) && !STREQ(sourcefile, "-"))
             IMCC_fatal_standalone(interp, 1, "main: outputfile is sourcefile\n");
@@ -718,7 +653,7 @@
         Parrot_pbc_load(interp, pf);
     }
     else
-        compile_to_bytecode(interp, sourcefile, output_file);
+        compile_to_bytecode(interp, sourcefile, output_file, yyscanner);
 
     /* Produce a PBC output file, if one was requested */
     if (STATE_WRITE_PBC(interp)) {
@@ -741,13 +676,24 @@
         }
     }
 
-    /* Run the bytecode */
-    if (STATE_RUN_PBC(interp))
-        imcc_run_pbc(interp, obj_file, output_file, argc, argv);
+    /* tear down the compilation context */
+    if (IMCC_INFO(interp)->imcc_warn)
+        PARROT_WARNINGS_on(interp, PARROT_WARNINGS_ALL_FLAG);
+    else
+        PARROT_WARNINGS_off(interp, PARROT_WARNINGS_ALL_FLAG);
+
+    if (!IMCC_INFO(interp)->gc_off) {
+        Parrot_unblock_GC_mark(interp);
+        Parrot_unblock_GC_sweep(interp);
+    }
 
     yylex_destroy(yyscanner);
-    IMCC_INFO(interp)->yyscanner = NULL;
-    return 0;
+
+    /* should the bytecode be run */
+    if (STATE_RUN_PBC(interp))
+        return 1;
+    else
+        return 0;
 }
 
 /*

Modified: branches/ucs4_encoding/compilers/imcc/optimizer.c
==============================================================================
--- branches/ucs4_encoding/compilers/imcc/optimizer.c	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/compilers/imcc/optimizer.c	Mon May 24 21:18:41 2010	(r46974)
@@ -824,18 +824,19 @@
           case PARROT_ARG_S:
             eval[i + 1] = i;        /* regs used are I0, I1, I2 */
             if (ops <= 2 || i) { /* fill source regs */
+                SymReg *r_ = r[i]->type & VT_CONSTP ? r[i]->reg : r[i];
                 switch (r[i]->set) {
                   case 'I':
-                    REG_INT(interp, i) = IMCC_int_from_reg(interp, r[i]);
+                    REG_INT(interp, i) = IMCC_int_from_reg(interp, r_);
                     break;
                   case 'N':
                     {
-                        STRING * const s = Parrot_str_new(interp, r[i]->name, 0);
+                        STRING * const s = Parrot_str_new(interp, r_->name, 0);
                         REG_NUM(interp, i) = Parrot_str_to_num(interp, s);
                     }
                     break;
                   case 'S':
-                    REG_STR(interp, i) = IMCC_string_from_reg(interp, r[i]);
+                    REG_STR(interp, i) = IMCC_string_from_reg(interp, r_);
                     break;
                   default:
                     break;
@@ -1416,7 +1417,7 @@
         Instruction *ins = unit->bb_list[i]->start;
         if ((ins->type & ITLABEL) && *ins->symregs[0]->name != '_') {
             const SymReg * const lab = ins->symregs[0];
-            used = IMCC_INFO(interp)->has_compile ? 1 : 0;
+            used = 0;
 
             if (!lab->first_ins)
                 continue;

Modified: branches/ucs4_encoding/compilers/imcc/parser.h
==============================================================================
--- branches/ucs4_encoding/compilers/imcc/parser.h	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/compilers/imcc/parser.h	Mon May 24 21:18:41 2010	(r46974)
@@ -27,11 +27,12 @@
 
 SymReg * macro(PARROT_INTERP, char *name);
 
-PARROT_EXPORT int yyparse(yyscan_t, PARROT_INTERP);
-PARROT_EXPORT int yylex(YYSTYPE *, yyscan_t, PARROT_INTERP);
-PARROT_EXPORT int yylex_destroy(yyscan_t);
+int yyparse(yyscan_t, PARROT_INTERP);
+int yylex(YYSTYPE *, yyscan_t, PARROT_INTERP);
+int yylex_destroy(yyscan_t);
 
 int yylex_init(yyscan_t*);
+int yylex_init_extra(PARROT_INTERP, yyscan_t*);
 int yyget_column(yyscan_t);
 void yyset_column(int column_no , yyscan_t);
 int yyerror(yyscan_t, Interp*, const char *);

Modified: branches/ucs4_encoding/compilers/imcc/parser_util.c
==============================================================================
--- branches/ucs4_encoding/compilers/imcc/parser_util.c	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/compilers/imcc/parser_util.c	Mon May 24 21:18:41 2010	(r46974)
@@ -479,8 +479,6 @@
             if (r[0]->set == r[1]->set && REG_NEEDS_ALLOC(r[1]))
                 ins->type |= ITALIAS;
         }
-        else if (STREQ(name, "compile"))
-            ++IMCC_INFO(interp)->has_compile;
 
       found_ins:
         if (emit)
@@ -494,28 +492,6 @@
 
 /*
 
-=item C<int do_yylex_init(PARROT_INTERP, yyscan_t* yyscanner)>
-
-=cut
-
-*/
-
-PARROT_EXPORT
-int
-do_yylex_init(PARROT_INTERP, ARGOUT(yyscan_t* yyscanner))
-{
-    ASSERT_ARGS(do_yylex_init)
-    const int retval = yylex_init(yyscanner);
-
-    /* This way we can get the interpreter via yyscanner */
-    if (!retval)
-        yyset_extra(interp, *yyscanner);
-
-    return retval;
-}
-
-/*
-
 =item C<PMC * imcc_compile(PARROT_INTERP, const char *s, int pasm_file, STRING
 **error_message)>
 
@@ -547,7 +523,7 @@
     UINTVAL regs_used[4] = {3, 3, 3, 3};
     INTVAL eval_number;
 
-    do_yylex_init(interp, &yyscanner);
+    yylex_init_extra(interp, &yyscanner);
 
     /* we create not yet anchored PMCs - e.g. Subs: turn off GC */
     Parrot_block_GC_mark(interp);
@@ -865,7 +841,7 @@
 
     if (ext && STREQ(ext, ".pasm")) {
         void *yyscanner;
-        do_yylex_init(interp, &yyscanner);
+        yylex_init_extra(interp, &yyscanner);
 
         IMCC_INFO(interp)->state->pasm_file = 1;
         /* see imcc.l */
@@ -875,7 +851,7 @@
     }
     else {
         void *yyscanner;
-        do_yylex_init(interp, &yyscanner);
+        yylex_init_extra(interp, &yyscanner);
 
         IMCC_INFO(interp)->state->pasm_file = 0;
         compile_file(interp, fp, yyscanner);
@@ -1191,7 +1167,6 @@
 
 */
 
-PARROT_EXPORT
 void
 imcc_init(PARROT_INTERP)
 {
@@ -1240,7 +1215,6 @@
 
 */
 
-PARROT_EXPORT
 void
 imcc_destroy(PARROT_INTERP)
 {

Modified: branches/ucs4_encoding/compilers/imcc/pbc.c
==============================================================================
--- branches/ucs4_encoding/compilers/imcc/pbc.c	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/compilers/imcc/pbc.c	Mon May 24 21:18:41 2010	(r46974)
@@ -913,13 +913,25 @@
             charset_name[p- p2 - 2] = '\0';
             /*fprintf(stderr, "%s:%s\n", charset_name, encoding_name);*/
             s_charset = Parrot_find_charset(interp, charset_name);
+            if (s_charset == NULL)
+                Parrot_ex_throw_from_c_args(interp, NULL,
+                        EXCEPTION_INVALID_STRING_REPRESENTATION,
+                        "Unknown charset '%s'", charset_name);
             s_encoding = Parrot_find_encoding(interp, encoding_name);
+            if (s_encoding == NULL)
+                Parrot_ex_throw_from_c_args(interp, NULL,
+                        EXCEPTION_INVALID_STRING_REPRESENTATION,
+                        "Unknown encoding '%s'", encoding_name);
         }
         else {
             strncpy(charset_name, buf, p - buf - 1);
             charset_name[p - buf - 1] = '\0';
             /*fprintf(stderr, "%s\n", charset_name);*/
             s_charset = Parrot_find_charset(interp, charset_name);
+            if (s_charset == NULL)
+                Parrot_ex_throw_from_c_args(interp, NULL,
+                        EXCEPTION_INVALID_STRING_REPRESENTATION,
+                        "Unknown charset '%s'", charset_name);
         }
         if (strcmp(charset_name, "unicode") == 0)
             src_encoding = Parrot_utf8_encoding_ptr;
@@ -932,7 +944,7 @@
         buf     = p + 1;
         if (strcmp(charset_name, "unicode") == 0 && strcmp(encoding_name, "utf8") == 0) {
             /* Special case needed for backward compatibility with utf8 literals
-	     * using \xHH\xHH byte sequences */
+             * using \xHH\xHH byte sequences */
             s = Parrot_str_unescape(interp, buf, '"', "utf8:unicode");
         }
         else {

Copied: branches/ucs4_encoding/compilers/opsc/Defines.mak (from r46972, trunk/compilers/opsc/Defines.mak)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/ucs4_encoding/compilers/opsc/Defines.mak	Mon May 24 21:18:41 2010	(r46974, copy of r46972, trunk/compilers/opsc/Defines.mak)
@@ -0,0 +1,24 @@
+OPSC_DIR = compilers/opsc
+
+OPSC_SOURCES_GENERATED = \
+	$(OPSC_DIR)/gen/Ops/Compiler.pir \
+	$(OPSC_DIR)/gen/Ops/Compiler/Actions.pir \
+	$(OPSC_DIR)/gen/Ops/Compiler/Grammar.pir \
+	$(OPSC_DIR)/gen/Ops/Emitter.pir \
+	$(OPSC_DIR)/gen/Ops/Trans.pir \
+	$(OPSC_DIR)/gen/Ops/Trans/C.pir \
+	$(OPSC_DIR)/gen/Ops/Op.pir \
+	$(OPSC_DIR)/gen/Ops/OpLib.pir \
+	$(OPSC_DIR)/gen/Ops/File.pir \
+	$(OPSC_DIR)/gen/Ops/Renumberer.pir
+
+OPSC_SOURCES = \
+	$(OPSC_DIR)/opsc.pir \
+	$(OPSC_DIR)/src/builtins.pir \
+	$(OPSC_SOURCES_GENERATED)
+
+OPSC_CLEANUPS = \
+	$(OPSC_DIR)/opsc.pbc \
+	$(LIBRARY_DIR)/opsc.pbc \
+	$(OPSC_SOURCES_GENERATED)
+

Copied: branches/ucs4_encoding/compilers/opsc/Rules.mak (from r46972, trunk/compilers/opsc/Rules.mak)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/ucs4_encoding/compilers/opsc/Rules.mak	Mon May 24 21:18:41 2010	(r46974, copy of r46972, trunk/compilers/opsc/Rules.mak)
@@ -0,0 +1,50 @@
+$(LIBRARY_DIR)/opsc.pbc: $(NQP_RX) $(OPSC_SOURCES) $(NQPRX_LIB_SETTING)
+	$(PARROT) -o $(LIBRARY_DIR)/opsc.pbc $(OPSC_DIR)/opsc.pir
+
+$(OPSC_DIR)/gen/Ops/Compiler.pir: $(OPSC_DIR)/src/Ops/Compiler.pm $(NQP_RX)
+	$(NQP_RX) --target=pir --output=$@  $(OPSC_DIR)/src/Ops/Compiler.pm
+
+$(OPSC_DIR)/gen/Ops/Compiler/Actions.pir: $(OPSC_DIR)/src/Ops/Compiler/Actions.pm $(NQP_RX)
+	$(NQP_RX) --target=pir --output=$@ $(OPSC_DIR)/src/Ops/Compiler/Actions.pm
+
+$(OPSC_DIR)/gen/Ops/Compiler/Grammar.pir: $(OPSC_DIR)/src/Ops/Compiler/Grammar.pm $(NQP_RX)
+	$(NQP_RX) --target=pir --output=$@ $(OPSC_DIR)/src/Ops/Compiler/Grammar.pm
+
+$(OPSC_DIR)/gen/Ops/Emitter.pir: $(OPSC_DIR)/src/Ops/Emitter.pm $(NQP_RX)
+	$(NQP_RX) --target=pir --output=$@ $(OPSC_DIR)/src/Ops/Emitter.pm
+
+$(OPSC_DIR)/gen/Ops/File.pir: $(OPSC_DIR)/src/Ops/File.pm $(NQP_RX)
+	$(NQP_RX) --target=pir --output=$@ $(OPSC_DIR)/src/Ops/File.pm
+
+$(OPSC_DIR)/gen/Ops/Op.pir: $(OPSC_DIR)/src/Ops/Op.pm $(NQP_RX)
+	$(NQP_RX) --target=pir --output=$@ $(OPSC_DIR)/src/Ops/Op.pm
+
+$(OPSC_DIR)/gen/Ops/OpLib.pir: $(OPSC_DIR)/src/Ops/OpLib.pm $(NQP_RX)
+	$(NQP_RX) --target=pir --output=$@  $(OPSC_DIR)/src/Ops/OpLib.pm
+
+$(OPSC_DIR)/gen/Ops/Trans.pir: $(OPSC_DIR)/src/Ops/Trans.pm $(NQP_RX)
+	$(NQP_RX) --target=pir --output=$@ $(OPSC_DIR)/src/Ops/Trans.pm
+
+$(OPSC_DIR)/gen/Ops/Trans/C.pir: $(OPSC_DIR)/src/Ops/Trans/C.pm $(NQP_RX)
+	$(NQP_RX) --target=pir --output=$@ $(OPSC_DIR)/src/Ops/Trans/C.pm
+
+$(OPSC_DIR)/gen/Ops/Renumberer.pir: $(OPSC_DIR)/src/Ops/Renumberer.pm $(NQP_RX)
+	$(NQP_RX) --target=pir --output=$@ $(OPSC_DIR)/src/Ops/Renumberer.pm
+
+# Target to force rebuild opsc from main Makefile
+$(OPSC_DIR)/ops2c.nqp: $(LIBRARY_DIR)/opsc.pbc
+
+$(OPS2C): $(OPSC_DIR)/ops2c.nqp $(LIBRARY_DIR)/opsc.pbc $(NQP_RX) $(PBC_TO_EXE)
+	$(NQP_RX) --target=pir $(OPSC_DIR)/ops2c.nqp >ops2c.pir
+	$(PARROT) -o ops2c.pbc ops2c.pir
+	$(PBC_TO_EXE) ops2c.pbc
+
+$(INSTALLABLEOPS2C): $(OPS2C) src/install_config$(O)
+	$(PBC_TO_EXE) ops2c.pbc --install
+
+opsc: $(LIBRARY_DIR)/opsc.pbc
+
+# Local variables:
+#   mode: makefile
+# End:
+# vim: ft=make:

Copied: branches/ucs4_encoding/compilers/opsc/TODO (from r46972, trunk/compilers/opsc/TODO)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/ucs4_encoding/compilers/opsc/TODO	Mon May 24 21:18:41 2010	(r46974, copy of r46972, trunk/compilers/opsc/TODO)
@@ -0,0 +1,14 @@
+Simple todo.
+
+Required for initial self-hosting:
+ 
+  * NONE! We are selfhosted now!
+
+Required for full implementation:
+  * Handling #line directives.
+  * A LOT OF DOCUMENTATION.
+  * Add tests for Trans::C independent from 06-emitter.t
+  * Add tests for dynamic mode of Emitter.
+
+Nice to have:
+  * Profiling and performance tuning of ops parsing (we need pmichaud).

Copied: branches/ucs4_encoding/compilers/opsc/gen/Ops/Compiler/IGNOREME (from r46972, trunk/compilers/opsc/gen/Ops/Compiler/IGNOREME)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/ucs4_encoding/compilers/opsc/gen/Ops/Compiler/IGNOREME	Mon May 24 21:18:41 2010	(r46974, copy of r46972, trunk/compilers/opsc/gen/Ops/Compiler/IGNOREME)
@@ -0,0 +1 @@
+I just dummy file. Please ignore me. Please...

Copied: branches/ucs4_encoding/compilers/opsc/gen/Ops/Trans/IGNOREME (from r46972, trunk/compilers/opsc/gen/Ops/Trans/IGNOREME)
==============================================================================

Copied: branches/ucs4_encoding/compilers/opsc/ops2c.nqp (from r46972, trunk/compilers/opsc/ops2c.nqp)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/ucs4_encoding/compilers/opsc/ops2c.nqp	Mon May 24 21:18:41 2010	(r46974, copy of r46972, trunk/compilers/opsc/ops2c.nqp)
@@ -0,0 +1,113 @@
+#! ./parrot-nqp
+# $Id$
+
+pir::load_bytecode("opsc.pbc");
+pir::load_bytecode("Getopt/Obj.pbc");
+
+my $core := 0;
+my @files;
+my $emit_lines := 1;
+
+my $getopts := Q:PIR{ %r = new ['Getopt';'Obj'] };
+
+$getopts.notOptStop();
+my $arg := $getopts.add();
+$arg.long('core');
+$arg.short('c');
+
+$arg := $getopts.add();
+$arg.long('dynamic');
+$arg.short('d');
+$arg.type('String');
+
+$arg := $getopts.add();
+$arg.long('debug');
+$arg.short('g');
+
+$arg := $getopts.add();
+$arg.long('no-lines');
+$arg.short('n');
+
+$arg := $getopts.add();
+$arg.long('help');
+$arg.short('h');
+
+$arg := $getopts.add();
+$arg.long('force-regen');
+$arg.short('f');
+
+my $opts := $getopts.get_options(pir::getinterp__p()[2]);
+
+if $opts<core> {
+    @files := <
+        src/ops/core.ops
+        src/ops/bit.ops
+        src/ops/cmp.ops
+        src/ops/debug.ops
+        src/ops/io.ops
+        src/ops/math.ops
+        src/ops/object.ops
+        src/ops/pmc.ops
+        src/ops/set.ops
+        src/ops/string.ops
+        src/ops/sys.ops
+        src/ops/var.ops
+        src/ops/experimental.ops
+    >;
+    $core := 1;
+}
+elsif $opts<dynamic> {
+    $core := 0;
+    @files.push( $opts<dynamic>);
+}
+elsif (+$opts == 0 || $opts<help>) {
+    say("This is ops2c, part of Parrot build infrastructure.
+usage:
+ops2c --core
+ops2c --dynamic path/to/dynops.ops");
+    pir::exit(0);
+}
+
+my $force_regen := ?$opts<force-regen>;
+
+if ($opts<no-lines>) {
+    #TODO: figure out how to generate line numbers
+    # $emit_lines is currently ignored
+    $emit_lines := 0;
+}
+
+my $trans := Ops::Trans::C.new();
+my $start_time := pir::time__N();
+my $debug :=  ?$opts<debug>;
+my $f;
+my $renum;
+
+if $core {
+    my $lib := Ops::OpLib.new(
+        :num_file('src/ops/ops.num'),
+        :skip_file('src/ops/ops.skip'),
+    );
+    $f := Ops::File.new(|@files, :oplib($lib), :core(1));
+}
+else {
+    $f := Ops::File.new(|@files, :core(0));
+}
+
+#pir::sprintf(my $time, "%.3f", [pir::time__N() - $start_time] );
+#say("# Ops parsed in $time seconds.");
+
+my $emitter := Ops::Emitter.new(
+    :ops_file($f), :trans($trans),
+    :script('ops2c.nqp'), :file(@files[0]),
+    :flags( hash( core => $core ) ),
+);
+
+unless $debug {
+    if $force_regen || $f<renum>.need_regeneration {
+        $emitter.print_ops_num_files();
+    }
+    $emitter.print_c_header_files();
+    $emitter.print_c_source_file();
+}
+
+# vim: expandtab shiftwidth=4 ft=perl6:

Copied: branches/ucs4_encoding/compilers/opsc/opsc.pir (from r46972, trunk/compilers/opsc/opsc.pir)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/ucs4_encoding/compilers/opsc/opsc.pir	Mon May 24 21:18:41 2010	(r46974, copy of r46972, trunk/compilers/opsc/opsc.pir)
@@ -0,0 +1,37 @@
+#! parrot
+# Copyright (C) 2009-2010, Parrot Foundation.
+# $Id$
+
+.namespace [ 'Ops';'Compiler' ]
+
+.include 'compilers/opsc/src/builtins.pir'
+.include 'compilers/opsc/gen/Ops/Compiler/Grammar.pir'
+.include 'compilers/opsc/gen/Ops/Compiler/Actions.pir'
+.include 'compilers/opsc/gen/Ops/Compiler.pir'
+
+.include 'compilers/opsc/gen/Ops/Emitter.pir'
+.include 'compilers/opsc/gen/Ops/Trans.pir'
+.include 'compilers/opsc/gen/Ops/Trans/C.pir'
+
+.include 'compilers/opsc/gen/Ops/Op.pir'
+.include 'compilers/opsc/gen/Ops/OpLib.pir'
+.include 'compilers/opsc/gen/Ops/File.pir'
+.include 'compilers/opsc/gen/Ops/Renumberer.pir'
+
+
+.namespace []
+.sub 'main' :main
+    .param pmc args
+
+    $P0 = compreg 'Ops'
+    $P0.'command_line'(args)
+    exit 0
+.end
+
+
+
+# Local Variables:
+#   mode: pir
+#   fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:

Copied: branches/ucs4_encoding/compilers/opsc/src/Ops/Compiler.pm (from r46972, trunk/compilers/opsc/src/Ops/Compiler.pm)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/ucs4_encoding/compilers/opsc/src/Ops/Compiler.pm	Mon May 24 21:18:41 2010	(r46974, copy of r46972, trunk/compilers/opsc/src/Ops/Compiler.pm)
@@ -0,0 +1,17 @@
+#! nqp
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+class Ops::Compiler is HLL::Compiler;
+
+INIT {
+    Ops::Compiler.language('Ops');
+    Ops::Compiler.parsegrammar(Ops::Compiler::Grammar);
+    Ops::Compiler.parseactions(Ops::Compiler::Actions);
+}
+
+method set_oplib($oplib) {
+    $Ops::Compiler::Actions::OPLIB := $oplib;
+}
+
+# vim: ft=perl6 expandtab shiftwidth=4:

Copied: branches/ucs4_encoding/compilers/opsc/src/Ops/Compiler/Actions.pm (from r46972, trunk/compilers/opsc/src/Ops/Compiler/Actions.pm)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/ucs4_encoding/compilers/opsc/src/Ops/Compiler/Actions.pm	Mon May 24 21:18:41 2010	(r46974, copy of r46972, trunk/compilers/opsc/src/Ops/Compiler/Actions.pm)
@@ -0,0 +1,410 @@
+#! nqp
+# Copyright (C) 2009-2010, Parrot Foundation.
+# $Id$
+
+class Ops::Compiler::Actions is HLL::Actions;
+
+our $OPLIB;
+
+INIT {
+    pir::load_bytecode("nqp-setting.pbc");
+    $OPLIB := 0;
+}
+
+method TOP($/) {
+    make $<body>.ast;
+}
+
+method body($/) {
+    my $past := PAST::Stmts.new(
+        :node($/)
+    );
+
+    $past<preamble> := PAST::Stmts.new(
+        :node($/)
+    );
+    $past<ops> := PAST::Stmts.new(
+        :node($/)
+    );
+
+    for $<preamble> {
+        $past<preamble>.push($_<preamble_guts>);
+    }
+
+    for $<op> {
+        my $ops := $_.ast;
+        my $op_skip_table;
+        if $OPLIB {
+            $op_skip_table := $OPLIB.op_skip_table;
+        }
+        for @($ops) -> $op {
+            if $OPLIB && !$op_skip_table.exists($op.full_name) || !$OPLIB {
+                $past<ops>.push($op);
+            }
+        }
+    }
+
+    make $past;
+}
+
+method preamble($/) {
+    make PAST::Op.new(
+        :node($/),
+        :pasttype('preamble'),
+        ~$<preamble_guts>
+    );
+}
+
+method op($/) {
+
+    # Handling flags.
+    my %flags := hash();
+    for $<op_flag> {
+        %flags{~$_<identifier>} := 1;
+    }
+
+    my @args := @($<signature>.ast);
+
+    my @norm_args := normalize_args(@args);
+    # We have to clone @norm_args. Otherwise it will be destroyed...
+    my @variants  := expand_args(pir::clone__PP(@norm_args));
+
+    my $op := Ops::Op.new(
+        :name(~$<op_name>),
+    );
+
+    # Flatten PAST::Stmts into Op.
+    for @($<op_body>.ast) {
+        $op.push($_);
+    }
+
+    for $<op_body>.ast<jump> {
+        $op.add_jump($_);
+    }
+    if ~$<op_name> eq 'runinterp' {
+        $op.add_jump('PARROT_JUMP_RELATIVE');
+    }
+    $op<flags> := %flags;
+    $op<args>  := @args;
+    $op<type>  := ~$<op_type>;
+    $op<normalized_args> := @norm_args;
+
+    if !%flags<flow> {
+        my $goto_next := PAST::Op.new(
+            :pasttype('call'),
+            :name('goto_offset'),
+            PAST::Op.new(
+                :pasttype<call>,
+                :name<OPSIZE>,
+            )
+        );
+
+        my $nl := "\n";
+        $op.push(PAST::Op.new(
+                :pasttype<inline>,
+                :inline($nl)
+            ));
+        $op.push($goto_next);
+        $op.push(PAST::Op.new(
+                :pasttype<inline>,
+                :inline<;>
+            ));
+    }
+
+    my $past := PAST::Stmts.new(
+        :node($/)
+    );
+
+    if @variants {
+        for @variants {
+            my $new_op := pir::clone__PP($op);
+            $new_op<arg_types> := $_;
+            $past.push($new_op);
+        }
+    }
+    else {
+        $past.push($op);
+    }
+
+    make $past;
+}
+
+# Normalize args
+# For each arg produce LoL of all available variants
+# E.g. "in" will produce "i" and "ic" variants
+#
+# type one of <i p s n>
+# direction one of <i o io>
+# is_label one of <0 1>
+
+sub normalize_args(@args) {
+    my @result;
+    for @args -> $arg {
+        my $res := PAST::Var.new(
+            :isdecl(1)
+        );
+
+        if $arg<type> eq 'LABEL' {
+            $res<type>     := 'i';
+            $res<is_label> := 1;
+        }
+        else {
+            $res<is_label> := 0;
+        }
+
+        if $arg<type> eq 'INTKEY' {
+            $res<type> := 'ki';
+        }
+        elsif $arg<type> ne 'LABEL' {
+            $res<type> := lc(substr($arg<type>, 0, 1));
+        }
+
+        my $use := $arg<direction>;
+
+        if $use eq 'in' {
+            $res<variant>   := $res<type> ~ "c";
+            $res<direction> := 'i';
+        }
+        elsif $use eq 'invar' {
+            $res<direction> := 'i';
+        }
+        elsif $use eq 'inconst' {
+            $res<type>      := $res<type> ~ "c";
+            $res<direction> := 'i';
+        }
+        elsif $use eq 'inout' {
+            $res<direction> := 'io';
+        }
+        else {
+            $res<direction> := 'o';
+        }
+
+        @result.push($res);
+    }
+    @result;
+}
+
+=begin
+
+=item C<expand_args(@args)>
+
+Given an argument list, returns a list of all the possible argument
+combinations.
+
+=end
+sub expand_args(@args) {
+
+    return list() unless @args;
+
+    my $arg := @args.shift;
+
+    my @var := list($arg<type>);
+    if $arg<variant> {
+        @var.push($arg<variant>);
+    }
+
+    my @list := expand_args(@args);
+    unless + at list {
+        return @var;
+    }
+
+    my @results;
+    for @list -> $l {
+        for @var -> $v {
+            # NQP can't handle it automagically. So wrap $l into list.
+            my @l := pir::does__IPS($l, 'array') ?? $l !! list($l);
+            @results.push(list($v, |@l));
+        }
+    }
+
+    @results;
+}
+
+
+method signature($/) {
+    my $past := PAST::Stmts.new(
+        :node($/)
+    );
+
+    for $<op_param> {
+        $past.push($_.ast);
+    }
+
+    make $past;
+}
+
+method op_param($/) {
+    my $past := PAST::Var.new(
+        :node($/),
+        :isdecl(1)
+    );
+
+    # We have to store 2 "types". Just set 2 properties on Var for now
+    $past<direction> := ~$<op_param_direction>;
+    $past<type>      := ~$<op_param_type>;
+
+    make $past;
+}
+
+method op_body($/) {
+    my $past := PAST::Stmts.new(
+        :node($/),
+    );
+    $past<jump> := list();
+    my $prev_words := '';
+    for $<body_word> {
+        if $prev_words && $_<word> {
+            $prev_words := $prev_words ~ ~$_<word>;
+        }
+        elsif $_<word> {
+            $prev_words := ~$_<word>;
+        }
+        else {
+            $past.push(PAST::Op.new(
+                :pasttype('inline'),
+                :inline($prev_words),
+            ));
+            $prev_words := '';
+
+            if $_<macro_param> {
+                $past.push($_<macro_param>.ast);
+            }
+            elsif $_<op_macro> {
+                $past.push($_<op_macro>.ast);
+                for $_<op_macro>.ast<jump> {
+                    $past<jump>.push($_);
+                }
+            }
+        }
+    }
+    if $prev_words {
+        $past.push(PAST::Op.new(
+            :pasttype('inline'),
+            :inline($prev_words)
+        ));
+    }
+    make $past;
+}
+
+method macro_param($/) {
+    make PAST::Var.new(
+        :name(~$<num>),
+        :node($/),
+    );
+}
+
+method body_word($/) {
+    #say('# body_word: '~ ~$<word>);
+    my $past;
+    if $<word> {
+        $past := PAST::Op.new(
+            :pasttype('inline'),
+            :inline(~$<word>)
+        );
+    }
+    elsif $<macro_param> {
+        $past := $<macro_param>.ast;
+    }
+    elsif $<op_macro> {
+        $past := $<op_macro>.ast;
+    }
+    else {
+        die('horribly');
+    }
+    #_dumper($past);
+    make $past;
+}
+
+method op_macro($/) {
+    #say('# op_macro');
+    # Generate set of calls to Trans:
+    # goto NEXT()         -> goto_offset(opsize())
+    # goto OFFSET($addr)  -> goto_offset($addr)
+    # goto ADDRESS($addr) -> goto_address($addr)
+    # expr NEXT()         -> expr_offset(opsize())
+    # expr OFFSET($addr)  -> expr_offset($addr)
+    # expr ADDRERR($addr) -> expr_address($addr)
+    # restart NEXT()      -> restart_offset(opsize()); goto_address(0)
+    # restart OFFSET()    -> restart_offset($addr); goto_offset($addr)
+    # XXX In trunk "restart ADDRESS" equivalent of "goto ADDRESS".
+    # restart ADDRESS()   -> restart_address($addr); goto_address($addr)
+
+    my $macro_type := ~$<macro_type>;
+    my $macro_dest := ~$<macro_destination>;
+    my $is_next    := $macro_dest eq 'NEXT';
+    my $macro_name := $macro_type ~ '_' ~ lc($is_next ?? 'offset' !! $macro_dest);
+
+    my $past  := PAST::Stmts.new;
+
+    my $macro := PAST::Op.new(
+        :pasttype('call'),
+        :name($macro_name),
+    );
+    $past.push($macro);
+
+    $past<jump> := list();
+
+    if $macro_type ne 'expr' && $macro_dest eq 'OFFSET' {
+        $past<jump>.push('PARROT_JUMP_RELATIVE');
+    }
+
+    if $macro_type eq 'expr' || $macro_type eq 'goto' {
+        if $is_next {
+            $macro.push(PAST::Op.new(
+                :pasttype<call>,
+                :name<OPSIZE>,
+            ));
+        }
+        else {
+            process_op_macro_body_word($/, $macro);
+        }
+    }
+    elsif $macro_type eq 'restart' {
+        if $is_next {
+            $macro.push(PAST::Op.new(
+                :pasttype<call>,
+                :name<OPSIZE>,
+            ));
+        }
+        else {
+            process_op_macro_body_word($/, $macro);
+        }
+
+        $macro := PAST::Op.new(
+            :pasttype<call>,
+            :name<goto_address>,
+        );
+        if $is_next {
+            $macro.push(PAST::Op.new(
+                :pasttype<inline>,
+                :inline<0>,
+            ));
+        }
+        else {
+            process_op_macro_body_word($/, $macro);
+        }
+        $past.push($macro);
+    }
+    else {
+        pir::die("Horribly");
+    }
+
+    make $past;
+}
+
+sub process_op_macro_body_word($/, $macro) {
+    #_dumper($<body_word>);
+    if $<body_word> {
+        for $<body_word> {
+            #say(' word ' ~ $_);
+            my $bit := $_.ast;
+            $macro.push($_.ast) if defined($bit);
+        }
+    }
+}
+
+# Local Variables:
+#   mode: perl6
+#   fill-column: 100
+# End:
+# vim: expandtab ft=perl6 shiftwidth=4:

Copied: branches/ucs4_encoding/compilers/opsc/src/Ops/Compiler/Grammar.pm (from r46972, trunk/compilers/opsc/src/Ops/Compiler/Grammar.pm)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/ucs4_encoding/compilers/opsc/src/Ops/Compiler/Grammar.pm	Mon May 24 21:18:41 2010	(r46974, copy of r46972, trunk/compilers/opsc/src/Ops/Compiler/Grammar.pm)
@@ -0,0 +1,151 @@
+#! nqp
+# Copyright (C) 2009-2010, Parrot Foundation.
+# $Id$
+
+INIT { pir::load_bytecode('HLL.pbc'); }
+
+grammar Ops::Compiler::Grammar is HLL::Grammar;
+
+rule TOP {
+    <body>
+    [ $ || <.panic: 'Syntax error'> ]
+}
+
+rule body {
+    [ <preamble> | <op> ]*
+}
+
+token preamble {
+    <begin_preamble>
+    <preamble_guts>
+    <end_preamble>
+}
+
+regex preamble_guts {
+    .*? <?end_preamble>
+}
+
+token begin_preamble {
+    ^^'BEGIN_OPS_PREAMBLE'
+}
+
+token end_preamble {
+    ^^'END_OPS_PREAMBLE'
+}
+
+rule op {
+    <op_type>? 'op' <op_name=identifier>
+    [ '(' <signature> ')' || <.panic: "Fail to parse signature"> ]
+    <op_flag>*
+    [ <op_body> || <.panic: "Fail to parse op body"> ]
+    {*}
+}
+
+token op_type {
+    [ 'inline' | 'function' ]
+}
+
+rule signature { [ [<.ws><op_param><.ws>] ** ',' ]? }
+
+rule op_param {
+    <op_param_direction> <op_param_type>
+}
+
+token op_param_direction {
+    # Order is crucial. NQP doesn't support LTM yet.
+    [
+    | 'inout'
+    | 'inconst'
+    | 'invar'
+    | 'in'
+    | 'out'
+    ]
+}
+
+token op_param_type {
+    # Order is crucial. NQP doesn't support LTM yet.
+    [
+    | 'INTKEY'
+    | 'INT'
+    | 'NUM'
+    | 'STR'
+    | 'PMC'
+    | 'KEY'
+    | 'LABEL'
+    ]
+}
+
+rule op_flag {
+    ':' <identifier>
+}
+
+# OpBody starts with '{' and ends with single '}' on line.
+regex op_body {
+    '{'
+    <body_word>*?
+    ^^ '}'
+}
+
+#Process op body by breaking it into "words" consisting entirely of whitespace,
+#alnums or a single punctuation, then checking for interesting macros (e.g $1
+#or goto NEXT() ) in the midst of the words.
+token body_word {
+    [
+    || <macro_param>
+    || <op_macro>
+    || <word>
+    ]
+}
+
+token word {
+    || <quote>
+    || <ident>
+    || <alnum>
+    || <punct>
+    || <ws>
+}
+
+proto token quote { <...> }
+token quote:sym<apos> { <?[']> <quote_EXPR: ':q'>  }
+token quote:sym<dblq> { <?["]> <quote_EXPR: ':q'> }
+
+token macro_param {
+    '$' $<num>=<integer> # Up to nine params.
+}
+
+rule op_macro {
+    <macro_type> <macro_destination> '(' <body_word>*? ')'
+}
+
+token macro_type {
+    [
+    | 'goto'
+    | 'expr'
+    | 'restart'
+    ]
+}
+
+token macro_destination {
+    [
+    | 'OFFSET'
+    | 'ADDRESS'
+    | 'NEXT'
+    ]
+}
+
+token identifier {
+    <.ident>
+}
+
+# ws handles whitespace, pod and perl and C comments
+token ws {
+  [
+  | \s+
+  | '#' \N*
+  | ^^ '=' .*? \n '=cut'
+  | '/*' .*? '*/'
+  ]*
+}
+
+
+# vim: expandtab shiftwidth=4 ft=perl6:

Copied: branches/ucs4_encoding/compilers/opsc/src/Ops/Emitter.pm (from r46972, trunk/compilers/opsc/src/Ops/Emitter.pm)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/ucs4_encoding/compilers/opsc/src/Ops/Emitter.pm	Mon May 24 21:18:41 2010	(r46974, copy of r46972, trunk/compilers/opsc/src/Ops/Emitter.pm)
@@ -0,0 +1,444 @@
+#! nqp
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+class Ops::Emitter is Hash;
+
+=begin
+
+Emitter.
+
+=end
+
+method new(:$ops_file!, :$trans!, :$script!, :$file, :%flags!) {
+    self<ops_file>  := $ops_file;
+    self<trans>     := $trans;
+    self<script>    := $script;
+    self<file>      := $file;
+    self<flags>     := %flags;
+
+    # Preparing various bits.
+    my $suffix := $trans.suffix();
+    my $base   := 'core';
+
+    if !%flags<core> {
+        $base := subst( $file, /.ops$$/, '');
+        $base := subst( $base, /.*\//, '');
+    }
+
+    my $base_ops_stub := $base ~ '_ops' ~ $suffix;
+    my $base_ops_h    := $base_ops_stub ~ '.h';
+
+    self<base>    := $base;
+    self<suffix>  := $suffix;
+    self<bs>      := $base ~ $suffix ~ '_';
+
+    if %flags<core> {
+        self<include> := "parrot/oplib/$base_ops_h";
+        self<func_header> := (~%flags<dir>) ~ "include/" ~ self<include>;
+        self<enum_header> := (~%flags<dir>) ~ "include/parrot/oplib/ops.h";
+        self<source>  := (~%flags<dir>) ~ "src/ops/$base_ops_stub.c";
+    }
+    else {
+        my $dynops_dir := subst( $file, /\w+\.ops$$/, '');
+        self<include> := $base ~ "_ops.h";
+        self<func_header>  := $dynops_dir ~ self<include>;
+        self<source>  := $dynops_dir ~ $base ~ "_ops.c";
+    }
+
+    self<sym_export> := %flags<core>
+                        ?? ''
+                        !! 'PARROT_DYNEXT_EXPORT';
+
+    self<init_func>  := join('_',
+        'Parrot', 'DynOp', $base ~ $suffix, |$ops_file.version );
+
+    # Prepare ops
+    $trans.prepare_ops(self, $ops_file);
+
+    self;
+};
+
+method ops_file()   { self<ops_file> };
+method trans()      { self<trans> };
+method script()     { self<script> };
+method file()       { self<file> };
+method flags()      { self<flags> };
+method sym_export() { self<sym_export> };
+method init_func()  { self<init_func> };
+
+method base()       { self<base> };
+method suffix()     { self<suffix> };
+method bs()         { self<bs> };
+
+method print_c_header_files() {
+
+    my $fh := pir::open__PSs(self<func_header>, 'w')
+        || die("Can't open "~ self<func_header>);
+    self.emit_c_op_func_header($fh);
+    $fh.close();
+
+    if self.ops_file<core> {
+        $fh := pir::open__PSs(self<enum_header>, 'w')
+            || die("Can't open "~ self<enum_header>);
+        self.emit_c_op_enum_header($fh);
+        $fh.close();
+    }
+}
+
+method emit_c_op_func_header($fh) {
+
+    self._emit_guard_prefix($fh, self<func_header>);
+
+    self._emit_preamble($fh);
+
+    self._emit_includes($fh);
+
+    # Emit runcore specific part.
+    self.trans.emit_c_op_funcs_header_part($fh);
+
+    self._emit_guard_suffix($fh, self<func_header>);
+
+    self._emit_coda($fh);
+}
+
+method emit_c_op_enum_header($fh) {
+
+    self._emit_guard_prefix($fh, self<enum_header>);
+
+    self._emit_preamble($fh);
+
+    self._emit_c_op_enum_header_part($fh);
+
+    self._emit_guard_suffix($fh, self<enum_header>);
+
+    self._emit_coda($fh);
+}
+
+method print_ops_num_files() {
+
+    my $file := ~self<dir> ~ ~self<ops_file>.oplib.num_file;
+    my $fh := pir::open__pss($file, 'w')
+        || die("Can't open $file for writing: " ~ ~pir::err__s());
+    self.emit_ops_num_file($fh);
+    $fh.close();
+
+    $file := ~self<dir> ~ "include/parrot/opsenum.h";
+    $fh := pir::open__pss($file, 'w')
+        || die("Can't open $file for writing: " ~ ~pir::err__s());
+    self.emit_c_opsenum_header($fh, $file);
+    $fh.close();
+}
+
+method emit_ops_num_file($fh) {
+
+    if !self.exists('max_fixed_op_num') {
+        self._prepare_ops_num();
+    }
+
+    $fh.print( join('', |self<ops_num_start>) );
+    my $max_op_num := self<max_fixed_op_num> + 0; #+ 0 to force cloning
+
+    for self.ops_file.ops -> $op {
+        if self<numbered_ops>.exists( $op.full_name ) {
+
+            $max_op_num++;
+
+            my $space := pir::repeat__SsI(' ',
+                35 - pir::length__Is($op.full_name) - pir::length__Is(~$max_op_num));
+            $fh.print($op.full_name ~ $space ~ $max_op_num ~ "\n");
+        }
+    }
+
+}
+
+method emit_c_opsenum_header($fh, $file) {
+
+    if !self.exists('max_fixed_op_num') {
+        self._prepare_ops_num();
+    }
+
+    self._emit_guard_prefix($fh, $file);
+
+    self._emit_preamble($fh);
+
+    self.emit_opsenum_h_body($fh);
+
+    self._emit_guard_suffix($fh, $file);
+
+    self._emit_coda($fh);
+}
+
+method emit_opsenum_h_body($fh) {
+
+    $fh.print("enum OPS_ENUM \{\n");
+
+    my $max_op_num := self<max_fixed_op_num> + 0;
+    for self.ops_file.ops -> $op {
+        if self<numbered_ops>.exists( $op.full_name ) {
+            $max_op_num++;
+
+            my $space := pir::repeat__SsI(' ', 30 - pir::length__Is($op.full_name));
+            $fh.print("    enum_ops_" ~ $op.full_name ~ $space ~ "=");
+            $space := pir::repeat__SsI(' ', 5 - pir::length__Is(~$max_op_num));
+            $fh.print($space ~ $max_op_num ~ ",\n");
+        }
+    }
+
+    $fh.print("};\n");
+}
+
+method _prepare_ops_num() {
+
+    #grab all ops in ops.num
+    self<numbered_ops>     := hash();
+    my $found_dynamic      := 0;
+    self<max_fixed_op_num> := 0;
+    self<ops_num_start>    := list();
+
+    #record which ones have fixed numbers and which just need to be somewhere in ops.num
+    for self.ops_file.oplib.num_file_lines -> $line {
+
+        #copy all lines through ###DYNAMIC### into the new ops.num verbatim
+        unless $found_dynamic {
+            self<ops_num_start>.push(~$line);
+        }
+
+        if $line<op> {
+            if $found_dynamic {
+                self<numbered_ops>{ $line<op><name> } := 1;
+                #say("# added '"~$line<op><name> ~" to numered ops");
+            }
+            else {
+                #don't need to keep track of fixed ops
+                self<max_fixed_op_num> := +$line<op><number>;
+                #say("# added '"~$line<op><name> ~" to fixed ops");
+            }
+        }
+        elsif $line<dynamic> {
+            $found_dynamic := 1;
+        }
+    }
+}
+
+method print_c_source_file() {
+    # Build file in memeory
+    my $fh := pir::new__Ps('StringHandle');
+    $fh.open('dummy.c', 'w');
+    self.emit_c_source_file($fh);
+    $fh.close();
+
+    # ... and write it to disk
+    my $final := pir::open__PSs(self<source>, 'w') || die("Can't open filehandle");
+    $final.print($fh.readall());
+    $final.close();
+    return self<source>;
+}
+
+method emit_c_source_file($fh) {
+    self._emit_source_preamble($fh);
+
+    self.trans.emit_source_part(self, $fh);
+
+    self._emit_op_lib_descriptor($fh);
+
+    self.trans.emit_op_lookup(self, $fh);
+
+    self._emit_init_func($fh);
+    self._emit_dymanic_lib_load($fh);
+    self._emit_coda($fh);
+}
+
+method _emit_c_op_enum_header_part($fh) {
+    my $sb := pir::new__Ps('StringBuilder');
+    my $last_op_code := +self.ops_file.ops - 1;
+    for self.ops_file.ops -> $op {
+        $sb.append_format("    PARROT_OP_%0%1 %2 /* %3 */\n",
+            $op.full_name,
+            ($op.code == $last_op_code ?? ' ' !! ','),
+            pir::repeat__SsI(' ', 30 - pir::length__Is($op.full_name)),
+            $op.code);
+    }
+    $fh.print(q|
+typedef enum {
+|);
+    $fh.print(~$sb);
+    $fh.print(q|
+} parrot_opcode_enums;
+|);
+}
+
+method _emit_source_preamble($fh) {
+
+    self._emit_preamble($fh);
+    $fh.print(qq|
+#include "{self<include>}"
+#include "pmc/pmc_parrotlibrary.h"
+#include "pmc/pmc_callcontext.h"
+
+{self.trans.defines(self)}
+
+|);
+
+    $fh.print(self.ops_file.preamble);
+}
+
+method _emit_op_lib_descriptor($fh) {
+
+    my $core_type := self.trans.core_type;
+    $fh.print(q|
+/*
+** op lib descriptor:
+*/
+
+static op_lib_t | ~ self.bs ~ q|op_lib = {| ~ qq|
+  "{self.base}",               /* name */
+  "{self.suffix}",             /* suffix */
+  $core_type,                       /* core_type = PARROT_XX_CORE */
+  0,                                /* flags */
+  {self.ops_file.version_major},    /* major_version */
+  {self.ops_file.version_minor},    /* minor_version */
+  {self.ops_file.version_patch},    /* patch_version */
+  {+self.ops_file.ops},             /* op_count */
+  {self.trans.op_info(self)},       /* op_info_table */
+  {self.trans.op_func(self)},       /* op_func_table */
+  {self.trans.getop(self)}          /* op_code() */ | ~ q|
+};
+|);
+}
+
+method _emit_init_func($fh) {
+
+    my $init1    := self.trans.init_func_init1;
+    my $dispatch := self.trans.init_func_disaptch;
+
+    # TODO There is a bug in NQP about \{
+    $fh.print(q|
+op_lib_t *
+| ~ self.init_func ~ q|(PARROT_INTERP, long init) {
+    /* initialize and return op_lib ptr */
+    if (init == 1) {
+| ~ $init1 ~ q|
+        return &| ~ self.bs ~q|op_lib;
+    }
+    /* set op_lib to the passed ptr (in init) */
+    else if (init) {
+| ~ $dispatch ~ q|
+    }
+    /* deinit - free resources */
+    else {
+        hop_deinit(interp);
+    }
+    return NULL;
+}
+
+|);
+}
+
+method _emit_dymanic_lib_load($fh) {
+
+    if self.flags<core> {
+        return;
+    }
+
+    my $load_func := join('_',
+            q{Parrot}, q{lib}, self.base, q{ops} ~ self.suffix, q{load}, );
+    $fh.print(qq|
+/*
+ * dynamic lib load function - called once
+ */
+{self.sym_export} PMC*
+$load_func(PARROT_INTERP);
+
+{self.sym_export} PMC*
+$load_func(PARROT_INTERP)
+| ~ q|
+{
+    PMC *const lib = Parrot_pmc_new(interp, enum_class_ParrotLibrary);
+    ((Parrot_ParrotLibrary_attributes*)PMC_data(lib))->oplib_init = (void *) | ~ self.init_func ~q|;
+    dynop_register(interp, lib);
+    return lib;
+}
+|);
+}
+
+# given a headerfile name like "include/parrot/oplib/core_ops.h", this
+# returns a string like "PARROT_OPLIB_CORE_OPS_H_GUARD"
+method _generate_guard_macro_name($filename) {
+    $filename := subst($filename, /.h$/, '');
+    #my @path = File::Spec->splitdir($filename);
+    my @path := split('/', $filename);
+    @path.shift if @path[0]~'/' eq self<flags><dir>;
+    @path.shift if @path[0] eq 'include';
+    @path.shift if @path[0] eq 'parrot';
+    uc( join( '_', 'parrot', |@path, 'h', 'guard' ) );
+}
+
+
+method _emit_guard_prefix($fh, $filename) {
+    my $guardname := self._generate_guard_macro_name($filename);
+    $fh.print('
+/* $Id' ~ '$ */
+');
+    $fh.print(qq/
+#ifndef $guardname
+#define $guardname
+
+/);
+}
+
+method _emit_guard_suffix($fh, $filename) {
+    my $guardname := self._generate_guard_macro_name($filename);
+    $fh.print(qq|
+
+#endif /* $guardname */
+|);
+}
+
+
+method _emit_coda($fh) {
+    $fh.print(q|
+
+/*
+ * Local variables:
+ *   c-file-style: "parrot"
+ *   buffer-read-only: t
+ * End:
+ * vim: expandtab shiftwidth=4:
+ */
+|);
+}
+
+method _emit_includes($fh) {
+
+    $fh.print(qq|
+#include "parrot/parrot.h"
+#include "parrot/oplib.h"
+#include "parrot/runcore_api.h"
+
+{self.sym_export} op_lib_t *{self.init_func}(PARROT_INTERP, long init);
+
+|);
+}
+
+method _emit_preamble($fh) {
+
+    $fh.print(qq|
+/* ex: set ro:
+ * !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
+ *
+ * This file is generated automatically from '{self<file>}' (and possibly other
+ * .ops files). by {self<script>}.
+ *
+ * Any changes made here will be lost!
+ *
+ */
+|);
+
+    if !self.flags<core> {
+        $fh.print("#define PARROT_IN_EXTENSION\n");
+    }
+
+}
+
+# vim: expandtab shiftwidth=4 ft=perl6:

Copied: branches/ucs4_encoding/compilers/opsc/src/Ops/File.pm (from r46972, trunk/compilers/opsc/src/Ops/File.pm)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/ucs4_encoding/compilers/opsc/src/Ops/File.pm	Mon May 24 21:18:41 2010	(r46974, copy of r46972, trunk/compilers/opsc/src/Ops/File.pm)
@@ -0,0 +1,330 @@
+#! nqp
+# Copyright (C) 2001-2009, Parrot Foundation.
+# $Id$
+
+# XXX Better to put this into docs/ somewhere.
+
+=begin
+
+=head1 NAME
+
+Ops::File - Ops To C Code Generation
+
+=head1 SYNOPSIS
+
+  use Ops::File;
+
+=head1 DESCRIPTION
+
+C<Ops::File> takes one or more files of op functions and
+creates real C code for them.
+
+This class is used by F<tools/build/ops2c.pl>.
+
+=head2 Op Functions
+
+For ops that have trivial bodies (such as just a call to some other
+function and a C<return> statement), opcode functions are in the format:
+
+    inline op opname (args) :flags {
+        ... body of function ...
+    }
+
+Note that currently the C<inline> op type is ignored.
+
+Alternately, for opcode functions that have more internal complexity the
+format is:
+
+    op opname (args) :flags {
+        ... body of function ...
+    }
+
+There may be more than one C<return>.
+
+In both cases the closing brace B<must> be on its own line.
+
+When specifying multiple flags, each flag gets its own prefixing colon.
+
+=head2 Op Arguments
+
+Op arguments are a comma-separated list of direction and type pairs.
+
+Argument direction is one of:
+
+    in            the argument passes a value into the op
+    out           the argument passes a value out of the op
+    inout         the argument passes a value into and out of the op
+    inconst       the argument passes a constant value into the op
+    invar         the argument passes a variable value into the op
+
+Argument direction is used to determine the life times of symbols and
+their related register allocations. When an argument is passed into an
+op a register is read from, when it's passed out of an op a register is
+written to.
+
+Argument type is one of:
+
+    INT       the argument is an integer
+    NUM       the argument is an numeric
+    STR       the argument is an string
+    PMC       the argument is an PMC
+    KEY       the argument is an aggregate PMC key
+    INTKEY    the argument is an aggregate PMC integer key
+    LABEL     the argument is an integer branch offset or address
+
+The size of the return offset is determined from the op function's
+signature.
+
+=head2 Op Flags
+
+The flags are of two types:
+
+=over 4
+
+=item 1 class
+
+The classification of ops is intended to facilitate the selection of
+suitable ops for a Parrot safe mode.
+
+=item 2 behavior
+
+The presence (or absence) of certain flags will change how the op behaves. For
+example, the lack of the C<flow> flag will cause the op to be implicitly
+terminated with C<goto NEXT()>. (See next section).
+
+The :deprecated flag will generate a diagnostic to standard error at
+runtime when a deprecated opcode is invoked and
+C<PARROT_WARNINGS_DEPRECATED_FLAG> has been set.
+
+=back
+
+=head2 Op Body (Macro Substitutions)
+
+In the following macro descriptions, C<PC> and C<PC'> are the current
+and next position within the Parrot code.
+
+=over 4
+
+=item C<goto OFFSET(X)>
+
+Transforms to C<PC' = PC + X>. This is used for branches.
+
+=item C<goto NEXT()>
+
+Transforms to C<PC' = PC + S>, where C<S> is the size of an op.
+
+=item C<goto ADDRESS(X)>
+
+Transforms to C<PC' = X>. This is used for absolute jumps.
+
+=item C<expr OFFSET(X)>
+
+Transforms to C<PC + X>. This is used to give a relative address.
+
+=item C<expr NEXT()>
+
+Transforms to C<PC + S>, the position of the next op.
+
+=item C<expr ADDRESS(X)>
+
+Transforms to C<X>, an absolute address.
+
+=item C<OP_SIZE>
+
+Transforms to C<S>, the size of an op.
+
+=item C<HALT()>
+
+Transforms to C<PC' = 0>. Halts run loop, and resets the current
+position to the start of the Parrot code, without resuming.
+
+=item C<restart OFFSET(X)>
+
+Transforms to C<PC' = 0> and restarts at C<PC + X>.
+
+=item C<restart NEXT()>
+
+Transforms to C<PC' = 0> and restarts at C<PC + S>.
+
+=item C<$n>
+
+Transforms to the op function's nth argument. C<$0> is the opcode itself.
+
+=back
+
+Note that, for ease of parsing, if the argument to one of the above
+notations in a ops file contains parentheses, then double the enclosing
+parentheses and add a space around the argument, like so:
+
+    goto OFFSET(( (void*)interp->happy_place ))
+
+=head2 Class Methods
+
+=over 4
+
+=end
+
+class Ops::File is Hash;
+
+pir::load_bytecode('config.pbc');
+
+=begin
+
+=item C<new(@files)>
+
+Returns a new instance initialized by calling C<read_ops()> on each of
+the specified op files.
+
+=item C<new_str($str)>
+
+Returns a new instance initialized by compiling C<$str> as the contents of an
+ops file.
+
+=end
+
+method new(*@files, :$oplib, :$core!, :$nolines) {
+    self<files>   := @files;
+    self<core>    := $core;
+    self<ops>     := list(); # Ops
+    self<preamble>:= '';
+    self<compiler>:= pir::compreg__Ps('Ops');
+    self<op_order>:= 0;
+    self<renum>   := Ops::Renumberer.new( :ops_file(self) );
+
+    if $core {
+        self<oplib> := $oplib;
+        self<compiler>.set_oplib($oplib);
+    }
+    else {
+        self<file> := @files[0];
+    }
+
+    self._set_version();
+
+    for @files { self.read_ops( $_, $nolines ) }
+
+    self._calculate_op_codes();
+
+    self;
+}
+
+method new_str($str, :$oplib) {
+    self<ops>      := list(); # Ops
+    self<preamble> := '';
+
+    self<compiler> := pir::compreg__Ps('Ops');
+    self<oplib>    := $oplib;
+    self<compiler>.set_oplib($oplib);
+
+    self._set_version();
+
+    self._set_version();
+
+    self.compile_ops($str);
+
+    self;
+}
+
+
+=begin
+
+=back
+
+=head2 Instance Methods
+
+=over 4
+
+=item C<read_ops($file,$nolines)>
+
+Reads in the specified .ops file, gathering information about the ops.
+
+=end
+
+method read_ops($file, $nolines) {
+    $Ops::Compiler::Actions::OPLIB := self<oplib>;
+
+    #say("# Parsing $file...");
+    my $start_time := pir::time__N();
+    my $buffer     := slurp($file);
+    self.compile_ops($buffer, :experimental( $file ~~ /experimental\.ops/));
+    #pir::sprintf(my $time, "%.3f", [pir::time__N() - $start_time] );
+    #say("# Parsed $file in $time seconds.");
+}
+
+method compile_ops($str, :$experimental? = 0) {
+    my $compiler := self<compiler>;
+    my $past     := $compiler.compile($str, :target('past'));
+
+    for @($past<ops>) {
+        $_<experimental> := $experimental;
+        self<ops>.push($_);
+        #say($_.full_name ~ " is number " ~ self<op_order>);
+        self<op_order>++;
+    }
+
+    for @( $past<preamble> ) {
+        self<preamble> := self<preamble> ~ $_;
+    }
+    $past;
+}
+
+method get_parse_tree($str) {
+    my $compiler := pir::compreg__Ps('Ops');
+    $compiler.compile($str, :target('parse'));
+}
+
+method preamble() { self<preamble> };
+method ops()      { self<ops> };
+method oplib()    { self<oplib> };
+method version()  { self<version>; }
+
+method version_major() { self<version_major> }
+method version_minor() { self<version_minor> }
+method version_patch() { self<version_patch> }
+
+method _calculate_op_codes() {
+
+    my $code := self<oplib> ??
+        self<oplib>.max_op_num + 1 !!
+        0;
+
+    for self<ops> -> $op {
+        #ops listed in ops.num are non-experimental
+        if self<oplib> {
+            my $full_name := $op.full_name;
+            if self<oplib>.op_num_table.exists($full_name) {
+                $op<code> := self<oplib>.op_num_table{$full_name};
+            }
+            elsif !$op<experimental> && !self<oplib>.op_skip_table.exists($full_name) {
+                die("Non-experimental op " ~ $op.full_name ~ " is not in ops.num.");
+            }
+            #ops not explicitly listed but not skipped are experimental
+            else {
+                $op<code> := $code++;
+                say("# Experimental op " ~ $op.full_name ~ " is not in ops.num.");
+            }
+        }
+        #if there's no oplib, we're compiling dynops and ops aren't experimental
+        else {
+            $op<code> := $code++;
+        }
+    }
+}
+
+method _set_version() {
+    my $config := _config();
+    my $version := $config<VERSION>;
+    #say("# $version");
+    my @bits := split('.', $version);
+    self<version_major> := @bits[0];
+    self<version_minor> := @bits[1];
+    self<version_patch> := @bits[2];
+    self<version>       := @bits;
+}
+
+# Local Variables:
+#   mode: cperl
+#   cperl-indent-level: 4
+#   fill-column: 100
+# End:
+# vim: ft=perl6 expandtab shiftwidth=4:

Copied: branches/ucs4_encoding/compilers/opsc/src/Ops/Op.pm (from r46972, trunk/compilers/opsc/src/Ops/Op.pm)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/ucs4_encoding/compilers/opsc/src/Ops/Op.pm	Mon May 24 21:18:41 2010	(r46974, copy of r46972, trunk/compilers/opsc/src/Ops/Op.pm)
@@ -0,0 +1,388 @@
+#! nqp
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+=begin
+
+=head1 NAME
+
+Ops::Op - Parrot Operation
+
+=head1 SYNOPSIS
+
+  use Ops::Op;
+
+=head1 DESCRIPTION
+
+C<Ops::Op> represents a Parrot operation (op, for short), as read
+from an ops file via C<Ops::OpsFile>, or perhaps even generated by
+some other means. It is the Perl equivalent of the C<op_info_t> C
+C<struct> defined in F<include/parrot/op.h>.
+
+=head2 Op Type
+
+Ops are either I<auto> or I<manual>. Manual ops are responsible for
+having explicit next-op C<RETURN()> statements, while auto ops can count
+on an automatically generated next-op to be appended to the op body.
+
+Note that F<tools/build/ops2c.pl> supplies either 'inline' or 'function'
+as the op's type, depending on whether the C<inline> keyword is present
+in the op definition. This has the effect of causing all ops to be
+considered manual.
+
+=head2 Op Arguments
+
+Note that argument 0 is considered to be the op itself, with arguments
+1..9 being the arguments passed to the op.
+
+Op argument direction and type are represented by short one or two letter
+descriptors.
+
+Op Direction:
+
+    i   The argument is incoming
+    o   The argument is outgoing
+    io  The argument is both incoming and outgoing
+
+Op Type:
+
+    i   The argument is an integer register index.
+    n   The argument is a number register index.
+    p   The argument is a PMC register index.
+    s   The argument is a string register index.
+    ic  The argument is an integer constant (in-line).
+    nc  The argument is a number constant index.
+    pc  The argument is a PMC constant index.
+    sc  The argument is a string constant index.
+    kc  The argument is a key constant index.
+    ki  The argument is a key integer register index.
+    kic  The argument is a key integer constant (in-line).
+
+=head2 Class Methods
+
+=over 4
+
+=end
+
+class Ops::Op is PAST::Block;
+
+INIT {
+    pir::load_bytecode("dumper.pbc");
+}
+
+=begin
+
+=item C<new(:$code, :$type, :$name, :@args, :%flags)>
+
+Allocates a new bodyless op. A body must be provided eventually for the
+op to be usable.
+
+C<$code> is the integer identifier for the op.
+
+C<$type> is the type of op (see the note on op types above).
+
+C<$name> is the name of the op.
+
+C<@args> is a reference to an array of argument type descriptors.
+
+C<$flags> is a hash reference containing zero or more I<hints> or
+I<directives>.
+
+
+=back
+
+=head2 Instance Methods
+
+=over 4
+
+=item C<code()>
+
+Returns the op code.
+
+=item C<type()>
+
+The type of the op, either 'inline' or 'function'.
+
+=item C<name()>
+
+The (short or root) name of the op.
+
+=item C<full_name()>
+
+For argumentless ops, it's the same as C<name()>. For ops with
+arguments, an underscore followed by underscore-separated argument types
+are appended to the name.
+
+=item C<func_name()>
+
+The same as C<full_name()>, but with 'C<Parrot_>' prefixed.
+
+=end
+
+method code($code?) { self.attr('code', $code, defined($code)) }
+
+method type($type?) { self.attr('type', $type, defined($type)) }
+
+method name($name?) { self.attr('name', $name, defined($name)) }
+
+method args($args?) { self.attr('args', $args, defined($args)) }
+
+method arg_types($args?)  {
+    my $res := self.attr('arg_types', $args, defined($args));
+
+    return list() if !defined($res);
+    pir::does__IPS($res, 'array') ?? $res !! list($res);
+}
+
+method arg_dirs($args?)   { self.attr('arg_dirs', $args, defined($args)) }
+
+method arg_type($arg_num) {
+    my @arg_types := self.arg_types;
+    @arg_types[$arg_num];
+}
+
+method full_name() {
+    my $name      := self.name;
+    my @arg_types := self.arg_types;
+
+    #say("# $name arg_types " ~ @arg_types);
+    join('_', $name, |@arg_types);
+}
+
+method func_name($trans) {
+    return $trans.prefix ~ self.full_name;
+}
+
+
+=begin
+
+=item C<flags()>
+
+Sets the op's flags.  This returns a hash reference, whose keys are any
+flags (passed as ":flag") specified for the op.
+
+=end
+
+method flags(%flags?) { self.attr('flags', %flags, defined(%flags)) }
+
+=begin
+
+=item C<body($body)>
+
+=item C<body()>
+
+Sets/gets the op's code body.
+
+=end
+
+method body() {
+    my $res := '';
+    for @(self) -> $part {
+        $res := $res ~ $part<inline>;
+    }
+    $res;
+}
+
+=begin
+
+=item C<jump($jump)>
+
+=item C<jump()>
+
+Sets/gets a string containing one or more C<op_jump_t> values joined with
+C<|> (see F<include/parrot/op.h>). This indicates if and how an op
+may jump.
+
+=end
+
+method jump($jump?)   { self.attr('jump', $jump, defined($jump)) }
+
+=begin
+
+=item C<add_jump($jump)>
+
+=item C<add_jump($jump)>
+
+Add a jump flag to this op if it's not there already.
+
+=end
+
+method add_jump($jump) {
+    my $found_jump := 0;
+
+    unless self.jump { self.jump(list()) }
+
+    for self.jump {
+        if $_ eq $jump { $found_jump := 1 }
+    }
+
+    unless $found_jump {
+        self.jump.push($jump);
+    }
+}
+
+=begin
+
+=item C<get_jump()>
+
+=item C<get_jump()>
+
+Get the jump flags that apply to this op.
+
+=end
+
+method get_jump() {
+
+    if self.jump {
+        return join( '|', |self.jump );
+    }
+    else {
+        return '0';
+    }
+}
+
+=begin
+
+=item C<source($trans, $op)>
+
+Returns the L<C<body()>> of the op with substitutions made by
+C<$trans> (a subclass of C<Ops::Trans>).
+
+=end
+
+method source( $trans ) {
+
+    my $prelude := $trans.body_prelude;
+    return $prelude ~ self.get_body( $trans );
+}
+
+=begin
+
+=item C<get_body($trans)>
+
+Performs the various macro substitutions using the specified transform,
+correctly handling nested substitions, and repeating over the whole string
+until no more substitutions can be made.
+
+C<VTABLE_> macros are enforced by converting C<<< I<< x >>->vtable->I<<
+method >> >>> to C<VTABLE_I<method>>.
+
+=end
+
+method get_body( $trans ) {
+
+    my @body := list();
+
+    #work through the op_body tree
+    for @(self) {
+        my $chunk := self.process_body_chunk($trans, $_);
+        #pir::say('# chunk ' ~ $chunk);
+        @body.push($chunk);
+    }
+
+    join('', |@body);
+}
+
+# Recursively process body chunks returning string.
+# Ideally bunch of multisubs, but...
+method process_body_chunk($trans, $chunk) {
+    my $what := $chunk.WHAT;
+    # Poor man multis...
+    if $what eq 'PAST::Var()' {
+        my $n := +$chunk.name;
+        return $trans.access_arg( self.arg_type($n - 1), $n);
+    }
+    elsif $what eq 'PAST::Op()' {
+        my $type := $chunk.pasttype;
+        #say('OP ' ~ $type);
+        if $type eq 'inline' {
+            #_dumper($chunk);
+            #pir::say('RET ' ~ $chunk<inline>);
+            return $chunk.inline;
+        }
+        elsif $type eq 'call' {
+            my $name     := $chunk.name;
+            #say('NAME '~$name ~ ' ' ~ $is_next);
+            if $name eq 'OPSIZE' {
+                #say('is_next');
+                return ~self.size;
+            }
+
+            my @children := list();
+            for @($chunk) {
+                @children.push(self.process_body_chunk($trans, $_));
+            }
+            my $children := join('', |@children);
+
+            #pir::say('children ' ~ $children);
+            my $ret := Q:PIR<
+                $P0 = find_lex '$trans'
+                $P1 = find_lex '$name'
+                $S0 = $P1
+                $P1 = find_lex '$children'
+                %r  = $P0.$S0($P1)
+            >;
+            #pir::say('RET ' ~ $ret);
+            return $ret;
+        }
+    }
+    elsif $what eq 'PAST::Stmts()' {
+        my @children := list();
+        for @($chunk) {
+            @children.push(self.process_body_chunk($trans, $_));
+        }
+        my $children := join('', |@children);
+        return $children;
+    }
+    else {
+        pir::die('HOLEY');
+    }
+}
+
+
+=begin
+
+=item C<size()>
+
+Returns the op's number of arguments. Note that this also includes
+the op itself as one argument.
+
+=end
+
+method size() {
+    return pir::does__IPs(self.arg_types, 'array') ?? +self.arg_types + 1 !! 2;
+}
+
+=begin
+
+=back
+
+=head1 SEE ALSO
+
+=over 4
+
+=item C<Ops::OpsFile>
+
+=item C<Ops::OpTrans>
+
+=item F<tools/build/ops2c.pl>
+
+=back
+
+=head1 HISTORY
+
+Author: Gregor N. Purdy E<lt>gregor at focusresearch.comE<gt>
+
+Migrate to NQP: Vasily Chekalkin E<lt>bacek at bacek.comE<gt>
+
+=end
+
+1;
+
+# Local Variables:
+#   mode: cperl
+#   cperl-indent-level: 4
+#   fill-column: 100
+# End:
+# vim: ft=perl6 expandtab shiftwidth=4:
+

Copied: branches/ucs4_encoding/compilers/opsc/src/Ops/OpLib.pm (from r46972, trunk/compilers/opsc/src/Ops/OpLib.pm)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/ucs4_encoding/compilers/opsc/src/Ops/OpLib.pm	Mon May 24 21:18:41 2010	(r46974, copy of r46972, trunk/compilers/opsc/src/Ops/OpLib.pm)
@@ -0,0 +1,234 @@
+#! nqp
+# Copyright (C) 2009-2010, Parrot Foundation.
+# $Id$
+
+INIT {
+    pir::load_bytecode("dumper.pbc");
+};
+
+class Ops::OpLib is Hash;
+
+=begin NAME
+
+C<Ops::OpLib> - library of Parrot Operations.
+
+=end NAME
+
+=begin DESCRIPTION
+
+Responsible for loading F<src/ops/ops.num> and F<src/ops/ops.skip> files,
+parse F<.ops> files, sort them, etc.
+
+Heavily inspired by Perl5 Parrot::Ops2pm.
+
+=end DESCRIPTION
+
+=begin SYNOPSIS
+
+    my $oplib := Ops::OpLib.new(
+        :num_file('../../src/ops/ops.num'),
+        :skip_file('../../src/ops/ops.skip'),
+    ));
+
+=end SYNOPSIS
+
+=begin ATTRIBUTES
+
+=over 4
+
+=item * C<$.max_op_num>
+
+Scalar holding number of highest non-experimental op.  Example:
+
+    'max_op_num' => 1246,
+
+=item * C<%.op_num_table>
+
+Hash holding mapping of opcode names ops to their numbers.
+Example:
+
+  'op_num_table' => {
+    'pow_p_p_i' => 650,
+    'say_s' => 463,
+    'lsr_p_p_i' => 207,
+    'lt_s_sc_ic' => 289,
+    # ...
+    'debug_init' => 429,
+    'iseq_i_nc_n' => 397,
+    'eq_addr_sc_s_ic' => 254
+  },
+
+Per F<src/ops/ops.num>, this mapping exists so that we can nail down
+the op numbers for the core opcodes in a particular version of the
+bytecode and provide backward-compatibility for bytecode.
+
+=item * C<%.op_skip_table>
+
+Reference to a 'seen-hash' of skipped opcodes.
+
+  'op_skip_table' => {
+    'bor_i_ic_ic' => 1,
+    'xor_i_ic_ic' => 1,
+    'tanh_n_nc' => 1,
+    # ...
+  },
+
+As F<src/ops/ops.skip> states, these are "... opcodes that could be listed in
+F<[src/ops/]ops.num> but aren't ever to be generated or implemented because
+they are useless and/or silly."
+
+=back
+
+=end ATTRIBUTES
+
+=begin METHODS
+
+=over 4
+
+=item C<new>
+
+Build OpLib.
+
+(It's NQP. In Perl 6 it should be submethod and invoked automatically)
+
+=end METHODS
+
+method new(:$num_file, :$skip_file) {
+    self<num_file>   := $num_file  // './src/ops/ops.num';
+    self<skip_file>  := $skip_file // './src/ops/ops.skip';
+
+    # Initialize self.
+    self<max_op_num>    := 0;
+    self<op_num_table>  := hash();
+    self<op_skip_table> := hash();
+    self<num_file_lines>:= list();
+    self<ops_past>      := list();
+    self<regen_ops_num> := 0;
+
+    self.load_op_map_files();
+
+    self;
+}
+
+=begin METHODS
+
+=item C<load_op_map_files>
+
+Load ops.num and ops.skip files.
+
+=end METHODS
+
+method load_op_map_files() {
+    self._load_num_file;
+    self._load_skip_file;
+}
+
+my method _load_num_file() {
+    # slurp isn't very efficient. But extending NQP beyond bare minimum is not in scope.
+    my $buf := slurp(self<num_file>);
+    grammar NUM {
+        rule TOP { <line>+ }
+
+        rule line {
+            [
+            | <op>
+            | <dynamic>
+            | <comment>
+            ]
+        }
+        rule op { $<name>=(\w+) $<number>=(\d+) }
+        rule dynamic { '###DYNAMIC###' \N* }
+        rule comment { '#' \N* }
+    }
+
+    #say("Parsing NUM");
+    my $ops := NUM.parse($buf);
+    #_dumper($ops);
+    #pir::exit(0);
+
+    my $prev := -1;
+    for $ops<line> {
+        self<num_file_lines>.push($_);
+        if $_<op> {
+            my $name    := ~$_<op><name>;
+            my $number  := +$_<op><number>;
+            if (+$number) eq $number {
+                if ($prev + 1 != $number) {
+                    self<regen_ops_num> := 1;
+                    say("# hole in ops.num before #$number: will regenerate ops.num");
+                }
+                if self<op_num_table>.exists($name) {
+                    self<regen_ops_num> := 1;
+                    say("# duplicate opcode $name and $number: will regenerate ops.num");
+                }
+
+                $prev := $number;
+                self<op_num_table>{$name} := $number;
+                if ( $number > self<max_op_num> ) {
+                    self<max_op_num> := $number;
+                }
+            }
+        }
+    }
+
+    #_dumper(self<op_num_table>);
+}
+
+method _load_skip_file() {
+    my $buf     := slurp(self<skip_file>);
+    grammar SKIP {
+        rule TOP { <op>+ }
+
+        rule op { $<name>=(\w+) }
+        token ws {
+            [
+            | \s+
+            | '#' \N*
+            ]*
+        }
+    }
+
+    my $lines := SKIP.parse($buf);
+
+    for $lines<op> {
+        if self<op_num_table> && self<op_num_table>.exists($_<name>) {
+            die("skipped opcode '$_' is also in num_file");
+        }
+        self<op_skip_table>{$_<name>} := 1;
+    }
+}
+
+
+=begin ACCESSORS
+
+Various methods for accessing internals.
+
+=over 4
+
+=item * C<max_op_num>
+
+=item * C<op_num_table>
+
+=item * C<op_skip_table>
+
+=item * C<num_file>
+
+=item * C<num_file_lines>
+
+=end ACCESSORS
+
+method max_op_num()     { self<max_op_num>; }
+
+method op_num_table()   { self<op_num_table>; }
+
+method op_skip_table()  { self<op_skip_table>; }
+
+method num_file()       { self<num_file>; }
+
+method num_file_lines() { self<num_file_lines>; }
+
+# Local Variables:
+#   mode: perl6
+#   fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=perl6:

Copied: branches/ucs4_encoding/compilers/opsc/src/Ops/Renumberer.pm (from r46972, trunk/compilers/opsc/src/Ops/Renumberer.pm)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/ucs4_encoding/compilers/opsc/src/Ops/Renumberer.pm	Mon May 24 21:18:41 2010	(r46974, copy of r46972, trunk/compilers/opsc/src/Ops/Renumberer.pm)
@@ -0,0 +1,108 @@
+#! nqp
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+INIT {
+    pir::load_bytecode("dumper.pbc");
+};
+
+class Ops::Renumberer is Hash;
+
+=begin NAME
+
+C<Ops::Renumberer> - renumber ops.num.
+
+=end NAME
+
+=begin DESCRIPTION
+
+This class is responsible for regenerating src/ops/ops.num when the number or
+order of ops there needs to be changed.
+
+=end DESCRIPTION
+
+=begin SYNOPSIS
+
+    my $renum := Ops::Renumberer.new( :ops_file($f) );
+
+=end SYNOPSIS
+
+=begin ATTRIBUTES
+
+=over 4
+
+=item * C<$.max_op_num>
+
+Scalar holding number of highest non-experimental op.  Example:
+
+    'max_op_num' => 1246,
+
+=back
+
+=end ATTRIBUTES
+
+=begin METHODS
+
+=over 4
+
+=item C<new>
+
+Build an Ope::Renumberer.
+
+(It's NQP. In Perl 6 it should be submethod and invoked automatically)
+
+=end METHODS
+
+method new(:$ops_file!) {
+    self<ops_file> := $ops_file;
+
+    self;
+}
+
+=begin METHODS
+
+=item C<need_regeneration>
+
+Check if ops.num needs to be regenerated.
+
+=end METHODS
+
+method need_regeneration() {
+
+    #only need regeneration for core ops
+    unless self<ops_file>.oplib {
+        return 0;
+    }
+
+    #shortcut in case the oplib found an invalid ops.num
+    if self<ops_file>.oplib<regen_ops_num>{
+        return 1;
+    }
+
+    my $op_num_table := self<ops_file>.oplib.op_num_table;
+    my $opsfile_ops  := self<ops_file>.ops;
+    my $opsfile_num  := 0;
+    my $need_regeneration := 0;
+
+    #find out if the order in ops.num reflects the order in Ops::File
+    for $opsfile_ops -> $opsfile_op {
+
+        my $op_name          := $opsfile_op.full_name;
+        my $op_num_table_num := +$op_num_table{ $op_name };
+        #say("ops.num says $op_name is $op_num_table_num, opsfile says $opsfile_num");
+
+        if (!$opsfile_op<experimental> && $opsfile_num != $op_num_table_num) {
+            say("# Opsfile and ops.num disagree about $op_name: $opsfile_num vs $op_num_table_num");
+            $need_regeneration := 1;
+        }
+        $opsfile_num++;
+    }
+
+    $need_regeneration;
+}
+
+# Local Variables:
+#   mode: perl6
+#   fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=perl6:

Copied: branches/ucs4_encoding/compilers/opsc/src/Ops/Trans.pm (from r46972, trunk/compilers/opsc/src/Ops/Trans.pm)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/ucs4_encoding/compilers/opsc/src/Ops/Trans.pm	Mon May 24 21:18:41 2010	(r46974, copy of r46972, trunk/compilers/opsc/src/Ops/Trans.pm)
@@ -0,0 +1,58 @@
+#! nqp
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+class Ops::Trans is Hash;
+
+=begin
+
+Base class for Runcode transformations.
+
+=end
+
+method prefix() { 'Parrot_' };
+
+# We can't use yada-yada-yada
+method suffix() { die("...") }
+
+method core_type() { die("...") }
+
+# Prepare internal structures from Ops::File.ops.
+method prepare_ops($emitter, $ops_file) { die('...') }
+
+#
+method emit_c_op_funcs_header_part($fh) { die('...') }
+
+# Called from Ops::Op.
+method body_prelude() { '' }
+
+method defines($emitter) { die('...') }
+
+method emit_source_part($emitter, $fh) { die('...') }
+
+# Default op lookup do nothing. But op_deinit referenced anyway.
+method emit_op_lookup($fh) {
+    $fh.print(q|static void hop_deinit(SHIM_INTERP) {}|);
+}
+
+method init_func_init1() { '' }
+method init_func_disaptch() { '' }
+
+method op_info($emitter) { 'NULL' }
+method op_func($emitter) { 'NULL' }
+method getop($emitter)   { '( int (*)(PARROT_INTERP, const char *, int) )NULL' };
+
+our %arg_maps := {};
+
+method access_arg($type, $num) { die('...'); }
+
+method restart_address($addr) { die('...'); }
+method restart_offset($offset) { die('...'); }
+
+method goto_address($addr) { die('...'); }
+method goto_offset($offset) { die('...'); }
+
+method expr_address($addr) { die('...'); }
+method expr_offset($offset) { die('...'); }
+
+# vim: expandtab shiftwidth=4 ft=perl6:

Copied: branches/ucs4_encoding/compilers/opsc/src/Ops/Trans/C.pm (from r46972, trunk/compilers/opsc/src/Ops/Trans/C.pm)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/ucs4_encoding/compilers/opsc/src/Ops/Trans/C.pm	Mon May 24 21:18:41 2010	(r46974, copy of r46972, trunk/compilers/opsc/src/Ops/Trans/C.pm)
@@ -0,0 +1,367 @@
+#! nqp
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+class Ops::Trans::C is Ops::Trans;
+
+method new() {
+    # Storage for generated ops functions.
+    self<op_funcs>  := list();
+    # Storage for generated ops functions prototypes.
+    self<op_protos> := list();
+
+    self<names>     := hash();
+
+    self<num_entries> := 0;
+
+    self<arg_maps> := hash(
+        :op("cur_opcode[NUM]"),
+
+        :i("IREG(NUM)"),
+        :n("NREG(NUM)"),
+        :p("PREG(NUM)"),
+        :s("SREG(NUM)"),
+        :k("PREG(NUM)"),
+        :ki("IREG(NUM)"),
+
+        :ic("cur_opcode[NUM]"),
+        :nc("CONST(NUM)->u.number"),
+        :pc("CONST(NUM)->u.key"),
+        :sc("CONST(NUM)->u.string"),
+        :kc("CONST(NUM)->u.key"),
+        :kic("cur_opcode[NUM]")
+    );
+
+    self;
+}
+
+method suffix() { '' };
+
+method core_type() { 'PARROT_FUNCTION_CORE' }
+
+method prepare_ops($emitter, $ops_file) {
+
+    my $index := 0;
+    my @op_protos;
+    my @op_funcs;
+    my @op_func_table;
+
+    for $ops_file.ops -> $op {
+        #say("# preparing " ~ $op);
+        my $func_name := $op.func_name( self );
+        my $definition := "opcode_t *\n$func_name(opcode_t *cur_opcode, PARROT_INTERP)";
+        my $prototype := $emitter.sym_export
+                ~ " opcode_t * $func_name(opcode_t *, PARROT_INTERP);\n";
+
+        my $src := $op.source( self );
+
+        @op_func_table.push(sprintf( "  %-50s /* %6ld */\n", "$func_name,", $index ));
+
+        my $body := join('', $definition, '  {', "\n", $src, '}', "\n\n");
+        @op_funcs.push($body);
+        @op_protos.push($prototype);
+        $index++;
+    }
+
+    self<op_funcs>      := @op_funcs;
+    self<op_protos>     := @op_protos;
+    self<op_func_table> := @op_func_table;
+    self<num_entries>   := + at op_funcs + 1;
+}
+
+method emit_c_op_funcs_header_part($fh) {
+    for self<op_protos> -> $proto {
+        $fh.print($proto);
+    }
+}
+
+method access_arg($type, $num) {
+    my $access := self<arg_maps>{$type};
+    die("unrecognized arg type '$type'") unless $access;
+    subst($access, /NUM/, $num);
+}
+
+method restart_address($addr) {
+    "interp->resume_offset = $addr; interp->resume_flag = 1;";
+}
+
+method restart_offset($offset) {
+    "interp->resume_offset = REL_PC + $offset; interp->resume_flag = 1;";
+}
+
+method goto_address($addr) { "return (opcode_t *)$addr"; }
+
+method goto_offset($offset) { "return (opcode_t *)cur_opcode + $offset"; }
+
+method expr_address($addr) { $addr; }
+
+method expr_offset($offset) { "cur_opcode + $offset"; }
+
+=begin
+
+=item C<defines()>
+
+Returns the C C<#define> macros for register access etc.
+
+=end
+
+method defines($emitter) {
+    return qq|
+/* defines - Ops::Trans::C */
+#undef CONST
+#define REL_PC     ((size_t)(cur_opcode - (opcode_t *)interp->code->base.data))
+#define CUR_OPCODE cur_opcode
+#define IREG(i) (CUR_CTX->bp.regs_i[cur_opcode[i]])
+#define NREG(i) (CUR_CTX->bp.regs_n[-1L - cur_opcode[i]])
+#define PREG(i) (CUR_CTX->bp_ps.regs_p[-1L - cur_opcode[i]])
+#define SREG(i) (CUR_CTX->bp_ps.regs_s[cur_opcode[i]])
+#define CONST(i) Parrot_pcc_get_constants(interp, interp->ctx)[cur_opcode[i]]
+
+static int get_op(PARROT_INTERP, const char * name, int full);
+|;
+}
+
+method op_info($emitter) { $emitter.bs ~ 'op_info_table' }
+method op_func($emitter) { $emitter.bs ~ 'op_func_table' }
+method getop($emitter)   { 'get_op' };
+
+method body_prelude() { '    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);' }
+
+method emit_source_part($emitter, $fh) {
+    self._emit_op_func_table($emitter, $fh);
+    self._emit_op_info_table($emitter, $fh);
+    self._emit_op_function_definitions($emitter, $fh);
+}
+
+method _emit_op_func_table($emitter, $fh) {
+
+        $fh.print(qq|
+
+INTVAL {$emitter.bs}numops{self.suffix} = {self<num_entries>};
+
+/*
+** Op Function Table:
+*/
+
+static op_func{self.suffix}_t {self.op_func($emitter)}[{self<num_entries>}] = | ~ '{'
+);
+
+        for self<op_func_table> {
+            $fh.print($_)
+        }
+
+        $fh.print(q|
+  NULL /* NULL function pointer */
+};
+
+|);
+}
+
+
+method _emit_op_info_table($emitter, $fh) {
+
+    my %names           := self<names>;
+    my %arg_dir_mapping := hash(
+        :i('PARROT_ARGDIR_IN'),
+        :o('PARROT_ARGDIR_OUT'),
+        :io('PARROT_ARGDIR_INOUT')
+    );
+
+    #
+    # Op Info Table:
+    #
+    $fh.print(qq|
+
+/*
+** Op Info Table:
+*/
+
+static op_info_t {self.op_info($emitter)}[{self<num_entries>}] = | ~ q|{
+|);
+
+    my $index := 0;
+
+    for $emitter.ops_file.ops -> $op {
+        my $type := sprintf( "PARROT_%s_OP", uc($op.type ?? 'INLINE' !! 'FUNCTION') );
+        my $name := $op.name;
+        %names{$name} := 1;
+        my $full_name := $op.full_name;
+        my $func_name := $op.func_name( self );
+        my $body      := $op.body;
+        my $jump      := $op.get_jump;
+        my $arg_count := $op.size;
+
+        ## 0 inserted if arrays are empty to prevent msvc compiler errors
+        my $arg_types := +$op.arg_types
+            ?? '{ ' ~ join( ", ",
+                |map( -> $t { sprintf( "PARROT_ARG_%s", uc($t) ) }, |$op.arg_types)
+            ) ~ ' }'
+            !! '{ (arg_type_t) 0 }';
+        my $arg_dirs := $op<normalized_args>
+            ?? '{ ' ~ join(", ",
+                |map( -> $d { %arg_dir_mapping{$d<direction>} }, |$op<normalized_args>)
+            ) ~ ' }'
+            !! '{ (arg_dir_t) 0 }';
+        my $labels := $op<normalized_args>
+            ?? '{ ' ~ join(", ",
+                |map( -> $d { $d<is_label> ?? 1 !! 0 }, |$op<normalized_args>)
+            ) ~ ' }'
+            !! '{ 0 }';
+
+        $fh.print('  { ' ~ qq|/* $index */
+    /* type $type, */
+    "$name",
+    "$full_name",
+    "$func_name",
+    /* "",  body */
+    $jump,
+    $arg_count,
+    $arg_types,
+    $arg_dirs,
+    $labels
+  | ~ '},
+',
+            );
+
+            $index++;
+        }
+        $fh.print(q|
+};
+
+|);
+}
+
+method _emit_op_function_definitions($emitter, $fh) {
+    $fh.print(q|
+/*
+** Op Function Definitions:
+*/
+
+|);
+
+    for self<op_funcs> -> $op {
+        $fh.print($op);
+    }
+}
+
+method emit_op_lookup($emitter, $fh) {
+
+    if !$emitter.flags<core> {
+        return;
+    }
+
+    my $hash_size := 3041;
+#    my $tot       := $self->{index} + scalar keys( %{ $self->{names} } );
+#    if ( $hash_size < $tot * 1.2 ) {
+#        print STDERR "please increase hash_size ($hash_size) in lib/Parrot/Ops2c/Utils.pm "
+#            . "to a prime number > ", $tot * 1.2, "\n";
+#    }
+    # Due bug in NQP do it in two passes.
+    my $res := q|
+/*
+** Op lookup function:
+*/
+
+#define OP_HASH_SIZE 3041
+
+/* we could calculate a prime somewhat bigger than
+ * n of fullnames + n of names
+ * for now this should be ok
+ *
+ * look up an op_code: at first call to op_code() a hash
+ * of short and full opcode names is created
+ * hash functions are from imcc, thanks to Melvin.
+ */
+
+
+typedef struct hop {
+    op_info_t * info;
+    struct hop *next;
+} HOP;
+static HOP **hop;
+
+static void hop_init(PARROT_INTERP);
+static size_t hash_str(const char *str);
+static void store_op(PARROT_INTERP, op_info_t *info, int full);
+
+/* XXX on changing interpreters, this should be called,
+   through a hook */
+
+static void hop_deinit(PARROT_INTERP);
+
+/*
+ * find a short or full opcode
+ * usage:
+ *
+ * interp->op_lib->op_code("set", 0)
+ * interp->op_lib->op_code("set_i_i", 1)
+ *
+ * returns >= 0 (found idx into info_table), -1 if not
+ */
+
+static size_t hash_str(const char *str) {
+    size_t      key = 0;
+    const char *s   = str;
+
+    while (*s) {
+        key *= 65599;
+        key += *s++;
+    }
+
+    return key;
+}
+
+static void store_op(PARROT_INTERP, op_info_t *info, int full) {
+    HOP * const p     = mem_gc_allocate_zeroed_typed(interp, HOP);
+    const size_t hidx =
+        hash_str(full ? info->full_name : info->name) % OP_HASH_SIZE;
+
+    p->info   = info;
+    p->next   = hop[hidx];
+    hop[hidx] = p;
+}
+static int get_op(PARROT_INTERP, const char * name, int full) {
+    const HOP * p;
+    const size_t hidx = hash_str(name) % OP_HASH_SIZE;
+    if (!hop) {
+        hop = mem_gc_allocate_n_zeroed_typed(interp, OP_HASH_SIZE,HOP *);
+        hop_init(interp);
+    }
+    for (p = hop[hidx]; p; p = p->next) {
+        if(STREQ(name, full ? p->info->full_name : p->info->name))
+            return p->info - [[BS]]op_lib.op_info_table;
+    }
+    return -1;
+}
+static void hop_init(PARROT_INTERP) {
+    size_t i;
+    op_info_t * const info = [[BS]]op_lib.op_info_table;
+    /* store full names */
+    for (i = 0; i < [[BS]]op_lib.op_count; i++)
+        store_op(interp, info + i, 1);
+    /* plus one short name */
+    for (i = 0; i < [[BS]]op_lib.op_count; i++)
+        if (get_op(interp, info[i].name, 0) == -1)
+            store_op(interp, info + i, 0);
+}
+static void hop_deinit(PARROT_INTERP)
+{
+    if (hop) {
+        size_t i;
+        for (i = 0; i < OP_HASH_SIZE; i++) {
+            HOP *p = hop[i];
+            while (p) {
+                HOP * const next = p->next;
+                mem_gc_free(interp, p);
+                p = next;
+            }
+        }
+        mem_sys_free(hop);
+        hop = NULL;
+    }
+}|;
+
+    $fh.print(subst($res, /'[[' BS ']]'/, $emitter.bs, :global));
+}
+
+# vim: expandtab shiftwidth=4 ft=perl6:

Copied: branches/ucs4_encoding/compilers/opsc/src/builtins.pir (from r46972, trunk/compilers/opsc/src/builtins.pir)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/ucs4_encoding/compilers/opsc/src/builtins.pir	Mon May 24 21:18:41 2010	(r46974, copy of r46972, trunk/compilers/opsc/src/builtins.pir)
@@ -0,0 +1,196 @@
+#! parrot
+# Copyright (C) 2009-2010, Parrot Foundation.
+# $Id$
+
+=head1 Builtins
+
+Variour helper builtins.
+
+=cut
+.namespace []
+
+.sub 'lc'
+    .param string arg
+    $S0 = downcase arg
+    .return ($S0)
+.end
+
+.sub 'uc'
+    .param string arg
+    $S0 = upcase arg
+    .return ($S0)
+.end
+
+.sub 'defined'
+    .param pmc thing
+    $I0 = defined thing
+    .return ($I0)
+.end
+
+.sub 'clone'
+    .param pmc what
+    $P0 = clone what
+    .return ($P0)
+.end
+
+.sub 'elements'
+    .param pmc p
+    $I0 = elements p
+    .return ($I0)
+.end
+
+
+.sub 'substr'
+    .param string orig
+    .param int    from
+    .param int    len
+    $S0 = substr orig, from, len
+    .return ($S0)
+.end
+
+.sub 'match'
+    .param string pattern
+    .param string subject
+
+    .local pmc recomp, resub, match, recache
+
+    load_bytecode 'PGE.pbc'
+
+    #hash cache mapping patterns to subs, avoiding unneeded recompilation
+    recache = get_hll_global ['Ops';'Op'], '%recache'
+    $I0 = isnull recache
+    if $I0 goto no_cache
+    $I0 = exists recache[pattern]
+    if $I0 goto found_re
+    goto no_re
+
+  no_cache:
+    recache = new ['Hash']
+
+  no_re:
+    recomp = compreg 'PGE::Perl6Regex'
+    resub = recomp(pattern)
+    recache[pattern] = resub
+
+  found_re:
+    resub = recache[pattern]
+    set_hll_global ['Ops';'Op'], '%recache', recache
+
+    match = resub(subject)
+    if match goto found_match
+    .return (0)
+  found_match:
+    .return (1)
+.end
+
+.sub 'die'
+    .param string why       :optional
+    .param int    has_why   :opt_flag
+
+    die why
+.end
+
+.sub 'slurp'
+    .param string file
+    .local pmc pio
+    pio  = open file
+    $S0  = pio.'readall'()
+    close pio
+    .return ($S0)
+.end
+
+.sub 'split' :multi(_,_)
+    .param string splitter
+    .param string buf
+
+    $P0 = split splitter, buf
+    .return ($P0)
+.end
+
+.sub 'split' :multi('Sub', _)
+    .param pmc regex
+    .param pmc str
+    .param int count        :optional
+    .param int has_count    :opt_flag
+    .local pmc match
+    .local pmc retv
+    .local int start_pos
+    .local int end_pos
+    .local int zwm_start
+
+    $S0 = str
+    retv = new 'ResizableStringArray'
+    start_pos = 0
+
+    # per Perl 5's negative LIMIT behavior
+    unless has_count goto positive_count
+    if count < 1 goto done
+
+  positive_count:
+    match = regex($S0)
+    if match goto loop
+    retv.'push'($S0)
+    goto done
+
+  loop:
+    unless has_count goto skip_count
+    dec count
+    unless count < 1 goto skip_count
+    $S1 = substr $S0, start_pos
+    retv.'push'($S1)
+    goto done
+  next_zwm:
+    zwm_start = start_pos
+  inc_zwm:
+    inc start_pos
+    match = regex($S0, 'continue' => start_pos)
+    end_pos = match.'from'()
+    unless start_pos == end_pos goto inc_zwm
+    start_pos = zwm_start
+    end_pos -= start_pos
+    goto add_str
+  skip_count:
+    match = regex($S0, 'continue' => start_pos)
+    end_pos = match.'from'()
+    $I99 = match.'to'()
+    if $I99 == end_pos goto next_zwm
+    end_pos -= start_pos
+  add_str:
+    $S1 = substr $S0, start_pos, end_pos
+    retv.'push'($S1)
+    unless match goto done
+    $I0 = match.'to'()
+    if $I0 == start_pos goto zero_width
+    start_pos = $I0
+    goto loop
+  zero_width:
+    inc start_pos
+    goto loop
+
+  done:
+    .return(retv)
+.end
+
+.sub 'list'
+    .param pmc l :slurpy
+    .return (l)
+.end
+
+.sub 'sprintf'
+    .param string format
+    .param pmc    args :slurpy
+
+    $S0 = sprintf format, args
+    .return($S0)
+.end
+
+.sub 'say'
+    .param string arg
+    say arg
+.end
+
+# Local Variables:
+#   mode: pir
+#   fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:

Modified: branches/ucs4_encoding/compilers/pct/Rules.mak
==============================================================================
--- branches/ucs4_encoding/compilers/pct/Rules.mak	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/compilers/pct/Rules.mak	Mon May 24 21:18:41 2010	(r46974)
@@ -4,7 +4,7 @@
     $(LIBRARY_DIR)/PCT/Grammar.pbc $(LIBRARY_DIR)/PCT/PAST.pbc
 	$(PARROT) -o $@ compilers/pct/PCT.pir
 
-$(LIBRARY_DIR)/PCT/PAST.pbc : compilers/pct/src/PAST.pir $(PARROT) \
+$(LIBRARY_DIR)/PCT/PAST.pbc : compilers/pct/src/PAST.pir $(PARROT) $(PBC_MERGE) \
     $(LIBRARY_DIR)/PCT/HLLCompiler.pbc \
     compilers/pct/src/PCT/Node.pbc \
     compilers/pct/src/PAST/Node.pbc \

Modified: branches/ucs4_encoding/config/auto/extra_nci_thunks.pm
==============================================================================
--- branches/ucs4_encoding/config/auto/extra_nci_thunks.pm	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/config/auto/extra_nci_thunks.pm	Mon May 24 21:18:41 2010	(r46974)
@@ -1,4 +1,3 @@
-#! perl
 # Copyright (C) 2010, Parrot Foundation.
 # $Id$
 

Modified: branches/ucs4_encoding/config/auto/warnings.pm
==============================================================================
--- branches/ucs4_encoding/config/auto/warnings.pm	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/config/auto/warnings.pm	Mon May 24 21:18:41 2010	(r46974)
@@ -182,6 +182,8 @@
         -Wdeprecated-declarations
         -Wno-format-extra-args
         -Wno-import
+        -Wsuggest-attribute=pure
+        -Wsuggest-attribute=const
         -Wunreachable-code
         -Wunused
         -Wunused-function

Modified: branches/ucs4_encoding/config/gen/makefiles/root.in
==============================================================================
--- branches/ucs4_encoding/config/gen/makefiles/root.in	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/config/gen/makefiles/root.in	Mon May 24 21:18:41 2010	(r46974)
@@ -125,6 +125,7 @@
 include compilers/tge/Defines.mak
 include compilers/pge/Defines.mak
 include compilers/pct/Defines.mak
+include compilers/opsc/Defines.mak
 include ext/nqp-rx/Defines.mak
 include compilers/data_json/Defines.mak
 
@@ -172,8 +173,7 @@
     config_lib.pir \
     parrot.pc \
     compilers/imcc/imcc.y.flag \
-    compilers/imcc/imcc.l.flag \
-    src/ops/core_ops.c
+    compilers/imcc/imcc.l.flag
 
 GEN_PASM_INCLUDES = \
 	runtime/parrot/include/cclass.pasm \
@@ -233,17 +233,12 @@
 #
 ###############################################################################
 
-GEN_OPSFILES =
-
 GEN_HEADERS = \
     $(INC_DIR)/vtable.h \
-    $(INC_DIR)/oplib/core_ops.h \
-    $(INC_DIR)/oplib/ops.h \
     $(INC_DIR)/extend_vtable.h \
     $(INC_DIR)/pbcversion.h
 
 GEN_SOURCES = \
-    src/core_ops.c \
     src/nci.c \
     src/glut_nci_thunks.c \
     src/parrot_config.c \
@@ -253,7 +248,6 @@
     src/extra_nci_thunks.c
 
 GEN_MODULES = \
-    lib/Parrot/OpLib/core.pm
 
 GEN_LIBRARY = \
     $(LIBRARY_DIR)/Archive/Tar.pbc \
@@ -274,7 +268,8 @@
     $(LIBRARY_DIR)/HTTP/Message.pbc \
     $(LIBRARY_DIR)/Iter.pbc \
     $(LIBRARY_DIR)/JSON.pbc \
-    $(LIBRARY_DIR)/LWP.pbc \
+    $(LIBRARY_DIR)/LWP/Protocol.pbc \
+    $(LIBRARY_DIR)/LWP/UserAgent.pbc \
     $(LIBRARY_DIR)/Math/Rand.pbc \
     $(LIBRARY_DIR)/MIME/Base64.pbc \
     $(LIBRARY_DIR)/NCI/Utils.pbc \
@@ -334,7 +329,6 @@
     $(LIBRARY_DIR)/postgres.pbc
 
 FLUID_FILES_1 = \
-    $(GEN_OPSFILES) \
     $(GEN_HEADERS) \
     $(GEN_SOURCES) \
     $(GEN_MODULES) \
@@ -356,61 +350,61 @@
 
 # parrot.h and all the includes it causes to be included
 PARROT_H_HEADERS = \
-        $(INC_DIR)/parrot.h \
-        $(INC_DIR)/config.h \
-        $(INC_DIR)/settings.h \
-        $(INC_DIR)/enums.h \
-        $(INC_DIR)/platform.h \
-        $(INC_DIR)/platform_interface.h \
-        $(INC_DIR)/global_setup.h \
-        $(INC_DIR)/caches.h \
-        $(INC_DIR)/interpreter.h \
-        $(INC_DIR)/datatypes.h \
-        $(INC_DIR)/encoding.h \
-        $(INC_DIR)/charset.h \
-        $(INC_DIR)/string.h \
-        $(INC_DIR)/string_primitives.h \
-        $(INC_DIR)/hash.h \
-        $(INC_DIR)/pmc_freeze.h \
-        $(INC_DIR)/vtable.h \
-        $(INC_DIR)/context.h \
-        $(INC_DIR)/exceptions.h \
-        $(INC_DIR)/warnings.h \
-        $(INC_DIR)/memory.h \
-        $(INC_DIR)/packfile.h \
-        $(INC_DIR)/io.h \
-        $(INC_DIR)/op.h \
-        $(INC_DIR)/pmc.h \
-        $(INC_DIR)/gc_api.h \
-        $(INC_DIR)/string_funcs.h \
-        $(INC_DIR)/misc.h \
-        $(INC_DIR)/sub.h \
-        $(INC_DIR)/call.h \
-        $(INC_DIR)/key.h \
-        $(INC_DIR)/exit.h \
-        $(INC_DIR)/nci.h \
-        $(INC_DIR)/thread.h \
-        $(INC_DIR)/scheduler.h \
-        $(INC_DIR)/longopt.h \
-        $(INC_DIR)/oo.h \
-        $(INC_DIR)/vtables.h \
-        $(INC_DIR)/multidispatch.h \
-        $(INC_DIR)/library.h \
-        $(INC_DIR)/global.h \
-        $(INC_DIR)/stat.h \
-        $(INC_DIR)/hll.h \
-        $(INC_DIR)/pbcversion.h \
-        $(INC_DIR)/pobj.h \
-        $(INC_DIR)/platform_limits.h \
-        $(INC_DIR)/has_header.h \
-        $(INC_DIR)/oplib.h \
-        $(INC_DIR)/feature.h \
-        $(INC_DIR)/debugger.h \
-        $(INC_DIR)/core_types.h \
-        $(INC_DIR)/core_pmcs.h \
-        $(INC_DIR)/compiler.h \
-        $(INC_DIR)/cclass.h \
-        include/pmc/pmc_callcontext.h
+	$(INC_DIR)/parrot.h \
+	$(INC_DIR)/config.h \
+	$(INC_DIR)/settings.h \
+	$(INC_DIR)/enums.h \
+	$(INC_DIR)/platform.h \
+	$(INC_DIR)/platform_interface.h \
+	$(INC_DIR)/global_setup.h \
+	$(INC_DIR)/caches.h \
+	$(INC_DIR)/interpreter.h \
+	$(INC_DIR)/datatypes.h \
+	$(INC_DIR)/encoding.h \
+	$(INC_DIR)/charset.h \
+	$(INC_DIR)/string.h \
+	$(INC_DIR)/string_primitives.h \
+	$(INC_DIR)/hash.h \
+	$(INC_DIR)/pmc_freeze.h \
+	$(INC_DIR)/vtable.h \
+	$(INC_DIR)/context.h \
+	$(INC_DIR)/exceptions.h \
+	$(INC_DIR)/warnings.h \
+	$(INC_DIR)/memory.h \
+	$(INC_DIR)/packfile.h \
+	$(INC_DIR)/io.h \
+	$(INC_DIR)/op.h \
+	$(INC_DIR)/pmc.h \
+	$(INC_DIR)/gc_api.h \
+	$(INC_DIR)/string_funcs.h \
+	$(INC_DIR)/misc.h \
+	$(INC_DIR)/sub.h \
+	$(INC_DIR)/call.h \
+	$(INC_DIR)/key.h \
+	$(INC_DIR)/exit.h \
+	$(INC_DIR)/nci.h \
+	$(INC_DIR)/thread.h \
+	$(INC_DIR)/scheduler.h \
+	$(INC_DIR)/longopt.h \
+	$(INC_DIR)/oo.h \
+	$(INC_DIR)/vtables.h \
+	$(INC_DIR)/multidispatch.h \
+	$(INC_DIR)/library.h \
+	$(INC_DIR)/global.h \
+	$(INC_DIR)/stat.h \
+	$(INC_DIR)/hll.h \
+	$(INC_DIR)/pbcversion.h \
+	$(INC_DIR)/pobj.h \
+	$(INC_DIR)/platform_limits.h \
+	$(INC_DIR)/has_header.h \
+	$(INC_DIR)/oplib.h \
+	$(INC_DIR)/feature.h \
+	$(INC_DIR)/debugger.h \
+	$(INC_DIR)/core_types.h \
+	$(INC_DIR)/core_pmcs.h \
+	$(INC_DIR)/compiler.h \
+	$(INC_DIR)/cclass.h \
+	include/pmc/pmc_callcontext.h
 
 # generated list of header files
 GENERAL_H_FILES   = $(NONGEN_HEADERS) $(GEN_HEADERS) \
@@ -503,7 +497,7 @@
 #IF(platform_asm):    src/platform_asm$(O) \
 
 
-OPS_FILES = @ops@ $(GEN_OPSFILES)
+OPS_FILES = @ops@
 
 ###############################################################################
 #
@@ -524,6 +518,7 @@
 NQP_RX              = . at slash@parrot-nqp$(EXE)
 NCI_THUNK_GEN       = . at slash@parrot_nci_thunk_gen$(EXE)
 PROVE               = . at slash@parrot-prove$(EXE)
+OPS2C               = . at slash@ops2c$(EXE)
 
 # Installable executables
 INSTALLABLEPARROT    = . at slash@installable_parrot$(EXE)
@@ -536,6 +531,7 @@
 INSTALLABLENQP       = . at slash@installable_parrot-nqp$(EXE)
 INSTALLABLENCITHUNKGEN = . at slash@installable_parrot_nci_thunk_gen$(EXE)
 INSTALLABLEPROVE     = . at slash@installable_parrot-prove$(EXE)
+INSTALLABLEOPS2C    = . at slash@installable_ops2c$(EXE)
 
 # Libraries
 LIBPARROT_STATIC    = @blib_dir@/@libparrot_static@
@@ -618,6 +614,7 @@
     $(DATA_JSON_LIB_PBCS) \
     $(NQP_LIB_PBCS) \
     $(GEN_LIBRARY) \
+    $(DYNOPLIBS_TARGETS) \
     $(LIBNCI_TEST_SO)
 
 corevm : \
@@ -627,8 +624,7 @@
     runtime/parrot/include/parrotlib.pbc \
     runtime/parrot/include/config.fpmc \
     $(LIBRARY_DIR)/Test/More.pbc \
-    $(DYNPMC_TARGETS) \
-    $(DYNOPLIBS_TARGETS)
+    $(DYNPMC_TARGETS)
 
 $(GEN_LIBRARY) : $(PARROT) $(GEN_PASM_INCLUDES)
 
@@ -797,10 +793,13 @@
 
 world : all parrot_utils
 
-parrot_utils : $(PDUMP) $(DIS) $(PDB) $(PBC_MERGE) $(PBC_TO_EXE) $(PARROT_CONFIG) src/install_config$(O) $(PROVE)
+parrot_utils : $(PDUMP) $(DIS) $(PDB) $(PBC_MERGE) $(PBC_TO_EXE) $(PARROT_CONFIG) src/install_config$(O) $(PROVE) $(OPS2C)
 
-installable: all $(INSTALLABLEPARROT) $(INSTALLABLEPDUMP) $(INSTALLABLEDIS) $(INSTALLABLEPDB) $(INSTALLABLEPBC_MERGE) $(INSTALLABLEPBCTOEXE) $(INSTALLABLECONFIG) $(INSTALLABLENQP) $(INSTALLABLENCITHUNKGEN) $(INSTALLABLEPROVE)
+installable: all $(INSTALLABLEPARROT) $(INSTALLABLEPDUMP) $(INSTALLABLEDIS) $(INSTALLABLEPDB) $(INSTALLABLEPBC_MERGE) $(INSTALLABLEPBCTOEXE) $(INSTALLABLECONFIG) $(INSTALLABLENQP) $(INSTALLABLENCITHUNKGEN) $(INSTALLABLEPROVE) $(INSTALLABLEOPS2C)
 
+bootstrap-ops : $(OPS2C)
+	$(OPS2C) --core
+	$(MAKE) .
 
 runtime/parrot/include/parrotlib.pbc: runtime/parrot/library/parrotlib.pir $(PARROT) $(GEN_PASM_INCLUDES)
 	$(PARROT) -o $@ runtime/parrot/library/parrotlib.pir
@@ -810,14 +809,14 @@
 	$(MINIPARROT) -Iruntime/parrot/include config_lib.pir > $@
 
 $(PARROT) : src/main$(O) $(GEN_HEADERS) $(LIBPARROT) \
-    lib/Parrot/OpLib/core.pm src/parrot_config$(O) \
+    src/parrot_config$(O) \
     $(MINIPARROT)
 	$(LINK) @ld_out@$@ \
 	src/main$(O) src/parrot_config$(O) \
 	@rpath_blib@ $(ALL_PARROT_LIBS) $(LINKFLAGS) $(LINK_DYNAMIC)
 #IF(win32):	if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1
 
-$(PBC_TO_EXE) : tools/dev/pbc_to_exe.pir runtime/parrot/library/config.pir $(PARROT) $(DYNEXT_DIR)/os$(LOAD_EXT)
+$(PBC_TO_EXE) : tools/dev/pbc_to_exe.pir runtime/parrot/library/config.pir $(PARROT) $(DYNEXT_DIR)/os$(LOAD_EXT) $(DYNEXT_DIR)/file$(LOAD_EXT)
 	$(PARROT) -o pbc_to_exe.pbc tools/dev/pbc_to_exe.pir
 	$(PARROT) pbc_to_exe.pbc pbc_to_exe.pbc
 
@@ -838,13 +837,13 @@
 	$(PARROT) pbc_to_exe.pbc parrot_config.pbc
 
 $(MINIPARROT) : src/main$(O) $(GEN_HEADERS) $(LIBPARROT) \
-    lib/Parrot/OpLib/core.pm src/null_config$(O)
+    src/null_config$(O)
 	$(LINK) @ld_out@$@ src/main$(O) src/null_config$(O) \
 	@rpath_blib@ $(ALL_PARROT_LIBS) $(LINKFLAGS)
 #IF(win32):	if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1
 
 $(INSTALLABLEPARROT) : src/main$(O) $(GEN_HEADERS) $(LIBPARROT) \
-    lib/Parrot/OpLib/core.pm src/install_config$(O) \
+    src/install_config$(O) \
     $(PARROT)
 	$(LINK) @ld_out@$@ \
     src/main$(O) src/install_config$(O) \
@@ -884,10 +883,10 @@
     include/pmc/pmc_object.h src/oo.str $(INC_DIR)/oo_private.h
 
 src/scheduler$(O) : $(PARROT_H_HEADERS) src/scheduler.str src/scheduler.c \
-        include/pmc/pmc_scheduler.h include/pmc/pmc_task.h \
-        include/pmc/pmc_timer.h \
-        $(INC_DIR)/scheduler_private.h \
-        $(INC_DIR)/runcore_api.h
+	include/pmc/pmc_scheduler.h include/pmc/pmc_task.h \
+	include/pmc/pmc_timer.h \
+	$(INC_DIR)/scheduler_private.h \
+	$(INC_DIR)/runcore_api.h
 
 src/io/core$(O) : $(PARROT_H_HEADERS) src/io/io_private.h src/io/core.c
 
@@ -898,9 +897,9 @@
     src/io/io_private.h src/io/socket_unix.c
 
 src/io/socket_win32$(O) : $(PARROT_H_HEADERS) \
-        src/io/io_private.h \
-        include/pmc/pmc_socket.h \
-        src/io/socket_win32.c
+	src/io/io_private.h \
+	include/pmc/pmc_socket.h \
+	src/io/socket_win32.c
 
 O_FILES = \
     $(INTERP_O_FILES) \
@@ -961,17 +960,17 @@
 #
 
 src/parrot_debugger$(O) : $(INC_DIR)/embed.h \
-        src/parrot_debugger.c \
-        $(INC_DIR)/runcore_api.h \
-        compilers/imcc/imc.h $(PARROT_H_HEADERS) compilers/imcc/parser.h \
-        compilers/imcc/cfg.h \
-        compilers/imcc/debug.h \
-        compilers/imcc/imcparser.h \
-        compilers/imcc/instructions.h \
-        compilers/imcc/sets.h \
-        compilers/imcc/symreg.h \
-        compilers/imcc/unit.h \
-        $(INC_DIR)/oplib/ops.h
+	src/parrot_debugger.c \
+	$(INC_DIR)/runcore_api.h \
+	compilers/imcc/imc.h $(PARROT_H_HEADERS) compilers/imcc/parser.h \
+	compilers/imcc/cfg.h \
+	compilers/imcc/debug.h \
+	compilers/imcc/imcparser.h \
+	compilers/imcc/instructions.h \
+	compilers/imcc/sets.h \
+	compilers/imcc/symreg.h \
+	compilers/imcc/unit.h \
+	$(INC_DIR)/oplib/ops.h
 
 $(PDB) : src/parrot_debugger$(O) src/parrot_config$(O) $(LIBPARROT)
 	$(LINK) @ld_out@$@ \
@@ -1020,7 +1019,7 @@
 #IF(win32):	if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1
 
 src/pbc_dump$(O) : $(INC_DIR)/embed.h  $(INC_DIR)/oplib/ops.h \
-        $(PARROT_H_HEADERS) src/pbc_dump.c
+	$(PARROT_H_HEADERS) src/pbc_dump.c
 
 $(INSTALLABLEPDUMP) : src/pbc_dump$(O) src/packdump$(O) \
 	src/install_config$(O) $(LIBPARROT)
@@ -1179,15 +1178,6 @@
 	$(PERL) $(H2INC) src/utils.c $@
 
 
-# ops.h is built by ops2pm.pl after it builds core.pm
-$(INC_DIR)/oplib/ops.h:  lib/Parrot/OpLib/core.pm
-
-$(BUILD_TOOLS_DIR)/ops2c.pl: lib/Parrot/OpLib/core.pm
-
-lib/Parrot/OpLib/core.pm : $(OPS_FILES) $(BUILD_TOOLS_DIR)/ops2pm.pl \
-    lib/Parrot/OpsFile.pm lib/Parrot/Op.pm src/ops/ops.num src/ops/ops.skip
-	$(PERL) $(BUILD_TOOLS_DIR)/ops2pm.pl @no_lines_flag@ $(OPS_FILES)
-
 ###############################################################################
 #
 # Examples (Assembly):
@@ -1233,7 +1223,7 @@
 src/datatypes$(O) : $(PARROT_H_HEADERS) src/datatypes.c
 
 src/extend_vtable$(O) : $(PARROT_H_HEADERS) \
-        $(INC_DIR)/extend.h $(INC_DIR)/extend_vtable.h src/extend_vtable.c
+	$(INC_DIR)/extend.h $(INC_DIR)/extend_vtable.h src/extend_vtable.c
 
 src/global_setup$(O) : $(PARROT_H_HEADERS) src/global_setup.str src/global_setup.c
 
@@ -1248,13 +1238,13 @@
 src/hash$(O) : $(PARROT_H_HEADERS) include/pmc/pmc_key.h src/hash.c
 
 src/library$(O) : $(PARROT_H_HEADERS) src/library.str src/library.c\
-        $(INC_DIR)/dynext.h
+	$(INC_DIR)/dynext.h
 
 $(INC_DIR)/extend_vtable.h src/extend_vtable.c src/vtable.h : src/vtable.tbl $(BUILD_TOOLS_DIR)/vtable_extend.pl lib/Parrot/Vtable.pm
 	$(PERL) $(BUILD_TOOLS_DIR)/vtable_extend.pl
 
 src/key$(O) : $(PARROT_H_HEADERS) src/key.str src/key.c \
-        include/pmc/pmc_key.h
+	include/pmc/pmc_key.h
 
 src/gc/mark_sweep$(O) : $(PARROT_H_HEADERS) src/gc/gc_private.h src/gc/mark_sweep.c
 
@@ -1265,7 +1255,7 @@
 src/gc/api$(O) : $(PARROT_H_HEADERS) src/gc/gc_private.h src/gc/api.c
 
 src/gc/alloc_resources$(O) : $(PARROT_H_HEADERS) \
-        src/gc/gc_private.h src/gc/alloc_resources.c
+	src/gc/gc_private.h src/gc/alloc_resources.c
 
 src/hll$(O) : $(PARROT_H_HEADERS) src/hll.str $(INC_DIR)/dynext.h src/hll.c
 
@@ -1276,37 +1266,37 @@
 src/core_pmcs$(O) : $(PARROT_H_HEADERS) src/core_pmcs.c
 
 src/runcore/trace$(O) : include/pmc/pmc_sub.h src/runcore/trace.c \
-        $(INC_DIR)/oplib/ops.h $(INC_DIR)/runcore_trace.h \
-        $(PARROT_H_HEADERS)
+	$(INC_DIR)/oplib/ops.h $(INC_DIR)/runcore_trace.h \
+	$(PARROT_H_HEADERS)
 
 src/debug$(O) : $(INC_DIR)/embed.h $(INC_DIR)/extend.h \
-        $(PARROT_H_HEADERS) src/debug.c \
-        $(INC_DIR)/oplib/ops.h \
-        $(INC_DIR)/runcore_api.h $(INC_DIR)/runcore_trace.h \
-        src/debug.str include/pmc/pmc_key.h \
-        include/pmc/pmc_continuation.h \
-        $(INC_DIR)/extend_vtable.h
+	$(PARROT_H_HEADERS) src/debug.c \
+	$(INC_DIR)/oplib/ops.h \
+	$(INC_DIR)/runcore_api.h $(INC_DIR)/runcore_trace.h \
+	src/debug.str include/pmc/pmc_key.h \
+	include/pmc/pmc_continuation.h \
+	$(INC_DIR)/extend_vtable.h
 
 src/sub$(O) : $(PARROT_H_HEADERS) $(INC_DIR)/oplib/ops.h \
-        src/sub.str src/sub.c \
+	src/sub.str src/sub.c \
 	include/pmc/pmc_sub.h include/pmc/pmc_continuation.h
 
 src/string/api$(O) : $(PARROT_H_HEADERS) src/string/api.str \
-        src/string/private_cstring.h src/string/api.c
+	src/string/private_cstring.h src/string/api.c
 
 src/string/primitives$(O) : $(PARROT_H_HEADERS) src/string/primitives.c
 
 src/longopt$(O) : $(PARROT_H_HEADERS) src/longopt.c
 
 src/dynext$(O) : $(PARROT_H_HEADERS) $(INC_DIR)/dynext.h \
-        src/dynext.str include/pmc/pmc_parrotlibrary.h src/dynext.c
+	src/dynext.str include/pmc/pmc_parrotlibrary.h src/dynext.c
 
 src/exceptions$(O) : $(PARROT_H_HEADERS) \
-        src/exceptions.str src/exceptions.c \
+	src/exceptions.str src/exceptions.c \
 	include/pmc/pmc_continuation.h
 
 src/thread$(O) : $(PARROT_H_HEADERS) $(INC_DIR)/atomic.h src/thread.c \
-        include/pmc/pmc_sub.h \
+	include/pmc/pmc_sub.h \
 	include/pmc/pmc_parrotinterpreter.h \
 	$(INC_DIR)/runcore_api.h
 
@@ -1319,31 +1309,31 @@
 	src/runcore/main.c \
 	src/runcore/main.str \
 	include/pmc/pmc_parrotlibrary.h \
-        $(INC_DIR)/dynext.h $(INC_DIR)/oplib/core_ops.h \
-        $(INC_DIR)/oplib/ops.h \
-        $(PARROT_H_HEADERS) $(INC_DIR)/runcore_api.h \
-        $(INC_DIR)/runcore_profiling.h
+	$(INC_DIR)/dynext.h $(INC_DIR)/oplib/core_ops.h \
+	$(INC_DIR)/oplib/ops.h \
+	$(PARROT_H_HEADERS) $(INC_DIR)/runcore_api.h \
+	$(INC_DIR)/runcore_profiling.h
 
 src/runcore/profiling$(O) : src/runcore/profiling.str src/runcore/profiling.c \
 	include/pmc/pmc_sub.h \
 	include/pmc/pmc_namespace.h \
-        $(INC_DIR)/oplib/core_ops.h $(INC_DIR)/runcore_api.h \
-        $(INC_DIR)/runcore_profiling.h $(INC_DIR)/embed.h \
-        $(PARROT_H_HEADERS)
+	$(INC_DIR)/oplib/core_ops.h $(INC_DIR)/runcore_api.h \
+	$(INC_DIR)/runcore_profiling.h $(INC_DIR)/embed.h \
+	$(PARROT_H_HEADERS)
 
 src/call/args$(O) : \
-        $(PARROT_H_HEADERS) $(INC_DIR)/oplib/ops.h \
+	$(PARROT_H_HEADERS) $(INC_DIR)/oplib/ops.h \
 	src/call/args.c \
 	src/call/args.str \
 	include/pmc/pmc_key.h \
 	include/pmc/pmc_fixedintegerarray.h
 
 src/call/context_accessors$(O): $(PARROT_H_HEADERS) \
-        src/call/context_accessors.c
+	src/call/context_accessors.c
 
 src/call/pcc$(O) : $(INC_DIR)/oplib/ops.h \
-        $(PARROT_H_HEADERS) \
-        $(INC_DIR)/runcore_api.h \
+	$(PARROT_H_HEADERS) \
+	$(INC_DIR)/runcore_api.h \
 	src/call/pcc.c \
 	src/call/pcc.str \
 	include/pmc/pmc_key.h include/pmc/pmc_continuation.h
@@ -1352,12 +1342,12 @@
 	include/pmc/pmc_sub.h src/call/context.c
 
 src/interp/inter_cb$(O) : $(PARROT_H_HEADERS) \
-        include/pmc/pmc_parrotinterpreter.h \
+	include/pmc/pmc_parrotinterpreter.h \
 	src/interp/inter_cb.str src/interp/inter_cb.c
 
 src/interp/inter_misc$(O) : $(PARROT_H_HEADERS) \
-        src/interp/inter_misc.c \
-        src/interp/inter_misc.str \
+	src/interp/inter_misc.c \
+	src/interp/inter_misc.str \
 	compilers/imcc/imc.h \
 	compilers/imcc/cfg.h \
 	compilers/imcc/debug.h \
@@ -1365,14 +1355,14 @@
 	compilers/imcc/sets.h \
 	compilers/imcc/symreg.h \
 	compilers/imcc/unit.h \
-        $(INC_DIR)/oplib/ops.h \
-        $(INC_DIR)/runcore_api.h
+	$(INC_DIR)/oplib/ops.h \
+	$(INC_DIR)/runcore_api.h
 
 src/interp/inter_create$(O) : $(PARROT_H_HEADERS) \
 	$(INC_DIR)/oplib/core_ops.h \
 	src/gc/gc_private.h \
-        src/interp/inter_create.c \
-        src/interp/inter_create.str \
+	src/interp/inter_create.c \
+	src/interp/inter_create.str \
 	compilers/imcc/imc.h \
 	compilers/imcc/cfg.h \
 	compilers/imcc/debug.h \
@@ -1380,19 +1370,19 @@
 	compilers/imcc/sets.h \
 	compilers/imcc/symreg.h \
 	compilers/imcc/unit.h \
-        $(INC_DIR)/oplib/ops.h \
-        $(INC_DIR)/runcore_api.h
+	$(INC_DIR)/oplib/ops.h \
+	$(INC_DIR)/runcore_api.h
 
 src/call/ops$(O) : $(INC_DIR)/oplib/ops.h \
 	$(PARROT_H_HEADERS) include/pmc/pmc_continuation.h \
-        $(INC_DIR)/runcore_api.h src/call/ops.c
+	$(INC_DIR)/runcore_api.h src/call/ops.c
 
 src/io/api$(O) : $(PARROT_H_HEADERS) src/io/io_private.h \
-        src/io/api.c \
-        src/io/api.str include/pmc/pmc_filehandle.h \
-        include/pmc/pmc_stringhandle.h \
-        $(INC_DIR)/extend.h \
-        $(INC_DIR)/extend_vtable.h
+	src/io/api.c \
+	src/io/api.str include/pmc/pmc_filehandle.h \
+	include/pmc/pmc_stringhandle.h \
+	$(INC_DIR)/extend.h \
+	$(INC_DIR)/extend_vtable.h
 
 src/io/buffer$(O) : $(PARROT_H_HEADERS) src/io/io_private.h src/io/buffer.c
 
@@ -1410,28 +1400,28 @@
 src/gc/alloc_memory$(O) : $(PARROT_H_HEADERS) src/gc/alloc_memory.c
 
 src/main$(O) : $(INC_DIR)/imcc.h $(PARROT_H_HEADERS) \
-        $(INC_DIR)/embed.h $(INC_DIR)/runcore_api.h src/gc/gc_private.h \
-        src/main.c
+	$(INC_DIR)/embed.h $(INC_DIR)/runcore_api.h src/gc/gc_private.h \
+	src/main.c
 
 src/multidispatch$(O) : \
-        src/multidispatch.c \
-        src/multidispatch.str \
-        $(INC_DIR)/oplib/ops.h $(PARROT_H_HEADERS) \
+	src/multidispatch.c \
+	src/multidispatch.str \
+	$(INC_DIR)/oplib/ops.h $(PARROT_H_HEADERS) \
 	include/pmc/pmc_nci.h include/pmc/pmc_sub.h
 
 src/packfile$(O) : src/packfile.str \
-        src/packfile.c \
+	src/packfile.c \
 	include/pmc/pmc_sub.h include/pmc/pmc_key.h \
-        compilers/imcc/imc.h \
+	compilers/imcc/imc.h \
 	compilers/imcc/cfg.h \
 	compilers/imcc/debug.h \
 	compilers/imcc/instructions.h \
 	compilers/imcc/sets.h \
 	compilers/imcc/symreg.h \
 	compilers/imcc/unit.h \
-        $(INC_DIR)/oplib/ops.h \
-        $(INC_DIR)/embed.h $(INC_DIR)/extend.h $(INC_DIR)/extend_vtable.h \
-        $(PARROT_H_HEADERS) $(INC_DIR)/runcore_api.h
+	$(INC_DIR)/oplib/ops.h \
+	$(INC_DIR)/embed.h $(INC_DIR)/extend.h $(INC_DIR)/extend_vtable.h \
+	$(PARROT_H_HEADERS) $(INC_DIR)/runcore_api.h
 
 src/packfile/pf_items$(O) : $(PARROT_H_HEADERS) src/packfile/pf_items.c
 
@@ -1440,12 +1430,12 @@
 src/parrot$(O) : $(GENERAL_H_FILES)
 
 src/runcore/cores$(O) : src/runcore/cores.str \
-        src/runcore/cores.c \
+	src/runcore/cores.c \
 	include/pmc/pmc_sub.h \
-        $(INC_DIR)/dynext.h $(INC_DIR)/embed.h $(INC_DIR)/oplib/core_ops.h \
-        $(INC_DIR)/oplib/ops.h \
-        $(INC_DIR)/runcore_api.h $(INC_DIR)/runcore_trace.h \
-        $(PARROT_H_HEADERS)
+	$(INC_DIR)/dynext.h $(INC_DIR)/embed.h $(INC_DIR)/oplib/core_ops.h \
+	$(INC_DIR)/oplib/ops.h \
+	$(INC_DIR)/runcore_api.h $(INC_DIR)/runcore_trace.h \
+	$(PARROT_H_HEADERS)
 
 src/embed$(O) : $(PARROT_H_HEADERS) $(INC_DIR)/embed.h \
         src/embed.c src/embed.str \
@@ -1457,19 +1447,19 @@
         compilers/imcc/sets.h \
         compilers/imcc/symreg.h \
         compilers/imcc/unit.h \
-	include/pmc/pmc_sub.h
+		include/pmc/pmc_sub.h
 
 src/dataypes$(O) : $(GENERAL_H_FILES) src/dataypes.c
 
 src/exit$(O) : $(PARROT_H_HEADERS) src/exit.c
 
 src/nci/api$(O) : src/nci/api.str \
-        src/nci/api.c \
-        $(PARROT_H_HEADERS)
+	src/nci/api.c \
+	$(PARROT_H_HEADERS)
 
 src/nci/core_thunks$(O) : src/nci/core_thunks.c \
-        $(PARROT_H_HEADERS) \
-        include/pmc/pmc_nci.h
+	$(PARROT_H_HEADERS) \
+	include/pmc/pmc_nci.h
 
 ## SUFFIX OVERRIDE
 src/nci/extra_thunks$(O) : \
@@ -1479,11 +1469,11 @@
 	$(CC) $(CFLAGS) @optimize::src/nci/extra_thunks.c@ @ccwarn::src/nci/extra_thunks.c@ @cc_shared@ -I$(@D) @cc_o_out@$@ -c src/nci/extra_thunks.c
 
 src/frame_builder$(O) : $(PARROT_H_HEADERS) src/frame_builder.h \
-        src/frame_builder.c \
-        include/pmc/pmc_fixedintegerarray.h \
-        include/pmc/pmc_unmanagedstruct.h \
-        include/pmc/pmc_managedstruct.h \
-        $(INC_DIR)/oplib/ops.h
+	src/frame_builder.c \
+	include/pmc/pmc_fixedintegerarray.h \
+	include/pmc/pmc_unmanagedstruct.h \
+	include/pmc/pmc_managedstruct.h \
+	$(INC_DIR)/oplib/ops.h
 
 src/vtables$(O) : $(PARROT_H_HEADERS) src/vtables.c
 
@@ -1510,15 +1500,14 @@
 src/string/encoding$(O) : $(PARROT_H_HEADERS) src/string/encoding.c
 
 src/string/charset$(O) : $(PARROT_H_HEADERS) src/string/charset.c \
-        src/string/encoding/fixed_8.h \
-        src/string/encoding/utf8.h \
-        src/string/encoding/utf16.h \
-        src/string/encoding/ucs2.h \
-        src/string/encoding/ucs4.h \
-        src/string/charset/ascii.h \
-        src/string/charset/binary.h \
-        src/string/charset/iso-8859-1.h \
-        src/string/charset/unicode.h
+	src/string/encoding/fixed_8.h \
+	src/string/encoding/utf8.h \
+	src/string/encoding/utf16.h \
+	src/string/encoding/ucs2.h \
+	src/string/charset/ascii.h \
+	src/string/charset/binary.h \
+	src/string/charset/iso-8859-1.h \
+	src/string/charset/unicode.h
 
 src/pbc_merge$(O) : $(INC_DIR)/embed.h src/pbc_merge.c \
 	include/pmc/pmc_sub.h $(INC_DIR)/oplib/ops.h $(PARROT_H_HEADERS)
@@ -1545,15 +1534,6 @@
     include/pmc/pmc_parrotlibrary.h \
     src/io/io_private.h
 
-# .h files are built along with .c
-$(INC_DIR)/oplib/core_ops.h: src/ops/core_ops.c
-
-src/ops/core_ops.c : $(OPS_FILES) $(BUILD_TOOLS_DIR)/ops2c.pl \
-	lib/Parrot/OpsFile.pm lib/Parrot/Op.pm $(INC_DIR)/config.h \
-	lib/Parrot/OpLib/core.pm lib/Parrot/OpTrans/C.pm \
-	include/pmc/pmc_continuation.h
-	$(PERL) $(BUILD_TOOLS_DIR)/ops2c.pl C --core @no_lines_flag@
-
 @TEMP_gc_c@
 
 @TEMP_pmc_build@
@@ -1661,13 +1641,9 @@
     t/tools/*.t
 LIBRARY_TEST_FILES = @library_tests@
 PMC2CUTILS_DIR = t/tools/pmc2cutils
-OPS2PMUTILS_DIR = t/tools/ops2pm
-OPS2CUTILS_DIR = t/tools/ops2cutils
 HARNESS_DIR = t/pharness
 BUILDTOOLS_TEST_FILES = \
     $(PMC2CUTILS_DIR)/*.t \
-    $(OPS2PMUTILS_DIR)/*.t \
-    $(OPS2CUTILS_DIR)/*.t \
     $(HARNESS_DIR)/*.t
 MANIFEST_DIR = t/manifest
 INSTALL_TOOLS_DIR = t/tools/install
@@ -1834,7 +1810,6 @@
     ext-clean \
 #UNLESS(win32):    cover-clean \
     editor-clean
-	$(RM_F) $(INC_DIR)/oplib/core_ops_cg.h src/ops/core_ops_cg.c
 	$(RM_F) chartypes "*.s" "*~"
 	$(RM_F) $(FLUID_FILES_1)
 	$(RM_F) $(FLUID_FILES_2)
@@ -1844,7 +1819,7 @@
 	$(RM_F) $(PIRC_CLEANUPS) $(PCT_CLEANUPS) $(DATA_JSON_CLEANUPS)
 	$(RM_F) $(DYNOPLIBS_CLEANUPS) $(DYNPMC_CLEANUPS)
 	$(RM_F) $(GEN_PASM_INCLUDES) $(GEN_PM_INCLUDES)
-	$(RM_F) $(NQPRX_CLEANUPS)
+	$(RM_F) $(NQPRX_CLEANUPS)  $(OPSC_CLEANUPS)
 
 prog-clean :
 	$(RM_F) \
@@ -1852,6 +1827,7 @@
     $(PARROT) \
     $(MINIPARROT) \
     $(LIBPARROT) \
+    $(INSTALLABLEOPS2C) \
     $(INSTALLABLEPARROT) \
     $(INSTALLABLEDIS) \
     $(INSTALLABLEPDUMP) \
@@ -1864,6 +1840,7 @@
     $(INSTALLABLEPROVE) \
     pbc_to_exe.pbc pbc_to_exe.c pbc_to_exe$(O) pbc_to_exe$(EXE) \
     $(NCI_THUNK_GEN) parrot_nci_thunk_gen.c parrot_nci_thunk_gen$(O) parrot_nci_thunk_gen.pbc \
+    ops2c.pbc ops2c.c ops2c$(O) ops2c$(EXE) ops2c.pir \
     parrot-prove.pbc parrot-prove.c parrot-prove$(O) parrot-prove$(EXE) \
     parrot_config$(EXE) parrot_config.c parrot_config$(O) parrot_config.pbc \
     compilers/imcc/main$(O) \
@@ -1946,20 +1923,14 @@
 # XXX Is there a danger of too long command lines in the $(RM_F) commands,
 # or is there an automatic xargs?
 test-clean :
-	$(RM_F) \
-    "t/compilers/*/*.out" \
-    "t/compilers/*/*.pasm" \
-    "t/compilers/*/*.pbc" \
-    "t/compilers/*/*_pbcexe*" \
-    "t/compilers/*/*.pir" \
-    "t/compilers/*/*.stabs.s"
-	$(RM_F) \
-    "t/compilers/*/*/*.out" \
-    "t/compilers/*/*/*.pasm" \
-    "t/compilers/*/*/*.pbc" \
-    "t/compilers/*/*/*_pbcexe*" \
-    "t/compilers/*/*/*.pir" \
-    "t/compilers/*/*/*.stabs.s"
+	$(RM_F) t/compilers/data_json/*.pir
+	$(RM_F) t/compilers/imcc/imcpasm/*.pir
+	$(RM_F) t/compilers/imcc/syn/*.pir t/compilers/imcc/syn/*.pasm
+	$(RM_F) t/compilers/imcc/reg/*.pir t/compilers/imcc/reg/*.pasm
+	$(RM_F) t/compilers/pct/*.pir
+	$(RM_F) t/compilers/pge/perl6regex/*.pir
+	$(RM_F) t/compilers/pge/*.pir
+	$(RM_F) t/compilers/tge/*.pir
 	$(RM_F) \
     "t/*/*$(O)" \
     "t/*/*.out" \
@@ -2301,10 +2272,10 @@
 	build_dir=$$PWD; \
     for dir in $(COVER_DIRS); \
     do \
-        cd $$dir; \
-        gcov *.c; \
-        cd $$build_dir; \
-        gcov2perl $$dir/*.gcov; \
+	cd $$dir; \
+	gcov *.c; \
+	cd $$build_dir; \
+	gcov2perl $$dir/*.gcov; \
     done
 	cover -ignore_re '^\/usr\/local\/bin'
 
@@ -2418,7 +2389,7 @@
 	$(PERL) -lane 'print"parrot-$(VERSION)/$$F[0]"unless!length||/#/' MANIFEST | \
     tar -zcv -T - -f parrot-$(VERSION).tar.gz
 	$(PERL) -lane 'print"parrot-$(VERSION)/$$F[0]"unless!length||/#/' \
-             MANIFEST | tar -jcv -T - -f parrot-$(VERSION).tar.bz2
+	     MANIFEST | tar -jcv -T - -f parrot-$(VERSION).tar.bz2
 	mv MANIFEST.real MANIFEST
 	rm parrot-$(VERSION)
 
@@ -2452,10 +2423,10 @@
 
 src/glut_nci_thunks.c: $(NCI_THUNK_GEN)
 	$(NCI_THUNK_GEN) \
-	    --loader-name=Parrot_glut_nci_loader \
-	    --loader-storage-class=PARROT_DYNEXT_EXPORT \
-	    --output=src/glut_nci_thunks.c \
-	    <src/glut_nci_thunks.nci
+		--loader-name=Parrot_glut_nci_loader \
+		--loader-storage-class=PARROT_DYNEXT_EXPORT \
+		--output=src/glut_nci_thunks.c \
+		<src/glut_nci_thunks.nci
 
 src/glut_nci_thunks$(O) : $(PARROT_H_HEADERS) \
     src/glut_nci_thunks.c \
@@ -2468,7 +2439,7 @@
 
 src/extra_nci_thunks.c : src/nci/extra_thunks.nci $(NCI_THUNK_GEN)
 	$(NCI_THUNK_GEN) --dynext --no-warn-dups \
-	    --output=src/extra_nci_thunks.c <src/nci/extra_thunks.nci
+		--output=src/extra_nci_thunks.c <src/nci/extra_thunks.nci
 
 ## SUFFIX OVERRIDE
 src/extra_nci_thunks$(O) : $(PARROT_H_HEADERS) src/extra_nci_thunks.c \
@@ -2486,17 +2457,17 @@
 tags-emacs: tags.emacs.dummy
 	$(RM_F) TAGS
 	@ctags@ -e \
-        --links=no --totals \
-        -R --exclude=blib --exclude=.svn  \
-        --languages=c,perl --langmap=c:+.h,c:+.pmc,c:+.ops \
-        -I NOTNULL,NULLOK,ARGIN,ARGMOD,ARGOUT,ARGINOUT,ARGIN_NULLOK,ARGOUT_NULLOK,ARGMOD_NULLOK,ARGFREE,ARGFREE_NOTNULL \
-        .
+	--links=no --totals \
+	-R --exclude=blib --exclude=.svn  \
+	--languages=c,perl --langmap=c:+.h,c:+.pmc,c:+.ops \
+	-I NOTNULL,NULLOK,ARGIN,ARGMOD,ARGOUT,ARGINOUT,ARGIN_NULLOK,ARGOUT_NULLOK,ARGMOD_NULLOK,ARGFREE,ARGFREE_NOTNULL \
+	.
 
 # this works with an old etags (XEmacs 21.5*)
 tags-xemacs: tags.emacs.dummy
 	$(RM_F) TAGS
 	find . \
-        -name \*.c -o -name \*.h -o -name \*.pmc -o -name \*.ops | etags -l c - -o TAGS
+	-name \*.c -o -name \*.h -o -name \*.pmc -o -name \*.ops | etags -l c - -o TAGS
 
 tags.emacs.dummy:
 
@@ -2556,6 +2527,7 @@
 include compilers/pirc/Rules.mak
 include compilers/pge/Rules.mak
 include compilers/pct/Rules.mak
+include compilers/opsc/Rules.mak
 include compilers/tge/Rules.mak
 include compilers/data_json/Rules.mak
 include ext/nqp-rx/Rules.mak

Modified: branches/ucs4_encoding/docs/pdds/draft/pdd31_hll.pod
==============================================================================
--- branches/ucs4_encoding/docs/pdds/draft/pdd31_hll.pod	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/docs/pdds/draft/pdd31_hll.pod	Mon May 24 21:18:41 2010	(r46974)
@@ -77,11 +77,11 @@
 
 =item C<eval>
 
-    $P0 = compiler.'eval'(source [, options :named :slurpy])
+    $P0 = compiler.'eval'(source [, args :slurpy] [, options :named :slurpy])
 
 Compile and evaluate (execute) the code given by C<source>
-according to C<options>.  The available options are generally
-the same as for the C<compile> method above; in particular,
+with C<args> and according to C<options>.  The available options 
+are generally the same as for the C<compile> method above; in particular,
 the C<outer_ctx> option can be used to specify the outer lexical
 context for the evaluated source.
 

Modified: branches/ucs4_encoding/docs/pdds/pdd13_bytecode.pod
==============================================================================
--- branches/ucs4_encoding/docs/pdds/pdd13_bytecode.pod	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/docs/pdds/pdd13_bytecode.pod	Mon May 24 21:18:41 2010	(r46974)
@@ -389,7 +389,9 @@
   | 5      | n      | String data with trailing zero padding as required.    |
   +--------+--------+--------------------------------------------------------+
 
-Note: The encoding field is not implemented yet and is set to 0.
+Note: The encoding and charset are currently packed together with the Flags,
+using an unique field of Length 1.
+
 
 =item * PMC Constants
 

Modified: branches/ucs4_encoding/docs/tests.pod
==============================================================================
--- branches/ucs4_encoding/docs/tests.pod	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/docs/tests.pod	Mon May 24 21:18:41 2010	(r46974)
@@ -190,10 +190,9 @@
 
 The files in F<t/postconfigure> are tests for build system. The build tools
 tests are intended to be run after someone has made changes in modules such as
-F<lib/Parrot/Pmc2cUtils/>, F<Ops2cUtils/> and F<Ops2pmutils/>.  They're set up
-to be run after F<Configure.pl> has completed but before make has been invoked.
-(In fact, they will generate errors if make has completed.)  You can run them
-with any of the following:
+F<lib/Parrot/Pmc2cUtils/>.  They're set up to be run after F<Configure.pl> has
+completed but before make has been invoked.  (In fact, they will generate
+errors if make has completed.)  You can run them with any of the following:
  
      perl Configure.pl --test
      perl Configure.pl --test=build

Modified: branches/ucs4_encoding/editor/pir-mode.el
==============================================================================
--- branches/ucs4_encoding/editor/pir-mode.el	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/editor/pir-mode.el	Mon May 24 21:18:41 2010	(r46974)
@@ -66,7 +66,7 @@
   :type 'boolean
   :group 'pir)
 
-(defcustom pir-basic-indent 8
+(defcustom pir-basic-indent 4
   "*Extra indentation applied to statements in PIR block structures."
   :type 'integer
   :group 'pir)

Modified: branches/ucs4_encoding/examples/io/get.pir
==============================================================================
--- branches/ucs4_encoding/examples/io/get.pir	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/examples/io/get.pir	Mon May 24 21:18:41 2010	(r46974)
@@ -21,12 +21,13 @@
 
 .sub 'main' :main
     .param pmc args
-    load_bytecode 'LWP.pir'
+    load_bytecode 'LWP/UserAgent.pir'
     $S0 = shift args
     .local string url
     url = shift args
     .local pmc ua, response
     ua = new ['LWP';'UserAgent']
+    ua.'env_proxy'()
     ua.'show_progress'(1)
     response = ua.'get'(url, 'close' :named('Connection'))
     $S0 = response.'content'()

Modified: branches/ucs4_encoding/examples/io/post.pir
==============================================================================
--- branches/ucs4_encoding/examples/io/post.pir	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/examples/io/post.pir	Mon May 24 21:18:41 2010	(r46974)
@@ -30,10 +30,11 @@
     set $P0, 1
     $P0[0] = 'parrot_test_run.tar.gz'
     push contents, $P0
-    load_bytecode 'LWP.pir'
+    load_bytecode 'LWP/UserAgent.pir'
     .const string url = 'http://smolder.plusthree.com/app/projects/process_add_report/8'
     .local pmc ua, response
     ua = new ['LWP';'UserAgent']
+    ua.'env_proxy'()
     ua.'show_progress'(1)
     response = ua.'post'(url, contents :flat, 'form-data' :named('Content-Type'), 'close' :named('Connection'))
     $I0 = response.'code'()

Modified: branches/ucs4_encoding/examples/languages/squaak/t/00-sanity.t
==============================================================================
--- branches/ucs4_encoding/examples/languages/squaak/t/00-sanity.t	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/examples/languages/squaak/t/00-sanity.t	Mon May 24 21:18:41 2010	(r46974)
@@ -88,7 +88,6 @@
 
 # for-statement
 
-var i = 1
 
 for var i = 18, 20 do
     print("ok ", i)
@@ -104,11 +103,11 @@
 #end
 
 
-i = 0
-while i < 5 do
+var j = 0
+while j < 5 do
 
-    print("ok ", i + g)
-    i = i + 1
+    print("ok ", j + g)
+    j = j + 1
 end
 
 

Modified: branches/ucs4_encoding/examples/tools/pbc_checker.cpp
==============================================================================
--- branches/ucs4_encoding/examples/tools/pbc_checker.cpp	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/examples/tools/pbc_checker.cpp	Mon May 24 21:18:41 2010	(r46974)
@@ -728,10 +728,16 @@
 {
     opcode flags;
     opcode charset;
+    const opcode encoding_none = 0xFFFF;
+    opcode encoding = encoding_none;
     if (pbc_major > 5 && pbc_minor > 11) {
         opcode flags_charset = read_opcode(pbcfile);
         flags = flags_charset & 0xFF;
         charset = flags_charset >> 8;
+        if (pbc_major > 6 || pbc_minor >= 17) {
+            encoding = charset >> 8;
+            charset &= 0xFF;
+        }
     }
     else {
         flags = read_opcode(pbcfile);
@@ -740,6 +746,8 @@
 
     cout << "Flags: 0x" << hex << setw(6) << flags << dec;
     cout << " Charset: " << charset;
+    if (encoding != encoding_none)
+        cout << " Encoding: " << encoding;
 
     // Encoding not saved, see TT #468
     //opcode encoding = read_opcode(pbcfile);

Modified: branches/ucs4_encoding/ext/nqp-rx/src/stage0/HLL-s0.pir
==============================================================================
--- branches/ucs4_encoding/ext/nqp-rx/src/stage0/HLL-s0.pir	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/ext/nqp-rx/src/stage0/HLL-s0.pir	Mon May 24 21:18:41 2010	(r46974)
@@ -854,7 +854,7 @@
 ### .include 'gen/hllgrammar-grammar.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1274022878.64768")
+.sub "_block11"  :anon :subid("10_1274564773.54721")
 .annotate 'line', 0
     get_hll_global $P14, ["HLL";"Grammar"], "_block13" 
     capture_lex $P14
@@ -864,15 +864,15 @@
     $P343 = $P14()
 .annotate 'line', 1
     .return ($P343)
-    .const 'Sub' $P345 = "104_1274022878.64768" 
+    .const 'Sub' $P345 = "104_1274564773.54721" 
     .return ($P345)
 .end
 
 
 .namespace []
-.sub "" :load :init :subid("post105") :outer("10_1274022878.64768")
+.sub "" :load :init :subid("post105") :outer("10_1274564773.54721")
 .annotate 'line', 0
-    .const 'Sub' $P12 = "10_1274022878.64768" 
+    .const 'Sub' $P12 = "10_1274564773.54721" 
     .local pmc block
     set block, $P12
     $P348 = get_root_global ["parrot"], "P6metaclass"
@@ -881,94 +881,94 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "_block13"  :subid("11_1274022878.64768") :outer("10_1274022878.64768")
+.sub "_block13"  :subid("11_1274564773.54721") :outer("10_1274564773.54721")
 .annotate 'line', 5
-    .const 'Sub' $P329 = "101_1274022878.64768" 
+    .const 'Sub' $P329 = "101_1274564773.54721" 
     capture_lex $P329
-    .const 'Sub' $P322 = "99_1274022878.64768" 
+    .const 'Sub' $P322 = "99_1274564773.54721" 
     capture_lex $P322
-    .const 'Sub' $P309 = "96_1274022878.64768" 
+    .const 'Sub' $P309 = "96_1274564773.54721" 
     capture_lex $P309
-    .const 'Sub' $P277 = "91_1274022878.64768" 
+    .const 'Sub' $P277 = "91_1274564773.54721" 
     capture_lex $P277
-    .const 'Sub' $P271 = "89_1274022878.64768" 
+    .const 'Sub' $P271 = "89_1274564773.54721" 
     capture_lex $P271
-    .const 'Sub' $P266 = "87_1274022878.64768" 
+    .const 'Sub' $P266 = "87_1274564773.54721" 
     capture_lex $P266
-    .const 'Sub' $P260 = "85_1274022878.64768" 
+    .const 'Sub' $P260 = "85_1274564773.54721" 
     capture_lex $P260
-    .const 'Sub' $P254 = "83_1274022878.64768" 
+    .const 'Sub' $P254 = "83_1274564773.54721" 
     capture_lex $P254
-    .const 'Sub' $P249 = "81_1274022878.64768" 
+    .const 'Sub' $P249 = "81_1274564773.54721" 
     capture_lex $P249
-    .const 'Sub' $P244 = "79_1274022878.64768" 
+    .const 'Sub' $P244 = "79_1274564773.54721" 
     capture_lex $P244
-    .const 'Sub' $P239 = "77_1274022878.64768" 
+    .const 'Sub' $P239 = "77_1274564773.54721" 
     capture_lex $P239
-    .const 'Sub' $P234 = "75_1274022878.64768" 
+    .const 'Sub' $P234 = "75_1274564773.54721" 
     capture_lex $P234
-    .const 'Sub' $P229 = "73_1274022878.64768" 
+    .const 'Sub' $P229 = "73_1274564773.54721" 
     capture_lex $P229
-    .const 'Sub' $P224 = "71_1274022878.64768" 
+    .const 'Sub' $P224 = "71_1274564773.54721" 
     capture_lex $P224
-    .const 'Sub' $P219 = "69_1274022878.64768" 
+    .const 'Sub' $P219 = "69_1274564773.54721" 
     capture_lex $P219
-    .const 'Sub' $P208 = "65_1274022878.64768" 
+    .const 'Sub' $P208 = "65_1274564773.54721" 
     capture_lex $P208
-    .const 'Sub' $P195 = "63_1274022878.64768" 
+    .const 'Sub' $P195 = "63_1274564773.54721" 
     capture_lex $P195
-    .const 'Sub' $P183 = "61_1274022878.64768" 
+    .const 'Sub' $P183 = "61_1274564773.54721" 
     capture_lex $P183
-    .const 'Sub' $P176 = "59_1274022878.64768" 
+    .const 'Sub' $P176 = "59_1274564773.54721" 
     capture_lex $P176
-    .const 'Sub' $P167 = "57_1274022878.64768" 
+    .const 'Sub' $P167 = "57_1274564773.54721" 
     capture_lex $P167
-    .const 'Sub' $P160 = "55_1274022878.64768" 
+    .const 'Sub' $P160 = "55_1274564773.54721" 
     capture_lex $P160
-    .const 'Sub' $P151 = "53_1274022878.64768" 
+    .const 'Sub' $P151 = "53_1274564773.54721" 
     capture_lex $P151
-    .const 'Sub' $P144 = "51_1274022878.64768" 
+    .const 'Sub' $P144 = "51_1274564773.54721" 
     capture_lex $P144
-    .const 'Sub' $P135 = "49_1274022878.64768" 
+    .const 'Sub' $P135 = "49_1274564773.54721" 
     capture_lex $P135
-    .const 'Sub' $P128 = "47_1274022878.64768" 
+    .const 'Sub' $P128 = "47_1274564773.54721" 
     capture_lex $P128
-    .const 'Sub' $P121 = "45_1274022878.64768" 
+    .const 'Sub' $P121 = "45_1274564773.54721" 
     capture_lex $P121
-    .const 'Sub' $P111 = "43_1274022878.64768" 
+    .const 'Sub' $P111 = "43_1274564773.54721" 
     capture_lex $P111
-    .const 'Sub' $P103 = "41_1274022878.64768" 
+    .const 'Sub' $P103 = "41_1274564773.54721" 
     capture_lex $P103
-    .const 'Sub' $P93 = "40_1274022878.64768" 
+    .const 'Sub' $P93 = "40_1274564773.54721" 
     capture_lex $P93
-    .const 'Sub' $P87 = "38_1274022878.64768" 
+    .const 'Sub' $P87 = "38_1274564773.54721" 
     capture_lex $P87
-    .const 'Sub' $P82 = "36_1274022878.64768" 
+    .const 'Sub' $P82 = "36_1274564773.54721" 
     capture_lex $P82
-    .const 'Sub' $P74 = "34_1274022878.64768" 
+    .const 'Sub' $P74 = "34_1274564773.54721" 
     capture_lex $P74
-    .const 'Sub' $P68 = "32_1274022878.64768" 
+    .const 'Sub' $P68 = "32_1274564773.54721" 
     capture_lex $P68
-    .const 'Sub' $P62 = "30_1274022878.64768" 
+    .const 'Sub' $P62 = "30_1274564773.54721" 
     capture_lex $P62
-    .const 'Sub' $P56 = "28_1274022878.64768" 
+    .const 'Sub' $P56 = "28_1274564773.54721" 
     capture_lex $P56
-    .const 'Sub' $P23 = "14_1274022878.64768" 
+    .const 'Sub' $P23 = "14_1274564773.54721" 
     capture_lex $P23
-    .const 'Sub' $P15 = "12_1274022878.64768" 
+    .const 'Sub' $P15 = "12_1274564773.54721" 
     capture_lex $P15
 .annotate 'line', 33
-    .const 'Sub' $P329 = "101_1274022878.64768" 
+    .const 'Sub' $P329 = "101_1274564773.54721" 
     capture_lex $P329
 .annotate 'line', 5
     .return ($P329)
-    .const 'Sub' $P340 = "103_1274022878.64768" 
+    .const 'Sub' $P340 = "103_1274564773.54721" 
     .return ($P340)
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "ws"  :subid("12_1274022878.64768") :method :outer("11_1274022878.64768")
+.sub "ws"  :subid("12_1274564773.54721") :method :outer("11_1274564773.54721")
 .annotate 'line', 5
     .local string rx16_tgt
     .local int rx16_pos
@@ -1052,7 +1052,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__ws"  :subid("13_1274022878.64768") :method
+.sub "!PREFIX__ws"  :subid("13_1274564773.54721") :method
 .annotate 'line', 5
     new $P18, "ResizablePMCArray"
     push $P18, ""
@@ -1061,7 +1061,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "termish"  :subid("14_1274022878.64768") :method :outer("11_1274022878.64768")
+.sub "termish"  :subid("14_1274564773.54721") :method :outer("11_1274564773.54721")
 .annotate 'line', 5
     .local string rx24_tgt
     .local int rx24_pos
@@ -1153,7 +1153,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__termish"  :subid("15_1274022878.64768") :method
+.sub "!PREFIX__termish"  :subid("15_1274564773.54721") :method
 .annotate 'line', 5
     new $P26, "ResizablePMCArray"
     push $P26, ""
@@ -1162,7 +1162,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "term"  :subid("16_1274022878.64768") :method
+.sub "term"  :subid("16_1274564773.54721") :method
 .annotate 'line', 13
     $P33 = self."!protoregex"("term")
     .return ($P33)
@@ -1170,7 +1170,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__term"  :subid("17_1274022878.64768") :method
+.sub "!PREFIX__term"  :subid("17_1274564773.54721") :method
 .annotate 'line', 13
     $P35 = self."!PREFIX__!protoregex"("term")
     .return ($P35)
@@ -1178,7 +1178,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "infix"  :subid("18_1274022878.64768") :method
+.sub "infix"  :subid("18_1274564773.54721") :method
 .annotate 'line', 14
     $P37 = self."!protoregex"("infix")
     .return ($P37)
@@ -1186,7 +1186,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__infix"  :subid("19_1274022878.64768") :method
+.sub "!PREFIX__infix"  :subid("19_1274564773.54721") :method
 .annotate 'line', 14
     $P39 = self."!PREFIX__!protoregex"("infix")
     .return ($P39)
@@ -1194,7 +1194,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "prefix"  :subid("20_1274022878.64768") :method
+.sub "prefix"  :subid("20_1274564773.54721") :method
 .annotate 'line', 15
     $P41 = self."!protoregex"("prefix")
     .return ($P41)
@@ -1202,7 +1202,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__prefix"  :subid("21_1274022878.64768") :method
+.sub "!PREFIX__prefix"  :subid("21_1274564773.54721") :method
 .annotate 'line', 15
     $P43 = self."!PREFIX__!protoregex"("prefix")
     .return ($P43)
@@ -1210,7 +1210,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "postfix"  :subid("22_1274022878.64768") :method
+.sub "postfix"  :subid("22_1274564773.54721") :method
 .annotate 'line', 16
     $P45 = self."!protoregex"("postfix")
     .return ($P45)
@@ -1218,7 +1218,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__postfix"  :subid("23_1274022878.64768") :method
+.sub "!PREFIX__postfix"  :subid("23_1274564773.54721") :method
 .annotate 'line', 16
     $P47 = self."!PREFIX__!protoregex"("postfix")
     .return ($P47)
@@ -1226,7 +1226,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "circumfix"  :subid("24_1274022878.64768") :method
+.sub "circumfix"  :subid("24_1274564773.54721") :method
 .annotate 'line', 17
     $P49 = self."!protoregex"("circumfix")
     .return ($P49)
@@ -1234,7 +1234,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__circumfix"  :subid("25_1274022878.64768") :method
+.sub "!PREFIX__circumfix"  :subid("25_1274564773.54721") :method
 .annotate 'line', 17
     $P51 = self."!PREFIX__!protoregex"("circumfix")
     .return ($P51)
@@ -1242,7 +1242,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "postcircumfix"  :subid("26_1274022878.64768") :method
+.sub "postcircumfix"  :subid("26_1274564773.54721") :method
 .annotate 'line', 18
     $P53 = self."!protoregex"("postcircumfix")
     .return ($P53)
@@ -1250,7 +1250,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__postcircumfix"  :subid("27_1274022878.64768") :method
+.sub "!PREFIX__postcircumfix"  :subid("27_1274564773.54721") :method
 .annotate 'line', 18
     $P55 = self."!PREFIX__!protoregex"("postcircumfix")
     .return ($P55)
@@ -1258,7 +1258,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "term:sym<circumfix>"  :subid("28_1274022878.64768") :method :outer("11_1274022878.64768")
+.sub "term:sym<circumfix>"  :subid("28_1274564773.54721") :method :outer("11_1274564773.54721")
 .annotate 'line', 5
     .local string rx57_tgt
     .local int rx57_pos
@@ -1316,7 +1316,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__term:sym<circumfix>"  :subid("29_1274022878.64768") :method
+.sub "!PREFIX__term:sym<circumfix>"  :subid("29_1274564773.54721") :method
 .annotate 'line', 5
     $P59 = self."!PREFIX__!subrule"("circumfix", "")
     new $P60, "ResizablePMCArray"
@@ -1326,7 +1326,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "infixish"  :subid("30_1274022878.64768") :method :outer("11_1274022878.64768")
+.sub "infixish"  :subid("30_1274564773.54721") :method :outer("11_1274564773.54721")
 .annotate 'line', 5
     .local string rx63_tgt
     .local int rx63_pos
@@ -1384,7 +1384,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__infixish"  :subid("31_1274022878.64768") :method
+.sub "!PREFIX__infixish"  :subid("31_1274564773.54721") :method
 .annotate 'line', 5
     $P65 = self."!PREFIX__!subrule"("OPER=infix", "")
     new $P66, "ResizablePMCArray"
@@ -1394,7 +1394,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "prefixish"  :subid("32_1274022878.64768") :method :outer("11_1274022878.64768")
+.sub "prefixish"  :subid("32_1274564773.54721") :method :outer("11_1274564773.54721")
 .annotate 'line', 5
     .local string rx69_tgt
     .local int rx69_pos
@@ -1457,7 +1457,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__prefixish"  :subid("33_1274022878.64768") :method
+.sub "!PREFIX__prefixish"  :subid("33_1274564773.54721") :method
 .annotate 'line', 5
     $P71 = self."!PREFIX__!subrule"("OPER=prefix", "")
     new $P72, "ResizablePMCArray"
@@ -1467,7 +1467,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "postfixish"  :subid("34_1274022878.64768") :method :outer("11_1274022878.64768")
+.sub "postfixish"  :subid("34_1274564773.54721") :method :outer("11_1274564773.54721")
 .annotate 'line', 5
     .local string rx75_tgt
     .local int rx75_pos
@@ -1541,7 +1541,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__postfixish"  :subid("35_1274022878.64768") :method
+.sub "!PREFIX__postfixish"  :subid("35_1274564773.54721") :method
 .annotate 'line', 5
     $P77 = self."!PREFIX__!subrule"("OPER=postcircumfix", "")
     $P78 = self."!PREFIX__!subrule"("OPER=postfix", "")
@@ -1553,7 +1553,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "nullterm"  :subid("36_1274022878.64768") :method :outer("11_1274022878.64768")
+.sub "nullterm"  :subid("36_1274564773.54721") :method :outer("11_1274564773.54721")
 .annotate 'line', 5
     .local string rx83_tgt
     .local int rx83_pos
@@ -1604,7 +1604,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__nullterm"  :subid("37_1274022878.64768") :method
+.sub "!PREFIX__nullterm"  :subid("37_1274564773.54721") :method
 .annotate 'line', 5
     new $P85, "ResizablePMCArray"
     push $P85, ""
@@ -1613,7 +1613,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "nullterm_alt"  :subid("38_1274022878.64768") :method :outer("11_1274022878.64768")
+.sub "nullterm_alt"  :subid("38_1274564773.54721") :method :outer("11_1274564773.54721")
 .annotate 'line', 5
     .local string rx88_tgt
     .local int rx88_pos
@@ -1671,7 +1671,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__nullterm_alt"  :subid("39_1274022878.64768") :method
+.sub "!PREFIX__nullterm_alt"  :subid("39_1274564773.54721") :method
 .annotate 'line', 5
     $P90 = self."!PREFIX__!subrule"("term", "")
     new $P91, "ResizablePMCArray"
@@ -1681,7 +1681,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "nulltermish"  :subid("40_1274022878.64768") :method :outer("11_1274022878.64768")
+.sub "nulltermish"  :subid("40_1274564773.54721") :method :outer("11_1274564773.54721")
 .annotate 'line', 33
     new $P95, 'ExceptionHandler'
     set_addr $P95, control_94
@@ -1708,7 +1708,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_delimited"  :subid("41_1274022878.64768") :method :outer("11_1274022878.64768")
+.sub "quote_delimited"  :subid("41_1274564773.54721") :method :outer("11_1274564773.54721")
 .annotate 'line', 33
     .local string rx104_tgt
     .local int rx104_pos
@@ -1790,7 +1790,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_delimited"  :subid("42_1274022878.64768") :method
+.sub "!PREFIX__quote_delimited"  :subid("42_1274564773.54721") :method
 .annotate 'line', 33
     $P106 = self."!PREFIX__!subrule"("starter", "")
     new $P107, "ResizablePMCArray"
@@ -1800,7 +1800,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_atom"  :subid("43_1274022878.64768") :method :outer("11_1274022878.64768")
+.sub "quote_atom"  :subid("43_1274564773.54721") :method :outer("11_1274564773.54721")
 .annotate 'line', 33
     .local string rx112_tgt
     .local int rx112_pos
@@ -1891,7 +1891,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_atom"  :subid("44_1274022878.64768") :method
+.sub "!PREFIX__quote_atom"  :subid("44_1274564773.54721") :method
 .annotate 'line', 33
     new $P114, "ResizablePMCArray"
     push $P114, ""
@@ -1900,7 +1900,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "decint"  :subid("45_1274022878.64768") :method :outer("11_1274022878.64768")
+.sub "decint"  :subid("45_1274564773.54721") :method :outer("11_1274564773.54721")
 .annotate 'line', 33
     .local string rx122_tgt
     .local int rx122_pos
@@ -1972,7 +1972,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__decint"  :subid("46_1274022878.64768") :method
+.sub "!PREFIX__decint"  :subid("46_1274564773.54721") :method
 .annotate 'line', 33
     new $P124, "ResizablePMCArray"
     push $P124, ""
@@ -1981,7 +1981,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "decints"  :subid("47_1274022878.64768") :method :outer("11_1274022878.64768")
+.sub "decints"  :subid("47_1274564773.54721") :method :outer("11_1274564773.54721")
 .annotate 'line', 33
     .local string rx129_tgt
     .local int rx129_pos
@@ -2065,7 +2065,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__decints"  :subid("48_1274022878.64768") :method
+.sub "!PREFIX__decints"  :subid("48_1274564773.54721") :method
 .annotate 'line', 33
     new $P131, "ResizablePMCArray"
     push $P131, ""
@@ -2074,7 +2074,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "hexint"  :subid("49_1274022878.64768") :method :outer("11_1274022878.64768")
+.sub "hexint"  :subid("49_1274564773.54721") :method :outer("11_1274564773.54721")
 .annotate 'line', 33
     .local string rx136_tgt
     .local int rx136_pos
@@ -2155,7 +2155,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__hexint"  :subid("50_1274022878.64768") :method
+.sub "!PREFIX__hexint"  :subid("50_1274564773.54721") :method
 .annotate 'line', 33
     new $P138, "ResizablePMCArray"
     push $P138, ""
@@ -2164,7 +2164,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "hexints"  :subid("51_1274022878.64768") :method :outer("11_1274022878.64768")
+.sub "hexints"  :subid("51_1274564773.54721") :method :outer("11_1274564773.54721")
 .annotate 'line', 33
     .local string rx145_tgt
     .local int rx145_pos
@@ -2248,7 +2248,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__hexints"  :subid("52_1274022878.64768") :method
+.sub "!PREFIX__hexints"  :subid("52_1274564773.54721") :method
 .annotate 'line', 33
     new $P147, "ResizablePMCArray"
     push $P147, ""
@@ -2257,7 +2257,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "octint"  :subid("53_1274022878.64768") :method :outer("11_1274022878.64768")
+.sub "octint"  :subid("53_1274564773.54721") :method :outer("11_1274564773.54721")
 .annotate 'line', 33
     .local string rx152_tgt
     .local int rx152_pos
@@ -2338,7 +2338,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__octint"  :subid("54_1274022878.64768") :method
+.sub "!PREFIX__octint"  :subid("54_1274564773.54721") :method
 .annotate 'line', 33
     new $P154, "ResizablePMCArray"
     push $P154, ""
@@ -2347,7 +2347,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "octints"  :subid("55_1274022878.64768") :method :outer("11_1274022878.64768")
+.sub "octints"  :subid("55_1274564773.54721") :method :outer("11_1274564773.54721")
 .annotate 'line', 33
     .local string rx161_tgt
     .local int rx161_pos
@@ -2431,7 +2431,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__octints"  :subid("56_1274022878.64768") :method
+.sub "!PREFIX__octints"  :subid("56_1274564773.54721") :method
 .annotate 'line', 33
     new $P163, "ResizablePMCArray"
     push $P163, ""
@@ -2440,7 +2440,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "binint"  :subid("57_1274022878.64768") :method :outer("11_1274022878.64768")
+.sub "binint"  :subid("57_1274564773.54721") :method :outer("11_1274564773.54721")
 .annotate 'line', 33
     .local string rx168_tgt
     .local int rx168_pos
@@ -2521,7 +2521,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__binint"  :subid("58_1274022878.64768") :method
+.sub "!PREFIX__binint"  :subid("58_1274564773.54721") :method
 .annotate 'line', 33
     new $P170, "ResizablePMCArray"
     push $P170, ""
@@ -2530,7 +2530,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "binints"  :subid("59_1274022878.64768") :method :outer("11_1274022878.64768")
+.sub "binints"  :subid("59_1274564773.54721") :method :outer("11_1274564773.54721")
 .annotate 'line', 33
     .local string rx177_tgt
     .local int rx177_pos
@@ -2614,7 +2614,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__binints"  :subid("60_1274022878.64768") :method
+.sub "!PREFIX__binints"  :subid("60_1274564773.54721") :method
 .annotate 'line', 33
     new $P179, "ResizablePMCArray"
     push $P179, ""
@@ -2623,7 +2623,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "integer"  :subid("61_1274022878.64768") :method :outer("11_1274022878.64768")
+.sub "integer"  :subid("61_1274564773.54721") :method :outer("11_1274564773.54721")
 .annotate 'line', 33
     .local string rx184_tgt
     .local int rx184_pos
@@ -2771,7 +2771,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__integer"  :subid("62_1274022878.64768") :method
+.sub "!PREFIX__integer"  :subid("62_1274564773.54721") :method
 .annotate 'line', 33
     $P186 = self."!PREFIX__!subrule"("VALUE=decint", "")
     $P187 = self."!PREFIX__!subrule"("VALUE=decint", "0d")
@@ -2789,7 +2789,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "dec_number"  :subid("63_1274022878.64768") :method :outer("11_1274022878.64768")
+.sub "dec_number"  :subid("63_1274564773.54721") :method :outer("11_1274564773.54721")
 .annotate 'line', 33
     .local string rx196_tgt
     .local int rx196_pos
@@ -2968,7 +2968,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__dec_number"  :subid("64_1274022878.64768") :method
+.sub "!PREFIX__dec_number"  :subid("64_1274564773.54721") :method
 .annotate 'line', 33
     new $P198, "ResizablePMCArray"
     push $P198, ""
@@ -2979,7 +2979,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "escale"  :subid("65_1274022878.64768") :method :outer("11_1274022878.64768")
+.sub "escale"  :subid("65_1274564773.54721") :method :outer("11_1274564773.54721")
 .annotate 'line', 33
     .local string rx209_tgt
     .local int rx209_pos
@@ -3056,7 +3056,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__escale"  :subid("66_1274022878.64768") :method
+.sub "!PREFIX__escale"  :subid("66_1274564773.54721") :method
 .annotate 'line', 33
     new $P211, "ResizablePMCArray"
     push $P211, "e"
@@ -3066,7 +3066,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape"  :subid("67_1274022878.64768") :method
+.sub "quote_escape"  :subid("67_1274564773.54721") :method
 .annotate 'line', 79
     $P216 = self."!protoregex"("quote_escape")
     .return ($P216)
@@ -3074,7 +3074,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape"  :subid("68_1274022878.64768") :method
+.sub "!PREFIX__quote_escape"  :subid("68_1274564773.54721") :method
 .annotate 'line', 79
     $P218 = self."!PREFIX__!protoregex"("quote_escape")
     .return ($P218)
@@ -3082,7 +3082,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<backslash>"  :subid("69_1274022878.64768") :method :outer("11_1274022878.64768")
+.sub "quote_escape:sym<backslash>"  :subid("69_1274564773.54721") :method :outer("11_1274564773.54721")
 .annotate 'line', 33
     .local string rx220_tgt
     .local int rx220_pos
@@ -3144,7 +3144,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<backslash>"  :subid("70_1274022878.64768") :method
+.sub "!PREFIX__quote_escape:sym<backslash>"  :subid("70_1274564773.54721") :method
 .annotate 'line', 33
     new $P222, "ResizablePMCArray"
     push $P222, "\\\\"
@@ -3153,7 +3153,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<stopper>"  :subid("71_1274022878.64768") :method :outer("11_1274022878.64768")
+.sub "quote_escape:sym<stopper>"  :subid("71_1274564773.54721") :method :outer("11_1274564773.54721")
 .annotate 'line', 33
     .local string rx225_tgt
     .local int rx225_pos
@@ -3222,7 +3222,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<stopper>"  :subid("72_1274022878.64768") :method
+.sub "!PREFIX__quote_escape:sym<stopper>"  :subid("72_1274564773.54721") :method
 .annotate 'line', 33
     new $P227, "ResizablePMCArray"
     push $P227, "\\"
@@ -3231,7 +3231,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<bs>"  :subid("73_1274022878.64768") :method :outer("11_1274022878.64768")
+.sub "quote_escape:sym<bs>"  :subid("73_1274564773.54721") :method :outer("11_1274564773.54721")
 .annotate 'line', 33
     .local string rx230_tgt
     .local int rx230_pos
@@ -3293,7 +3293,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<bs>"  :subid("74_1274022878.64768") :method
+.sub "!PREFIX__quote_escape:sym<bs>"  :subid("74_1274564773.54721") :method
 .annotate 'line', 33
     new $P232, "ResizablePMCArray"
     push $P232, "\\b"
@@ -3302,7 +3302,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<nl>"  :subid("75_1274022878.64768") :method :outer("11_1274022878.64768")
+.sub "quote_escape:sym<nl>"  :subid("75_1274564773.54721") :method :outer("11_1274564773.54721")
 .annotate 'line', 33
     .local string rx235_tgt
     .local int rx235_pos
@@ -3364,7 +3364,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<nl>"  :subid("76_1274022878.64768") :method
+.sub "!PREFIX__quote_escape:sym<nl>"  :subid("76_1274564773.54721") :method
 .annotate 'line', 33
     new $P237, "ResizablePMCArray"
     push $P237, "\\n"
@@ -3373,7 +3373,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<cr>"  :subid("77_1274022878.64768") :method :outer("11_1274022878.64768")
+.sub "quote_escape:sym<cr>"  :subid("77_1274564773.54721") :method :outer("11_1274564773.54721")
 .annotate 'line', 33
     .local string rx240_tgt
     .local int rx240_pos
@@ -3435,7 +3435,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<cr>"  :subid("78_1274022878.64768") :method
+.sub "!PREFIX__quote_escape:sym<cr>"  :subid("78_1274564773.54721") :method
 .annotate 'line', 33
     new $P242, "ResizablePMCArray"
     push $P242, "\\r"
@@ -3444,7 +3444,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<tab>"  :subid("79_1274022878.64768") :method :outer("11_1274022878.64768")
+.sub "quote_escape:sym<tab>"  :subid("79_1274564773.54721") :method :outer("11_1274564773.54721")
 .annotate 'line', 33
     .local string rx245_tgt
     .local int rx245_pos
@@ -3506,7 +3506,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<tab>"  :subid("80_1274022878.64768") :method
+.sub "!PREFIX__quote_escape:sym<tab>"  :subid("80_1274564773.54721") :method
 .annotate 'line', 33
     new $P247, "ResizablePMCArray"
     push $P247, "\\t"
@@ -3515,7 +3515,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<ff>"  :subid("81_1274022878.64768") :method :outer("11_1274022878.64768")
+.sub "quote_escape:sym<ff>"  :subid("81_1274564773.54721") :method :outer("11_1274564773.54721")
 .annotate 'line', 33
     .local string rx250_tgt
     .local int rx250_pos
@@ -3577,7 +3577,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<ff>"  :subid("82_1274022878.64768") :method
+.sub "!PREFIX__quote_escape:sym<ff>"  :subid("82_1274564773.54721") :method
 .annotate 'line', 33
     new $P252, "ResizablePMCArray"
     push $P252, "\\f"
@@ -3586,7 +3586,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<hex>"  :subid("83_1274022878.64768") :method :outer("11_1274022878.64768")
+.sub "quote_escape:sym<hex>"  :subid("83_1274564773.54721") :method :outer("11_1274564773.54721")
 .annotate 'line', 33
     .local string rx255_tgt
     .local int rx255_pos
@@ -3684,7 +3684,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<hex>"  :subid("84_1274022878.64768") :method
+.sub "!PREFIX__quote_escape:sym<hex>"  :subid("84_1274564773.54721") :method
 .annotate 'line', 33
     new $P257, "ResizablePMCArray"
     push $P257, unicode:"\\x"
@@ -3693,7 +3693,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<oct>"  :subid("85_1274022878.64768") :method :outer("11_1274022878.64768")
+.sub "quote_escape:sym<oct>"  :subid("85_1274564773.54721") :method :outer("11_1274564773.54721")
 .annotate 'line', 33
     .local string rx261_tgt
     .local int rx261_pos
@@ -3791,7 +3791,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<oct>"  :subid("86_1274022878.64768") :method
+.sub "!PREFIX__quote_escape:sym<oct>"  :subid("86_1274564773.54721") :method
 .annotate 'line', 33
     new $P263, "ResizablePMCArray"
     push $P263, "\\o"
@@ -3800,7 +3800,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<chr>"  :subid("87_1274022878.64768") :method :outer("11_1274022878.64768")
+.sub "quote_escape:sym<chr>"  :subid("87_1274564773.54721") :method :outer("11_1274564773.54721")
 .annotate 'line', 33
     .local string rx267_tgt
     .local int rx267_pos
@@ -3869,7 +3869,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<chr>"  :subid("88_1274022878.64768") :method
+.sub "!PREFIX__quote_escape:sym<chr>"  :subid("88_1274564773.54721") :method
 .annotate 'line', 33
     new $P269, "ResizablePMCArray"
     push $P269, "\\c"
@@ -3878,7 +3878,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<0>"  :subid("89_1274022878.64768") :method :outer("11_1274022878.64768")
+.sub "quote_escape:sym<0>"  :subid("89_1274564773.54721") :method :outer("11_1274564773.54721")
 .annotate 'line', 33
     .local string rx272_tgt
     .local int rx272_pos
@@ -3961,7 +3961,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<0>"  :subid("90_1274022878.64768") :method
+.sub "!PREFIX__quote_escape:sym<0>"  :subid("90_1274564773.54721") :method
 .annotate 'line', 33
     new $P274, "ResizablePMCArray"
     push $P274, "\\0"
@@ -3970,13 +3970,13 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<misc>"  :subid("91_1274022878.64768") :method :outer("11_1274022878.64768")
+.sub "quote_escape:sym<misc>"  :subid("91_1274564773.54721") :method :outer("11_1274564773.54721")
 .annotate 'line', 33
-    .const 'Sub' $P297 = "95_1274022878.64768" 
+    .const 'Sub' $P297 = "95_1274564773.54721" 
     capture_lex $P297
-    .const 'Sub' $P290 = "94_1274022878.64768" 
+    .const 'Sub' $P290 = "94_1274564773.54721" 
     capture_lex $P290
-    .const 'Sub' $P285 = "93_1274022878.64768" 
+    .const 'Sub' $P285 = "93_1274564773.54721" 
     capture_lex $P285
     .local string rx278_tgt
     .local int rx278_pos
@@ -4007,13 +4007,13 @@
     set_addr $I10, rxscan281_loop
     rx278_cur."!mark_push"(0, rx278_pos, $I10)
   rxscan281_done:
-.annotate 'line', 98
+.annotate 'line', 99
+  # rx pastnode subtype= negate=
     rx278_cur."!cursor_pos"(rx278_pos)
     find_lex $P282, unicode:"$\x{a2}"
     $P283 = $P282."MATCH"()
     store_lex "$/", $P283
-.annotate 'line', 99
-    .const 'Sub' $P285 = "93_1274022878.64768" 
+    .const 'Sub' $P285 = "93_1274564773.54721" 
     capture_lex $P285
     $P286 = $P285()
   # rx literal  "\\"
@@ -4039,7 +4039,7 @@
 .annotate 'line', 103
   # rx subrule $P290 subtype=capture negate=
     rx278_cur."!cursor_pos"(rx278_pos)
-    .const 'Sub' $P290 = "94_1274022878.64768" 
+    .const 'Sub' $P290 = "94_1274564773.54721" 
     capture_lex $P290
     $P10 = rx278_cur.$P290()
     unless $P10, rx278_fail
@@ -4069,11 +4069,12 @@
   rxcap_293_fail:
     goto rx278_fail
   rxcap_293_done:
+  # rx pastnode subtype= negate=
     rx278_cur."!cursor_pos"(rx278_pos)
     find_lex $P294, unicode:"$\x{a2}"
     $P295 = $P294."MATCH"()
     store_lex "$/", $P295
-    .const 'Sub' $P297 = "95_1274022878.64768" 
+    .const 'Sub' $P297 = "95_1274564773.54721" 
     capture_lex $P297
     $P307 = $P297()
   alt288_end:
@@ -4119,7 +4120,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<misc>"  :subid("92_1274022878.64768") :method
+.sub "!PREFIX__quote_escape:sym<misc>"  :subid("92_1274564773.54721") :method
 .annotate 'line', 33
     new $P280, "ResizablePMCArray"
     push $P280, ""
@@ -4128,14 +4129,14 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "_block284"  :anon :subid("93_1274022878.64768") :outer("91_1274022878.64768")
+.sub "_block284"  :anon :subid("93_1274564773.54721") :outer("91_1274564773.54721")
 .annotate 'line', 99
     .return ()
 .end
 
 
 .namespace ["HLL";"Grammar"]
-.sub "_block289"  :anon :subid("94_1274022878.64768") :method :outer("91_1274022878.64768")
+.sub "_block289"  :anon :subid("94_1274564773.54721") :method :outer("91_1274564773.54721")
 .annotate 'line', 103
     .local string rx291_tgt
     .local int rx291_pos
@@ -4190,7 +4191,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "_block296"  :anon :subid("95_1274022878.64768") :outer("91_1274022878.64768")
+.sub "_block296"  :anon :subid("95_1274564773.54721") :outer("91_1274564773.54721")
 .annotate 'line', 104
     find_lex $P298, "$/"
     $P299 = $P298."CURSOR"()
@@ -4213,9 +4214,9 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "charname"  :subid("96_1274022878.64768") :method :outer("11_1274022878.64768")
+.sub "charname"  :subid("96_1274564773.54721") :method :outer("11_1274564773.54721")
 .annotate 'line', 33
-    .const 'Sub' $P319 = "98_1274022878.64768" 
+    .const 'Sub' $P319 = "98_1274564773.54721" 
     capture_lex $P319
     .local string rx310_tgt
     .local int rx310_pos
@@ -4293,7 +4294,7 @@
 .annotate 'line', 113
   # rx subrule "before" subtype=zerowidth negate=
     rx310_cur."!cursor_pos"(rx310_pos)
-    .const 'Sub' $P319 = "98_1274022878.64768" 
+    .const 'Sub' $P319 = "98_1274564773.54721" 
     capture_lex $P319
     $P10 = rx310_cur."before"($P319)
     unless $P10, rx310_fail
@@ -4318,7 +4319,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__charname"  :subid("97_1274022878.64768") :method
+.sub "!PREFIX__charname"  :subid("97_1274564773.54721") :method
 .annotate 'line', 33
     $P312 = self."!PREFIX__!subrule"("integer", "")
     new $P313, "ResizablePMCArray"
@@ -4380,7 +4381,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "_block318"  :anon :subid("98_1274022878.64768") :method :outer("96_1274022878.64768")
+.sub "_block318"  :anon :subid("98_1274564773.54721") :method :outer("96_1274564773.54721")
 .annotate 'line', 113
     .local string rx320_tgt
     .local int rx320_pos
@@ -4440,7 +4441,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "charnames"  :subid("99_1274022878.64768") :method :outer("11_1274022878.64768")
+.sub "charnames"  :subid("99_1274564773.54721") :method :outer("11_1274564773.54721")
 .annotate 'line', 33
     .local string rx323_tgt
     .local int rx323_pos
@@ -4524,7 +4525,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__charnames"  :subid("100_1274022878.64768") :method
+.sub "!PREFIX__charnames"  :subid("100_1274564773.54721") :method
 .annotate 'line', 33
     new $P325, "ResizablePMCArray"
     push $P325, ""
@@ -4533,7 +4534,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "charspec"  :subid("101_1274022878.64768") :method :outer("11_1274022878.64768")
+.sub "charspec"  :subid("101_1274564773.54721") :method :outer("11_1274564773.54721")
 .annotate 'line', 33
     .local string rx330_tgt
     .local int rx330_pos
@@ -4663,7 +4664,7 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "!PREFIX__charspec"  :subid("102_1274022878.64768") :method
+.sub "!PREFIX__charspec"  :subid("102_1274564773.54721") :method
 .annotate 'line', 33
     $P332 = self."!PREFIX__!subrule"("", "")
     $P333 = self."!PREFIX__!subrule"("charnames", "[")
@@ -4704,18 +4705,18 @@
 
 
 .namespace ["HLL";"Grammar"]
-.sub "_block339" :load :anon :subid("103_1274022878.64768")
+.sub "_block339" :load :anon :subid("103_1274564773.54721")
 .annotate 'line', 5
-    .const 'Sub' $P341 = "11_1274022878.64768" 
+    .const 'Sub' $P341 = "11_1274564773.54721" 
     $P342 = $P341()
     .return ($P342)
 .end
 
 
 .namespace []
-.sub "_block344" :load :anon :subid("104_1274022878.64768")
+.sub "_block344" :load :anon :subid("104_1274564773.54721")
 .annotate 'line', 1
-    .const 'Sub' $P346 = "10_1274022878.64768" 
+    .const 'Sub' $P346 = "10_1274564773.54721" 
     $P347 = $P346()
     .return ($P347)
 .end
@@ -4723,7 +4724,7 @@
 ### .include 'gen/hllgrammar-actions.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1274022880.65586")
+.sub "_block11"  :anon :subid("10_1274564775.02458")
 .annotate 'line', 0
     get_hll_global $P14, ["HLL";"Actions"], "_block13" 
     capture_lex $P14
@@ -4733,15 +4734,15 @@
     $P575 = $P14()
 .annotate 'line', 1
     .return ($P575)
-    .const 'Sub' $P577 = "50_1274022880.65586" 
+    .const 'Sub' $P577 = "50_1274564775.02458" 
     .return ($P577)
 .end
 
 
 .namespace []
-.sub "" :load :init :subid("post51") :outer("10_1274022880.65586")
+.sub "" :load :init :subid("post51") :outer("10_1274564775.02458")
 .annotate 'line', 0
-    .const 'Sub' $P12 = "10_1274022880.65586" 
+    .const 'Sub' $P12 = "10_1274564775.02458" 
     .local pmc block
     set block, $P12
     $P580 = get_root_global ["parrot"], "P6metaclass"
@@ -4750,82 +4751,82 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block13"  :subid("11_1274022880.65586") :outer("10_1274022880.65586")
+.sub "_block13"  :subid("11_1274564775.02458") :outer("10_1274564775.02458")
 .annotate 'line', 3
-    .const 'Sub' $P553 = "48_1274022880.65586" 
+    .const 'Sub' $P553 = "48_1274564775.02458" 
     capture_lex $P553
-    .const 'Sub' $P528 = "46_1274022880.65586" 
+    .const 'Sub' $P528 = "46_1274564775.02458" 
     capture_lex $P528
-    .const 'Sub' $P498 = "45_1274022880.65586" 
+    .const 'Sub' $P498 = "45_1274564775.02458" 
     capture_lex $P498
-    .const 'Sub' $P479 = "44_1274022880.65586" 
+    .const 'Sub' $P479 = "44_1274564775.02458" 
     capture_lex $P479
-    .const 'Sub' $P472 = "43_1274022880.65586" 
+    .const 'Sub' $P472 = "43_1274564775.02458" 
     capture_lex $P472
-    .const 'Sub' $P462 = "42_1274022880.65586" 
+    .const 'Sub' $P462 = "42_1274564775.02458" 
     capture_lex $P462
-    .const 'Sub' $P445 = "41_1274022880.65586" 
+    .const 'Sub' $P445 = "41_1274564775.02458" 
     capture_lex $P445
-    .const 'Sub' $P428 = "40_1274022880.65586" 
+    .const 'Sub' $P428 = "40_1274564775.02458" 
     capture_lex $P428
-    .const 'Sub' $P421 = "39_1274022880.65586" 
+    .const 'Sub' $P421 = "39_1274564775.02458" 
     capture_lex $P421
-    .const 'Sub' $P414 = "38_1274022880.65586" 
+    .const 'Sub' $P414 = "38_1274564775.02458" 
     capture_lex $P414
-    .const 'Sub' $P407 = "37_1274022880.65586" 
+    .const 'Sub' $P407 = "37_1274564775.02458" 
     capture_lex $P407
-    .const 'Sub' $P400 = "36_1274022880.65586" 
+    .const 'Sub' $P400 = "36_1274564775.02458" 
     capture_lex $P400
-    .const 'Sub' $P393 = "35_1274022880.65586" 
+    .const 'Sub' $P393 = "35_1274564775.02458" 
     capture_lex $P393
-    .const 'Sub' $P383 = "34_1274022880.65586" 
+    .const 'Sub' $P383 = "34_1274564775.02458" 
     capture_lex $P383
-    .const 'Sub' $P376 = "33_1274022880.65586" 
+    .const 'Sub' $P376 = "33_1274564775.02458" 
     capture_lex $P376
-    .const 'Sub' $P360 = "32_1274022880.65586" 
+    .const 'Sub' $P360 = "32_1274564775.02458" 
     capture_lex $P360
-    .const 'Sub' $P285 = "30_1274022880.65586" 
+    .const 'Sub' $P285 = "30_1274564775.02458" 
     capture_lex $P285
-    .const 'Sub' $P222 = "27_1274022880.65586" 
+    .const 'Sub' $P222 = "27_1274564775.02458" 
     capture_lex $P222
-    .const 'Sub' $P213 = "26_1274022880.65586" 
+    .const 'Sub' $P213 = "26_1274564775.02458" 
     capture_lex $P213
-    .const 'Sub' $P204 = "25_1274022880.65586" 
+    .const 'Sub' $P204 = "25_1274564775.02458" 
     capture_lex $P204
-    .const 'Sub' $P195 = "24_1274022880.65586" 
+    .const 'Sub' $P195 = "24_1274564775.02458" 
     capture_lex $P195
-    .const 'Sub' $P186 = "23_1274022880.65586" 
+    .const 'Sub' $P186 = "23_1274564775.02458" 
     capture_lex $P186
-    .const 'Sub' $P177 = "22_1274022880.65586" 
+    .const 'Sub' $P177 = "22_1274564775.02458" 
     capture_lex $P177
-    .const 'Sub' $P167 = "21_1274022880.65586" 
+    .const 'Sub' $P167 = "21_1274564775.02458" 
     capture_lex $P167
-    .const 'Sub' $P157 = "20_1274022880.65586" 
+    .const 'Sub' $P157 = "20_1274564775.02458" 
     capture_lex $P157
-    .const 'Sub' $P149 = "19_1274022880.65586" 
+    .const 'Sub' $P149 = "19_1274564775.02458" 
     capture_lex $P149
-    .const 'Sub' $P139 = "18_1274022880.65586" 
+    .const 'Sub' $P139 = "18_1274564775.02458" 
     capture_lex $P139
-    .const 'Sub' $P129 = "17_1274022880.65586" 
+    .const 'Sub' $P129 = "17_1274564775.02458" 
     capture_lex $P129
-    .const 'Sub' $P28 = "14_1274022880.65586" 
+    .const 'Sub' $P28 = "14_1274564775.02458" 
     capture_lex $P28
-    .const 'Sub' $P22 = "13_1274022880.65586" 
+    .const 'Sub' $P22 = "13_1274564775.02458" 
     capture_lex $P22
-    .const 'Sub' $P15 = "12_1274022880.65586" 
+    .const 'Sub' $P15 = "12_1274564775.02458" 
     capture_lex $P15
 .annotate 'line', 197
-    .const 'Sub' $P553 = "48_1274022880.65586" 
+    .const 'Sub' $P553 = "48_1274564775.02458" 
     newclosure $P570, $P553
 .annotate 'line', 3
     .return ($P570)
-    .const 'Sub' $P572 = "49_1274022880.65586" 
+    .const 'Sub' $P572 = "49_1274564775.02458" 
     .return ($P572)
 .end
 
 
 .namespace ["HLL";"Actions"]
-.sub "string_to_int"  :subid("12_1274022880.65586") :outer("11_1274022880.65586")
+.sub "string_to_int"  :subid("12_1274564775.02458") :outer("11_1274564775.02458")
     .param pmc param_18
     .param pmc param_19
 .annotate 'line', 3
@@ -4878,7 +4879,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "ints_to_string"  :subid("13_1274022880.65586") :outer("11_1274022880.65586")
+.sub "ints_to_string"  :subid("13_1274564775.02458") :outer("11_1274564775.02458")
     .param pmc param_25
 .annotate 'line', 37
     new $P24, 'ExceptionHandler'
@@ -4919,14 +4920,14 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "EXPR"  :subid("14_1274022880.65586") :method :outer("11_1274022880.65586")
+.sub "EXPR"  :subid("14_1274564775.02458") :method :outer("11_1274564775.02458")
     .param pmc param_31
     .param pmc param_32 :optional
     .param int has_param_32 :opt_flag
 .annotate 'line', 62
-    .const 'Sub' $P111 = "16_1274022880.65586" 
+    .const 'Sub' $P111 = "16_1274564775.02458" 
     capture_lex $P111
-    .const 'Sub' $P78 = "15_1274022880.65586" 
+    .const 'Sub' $P78 = "15_1274564775.02458" 
     capture_lex $P78
     new $P30, 'ExceptionHandler'
     set_addr $P30, control_29
@@ -5061,7 +5062,7 @@
     find_lex $P75, "$past"
     $P76 = $P75."name"()
     if $P76, unless_74_end
-    .const 'Sub' $P78 = "15_1274022880.65586" 
+    .const 'Sub' $P78 = "15_1274564775.02458" 
     capture_lex $P78
     $P78()
   unless_74_end:
@@ -5085,7 +5086,7 @@
     unless $P105, loop122_done
     shift $P109, $P105
   loop122_redo:
-    .const 'Sub' $P111 = "16_1274022880.65586" 
+    .const 'Sub' $P111 = "16_1274564775.02458" 
     capture_lex $P111
     $P111($P109)
   loop122_next:
@@ -5130,7 +5131,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block77"  :anon :subid("15_1274022880.65586") :outer("14_1274022880.65586")
+.sub "_block77"  :anon :subid("15_1274564775.02458") :outer("14_1274564775.02458")
 .annotate 'line', 71
     new $P79, "Undef"
     .lex "$name", $P79
@@ -5180,7 +5181,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block110"  :anon :subid("16_1274022880.65586") :outer("14_1274022880.65586")
+.sub "_block110"  :anon :subid("16_1274564775.02458") :outer("14_1274564775.02458")
     .param pmc param_112
 .annotate 'line', 82
     .lex "$_", param_112
@@ -5203,7 +5204,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "term:sym<circumfix>"  :subid("17_1274022880.65586") :method :outer("11_1274022880.65586")
+.sub "term:sym<circumfix>"  :subid("17_1274564775.02458") :method :outer("11_1274564775.02458")
     .param pmc param_132
 .annotate 'line', 87
     new $P131, 'ExceptionHandler'
@@ -5233,7 +5234,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "termish"  :subid("18_1274022880.65586") :method :outer("11_1274022880.65586")
+.sub "termish"  :subid("18_1274564775.02458") :method :outer("11_1274564775.02458")
     .param pmc param_142
 .annotate 'line', 89
     new $P141, 'ExceptionHandler'
@@ -5263,7 +5264,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "nullterm"  :subid("19_1274022880.65586") :method :outer("11_1274022880.65586")
+.sub "nullterm"  :subid("19_1274564775.02458") :method :outer("11_1274564775.02458")
     .param pmc param_152
 .annotate 'line', 90
     new $P151, 'ExceptionHandler'
@@ -5285,7 +5286,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "nullterm_alt"  :subid("20_1274022880.65586") :method :outer("11_1274022880.65586")
+.sub "nullterm_alt"  :subid("20_1274564775.02458") :method :outer("11_1274564775.02458")
     .param pmc param_160
 .annotate 'line', 91
     new $P159, 'ExceptionHandler'
@@ -5315,7 +5316,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "integer"  :subid("21_1274022880.65586") :method :outer("11_1274022880.65586")
+.sub "integer"  :subid("21_1274564775.02458") :method :outer("11_1274564775.02458")
     .param pmc param_170
 .annotate 'line', 93
     new $P169, 'ExceptionHandler'
@@ -5345,7 +5346,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "dec_number"  :subid("22_1274022880.65586") :method :outer("11_1274022880.65586")
+.sub "dec_number"  :subid("22_1274564775.02458") :method :outer("11_1274564775.02458")
     .param pmc param_180
 .annotate 'line', 95
     new $P179, 'ExceptionHandler'
@@ -5368,7 +5369,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "decint"  :subid("23_1274022880.65586") :method :outer("11_1274022880.65586")
+.sub "decint"  :subid("23_1274564775.02458") :method :outer("11_1274564775.02458")
     .param pmc param_189
 .annotate 'line', 97
     new $P188, 'ExceptionHandler'
@@ -5391,7 +5392,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "hexint"  :subid("24_1274022880.65586") :method :outer("11_1274022880.65586")
+.sub "hexint"  :subid("24_1274564775.02458") :method :outer("11_1274564775.02458")
     .param pmc param_198
 .annotate 'line', 98
     new $P197, 'ExceptionHandler'
@@ -5414,7 +5415,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "octint"  :subid("25_1274022880.65586") :method :outer("11_1274022880.65586")
+.sub "octint"  :subid("25_1274564775.02458") :method :outer("11_1274564775.02458")
     .param pmc param_207
 .annotate 'line', 99
     new $P206, 'ExceptionHandler'
@@ -5437,7 +5438,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "binint"  :subid("26_1274022880.65586") :method :outer("11_1274022880.65586")
+.sub "binint"  :subid("26_1274564775.02458") :method :outer("11_1274564775.02458")
     .param pmc param_216
 .annotate 'line', 100
     new $P215, 'ExceptionHandler'
@@ -5460,10 +5461,10 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "quote_EXPR"  :subid("27_1274022880.65586") :method :outer("11_1274022880.65586")
+.sub "quote_EXPR"  :subid("27_1274564775.02458") :method :outer("11_1274564775.02458")
     .param pmc param_225
 .annotate 'line', 102
-    .const 'Sub' $P241 = "28_1274022880.65586" 
+    .const 'Sub' $P241 = "28_1274564775.02458" 
     capture_lex $P241
     new $P224, 'ExceptionHandler'
     set_addr $P224, control_223
@@ -5495,7 +5496,7 @@
     $P237 = $P235."ACCEPTS"($P236)
     if $P237, if_234
 .annotate 'line', 108
-    .const 'Sub' $P241 = "28_1274022880.65586" 
+    .const 'Sub' $P241 = "28_1274564775.02458" 
     capture_lex $P241
     $P241()
     goto if_234_end
@@ -5534,9 +5535,9 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block240"  :anon :subid("28_1274022880.65586") :outer("27_1274022880.65586")
+.sub "_block240"  :anon :subid("28_1274564775.02458") :outer("27_1274564775.02458")
 .annotate 'line', 108
-    .const 'Sub' $P260 = "29_1274022880.65586" 
+    .const 'Sub' $P260 = "29_1274564775.02458" 
     capture_lex $P260
 .annotate 'line', 109
     $P242 = root_new ['parrot';'ResizablePMCArray']
@@ -5587,7 +5588,7 @@
     unless $P255, loop265_done
     shift $P258, $P255
   loop265_redo:
-    .const 'Sub' $P260 = "29_1274022880.65586" 
+    .const 'Sub' $P260 = "29_1274564775.02458" 
     capture_lex $P260
     $P260($P258)
   loop265_next:
@@ -5610,7 +5611,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block259"  :anon :subid("29_1274022880.65586") :outer("28_1274022880.65586")
+.sub "_block259"  :anon :subid("29_1274564775.02458") :outer("28_1274564775.02458")
     .param pmc param_261
 .annotate 'line', 112
     .lex "$_", param_261
@@ -5622,10 +5623,10 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "quote_delimited"  :subid("30_1274022880.65586") :method :outer("11_1274022880.65586")
+.sub "quote_delimited"  :subid("30_1274564775.02458") :method :outer("11_1274564775.02458")
     .param pmc param_288
 .annotate 'line', 125
-    .const 'Sub' $P300 = "31_1274022880.65586" 
+    .const 'Sub' $P300 = "31_1274564775.02458" 
     capture_lex $P300
     new $P287, 'ExceptionHandler'
     set_addr $P287, control_286
@@ -5668,7 +5669,7 @@
     unless $P294, loop332_done
     shift $P298, $P294
   loop332_redo:
-    .const 'Sub' $P300 = "31_1274022880.65586" 
+    .const 'Sub' $P300 = "31_1274564775.02458" 
     capture_lex $P300
     $P300($P298)
   loop332_next:
@@ -5746,7 +5747,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block299"  :anon :subid("31_1274022880.65586") :outer("30_1274022880.65586")
+.sub "_block299"  :anon :subid("31_1274564775.02458") :outer("30_1274564775.02458")
     .param pmc param_302
 .annotate 'line', 129
     new $P301, "Undef"
@@ -5815,7 +5816,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "quote_atom"  :subid("32_1274022880.65586") :method :outer("11_1274022880.65586")
+.sub "quote_atom"  :subid("32_1274564775.02458") :method :outer("11_1274564775.02458")
     .param pmc param_363
 .annotate 'line', 150
     new $P362, 'ExceptionHandler'
@@ -5864,7 +5865,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<backslash>"  :subid("33_1274022880.65586") :method :outer("11_1274022880.65586")
+.sub "quote_escape:sym<backslash>"  :subid("33_1274564775.02458") :method :outer("11_1274564775.02458")
     .param pmc param_379
 .annotate 'line', 154
     new $P378, 'ExceptionHandler'
@@ -5885,7 +5886,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<stopper>"  :subid("34_1274022880.65586") :method :outer("11_1274022880.65586")
+.sub "quote_escape:sym<stopper>"  :subid("34_1274564775.02458") :method :outer("11_1274564775.02458")
     .param pmc param_386
 .annotate 'line', 155
     new $P385, 'ExceptionHandler'
@@ -5915,7 +5916,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<bs>"  :subid("35_1274022880.65586") :method :outer("11_1274022880.65586")
+.sub "quote_escape:sym<bs>"  :subid("35_1274564775.02458") :method :outer("11_1274564775.02458")
     .param pmc param_396
 .annotate 'line', 157
     new $P395, 'ExceptionHandler'
@@ -5936,7 +5937,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<nl>"  :subid("36_1274022880.65586") :method :outer("11_1274022880.65586")
+.sub "quote_escape:sym<nl>"  :subid("36_1274564775.02458") :method :outer("11_1274564775.02458")
     .param pmc param_403
 .annotate 'line', 158
     new $P402, 'ExceptionHandler'
@@ -5957,7 +5958,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<cr>"  :subid("37_1274022880.65586") :method :outer("11_1274022880.65586")
+.sub "quote_escape:sym<cr>"  :subid("37_1274564775.02458") :method :outer("11_1274564775.02458")
     .param pmc param_410
 .annotate 'line', 159
     new $P409, 'ExceptionHandler'
@@ -5978,7 +5979,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<tab>"  :subid("38_1274022880.65586") :method :outer("11_1274022880.65586")
+.sub "quote_escape:sym<tab>"  :subid("38_1274564775.02458") :method :outer("11_1274564775.02458")
     .param pmc param_417
 .annotate 'line', 160
     new $P416, 'ExceptionHandler'
@@ -5999,7 +6000,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<ff>"  :subid("39_1274022880.65586") :method :outer("11_1274022880.65586")
+.sub "quote_escape:sym<ff>"  :subid("39_1274564775.02458") :method :outer("11_1274564775.02458")
     .param pmc param_424
 .annotate 'line', 161
     new $P423, 'ExceptionHandler'
@@ -6020,7 +6021,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<hex>"  :subid("40_1274022880.65586") :method :outer("11_1274022880.65586")
+.sub "quote_escape:sym<hex>"  :subid("40_1274564775.02458") :method :outer("11_1274564775.02458")
     .param pmc param_431
 .annotate 'line', 163
     new $P430, 'ExceptionHandler'
@@ -6078,7 +6079,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<oct>"  :subid("41_1274022880.65586") :method :outer("11_1274022880.65586")
+.sub "quote_escape:sym<oct>"  :subid("41_1274564775.02458") :method :outer("11_1274564775.02458")
     .param pmc param_448
 .annotate 'line', 167
     new $P447, 'ExceptionHandler'
@@ -6136,7 +6137,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<chr>"  :subid("42_1274022880.65586") :method :outer("11_1274022880.65586")
+.sub "quote_escape:sym<chr>"  :subid("42_1274564775.02458") :method :outer("11_1274564775.02458")
     .param pmc param_465
 .annotate 'line', 171
     new $P464, 'ExceptionHandler'
@@ -6168,7 +6169,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<0>"  :subid("43_1274022880.65586") :method :outer("11_1274022880.65586")
+.sub "quote_escape:sym<0>"  :subid("43_1274564775.02458") :method :outer("11_1274564775.02458")
     .param pmc param_475
 .annotate 'line', 175
     new $P474, 'ExceptionHandler'
@@ -6191,7 +6192,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<misc>"  :subid("44_1274022880.65586") :method :outer("11_1274022880.65586")
+.sub "quote_escape:sym<misc>"  :subid("44_1274564775.02458") :method :outer("11_1274564775.02458")
     .param pmc param_482
 .annotate 'line', 179
     new $P481, 'ExceptionHandler'
@@ -6249,7 +6250,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "charname"  :subid("45_1274022880.65586") :method :outer("11_1274022880.65586")
+.sub "charname"  :subid("45_1274564775.02458") :method :outer("11_1274564775.02458")
     .param pmc param_501
 .annotate 'line', 183
     new $P500, 'ExceptionHandler'
@@ -6322,10 +6323,10 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "charnames"  :subid("46_1274022880.65586") :method :outer("11_1274022880.65586")
+.sub "charnames"  :subid("46_1274564775.02458") :method :outer("11_1274564775.02458")
     .param pmc param_531
 .annotate 'line', 191
-    .const 'Sub' $P540 = "47_1274022880.65586" 
+    .const 'Sub' $P540 = "47_1274564775.02458" 
     capture_lex $P540
     new $P530, 'ExceptionHandler'
     set_addr $P530, control_529
@@ -6359,7 +6360,7 @@
     unless $P534, loop546_done
     shift $P538, $P534
   loop546_redo:
-    .const 'Sub' $P540 = "47_1274022880.65586" 
+    .const 'Sub' $P540 = "47_1274564775.02458" 
     capture_lex $P540
     $P540($P538)
   loop546_next:
@@ -6388,7 +6389,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block539"  :anon :subid("47_1274022880.65586") :outer("46_1274022880.65586")
+.sub "_block539"  :anon :subid("47_1274564775.02458") :outer("46_1274564775.02458")
     .param pmc param_541
 .annotate 'line', 193
     .lex "$_", param_541
@@ -6402,7 +6403,7 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "charspec"  :subid("48_1274022880.65586") :method :outer("11_1274022880.65586")
+.sub "charspec"  :subid("48_1274564775.02458") :method :outer("11_1274564775.02458")
     .param pmc param_556
 .annotate 'line', 197
     new $P555, 'ExceptionHandler'
@@ -6452,18 +6453,18 @@
 
 
 .namespace ["HLL";"Actions"]
-.sub "_block571" :load :anon :subid("49_1274022880.65586")
+.sub "_block571" :load :anon :subid("49_1274564775.02458")
 .annotate 'line', 3
-    .const 'Sub' $P573 = "11_1274022880.65586" 
+    .const 'Sub' $P573 = "11_1274564775.02458" 
     $P574 = $P573()
     .return ($P574)
 .end
 
 
 .namespace []
-.sub "_block576" :load :anon :subid("50_1274022880.65586")
+.sub "_block576" :load :anon :subid("50_1274564775.02458")
 .annotate 'line', 1
-    .const 'Sub' $P578 = "10_1274022880.65586" 
+    .const 'Sub' $P578 = "10_1274564775.02458" 
     $P579 = $P578()
     .return ($P579)
 .end
@@ -6471,80 +6472,86 @@
 ### .include 'gen/hllcompiler.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1274022881.57388")
+.sub "_block11"  :anon :subid("10_1274564776.02218")
 .annotate 'line', 0
     get_hll_global $P14, ["HLL";"Compiler"], "_block13" 
     capture_lex $P14
 .annotate 'line', 6
     get_hll_global $P14, ["HLL";"Compiler"], "_block13" 
     capture_lex $P14
-    $P285 = $P14()
+    $P454 = $P14()
 .annotate 'line', 1
-    .return ($P285)
-    .const 'Sub' $P287 = "25_1274022881.57388" 
-    .return ($P287)
+    .return ($P454)
+    .const 'Sub' $P456 = "33_1274564776.02218" 
+    .return ($P456)
 .end
 
 
 .namespace []
-.sub "" :load :init :subid("post26") :outer("10_1274022881.57388")
+.sub "" :load :init :subid("post34") :outer("10_1274564776.02218")
 .annotate 'line', 0
-    .const 'Sub' $P12 = "10_1274022881.57388" 
+    .const 'Sub' $P12 = "10_1274564776.02218" 
     .local pmc block
     set block, $P12
 .annotate 'line', 2
     load_bytecode "PCT/HLLCompiler.pbc"
 .annotate 'line', 1
-    $P290 = get_root_global ["parrot"], "P6metaclass"
-    new $P291, "ResizablePMCArray"
-    push $P291, "$!language"
-    $P290."new_class"("HLL::Compiler", "PCT::HLLCompiler" :named("parent"), $P291 :named("attr"))
+    $P459 = get_root_global ["parrot"], "P6metaclass"
+    new $P460, "ResizablePMCArray"
+    push $P460, "$!language"
+    $P459."new_class"("HLL::Compiler", "PCT::HLLCompiler" :named("parent"), $P460 :named("attr"))
 .end
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block13"  :subid("11_1274022881.57388") :outer("10_1274022881.57388")
+.sub "_block13"  :subid("11_1274564776.02218") :outer("10_1274564776.02218")
 .annotate 'line', 6
-    .const 'Sub' $P188 = "20_1274022881.57388" 
+    .const 'Sub' $P409 = "31_1274564776.02218" 
+    capture_lex $P409
+    .const 'Sub' $P298 = "26_1274564776.02218" 
+    capture_lex $P298
+    .const 'Sub' $P283 = "25_1274564776.02218" 
+    capture_lex $P283
+    .const 'Sub' $P188 = "20_1274564776.02218" 
     capture_lex $P188
-    .const 'Sub' $P153 = "18_1274022881.57388" 
+    .const 'Sub' $P153 = "18_1274564776.02218" 
     capture_lex $P153
-    .const 'Sub' $P138 = "17_1274022881.57388" 
+    .const 'Sub' $P138 = "17_1274564776.02218" 
     capture_lex $P138
-    .const 'Sub' $P122 = "16_1274022881.57388" 
+    .const 'Sub' $P122 = "16_1274564776.02218" 
     capture_lex $P122
-    .const 'Sub' $P33 = "13_1274022881.57388" 
+    .const 'Sub' $P33 = "13_1274564776.02218" 
     capture_lex $P33
-    .const 'Sub' $P15 = "12_1274022881.57388" 
+    .const 'Sub' $P15 = "12_1274564776.02218" 
     capture_lex $P15
 .annotate 'line', 14
-    .const 'Sub' $P15 = "12_1274022881.57388" 
+    .const 'Sub' $P15 = "12_1274564776.02218" 
     newclosure $P31, $P15
     .lex "value_type", $P31
 .annotate 'line', 10
     find_lex $P32, "value_type"
-.annotate 'line', 69
-    .const 'Sub' $P188 = "20_1274022881.57388" 
-    newclosure $P283, $P188
+.annotate 'line', 135
+    .const 'Sub' $P409 = "31_1274564776.02218" 
+    newclosure $P452, $P409
 .annotate 'line', 6
-    .return ($P283)
+    .return ($P452)
 .end
 
 
 .namespace ["HLL";"Compiler"]
-.sub "" :load :init :subid("post27") :outer("11_1274022881.57388")
+.sub "" :load :init :subid("post35") :outer("11_1274564776.02218")
 .annotate 'line', 6
     get_hll_global $P14, ["HLL";"Compiler"], "_block13" 
     .local pmc block
     set block, $P14
 .annotate 'line', 11
-    get_hll_global $P284, ["HLL"], "Compiler"
-    $P284."language"("parrot")
+    get_hll_global $P453, ["HLL"], "Compiler"
+    $P453."language"("parrot")
 .end
 
 
 .namespace ["HLL";"Compiler"]
-.sub "value_type"  :subid("12_1274022881.57388") :outer("11_1274022881.57388")
+.sub "value_type"  :subid("12_1274564776.02218") :outer("11_1274564776.02218")
     .param pmc param_18
 .annotate 'line', 14
     new $P17, 'ExceptionHandler'
@@ -6588,15 +6595,15 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "get_exports"  :subid("13_1274022881.57388") :method :outer("11_1274022881.57388")
+.sub "get_exports"  :subid("13_1274564776.02218") :method :outer("11_1274564776.02218")
     .param pmc param_36
     .param pmc param_39 :slurpy
     .param pmc param_37 :optional :named("tagset")
     .param int has_param_37 :opt_flag
 .annotate 'line', 20
-    .const 'Sub' $P105 = "15_1274022881.57388" 
+    .const 'Sub' $P105 = "15_1274564776.02218" 
     capture_lex $P105
-    .const 'Sub' $P84 = "14_1274022881.57388" 
+    .const 'Sub' $P84 = "14_1274564776.02218" 
     capture_lex $P84
     new $P35, 'ExceptionHandler'
     set_addr $P35, control_34
@@ -6604,10 +6611,10 @@
     push_eh $P35
     .lex "self", self
     .lex "$module", param_36
-    if has_param_37, optparam_28
+    if has_param_37, optparam_36
     new $P38, "Undef"
     set param_37, $P38
-  optparam_28:
+  optparam_36:
     .lex "$tagset", param_37
     .lex "@symbols", param_39
 .annotate 'line', 27
@@ -6653,17 +6660,17 @@
     find_lex $P60, "$tagset"
     set $S61, $P60
     find_lex $P62, "$module"
-    unless_null $P62, vivify_29
+    unless_null $P62, vivify_37
     $P62 = root_new ['parrot';'Hash']
-  vivify_29:
+  vivify_37:
     set $P63, $P62["EXPORT"]
-    unless_null $P63, vivify_30
+    unless_null $P63, vivify_38
     $P63 = root_new ['parrot';'Hash']
-  vivify_30:
+  vivify_38:
     set $P64, $P63[$S61]
-    unless_null $P64, vivify_31
+    unless_null $P64, vivify_39
     new $P64, "Undef"
-  vivify_31:
+  vivify_39:
     store_lex "%source", $P64
 .annotate 'line', 29
     find_lex $P66, "%source"
@@ -6692,7 +6699,7 @@
 .annotate 'line', 39
     find_lex $P101, "%source"
     defined $I102, $P101
-    unless $I102, for_undef_32
+    unless $I102, for_undef_40
     iter $P100, $P101
     new $P118, 'ExceptionHandler'
     set_addr $P118, loop117_handler
@@ -6702,7 +6709,7 @@
     unless $P100, loop117_done
     shift $P103, $P100
   loop117_redo:
-    .const 'Sub' $P105 = "15_1274022881.57388" 
+    .const 'Sub' $P105 = "15_1274564776.02218" 
     capture_lex $P105
     $P105($P103)
   loop117_next:
@@ -6715,14 +6722,14 @@
     eq $P119, 66, loop117_redo
   loop117_done:
     pop_eh 
-  for_undef_32:
+  for_undef_40:
 .annotate 'line', 38
     goto if_77_end
   if_77:
 .annotate 'line', 33
     find_lex $P80, "@symbols"
     defined $I81, $P80
-    unless $I81, for_undef_35
+    unless $I81, for_undef_43
     iter $P79, $P80
     new $P98, 'ExceptionHandler'
     set_addr $P98, loop97_handler
@@ -6732,7 +6739,7 @@
     unless $P79, loop97_done
     shift $P82, $P79
   loop97_redo:
-    .const 'Sub' $P84 = "14_1274022881.57388" 
+    .const 'Sub' $P84 = "14_1274564776.02218" 
     capture_lex $P84
     $P84($P82)
   loop97_next:
@@ -6745,7 +6752,7 @@
     eq $P99, 66, loop97_redo
   loop97_done:
     pop_eh 
-  for_undef_35:
+  for_undef_43:
   if_77_end:
 .annotate 'line', 32
     find_lex $P120, "%exports"
@@ -6760,7 +6767,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block104"  :anon :subid("15_1274022881.57388") :outer("13_1274022881.57388")
+.sub "_block104"  :anon :subid("15_1274564776.02218") :outer("13_1274564776.02218")
     .param pmc param_107
 .annotate 'line', 40
     new $P106, "Undef"
@@ -6776,15 +6783,15 @@
     find_lex $P113, "$value"
     $P114 = "value_type"($P113)
     find_lex $P115, "%exports"
-    unless_null $P115, vivify_33
+    unless_null $P115, vivify_41
     $P115 = root_new ['parrot';'Hash']
     store_lex "%exports", $P115
-  vivify_33:
+  vivify_41:
     set $P116, $P115[$P114]
-    unless_null $P116, vivify_34
+    unless_null $P116, vivify_42
     $P116 = root_new ['parrot';'Hash']
     set $P115[$P114], $P116
-  vivify_34:
+  vivify_42:
     set $P116[$P112], $P110
 .annotate 'line', 39
     .return ($P110)
@@ -6792,7 +6799,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block83"  :anon :subid("14_1274022881.57388") :outer("13_1274022881.57388")
+.sub "_block83"  :anon :subid("14_1274564776.02218") :outer("13_1274564776.02218")
     .param pmc param_86
 .annotate 'line', 34
     new $P85, "Undef"
@@ -6801,13 +6808,13 @@
     find_lex $P87, "$_"
     set $S88, $P87
     find_lex $P89, "%source"
-    unless_null $P89, vivify_36
+    unless_null $P89, vivify_44
     $P89 = root_new ['parrot';'Hash']
-  vivify_36:
+  vivify_44:
     set $P90, $P89[$S88]
-    unless_null $P90, vivify_37
+    unless_null $P90, vivify_45
     new $P90, "Undef"
-  vivify_37:
+  vivify_45:
     store_lex "$value", $P90
 .annotate 'line', 35
     find_lex $P91, "$value"
@@ -6815,15 +6822,15 @@
     find_lex $P93, "$value"
     $P94 = "value_type"($P93)
     find_lex $P95, "%exports"
-    unless_null $P95, vivify_38
+    unless_null $P95, vivify_46
     $P95 = root_new ['parrot';'Hash']
     store_lex "%exports", $P95
-  vivify_38:
+  vivify_46:
     set $P96, $P95[$P94]
-    unless_null $P96, vivify_39
+    unless_null $P96, vivify_47
     $P96 = root_new ['parrot';'Hash']
     set $P95[$P94], $P96
-  vivify_39:
+  vivify_47:
     set $P96[$P92], $P91
 .annotate 'line', 33
     .return ($P91)
@@ -6831,7 +6838,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "get_module"  :subid("16_1274022881.57388") :method :outer("11_1274022881.57388")
+.sub "get_module"  :subid("16_1274564776.02218") :method :outer("11_1274564776.02218")
     .param pmc param_125
 .annotate 'line', 47
     new $P124, 'ExceptionHandler'
@@ -6851,9 +6858,9 @@
     find_lex $P130, "@name"
     find_lex $P131, "self"
     getattribute $P132, $P131, "$!language"
-    unless_null $P132, vivify_40
+    unless_null $P132, vivify_48
     new $P132, "Undef"
-  vivify_40:
+  vivify_48:
     set $S133, $P132
     downcase $S134, $S133
     $P130."unshift"($S134)
@@ -6871,7 +6878,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "language"  :subid("17_1274022881.57388") :method :outer("11_1274022881.57388")
+.sub "language"  :subid("17_1274564776.02218") :method :outer("11_1274564776.02218")
     .param pmc param_141 :optional
     .param int has_param_141 :opt_flag
 .annotate 'line', 53
@@ -6880,10 +6887,10 @@
     $P140."handle_types"(57)
     push_eh $P140
     .lex "self", self
-    if has_param_141, optparam_41
+    if has_param_141, optparam_49
     new $P142, "Undef"
     set param_141, $P142
-  optparam_41:
+  optparam_49:
     .lex "$name", param_141
 .annotate 'line', 54
     find_lex $P144, "$name"
@@ -6901,9 +6908,9 @@
 .annotate 'line', 54
     find_lex $P150, "self"
     getattribute $P151, $P150, "$!language"
-    unless_null $P151, vivify_42
+    unless_null $P151, vivify_50
     new $P151, "Undef"
-  vivify_42:
+  vivify_50:
 .annotate 'line', 53
     .return ($P151)
   control_139:
@@ -6915,10 +6922,10 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "load_module"  :subid("18_1274022881.57388") :method :outer("11_1274022881.57388")
+.sub "load_module"  :subid("18_1274564776.02218") :method :outer("11_1274564776.02218")
     .param pmc param_156
 .annotate 'line', 61
-    .const 'Sub' $P166 = "19_1274022881.57388" 
+    .const 'Sub' $P166 = "19_1274564776.02218" 
     capture_lex $P166
     new $P155, 'ExceptionHandler'
     set_addr $P155, control_154
@@ -6945,7 +6952,7 @@
     assign $P164, 0
     store_lex "$loaded", $P164
 .annotate 'line', 64
-    .const 'Sub' $P166 = "19_1274022881.57388" 
+    .const 'Sub' $P166 = "19_1274564776.02218" 
     capture_lex $P166
     $P166()
 .annotate 'line', 65
@@ -6974,7 +6981,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block165"  :anon :subid("19_1274022881.57388") :outer("18_1274022881.57388")
+.sub "_block165"  :anon :subid("19_1274564776.02218") :outer("18_1274564776.02218")
 .annotate 'line', 64
     new $P173, 'ExceptionHandler'
     set_addr $P173, control_172
@@ -7007,11 +7014,11 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "import"  :subid("20_1274022881.57388") :method :outer("11_1274022881.57388")
+.sub "import"  :subid("20_1274564776.02218") :method :outer("11_1274564776.02218")
     .param pmc param_191
     .param pmc param_192
 .annotate 'line', 69
-    .const 'Sub' $P198 = "21_1274022881.57388" 
+    .const 'Sub' $P198 = "21_1274564776.02218" 
     capture_lex $P198
     new $P190, 'ExceptionHandler'
     set_addr $P190, control_189
@@ -7023,7 +7030,7 @@
 .annotate 'line', 70
     find_lex $P194, "%exports"
     defined $I195, $P194
-    unless $I195, for_undef_43
+    unless $I195, for_undef_51
     iter $P193, $P194
     new $P280, 'ExceptionHandler'
     set_addr $P280, loop279_handler
@@ -7033,7 +7040,7 @@
     unless $P193, loop279_done
     shift $P196, $P193
   loop279_redo:
-    .const 'Sub' $P198 = "21_1274022881.57388" 
+    .const 'Sub' $P198 = "21_1274564776.02218" 
     capture_lex $P198
     $P198($P196)
   loop279_next:
@@ -7046,7 +7053,7 @@
     eq $P281, 66, loop279_redo
   loop279_done:
     pop_eh 
-  for_undef_43:
+  for_undef_51:
 .annotate 'line', 69
     .return ($P193)
   control_189:
@@ -7058,14 +7065,14 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block197"  :anon :subid("21_1274022881.57388") :outer("20_1274022881.57388")
+.sub "_block197"  :anon :subid("21_1274564776.02218") :outer("20_1274564776.02218")
     .param pmc param_201
 .annotate 'line', 70
-    .const 'Sub' $P268 = "24_1274022881.57388" 
+    .const 'Sub' $P268 = "24_1274564776.02218" 
     capture_lex $P268
-    .const 'Sub' $P248 = "23_1274022881.57388" 
+    .const 'Sub' $P248 = "23_1274564776.02218" 
     capture_lex $P248
-    .const 'Sub' $P219 = "22_1274022881.57388" 
+    .const 'Sub' $P219 = "22_1274564776.02218" 
     capture_lex $P219
 .annotate 'line', 71
     new $P199, "Undef"
@@ -7103,7 +7110,7 @@
 .annotate 'line', 80
     find_lex $P264, "%items"
     defined $I265, $P264
-    unless $I265, for_undef_44
+    unless $I265, for_undef_52
     iter $P263, $P264
     new $P277, 'ExceptionHandler'
     set_addr $P277, loop276_handler
@@ -7113,7 +7120,7 @@
     unless $P263, loop276_done
     shift $P266, $P263
   loop276_redo:
-    .const 'Sub' $P268 = "24_1274022881.57388" 
+    .const 'Sub' $P268 = "24_1274564776.02218" 
     capture_lex $P268
     $P268($P266)
   loop276_next:
@@ -7126,7 +7133,7 @@
     eq $P278, 66, loop276_redo
   loop276_done:
     pop_eh 
-  for_undef_44:
+  for_undef_52:
 .annotate 'line', 79
     set $P235, $P263
 .annotate 'line', 76
@@ -7135,7 +7142,7 @@
 .annotate 'line', 77
     find_lex $P244, "%items"
     defined $I245, $P244
-    unless $I245, for_undef_46
+    unless $I245, for_undef_54
     iter $P243, $P244
     new $P261, 'ExceptionHandler'
     set_addr $P261, loop260_handler
@@ -7145,7 +7152,7 @@
     unless $P243, loop260_done
     shift $P246, $P243
   loop260_redo:
-    .const 'Sub' $P248 = "23_1274022881.57388" 
+    .const 'Sub' $P248 = "23_1274564776.02218" 
     capture_lex $P248
     $P248($P246)
   loop260_next:
@@ -7158,7 +7165,7 @@
     eq $P262, 66, loop260_redo
   loop260_done:
     pop_eh 
-  for_undef_46:
+  for_undef_54:
 .annotate 'line', 76
     set $P235, $P243
   if_236_end:
@@ -7169,7 +7176,7 @@
 .annotate 'line', 74
     find_lex $P215, "%items"
     defined $I216, $P215
-    unless $I216, for_undef_47
+    unless $I216, for_undef_55
     iter $P214, $P215
     new $P233, 'ExceptionHandler'
     set_addr $P233, loop232_handler
@@ -7179,7 +7186,7 @@
     unless $P214, loop232_done
     shift $P217, $P214
   loop232_redo:
-    .const 'Sub' $P219 = "22_1274022881.57388" 
+    .const 'Sub' $P219 = "22_1274564776.02218" 
     capture_lex $P219
     $P219($P217)
   loop232_next:
@@ -7192,7 +7199,7 @@
     eq $P234, 66, loop232_redo
   loop232_done:
     pop_eh 
-  for_undef_47:
+  for_undef_55:
 .annotate 'line', 73
     set $P206, $P214
   if_207_end:
@@ -7202,7 +7209,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block267"  :anon :subid("24_1274022881.57388") :outer("21_1274022881.57388")
+.sub "_block267"  :anon :subid("24_1274564776.02218") :outer("21_1274564776.02218")
     .param pmc param_269
 .annotate 'line', 80
     .lex "$_", param_269
@@ -7212,17 +7219,17 @@
     $P273 = $P272."key"()
     set $S274, $P273
     find_lex $P275, "$target"
-    unless_null $P275, vivify_45
+    unless_null $P275, vivify_53
     $P275 = root_new ['parrot';'Hash']
     store_lex "$target", $P275
-  vivify_45:
+  vivify_53:
     set $P275[$S274], $P271
     .return ($P271)
 .end
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block247"  :anon :subid("23_1274022881.57388") :outer("21_1274022881.57388")
+.sub "_block247"  :anon :subid("23_1274564776.02218") :outer("21_1274564776.02218")
     .param pmc param_249
 .annotate 'line', 77
     .lex "$_", param_249
@@ -7242,7 +7249,7 @@
 
 
 .namespace ["HLL";"Compiler"]
-.sub "_block218"  :anon :subid("22_1274022881.57388") :outer("21_1274022881.57388")
+.sub "_block218"  :anon :subid("22_1274564776.02218") :outer("21_1274564776.02218")
     .param pmc param_220
 .annotate 'line', 74
     .lex "$_", param_220
@@ -7262,12 +7269,488 @@
 .end
 
 
+.namespace ["HLL";"Compiler"]
+.sub "autoprint"  :subid("25_1274564776.02218") :method :outer("11_1274564776.02218")
+    .param pmc param_286
+.annotate 'line', 85
+    new $P285, 'ExceptionHandler'
+    set_addr $P285, control_284
+    $P285."handle_types"(57)
+    push_eh $P285
+    .lex "self", self
+    .lex "$value", param_286
+.annotate 'line', 87
+    getstdout $P289
+    tell $I290, $P289
+    set $N291, $I290
+    find_dynamic_lex $P292, "$*AUTOPRINTPOS"
+    unless_null $P292, vivify_56
+    get_hll_global $P292, "$AUTOPRINTPOS"
+    unless_null $P292, vivify_57
+    die "Contextual $*AUTOPRINTPOS not found"
+  vivify_57:
+  vivify_56:
+    set $N293, $P292
+    isgt $I294, $N291, $N293
+    unless $I294, unless_288
+    new $P287, 'Integer'
+    set $P287, $I294
+    goto unless_288_end
+  unless_288:
+.annotate 'line', 86
+    find_lex $P295, "$value"
+    set $S296, $P295
+    say $S296
+  unless_288_end:
+.annotate 'line', 85
+    .return ($P287)
+  control_284:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P297, exception, "payload"
+    .return ($P297)
+.end
+
+
+.namespace ["HLL";"Compiler"]
+.sub "interactive"  :subid("26_1274564776.02218") :method :outer("11_1274564776.02218")
+    .param pmc param_301 :slurpy :named
+.annotate 'line', 90
+    .const 'Sub' $P328 = "27_1274564776.02218" 
+    capture_lex $P328
+    new $P300, 'ExceptionHandler'
+    set_addr $P300, control_299
+    $P300."handle_types"(57)
+    push_eh $P300
+    .lex "self", self
+    .lex "%adverbs", param_301
+.annotate 'line', 91
+    new $P302, "Undef"
+    .lex "$target", $P302
+.annotate 'line', 95
+    new $P303, "Undef"
+    .lex "$stdin", $P303
+.annotate 'line', 96
+    new $P304, "Undef"
+    .lex "$encoding", $P304
+.annotate 'line', 91
+    find_lex $P305, "%adverbs"
+    unless_null $P305, vivify_58
+    $P305 = root_new ['parrot';'Hash']
+  vivify_58:
+    set $P306, $P305["target"]
+    unless_null $P306, vivify_59
+    new $P306, "Undef"
+  vivify_59:
+    set $S307, $P306
+    downcase $S308, $S307
+    new $P309, 'String'
+    set $P309, $S308
+    store_lex "$target", $P309
+.annotate 'line', 93
+    find_lex $P310, "self"
+    $S311 = $P310."commandline_banner"()
+    printerr $S311
+.annotate 'line', 95
+    getstdin $P312
+    store_lex "$stdin", $P312
+.annotate 'line', 96
+    find_lex $P313, "%adverbs"
+    unless_null $P313, vivify_60
+    $P313 = root_new ['parrot';'Hash']
+  vivify_60:
+    set $P314, $P313["encoding"]
+    unless_null $P314, vivify_61
+    new $P314, "Undef"
+  vivify_61:
+    set $S315, $P314
+    new $P316, 'String'
+    set $P316, $S315
+    store_lex "$encoding", $P316
+.annotate 'line', 97
+    find_lex $P320, "$encoding"
+    if $P320, if_319
+    set $P318, $P320
+    goto if_319_end
+  if_319:
+    find_lex $P321, "$encoding"
+    set $S322, $P321
+    isne $I323, $S322, "fixed_8"
+    new $P318, 'Integer'
+    set $P318, $I323
+  if_319_end:
+    unless $P318, if_317_end
+.annotate 'line', 98
+    find_lex $P324, "$stdin"
+    find_lex $P325, "$encoding"
+    $P324."encoding"($P325)
+  if_317_end:
+.annotate 'line', 101
+    new $P406, 'ExceptionHandler'
+    set_addr $P406, loop405_handler
+    $P406."handle_types"(64, 66, 65)
+    push_eh $P406
+  loop405_test:
+    new $P326, "Integer"
+    assign $P326, 1
+    unless $P326, loop405_done
+  loop405_redo:
+    .const 'Sub' $P328 = "27_1274564776.02218" 
+    capture_lex $P328
+    $P328()
+  loop405_next:
+    goto loop405_test
+  loop405_handler:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P407, exception, 'type'
+    eq $P407, 64, loop405_next
+    eq $P407, 66, loop405_redo
+  loop405_done:
+    pop_eh 
+.annotate 'line', 90
+    .return ($P326)
+  control_299:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P408, exception, "payload"
+    .return ($P408)
+.end
+
+
+.namespace ["HLL";"Compiler"]
+.sub "_block327"  :anon :subid("27_1274564776.02218") :outer("26_1274564776.02218")
+.annotate 'line', 101
+    .const 'Sub' $P356 = "28_1274564776.02218" 
+    capture_lex $P356
+.annotate 'line', 104
+    new $P329, "Undef"
+    .lex "$prompt", $P329
+.annotate 'line', 105
+    new $P330, "Undef"
+    .lex "$code", $P330
+.annotate 'line', 110
+    new $P331, "Undef"
+    .lex "$*AUTOPRINTPOS", $P331
+.annotate 'line', 102
+    find_lex $P333, "$stdin"
+    if $P333, unless_332_end
+.include "except_types.pasm"
+    $P334 = new "Exception"
+    $P334["type"] = .CONTROL_LOOP_LAST
+    throw $P334
+  unless_332_end:
+.annotate 'line', 104
+    find_lex $P336, "self"
+    $P337 = $P336."commandline_prompt"()
+    set $P335, $P337
+    defined $I339, $P335
+    if $I339, default_338
+    new $P340, "String"
+    assign $P340, "> "
+    set $P335, $P340
+  default_338:
+    store_lex "$prompt", $P335
+.annotate 'line', 105
+    find_lex $P341, "$stdin"
+    find_lex $P342, "$prompt"
+    set $S343, $P342
+    $P344 = $P341."readline_interactive"($S343)
+    store_lex "$code", $P344
+.annotate 'line', 107
+    find_lex $P346, "$code"
+    isnull $I347, $P346
+    unless $I347, if_345_end
+.include "except_types.pasm"
+    $P348 = new "Exception"
+    $P348["type"] = .CONTROL_LOOP_LAST
+    throw $P348
+  if_345_end:
+.annotate 'line', 110
+    getstdout $P349
+    tell $I350, $P349
+    new $P351, 'Integer'
+    set $P351, $I350
+    store_lex "$*AUTOPRINTPOS", $P351
+.annotate 'line', 112
+    find_lex $P354, "$code"
+    if $P354, if_353
+    set $P352, $P354
+    goto if_353_end
+  if_353:
+    .const 'Sub' $P356 = "28_1274564776.02218" 
+    capture_lex $P356
+    $P404 = $P356()
+    set $P352, $P404
+  if_353_end:
+.annotate 'line', 101
+    .return ($P352)
+.end
+
+
+.namespace ["HLL";"Compiler"]
+.sub "_block355"  :anon :subid("28_1274564776.02218") :outer("27_1274564776.02218")
+.annotate 'line', 112
+    .const 'Sub' $P362 = "29_1274564776.02218" 
+    capture_lex $P362
+.annotate 'line', 114
+    new $P357, "Undef"
+    .lex "$output", $P357
+.annotate 'line', 113
+    find_lex $P358, "$code"
+    concat $P359, $P358, "\n"
+    store_lex "$code", $P359
+    find_lex $P360, "$output"
+.annotate 'line', 115
+    .const 'Sub' $P362 = "29_1274564776.02218" 
+    capture_lex $P362
+    $P362()
+.annotate 'line', 122
+    find_lex $P383, "$output"
+    isnull $I384, $P383
+    unless $I384, if_382_end
+.include "except_types.pasm"
+    $P385 = new "Exception"
+    $P385["type"] = .CONTROL_LOOP_NEXT
+    throw $P385
+  if_382_end:
+.annotate 'line', 124
+    find_lex $P388, "$target"
+    isfalse $I389, $P388
+    if $I389, if_387
+.annotate 'line', 126
+    find_lex $P395, "$target"
+    set $S396, $P395
+    iseq $I397, $S396, "pir"
+    if $I397, if_394
+.annotate 'line', 129
+    find_lex $P399, "self"
+    find_lex $P400, "$output"
+    find_lex $P401, "$target"
+    find_lex $P402, "%adverbs"
+    $P403 = $P399."dumper"($P400, $P401, $P402 :flat)
+.annotate 'line', 128
+    set $P393, $P403
+.annotate 'line', 126
+    goto if_394_end
+  if_394:
+.annotate 'line', 127
+    find_lex $P398, "$output"
+    say $P398
+  if_394_end:
+.annotate 'line', 126
+    set $P386, $P393
+.annotate 'line', 124
+    goto if_387_end
+  if_387:
+.annotate 'line', 125
+    find_lex $P390, "self"
+    find_lex $P391, "$output"
+    $P392 = $P390."autoprint"($P391)
+.annotate 'line', 124
+    set $P386, $P392
+  if_387_end:
+.annotate 'line', 112
+    .return ($P386)
+.end
+
+
+.namespace ["HLL";"Compiler"]
+.sub "_block361"  :anon :subid("29_1274564776.02218") :outer("28_1274564776.02218")
+.annotate 'line', 115
+    .const 'Sub' $P373 = "30_1274564776.02218" 
+    capture_lex $P373
+    new $P369, 'ExceptionHandler'
+    set_addr $P369, control_368
+    $P369."handle_types_except"(57, 58, 59, 60, 62, 63, 64, 65, 66)
+    push_eh $P369
+.annotate 'line', 116
+    find_lex $P363, "self"
+    find_lex $P364, "$code"
+    find_lex $P365, "%adverbs"
+    $P366 = $P363."eval"($P364, $P365 :flat)
+    store_lex "$output", $P366
+.annotate 'line', 115
+    pop_eh 
+    goto skip_handler_367
+  control_368:
+.annotate 'line', 117
+    .local pmc exception 
+    .get_results (exception) 
+    .const 'Sub' $P373 = "30_1274564776.02218" 
+    newclosure $P379, $P373
+    $P379(exception)
+    new $P380, 'Integer'
+    set $P380, 1
+    set exception["handled"], $P380
+    set $I381, exception["handled"]
+    ne $I381, 1, nothandled_371
+  handled_370:
+    .return (exception)
+  nothandled_371:
+    rethrow exception
+  skip_handler_367:
+.annotate 'line', 115
+    .return ()
+.end
+
+
+.namespace ["HLL";"Compiler"]
+.sub "_block372"  :anon :subid("30_1274564776.02218") :outer("29_1274564776.02218")
+    .param pmc param_374
+.annotate 'line', 117
+    .lex "$_", param_374
+    find_lex $P375, "$_"
+    .lex "$!", $P375
+.annotate 'line', 118
+    find_lex $P376, "$!"
+    concat $P377, $P376, "\n"
+    print $P377
+.annotate 'line', 119
+.include "except_types.pasm"
+    $P378 = new "Exception"
+    $P378["type"] = .CONTROL_LOOP_NEXT
+    throw $P378
+.annotate 'line', 117
+    .return ($P378)
+.end
+
+
+.namespace ["HLL";"Compiler"]
+.sub "eval"  :subid("31_1274564776.02218") :method :outer("11_1274564776.02218")
+    .param pmc param_412
+    .param pmc param_413 :slurpy
+    .param pmc param_414 :slurpy :named
+.annotate 'line', 135
+    .const 'Sub' $P433 = "32_1274564776.02218" 
+    capture_lex $P433
+    new $P411, 'ExceptionHandler'
+    set_addr $P411, control_410
+    $P411."handle_types"(57)
+    push_eh $P411
+    .lex "self", self
+    .lex "$code", param_412
+    .lex "@args", param_413
+    .lex "%adverbs", param_414
+.annotate 'line', 136
+    new $P415, "Undef"
+    .lex "$output", $P415
+.annotate 'line', 135
+    find_lex $P416, "$output"
+.annotate 'line', 137
+    find_lex $P417, "self"
+    find_lex $P418, "$code"
+    find_lex $P419, "%adverbs"
+    $P420 = $P417."compile"($P418, $P419 :flat)
+    store_lex "$output", $P420
+.annotate 'line', 139
+    find_lex $P424, "$output"
+    isa $I425, $P424, "String"
+    new $P426, 'Integer'
+    set $P426, $I425
+    isfalse $I427, $P426
+    if $I427, if_423
+    new $P422, 'Integer'
+    set $P422, $I427
+    goto if_423_end
+  if_423:
+.annotate 'line', 140
+    find_lex $P428, "%adverbs"
+    unless_null $P428, vivify_62
+    $P428 = root_new ['parrot';'Hash']
+  vivify_62:
+    set $P429, $P428["target"]
+    unless_null $P429, vivify_63
+    new $P429, "Undef"
+  vivify_63:
+    set $S430, $P429
+    iseq $I431, $S430, ""
+    new $P422, 'Integer'
+    set $P422, $I431
+  if_423_end:
+    unless $P422, if_421_end
+    .const 'Sub' $P433 = "32_1274564776.02218" 
+    capture_lex $P433
+    $P433()
+  if_421_end:
+.annotate 'line', 139
+    find_lex $P450, "$output"
+.annotate 'line', 135
+    .return ($P450)
+  control_410:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P451, exception, "payload"
+    .return ($P451)
+.end
+
+
+.namespace ["HLL";"Compiler"]
+.sub "_block432"  :anon :subid("32_1274564776.02218") :outer("31_1274564776.02218")
+.annotate 'line', 141
+    new $P434, "Undef"
+    .lex "$outer_ctx", $P434
+    find_lex $P435, "%adverbs"
+    unless_null $P435, vivify_64
+    $P435 = root_new ['parrot';'Hash']
+  vivify_64:
+    set $P436, $P435["outer_ctx"]
+    unless_null $P436, vivify_65
+    new $P436, "Undef"
+  vivify_65:
+    store_lex "$outer_ctx", $P436
+.annotate 'line', 142
+    find_lex $P438, "$outer_ctx"
+    defined $I439, $P438
+    unless $I439, if_437_end
+.annotate 'line', 143
+    find_lex $P440, "$output"
+    unless_null $P440, vivify_66
+    $P440 = root_new ['parrot';'ResizablePMCArray']
+  vivify_66:
+    set $P441, $P440[0]
+    unless_null $P441, vivify_67
+    new $P441, "Undef"
+  vivify_67:
+    find_lex $P442, "$outer_ctx"
+    unless_null $P442, vivify_68
+    $P442 = root_new ['parrot';'Hash']
+  vivify_68:
+    set $P443, $P442["current_sub"]
+    unless_null $P443, vivify_69
+    new $P443, "Undef"
+  vivify_69:
+    $P441."set_outer"($P443)
+  if_437_end:
+.annotate 'line', 146
+    find_lex $P444, "%adverbs"
+    unless_null $P444, vivify_70
+    $P444 = root_new ['parrot';'Hash']
+  vivify_70:
+    set $P445, $P444["trace"]
+    unless_null $P445, vivify_71
+    new $P445, "Undef"
+  vivify_71:
+    set $I446, $P445
+    trace $I446
+.annotate 'line', 147
+    find_lex $P447, "$output"
+    find_lex $P448, "@args"
+    $P449 = $P447($P448 :flat)
+    store_lex "$output", $P449
+.annotate 'line', 148
+    trace 0
+.annotate 'line', 140
+    .return ()
+.end
+
+
 .namespace []
-.sub "_block286" :load :anon :subid("25_1274022881.57388")
+.sub "_block455" :load :anon :subid("33_1274564776.02218")
 .annotate 'line', 1
-    .const 'Sub' $P288 = "10_1274022881.57388" 
-    $P289 = $P288()
-    .return ($P289)
+    .const 'Sub' $P457 = "10_1274564776.02218" 
+    $P458 = $P457()
+    .return ($P458)
 .end
 
 

Modified: branches/ucs4_encoding/ext/nqp-rx/src/stage0/NQP-s0.pir
==============================================================================
--- branches/ucs4_encoding/ext/nqp-rx/src/stage0/NQP-s0.pir	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/ext/nqp-rx/src/stage0/NQP-s0.pir	Mon May 24 21:18:41 2010	(r46974)
@@ -15,403 +15,403 @@
 ### .include 'gen/nqp-grammar.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1274022894.43745")
+.sub "_block11"  :anon :subid("10_1274564776.41408")
 .annotate 'line', 0
     get_hll_global $P14, ["NQP";"Grammar"], "_block13" 
     capture_lex $P14
 .annotate 'line', 4
     get_hll_global $P14, ["NQP";"Grammar"], "_block13" 
     capture_lex $P14
-    $P1350 = $P14()
+    $P1394 = $P14()
 .annotate 'line', 1
-    .return ($P1350)
-    .const 'Sub' $P1352 = "344_1274022894.43745" 
-    .return ($P1352)
+    .return ($P1394)
+    .const 'Sub' $P1396 = "355_1274564776.41408" 
+    .return ($P1396)
 .end
 
 
 .namespace []
-.sub "" :load :init :subid("post345") :outer("10_1274022894.43745")
+.sub "" :load :init :subid("post356") :outer("10_1274564776.41408")
 .annotate 'line', 0
-    .const 'Sub' $P12 = "10_1274022894.43745" 
+    .const 'Sub' $P12 = "10_1274564776.41408" 
     .local pmc block
     set block, $P12
-    $P1355 = get_root_global ["parrot"], "P6metaclass"
-    $P1355."new_class"("NQP::Grammar", "HLL::Grammar" :named("parent"))
+    $P1399 = get_root_global ["parrot"], "P6metaclass"
+    $P1399."new_class"("NQP::Grammar", "HLL::Grammar" :named("parent"))
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "_block13"  :subid("11_1274022894.43745") :outer("10_1274022894.43745")
+.sub "_block13"  :subid("11_1274564776.41408") :outer("10_1274564776.41408")
 .annotate 'line', 4
     get_hll_global $P1290, ["NQP";"Regex"], "_block1289" 
     capture_lex $P1290
-    .const 'Sub' $P1276 = "329_1274022894.43745" 
+    .const 'Sub' $P1276 = "329_1274564776.41408" 
     capture_lex $P1276
-    .const 'Sub' $P1270 = "327_1274022894.43745" 
+    .const 'Sub' $P1270 = "327_1274564776.41408" 
     capture_lex $P1270
-    .const 'Sub' $P1264 = "325_1274022894.43745" 
+    .const 'Sub' $P1264 = "325_1274564776.41408" 
     capture_lex $P1264
-    .const 'Sub' $P1258 = "323_1274022894.43745" 
+    .const 'Sub' $P1258 = "323_1274564776.41408" 
     capture_lex $P1258
-    .const 'Sub' $P1252 = "321_1274022894.43745" 
+    .const 'Sub' $P1252 = "321_1274564776.41408" 
     capture_lex $P1252
-    .const 'Sub' $P1246 = "319_1274022894.43745" 
+    .const 'Sub' $P1246 = "319_1274564776.41408" 
     capture_lex $P1246
-    .const 'Sub' $P1239 = "317_1274022894.43745" 
+    .const 'Sub' $P1239 = "317_1274564776.41408" 
     capture_lex $P1239
-    .const 'Sub' $P1232 = "315_1274022894.43745" 
+    .const 'Sub' $P1232 = "315_1274564776.41408" 
     capture_lex $P1232
-    .const 'Sub' $P1225 = "313_1274022894.43745" 
+    .const 'Sub' $P1225 = "313_1274564776.41408" 
     capture_lex $P1225
-    .const 'Sub' $P1218 = "311_1274022894.43745" 
+    .const 'Sub' $P1218 = "311_1274564776.41408" 
     capture_lex $P1218
-    .const 'Sub' $P1212 = "309_1274022894.43745" 
+    .const 'Sub' $P1212 = "309_1274564776.41408" 
     capture_lex $P1212
-    .const 'Sub' $P1205 = "307_1274022894.43745" 
+    .const 'Sub' $P1205 = "307_1274564776.41408" 
     capture_lex $P1205
-    .const 'Sub' $P1198 = "305_1274022894.43745" 
+    .const 'Sub' $P1198 = "305_1274564776.41408" 
     capture_lex $P1198
-    .const 'Sub' $P1191 = "303_1274022894.43745" 
+    .const 'Sub' $P1191 = "303_1274564776.41408" 
     capture_lex $P1191
-    .const 'Sub' $P1184 = "301_1274022894.43745" 
+    .const 'Sub' $P1184 = "301_1274564776.41408" 
     capture_lex $P1184
-    .const 'Sub' $P1177 = "299_1274022894.43745" 
+    .const 'Sub' $P1177 = "299_1274564776.41408" 
     capture_lex $P1177
-    .const 'Sub' $P1170 = "297_1274022894.43745" 
+    .const 'Sub' $P1170 = "297_1274564776.41408" 
     capture_lex $P1170
-    .const 'Sub' $P1163 = "295_1274022894.43745" 
+    .const 'Sub' $P1163 = "295_1274564776.41408" 
     capture_lex $P1163
-    .const 'Sub' $P1156 = "293_1274022894.43745" 
+    .const 'Sub' $P1156 = "293_1274564776.41408" 
     capture_lex $P1156
-    .const 'Sub' $P1149 = "291_1274022894.43745" 
+    .const 'Sub' $P1149 = "291_1274564776.41408" 
     capture_lex $P1149
-    .const 'Sub' $P1142 = "289_1274022894.43745" 
+    .const 'Sub' $P1142 = "289_1274564776.41408" 
     capture_lex $P1142
-    .const 'Sub' $P1135 = "287_1274022894.43745" 
+    .const 'Sub' $P1135 = "287_1274564776.41408" 
     capture_lex $P1135
-    .const 'Sub' $P1128 = "285_1274022894.43745" 
+    .const 'Sub' $P1128 = "285_1274564776.41408" 
     capture_lex $P1128
-    .const 'Sub' $P1121 = "283_1274022894.43745" 
+    .const 'Sub' $P1121 = "283_1274564776.41408" 
     capture_lex $P1121
-    .const 'Sub' $P1114 = "281_1274022894.43745" 
+    .const 'Sub' $P1114 = "281_1274564776.41408" 
     capture_lex $P1114
-    .const 'Sub' $P1107 = "279_1274022894.43745" 
+    .const 'Sub' $P1107 = "279_1274564776.41408" 
     capture_lex $P1107
-    .const 'Sub' $P1100 = "277_1274022894.43745" 
+    .const 'Sub' $P1100 = "277_1274564776.41408" 
     capture_lex $P1100
-    .const 'Sub' $P1093 = "275_1274022894.43745" 
+    .const 'Sub' $P1093 = "275_1274564776.41408" 
     capture_lex $P1093
-    .const 'Sub' $P1086 = "273_1274022894.43745" 
+    .const 'Sub' $P1086 = "273_1274564776.41408" 
     capture_lex $P1086
-    .const 'Sub' $P1079 = "271_1274022894.43745" 
+    .const 'Sub' $P1079 = "271_1274564776.41408" 
     capture_lex $P1079
-    .const 'Sub' $P1072 = "269_1274022894.43745" 
+    .const 'Sub' $P1072 = "269_1274564776.41408" 
     capture_lex $P1072
-    .const 'Sub' $P1065 = "267_1274022894.43745" 
+    .const 'Sub' $P1065 = "267_1274564776.41408" 
     capture_lex $P1065
-    .const 'Sub' $P1058 = "265_1274022894.43745" 
+    .const 'Sub' $P1058 = "265_1274564776.41408" 
     capture_lex $P1058
-    .const 'Sub' $P1051 = "263_1274022894.43745" 
+    .const 'Sub' $P1051 = "263_1274564776.41408" 
     capture_lex $P1051
-    .const 'Sub' $P1044 = "261_1274022894.43745" 
+    .const 'Sub' $P1044 = "261_1274564776.41408" 
     capture_lex $P1044
-    .const 'Sub' $P1037 = "259_1274022894.43745" 
+    .const 'Sub' $P1037 = "259_1274564776.41408" 
     capture_lex $P1037
-    .const 'Sub' $P1030 = "257_1274022894.43745" 
+    .const 'Sub' $P1030 = "257_1274564776.41408" 
     capture_lex $P1030
-    .const 'Sub' $P1024 = "255_1274022894.43745" 
+    .const 'Sub' $P1024 = "255_1274564776.41408" 
     capture_lex $P1024
-    .const 'Sub' $P1017 = "253_1274022894.43745" 
+    .const 'Sub' $P1017 = "253_1274564776.41408" 
     capture_lex $P1017
-    .const 'Sub' $P1010 = "251_1274022894.43745" 
+    .const 'Sub' $P1010 = "251_1274564776.41408" 
     capture_lex $P1010
-    .const 'Sub' $P1003 = "249_1274022894.43745" 
+    .const 'Sub' $P1003 = "249_1274564776.41408" 
     capture_lex $P1003
-    .const 'Sub' $P996 = "247_1274022894.43745" 
+    .const 'Sub' $P996 = "247_1274564776.41408" 
     capture_lex $P996
-    .const 'Sub' $P989 = "245_1274022894.43745" 
+    .const 'Sub' $P989 = "245_1274564776.41408" 
     capture_lex $P989
-    .const 'Sub' $P982 = "243_1274022894.43745" 
+    .const 'Sub' $P982 = "243_1274564776.41408" 
     capture_lex $P982
-    .const 'Sub' $P975 = "241_1274022894.43745" 
+    .const 'Sub' $P975 = "241_1274564776.41408" 
     capture_lex $P975
-    .const 'Sub' $P969 = "239_1274022894.43745" 
+    .const 'Sub' $P969 = "239_1274564776.41408" 
     capture_lex $P969
-    .const 'Sub' $P963 = "237_1274022894.43745" 
+    .const 'Sub' $P963 = "237_1274564776.41408" 
     capture_lex $P963
-    .const 'Sub' $P958 = "235_1274022894.43745" 
+    .const 'Sub' $P958 = "235_1274564776.41408" 
     capture_lex $P958
-    .const 'Sub' $P952 = "233_1274022894.43745" 
+    .const 'Sub' $P952 = "233_1274564776.41408" 
     capture_lex $P952
-    .const 'Sub' $P946 = "231_1274022894.43745" 
+    .const 'Sub' $P946 = "231_1274564776.41408" 
     capture_lex $P946
-    .const 'Sub' $P941 = "229_1274022894.43745" 
+    .const 'Sub' $P941 = "229_1274564776.41408" 
     capture_lex $P941
-    .const 'Sub' $P936 = "227_1274022894.43745" 
+    .const 'Sub' $P936 = "227_1274564776.41408" 
     capture_lex $P936
-    .const 'Sub' $P929 = "225_1274022894.43745" 
+    .const 'Sub' $P929 = "225_1274564776.41408" 
     capture_lex $P929
-    .const 'Sub' $P921 = "223_1274022894.43745" 
+    .const 'Sub' $P921 = "223_1274564776.41408" 
     capture_lex $P921
-    .const 'Sub' $P916 = "221_1274022894.43745" 
+    .const 'Sub' $P916 = "221_1274564776.41408" 
     capture_lex $P916
-    .const 'Sub' $P911 = "219_1274022894.43745" 
+    .const 'Sub' $P911 = "219_1274564776.41408" 
     capture_lex $P911
-    .const 'Sub' $P906 = "217_1274022894.43745" 
+    .const 'Sub' $P906 = "217_1274564776.41408" 
     capture_lex $P906
-    .const 'Sub' $P898 = "215_1274022894.43745" 
+    .const 'Sub' $P898 = "215_1274564776.41408" 
     capture_lex $P898
-    .const 'Sub' $P890 = "213_1274022894.43745" 
+    .const 'Sub' $P890 = "213_1274564776.41408" 
     capture_lex $P890
-    .const 'Sub' $P885 = "211_1274022894.43745" 
+    .const 'Sub' $P885 = "211_1274564776.41408" 
     capture_lex $P885
-    .const 'Sub' $P880 = "209_1274022894.43745" 
+    .const 'Sub' $P880 = "209_1274564776.41408" 
     capture_lex $P880
-    .const 'Sub' $P875 = "207_1274022894.43745" 
+    .const 'Sub' $P875 = "207_1274564776.41408" 
     capture_lex $P875
-    .const 'Sub' $P869 = "205_1274022894.43745" 
+    .const 'Sub' $P869 = "205_1274564776.41408" 
     capture_lex $P869
-    .const 'Sub' $P863 = "203_1274022894.43745" 
+    .const 'Sub' $P863 = "203_1274564776.41408" 
     capture_lex $P863
-    .const 'Sub' $P857 = "201_1274022894.43745" 
+    .const 'Sub' $P857 = "201_1274564776.41408" 
     capture_lex $P857
-    .const 'Sub' $P851 = "199_1274022894.43745" 
+    .const 'Sub' $P851 = "199_1274564776.41408" 
     capture_lex $P851
-    .const 'Sub' $P845 = "197_1274022894.43745" 
+    .const 'Sub' $P845 = "197_1274564776.41408" 
     capture_lex $P845
-    .const 'Sub' $P840 = "195_1274022894.43745" 
+    .const 'Sub' $P840 = "195_1274564776.41408" 
     capture_lex $P840
-    .const 'Sub' $P835 = "193_1274022894.43745" 
+    .const 'Sub' $P835 = "193_1274564776.41408" 
     capture_lex $P835
-    .const 'Sub' $P822 = "189_1274022894.43745" 
+    .const 'Sub' $P822 = "189_1274564776.41408" 
     capture_lex $P822
-    .const 'Sub' $P814 = "187_1274022894.43745" 
+    .const 'Sub' $P814 = "187_1274564776.41408" 
     capture_lex $P814
-    .const 'Sub' $P808 = "185_1274022894.43745" 
+    .const 'Sub' $P808 = "185_1274564776.41408" 
     capture_lex $P808
-    .const 'Sub' $P801 = "183_1274022894.43745" 
+    .const 'Sub' $P801 = "183_1274564776.41408" 
     capture_lex $P801
-    .const 'Sub' $P795 = "181_1274022894.43745" 
+    .const 'Sub' $P795 = "181_1274564776.41408" 
     capture_lex $P795
-    .const 'Sub' $P787 = "179_1274022894.43745" 
+    .const 'Sub' $P787 = "179_1274564776.41408" 
     capture_lex $P787
-    .const 'Sub' $P779 = "177_1274022894.43745" 
+    .const 'Sub' $P779 = "177_1274564776.41408" 
     capture_lex $P779
-    .const 'Sub' $P773 = "175_1274022894.43745" 
+    .const 'Sub' $P773 = "175_1274564776.41408" 
     capture_lex $P773
-    .const 'Sub' $P767 = "173_1274022894.43745" 
+    .const 'Sub' $P767 = "173_1274564776.41408" 
     capture_lex $P767
-    .const 'Sub' $P752 = "169_1274022894.43745" 
+    .const 'Sub' $P752 = "169_1274564776.41408" 
     capture_lex $P752
-    .const 'Sub' $P715 = "167_1274022894.43745" 
+    .const 'Sub' $P715 = "167_1274564776.41408" 
     capture_lex $P715
-    .const 'Sub' $P707 = "165_1274022894.43745" 
+    .const 'Sub' $P707 = "165_1274564776.41408" 
     capture_lex $P707
-    .const 'Sub' $P701 = "163_1274022894.43745" 
+    .const 'Sub' $P701 = "163_1274564776.41408" 
     capture_lex $P701
-    .const 'Sub' $P691 = "161_1274022894.43745" 
+    .const 'Sub' $P691 = "161_1274564776.41408" 
     capture_lex $P691
-    .const 'Sub' $P677 = "159_1274022894.43745" 
+    .const 'Sub' $P677 = "159_1274564776.41408" 
     capture_lex $P677
-    .const 'Sub' $P668 = "157_1274022894.43745" 
+    .const 'Sub' $P668 = "157_1274564776.41408" 
     capture_lex $P668
-    .const 'Sub' $P649 = "155_1274022894.43745" 
+    .const 'Sub' $P649 = "155_1274564776.41408" 
     capture_lex $P649
-    .const 'Sub' $P625 = "153_1274022894.43745" 
+    .const 'Sub' $P625 = "153_1274564776.41408" 
     capture_lex $P625
-    .const 'Sub' $P618 = "151_1274022894.43745" 
+    .const 'Sub' $P618 = "151_1274564776.41408" 
     capture_lex $P618
-    .const 'Sub' $P611 = "149_1274022894.43745" 
+    .const 'Sub' $P611 = "149_1274564776.41408" 
     capture_lex $P611
-    .const 'Sub' $P601 = "145_1274022894.43745" 
+    .const 'Sub' $P601 = "145_1274564776.41408" 
     capture_lex $P601
-    .const 'Sub' $P593 = "143_1274022894.43745" 
+    .const 'Sub' $P593 = "143_1274564776.41408" 
     capture_lex $P593
-    .const 'Sub' $P587 = "141_1274022894.43745" 
+    .const 'Sub' $P587 = "141_1274564776.41408" 
     capture_lex $P587
-    .const 'Sub' $P573 = "139_1274022894.43745" 
+    .const 'Sub' $P573 = "139_1274564776.41408" 
     capture_lex $P573
-    .const 'Sub' $P566 = "137_1274022894.43745" 
+    .const 'Sub' $P566 = "137_1274564776.41408" 
     capture_lex $P566
-    .const 'Sub' $P559 = "135_1274022894.43745" 
+    .const 'Sub' $P559 = "135_1274564776.41408" 
     capture_lex $P559
-    .const 'Sub' $P552 = "133_1274022894.43745" 
+    .const 'Sub' $P552 = "133_1274564776.41408" 
     capture_lex $P552
-    .const 'Sub' $P525 = "129_1274022894.43745" 
+    .const 'Sub' $P525 = "129_1274564776.41408" 
     capture_lex $P525
-    .const 'Sub' $P516 = "127_1274022894.43745" 
+    .const 'Sub' $P516 = "127_1274564776.41408" 
     capture_lex $P516
-    .const 'Sub' $P509 = "125_1274022894.43745" 
+    .const 'Sub' $P509 = "125_1274564776.41408" 
     capture_lex $P509
-    .const 'Sub' $P500 = "121_1274022894.43745" 
+    .const 'Sub' $P500 = "121_1274564776.41408" 
     capture_lex $P500
-    .const 'Sub' $P495 = "119_1274022894.43745" 
+    .const 'Sub' $P495 = "119_1274564776.41408" 
     capture_lex $P495
-    .const 'Sub' $P483 = "117_1274022894.43745" 
+    .const 'Sub' $P483 = "117_1274564776.41408" 
     capture_lex $P483
-    .const 'Sub' $P471 = "115_1274022894.43745" 
+    .const 'Sub' $P471 = "115_1274564776.41408" 
     capture_lex $P471
-    .const 'Sub' $P463 = "113_1274022894.43745" 
+    .const 'Sub' $P463 = "113_1274564776.41408" 
     capture_lex $P463
-    .const 'Sub' $P458 = "111_1274022894.43745" 
+    .const 'Sub' $P458 = "111_1274564776.41408" 
     capture_lex $P458
-    .const 'Sub' $P452 = "109_1274022894.43745" 
+    .const 'Sub' $P452 = "109_1274564776.41408" 
     capture_lex $P452
-    .const 'Sub' $P446 = "107_1274022894.43745" 
+    .const 'Sub' $P446 = "107_1274564776.41408" 
     capture_lex $P446
-    .const 'Sub' $P440 = "105_1274022894.43745" 
+    .const 'Sub' $P440 = "105_1274564776.41408" 
     capture_lex $P440
-    .const 'Sub' $P434 = "103_1274022894.43745" 
+    .const 'Sub' $P434 = "103_1274564776.41408" 
     capture_lex $P434
-    .const 'Sub' $P428 = "101_1274022894.43745" 
+    .const 'Sub' $P428 = "101_1274564776.41408" 
     capture_lex $P428
-    .const 'Sub' $P422 = "99_1274022894.43745" 
+    .const 'Sub' $P422 = "99_1274564776.41408" 
     capture_lex $P422
-    .const 'Sub' $P416 = "97_1274022894.43745" 
+    .const 'Sub' $P416 = "97_1274564776.41408" 
     capture_lex $P416
-    .const 'Sub' $P410 = "95_1274022894.43745" 
+    .const 'Sub' $P410 = "95_1274564776.41408" 
     capture_lex $P410
-    .const 'Sub' $P402 = "93_1274022894.43745" 
+    .const 'Sub' $P402 = "93_1274564776.41408" 
     capture_lex $P402
-    .const 'Sub' $P394 = "91_1274022894.43745" 
+    .const 'Sub' $P394 = "91_1274564776.41408" 
     capture_lex $P394
-    .const 'Sub' $P382 = "87_1274022894.43745" 
+    .const 'Sub' $P382 = "87_1274564776.41408" 
     capture_lex $P382
-    .const 'Sub' $P374 = "85_1274022894.43745" 
+    .const 'Sub' $P374 = "85_1274564776.41408" 
     capture_lex $P374
-    .const 'Sub' $P364 = "81_1274022894.43745" 
+    .const 'Sub' $P364 = "81_1274564776.41408" 
     capture_lex $P364
-    .const 'Sub' $P357 = "79_1274022894.43745" 
+    .const 'Sub' $P357 = "79_1274564776.41408" 
     capture_lex $P357
-    .const 'Sub' $P350 = "77_1274022894.43745" 
+    .const 'Sub' $P350 = "77_1274564776.41408" 
     capture_lex $P350
-    .const 'Sub' $P338 = "73_1274022894.43745" 
+    .const 'Sub' $P338 = "73_1274564776.41408" 
     capture_lex $P338
-    .const 'Sub' $P330 = "71_1274022894.43745" 
+    .const 'Sub' $P330 = "71_1274564776.41408" 
     capture_lex $P330
-    .const 'Sub' $P322 = "69_1274022894.43745" 
+    .const 'Sub' $P322 = "69_1274564776.41408" 
     capture_lex $P322
-    .const 'Sub' $P302 = "67_1274022894.43745" 
+    .const 'Sub' $P302 = "67_1274564776.41408" 
     capture_lex $P302
-    .const 'Sub' $P293 = "65_1274022894.43745" 
+    .const 'Sub' $P293 = "65_1274564776.41408" 
     capture_lex $P293
-    .const 'Sub' $P275 = "62_1274022894.43745" 
+    .const 'Sub' $P275 = "62_1274564776.41408" 
     capture_lex $P275
-    .const 'Sub' $P255 = "60_1274022894.43745" 
+    .const 'Sub' $P255 = "60_1274564776.41408" 
     capture_lex $P255
-    .const 'Sub' $P246 = "56_1274022894.43745" 
+    .const 'Sub' $P246 = "56_1274564776.41408" 
     capture_lex $P246
-    .const 'Sub' $P241 = "54_1274022894.43745" 
+    .const 'Sub' $P241 = "54_1274564776.41408" 
     capture_lex $P241
-    .const 'Sub' $P232 = "50_1274022894.43745" 
+    .const 'Sub' $P232 = "50_1274564776.41408" 
     capture_lex $P232
-    .const 'Sub' $P227 = "48_1274022894.43745" 
+    .const 'Sub' $P227 = "48_1274564776.41408" 
     capture_lex $P227
-    .const 'Sub' $P219 = "46_1274022894.43745" 
+    .const 'Sub' $P219 = "46_1274564776.41408" 
     capture_lex $P219
-    .const 'Sub' $P212 = "44_1274022894.43745" 
+    .const 'Sub' $P212 = "44_1274564776.41408" 
     capture_lex $P212
-    .const 'Sub' $P206 = "42_1274022894.43745" 
+    .const 'Sub' $P206 = "42_1274564776.41408" 
     capture_lex $P206
-    .const 'Sub' $P198 = "40_1274022894.43745" 
+    .const 'Sub' $P198 = "40_1274564776.41408" 
     capture_lex $P198
-    .const 'Sub' $P192 = "38_1274022894.43745" 
+    .const 'Sub' $P192 = "38_1274564776.41408" 
     capture_lex $P192
-    .const 'Sub' $P186 = "36_1274022894.43745" 
+    .const 'Sub' $P186 = "36_1274564776.41408" 
     capture_lex $P186
-    .const 'Sub' $P170 = "33_1274022894.43745" 
+    .const 'Sub' $P170 = "33_1274564776.41408" 
     capture_lex $P170
-    .const 'Sub' $P157 = "31_1274022894.43745" 
+    .const 'Sub' $P157 = "31_1274564776.41408" 
     capture_lex $P157
-    .const 'Sub' $P150 = "29_1274022894.43745" 
+    .const 'Sub' $P150 = "29_1274564776.41408" 
     capture_lex $P150
-    .const 'Sub' $P100 = "26_1274022894.43745" 
+    .const 'Sub' $P100 = "26_1274564776.41408" 
     capture_lex $P100
-    .const 'Sub' $P82 = "23_1274022894.43745" 
+    .const 'Sub' $P82 = "23_1274564776.41408" 
     capture_lex $P82
-    .const 'Sub' $P68 = "21_1274022894.43745" 
+    .const 'Sub' $P68 = "21_1274564776.41408" 
     capture_lex $P68
-    .const 'Sub' $P54 = "19_1274022894.43745" 
+    .const 'Sub' $P54 = "19_1274564776.41408" 
     capture_lex $P54
-    .const 'Sub' $P46 = "17_1274022894.43745" 
+    .const 'Sub' $P46 = "17_1274564776.41408" 
     capture_lex $P46
-    .const 'Sub' $P39 = "15_1274022894.43745" 
+    .const 'Sub' $P39 = "15_1274564776.41408" 
     capture_lex $P39
-    .const 'Sub' $P33 = "13_1274022894.43745" 
+    .const 'Sub' $P33 = "13_1274564776.41408" 
     capture_lex $P33
-    .const 'Sub' $P15 = "12_1274022894.43745" 
+    .const 'Sub' $P15 = "12_1274564776.41408" 
     capture_lex $P15
 .annotate 'line', 548
     get_hll_global $P1290, ["NQP";"Regex"], "_block1289" 
     capture_lex $P1290
-    $P1329 = $P1290()
+    $P1373 = $P1290()
 .annotate 'line', 4
-    .return ($P1329)
-    .const 'Sub' $P1331 = "343_1274022894.43745" 
-    .return ($P1331)
+    .return ($P1373)
+    .const 'Sub' $P1375 = "354_1274564776.41408" 
+    .return ($P1375)
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "" :load :init :subid("post346") :outer("11_1274022894.43745")
+.sub "" :load :init :subid("post357") :outer("11_1274564776.41408")
 .annotate 'line', 4
     get_hll_global $P14, ["NQP";"Grammar"], "_block13" 
     .local pmc block
     set block, $P14
 .annotate 'line', 432
-    get_hll_global $P1334, ["NQP"], "Grammar"
-    $P1334."O"(":prec<y=>, :assoc<unary>", "%methodop")
+    get_hll_global $P1378, ["NQP"], "Grammar"
+    $P1378."O"(":prec<y=>, :assoc<unary>", "%methodop")
 .annotate 'line', 433
-    get_hll_global $P1335, ["NQP"], "Grammar"
-    $P1335."O"(":prec<x=>, :assoc<unary>", "%autoincrement")
+    get_hll_global $P1379, ["NQP"], "Grammar"
+    $P1379."O"(":prec<x=>, :assoc<unary>", "%autoincrement")
 .annotate 'line', 434
-    get_hll_global $P1336, ["NQP"], "Grammar"
-    $P1336."O"(":prec<w=>, :assoc<left>", "%exponentiation")
+    get_hll_global $P1380, ["NQP"], "Grammar"
+    $P1380."O"(":prec<w=>, :assoc<left>", "%exponentiation")
 .annotate 'line', 435
-    get_hll_global $P1337, ["NQP"], "Grammar"
-    $P1337."O"(":prec<v=>, :assoc<unary>", "%symbolic_unary")
+    get_hll_global $P1381, ["NQP"], "Grammar"
+    $P1381."O"(":prec<v=>, :assoc<unary>", "%symbolic_unary")
 .annotate 'line', 436
-    get_hll_global $P1338, ["NQP"], "Grammar"
-    $P1338."O"(":prec<u=>, :assoc<left>", "%multiplicative")
+    get_hll_global $P1382, ["NQP"], "Grammar"
+    $P1382."O"(":prec<u=>, :assoc<left>", "%multiplicative")
 .annotate 'line', 437
-    get_hll_global $P1339, ["NQP"], "Grammar"
-    $P1339."O"(":prec<t=>, :assoc<left>", "%additive")
+    get_hll_global $P1383, ["NQP"], "Grammar"
+    $P1383."O"(":prec<t=>, :assoc<left>", "%additive")
 .annotate 'line', 438
-    get_hll_global $P1340, ["NQP"], "Grammar"
-    $P1340."O"(":prec<r=>, :assoc<left>", "%concatenation")
+    get_hll_global $P1384, ["NQP"], "Grammar"
+    $P1384."O"(":prec<r=>, :assoc<left>", "%concatenation")
 .annotate 'line', 439
-    get_hll_global $P1341, ["NQP"], "Grammar"
-    $P1341."O"(":prec<m=>, :assoc<left>", "%relational")
+    get_hll_global $P1385, ["NQP"], "Grammar"
+    $P1385."O"(":prec<m=>, :assoc<left>", "%relational")
 .annotate 'line', 440
-    get_hll_global $P1342, ["NQP"], "Grammar"
-    $P1342."O"(":prec<l=>, :assoc<left>", "%tight_and")
+    get_hll_global $P1386, ["NQP"], "Grammar"
+    $P1386."O"(":prec<l=>, :assoc<left>", "%tight_and")
 .annotate 'line', 441
-    get_hll_global $P1343, ["NQP"], "Grammar"
-    $P1343."O"(":prec<k=>, :assoc<left>", "%tight_or")
+    get_hll_global $P1387, ["NQP"], "Grammar"
+    $P1387."O"(":prec<k=>, :assoc<left>", "%tight_or")
 .annotate 'line', 442
-    get_hll_global $P1344, ["NQP"], "Grammar"
-    $P1344."O"(":prec<j=>, :assoc<right>", "%conditional")
+    get_hll_global $P1388, ["NQP"], "Grammar"
+    $P1388."O"(":prec<j=>, :assoc<right>", "%conditional")
 .annotate 'line', 443
-    get_hll_global $P1345, ["NQP"], "Grammar"
-    $P1345."O"(":prec<i=>, :assoc<right>", "%assignment")
+    get_hll_global $P1389, ["NQP"], "Grammar"
+    $P1389."O"(":prec<i=>, :assoc<right>", "%assignment")
 .annotate 'line', 444
-    get_hll_global $P1346, ["NQP"], "Grammar"
-    $P1346."O"(":prec<g=>, :assoc<list>, :nextterm<nulltermish>", "%comma")
+    get_hll_global $P1390, ["NQP"], "Grammar"
+    $P1390."O"(":prec<g=>, :assoc<list>, :nextterm<nulltermish>", "%comma")
 .annotate 'line', 445
-    get_hll_global $P1347, ["NQP"], "Grammar"
-    $P1347."O"(":prec<f=>, :assoc<list>", "%list_infix")
+    get_hll_global $P1391, ["NQP"], "Grammar"
+    $P1391."O"(":prec<f=>, :assoc<list>", "%list_infix")
 .annotate 'line', 446
-    get_hll_global $P1348, ["NQP"], "Grammar"
-    $P1348."O"(":prec<e=>, :assoc<unary>", "%list_prefix")
+    get_hll_global $P1392, ["NQP"], "Grammar"
+    $P1392."O"(":prec<e=>, :assoc<unary>", "%list_prefix")
 .annotate 'line', 431
-    $P1349 = get_root_global ["parrot"], "P6metaclass"
-    $P1349."new_class"("NQP::Regex", "Regex::P6Regex::Grammar" :named("parent"))
+    $P1393 = get_root_global ["parrot"], "P6metaclass"
+    $P1393."new_class"("NQP::Regex", "Regex::P6Regex::Grammar" :named("parent"))
 .end
 
 
 .namespace ["NQP";"Grammar"]
-.sub "TOP"  :subid("12_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "TOP"  :subid("12_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     new $P17, 'ExceptionHandler'
     set_addr $P17, control_16
@@ -426,55 +426,55 @@
     .lex "$*SCOPE", $P19
 .annotate 'line', 4
     find_lex $P20, "%*LANG"
-    unless_null $P20, vivify_347
+    unless_null $P20, vivify_358
     get_hll_global $P20, "%LANG"
-    unless_null $P20, vivify_348
+    unless_null $P20, vivify_359
     die "Contextual %*LANG not found"
-  vivify_348:
-  vivify_347:
+  vivify_359:
+  vivify_358:
 .annotate 'line', 6
     get_hll_global $P21, ["NQP"], "Regex"
     find_lex $P22, "%*LANG"
-    unless_null $P22, vivify_349
+    unless_null $P22, vivify_360
     get_hll_global $P22, "%LANG"
-    unless_null $P22, vivify_350
+    unless_null $P22, vivify_361
     die "Contextual %*LANG not found"
-  vivify_350:
+  vivify_361:
     store_lex "%*LANG", $P22
-  vivify_349:
+  vivify_360:
     set $P22["Regex"], $P21
 .annotate 'line', 7
     get_hll_global $P23, ["NQP"], "RegexActions"
     find_lex $P24, "%*LANG"
-    unless_null $P24, vivify_351
+    unless_null $P24, vivify_362
     get_hll_global $P24, "%LANG"
-    unless_null $P24, vivify_352
+    unless_null $P24, vivify_363
     die "Contextual %*LANG not found"
-  vivify_352:
+  vivify_363:
     store_lex "%*LANG", $P24
-  vivify_351:
+  vivify_362:
     set $P24["Regex-actions"], $P23
 .annotate 'line', 8
     get_hll_global $P25, ["NQP"], "Grammar"
     find_lex $P26, "%*LANG"
-    unless_null $P26, vivify_353
+    unless_null $P26, vivify_364
     get_hll_global $P26, "%LANG"
-    unless_null $P26, vivify_354
+    unless_null $P26, vivify_365
     die "Contextual %*LANG not found"
-  vivify_354:
+  vivify_365:
     store_lex "%*LANG", $P26
-  vivify_353:
+  vivify_364:
     set $P26["MAIN"], $P25
 .annotate 'line', 9
     get_hll_global $P27, ["NQP"], "Actions"
     find_lex $P28, "%*LANG"
-    unless_null $P28, vivify_355
+    unless_null $P28, vivify_366
     get_hll_global $P28, "%LANG"
-    unless_null $P28, vivify_356
+    unless_null $P28, vivify_367
     die "Contextual %*LANG not found"
-  vivify_356:
+  vivify_367:
     store_lex "%*LANG", $P28
-  vivify_355:
+  vivify_366:
     set $P28["MAIN-actions"], $P27
 .annotate 'line', 10
     new $P29, "String"
@@ -494,7 +494,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "identifier"  :subid("13_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "identifier"  :subid("13_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx34_tgt
     .local int rx34_pos
@@ -552,7 +552,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__identifier"  :subid("14_1274022894.43745") :method
+.sub "!PREFIX__identifier"  :subid("14_1274564776.41408") :method
 .annotate 'line', 4
     $P36 = self."!PREFIX__!subrule"("ident", "")
     new $P37, "ResizablePMCArray"
@@ -562,7 +562,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "name"  :subid("15_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "name"  :subid("15_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx40_tgt
     .local int rx40_pos
@@ -636,7 +636,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__name"  :subid("16_1274022894.43745") :method
+.sub "!PREFIX__name"  :subid("16_1274564776.41408") :method
 .annotate 'line', 4
     new $P42, "ResizablePMCArray"
     push $P42, ""
@@ -645,7 +645,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "deflongname"  :subid("17_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "deflongname"  :subid("17_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx47_tgt
     .local int rx47_pos
@@ -718,7 +718,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__deflongname"  :subid("18_1274022894.43745") :method
+.sub "!PREFIX__deflongname"  :subid("18_1274564776.41408") :method
 .annotate 'line', 4
     $P49 = self."!PREFIX__!subrule"("identifier", "")
     new $P50, "ResizablePMCArray"
@@ -728,7 +728,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "ENDSTMT"  :subid("19_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "ENDSTMT"  :subid("19_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx55_tgt
     .local int rx55_pos
@@ -860,7 +860,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__ENDSTMT"  :subid("20_1274022894.43745") :method
+.sub "!PREFIX__ENDSTMT"  :subid("20_1274564776.41408") :method
 .annotate 'line', 4
     new $P57, "ResizablePMCArray"
     push $P57, ""
@@ -869,7 +869,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "ws"  :subid("21_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "ws"  :subid("21_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx69_tgt
     .local int rx69_pos
@@ -1024,7 +1024,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__ws"  :subid("22_1274022894.43745") :method
+.sub "!PREFIX__ws"  :subid("22_1274564776.41408") :method
 .annotate 'line', 4
     new $P71, "ResizablePMCArray"
     push $P71, ""
@@ -1034,9 +1034,9 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "unv"  :subid("23_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "unv"  :subid("23_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
-    .const 'Sub' $P90 = "25_1274022894.43745" 
+    .const 'Sub' $P90 = "25_1274564776.41408" 
     capture_lex $P90
     .local string rx83_tgt
     .local int rx83_pos
@@ -1082,7 +1082,7 @@
   rxanchor88_done:
   # rx subrule "before" subtype=zerowidth negate=
     rx83_cur."!cursor_pos"(rx83_pos)
-    .const 'Sub' $P90 = "25_1274022894.43745" 
+    .const 'Sub' $P90 = "25_1274564776.41408" 
     capture_lex $P90
     $P10 = rx83_cur."before"($P90)
     unless $P10, rx83_fail
@@ -1161,7 +1161,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__unv"  :subid("24_1274022894.43745") :method
+.sub "!PREFIX__unv"  :subid("24_1274564776.41408") :method
 .annotate 'line', 4
     new $P85, "ResizablePMCArray"
     push $P85, ""
@@ -1172,7 +1172,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "_block89"  :anon :subid("25_1274022894.43745") :method :outer("23_1274022894.43745")
+.sub "_block89"  :anon :subid("25_1274564776.41408") :method :outer("23_1274564776.41408")
 .annotate 'line', 45
     .local string rx91_tgt
     .local int rx91_pos
@@ -1262,9 +1262,9 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "pod_comment"  :subid("26_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "pod_comment"  :subid("26_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
-    .const 'Sub' $P141 = "28_1274022894.43745" 
+    .const 'Sub' $P141 = "28_1274564776.41408" 
     capture_lex $P141
     .local string rx101_tgt
     .local int rx101_pos
@@ -1750,7 +1750,7 @@
   rxanchor139_done:
   # rx subrule "before" subtype=zerowidth negate=
     rx101_cur."!cursor_pos"(rx101_pos)
-    .const 'Sub' $P141 = "28_1274022894.43745" 
+    .const 'Sub' $P141 = "28_1274564776.41408" 
     capture_lex $P141
     $P10 = rx101_cur."before"($P141)
     unless $P10, rx101_fail
@@ -1801,7 +1801,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__pod_comment"  :subid("27_1274022894.43745") :method
+.sub "!PREFIX__pod_comment"  :subid("27_1274564776.41408") :method
 .annotate 'line', 4
     new $P103, "ResizablePMCArray"
     push $P103, ""
@@ -1810,7 +1810,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "_block140"  :anon :subid("28_1274022894.43745") :method :outer("26_1274022894.43745")
+.sub "_block140"  :anon :subid("28_1274564776.41408") :method :outer("26_1274564776.41408")
 .annotate 'line', 68
     .local string rx142_tgt
     .local int rx142_pos
@@ -1929,7 +1929,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "comp_unit"  :subid("29_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "comp_unit"  :subid("29_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx151_tgt
     .local int rx151_pos
@@ -2008,7 +2008,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__comp_unit"  :subid("30_1274022894.43745") :method
+.sub "!PREFIX__comp_unit"  :subid("30_1274564776.41408") :method
 .annotate 'line', 4
     $P153 = self."!PREFIX__!subrule"("", "")
     new $P154, "ResizablePMCArray"
@@ -2018,7 +2018,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statementlist"  :subid("31_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "statementlist"  :subid("31_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx158_tgt
     .local int rx158_pos
@@ -2126,7 +2126,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statementlist"  :subid("32_1274022894.43745") :method
+.sub "!PREFIX__statementlist"  :subid("32_1274564776.41408") :method
 .annotate 'line', 4
     new $P160, "ResizablePMCArray"
     push $P160, ""
@@ -2136,9 +2136,9 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement"  :subid("33_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "statement"  :subid("33_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
-    .const 'Sub' $P176 = "35_1274022894.43745" 
+    .const 'Sub' $P176 = "35_1274564776.41408" 
     capture_lex $P176
     .local string rx171_tgt
     .local int rx171_pos
@@ -2173,7 +2173,7 @@
 .annotate 'line', 94
   # rx subrule "before" subtype=zerowidth negate=1
     rx171_cur."!cursor_pos"(rx171_pos)
-    .const 'Sub' $P176 = "35_1274022894.43745" 
+    .const 'Sub' $P176 = "35_1274564776.41408" 
     capture_lex $P176
     $P10 = rx171_cur."before"($P176)
     if $P10, rx171_fail
@@ -2278,7 +2278,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement"  :subid("34_1274022894.43745") :method
+.sub "!PREFIX__statement"  :subid("34_1274564776.41408") :method
 .annotate 'line', 4
     new $P173, "ResizablePMCArray"
     push $P173, ""
@@ -2287,7 +2287,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "_block175"  :anon :subid("35_1274022894.43745") :method :outer("33_1274022894.43745")
+.sub "_block175"  :anon :subid("35_1274564776.41408") :method :outer("33_1274564776.41408")
 .annotate 'line', 94
     .local string rx177_tgt
     .local int rx177_pos
@@ -2351,7 +2351,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "eat_terminator"  :subid("36_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "eat_terminator"  :subid("36_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx187_tgt
     .local int rx187_pos
@@ -2438,7 +2438,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__eat_terminator"  :subid("37_1274022894.43745") :method
+.sub "!PREFIX__eat_terminator"  :subid("37_1274564776.41408") :method
 .annotate 'line', 4
     new $P189, "ResizablePMCArray"
     push $P189, ""
@@ -2450,7 +2450,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "xblock"  :subid("38_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "xblock"  :subid("38_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx193_tgt
     .local int rx193_pos
@@ -2521,7 +2521,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__xblock"  :subid("39_1274022894.43745") :method
+.sub "!PREFIX__xblock"  :subid("39_1274564776.41408") :method
 .annotate 'line', 4
     $P195 = self."!PREFIX__!subrule"("EXPR", "")
     new $P196, "ResizablePMCArray"
@@ -2531,7 +2531,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "pblock"  :subid("40_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "pblock"  :subid("40_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx199_tgt
     .local int rx199_pos
@@ -2650,7 +2650,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__pblock"  :subid("41_1274022894.43745") :method
+.sub "!PREFIX__pblock"  :subid("41_1274564776.41408") :method
 .annotate 'line', 4
     $P201 = self."!PREFIX__!subrule"("", "")
     $P202 = self."!PREFIX__!subrule"("", "")
@@ -2663,7 +2663,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "lambda"  :subid("42_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "lambda"  :subid("42_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx207_tgt
     .local int rx207_pos
@@ -2734,7 +2734,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__lambda"  :subid("43_1274022894.43745") :method
+.sub "!PREFIX__lambda"  :subid("43_1274564776.41408") :method
 .annotate 'line', 4
     new $P209, "ResizablePMCArray"
     push $P209, "<->"
@@ -2744,7 +2744,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "block"  :subid("44_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "block"  :subid("44_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx213_tgt
     .local int rx213_pos
@@ -2827,7 +2827,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__block"  :subid("45_1274022894.43745") :method
+.sub "!PREFIX__block"  :subid("45_1274564776.41408") :method
 .annotate 'line', 4
     $P215 = self."!PREFIX__!subrule"("", "")
     new $P216, "ResizablePMCArray"
@@ -2838,7 +2838,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "blockoid"  :subid("46_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "blockoid"  :subid("46_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx220_tgt
     .local int rx220_pos
@@ -2933,7 +2933,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__blockoid"  :subid("47_1274022894.43745") :method
+.sub "!PREFIX__blockoid"  :subid("47_1274564776.41408") :method
 .annotate 'line', 4
     $P222 = self."!PREFIX__!subrule"("", "")
     new $P223, "ResizablePMCArray"
@@ -2943,7 +2943,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "newpad"  :subid("48_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "newpad"  :subid("48_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx228_tgt
     .local int rx228_pos
@@ -2994,7 +2994,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__newpad"  :subid("49_1274022894.43745") :method
+.sub "!PREFIX__newpad"  :subid("49_1274564776.41408") :method
 .annotate 'line', 4
     new $P230, "ResizablePMCArray"
     push $P230, ""
@@ -3003,7 +3003,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "finishpad"  :subid("50_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "finishpad"  :subid("50_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx233_tgt
     .local int rx233_pos
@@ -3054,7 +3054,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__finishpad"  :subid("51_1274022894.43745") :method
+.sub "!PREFIX__finishpad"  :subid("51_1274564776.41408") :method
 .annotate 'line', 4
     new $P235, "ResizablePMCArray"
     push $P235, ""
@@ -3063,7 +3063,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "terminator"  :subid("52_1274022894.43745") :method
+.sub "terminator"  :subid("52_1274564776.41408") :method
 .annotate 'line', 145
     $P238 = self."!protoregex"("terminator")
     .return ($P238)
@@ -3071,7 +3071,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__terminator"  :subid("53_1274022894.43745") :method
+.sub "!PREFIX__terminator"  :subid("53_1274564776.41408") :method
 .annotate 'line', 145
     $P240 = self."!PREFIX__!protoregex"("terminator")
     .return ($P240)
@@ -3079,7 +3079,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "terminator:sym<;>"  :subid("54_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "terminator:sym<;>"  :subid("54_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx242_tgt
     .local int rx242_pos
@@ -3136,7 +3136,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__terminator:sym<;>"  :subid("55_1274022894.43745") :method
+.sub "!PREFIX__terminator:sym<;>"  :subid("55_1274564776.41408") :method
 .annotate 'line', 4
     new $P244, "ResizablePMCArray"
     push $P244, ";"
@@ -3145,7 +3145,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "terminator:sym<}>"  :subid("56_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "terminator:sym<}>"  :subid("56_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx247_tgt
     .local int rx247_pos
@@ -3202,7 +3202,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__terminator:sym<}>"  :subid("57_1274022894.43745") :method
+.sub "!PREFIX__terminator:sym<}>"  :subid("57_1274564776.41408") :method
 .annotate 'line', 4
     new $P249, "ResizablePMCArray"
     push $P249, "}"
@@ -3211,7 +3211,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control"  :subid("58_1274022894.43745") :method
+.sub "statement_control"  :subid("58_1274564776.41408") :method
 .annotate 'line', 152
     $P252 = self."!protoregex"("statement_control")
     .return ($P252)
@@ -3219,7 +3219,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control"  :subid("59_1274022894.43745") :method
+.sub "!PREFIX__statement_control"  :subid("59_1274564776.41408") :method
 .annotate 'line', 152
     $P254 = self."!PREFIX__!protoregex"("statement_control")
     .return ($P254)
@@ -3227,7 +3227,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<if>"  :subid("60_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "statement_control:sym<if>"  :subid("60_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx256_tgt
     .local int rx256_pos
@@ -3237,7 +3237,7 @@
     .local pmc rx256_cur
     (rx256_cur, rx256_pos, rx256_tgt) = self."!cursor_start"()
     rx256_cur."!cursor_debug"("START ", "statement_control:sym<if>")
-    rx256_cur."!cursor_caparray"("xblock", "else")
+    rx256_cur."!cursor_caparray"("else", "xblock")
     .lex unicode:"$\x{a2}", rx256_cur
     .local pmc match
     .lex "$/", match
@@ -3421,7 +3421,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<if>"  :subid("61_1274022894.43745") :method
+.sub "!PREFIX__statement_control:sym<if>"  :subid("61_1274564776.41408") :method
 .annotate 'line', 4
     new $P258, "ResizablePMCArray"
     push $P258, "if"
@@ -3430,9 +3430,9 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<unless>"  :subid("62_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "statement_control:sym<unless>"  :subid("62_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
-    .const 'Sub' $P286 = "64_1274022894.43745" 
+    .const 'Sub' $P286 = "64_1274564776.41408" 
     capture_lex $P286
     .local string rx276_tgt
     .local int rx276_pos
@@ -3520,7 +3520,7 @@
     rx276_pos = $P10."pos"()
   # rx subrule "before" subtype=zerowidth negate=1
     rx276_cur."!cursor_pos"(rx276_pos)
-    .const 'Sub' $P286 = "64_1274022894.43745" 
+    .const 'Sub' $P286 = "64_1274564776.41408" 
     capture_lex $P286
     $P10 = rx276_cur."before"($P286)
     if $P10, rx276_fail
@@ -3572,7 +3572,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<unless>"  :subid("63_1274022894.43745") :method
+.sub "!PREFIX__statement_control:sym<unless>"  :subid("63_1274564776.41408") :method
 .annotate 'line', 4
     new $P278, "ResizablePMCArray"
     push $P278, "unless"
@@ -3581,7 +3581,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "_block285"  :anon :subid("64_1274022894.43745") :method :outer("62_1274022894.43745")
+.sub "_block285"  :anon :subid("64_1274564776.41408") :method :outer("62_1274564776.41408")
 .annotate 'line', 164
     .local string rx287_tgt
     .local int rx287_pos
@@ -3637,7 +3637,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<while>"  :subid("65_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "statement_control:sym<while>"  :subid("65_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx294_tgt
     .local int rx294_pos
@@ -3747,7 +3747,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<while>"  :subid("66_1274022894.43745") :method
+.sub "!PREFIX__statement_control:sym<while>"  :subid("66_1274564776.41408") :method
 .annotate 'line', 4
     new $P296, "ResizablePMCArray"
     push $P296, "until"
@@ -3757,7 +3757,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<repeat>"  :subid("67_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "statement_control:sym<repeat>"  :subid("67_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx303_tgt
     .local int rx303_pos
@@ -3992,7 +3992,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<repeat>"  :subid("68_1274022894.43745") :method
+.sub "!PREFIX__statement_control:sym<repeat>"  :subid("68_1274564776.41408") :method
 .annotate 'line', 4
     new $P305, "ResizablePMCArray"
     push $P305, "repeat"
@@ -4001,7 +4001,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<for>"  :subid("69_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "statement_control:sym<for>"  :subid("69_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx323_tgt
     .local int rx323_pos
@@ -4098,7 +4098,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<for>"  :subid("70_1274022894.43745") :method
+.sub "!PREFIX__statement_control:sym<for>"  :subid("70_1274564776.41408") :method
 .annotate 'line', 4
     new $P325, "ResizablePMCArray"
     push $P325, "for"
@@ -4107,7 +4107,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<CATCH>"  :subid("71_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "statement_control:sym<CATCH>"  :subid("71_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx331_tgt
     .local int rx331_pos
@@ -4204,7 +4204,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<CATCH>"  :subid("72_1274022894.43745") :method
+.sub "!PREFIX__statement_control:sym<CATCH>"  :subid("72_1274564776.41408") :method
 .annotate 'line', 4
     new $P333, "ResizablePMCArray"
     push $P333, "CATCH"
@@ -4213,7 +4213,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<CONTROL>"  :subid("73_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "statement_control:sym<CONTROL>"  :subid("73_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx339_tgt
     .local int rx339_pos
@@ -4310,7 +4310,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<CONTROL>"  :subid("74_1274022894.43745") :method
+.sub "!PREFIX__statement_control:sym<CONTROL>"  :subid("74_1274564776.41408") :method
 .annotate 'line', 4
     new $P341, "ResizablePMCArray"
     push $P341, "CONTROL"
@@ -4319,7 +4319,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_prefix"  :subid("75_1274022894.43745") :method
+.sub "statement_prefix"  :subid("75_1274564776.41408") :method
 .annotate 'line', 195
     $P347 = self."!protoregex"("statement_prefix")
     .return ($P347)
@@ -4327,7 +4327,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_prefix"  :subid("76_1274022894.43745") :method
+.sub "!PREFIX__statement_prefix"  :subid("76_1274564776.41408") :method
 .annotate 'line', 195
     $P349 = self."!PREFIX__!protoregex"("statement_prefix")
     .return ($P349)
@@ -4335,7 +4335,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_prefix:sym<INIT>"  :subid("77_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "statement_prefix:sym<INIT>"  :subid("77_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx351_tgt
     .local int rx351_pos
@@ -4414,7 +4414,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_prefix:sym<INIT>"  :subid("78_1274022894.43745") :method
+.sub "!PREFIX__statement_prefix:sym<INIT>"  :subid("78_1274564776.41408") :method
 .annotate 'line', 4
     $P353 = self."!PREFIX__!subrule"("blorst", "INIT")
     new $P354, "ResizablePMCArray"
@@ -4424,7 +4424,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_prefix:sym<try>"  :subid("79_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "statement_prefix:sym<try>"  :subid("79_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx358_tgt
     .local int rx358_pos
@@ -4505,7 +4505,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_prefix:sym<try>"  :subid("80_1274022894.43745") :method
+.sub "!PREFIX__statement_prefix:sym<try>"  :subid("80_1274564776.41408") :method
 .annotate 'line', 4
     $P360 = self."!PREFIX__!subrule"("blorst", "try")
     new $P361, "ResizablePMCArray"
@@ -4515,7 +4515,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "blorst"  :subid("81_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "blorst"  :subid("81_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx365_tgt
     .local int rx365_pos
@@ -4604,7 +4604,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__blorst"  :subid("82_1274022894.43745") :method
+.sub "!PREFIX__blorst"  :subid("82_1274564776.41408") :method
 .annotate 'line', 4
     new $P367, "ResizablePMCArray"
     push $P367, ""
@@ -4613,7 +4613,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_mod_cond"  :subid("83_1274022894.43745") :method
+.sub "statement_mod_cond"  :subid("83_1274564776.41408") :method
 .annotate 'line', 209
     $P371 = self."!protoregex"("statement_mod_cond")
     .return ($P371)
@@ -4621,7 +4621,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_cond"  :subid("84_1274022894.43745") :method
+.sub "!PREFIX__statement_mod_cond"  :subid("84_1274564776.41408") :method
 .annotate 'line', 209
     $P373 = self."!PREFIX__!protoregex"("statement_mod_cond")
     .return ($P373)
@@ -4629,7 +4629,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_mod_cond:sym<if>"  :subid("85_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "statement_mod_cond:sym<if>"  :subid("85_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx375_tgt
     .local int rx375_pos
@@ -4718,7 +4718,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_cond:sym<if>"  :subid("86_1274022894.43745") :method
+.sub "!PREFIX__statement_mod_cond:sym<if>"  :subid("86_1274564776.41408") :method
 .annotate 'line', 4
     new $P377, "ResizablePMCArray"
     push $P377, "if"
@@ -4727,7 +4727,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_mod_cond:sym<unless>"  :subid("87_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "statement_mod_cond:sym<unless>"  :subid("87_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx383_tgt
     .local int rx383_pos
@@ -4816,7 +4816,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_cond:sym<unless>"  :subid("88_1274022894.43745") :method
+.sub "!PREFIX__statement_mod_cond:sym<unless>"  :subid("88_1274564776.41408") :method
 .annotate 'line', 4
     new $P385, "ResizablePMCArray"
     push $P385, "unless"
@@ -4825,7 +4825,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_mod_loop"  :subid("89_1274022894.43745") :method
+.sub "statement_mod_loop"  :subid("89_1274564776.41408") :method
 .annotate 'line', 214
     $P391 = self."!protoregex"("statement_mod_loop")
     .return ($P391)
@@ -4833,7 +4833,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_loop"  :subid("90_1274022894.43745") :method
+.sub "!PREFIX__statement_mod_loop"  :subid("90_1274564776.41408") :method
 .annotate 'line', 214
     $P393 = self."!PREFIX__!protoregex"("statement_mod_loop")
     .return ($P393)
@@ -4841,7 +4841,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_mod_loop:sym<while>"  :subid("91_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "statement_mod_loop:sym<while>"  :subid("91_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx395_tgt
     .local int rx395_pos
@@ -4930,7 +4930,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_loop:sym<while>"  :subid("92_1274022894.43745") :method
+.sub "!PREFIX__statement_mod_loop:sym<while>"  :subid("92_1274564776.41408") :method
 .annotate 'line', 4
     new $P397, "ResizablePMCArray"
     push $P397, "while"
@@ -4939,7 +4939,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "statement_mod_loop:sym<until>"  :subid("93_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "statement_mod_loop:sym<until>"  :subid("93_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx403_tgt
     .local int rx403_pos
@@ -5028,7 +5028,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_loop:sym<until>"  :subid("94_1274022894.43745") :method
+.sub "!PREFIX__statement_mod_loop:sym<until>"  :subid("94_1274564776.41408") :method
 .annotate 'line', 4
     new $P405, "ResizablePMCArray"
     push $P405, "until"
@@ -5037,7 +5037,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<fatarrow>"  :subid("95_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "term:sym<fatarrow>"  :subid("95_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx411_tgt
     .local int rx411_pos
@@ -5095,7 +5095,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<fatarrow>"  :subid("96_1274022894.43745") :method
+.sub "!PREFIX__term:sym<fatarrow>"  :subid("96_1274564776.41408") :method
 .annotate 'line', 4
     $P413 = self."!PREFIX__!subrule"("fatarrow", "")
     new $P414, "ResizablePMCArray"
@@ -5105,7 +5105,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<colonpair>"  :subid("97_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "term:sym<colonpair>"  :subid("97_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx417_tgt
     .local int rx417_pos
@@ -5163,7 +5163,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<colonpair>"  :subid("98_1274022894.43745") :method
+.sub "!PREFIX__term:sym<colonpair>"  :subid("98_1274564776.41408") :method
 .annotate 'line', 4
     $P419 = self."!PREFIX__!subrule"("colonpair", "")
     new $P420, "ResizablePMCArray"
@@ -5173,7 +5173,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<variable>"  :subid("99_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "term:sym<variable>"  :subid("99_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx423_tgt
     .local int rx423_pos
@@ -5231,7 +5231,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<variable>"  :subid("100_1274022894.43745") :method
+.sub "!PREFIX__term:sym<variable>"  :subid("100_1274564776.41408") :method
 .annotate 'line', 4
     $P425 = self."!PREFIX__!subrule"("variable", "")
     new $P426, "ResizablePMCArray"
@@ -5241,7 +5241,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<package_declarator>"  :subid("101_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "term:sym<package_declarator>"  :subid("101_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx429_tgt
     .local int rx429_pos
@@ -5299,7 +5299,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<package_declarator>"  :subid("102_1274022894.43745") :method
+.sub "!PREFIX__term:sym<package_declarator>"  :subid("102_1274564776.41408") :method
 .annotate 'line', 4
     $P431 = self."!PREFIX__!subrule"("package_declarator", "")
     new $P432, "ResizablePMCArray"
@@ -5309,7 +5309,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<scope_declarator>"  :subid("103_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "term:sym<scope_declarator>"  :subid("103_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx435_tgt
     .local int rx435_pos
@@ -5367,7 +5367,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<scope_declarator>"  :subid("104_1274022894.43745") :method
+.sub "!PREFIX__term:sym<scope_declarator>"  :subid("104_1274564776.41408") :method
 .annotate 'line', 4
     $P437 = self."!PREFIX__!subrule"("scope_declarator", "")
     new $P438, "ResizablePMCArray"
@@ -5377,7 +5377,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<routine_declarator>"  :subid("105_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "term:sym<routine_declarator>"  :subid("105_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx441_tgt
     .local int rx441_pos
@@ -5435,7 +5435,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<routine_declarator>"  :subid("106_1274022894.43745") :method
+.sub "!PREFIX__term:sym<routine_declarator>"  :subid("106_1274564776.41408") :method
 .annotate 'line', 4
     $P443 = self."!PREFIX__!subrule"("routine_declarator", "")
     new $P444, "ResizablePMCArray"
@@ -5445,7 +5445,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<regex_declarator>"  :subid("107_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "term:sym<regex_declarator>"  :subid("107_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx447_tgt
     .local int rx447_pos
@@ -5503,7 +5503,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<regex_declarator>"  :subid("108_1274022894.43745") :method
+.sub "!PREFIX__term:sym<regex_declarator>"  :subid("108_1274564776.41408") :method
 .annotate 'line', 4
     $P449 = self."!PREFIX__!subrule"("regex_declarator", "")
     new $P450, "ResizablePMCArray"
@@ -5513,7 +5513,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<statement_prefix>"  :subid("109_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "term:sym<statement_prefix>"  :subid("109_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx453_tgt
     .local int rx453_pos
@@ -5571,7 +5571,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<statement_prefix>"  :subid("110_1274022894.43745") :method
+.sub "!PREFIX__term:sym<statement_prefix>"  :subid("110_1274564776.41408") :method
 .annotate 'line', 4
     $P455 = self."!PREFIX__!subrule"("statement_prefix", "")
     new $P456, "ResizablePMCArray"
@@ -5581,7 +5581,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<lambda>"  :subid("111_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "term:sym<lambda>"  :subid("111_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx459_tgt
     .local int rx459_pos
@@ -5643,7 +5643,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<lambda>"  :subid("112_1274022894.43745") :method
+.sub "!PREFIX__term:sym<lambda>"  :subid("112_1274564776.41408") :method
 .annotate 'line', 4
     new $P461, "ResizablePMCArray"
     push $P461, ""
@@ -5652,7 +5652,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "fatarrow"  :subid("113_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "fatarrow"  :subid("113_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx464_tgt
     .local int rx464_pos
@@ -5745,7 +5745,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__fatarrow"  :subid("114_1274022894.43745") :method
+.sub "!PREFIX__fatarrow"  :subid("114_1274564776.41408") :method
 .annotate 'line', 4
     $P466 = self."!PREFIX__!subrule"("key", "")
     new $P467, "ResizablePMCArray"
@@ -5755,7 +5755,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "colonpair"  :subid("115_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "colonpair"  :subid("115_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx472_tgt
     .local int rx472_pos
@@ -5884,7 +5884,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__colonpair"  :subid("116_1274022894.43745") :method
+.sub "!PREFIX__colonpair"  :subid("116_1274564776.41408") :method
 .annotate 'line', 4
     $P474 = self."!PREFIX__!subrule"("circumfix", ":")
     $P475 = self."!PREFIX__!subrule"("identifier", ":")
@@ -5898,7 +5898,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "variable"  :subid("117_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "variable"  :subid("117_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx484_tgt
     .local int rx484_pos
@@ -6053,7 +6053,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__variable"  :subid("118_1274022894.43745") :method
+.sub "!PREFIX__variable"  :subid("118_1274564776.41408") :method
 .annotate 'line', 4
     $P486 = self."!PREFIX__!subrule"("sigil", "")
     $P487 = self."!PREFIX__!subrule"("sigil", "")
@@ -6068,7 +6068,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "sigil"  :subid("119_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "sigil"  :subid("119_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx496_tgt
     .local int rx496_pos
@@ -6126,7 +6126,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__sigil"  :subid("120_1274022894.43745") :method
+.sub "!PREFIX__sigil"  :subid("120_1274564776.41408") :method
 .annotate 'line', 4
     new $P498, "ResizablePMCArray"
     push $P498, "&"
@@ -6138,7 +6138,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "twigil"  :subid("121_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "twigil"  :subid("121_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx501_tgt
     .local int rx501_pos
@@ -6196,7 +6196,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__twigil"  :subid("122_1274022894.43745") :method
+.sub "!PREFIX__twigil"  :subid("122_1274564776.41408") :method
 .annotate 'line', 4
     new $P503, "ResizablePMCArray"
     push $P503, "?"
@@ -6207,7 +6207,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "package_declarator"  :subid("123_1274022894.43745") :method
+.sub "package_declarator"  :subid("123_1274564776.41408") :method
 .annotate 'line', 254
     $P506 = self."!protoregex"("package_declarator")
     .return ($P506)
@@ -6215,7 +6215,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__package_declarator"  :subid("124_1274022894.43745") :method
+.sub "!PREFIX__package_declarator"  :subid("124_1274564776.41408") :method
 .annotate 'line', 254
     $P508 = self."!PREFIX__!protoregex"("package_declarator")
     .return ($P508)
@@ -6223,7 +6223,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "package_declarator:sym<module>"  :subid("125_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "package_declarator:sym<module>"  :subid("125_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx510_tgt
     .local int rx510_pos
@@ -6302,7 +6302,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__package_declarator:sym<module>"  :subid("126_1274022894.43745") :method
+.sub "!PREFIX__package_declarator:sym<module>"  :subid("126_1274564776.41408") :method
 .annotate 'line', 4
     $P512 = self."!PREFIX__!subrule"("package_def", "module")
     new $P513, "ResizablePMCArray"
@@ -6312,7 +6312,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "package_declarator:sym<class>"  :subid("127_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "package_declarator:sym<class>"  :subid("127_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx517_tgt
     .local int rx517_pos
@@ -6404,7 +6404,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__package_declarator:sym<class>"  :subid("128_1274022894.43745") :method
+.sub "!PREFIX__package_declarator:sym<class>"  :subid("128_1274564776.41408") :method
 .annotate 'line', 4
     $P519 = self."!PREFIX__!subrule"("package_def", "grammar")
     $P520 = self."!PREFIX__!subrule"("package_def", "class")
@@ -6416,7 +6416,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "package_def"  :subid("129_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "package_def"  :subid("129_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx526_tgt
     .local int rx526_pos
@@ -6620,7 +6620,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__package_def"  :subid("130_1274022894.43745") :method
+.sub "!PREFIX__package_def"  :subid("130_1274564776.41408") :method
 .annotate 'line', 4
     new $P528, "ResizablePMCArray"
     push $P528, ""
@@ -6629,7 +6629,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "scope_declarator"  :subid("131_1274022894.43745") :method
+.sub "scope_declarator"  :subid("131_1274564776.41408") :method
 .annotate 'line', 268
     $P549 = self."!protoregex"("scope_declarator")
     .return ($P549)
@@ -6637,7 +6637,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scope_declarator"  :subid("132_1274022894.43745") :method
+.sub "!PREFIX__scope_declarator"  :subid("132_1274564776.41408") :method
 .annotate 'line', 268
     $P551 = self."!PREFIX__!protoregex"("scope_declarator")
     .return ($P551)
@@ -6645,7 +6645,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "scope_declarator:sym<my>"  :subid("133_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "scope_declarator:sym<my>"  :subid("133_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx553_tgt
     .local int rx553_pos
@@ -6724,7 +6724,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scope_declarator:sym<my>"  :subid("134_1274022894.43745") :method
+.sub "!PREFIX__scope_declarator:sym<my>"  :subid("134_1274564776.41408") :method
 .annotate 'line', 4
     $P555 = self."!PREFIX__!subrule"("scoped", "my")
     new $P556, "ResizablePMCArray"
@@ -6734,7 +6734,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "scope_declarator:sym<our>"  :subid("135_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "scope_declarator:sym<our>"  :subid("135_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx560_tgt
     .local int rx560_pos
@@ -6813,7 +6813,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scope_declarator:sym<our>"  :subid("136_1274022894.43745") :method
+.sub "!PREFIX__scope_declarator:sym<our>"  :subid("136_1274564776.41408") :method
 .annotate 'line', 4
     $P562 = self."!PREFIX__!subrule"("scoped", "our")
     new $P563, "ResizablePMCArray"
@@ -6823,7 +6823,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "scope_declarator:sym<has>"  :subid("137_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "scope_declarator:sym<has>"  :subid("137_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx567_tgt
     .local int rx567_pos
@@ -6902,7 +6902,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scope_declarator:sym<has>"  :subid("138_1274022894.43745") :method
+.sub "!PREFIX__scope_declarator:sym<has>"  :subid("138_1274564776.41408") :method
 .annotate 'line', 4
     $P569 = self."!PREFIX__!subrule"("scoped", "has")
     new $P570, "ResizablePMCArray"
@@ -6912,7 +6912,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "scoped"  :subid("139_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "scoped"  :subid("139_1274564776.41408") :method :outer("11_1274564776.41408")
     .param pmc param_574
 .annotate 'line', 273
     .lex "$*SCOPE", param_574
@@ -7030,7 +7030,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scoped"  :subid("140_1274022894.43745") :method
+.sub "!PREFIX__scoped"  :subid("140_1274564776.41408") :method
 .annotate 'line', 4
     new $P577, "ResizablePMCArray"
     push $P577, ""
@@ -7040,7 +7040,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "typename"  :subid("141_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "typename"  :subid("141_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx588_tgt
     .local int rx588_pos
@@ -7098,7 +7098,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__typename"  :subid("142_1274022894.43745") :method
+.sub "!PREFIX__typename"  :subid("142_1274564776.41408") :method
 .annotate 'line', 4
     $P590 = self."!PREFIX__!subrule"("name", "")
     new $P591, "ResizablePMCArray"
@@ -7108,7 +7108,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "declarator"  :subid("143_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "declarator"  :subid("143_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx594_tgt
     .local int rx594_pos
@@ -7182,7 +7182,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__declarator"  :subid("144_1274022894.43745") :method
+.sub "!PREFIX__declarator"  :subid("144_1274564776.41408") :method
 .annotate 'line', 4
     $P596 = self."!PREFIX__!subrule"("routine_declarator", "")
     $P597 = self."!PREFIX__!subrule"("variable_declarator", "")
@@ -7194,7 +7194,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "variable_declarator"  :subid("145_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "variable_declarator"  :subid("145_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx602_tgt
     .local int rx602_pos
@@ -7252,7 +7252,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__variable_declarator"  :subid("146_1274022894.43745") :method
+.sub "!PREFIX__variable_declarator"  :subid("146_1274564776.41408") :method
 .annotate 'line', 4
     $P604 = self."!PREFIX__!subrule"("variable", "")
     new $P605, "ResizablePMCArray"
@@ -7262,7 +7262,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "routine_declarator"  :subid("147_1274022894.43745") :method
+.sub "routine_declarator"  :subid("147_1274564776.41408") :method
 .annotate 'line', 287
     $P608 = self."!protoregex"("routine_declarator")
     .return ($P608)
@@ -7270,7 +7270,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__routine_declarator"  :subid("148_1274022894.43745") :method
+.sub "!PREFIX__routine_declarator"  :subid("148_1274564776.41408") :method
 .annotate 'line', 287
     $P610 = self."!PREFIX__!protoregex"("routine_declarator")
     .return ($P610)
@@ -7278,7 +7278,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "routine_declarator:sym<sub>"  :subid("149_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "routine_declarator:sym<sub>"  :subid("149_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx612_tgt
     .local int rx612_pos
@@ -7357,7 +7357,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__routine_declarator:sym<sub>"  :subid("150_1274022894.43745") :method
+.sub "!PREFIX__routine_declarator:sym<sub>"  :subid("150_1274564776.41408") :method
 .annotate 'line', 4
     $P614 = self."!PREFIX__!subrule"("routine_def", "sub")
     new $P615, "ResizablePMCArray"
@@ -7367,7 +7367,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "routine_declarator:sym<method>"  :subid("151_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "routine_declarator:sym<method>"  :subid("151_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx619_tgt
     .local int rx619_pos
@@ -7446,7 +7446,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__routine_declarator:sym<method>"  :subid("152_1274022894.43745") :method
+.sub "!PREFIX__routine_declarator:sym<method>"  :subid("152_1274564776.41408") :method
 .annotate 'line', 4
     $P621 = self."!PREFIX__!subrule"("method_def", "method")
     new $P622, "ResizablePMCArray"
@@ -7456,7 +7456,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "routine_def"  :subid("153_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "routine_def"  :subid("153_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx626_tgt
     .local int rx626_pos
@@ -7466,7 +7466,7 @@
     .local pmc rx626_cur
     (rx626_cur, rx626_pos, rx626_tgt) = self."!cursor_start"()
     rx626_cur."!cursor_debug"("START ", "routine_def")
-    rx626_cur."!cursor_caparray"("sigil", "deflongname")
+    rx626_cur."!cursor_caparray"("deflongname", "sigil")
     .lex unicode:"$\x{a2}", rx626_cur
     .local pmc match
     .lex "$/", match
@@ -7663,7 +7663,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__routine_def"  :subid("154_1274022894.43745") :method
+.sub "!PREFIX__routine_def"  :subid("154_1274564776.41408") :method
 .annotate 'line', 4
     new $P628, "ResizablePMCArray"
     push $P628, ""
@@ -7672,7 +7672,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "method_def"  :subid("155_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "method_def"  :subid("155_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx650_tgt
     .local int rx650_pos
@@ -7842,7 +7842,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__method_def"  :subid("156_1274022894.43745") :method
+.sub "!PREFIX__method_def"  :subid("156_1274564776.41408") :method
 .annotate 'line', 4
     new $P652, "ResizablePMCArray"
     push $P652, ""
@@ -7851,7 +7851,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "signature"  :subid("157_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "signature"  :subid("157_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx669_tgt
     .local int rx669_pos
@@ -7941,7 +7941,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__signature"  :subid("158_1274022894.43745") :method
+.sub "!PREFIX__signature"  :subid("158_1274564776.41408") :method
 .annotate 'line', 4
     new $P671, "ResizablePMCArray"
     push $P671, ""
@@ -7950,7 +7950,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "parameter"  :subid("159_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "parameter"  :subid("159_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx678_tgt
     .local int rx678_pos
@@ -7960,7 +7960,7 @@
     .local pmc rx678_cur
     (rx678_cur, rx678_pos, rx678_tgt) = self."!cursor_start"()
     rx678_cur."!cursor_debug"("START ", "parameter")
-    rx678_cur."!cursor_caparray"("typename", "default_value")
+    rx678_cur."!cursor_caparray"("default_value", "typename")
     .lex unicode:"$\x{a2}", rx678_cur
     .local pmc match
     .lex "$/", match
@@ -8132,7 +8132,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__parameter"  :subid("160_1274022894.43745") :method
+.sub "!PREFIX__parameter"  :subid("160_1274564776.41408") :method
 .annotate 'line', 4
     new $P680, "ResizablePMCArray"
     push $P680, ""
@@ -8141,7 +8141,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "param_var"  :subid("161_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "param_var"  :subid("161_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx692_tgt
     .local int rx692_pos
@@ -8249,7 +8249,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__param_var"  :subid("162_1274022894.43745") :method
+.sub "!PREFIX__param_var"  :subid("162_1274564776.41408") :method
 .annotate 'line', 4
     $P694 = self."!PREFIX__!subrule"("sigil", "")
     new $P695, "ResizablePMCArray"
@@ -8259,7 +8259,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "named_param"  :subid("163_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "named_param"  :subid("163_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx702_tgt
     .local int rx702_pos
@@ -8325,7 +8325,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__named_param"  :subid("164_1274022894.43745") :method
+.sub "!PREFIX__named_param"  :subid("164_1274564776.41408") :method
 .annotate 'line', 4
     $P704 = self."!PREFIX__!subrule"("param_var", ":")
     new $P705, "ResizablePMCArray"
@@ -8335,7 +8335,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "default_value"  :subid("165_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "default_value"  :subid("165_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx708_tgt
     .local int rx708_pos
@@ -8415,7 +8415,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__default_value"  :subid("166_1274022894.43745") :method
+.sub "!PREFIX__default_value"  :subid("166_1274564776.41408") :method
 .annotate 'line', 4
     new $P710, "ResizablePMCArray"
     push $P710, ""
@@ -8424,7 +8424,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "regex_declarator"  :subid("167_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "regex_declarator"  :subid("167_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx716_tgt
     .local int rx716_pos
@@ -8825,7 +8825,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__regex_declarator"  :subid("168_1274022894.43745") :method
+.sub "!PREFIX__regex_declarator"  :subid("168_1274564776.41408") :method
 .annotate 'line', 4
     new $P718, "ResizablePMCArray"
     push $P718, ""
@@ -8834,7 +8834,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "dotty"  :subid("169_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "dotty"  :subid("169_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx753_tgt
     .local int rx753_pos
@@ -8990,7 +8990,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__dotty"  :subid("170_1274022894.43745") :method
+.sub "!PREFIX__dotty"  :subid("170_1274564776.41408") :method
 .annotate 'line', 4
     $P755 = self."!PREFIX__!subrule"("longname=identifier", ".")
     new $P756, "ResizablePMCArray"
@@ -9002,7 +9002,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term"  :subid("171_1274022894.43745") :method
+.sub "term"  :subid("171_1274564776.41408") :method
 .annotate 'line', 360
     $P764 = self."!protoregex"("term")
     .return ($P764)
@@ -9010,7 +9010,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term"  :subid("172_1274022894.43745") :method
+.sub "!PREFIX__term"  :subid("172_1274564776.41408") :method
 .annotate 'line', 360
     $P766 = self."!PREFIX__!protoregex"("term")
     .return ($P766)
@@ -9018,7 +9018,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<self>"  :subid("173_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "term:sym<self>"  :subid("173_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx768_tgt
     .local int rx768_pos
@@ -9098,7 +9098,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<self>"  :subid("174_1274022894.43745") :method
+.sub "!PREFIX__term:sym<self>"  :subid("174_1274564776.41408") :method
 .annotate 'line', 4
     new $P770, "ResizablePMCArray"
     push $P770, "self"
@@ -9107,7 +9107,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<identifier>"  :subid("175_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "term:sym<identifier>"  :subid("175_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx774_tgt
     .local int rx774_pos
@@ -9179,7 +9179,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<identifier>"  :subid("176_1274022894.43745") :method
+.sub "!PREFIX__term:sym<identifier>"  :subid("176_1274564776.41408") :method
 .annotate 'line', 4
     $P776 = self."!PREFIX__!subrule"("identifier", "")
     new $P777, "ResizablePMCArray"
@@ -9189,7 +9189,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<name>"  :subid("177_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "term:sym<name>"  :subid("177_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx780_tgt
     .local int rx780_pos
@@ -9262,7 +9262,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<name>"  :subid("178_1274022894.43745") :method
+.sub "!PREFIX__term:sym<name>"  :subid("178_1274564776.41408") :method
 .annotate 'line', 4
     $P782 = self."!PREFIX__!subrule"("name", "")
     new $P783, "ResizablePMCArray"
@@ -9272,7 +9272,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<pir::op>"  :subid("179_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "term:sym<pir::op>"  :subid("179_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx788_tgt
     .local int rx788_pos
@@ -9365,7 +9365,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<pir::op>"  :subid("180_1274022894.43745") :method
+.sub "!PREFIX__term:sym<pir::op>"  :subid("180_1274564776.41408") :method
 .annotate 'line', 4
     new $P790, "ResizablePMCArray"
     push $P790, "pir::"
@@ -9374,7 +9374,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "args"  :subid("181_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "args"  :subid("181_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx796_tgt
     .local int rx796_pos
@@ -9446,7 +9446,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__args"  :subid("182_1274022894.43745") :method
+.sub "!PREFIX__args"  :subid("182_1274564776.41408") :method
 .annotate 'line', 4
     $P798 = self."!PREFIX__!subrule"("arglist", "(")
     new $P799, "ResizablePMCArray"
@@ -9456,7 +9456,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "arglist"  :subid("183_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "arglist"  :subid("183_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx802_tgt
     .local int rx802_pos
@@ -9528,7 +9528,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__arglist"  :subid("184_1274022894.43745") :method
+.sub "!PREFIX__arglist"  :subid("184_1274564776.41408") :method
 .annotate 'line', 4
     $P804 = self."!PREFIX__!subrule"("", "")
     new $P805, "ResizablePMCArray"
@@ -9538,7 +9538,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<value>"  :subid("185_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "term:sym<value>"  :subid("185_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx809_tgt
     .local int rx809_pos
@@ -9596,7 +9596,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<value>"  :subid("186_1274022894.43745") :method
+.sub "!PREFIX__term:sym<value>"  :subid("186_1274564776.41408") :method
 .annotate 'line', 4
     $P811 = self."!PREFIX__!subrule"("value", "")
     new $P812, "ResizablePMCArray"
@@ -9606,7 +9606,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "value"  :subid("187_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "value"  :subid("187_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx815_tgt
     .local int rx815_pos
@@ -9680,7 +9680,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__value"  :subid("188_1274022894.43745") :method
+.sub "!PREFIX__value"  :subid("188_1274564776.41408") :method
 .annotate 'line', 4
     $P817 = self."!PREFIX__!subrule"("number", "")
     $P818 = self."!PREFIX__!subrule"("quote", "")
@@ -9692,7 +9692,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "number"  :subid("189_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "number"  :subid("189_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx823_tgt
     .local int rx823_pos
@@ -9792,7 +9792,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__number"  :subid("190_1274022894.43745") :method
+.sub "!PREFIX__number"  :subid("190_1274564776.41408") :method
 .annotate 'line', 4
     new $P825, "ResizablePMCArray"
     push $P825, ""
@@ -9801,7 +9801,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote"  :subid("191_1274022894.43745") :method
+.sub "quote"  :subid("191_1274564776.41408") :method
 .annotate 'line', 401
     $P832 = self."!protoregex"("quote")
     .return ($P832)
@@ -9809,7 +9809,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote"  :subid("192_1274022894.43745") :method
+.sub "!PREFIX__quote"  :subid("192_1274564776.41408") :method
 .annotate 'line', 401
     $P834 = self."!PREFIX__!protoregex"("quote")
     .return ($P834)
@@ -9817,7 +9817,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote:sym<apos>"  :subid("193_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "quote:sym<apos>"  :subid("193_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx836_tgt
     .local int rx836_pos
@@ -9881,7 +9881,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<apos>"  :subid("194_1274022894.43745") :method
+.sub "!PREFIX__quote:sym<apos>"  :subid("194_1274564776.41408") :method
 .annotate 'line', 4
     new $P838, "ResizablePMCArray"
     push $P838, "'"
@@ -9890,7 +9890,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote:sym<dblq>"  :subid("195_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "quote:sym<dblq>"  :subid("195_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx841_tgt
     .local int rx841_pos
@@ -9954,7 +9954,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<dblq>"  :subid("196_1274022894.43745") :method
+.sub "!PREFIX__quote:sym<dblq>"  :subid("196_1274564776.41408") :method
 .annotate 'line', 4
     new $P843, "ResizablePMCArray"
     push $P843, "\""
@@ -9963,7 +9963,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote:sym<q>"  :subid("197_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "quote:sym<q>"  :subid("197_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx846_tgt
     .local int rx846_pos
@@ -10047,7 +10047,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<q>"  :subid("198_1274022894.43745") :method
+.sub "!PREFIX__quote:sym<q>"  :subid("198_1274564776.41408") :method
 .annotate 'line', 4
     $P848 = self."!PREFIX__!subrule"("", "q")
     new $P849, "ResizablePMCArray"
@@ -10057,7 +10057,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote:sym<qq>"  :subid("199_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "quote:sym<qq>"  :subid("199_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx852_tgt
     .local int rx852_pos
@@ -10141,7 +10141,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<qq>"  :subid("200_1274022894.43745") :method
+.sub "!PREFIX__quote:sym<qq>"  :subid("200_1274564776.41408") :method
 .annotate 'line', 4
     $P854 = self."!PREFIX__!subrule"("", "qq")
     new $P855, "ResizablePMCArray"
@@ -10151,7 +10151,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote:sym<Q>"  :subid("201_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "quote:sym<Q>"  :subid("201_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx858_tgt
     .local int rx858_pos
@@ -10235,7 +10235,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<Q>"  :subid("202_1274022894.43745") :method
+.sub "!PREFIX__quote:sym<Q>"  :subid("202_1274564776.41408") :method
 .annotate 'line', 4
     $P860 = self."!PREFIX__!subrule"("", "Q")
     new $P861, "ResizablePMCArray"
@@ -10245,7 +10245,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote:sym<Q:PIR>"  :subid("203_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "quote:sym<Q:PIR>"  :subid("203_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx864_tgt
     .local int rx864_pos
@@ -10315,7 +10315,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<Q:PIR>"  :subid("204_1274022894.43745") :method
+.sub "!PREFIX__quote:sym<Q:PIR>"  :subid("204_1274564776.41408") :method
 .annotate 'line', 4
     $P866 = self."!PREFIX__!subrule"("", "Q:PIR")
     new $P867, "ResizablePMCArray"
@@ -10325,7 +10325,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote:sym</ />"  :subid("205_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "quote:sym</ />"  :subid("205_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx870_tgt
     .local int rx870_pos
@@ -10410,7 +10410,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym</ />"  :subid("206_1274022894.43745") :method
+.sub "!PREFIX__quote:sym</ />"  :subid("206_1274564776.41408") :method
 .annotate 'line', 4
     $P872 = self."!PREFIX__!subrule"("", "/")
     new $P873, "ResizablePMCArray"
@@ -10420,7 +10420,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote_escape:sym<$>"  :subid("207_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "quote_escape:sym<$>"  :subid("207_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx876_tgt
     .local int rx876_pos
@@ -10488,7 +10488,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<$>"  :subid("208_1274022894.43745") :method
+.sub "!PREFIX__quote_escape:sym<$>"  :subid("208_1274564776.41408") :method
 .annotate 'line', 4
     new $P878, "ResizablePMCArray"
     push $P878, "$"
@@ -10497,7 +10497,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote_escape:sym<{ }>"  :subid("209_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "quote_escape:sym<{ }>"  :subid("209_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx881_tgt
     .local int rx881_pos
@@ -10565,7 +10565,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<{ }>"  :subid("210_1274022894.43745") :method
+.sub "!PREFIX__quote_escape:sym<{ }>"  :subid("210_1274564776.41408") :method
 .annotate 'line', 4
     new $P883, "ResizablePMCArray"
     push $P883, "{"
@@ -10574,7 +10574,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "quote_escape:sym<esc>"  :subid("211_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "quote_escape:sym<esc>"  :subid("211_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx886_tgt
     .local int rx886_pos
@@ -10636,7 +10636,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<esc>"  :subid("212_1274022894.43745") :method
+.sub "!PREFIX__quote_escape:sym<esc>"  :subid("212_1274564776.41408") :method
 .annotate 'line', 4
     new $P888, "ResizablePMCArray"
     push $P888, "\\e"
@@ -10645,7 +10645,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<( )>"  :subid("213_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "circumfix:sym<( )>"  :subid("213_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx891_tgt
     .local int rx891_pos
@@ -10729,7 +10729,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<( )>"  :subid("214_1274022894.43745") :method
+.sub "!PREFIX__circumfix:sym<( )>"  :subid("214_1274564776.41408") :method
 .annotate 'line', 4
     $P893 = self."!PREFIX__!subrule"("", "(")
     new $P894, "ResizablePMCArray"
@@ -10739,7 +10739,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<[ ]>"  :subid("215_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "circumfix:sym<[ ]>"  :subid("215_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx899_tgt
     .local int rx899_pos
@@ -10823,7 +10823,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<[ ]>"  :subid("216_1274022894.43745") :method
+.sub "!PREFIX__circumfix:sym<[ ]>"  :subid("216_1274564776.41408") :method
 .annotate 'line', 4
     $P901 = self."!PREFIX__!subrule"("", "[")
     new $P902, "ResizablePMCArray"
@@ -10833,7 +10833,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<ang>"  :subid("217_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "circumfix:sym<ang>"  :subid("217_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx907_tgt
     .local int rx907_pos
@@ -10897,7 +10897,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<ang>"  :subid("218_1274022894.43745") :method
+.sub "!PREFIX__circumfix:sym<ang>"  :subid("218_1274564776.41408") :method
 .annotate 'line', 4
     new $P909, "ResizablePMCArray"
     push $P909, "<"
@@ -10906,7 +10906,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub unicode:"circumfix:sym<\x{ab} \x{bb}>"  :subid("219_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub unicode:"circumfix:sym<\x{ab} \x{bb}>"  :subid("219_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx912_tgt
     .local int rx912_pos
@@ -10970,7 +10970,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub unicode:"!PREFIX__circumfix:sym<\x{ab} \x{bb}>"  :subid("220_1274022894.43745") :method
+.sub unicode:"!PREFIX__circumfix:sym<\x{ab} \x{bb}>"  :subid("220_1274564776.41408") :method
 .annotate 'line', 4
     new $P914, "ResizablePMCArray"
     push $P914, unicode:"\x{ab}"
@@ -10979,7 +10979,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<{ }>"  :subid("221_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "circumfix:sym<{ }>"  :subid("221_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx917_tgt
     .local int rx917_pos
@@ -11043,7 +11043,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<{ }>"  :subid("222_1274022894.43745") :method
+.sub "!PREFIX__circumfix:sym<{ }>"  :subid("222_1274564776.41408") :method
 .annotate 'line', 4
     new $P919, "ResizablePMCArray"
     push $P919, "{"
@@ -11052,7 +11052,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<sigil>"  :subid("223_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "circumfix:sym<sigil>"  :subid("223_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx922_tgt
     .local int rx922_pos
@@ -11142,7 +11142,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<sigil>"  :subid("224_1274022894.43745") :method
+.sub "!PREFIX__circumfix:sym<sigil>"  :subid("224_1274564776.41408") :method
 .annotate 'line', 4
     $P924 = self."!PREFIX__!subrule"("sigil", "")
     new $P925, "ResizablePMCArray"
@@ -11152,7 +11152,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "semilist"  :subid("225_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "semilist"  :subid("225_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 4
     .local string rx930_tgt
     .local int rx930_pos
@@ -11220,7 +11220,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__semilist"  :subid("226_1274022894.43745") :method
+.sub "!PREFIX__semilist"  :subid("226_1274564776.41408") :method
 .annotate 'line', 4
     new $P932, "ResizablePMCArray"
     push $P932, ""
@@ -11229,7 +11229,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infixish"  :subid("227_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "infixish"  :subid("227_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 431
     .local string rx937_tgt
     .local int rx937_pos
@@ -11291,7 +11291,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infixish"  :subid("228_1274022894.43745") :method
+.sub "!PREFIX__infixish"  :subid("228_1274564776.41408") :method
 .annotate 'line', 431
     new $P939, "ResizablePMCArray"
     push $P939, ""
@@ -11300,7 +11300,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infixstopper"  :subid("229_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "infixstopper"  :subid("229_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 431
     .local string rx942_tgt
     .local int rx942_pos
@@ -11355,7 +11355,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infixstopper"  :subid("230_1274022894.43745") :method
+.sub "!PREFIX__infixstopper"  :subid("230_1274564776.41408") :method
 .annotate 'line', 431
     new $P944, "ResizablePMCArray"
     push $P944, ""
@@ -11364,7 +11364,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "postcircumfix:sym<[ ]>"  :subid("231_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "postcircumfix:sym<[ ]>"  :subid("231_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 431
     .local string rx947_tgt
     .local int rx947_pos
@@ -11450,7 +11450,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postcircumfix:sym<[ ]>"  :subid("232_1274022894.43745") :method
+.sub "!PREFIX__postcircumfix:sym<[ ]>"  :subid("232_1274564776.41408") :method
 .annotate 'line', 431
     $P949 = self."!PREFIX__!subrule"("", "[")
     new $P950, "ResizablePMCArray"
@@ -11460,7 +11460,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "postcircumfix:sym<{ }>"  :subid("233_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "postcircumfix:sym<{ }>"  :subid("233_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 431
     .local string rx953_tgt
     .local int rx953_pos
@@ -11546,7 +11546,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postcircumfix:sym<{ }>"  :subid("234_1274022894.43745") :method
+.sub "!PREFIX__postcircumfix:sym<{ }>"  :subid("234_1274564776.41408") :method
 .annotate 'line', 431
     $P955 = self."!PREFIX__!subrule"("", "{")
     new $P956, "ResizablePMCArray"
@@ -11556,7 +11556,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "postcircumfix:sym<ang>"  :subid("235_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "postcircumfix:sym<ang>"  :subid("235_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 431
     .local string rx959_tgt
     .local int rx959_pos
@@ -11629,7 +11629,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postcircumfix:sym<ang>"  :subid("236_1274022894.43745") :method
+.sub "!PREFIX__postcircumfix:sym<ang>"  :subid("236_1274564776.41408") :method
 .annotate 'line', 431
     new $P961, "ResizablePMCArray"
     push $P961, "<"
@@ -11638,7 +11638,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "postcircumfix:sym<( )>"  :subid("237_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "postcircumfix:sym<( )>"  :subid("237_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 431
     .local string rx964_tgt
     .local int rx964_pos
@@ -11724,7 +11724,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postcircumfix:sym<( )>"  :subid("238_1274022894.43745") :method
+.sub "!PREFIX__postcircumfix:sym<( )>"  :subid("238_1274564776.41408") :method
 .annotate 'line', 431
     $P966 = self."!PREFIX__!subrule"("", "(")
     new $P967, "ResizablePMCArray"
@@ -11734,7 +11734,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "postfix:sym<.>"  :subid("239_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "postfix:sym<.>"  :subid("239_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 431
     .local string rx970_tgt
     .local int rx970_pos
@@ -11799,7 +11799,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postfix:sym<.>"  :subid("240_1274022894.43745") :method
+.sub "!PREFIX__postfix:sym<.>"  :subid("240_1274564776.41408") :method
 .annotate 'line', 431
     $P972 = self."!PREFIX__!subrule"("dotty", "")
     new $P973, "ResizablePMCArray"
@@ -11809,7 +11809,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<++>"  :subid("241_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "prefix:sym<++>"  :subid("241_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 431
     .local string rx976_tgt
     .local int rx976_pos
@@ -11888,7 +11888,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<++>"  :subid("242_1274022894.43745") :method
+.sub "!PREFIX__prefix:sym<++>"  :subid("242_1274564776.41408") :method
 .annotate 'line', 431
     $P978 = self."!PREFIX__!subrule"("O", "++")
     new $P979, "ResizablePMCArray"
@@ -11898,7 +11898,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<-->"  :subid("243_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "prefix:sym<-->"  :subid("243_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 431
     .local string rx983_tgt
     .local int rx983_pos
@@ -11977,7 +11977,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<-->"  :subid("244_1274022894.43745") :method
+.sub "!PREFIX__prefix:sym<-->"  :subid("244_1274564776.41408") :method
 .annotate 'line', 431
     $P985 = self."!PREFIX__!subrule"("O", "--")
     new $P986, "ResizablePMCArray"
@@ -11987,7 +11987,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "postfix:sym<++>"  :subid("245_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "postfix:sym<++>"  :subid("245_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 431
     .local string rx990_tgt
     .local int rx990_pos
@@ -12066,7 +12066,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postfix:sym<++>"  :subid("246_1274022894.43745") :method
+.sub "!PREFIX__postfix:sym<++>"  :subid("246_1274564776.41408") :method
 .annotate 'line', 431
     $P992 = self."!PREFIX__!subrule"("O", "++")
     new $P993, "ResizablePMCArray"
@@ -12076,7 +12076,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "postfix:sym<-->"  :subid("247_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "postfix:sym<-->"  :subid("247_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 431
     .local string rx997_tgt
     .local int rx997_pos
@@ -12155,7 +12155,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postfix:sym<-->"  :subid("248_1274022894.43745") :method
+.sub "!PREFIX__postfix:sym<-->"  :subid("248_1274564776.41408") :method
 .annotate 'line', 431
     $P999 = self."!PREFIX__!subrule"("O", "--")
     new $P1000, "ResizablePMCArray"
@@ -12165,7 +12165,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<**>"  :subid("249_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "infix:sym<**>"  :subid("249_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 431
     .local string rx1004_tgt
     .local int rx1004_pos
@@ -12244,7 +12244,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<**>"  :subid("250_1274022894.43745") :method
+.sub "!PREFIX__infix:sym<**>"  :subid("250_1274564776.41408") :method
 .annotate 'line', 431
     $P1006 = self."!PREFIX__!subrule"("O", "**")
     new $P1007, "ResizablePMCArray"
@@ -12254,7 +12254,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<+>"  :subid("251_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "prefix:sym<+>"  :subid("251_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 431
     .local string rx1011_tgt
     .local int rx1011_pos
@@ -12333,7 +12333,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<+>"  :subid("252_1274022894.43745") :method
+.sub "!PREFIX__prefix:sym<+>"  :subid("252_1274564776.41408") :method
 .annotate 'line', 431
     $P1013 = self."!PREFIX__!subrule"("O", "+")
     new $P1014, "ResizablePMCArray"
@@ -12343,7 +12343,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<~>"  :subid("253_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "prefix:sym<~>"  :subid("253_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 431
     .local string rx1018_tgt
     .local int rx1018_pos
@@ -12422,7 +12422,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<~>"  :subid("254_1274022894.43745") :method
+.sub "!PREFIX__prefix:sym<~>"  :subid("254_1274564776.41408") :method
 .annotate 'line', 431
     $P1020 = self."!PREFIX__!subrule"("O", "~")
     new $P1021, "ResizablePMCArray"
@@ -12432,7 +12432,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<->"  :subid("255_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "prefix:sym<->"  :subid("255_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 431
     .local string rx1025_tgt
     .local int rx1025_pos
@@ -12521,7 +12521,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<->"  :subid("256_1274022894.43745") :method
+.sub "!PREFIX__prefix:sym<->"  :subid("256_1274564776.41408") :method
 .annotate 'line', 431
     new $P1027, "ResizablePMCArray"
     push $P1027, "-"
@@ -12530,7 +12530,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<?>"  :subid("257_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "prefix:sym<?>"  :subid("257_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 431
     .local string rx1031_tgt
     .local int rx1031_pos
@@ -12609,7 +12609,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<?>"  :subid("258_1274022894.43745") :method
+.sub "!PREFIX__prefix:sym<?>"  :subid("258_1274564776.41408") :method
 .annotate 'line', 431
     $P1033 = self."!PREFIX__!subrule"("O", "?")
     new $P1034, "ResizablePMCArray"
@@ -12619,7 +12619,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<!>"  :subid("259_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "prefix:sym<!>"  :subid("259_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 431
     .local string rx1038_tgt
     .local int rx1038_pos
@@ -12698,7 +12698,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<!>"  :subid("260_1274022894.43745") :method
+.sub "!PREFIX__prefix:sym<!>"  :subid("260_1274564776.41408") :method
 .annotate 'line', 431
     $P1040 = self."!PREFIX__!subrule"("O", "!")
     new $P1041, "ResizablePMCArray"
@@ -12708,7 +12708,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<|>"  :subid("261_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "prefix:sym<|>"  :subid("261_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 431
     .local string rx1045_tgt
     .local int rx1045_pos
@@ -12787,7 +12787,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<|>"  :subid("262_1274022894.43745") :method
+.sub "!PREFIX__prefix:sym<|>"  :subid("262_1274564776.41408") :method
 .annotate 'line', 431
     $P1047 = self."!PREFIX__!subrule"("O", "|")
     new $P1048, "ResizablePMCArray"
@@ -12797,7 +12797,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<*>"  :subid("263_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "infix:sym<*>"  :subid("263_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 431
     .local string rx1052_tgt
     .local int rx1052_pos
@@ -12876,7 +12876,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<*>"  :subid("264_1274022894.43745") :method
+.sub "!PREFIX__infix:sym<*>"  :subid("264_1274564776.41408") :method
 .annotate 'line', 431
     $P1054 = self."!PREFIX__!subrule"("O", "*")
     new $P1055, "ResizablePMCArray"
@@ -12886,7 +12886,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym</>"  :subid("265_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "infix:sym</>"  :subid("265_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 431
     .local string rx1059_tgt
     .local int rx1059_pos
@@ -12965,7 +12965,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym</>"  :subid("266_1274022894.43745") :method
+.sub "!PREFIX__infix:sym</>"  :subid("266_1274564776.41408") :method
 .annotate 'line', 431
     $P1061 = self."!PREFIX__!subrule"("O", "/")
     new $P1062, "ResizablePMCArray"
@@ -12975,7 +12975,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<%>"  :subid("267_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "infix:sym<%>"  :subid("267_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 431
     .local string rx1066_tgt
     .local int rx1066_pos
@@ -13054,7 +13054,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<%>"  :subid("268_1274022894.43745") :method
+.sub "!PREFIX__infix:sym<%>"  :subid("268_1274564776.41408") :method
 .annotate 'line', 431
     $P1068 = self."!PREFIX__!subrule"("O", "%")
     new $P1069, "ResizablePMCArray"
@@ -13064,7 +13064,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<+>"  :subid("269_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "infix:sym<+>"  :subid("269_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 431
     .local string rx1073_tgt
     .local int rx1073_pos
@@ -13143,7 +13143,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<+>"  :subid("270_1274022894.43745") :method
+.sub "!PREFIX__infix:sym<+>"  :subid("270_1274564776.41408") :method
 .annotate 'line', 431
     $P1075 = self."!PREFIX__!subrule"("O", "+")
     new $P1076, "ResizablePMCArray"
@@ -13153,7 +13153,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<->"  :subid("271_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "infix:sym<->"  :subid("271_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 431
     .local string rx1080_tgt
     .local int rx1080_pos
@@ -13232,7 +13232,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<->"  :subid("272_1274022894.43745") :method
+.sub "!PREFIX__infix:sym<->"  :subid("272_1274564776.41408") :method
 .annotate 'line', 431
     $P1082 = self."!PREFIX__!subrule"("O", "-")
     new $P1083, "ResizablePMCArray"
@@ -13242,7 +13242,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<~>"  :subid("273_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "infix:sym<~>"  :subid("273_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 431
     .local string rx1087_tgt
     .local int rx1087_pos
@@ -13321,7 +13321,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<~>"  :subid("274_1274022894.43745") :method
+.sub "!PREFIX__infix:sym<~>"  :subid("274_1274564776.41408") :method
 .annotate 'line', 431
     $P1089 = self."!PREFIX__!subrule"("O", "~")
     new $P1090, "ResizablePMCArray"
@@ -13331,7 +13331,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<==>"  :subid("275_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "infix:sym<==>"  :subid("275_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 431
     .local string rx1094_tgt
     .local int rx1094_pos
@@ -13410,7 +13410,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<==>"  :subid("276_1274022894.43745") :method
+.sub "!PREFIX__infix:sym<==>"  :subid("276_1274564776.41408") :method
 .annotate 'line', 431
     $P1096 = self."!PREFIX__!subrule"("O", "==")
     new $P1097, "ResizablePMCArray"
@@ -13420,7 +13420,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<!=>"  :subid("277_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "infix:sym<!=>"  :subid("277_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 431
     .local string rx1101_tgt
     .local int rx1101_pos
@@ -13499,7 +13499,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<!=>"  :subid("278_1274022894.43745") :method
+.sub "!PREFIX__infix:sym<!=>"  :subid("278_1274564776.41408") :method
 .annotate 'line', 431
     $P1103 = self."!PREFIX__!subrule"("O", "!=")
     new $P1104, "ResizablePMCArray"
@@ -13509,7 +13509,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<<=>"  :subid("279_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "infix:sym<<=>"  :subid("279_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 431
     .local string rx1108_tgt
     .local int rx1108_pos
@@ -13588,7 +13588,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<<=>"  :subid("280_1274022894.43745") :method
+.sub "!PREFIX__infix:sym<<=>"  :subid("280_1274564776.41408") :method
 .annotate 'line', 431
     $P1110 = self."!PREFIX__!subrule"("O", "<=")
     new $P1111, "ResizablePMCArray"
@@ -13598,7 +13598,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<>=>"  :subid("281_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "infix:sym<>=>"  :subid("281_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 431
     .local string rx1115_tgt
     .local int rx1115_pos
@@ -13677,7 +13677,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<>=>"  :subid("282_1274022894.43745") :method
+.sub "!PREFIX__infix:sym<>=>"  :subid("282_1274564776.41408") :method
 .annotate 'line', 431
     $P1117 = self."!PREFIX__!subrule"("O", ">=")
     new $P1118, "ResizablePMCArray"
@@ -13687,7 +13687,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<<>"  :subid("283_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "infix:sym<<>"  :subid("283_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 431
     .local string rx1122_tgt
     .local int rx1122_pos
@@ -13766,7 +13766,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<<>"  :subid("284_1274022894.43745") :method
+.sub "!PREFIX__infix:sym<<>"  :subid("284_1274564776.41408") :method
 .annotate 'line', 431
     $P1124 = self."!PREFIX__!subrule"("O", "<")
     new $P1125, "ResizablePMCArray"
@@ -13776,7 +13776,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<>>"  :subid("285_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "infix:sym<>>"  :subid("285_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 431
     .local string rx1129_tgt
     .local int rx1129_pos
@@ -13855,7 +13855,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<>>"  :subid("286_1274022894.43745") :method
+.sub "!PREFIX__infix:sym<>>"  :subid("286_1274564776.41408") :method
 .annotate 'line', 431
     $P1131 = self."!PREFIX__!subrule"("O", ">")
     new $P1132, "ResizablePMCArray"
@@ -13865,7 +13865,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<eq>"  :subid("287_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "infix:sym<eq>"  :subid("287_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 431
     .local string rx1136_tgt
     .local int rx1136_pos
@@ -13944,7 +13944,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<eq>"  :subid("288_1274022894.43745") :method
+.sub "!PREFIX__infix:sym<eq>"  :subid("288_1274564776.41408") :method
 .annotate 'line', 431
     $P1138 = self."!PREFIX__!subrule"("O", "eq")
     new $P1139, "ResizablePMCArray"
@@ -13954,7 +13954,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<ne>"  :subid("289_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "infix:sym<ne>"  :subid("289_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 431
     .local string rx1143_tgt
     .local int rx1143_pos
@@ -14033,7 +14033,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<ne>"  :subid("290_1274022894.43745") :method
+.sub "!PREFIX__infix:sym<ne>"  :subid("290_1274564776.41408") :method
 .annotate 'line', 431
     $P1145 = self."!PREFIX__!subrule"("O", "ne")
     new $P1146, "ResizablePMCArray"
@@ -14043,7 +14043,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<le>"  :subid("291_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "infix:sym<le>"  :subid("291_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 431
     .local string rx1150_tgt
     .local int rx1150_pos
@@ -14122,7 +14122,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<le>"  :subid("292_1274022894.43745") :method
+.sub "!PREFIX__infix:sym<le>"  :subid("292_1274564776.41408") :method
 .annotate 'line', 431
     $P1152 = self."!PREFIX__!subrule"("O", "le")
     new $P1153, "ResizablePMCArray"
@@ -14132,7 +14132,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<ge>"  :subid("293_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "infix:sym<ge>"  :subid("293_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 431
     .local string rx1157_tgt
     .local int rx1157_pos
@@ -14211,7 +14211,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<ge>"  :subid("294_1274022894.43745") :method
+.sub "!PREFIX__infix:sym<ge>"  :subid("294_1274564776.41408") :method
 .annotate 'line', 431
     $P1159 = self."!PREFIX__!subrule"("O", "ge")
     new $P1160, "ResizablePMCArray"
@@ -14221,7 +14221,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<lt>"  :subid("295_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "infix:sym<lt>"  :subid("295_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 431
     .local string rx1164_tgt
     .local int rx1164_pos
@@ -14300,7 +14300,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<lt>"  :subid("296_1274022894.43745") :method
+.sub "!PREFIX__infix:sym<lt>"  :subid("296_1274564776.41408") :method
 .annotate 'line', 431
     $P1166 = self."!PREFIX__!subrule"("O", "lt")
     new $P1167, "ResizablePMCArray"
@@ -14310,7 +14310,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<gt>"  :subid("297_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "infix:sym<gt>"  :subid("297_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 431
     .local string rx1171_tgt
     .local int rx1171_pos
@@ -14389,7 +14389,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<gt>"  :subid("298_1274022894.43745") :method
+.sub "!PREFIX__infix:sym<gt>"  :subid("298_1274564776.41408") :method
 .annotate 'line', 431
     $P1173 = self."!PREFIX__!subrule"("O", "gt")
     new $P1174, "ResizablePMCArray"
@@ -14399,7 +14399,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<=:=>"  :subid("299_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "infix:sym<=:=>"  :subid("299_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 431
     .local string rx1178_tgt
     .local int rx1178_pos
@@ -14478,7 +14478,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<=:=>"  :subid("300_1274022894.43745") :method
+.sub "!PREFIX__infix:sym<=:=>"  :subid("300_1274564776.41408") :method
 .annotate 'line', 431
     $P1180 = self."!PREFIX__!subrule"("O", "=:=")
     new $P1181, "ResizablePMCArray"
@@ -14488,7 +14488,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<~~>"  :subid("301_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "infix:sym<~~>"  :subid("301_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 431
     .local string rx1185_tgt
     .local int rx1185_pos
@@ -14567,7 +14567,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<~~>"  :subid("302_1274022894.43745") :method
+.sub "!PREFIX__infix:sym<~~>"  :subid("302_1274564776.41408") :method
 .annotate 'line', 431
     $P1187 = self."!PREFIX__!subrule"("O", "~~")
     new $P1188, "ResizablePMCArray"
@@ -14577,7 +14577,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<&&>"  :subid("303_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "infix:sym<&&>"  :subid("303_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 431
     .local string rx1192_tgt
     .local int rx1192_pos
@@ -14656,7 +14656,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<&&>"  :subid("304_1274022894.43745") :method
+.sub "!PREFIX__infix:sym<&&>"  :subid("304_1274564776.41408") :method
 .annotate 'line', 431
     $P1194 = self."!PREFIX__!subrule"("O", "&&")
     new $P1195, "ResizablePMCArray"
@@ -14666,7 +14666,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<||>"  :subid("305_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "infix:sym<||>"  :subid("305_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 431
     .local string rx1199_tgt
     .local int rx1199_pos
@@ -14745,7 +14745,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<||>"  :subid("306_1274022894.43745") :method
+.sub "!PREFIX__infix:sym<||>"  :subid("306_1274564776.41408") :method
 .annotate 'line', 431
     $P1201 = self."!PREFIX__!subrule"("O", "||")
     new $P1202, "ResizablePMCArray"
@@ -14755,7 +14755,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<//>"  :subid("307_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "infix:sym<//>"  :subid("307_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 431
     .local string rx1206_tgt
     .local int rx1206_pos
@@ -14834,7 +14834,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<//>"  :subid("308_1274022894.43745") :method
+.sub "!PREFIX__infix:sym<//>"  :subid("308_1274564776.41408") :method
 .annotate 'line', 431
     $P1208 = self."!PREFIX__!subrule"("O", "//")
     new $P1209, "ResizablePMCArray"
@@ -14844,7 +14844,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<?? !!>"  :subid("309_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "infix:sym<?? !!>"  :subid("309_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 431
     .local string rx1213_tgt
     .local int rx1213_pos
@@ -14933,7 +14933,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<?? !!>"  :subid("310_1274022894.43745") :method
+.sub "!PREFIX__infix:sym<?? !!>"  :subid("310_1274564776.41408") :method
 .annotate 'line', 431
     $P1215 = self."!PREFIX__!subrule"("", "??")
     new $P1216, "ResizablePMCArray"
@@ -14943,7 +14943,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<=>"  :subid("311_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "infix:sym<=>"  :subid("311_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 431
     .local string rx1219_tgt
     .local int rx1219_pos
@@ -15021,7 +15021,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<=>"  :subid("312_1274022894.43745") :method
+.sub "!PREFIX__infix:sym<=>"  :subid("312_1274564776.41408") :method
 .annotate 'line', 431
     $P1221 = self."!PREFIX__!subrule"("", "=")
     new $P1222, "ResizablePMCArray"
@@ -15031,7 +15031,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<:=>"  :subid("313_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "infix:sym<:=>"  :subid("313_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 431
     .local string rx1226_tgt
     .local int rx1226_pos
@@ -15110,7 +15110,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<:=>"  :subid("314_1274022894.43745") :method
+.sub "!PREFIX__infix:sym<:=>"  :subid("314_1274564776.41408") :method
 .annotate 'line', 431
     $P1228 = self."!PREFIX__!subrule"("O", ":=")
     new $P1229, "ResizablePMCArray"
@@ -15120,7 +15120,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<::=>"  :subid("315_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "infix:sym<::=>"  :subid("315_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 431
     .local string rx1233_tgt
     .local int rx1233_pos
@@ -15199,7 +15199,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<::=>"  :subid("316_1274022894.43745") :method
+.sub "!PREFIX__infix:sym<::=>"  :subid("316_1274564776.41408") :method
 .annotate 'line', 431
     $P1235 = self."!PREFIX__!subrule"("O", "::=")
     new $P1236, "ResizablePMCArray"
@@ -15209,7 +15209,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "infix:sym<,>"  :subid("317_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "infix:sym<,>"  :subid("317_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 431
     .local string rx1240_tgt
     .local int rx1240_pos
@@ -15288,7 +15288,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<,>"  :subid("318_1274022894.43745") :method
+.sub "!PREFIX__infix:sym<,>"  :subid("318_1274564776.41408") :method
 .annotate 'line', 431
     $P1242 = self."!PREFIX__!subrule"("O", ",")
     new $P1243, "ResizablePMCArray"
@@ -15298,7 +15298,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<return>"  :subid("319_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "prefix:sym<return>"  :subid("319_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 431
     .local string rx1247_tgt
     .local int rx1247_pos
@@ -15383,7 +15383,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<return>"  :subid("320_1274022894.43745") :method
+.sub "!PREFIX__prefix:sym<return>"  :subid("320_1274564776.41408") :method
 .annotate 'line', 431
     new $P1249, "ResizablePMCArray"
     push $P1249, "return"
@@ -15392,7 +15392,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "prefix:sym<make>"  :subid("321_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "prefix:sym<make>"  :subid("321_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 431
     .local string rx1253_tgt
     .local int rx1253_pos
@@ -15477,7 +15477,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<make>"  :subid("322_1274022894.43745") :method
+.sub "!PREFIX__prefix:sym<make>"  :subid("322_1274564776.41408") :method
 .annotate 'line', 431
     new $P1255, "ResizablePMCArray"
     push $P1255, "make"
@@ -15486,7 +15486,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<last>"  :subid("323_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "term:sym<last>"  :subid("323_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 431
     .local string rx1259_tgt
     .local int rx1259_pos
@@ -15558,7 +15558,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<last>"  :subid("324_1274022894.43745") :method
+.sub "!PREFIX__term:sym<last>"  :subid("324_1274564776.41408") :method
 .annotate 'line', 431
     new $P1261, "ResizablePMCArray"
     push $P1261, "last"
@@ -15567,7 +15567,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<next>"  :subid("325_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "term:sym<next>"  :subid("325_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 431
     .local string rx1265_tgt
     .local int rx1265_pos
@@ -15639,7 +15639,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<next>"  :subid("326_1274022894.43745") :method
+.sub "!PREFIX__term:sym<next>"  :subid("326_1274564776.41408") :method
 .annotate 'line', 431
     new $P1267, "ResizablePMCArray"
     push $P1267, "next"
@@ -15648,7 +15648,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "term:sym<redo>"  :subid("327_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "term:sym<redo>"  :subid("327_1274564776.41408") :method :outer("11_1274564776.41408")
 .annotate 'line', 431
     .local string rx1271_tgt
     .local int rx1271_pos
@@ -15720,7 +15720,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<redo>"  :subid("328_1274022894.43745") :method
+.sub "!PREFIX__term:sym<redo>"  :subid("328_1274564776.41408") :method
 .annotate 'line', 431
     new $P1273, "ResizablePMCArray"
     push $P1273, "redo"
@@ -15729,7 +15729,7 @@
 
 
 .namespace ["NQP";"Grammar"]
-.sub "smartmatch"  :subid("329_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "smartmatch"  :subid("329_1274564776.41408") :method :outer("11_1274564776.41408")
     .param pmc param_1279
 .annotate 'line', 542
     new $P1278, 'ExceptionHandler'
@@ -15742,34 +15742,34 @@
     new $P1280, "Undef"
     .lex "$t", $P1280
     find_lex $P1281, "$/"
-    unless_null $P1281, vivify_357
+    unless_null $P1281, vivify_368
     $P1281 = root_new ['parrot';'ResizablePMCArray']
-  vivify_357:
+  vivify_368:
     set $P1282, $P1281[0]
-    unless_null $P1282, vivify_358
+    unless_null $P1282, vivify_369
     new $P1282, "Undef"
-  vivify_358:
+  vivify_369:
     store_lex "$t", $P1282
     find_lex $P1283, "$/"
-    unless_null $P1283, vivify_359
+    unless_null $P1283, vivify_370
     $P1283 = root_new ['parrot';'ResizablePMCArray']
-  vivify_359:
+  vivify_370:
     set $P1284, $P1283[1]
-    unless_null $P1284, vivify_360
+    unless_null $P1284, vivify_371
     new $P1284, "Undef"
-  vivify_360:
+  vivify_371:
     find_lex $P1285, "$/"
-    unless_null $P1285, vivify_361
+    unless_null $P1285, vivify_372
     $P1285 = root_new ['parrot';'ResizablePMCArray']
     store_lex "$/", $P1285
-  vivify_361:
+  vivify_372:
     set $P1285[0], $P1284
     find_lex $P1286, "$t"
     find_lex $P1287, "$/"
-    unless_null $P1287, vivify_362
+    unless_null $P1287, vivify_373
     $P1287 = root_new ['parrot';'ResizablePMCArray']
     store_lex "$/", $P1287
-  vivify_362:
+  vivify_373:
     set $P1287[1], $P1286
 .annotate 'line', 542
     .return ($P1286)
@@ -15782,28 +15782,34 @@
 
 
 .namespace ["NQP";"Regex"]
-.sub "_block1289"  :subid("330_1274022894.43745") :outer("11_1274022894.43745")
+.sub "_block1289"  :subid("330_1274564776.41408") :outer("11_1274564776.41408")
 .annotate 'line', 548
-    .const 'Sub' $P1323 = "341_1274022894.43745" 
-    capture_lex $P1323
-    .const 'Sub' $P1310 = "338_1274022894.43745" 
+    .const 'Sub' $P1367 = "352_1274564776.41408" 
+    capture_lex $P1367
+    .const 'Sub' $P1354 = "349_1274564776.41408" 
+    capture_lex $P1354
+    .const 'Sub' $P1349 = "347_1274564776.41408" 
+    capture_lex $P1349
+    .const 'Sub' $P1344 = "345_1274564776.41408" 
+    capture_lex $P1344
+    .const 'Sub' $P1330 = "341_1274564776.41408" 
+    capture_lex $P1330
+    .const 'Sub' $P1310 = "337_1274564776.41408" 
     capture_lex $P1310
-    .const 'Sub' $P1305 = "336_1274022894.43745" 
-    capture_lex $P1305
-    .const 'Sub' $P1300 = "334_1274022894.43745" 
+    .const 'Sub' $P1300 = "334_1274564776.41408" 
     capture_lex $P1300
-    .const 'Sub' $P1291 = "331_1274022894.43745" 
+    .const 'Sub' $P1291 = "331_1274564776.41408" 
     capture_lex $P1291
-    .const 'Sub' $P1323 = "341_1274022894.43745" 
-    capture_lex $P1323
-    .return ($P1323)
+    .const 'Sub' $P1367 = "352_1274564776.41408" 
+    capture_lex $P1367
+    .return ($P1367)
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "metachar:sym<:my>"  :subid("331_1274022894.43745") :method :outer("330_1274022894.43745")
+.sub "metachar:sym<:my>"  :subid("331_1274564776.41408") :method :outer("330_1274564776.41408")
 .annotate 'line', 548
-    .const 'Sub' $P1297 = "333_1274022894.43745" 
+    .const 'Sub' $P1297 = "333_1274564776.41408" 
     capture_lex $P1297
     .local string rx1292_tgt
     .local int rx1292_pos
@@ -15844,7 +15850,7 @@
     add rx1292_pos, 1
   # rx subrule "before" subtype=zerowidth negate=
     rx1292_cur."!cursor_pos"(rx1292_pos)
-    .const 'Sub' $P1297 = "333_1274022894.43745" 
+    .const 'Sub' $P1297 = "333_1274564776.41408" 
     capture_lex $P1297
     $P10 = rx1292_cur."before"($P1297)
     unless $P10, rx1292_fail
@@ -15887,7 +15893,7 @@
 
 
 .namespace ["NQP";"Regex"]
-.sub "!PREFIX__metachar:sym<:my>"  :subid("332_1274022894.43745") :method
+.sub "!PREFIX__metachar:sym<:my>"  :subid("332_1274564776.41408") :method
 .annotate 'line', 548
     new $P1294, "ResizablePMCArray"
     push $P1294, ":"
@@ -15896,7 +15902,7 @@
 
 
 .namespace ["NQP";"Regex"]
-.sub "_block1296"  :anon :subid("333_1274022894.43745") :method :outer("331_1274022894.43745")
+.sub "_block1296"  :anon :subid("333_1274564776.41408") :method :outer("331_1274564776.41408")
 .annotate 'line', 550
     .local string rx1298_tgt
     .local int rx1298_pos
@@ -15952,8 +15958,10 @@
 
 
 .namespace ["NQP";"Regex"]
-.sub "metachar:sym<{ }>"  :subid("334_1274022894.43745") :method :outer("330_1274022894.43745")
+.sub "metachar:sym<$>"  :subid("334_1274564776.41408") :method :outer("330_1274564776.41408")
 .annotate 'line', 548
+    .const 'Sub' $P1307 = "336_1274564776.41408" 
+    capture_lex $P1307
     .local string rx1301_tgt
     .local int rx1301_pos
     .local int rx1301_off
@@ -15961,7 +15969,7 @@
     .local int rx1301_rep
     .local pmc rx1301_cur
     (rx1301_cur, rx1301_pos, rx1301_tgt) = self."!cursor_start"()
-    rx1301_cur."!cursor_debug"("START ", "metachar:sym<{ }>")
+    rx1301_cur."!cursor_debug"("START ", "metachar:sym<$>")
     .lex unicode:"$\x{a2}", rx1301_cur
     .local pmc match
     .lex "$/", match
@@ -15984,23 +15992,37 @@
     rx1301_cur."!mark_push"(0, rx1301_pos, $I10)
   rxscan1304_done:
 .annotate 'line', 554
-  # rx enumcharlist negate=0 zerowidth
-    ge rx1301_pos, rx1301_eos, rx1301_fail
-    sub $I10, rx1301_pos, rx1301_off
-    substr $S10, rx1301_tgt, $I10, 1
-    index $I11, "{", $S10
-    lt $I11, 0, rx1301_fail
-  # rx subrule "codeblock" subtype=capture negate=
-    rx1301_cur."!cursor_pos"(rx1301_pos)
-    $P10 = rx1301_cur."codeblock"()
-    unless $P10, rx1301_fail
+  # rx subcapture "sym"
+    set_addr $I10, rxcap_1305_fail
+    rx1301_cur."!mark_push"(0, rx1301_pos, $I10)
+  # rx literal  "$"
+    add $I11, rx1301_pos, 1
+    gt $I11, rx1301_eos, rx1301_fail
+    sub $I11, rx1301_pos, rx1301_off
+    substr $S10, rx1301_tgt, $I11, 1
+    ne $S10, "$", rx1301_fail
+    add rx1301_pos, 1
+    set_addr $I10, rxcap_1305_fail
+    ($I12, $I11) = rx1301_cur."!mark_peek"($I10)
+    rx1301_cur."!cursor_pos"($I11)
+    ($P10) = rx1301_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1301_pos, "")
     rx1301_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("codeblock")
-    rx1301_pos = $P10."pos"()
+    $P10."!cursor_names"("sym")
+    goto rxcap_1305_done
+  rxcap_1305_fail:
+    goto rx1301_fail
+  rxcap_1305_done:
+  # rx subrule "before" subtype=zerowidth negate=1
+    rx1301_cur."!cursor_pos"(rx1301_pos)
+    .const 'Sub' $P1307 = "336_1274564776.41408" 
+    capture_lex $P1307
+    $P10 = rx1301_cur."before"($P1307)
+    if $P10, rx1301_fail
 .annotate 'line', 553
   # rx pass
-    rx1301_cur."!cursor_pass"(rx1301_pos, "metachar:sym<{ }>")
-    rx1301_cur."!cursor_debug"("PASS  ", "metachar:sym<{ }>", " at pos=", rx1301_pos)
+    rx1301_cur."!cursor_pass"(rx1301_pos, "metachar:sym<$>")
+    rx1301_cur."!cursor_debug"("PASS  ", "metachar:sym<$>", " at pos=", rx1301_pos)
     .return (rx1301_cur)
   rx1301_fail:
 .annotate 'line', 548
@@ -16010,100 +16032,83 @@
     jump $I10
   rx1301_done:
     rx1301_cur."!cursor_fail"()
-    rx1301_cur."!cursor_debug"("FAIL  ", "metachar:sym<{ }>")
+    rx1301_cur."!cursor_debug"("FAIL  ", "metachar:sym<$>")
     .return (rx1301_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "!PREFIX__metachar:sym<{ }>"  :subid("335_1274022894.43745") :method
+.sub "!PREFIX__metachar:sym<$>"  :subid("335_1274564776.41408") :method
 .annotate 'line', 548
     new $P1303, "ResizablePMCArray"
-    push $P1303, "{"
+    push $P1303, "$"
     .return ($P1303)
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "assertion:sym<{ }>"  :subid("336_1274022894.43745") :method :outer("330_1274022894.43745")
-.annotate 'line', 548
-    .local string rx1306_tgt
-    .local int rx1306_pos
-    .local int rx1306_off
-    .local int rx1306_eos
-    .local int rx1306_rep
-    .local pmc rx1306_cur
-    (rx1306_cur, rx1306_pos, rx1306_tgt) = self."!cursor_start"()
-    rx1306_cur."!cursor_debug"("START ", "assertion:sym<{ }>")
-    .lex unicode:"$\x{a2}", rx1306_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1306_eos, rx1306_tgt
-    set rx1306_off, 0
-    lt rx1306_pos, 2, rx1306_start
-    sub rx1306_off, rx1306_pos, 1
-    substr rx1306_tgt, rx1306_tgt, rx1306_off
-  rx1306_start:
+.sub "_block1306"  :anon :subid("336_1274564776.41408") :method :outer("334_1274564776.41408")
+.annotate 'line', 554
+    .local string rx1308_tgt
+    .local int rx1308_pos
+    .local int rx1308_off
+    .local int rx1308_eos
+    .local int rx1308_rep
+    .local pmc rx1308_cur
+    (rx1308_cur, rx1308_pos, rx1308_tgt) = self."!cursor_start"()
+    rx1308_cur."!cursor_debug"("START ", "")
+    .lex unicode:"$\x{a2}", rx1308_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1308_eos, rx1308_tgt
+    set rx1308_off, 0
+    lt rx1308_pos, 2, rx1308_start
+    sub rx1308_off, rx1308_pos, 1
+    substr rx1308_tgt, rx1308_tgt, rx1308_off
+  rx1308_start:
     $I10 = self.'from'()
     ne $I10, -1, rxscan1309_done
     goto rxscan1309_scan
   rxscan1309_loop:
-    ($P10) = rx1306_cur."from"()
+    ($P10) = rx1308_cur."from"()
     inc $P10
-    set rx1306_pos, $P10
-    ge rx1306_pos, rx1306_eos, rxscan1309_done
+    set rx1308_pos, $P10
+    ge rx1308_pos, rx1308_eos, rxscan1309_done
   rxscan1309_scan:
     set_addr $I10, rxscan1309_loop
-    rx1306_cur."!mark_push"(0, rx1306_pos, $I10)
+    rx1308_cur."!mark_push"(0, rx1308_pos, $I10)
   rxscan1309_done:
-.annotate 'line', 558
-  # rx enumcharlist negate=0 zerowidth
-    ge rx1306_pos, rx1306_eos, rx1306_fail
-    sub $I10, rx1306_pos, rx1306_off
-    substr $S10, rx1306_tgt, $I10, 1
-    index $I11, "{", $S10
-    lt $I11, 0, rx1306_fail
-  # rx subrule "codeblock" subtype=capture negate=
-    rx1306_cur."!cursor_pos"(rx1306_pos)
-    $P10 = rx1306_cur."codeblock"()
-    unless $P10, rx1306_fail
-    rx1306_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("codeblock")
-    rx1306_pos = $P10."pos"()
-.annotate 'line', 557
-  # rx pass
-    rx1306_cur."!cursor_pass"(rx1306_pos, "assertion:sym<{ }>")
-    rx1306_cur."!cursor_debug"("PASS  ", "assertion:sym<{ }>", " at pos=", rx1306_pos)
-    .return (rx1306_cur)
-  rx1306_fail:
-.annotate 'line', 548
-    (rx1306_rep, rx1306_pos, $I10, $P10) = rx1306_cur."!mark_fail"(0)
-    lt rx1306_pos, -1, rx1306_done
-    eq rx1306_pos, -1, rx1306_fail
-    jump $I10
-  rx1306_done:
-    rx1306_cur."!cursor_fail"()
-    rx1306_cur."!cursor_debug"("FAIL  ", "assertion:sym<{ }>")
-    .return (rx1306_cur)
+  # rx charclass w
+    ge rx1308_pos, rx1308_eos, rx1308_fail
+    sub $I10, rx1308_pos, rx1308_off
+    is_cclass $I11, 8192, rx1308_tgt, $I10
+    unless $I11, rx1308_fail
+    inc rx1308_pos
+  # rx pass
+    rx1308_cur."!cursor_pass"(rx1308_pos, "")
+    rx1308_cur."!cursor_debug"("PASS  ", "", " at pos=", rx1308_pos)
+    .return (rx1308_cur)
+  rx1308_fail:
+    (rx1308_rep, rx1308_pos, $I10, $P10) = rx1308_cur."!mark_fail"(0)
+    lt rx1308_pos, -1, rx1308_done
+    eq rx1308_pos, -1, rx1308_fail
+    jump $I10
+  rx1308_done:
+    rx1308_cur."!cursor_fail"()
+    rx1308_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx1308_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "!PREFIX__assertion:sym<{ }>"  :subid("337_1274022894.43745") :method
-.annotate 'line', 548
-    new $P1308, "ResizablePMCArray"
-    push $P1308, "{"
-    .return ($P1308)
-.end
-
-
-.namespace ["NQP";"Regex"]
-.sub "assertion:sym<name>"  :subid("338_1274022894.43745") :method :outer("330_1274022894.43745")
+.sub "metachar:sym<var>"  :subid("337_1274564776.41408") :method :outer("330_1274564776.41408")
 .annotate 'line', 548
-    .const 'Sub' $P1319 = "340_1274022894.43745" 
-    capture_lex $P1319
+    .const 'Sub' $P1325 = "340_1274564776.41408" 
+    capture_lex $P1325
+    .const 'Sub' $P1321 = "339_1274564776.41408" 
+    capture_lex $P1321
     .local string rx1311_tgt
     .local int rx1311_pos
     .local int rx1311_off
@@ -16111,8 +16116,8 @@
     .local int rx1311_rep
     .local pmc rx1311_cur
     (rx1311_cur, rx1311_pos, rx1311_tgt) = self."!cursor_start"()
-    rx1311_cur."!cursor_debug"("START ", "assertion:sym<name>")
-    rx1311_cur."!cursor_caparray"("arglist", "nibbler", "assertion")
+    rx1311_cur."!cursor_debug"("START ", "metachar:sym<var>")
+    rx1311_cur."!cursor_caparray"("quantified_atom")
     .lex unicode:"$\x{a2}", rx1311_cur
     .local pmc match
     .lex "$/", match
@@ -16134,130 +16139,154 @@
     set_addr $I10, rxscan1314_loop
     rx1311_cur."!mark_push"(0, rx1311_pos, $I10)
   rxscan1314_done:
-.annotate 'line', 562
-  # rx subcapture "longname"
-    set_addr $I10, rxcap_1315_fail
+  alt1315_0:
+.annotate 'line', 558
+    set_addr $I10, alt1315_1
     rx1311_cur."!mark_push"(0, rx1311_pos, $I10)
-  # rx charclass_q w r 1..-1
+.annotate 'line', 559
+  # rx literal  "$<"
+    add $I11, rx1311_pos, 2
+    gt $I11, rx1311_eos, rx1311_fail
+    sub $I11, rx1311_pos, rx1311_off
+    substr $S10, rx1311_tgt, $I11, 2
+    ne $S10, "$<", rx1311_fail
+    add rx1311_pos, 2
+  # rx subcapture "name"
+    set_addr $I10, rxcap_1318_fail
+    rx1311_cur."!mark_push"(0, rx1311_pos, $I10)
+  # rx rxquantr1316 ** 1..*
+    set_addr $I1317, rxquantr1316_done
+    rx1311_cur."!mark_push"(0, -1, $I1317)
+  rxquantr1316_loop:
+  # rx enumcharlist negate=1 
+    ge rx1311_pos, rx1311_eos, rx1311_fail
     sub $I10, rx1311_pos, rx1311_off
-    find_not_cclass $I11, 8192, rx1311_tgt, $I10, rx1311_eos
-    add $I12, $I10, 1
-    lt $I11, $I12, rx1311_fail
-    add rx1311_pos, rx1311_off, $I11
-    set_addr $I10, rxcap_1315_fail
+    substr $S10, rx1311_tgt, $I10, 1
+    index $I11, ">", $S10
+    ge $I11, 0, rx1311_fail
+    inc rx1311_pos
+    (rx1311_rep) = rx1311_cur."!mark_commit"($I1317)
+    rx1311_cur."!mark_push"(rx1311_rep, rx1311_pos, $I1317)
+    goto rxquantr1316_loop
+  rxquantr1316_done:
+    set_addr $I10, rxcap_1318_fail
     ($I12, $I11) = rx1311_cur."!mark_peek"($I10)
     rx1311_cur."!cursor_pos"($I11)
     ($P10) = rx1311_cur."!cursor_start"()
     $P10."!cursor_pass"(rx1311_pos, "")
     rx1311_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("longname")
-    goto rxcap_1315_done
-  rxcap_1315_fail:
+    $P10."!cursor_names"("name")
+    goto rxcap_1318_done
+  rxcap_1318_fail:
     goto rx1311_fail
-  rxcap_1315_done:
-.annotate 'line', 569
-  # rx rxquantr1316 ** 0..1
-    set_addr $I1322, rxquantr1316_done
-    rx1311_cur."!mark_push"(0, rx1311_pos, $I1322)
-  rxquantr1316_loop:
-  alt1317_0:
-.annotate 'line', 563
-    set_addr $I10, alt1317_1
-    rx1311_cur."!mark_push"(0, rx1311_pos, $I10)
-.annotate 'line', 564
-  # rx subrule "before" subtype=zerowidth negate=
-    rx1311_cur."!cursor_pos"(rx1311_pos)
-    .const 'Sub' $P1319 = "340_1274022894.43745" 
-    capture_lex $P1319
-    $P10 = rx1311_cur."before"($P1319)
-    unless $P10, rx1311_fail
-    goto alt1317_end
-  alt1317_1:
-    set_addr $I10, alt1317_2
-    rx1311_cur."!mark_push"(0, rx1311_pos, $I10)
-.annotate 'line', 565
-  # rx literal  "="
+  rxcap_1318_done:
+  # rx literal  ">"
     add $I11, rx1311_pos, 1
     gt $I11, rx1311_eos, rx1311_fail
     sub $I11, rx1311_pos, rx1311_off
     substr $S10, rx1311_tgt, $I11, 1
-    ne $S10, "=", rx1311_fail
+    ne $S10, ">", rx1311_fail
     add rx1311_pos, 1
-  # rx subrule "assertion" subtype=capture negate=
-    rx1311_cur."!cursor_pos"(rx1311_pos)
-    $P10 = rx1311_cur."assertion"()
-    unless $P10, rx1311_fail
-    rx1311_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("assertion")
-    rx1311_pos = $P10."pos"()
-    goto alt1317_end
-  alt1317_2:
-    set_addr $I10, alt1317_3
+    goto alt1315_end
+  alt1315_1:
+    set_addr $I10, alt1315_2
     rx1311_cur."!mark_push"(0, rx1311_pos, $I10)
-.annotate 'line', 566
-  # rx literal  ":"
+.annotate 'line', 560
+  # rx literal  "$"
     add $I11, rx1311_pos, 1
     gt $I11, rx1311_eos, rx1311_fail
     sub $I11, rx1311_pos, rx1311_off
     substr $S10, rx1311_tgt, $I11, 1
-    ne $S10, ":", rx1311_fail
+    ne $S10, "$", rx1311_fail
     add rx1311_pos, 1
-  # rx subrule "arglist" subtype=capture negate=
-    rx1311_cur."!cursor_pos"(rx1311_pos)
-    $P10 = rx1311_cur."arglist"()
-    unless $P10, rx1311_fail
+  # rx subcapture "pos"
+    set_addr $I10, rxcap_1319_fail
+    rx1311_cur."!mark_push"(0, rx1311_pos, $I10)
+  # rx charclass_q d r 1..-1
+    sub $I10, rx1311_pos, rx1311_off
+    find_not_cclass $I11, 8, rx1311_tgt, $I10, rx1311_eos
+    add $I12, $I10, 1
+    lt $I11, $I12, rx1311_fail
+    add rx1311_pos, rx1311_off, $I11
+    set_addr $I10, rxcap_1319_fail
+    ($I12, $I11) = rx1311_cur."!mark_peek"($I10)
+    rx1311_cur."!cursor_pos"($I11)
+    ($P10) = rx1311_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1311_pos, "")
     rx1311_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("arglist")
-    rx1311_pos = $P10."pos"()
-    goto alt1317_end
-  alt1317_3:
-    set_addr $I10, alt1317_4
+    $P10."!cursor_names"("pos")
+    goto rxcap_1319_done
+  rxcap_1319_fail:
+    goto rx1311_fail
+  rxcap_1319_done:
+    goto alt1315_end
+  alt1315_2:
+    set_addr $I10, alt1315_3
     rx1311_cur."!mark_push"(0, rx1311_pos, $I10)
-.annotate 'line', 567
-  # rx literal  "("
-    add $I11, rx1311_pos, 1
-    gt $I11, rx1311_eos, rx1311_fail
-    sub $I11, rx1311_pos, rx1311_off
-    substr $S10, rx1311_tgt, $I11, 1
-    ne $S10, "(", rx1311_fail
-    add rx1311_pos, 1
+.annotate 'line', 561
+  # rx subrule "before" subtype=zerowidth negate=
+    rx1311_cur."!cursor_pos"(rx1311_pos)
+    .const 'Sub' $P1321 = "339_1274564776.41408" 
+    capture_lex $P1321
+    $P10 = rx1311_cur."before"($P1321)
+    unless $P10, rx1311_fail
   # rx subrule "LANG" subtype=capture negate=
     rx1311_cur."!cursor_pos"(rx1311_pos)
-    $P10 = rx1311_cur."LANG"("MAIN", "arglist")
+    $P10 = rx1311_cur."LANG"("MAIN", "variable")
     unless $P10, rx1311_fail
     rx1311_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("arglist")
+    $P10."!cursor_names"("var")
     rx1311_pos = $P10."pos"()
-  # rx literal  ")"
+    goto alt1315_end
+  alt1315_3:
+.annotate 'line', 562
+  # rx subrule "before" subtype=zerowidth negate=
+    rx1311_cur."!cursor_pos"(rx1311_pos)
+    .const 'Sub' $P1325 = "340_1274564776.41408" 
+    capture_lex $P1325
+    $P10 = rx1311_cur."before"($P1325)
+    unless $P10, rx1311_fail
+  # rx subrule "panic" subtype=method negate=
+    rx1311_cur."!cursor_pos"(rx1311_pos)
+    $P10 = rx1311_cur."panic"("Use of hash variable in patterns is reserved")
+    unless $P10, rx1311_fail
+    rx1311_pos = $P10."pos"()
+  alt1315_end:
+.annotate 'line', 565
+  # rx rxquantr1328 ** 0..1
+    set_addr $I1329, rxquantr1328_done
+    rx1311_cur."!mark_push"(0, rx1311_pos, $I1329)
+  rxquantr1328_loop:
+  # rx subrule "ws" subtype=method negate=
+    rx1311_cur."!cursor_pos"(rx1311_pos)
+    $P10 = rx1311_cur."ws"()
+    unless $P10, rx1311_fail
+    rx1311_pos = $P10."pos"()
+  # rx literal  "="
     add $I11, rx1311_pos, 1
     gt $I11, rx1311_eos, rx1311_fail
     sub $I11, rx1311_pos, rx1311_off
     substr $S10, rx1311_tgt, $I11, 1
-    ne $S10, ")", rx1311_fail
+    ne $S10, "=", rx1311_fail
     add rx1311_pos, 1
-    goto alt1317_end
-  alt1317_4:
-.annotate 'line', 568
-  # rx subrule "normspace" subtype=method negate=
+  # rx subrule "ws" subtype=method negate=
     rx1311_cur."!cursor_pos"(rx1311_pos)
-    $P10 = rx1311_cur."normspace"()
+    $P10 = rx1311_cur."ws"()
     unless $P10, rx1311_fail
     rx1311_pos = $P10."pos"()
-  # rx subrule "nibbler" subtype=capture negate=
+  # rx subrule "quantified_atom" subtype=capture negate=
     rx1311_cur."!cursor_pos"(rx1311_pos)
-    $P10 = rx1311_cur."nibbler"()
+    $P10 = rx1311_cur."quantified_atom"()
     unless $P10, rx1311_fail
     rx1311_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("nibbler")
+    $P10."!cursor_names"("quantified_atom")
     rx1311_pos = $P10."pos"()
-  alt1317_end:
-.annotate 'line', 569
-    (rx1311_rep) = rx1311_cur."!mark_commit"($I1322)
-  rxquantr1316_done:
-.annotate 'line', 561
+    (rx1311_rep) = rx1311_cur."!mark_commit"($I1329)
+  rxquantr1328_done:
+.annotate 'line', 557
   # rx pass
-    rx1311_cur."!cursor_pass"(rx1311_pos, "assertion:sym<name>")
-    rx1311_cur."!cursor_debug"("PASS  ", "assertion:sym<name>", " at pos=", rx1311_pos)
+    rx1311_cur."!cursor_pass"(rx1311_pos, "metachar:sym<var>")
+    rx1311_cur."!cursor_debug"("PASS  ", "metachar:sym<var>", " at pos=", rx1311_pos)
     .return (rx1311_cur)
   rx1311_fail:
 .annotate 'line', 548
@@ -16267,426 +16296,1106 @@
     jump $I10
   rx1311_done:
     rx1311_cur."!cursor_fail"()
-    rx1311_cur."!cursor_debug"("FAIL  ", "assertion:sym<name>")
+    rx1311_cur."!cursor_debug"("FAIL  ", "metachar:sym<var>")
     .return (rx1311_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "!PREFIX__assertion:sym<name>"  :subid("339_1274022894.43745") :method
+.sub "!PREFIX__metachar:sym<var>"  :subid("338_1274564776.41408") :method
 .annotate 'line', 548
     new $P1313, "ResizablePMCArray"
     push $P1313, ""
+    push $P1313, ""
+    push $P1313, "$"
+    push $P1313, "$<"
     .return ($P1313)
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "_block1318"  :anon :subid("340_1274022894.43745") :method :outer("338_1274022894.43745")
-.annotate 'line', 564
-    .local string rx1320_tgt
-    .local int rx1320_pos
-    .local int rx1320_off
-    .local int rx1320_eos
-    .local int rx1320_rep
-    .local pmc rx1320_cur
-    (rx1320_cur, rx1320_pos, rx1320_tgt) = self."!cursor_start"()
-    rx1320_cur."!cursor_debug"("START ", "")
-    .lex unicode:"$\x{a2}", rx1320_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1320_eos, rx1320_tgt
-    set rx1320_off, 0
-    lt rx1320_pos, 2, rx1320_start
-    sub rx1320_off, rx1320_pos, 1
-    substr rx1320_tgt, rx1320_tgt, rx1320_off
-  rx1320_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1321_done
-    goto rxscan1321_scan
-  rxscan1321_loop:
-    ($P10) = rx1320_cur."from"()
-    inc $P10
-    set rx1320_pos, $P10
-    ge rx1320_pos, rx1320_eos, rxscan1321_done
-  rxscan1321_scan:
-    set_addr $I10, rxscan1321_loop
-    rx1320_cur."!mark_push"(0, rx1320_pos, $I10)
-  rxscan1321_done:
-  # rx literal  ">"
-    add $I11, rx1320_pos, 1
-    gt $I11, rx1320_eos, rx1320_fail
-    sub $I11, rx1320_pos, rx1320_off
-    substr $S10, rx1320_tgt, $I11, 1
-    ne $S10, ">", rx1320_fail
-    add rx1320_pos, 1
-  # rx pass
-    rx1320_cur."!cursor_pass"(rx1320_pos, "")
-    rx1320_cur."!cursor_debug"("PASS  ", "", " at pos=", rx1320_pos)
-    .return (rx1320_cur)
-  rx1320_fail:
-    (rx1320_rep, rx1320_pos, $I10, $P10) = rx1320_cur."!mark_fail"(0)
-    lt rx1320_pos, -1, rx1320_done
-    eq rx1320_pos, -1, rx1320_fail
-    jump $I10
-  rx1320_done:
-    rx1320_cur."!cursor_fail"()
-    rx1320_cur."!cursor_debug"("FAIL  ", "")
-    .return (rx1320_cur)
+.sub "_block1320"  :anon :subid("339_1274564776.41408") :method :outer("337_1274564776.41408")
+.annotate 'line', 561
+    .local string rx1322_tgt
+    .local int rx1322_pos
+    .local int rx1322_off
+    .local int rx1322_eos
+    .local int rx1322_rep
+    .local pmc rx1322_cur
+    (rx1322_cur, rx1322_pos, rx1322_tgt) = self."!cursor_start"()
+    rx1322_cur."!cursor_debug"("START ", "")
+    .lex unicode:"$\x{a2}", rx1322_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1322_eos, rx1322_tgt
+    set rx1322_off, 0
+    lt rx1322_pos, 2, rx1322_start
+    sub rx1322_off, rx1322_pos, 1
+    substr rx1322_tgt, rx1322_tgt, rx1322_off
+  rx1322_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1323_done
+    goto rxscan1323_scan
+  rxscan1323_loop:
+    ($P10) = rx1322_cur."from"()
+    inc $P10
+    set rx1322_pos, $P10
+    ge rx1322_pos, rx1322_eos, rxscan1323_done
+  rxscan1323_scan:
+    set_addr $I10, rxscan1323_loop
+    rx1322_cur."!mark_push"(0, rx1322_pos, $I10)
+  rxscan1323_done:
+  # rx enumcharlist negate=0 
+    ge rx1322_pos, rx1322_eos, rx1322_fail
+    sub $I10, rx1322_pos, rx1322_off
+    substr $S10, rx1322_tgt, $I10, 1
+    index $I11, "$@", $S10
+    lt $I11, 0, rx1322_fail
+    inc rx1322_pos
+  # rx charclass w
+    ge rx1322_pos, rx1322_eos, rx1322_fail
+    sub $I10, rx1322_pos, rx1322_off
+    is_cclass $I11, 8192, rx1322_tgt, $I10
+    unless $I11, rx1322_fail
+    inc rx1322_pos
+  # rx pass
+    rx1322_cur."!cursor_pass"(rx1322_pos, "")
+    rx1322_cur."!cursor_debug"("PASS  ", "", " at pos=", rx1322_pos)
+    .return (rx1322_cur)
+  rx1322_fail:
+    (rx1322_rep, rx1322_pos, $I10, $P10) = rx1322_cur."!mark_fail"(0)
+    lt rx1322_pos, -1, rx1322_done
+    eq rx1322_pos, -1, rx1322_fail
+    jump $I10
+  rx1322_done:
+    rx1322_cur."!cursor_fail"()
+    rx1322_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx1322_cur)
+    .return ()
+.end
+
+
+.namespace ["NQP";"Regex"]
+.sub "_block1324"  :anon :subid("340_1274564776.41408") :method :outer("337_1274564776.41408")
+.annotate 'line', 562
+    .local string rx1326_tgt
+    .local int rx1326_pos
+    .local int rx1326_off
+    .local int rx1326_eos
+    .local int rx1326_rep
+    .local pmc rx1326_cur
+    (rx1326_cur, rx1326_pos, rx1326_tgt) = self."!cursor_start"()
+    rx1326_cur."!cursor_debug"("START ", "")
+    .lex unicode:"$\x{a2}", rx1326_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1326_eos, rx1326_tgt
+    set rx1326_off, 0
+    lt rx1326_pos, 2, rx1326_start
+    sub rx1326_off, rx1326_pos, 1
+    substr rx1326_tgt, rx1326_tgt, rx1326_off
+  rx1326_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1327_done
+    goto rxscan1327_scan
+  rxscan1327_loop:
+    ($P10) = rx1326_cur."from"()
+    inc $P10
+    set rx1326_pos, $P10
+    ge rx1326_pos, rx1326_eos, rxscan1327_done
+  rxscan1327_scan:
+    set_addr $I10, rxscan1327_loop
+    rx1326_cur."!mark_push"(0, rx1326_pos, $I10)
+  rxscan1327_done:
+  # rx literal  "%"
+    add $I11, rx1326_pos, 1
+    gt $I11, rx1326_eos, rx1326_fail
+    sub $I11, rx1326_pos, rx1326_off
+    substr $S10, rx1326_tgt, $I11, 1
+    ne $S10, "%", rx1326_fail
+    add rx1326_pos, 1
+  # rx charclass w
+    ge rx1326_pos, rx1326_eos, rx1326_fail
+    sub $I10, rx1326_pos, rx1326_off
+    is_cclass $I11, 8192, rx1326_tgt, $I10
+    unless $I11, rx1326_fail
+    inc rx1326_pos
+  # rx pass
+    rx1326_cur."!cursor_pass"(rx1326_pos, "")
+    rx1326_cur."!cursor_debug"("PASS  ", "", " at pos=", rx1326_pos)
+    .return (rx1326_cur)
+  rx1326_fail:
+    (rx1326_rep, rx1326_pos, $I10, $P10) = rx1326_cur."!mark_fail"(0)
+    lt rx1326_pos, -1, rx1326_done
+    eq rx1326_pos, -1, rx1326_fail
+    jump $I10
+  rx1326_done:
+    rx1326_cur."!cursor_fail"()
+    rx1326_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx1326_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "codeblock"  :subid("341_1274022894.43745") :method :outer("330_1274022894.43745")
+.sub "assertion:sym<var>"  :subid("341_1274564776.41408") :method :outer("330_1274564776.41408")
 .annotate 'line', 548
-    .local string rx1324_tgt
-    .local int rx1324_pos
-    .local int rx1324_off
-    .local int rx1324_eos
-    .local int rx1324_rep
-    .local pmc rx1324_cur
-    (rx1324_cur, rx1324_pos, rx1324_tgt) = self."!cursor_start"()
-    rx1324_cur."!cursor_debug"("START ", "codeblock")
-    .lex unicode:"$\x{a2}", rx1324_cur
-    .local pmc match
-    .lex "$/", match
-    length rx1324_eos, rx1324_tgt
-    set rx1324_off, 0
-    lt rx1324_pos, 2, rx1324_start
-    sub rx1324_off, rx1324_pos, 1
-    substr rx1324_tgt, rx1324_tgt, rx1324_off
-  rx1324_start:
-    $I10 = self.'from'()
-    ne $I10, -1, rxscan1328_done
-    goto rxscan1328_scan
-  rxscan1328_loop:
-    ($P10) = rx1324_cur."from"()
-    inc $P10
-    set rx1324_pos, $P10
-    ge rx1324_pos, rx1324_eos, rxscan1328_done
-  rxscan1328_scan:
-    set_addr $I10, rxscan1328_loop
-    rx1324_cur."!mark_push"(0, rx1324_pos, $I10)
-  rxscan1328_done:
-.annotate 'line', 574
+    .const 'Sub' $P1341 = "344_1274564776.41408" 
+    capture_lex $P1341
+    .const 'Sub' $P1337 = "343_1274564776.41408" 
+    capture_lex $P1337
+    .local string rx1331_tgt
+    .local int rx1331_pos
+    .local int rx1331_off
+    .local int rx1331_eos
+    .local int rx1331_rep
+    .local pmc rx1331_cur
+    (rx1331_cur, rx1331_pos, rx1331_tgt) = self."!cursor_start"()
+    rx1331_cur."!cursor_debug"("START ", "assertion:sym<var>")
+    .lex unicode:"$\x{a2}", rx1331_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1331_eos, rx1331_tgt
+    set rx1331_off, 0
+    lt rx1331_pos, 2, rx1331_start
+    sub rx1331_off, rx1331_pos, 1
+    substr rx1331_tgt, rx1331_tgt, rx1331_off
+  rx1331_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1334_done
+    goto rxscan1334_scan
+  rxscan1334_loop:
+    ($P10) = rx1331_cur."from"()
+    inc $P10
+    set rx1331_pos, $P10
+    ge rx1331_pos, rx1331_eos, rxscan1334_done
+  rxscan1334_scan:
+    set_addr $I10, rxscan1334_loop
+    rx1331_cur."!mark_push"(0, rx1331_pos, $I10)
+  rxscan1334_done:
+  alt1335_0:
+.annotate 'line', 568
+    set_addr $I10, alt1335_1
+    rx1331_cur."!mark_push"(0, rx1331_pos, $I10)
+.annotate 'line', 569
+  # rx subrule "before" subtype=zerowidth negate=
+    rx1331_cur."!cursor_pos"(rx1331_pos)
+    .const 'Sub' $P1337 = "343_1274564776.41408" 
+    capture_lex $P1337
+    $P10 = rx1331_cur."before"($P1337)
+    unless $P10, rx1331_fail
   # rx subrule "LANG" subtype=capture negate=
-    rx1324_cur."!cursor_pos"(rx1324_pos)
-    $P10 = rx1324_cur."LANG"("MAIN", "pblock")
-    unless $P10, rx1324_fail
-    rx1324_cur."!mark_push"(0, -1, 0, $P10)
-    $P10."!cursor_names"("block")
-    rx1324_pos = $P10."pos"()
-.annotate 'line', 573
+    rx1331_cur."!cursor_pos"(rx1331_pos)
+    $P10 = rx1331_cur."LANG"("MAIN", "variable")
+    unless $P10, rx1331_fail
+    rx1331_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("var")
+    rx1331_pos = $P10."pos"()
+    goto alt1335_end
+  alt1335_1:
+.annotate 'line', 570
+  # rx subrule "before" subtype=zerowidth negate=
+    rx1331_cur."!cursor_pos"(rx1331_pos)
+    .const 'Sub' $P1341 = "344_1274564776.41408" 
+    capture_lex $P1341
+    $P10 = rx1331_cur."before"($P1341)
+    unless $P10, rx1331_fail
+  # rx subrule "panic" subtype=method negate=
+    rx1331_cur."!cursor_pos"(rx1331_pos)
+    $P10 = rx1331_cur."panic"("Use of hash variable in patterns is reserved")
+    unless $P10, rx1331_fail
+    rx1331_pos = $P10."pos"()
+  alt1335_end:
+.annotate 'line', 568
   # rx pass
-    rx1324_cur."!cursor_pass"(rx1324_pos, "codeblock")
-    rx1324_cur."!cursor_debug"("PASS  ", "codeblock", " at pos=", rx1324_pos)
-    .return (rx1324_cur)
-  rx1324_fail:
+    rx1331_cur."!cursor_pass"(rx1331_pos, "assertion:sym<var>")
+    rx1331_cur."!cursor_debug"("PASS  ", "assertion:sym<var>", " at pos=", rx1331_pos)
+    .return (rx1331_cur)
+  rx1331_fail:
 .annotate 'line', 548
-    (rx1324_rep, rx1324_pos, $I10, $P10) = rx1324_cur."!mark_fail"(0)
-    lt rx1324_pos, -1, rx1324_done
-    eq rx1324_pos, -1, rx1324_fail
-    jump $I10
-  rx1324_done:
-    rx1324_cur."!cursor_fail"()
-    rx1324_cur."!cursor_debug"("FAIL  ", "codeblock")
-    .return (rx1324_cur)
+    (rx1331_rep, rx1331_pos, $I10, $P10) = rx1331_cur."!mark_fail"(0)
+    lt rx1331_pos, -1, rx1331_done
+    eq rx1331_pos, -1, rx1331_fail
+    jump $I10
+  rx1331_done:
+    rx1331_cur."!cursor_fail"()
+    rx1331_cur."!cursor_debug"("FAIL  ", "assertion:sym<var>")
+    .return (rx1331_cur)
     .return ()
 .end
 
 
 .namespace ["NQP";"Regex"]
-.sub "!PREFIX__codeblock"  :subid("342_1274022894.43745") :method
+.sub "!PREFIX__assertion:sym<var>"  :subid("342_1274564776.41408") :method
 .annotate 'line', 548
-    $P1326 = self."!PREFIX__!subrule"("block", "")
-    new $P1327, "ResizablePMCArray"
-    push $P1327, $P1326
-    .return ($P1327)
+    new $P1333, "ResizablePMCArray"
+    push $P1333, ""
+    push $P1333, ""
+    .return ($P1333)
 .end
 
 
-.namespace ["NQP";"Grammar"]
-.sub "_block1330" :load :anon :subid("343_1274022894.43745")
-.annotate 'line', 4
-    .const 'Sub' $P1332 = "11_1274022894.43745" 
-    $P1333 = $P1332()
-    .return ($P1333)
+.namespace ["NQP";"Regex"]
+.sub "_block1336"  :anon :subid("343_1274564776.41408") :method :outer("341_1274564776.41408")
+.annotate 'line', 569
+    .local string rx1338_tgt
+    .local int rx1338_pos
+    .local int rx1338_off
+    .local int rx1338_eos
+    .local int rx1338_rep
+    .local pmc rx1338_cur
+    (rx1338_cur, rx1338_pos, rx1338_tgt) = self."!cursor_start"()
+    rx1338_cur."!cursor_debug"("START ", "")
+    .lex unicode:"$\x{a2}", rx1338_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1338_eos, rx1338_tgt
+    set rx1338_off, 0
+    lt rx1338_pos, 2, rx1338_start
+    sub rx1338_off, rx1338_pos, 1
+    substr rx1338_tgt, rx1338_tgt, rx1338_off
+  rx1338_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1339_done
+    goto rxscan1339_scan
+  rxscan1339_loop:
+    ($P10) = rx1338_cur."from"()
+    inc $P10
+    set rx1338_pos, $P10
+    ge rx1338_pos, rx1338_eos, rxscan1339_done
+  rxscan1339_scan:
+    set_addr $I10, rxscan1339_loop
+    rx1338_cur."!mark_push"(0, rx1338_pos, $I10)
+  rxscan1339_done:
+  # rx enumcharlist negate=0 
+    ge rx1338_pos, rx1338_eos, rx1338_fail
+    sub $I10, rx1338_pos, rx1338_off
+    substr $S10, rx1338_tgt, $I10, 1
+    index $I11, "$@", $S10
+    lt $I11, 0, rx1338_fail
+    inc rx1338_pos
+  # rx charclass w
+    ge rx1338_pos, rx1338_eos, rx1338_fail
+    sub $I10, rx1338_pos, rx1338_off
+    is_cclass $I11, 8192, rx1338_tgt, $I10
+    unless $I11, rx1338_fail
+    inc rx1338_pos
+  # rx pass
+    rx1338_cur."!cursor_pass"(rx1338_pos, "")
+    rx1338_cur."!cursor_debug"("PASS  ", "", " at pos=", rx1338_pos)
+    .return (rx1338_cur)
+  rx1338_fail:
+    (rx1338_rep, rx1338_pos, $I10, $P10) = rx1338_cur."!mark_fail"(0)
+    lt rx1338_pos, -1, rx1338_done
+    eq rx1338_pos, -1, rx1338_fail
+    jump $I10
+  rx1338_done:
+    rx1338_cur."!cursor_fail"()
+    rx1338_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx1338_cur)
+    .return ()
 .end
 
 
-.namespace []
-.sub "_block1351" :load :anon :subid("344_1274022894.43745")
-.annotate 'line', 1
-    .const 'Sub' $P1353 = "10_1274022894.43745" 
-    $P1354 = $P1353()
-    .return ($P1354)
+.namespace ["NQP";"Regex"]
+.sub "_block1340"  :anon :subid("344_1274564776.41408") :method :outer("341_1274564776.41408")
+.annotate 'line', 570
+    .local string rx1342_tgt
+    .local int rx1342_pos
+    .local int rx1342_off
+    .local int rx1342_eos
+    .local int rx1342_rep
+    .local pmc rx1342_cur
+    (rx1342_cur, rx1342_pos, rx1342_tgt) = self."!cursor_start"()
+    rx1342_cur."!cursor_debug"("START ", "")
+    .lex unicode:"$\x{a2}", rx1342_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1342_eos, rx1342_tgt
+    set rx1342_off, 0
+    lt rx1342_pos, 2, rx1342_start
+    sub rx1342_off, rx1342_pos, 1
+    substr rx1342_tgt, rx1342_tgt, rx1342_off
+  rx1342_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1343_done
+    goto rxscan1343_scan
+  rxscan1343_loop:
+    ($P10) = rx1342_cur."from"()
+    inc $P10
+    set rx1342_pos, $P10
+    ge rx1342_pos, rx1342_eos, rxscan1343_done
+  rxscan1343_scan:
+    set_addr $I10, rxscan1343_loop
+    rx1342_cur."!mark_push"(0, rx1342_pos, $I10)
+  rxscan1343_done:
+  # rx literal  "%"
+    add $I11, rx1342_pos, 1
+    gt $I11, rx1342_eos, rx1342_fail
+    sub $I11, rx1342_pos, rx1342_off
+    substr $S10, rx1342_tgt, $I11, 1
+    ne $S10, "%", rx1342_fail
+    add rx1342_pos, 1
+  # rx charclass w
+    ge rx1342_pos, rx1342_eos, rx1342_fail
+    sub $I10, rx1342_pos, rx1342_off
+    is_cclass $I11, 8192, rx1342_tgt, $I10
+    unless $I11, rx1342_fail
+    inc rx1342_pos
+  # rx pass
+    rx1342_cur."!cursor_pass"(rx1342_pos, "")
+    rx1342_cur."!cursor_debug"("PASS  ", "", " at pos=", rx1342_pos)
+    .return (rx1342_cur)
+  rx1342_fail:
+    (rx1342_rep, rx1342_pos, $I10, $P10) = rx1342_cur."!mark_fail"(0)
+    lt rx1342_pos, -1, rx1342_done
+    eq rx1342_pos, -1, rx1342_fail
+    jump $I10
+  rx1342_done:
+    rx1342_cur."!cursor_fail"()
+    rx1342_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx1342_cur)
+    .return ()
 .end
 
-### .include 'gen/nqp-actions.pir'
 
-.namespace []
-.sub "_block11"  :anon :subid("10_1274022903.56472")
-.annotate 'line', 0
-    get_hll_global $P14, ["NQP";"Actions"], "_block13" 
-    capture_lex $P14
-.annotate 'line', 3
-    get_hll_global $P14, ["NQP";"Actions"], "_block13" 
-    capture_lex $P14
-    $P2262 = $P14()
-.annotate 'line', 1
-    .return ($P2262)
-    .const 'Sub' $P2264 = "133_1274022903.56472" 
-    .return ($P2264)
+.namespace ["NQP";"Regex"]
+.sub "metachar:sym<{ }>"  :subid("345_1274564776.41408") :method :outer("330_1274564776.41408")
+.annotate 'line', 548
+    .local string rx1345_tgt
+    .local int rx1345_pos
+    .local int rx1345_off
+    .local int rx1345_eos
+    .local int rx1345_rep
+    .local pmc rx1345_cur
+    (rx1345_cur, rx1345_pos, rx1345_tgt) = self."!cursor_start"()
+    rx1345_cur."!cursor_debug"("START ", "metachar:sym<{ }>")
+    .lex unicode:"$\x{a2}", rx1345_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1345_eos, rx1345_tgt
+    set rx1345_off, 0
+    lt rx1345_pos, 2, rx1345_start
+    sub rx1345_off, rx1345_pos, 1
+    substr rx1345_tgt, rx1345_tgt, rx1345_off
+  rx1345_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1348_done
+    goto rxscan1348_scan
+  rxscan1348_loop:
+    ($P10) = rx1345_cur."from"()
+    inc $P10
+    set rx1345_pos, $P10
+    ge rx1345_pos, rx1345_eos, rxscan1348_done
+  rxscan1348_scan:
+    set_addr $I10, rxscan1348_loop
+    rx1345_cur."!mark_push"(0, rx1345_pos, $I10)
+  rxscan1348_done:
+.annotate 'line', 574
+  # rx enumcharlist negate=0 zerowidth
+    ge rx1345_pos, rx1345_eos, rx1345_fail
+    sub $I10, rx1345_pos, rx1345_off
+    substr $S10, rx1345_tgt, $I10, 1
+    index $I11, "{", $S10
+    lt $I11, 0, rx1345_fail
+  # rx subrule "codeblock" subtype=capture negate=
+    rx1345_cur."!cursor_pos"(rx1345_pos)
+    $P10 = rx1345_cur."codeblock"()
+    unless $P10, rx1345_fail
+    rx1345_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("codeblock")
+    rx1345_pos = $P10."pos"()
+.annotate 'line', 573
+  # rx pass
+    rx1345_cur."!cursor_pass"(rx1345_pos, "metachar:sym<{ }>")
+    rx1345_cur."!cursor_debug"("PASS  ", "metachar:sym<{ }>", " at pos=", rx1345_pos)
+    .return (rx1345_cur)
+  rx1345_fail:
+.annotate 'line', 548
+    (rx1345_rep, rx1345_pos, $I10, $P10) = rx1345_cur."!mark_fail"(0)
+    lt rx1345_pos, -1, rx1345_done
+    eq rx1345_pos, -1, rx1345_fail
+    jump $I10
+  rx1345_done:
+    rx1345_cur."!cursor_fail"()
+    rx1345_cur."!cursor_debug"("FAIL  ", "metachar:sym<{ }>")
+    .return (rx1345_cur)
+    .return ()
 .end
 
 
-.namespace []
-.sub "" :load :init :subid("post134") :outer("10_1274022903.56472")
-.annotate 'line', 0
-    .const 'Sub' $P12 = "10_1274022903.56472" 
-    .local pmc block
-    set block, $P12
-    $P2267 = get_root_global ["parrot"], "P6metaclass"
-    $P2267."new_class"("NQP::Actions", "HLL::Actions" :named("parent"))
+.namespace ["NQP";"Regex"]
+.sub "!PREFIX__metachar:sym<{ }>"  :subid("346_1274564776.41408") :method
+.annotate 'line', 548
+    new $P1347, "ResizablePMCArray"
+    push $P1347, "{"
+    .return ($P1347)
 .end
 
 
-.namespace ["NQP";"Actions"]
-.sub "_block13"  :subid("11_1274022903.56472") :outer("10_1274022903.56472")
-.annotate 'line', 3
-    .const 'Sub' $P2258 = "132_1274022903.56472" 
-    capture_lex $P2258
-    get_hll_global $P2189, ["NQP";"RegexActions"], "_block2188" 
-    capture_lex $P2189
-    .const 'Sub' $P2178 = "125_1274022903.56472" 
-    capture_lex $P2178
-    .const 'Sub' $P2171 = "124_1274022903.56472" 
-    capture_lex $P2171
-    .const 'Sub' $P2164 = "123_1274022903.56472" 
-    capture_lex $P2164
-    .const 'Sub' $P2157 = "122_1274022903.56472" 
-    capture_lex $P2157
-    .const 'Sub' $P2144 = "121_1274022903.56472" 
-    capture_lex $P2144
-    .const 'Sub' $P2134 = "120_1274022903.56472" 
-    capture_lex $P2134
-    .const 'Sub' $P2124 = "119_1274022903.56472" 
-    capture_lex $P2124
-    .const 'Sub' $P2114 = "118_1274022903.56472" 
-    capture_lex $P2114
-    .const 'Sub' $P2107 = "117_1274022903.56472" 
-    capture_lex $P2107
-    .const 'Sub' $P2093 = "116_1274022903.56472" 
-    capture_lex $P2093
-    .const 'Sub' $P2083 = "115_1274022903.56472" 
-    capture_lex $P2083
-    .const 'Sub' $P2046 = "114_1274022903.56472" 
-    capture_lex $P2046
-    .const 'Sub' $P2032 = "113_1274022903.56472" 
-    capture_lex $P2032
-    .const 'Sub' $P2022 = "112_1274022903.56472" 
-    capture_lex $P2022
-    .const 'Sub' $P2012 = "111_1274022903.56472" 
-    capture_lex $P2012
-    .const 'Sub' $P2002 = "110_1274022903.56472" 
-    capture_lex $P2002
-    .const 'Sub' $P1992 = "109_1274022903.56472" 
-    capture_lex $P1992
-    .const 'Sub' $P1982 = "108_1274022903.56472" 
-    capture_lex $P1982
-    .const 'Sub' $P1954 = "107_1274022903.56472" 
-    capture_lex $P1954
-    .const 'Sub' $P1937 = "106_1274022903.56472" 
-    capture_lex $P1937
-    .const 'Sub' $P1927 = "105_1274022903.56472" 
-    capture_lex $P1927
-    .const 'Sub' $P1914 = "104_1274022903.56472" 
-    capture_lex $P1914
-    .const 'Sub' $P1901 = "103_1274022903.56472" 
-    capture_lex $P1901
-    .const 'Sub' $P1888 = "102_1274022903.56472" 
-    capture_lex $P1888
-    .const 'Sub' $P1878 = "101_1274022903.56472" 
-    capture_lex $P1878
-    .const 'Sub' $P1849 = "100_1274022903.56472" 
-    capture_lex $P1849
-    .const 'Sub' $P1825 = "99_1274022903.56472" 
-    capture_lex $P1825
-    .const 'Sub' $P1815 = "98_1274022903.56472" 
-    capture_lex $P1815
-    .const 'Sub' $P1805 = "97_1274022903.56472" 
-    capture_lex $P1805
-    .const 'Sub' $P1778 = "96_1274022903.56472" 
-    capture_lex $P1778
-    .const 'Sub' $P1760 = "95_1274022903.56472" 
-    capture_lex $P1760
-    .const 'Sub' $P1750 = "94_1274022903.56472" 
-    capture_lex $P1750
-    .const 'Sub' $P1646 = "91_1274022903.56472" 
-    capture_lex $P1646
-    .const 'Sub' $P1636 = "90_1274022903.56472" 
-    capture_lex $P1636
-    .const 'Sub' $P1607 = "89_1274022903.56472" 
-    capture_lex $P1607
-    .const 'Sub' $P1565 = "88_1274022903.56472" 
-    capture_lex $P1565
-    .const 'Sub' $P1549 = "87_1274022903.56472" 
+.namespace ["NQP";"Regex"]
+.sub "assertion:sym<{ }>"  :subid("347_1274564776.41408") :method :outer("330_1274564776.41408")
+.annotate 'line', 548
+    .local string rx1350_tgt
+    .local int rx1350_pos
+    .local int rx1350_off
+    .local int rx1350_eos
+    .local int rx1350_rep
+    .local pmc rx1350_cur
+    (rx1350_cur, rx1350_pos, rx1350_tgt) = self."!cursor_start"()
+    rx1350_cur."!cursor_debug"("START ", "assertion:sym<{ }>")
+    .lex unicode:"$\x{a2}", rx1350_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1350_eos, rx1350_tgt
+    set rx1350_off, 0
+    lt rx1350_pos, 2, rx1350_start
+    sub rx1350_off, rx1350_pos, 1
+    substr rx1350_tgt, rx1350_tgt, rx1350_off
+  rx1350_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1353_done
+    goto rxscan1353_scan
+  rxscan1353_loop:
+    ($P10) = rx1350_cur."from"()
+    inc $P10
+    set rx1350_pos, $P10
+    ge rx1350_pos, rx1350_eos, rxscan1353_done
+  rxscan1353_scan:
+    set_addr $I10, rxscan1353_loop
+    rx1350_cur."!mark_push"(0, rx1350_pos, $I10)
+  rxscan1353_done:
+.annotate 'line', 578
+  # rx enumcharlist negate=0 zerowidth
+    ge rx1350_pos, rx1350_eos, rx1350_fail
+    sub $I10, rx1350_pos, rx1350_off
+    substr $S10, rx1350_tgt, $I10, 1
+    index $I11, "{", $S10
+    lt $I11, 0, rx1350_fail
+  # rx subrule "codeblock" subtype=capture negate=
+    rx1350_cur."!cursor_pos"(rx1350_pos)
+    $P10 = rx1350_cur."codeblock"()
+    unless $P10, rx1350_fail
+    rx1350_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("codeblock")
+    rx1350_pos = $P10."pos"()
+.annotate 'line', 577
+  # rx pass
+    rx1350_cur."!cursor_pass"(rx1350_pos, "assertion:sym<{ }>")
+    rx1350_cur."!cursor_debug"("PASS  ", "assertion:sym<{ }>", " at pos=", rx1350_pos)
+    .return (rx1350_cur)
+  rx1350_fail:
+.annotate 'line', 548
+    (rx1350_rep, rx1350_pos, $I10, $P10) = rx1350_cur."!mark_fail"(0)
+    lt rx1350_pos, -1, rx1350_done
+    eq rx1350_pos, -1, rx1350_fail
+    jump $I10
+  rx1350_done:
+    rx1350_cur."!cursor_fail"()
+    rx1350_cur."!cursor_debug"("FAIL  ", "assertion:sym<{ }>")
+    .return (rx1350_cur)
+    .return ()
+.end
+
+
+.namespace ["NQP";"Regex"]
+.sub "!PREFIX__assertion:sym<{ }>"  :subid("348_1274564776.41408") :method
+.annotate 'line', 548
+    new $P1352, "ResizablePMCArray"
+    push $P1352, "{"
+    .return ($P1352)
+.end
+
+
+.namespace ["NQP";"Regex"]
+.sub "assertion:sym<name>"  :subid("349_1274564776.41408") :method :outer("330_1274564776.41408")
+.annotate 'line', 548
+    .const 'Sub' $P1363 = "351_1274564776.41408" 
+    capture_lex $P1363
+    .local string rx1355_tgt
+    .local int rx1355_pos
+    .local int rx1355_off
+    .local int rx1355_eos
+    .local int rx1355_rep
+    .local pmc rx1355_cur
+    (rx1355_cur, rx1355_pos, rx1355_tgt) = self."!cursor_start"()
+    rx1355_cur."!cursor_debug"("START ", "assertion:sym<name>")
+    rx1355_cur."!cursor_caparray"("assertion", "nibbler", "arglist")
+    .lex unicode:"$\x{a2}", rx1355_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1355_eos, rx1355_tgt
+    set rx1355_off, 0
+    lt rx1355_pos, 2, rx1355_start
+    sub rx1355_off, rx1355_pos, 1
+    substr rx1355_tgt, rx1355_tgt, rx1355_off
+  rx1355_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1358_done
+    goto rxscan1358_scan
+  rxscan1358_loop:
+    ($P10) = rx1355_cur."from"()
+    inc $P10
+    set rx1355_pos, $P10
+    ge rx1355_pos, rx1355_eos, rxscan1358_done
+  rxscan1358_scan:
+    set_addr $I10, rxscan1358_loop
+    rx1355_cur."!mark_push"(0, rx1355_pos, $I10)
+  rxscan1358_done:
+.annotate 'line', 582
+  # rx subcapture "longname"
+    set_addr $I10, rxcap_1359_fail
+    rx1355_cur."!mark_push"(0, rx1355_pos, $I10)
+  # rx charclass_q w r 1..-1
+    sub $I10, rx1355_pos, rx1355_off
+    find_not_cclass $I11, 8192, rx1355_tgt, $I10, rx1355_eos
+    add $I12, $I10, 1
+    lt $I11, $I12, rx1355_fail
+    add rx1355_pos, rx1355_off, $I11
+    set_addr $I10, rxcap_1359_fail
+    ($I12, $I11) = rx1355_cur."!mark_peek"($I10)
+    rx1355_cur."!cursor_pos"($I11)
+    ($P10) = rx1355_cur."!cursor_start"()
+    $P10."!cursor_pass"(rx1355_pos, "")
+    rx1355_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("longname")
+    goto rxcap_1359_done
+  rxcap_1359_fail:
+    goto rx1355_fail
+  rxcap_1359_done:
+.annotate 'line', 589
+  # rx rxquantr1360 ** 0..1
+    set_addr $I1366, rxquantr1360_done
+    rx1355_cur."!mark_push"(0, rx1355_pos, $I1366)
+  rxquantr1360_loop:
+  alt1361_0:
+.annotate 'line', 583
+    set_addr $I10, alt1361_1
+    rx1355_cur."!mark_push"(0, rx1355_pos, $I10)
+.annotate 'line', 584
+  # rx subrule "before" subtype=zerowidth negate=
+    rx1355_cur."!cursor_pos"(rx1355_pos)
+    .const 'Sub' $P1363 = "351_1274564776.41408" 
+    capture_lex $P1363
+    $P10 = rx1355_cur."before"($P1363)
+    unless $P10, rx1355_fail
+    goto alt1361_end
+  alt1361_1:
+    set_addr $I10, alt1361_2
+    rx1355_cur."!mark_push"(0, rx1355_pos, $I10)
+.annotate 'line', 585
+  # rx literal  "="
+    add $I11, rx1355_pos, 1
+    gt $I11, rx1355_eos, rx1355_fail
+    sub $I11, rx1355_pos, rx1355_off
+    substr $S10, rx1355_tgt, $I11, 1
+    ne $S10, "=", rx1355_fail
+    add rx1355_pos, 1
+  # rx subrule "assertion" subtype=capture negate=
+    rx1355_cur."!cursor_pos"(rx1355_pos)
+    $P10 = rx1355_cur."assertion"()
+    unless $P10, rx1355_fail
+    rx1355_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("assertion")
+    rx1355_pos = $P10."pos"()
+    goto alt1361_end
+  alt1361_2:
+    set_addr $I10, alt1361_3
+    rx1355_cur."!mark_push"(0, rx1355_pos, $I10)
+.annotate 'line', 586
+  # rx literal  ":"
+    add $I11, rx1355_pos, 1
+    gt $I11, rx1355_eos, rx1355_fail
+    sub $I11, rx1355_pos, rx1355_off
+    substr $S10, rx1355_tgt, $I11, 1
+    ne $S10, ":", rx1355_fail
+    add rx1355_pos, 1
+  # rx subrule "arglist" subtype=capture negate=
+    rx1355_cur."!cursor_pos"(rx1355_pos)
+    $P10 = rx1355_cur."arglist"()
+    unless $P10, rx1355_fail
+    rx1355_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("arglist")
+    rx1355_pos = $P10."pos"()
+    goto alt1361_end
+  alt1361_3:
+    set_addr $I10, alt1361_4
+    rx1355_cur."!mark_push"(0, rx1355_pos, $I10)
+.annotate 'line', 587
+  # rx literal  "("
+    add $I11, rx1355_pos, 1
+    gt $I11, rx1355_eos, rx1355_fail
+    sub $I11, rx1355_pos, rx1355_off
+    substr $S10, rx1355_tgt, $I11, 1
+    ne $S10, "(", rx1355_fail
+    add rx1355_pos, 1
+  # rx subrule "LANG" subtype=capture negate=
+    rx1355_cur."!cursor_pos"(rx1355_pos)
+    $P10 = rx1355_cur."LANG"("MAIN", "arglist")
+    unless $P10, rx1355_fail
+    rx1355_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("arglist")
+    rx1355_pos = $P10."pos"()
+  # rx literal  ")"
+    add $I11, rx1355_pos, 1
+    gt $I11, rx1355_eos, rx1355_fail
+    sub $I11, rx1355_pos, rx1355_off
+    substr $S10, rx1355_tgt, $I11, 1
+    ne $S10, ")", rx1355_fail
+    add rx1355_pos, 1
+    goto alt1361_end
+  alt1361_4:
+.annotate 'line', 588
+  # rx subrule "normspace" subtype=method negate=
+    rx1355_cur."!cursor_pos"(rx1355_pos)
+    $P10 = rx1355_cur."normspace"()
+    unless $P10, rx1355_fail
+    rx1355_pos = $P10."pos"()
+  # rx subrule "nibbler" subtype=capture negate=
+    rx1355_cur."!cursor_pos"(rx1355_pos)
+    $P10 = rx1355_cur."nibbler"()
+    unless $P10, rx1355_fail
+    rx1355_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("nibbler")
+    rx1355_pos = $P10."pos"()
+  alt1361_end:
+.annotate 'line', 589
+    (rx1355_rep) = rx1355_cur."!mark_commit"($I1366)
+  rxquantr1360_done:
+.annotate 'line', 581
+  # rx pass
+    rx1355_cur."!cursor_pass"(rx1355_pos, "assertion:sym<name>")
+    rx1355_cur."!cursor_debug"("PASS  ", "assertion:sym<name>", " at pos=", rx1355_pos)
+    .return (rx1355_cur)
+  rx1355_fail:
+.annotate 'line', 548
+    (rx1355_rep, rx1355_pos, $I10, $P10) = rx1355_cur."!mark_fail"(0)
+    lt rx1355_pos, -1, rx1355_done
+    eq rx1355_pos, -1, rx1355_fail
+    jump $I10
+  rx1355_done:
+    rx1355_cur."!cursor_fail"()
+    rx1355_cur."!cursor_debug"("FAIL  ", "assertion:sym<name>")
+    .return (rx1355_cur)
+    .return ()
+.end
+
+
+.namespace ["NQP";"Regex"]
+.sub "!PREFIX__assertion:sym<name>"  :subid("350_1274564776.41408") :method
+.annotate 'line', 548
+    new $P1357, "ResizablePMCArray"
+    push $P1357, ""
+    .return ($P1357)
+.end
+
+
+.namespace ["NQP";"Regex"]
+.sub "_block1362"  :anon :subid("351_1274564776.41408") :method :outer("349_1274564776.41408")
+.annotate 'line', 584
+    .local string rx1364_tgt
+    .local int rx1364_pos
+    .local int rx1364_off
+    .local int rx1364_eos
+    .local int rx1364_rep
+    .local pmc rx1364_cur
+    (rx1364_cur, rx1364_pos, rx1364_tgt) = self."!cursor_start"()
+    rx1364_cur."!cursor_debug"("START ", "")
+    .lex unicode:"$\x{a2}", rx1364_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1364_eos, rx1364_tgt
+    set rx1364_off, 0
+    lt rx1364_pos, 2, rx1364_start
+    sub rx1364_off, rx1364_pos, 1
+    substr rx1364_tgt, rx1364_tgt, rx1364_off
+  rx1364_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1365_done
+    goto rxscan1365_scan
+  rxscan1365_loop:
+    ($P10) = rx1364_cur."from"()
+    inc $P10
+    set rx1364_pos, $P10
+    ge rx1364_pos, rx1364_eos, rxscan1365_done
+  rxscan1365_scan:
+    set_addr $I10, rxscan1365_loop
+    rx1364_cur."!mark_push"(0, rx1364_pos, $I10)
+  rxscan1365_done:
+  # rx literal  ">"
+    add $I11, rx1364_pos, 1
+    gt $I11, rx1364_eos, rx1364_fail
+    sub $I11, rx1364_pos, rx1364_off
+    substr $S10, rx1364_tgt, $I11, 1
+    ne $S10, ">", rx1364_fail
+    add rx1364_pos, 1
+  # rx pass
+    rx1364_cur."!cursor_pass"(rx1364_pos, "")
+    rx1364_cur."!cursor_debug"("PASS  ", "", " at pos=", rx1364_pos)
+    .return (rx1364_cur)
+  rx1364_fail:
+    (rx1364_rep, rx1364_pos, $I10, $P10) = rx1364_cur."!mark_fail"(0)
+    lt rx1364_pos, -1, rx1364_done
+    eq rx1364_pos, -1, rx1364_fail
+    jump $I10
+  rx1364_done:
+    rx1364_cur."!cursor_fail"()
+    rx1364_cur."!cursor_debug"("FAIL  ", "")
+    .return (rx1364_cur)
+    .return ()
+.end
+
+
+.namespace ["NQP";"Regex"]
+.sub "codeblock"  :subid("352_1274564776.41408") :method :outer("330_1274564776.41408")
+.annotate 'line', 548
+    .local string rx1368_tgt
+    .local int rx1368_pos
+    .local int rx1368_off
+    .local int rx1368_eos
+    .local int rx1368_rep
+    .local pmc rx1368_cur
+    (rx1368_cur, rx1368_pos, rx1368_tgt) = self."!cursor_start"()
+    rx1368_cur."!cursor_debug"("START ", "codeblock")
+    .lex unicode:"$\x{a2}", rx1368_cur
+    .local pmc match
+    .lex "$/", match
+    length rx1368_eos, rx1368_tgt
+    set rx1368_off, 0
+    lt rx1368_pos, 2, rx1368_start
+    sub rx1368_off, rx1368_pos, 1
+    substr rx1368_tgt, rx1368_tgt, rx1368_off
+  rx1368_start:
+    $I10 = self.'from'()
+    ne $I10, -1, rxscan1372_done
+    goto rxscan1372_scan
+  rxscan1372_loop:
+    ($P10) = rx1368_cur."from"()
+    inc $P10
+    set rx1368_pos, $P10
+    ge rx1368_pos, rx1368_eos, rxscan1372_done
+  rxscan1372_scan:
+    set_addr $I10, rxscan1372_loop
+    rx1368_cur."!mark_push"(0, rx1368_pos, $I10)
+  rxscan1372_done:
+.annotate 'line', 594
+  # rx subrule "LANG" subtype=capture negate=
+    rx1368_cur."!cursor_pos"(rx1368_pos)
+    $P10 = rx1368_cur."LANG"("MAIN", "pblock")
+    unless $P10, rx1368_fail
+    rx1368_cur."!mark_push"(0, -1, 0, $P10)
+    $P10."!cursor_names"("block")
+    rx1368_pos = $P10."pos"()
+.annotate 'line', 593
+  # rx pass
+    rx1368_cur."!cursor_pass"(rx1368_pos, "codeblock")
+    rx1368_cur."!cursor_debug"("PASS  ", "codeblock", " at pos=", rx1368_pos)
+    .return (rx1368_cur)
+  rx1368_fail:
+.annotate 'line', 548
+    (rx1368_rep, rx1368_pos, $I10, $P10) = rx1368_cur."!mark_fail"(0)
+    lt rx1368_pos, -1, rx1368_done
+    eq rx1368_pos, -1, rx1368_fail
+    jump $I10
+  rx1368_done:
+    rx1368_cur."!cursor_fail"()
+    rx1368_cur."!cursor_debug"("FAIL  ", "codeblock")
+    .return (rx1368_cur)
+    .return ()
+.end
+
+
+.namespace ["NQP";"Regex"]
+.sub "!PREFIX__codeblock"  :subid("353_1274564776.41408") :method
+.annotate 'line', 548
+    $P1370 = self."!PREFIX__!subrule"("block", "")
+    new $P1371, "ResizablePMCArray"
+    push $P1371, $P1370
+    .return ($P1371)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "_block1374" :load :anon :subid("354_1274564776.41408")
+.annotate 'line', 4
+    .const 'Sub' $P1376 = "11_1274564776.41408" 
+    $P1377 = $P1376()
+    .return ($P1377)
+.end
+
+
+.namespace []
+.sub "_block1395" :load :anon :subid("355_1274564776.41408")
+.annotate 'line', 1
+    .const 'Sub' $P1397 = "10_1274564776.41408" 
+    $P1398 = $P1397()
+    .return ($P1398)
+.end
+
+### .include 'gen/nqp-actions.pir'
+
+.namespace []
+.sub "_block11"  :anon :subid("10_1274564782.90592")
+.annotate 'line', 0
+    get_hll_global $P14, ["NQP";"Actions"], "_block13" 
+    capture_lex $P14
+.annotate 'line', 3
+    get_hll_global $P14, ["NQP";"Actions"], "_block13" 
+    capture_lex $P14
+    $P2370 = $P14()
+.annotate 'line', 1
+    .return ($P2370)
+    .const 'Sub' $P2372 = "137_1274564782.90592" 
+    .return ($P2372)
+.end
+
+
+.namespace []
+.sub "" :load :init :subid("post138") :outer("10_1274564782.90592")
+.annotate 'line', 0
+    .const 'Sub' $P12 = "10_1274564782.90592" 
+    .local pmc block
+    set block, $P12
+    $P2375 = get_root_global ["parrot"], "P6metaclass"
+    $P2375."new_class"("NQP::Actions", "HLL::Actions" :named("parent"))
+.end
+
+
+.namespace ["NQP";"Actions"]
+.sub "_block13"  :subid("11_1274564782.90592") :outer("10_1274564782.90592")
+.annotate 'line', 3
+    .const 'Sub' $P2366 = "136_1274564782.90592" 
+    capture_lex $P2366
+    get_hll_global $P2189, ["NQP";"RegexActions"], "_block2188" 
+    capture_lex $P2189
+    .const 'Sub' $P2178 = "125_1274564782.90592" 
+    capture_lex $P2178
+    .const 'Sub' $P2171 = "124_1274564782.90592" 
+    capture_lex $P2171
+    .const 'Sub' $P2164 = "123_1274564782.90592" 
+    capture_lex $P2164
+    .const 'Sub' $P2157 = "122_1274564782.90592" 
+    capture_lex $P2157
+    .const 'Sub' $P2144 = "121_1274564782.90592" 
+    capture_lex $P2144
+    .const 'Sub' $P2134 = "120_1274564782.90592" 
+    capture_lex $P2134
+    .const 'Sub' $P2124 = "119_1274564782.90592" 
+    capture_lex $P2124
+    .const 'Sub' $P2114 = "118_1274564782.90592" 
+    capture_lex $P2114
+    .const 'Sub' $P2107 = "117_1274564782.90592" 
+    capture_lex $P2107
+    .const 'Sub' $P2093 = "116_1274564782.90592" 
+    capture_lex $P2093
+    .const 'Sub' $P2083 = "115_1274564782.90592" 
+    capture_lex $P2083
+    .const 'Sub' $P2046 = "114_1274564782.90592" 
+    capture_lex $P2046
+    .const 'Sub' $P2032 = "113_1274564782.90592" 
+    capture_lex $P2032
+    .const 'Sub' $P2022 = "112_1274564782.90592" 
+    capture_lex $P2022
+    .const 'Sub' $P2012 = "111_1274564782.90592" 
+    capture_lex $P2012
+    .const 'Sub' $P2002 = "110_1274564782.90592" 
+    capture_lex $P2002
+    .const 'Sub' $P1992 = "109_1274564782.90592" 
+    capture_lex $P1992
+    .const 'Sub' $P1982 = "108_1274564782.90592" 
+    capture_lex $P1982
+    .const 'Sub' $P1954 = "107_1274564782.90592" 
+    capture_lex $P1954
+    .const 'Sub' $P1937 = "106_1274564782.90592" 
+    capture_lex $P1937
+    .const 'Sub' $P1927 = "105_1274564782.90592" 
+    capture_lex $P1927
+    .const 'Sub' $P1914 = "104_1274564782.90592" 
+    capture_lex $P1914
+    .const 'Sub' $P1901 = "103_1274564782.90592" 
+    capture_lex $P1901
+    .const 'Sub' $P1888 = "102_1274564782.90592" 
+    capture_lex $P1888
+    .const 'Sub' $P1878 = "101_1274564782.90592" 
+    capture_lex $P1878
+    .const 'Sub' $P1849 = "100_1274564782.90592" 
+    capture_lex $P1849
+    .const 'Sub' $P1825 = "99_1274564782.90592" 
+    capture_lex $P1825
+    .const 'Sub' $P1815 = "98_1274564782.90592" 
+    capture_lex $P1815
+    .const 'Sub' $P1805 = "97_1274564782.90592" 
+    capture_lex $P1805
+    .const 'Sub' $P1778 = "96_1274564782.90592" 
+    capture_lex $P1778
+    .const 'Sub' $P1760 = "95_1274564782.90592" 
+    capture_lex $P1760
+    .const 'Sub' $P1750 = "94_1274564782.90592" 
+    capture_lex $P1750
+    .const 'Sub' $P1646 = "91_1274564782.90592" 
+    capture_lex $P1646
+    .const 'Sub' $P1636 = "90_1274564782.90592" 
+    capture_lex $P1636
+    .const 'Sub' $P1607 = "89_1274564782.90592" 
+    capture_lex $P1607
+    .const 'Sub' $P1565 = "88_1274564782.90592" 
+    capture_lex $P1565
+    .const 'Sub' $P1549 = "87_1274564782.90592" 
     capture_lex $P1549
-    .const 'Sub' $P1540 = "86_1274022903.56472" 
+    .const 'Sub' $P1540 = "86_1274564782.90592" 
     capture_lex $P1540
-    .const 'Sub' $P1508 = "85_1274022903.56472" 
+    .const 'Sub' $P1508 = "85_1274564782.90592" 
     capture_lex $P1508
-    .const 'Sub' $P1409 = "82_1274022903.56472" 
+    .const 'Sub' $P1409 = "82_1274564782.90592" 
     capture_lex $P1409
-    .const 'Sub' $P1392 = "81_1274022903.56472" 
+    .const 'Sub' $P1392 = "81_1274564782.90592" 
     capture_lex $P1392
-    .const 'Sub' $P1372 = "80_1274022903.56472" 
+    .const 'Sub' $P1372 = "80_1274564782.90592" 
     capture_lex $P1372
-    .const 'Sub' $P1288 = "79_1274022903.56472" 
+    .const 'Sub' $P1288 = "79_1274564782.90592" 
     capture_lex $P1288
-    .const 'Sub' $P1264 = "77_1274022903.56472" 
+    .const 'Sub' $P1264 = "77_1274564782.90592" 
     capture_lex $P1264
-    .const 'Sub' $P1230 = "75_1274022903.56472" 
+    .const 'Sub' $P1230 = "75_1274564782.90592" 
     capture_lex $P1230
-    .const 'Sub' $P1180 = "73_1274022903.56472" 
+    .const 'Sub' $P1180 = "73_1274564782.90592" 
     capture_lex $P1180
-    .const 'Sub' $P1170 = "72_1274022903.56472" 
+    .const 'Sub' $P1170 = "72_1274564782.90592" 
     capture_lex $P1170
-    .const 'Sub' $P1160 = "71_1274022903.56472" 
+    .const 'Sub' $P1160 = "71_1274564782.90592" 
     capture_lex $P1160
-    .const 'Sub' $P1089 = "69_1274022903.56472" 
+    .const 'Sub' $P1089 = "69_1274564782.90592" 
     capture_lex $P1089
-    .const 'Sub' $P1072 = "68_1274022903.56472" 
+    .const 'Sub' $P1072 = "68_1274564782.90592" 
     capture_lex $P1072
-    .const 'Sub' $P1062 = "67_1274022903.56472" 
+    .const 'Sub' $P1062 = "67_1274564782.90592" 
     capture_lex $P1062
-    .const 'Sub' $P1052 = "66_1274022903.56472" 
+    .const 'Sub' $P1052 = "66_1274564782.90592" 
     capture_lex $P1052
-    .const 'Sub' $P1042 = "65_1274022903.56472" 
+    .const 'Sub' $P1042 = "65_1274564782.90592" 
     capture_lex $P1042
-    .const 'Sub' $P1032 = "64_1274022903.56472" 
+    .const 'Sub' $P1032 = "64_1274564782.90592" 
     capture_lex $P1032
-    .const 'Sub' $P1008 = "63_1274022903.56472" 
+    .const 'Sub' $P1008 = "63_1274564782.90592" 
     capture_lex $P1008
-    .const 'Sub' $P955 = "62_1274022903.56472" 
+    .const 'Sub' $P955 = "62_1274564782.90592" 
     capture_lex $P955
-    .const 'Sub' $P945 = "61_1274022903.56472" 
+    .const 'Sub' $P945 = "61_1274564782.90592" 
     capture_lex $P945
-    .const 'Sub' $P856 = "59_1274022903.56472" 
+    .const 'Sub' $P856 = "59_1274564782.90592" 
     capture_lex $P856
-    .const 'Sub' $P830 = "58_1274022903.56472" 
+    .const 'Sub' $P830 = "58_1274564782.90592" 
     capture_lex $P830
-    .const 'Sub' $P814 = "57_1274022903.56472" 
+    .const 'Sub' $P814 = "57_1274564782.90592" 
     capture_lex $P814
-    .const 'Sub' $P804 = "56_1274022903.56472" 
+    .const 'Sub' $P804 = "56_1274564782.90592" 
     capture_lex $P804
-    .const 'Sub' $P794 = "55_1274022903.56472" 
+    .const 'Sub' $P794 = "55_1274564782.90592" 
     capture_lex $P794
-    .const 'Sub' $P784 = "54_1274022903.56472" 
+    .const 'Sub' $P784 = "54_1274564782.90592" 
     capture_lex $P784
-    .const 'Sub' $P774 = "53_1274022903.56472" 
+    .const 'Sub' $P774 = "53_1274564782.90592" 
     capture_lex $P774
-    .const 'Sub' $P764 = "52_1274022903.56472" 
+    .const 'Sub' $P764 = "52_1274564782.90592" 
     capture_lex $P764
-    .const 'Sub' $P754 = "51_1274022903.56472" 
+    .const 'Sub' $P754 = "51_1274564782.90592" 
     capture_lex $P754
-    .const 'Sub' $P744 = "50_1274022903.56472" 
+    .const 'Sub' $P744 = "50_1274564782.90592" 
     capture_lex $P744
-    .const 'Sub' $P734 = "49_1274022903.56472" 
+    .const 'Sub' $P734 = "49_1274564782.90592" 
     capture_lex $P734
-    .const 'Sub' $P724 = "48_1274022903.56472" 
+    .const 'Sub' $P724 = "48_1274564782.90592" 
     capture_lex $P724
-    .const 'Sub' $P714 = "47_1274022903.56472" 
+    .const 'Sub' $P714 = "47_1274564782.90592" 
     capture_lex $P714
-    .const 'Sub' $P704 = "46_1274022903.56472" 
+    .const 'Sub' $P704 = "46_1274564782.90592" 
     capture_lex $P704
-    .const 'Sub' $P694 = "45_1274022903.56472" 
+    .const 'Sub' $P694 = "45_1274564782.90592" 
     capture_lex $P694
-    .const 'Sub' $P684 = "44_1274022903.56472" 
+    .const 'Sub' $P684 = "44_1274564782.90592" 
     capture_lex $P684
-    .const 'Sub' $P666 = "43_1274022903.56472" 
+    .const 'Sub' $P666 = "43_1274564782.90592" 
     capture_lex $P666
-    .const 'Sub' $P631 = "42_1274022903.56472" 
+    .const 'Sub' $P631 = "42_1274564782.90592" 
     capture_lex $P631
-    .const 'Sub' $P615 = "41_1274022903.56472" 
+    .const 'Sub' $P615 = "41_1274564782.90592" 
     capture_lex $P615
-    .const 'Sub' $P594 = "40_1274022903.56472" 
+    .const 'Sub' $P594 = "40_1274564782.90592" 
     capture_lex $P594
-    .const 'Sub' $P574 = "39_1274022903.56472" 
+    .const 'Sub' $P574 = "39_1274564782.90592" 
     capture_lex $P574
-    .const 'Sub' $P561 = "38_1274022903.56472" 
+    .const 'Sub' $P561 = "38_1274564782.90592" 
     capture_lex $P561
-    .const 'Sub' $P535 = "37_1274022903.56472" 
+    .const 'Sub' $P535 = "37_1274564782.90592" 
     capture_lex $P535
-    .const 'Sub' $P499 = "36_1274022903.56472" 
+    .const 'Sub' $P499 = "36_1274564782.90592" 
     capture_lex $P499
-    .const 'Sub' $P482 = "35_1274022903.56472" 
+    .const 'Sub' $P482 = "35_1274564782.90592" 
     capture_lex $P482
-    .const 'Sub' $P468 = "34_1274022903.56472" 
+    .const 'Sub' $P468 = "34_1274564782.90592" 
     capture_lex $P468
-    .const 'Sub' $P415 = "32_1274022903.56472" 
+    .const 'Sub' $P415 = "32_1274564782.90592" 
     capture_lex $P415
-    .const 'Sub' $P402 = "31_1274022903.56472" 
+    .const 'Sub' $P402 = "31_1274564782.90592" 
     capture_lex $P402
-    .const 'Sub' $P382 = "30_1274022903.56472" 
+    .const 'Sub' $P382 = "30_1274564782.90592" 
     capture_lex $P382
-    .const 'Sub' $P372 = "29_1274022903.56472" 
+    .const 'Sub' $P372 = "29_1274564782.90592" 
     capture_lex $P372
-    .const 'Sub' $P362 = "28_1274022903.56472" 
+    .const 'Sub' $P362 = "28_1274564782.90592" 
     capture_lex $P362
-    .const 'Sub' $P346 = "27_1274022903.56472" 
+    .const 'Sub' $P346 = "27_1274564782.90592" 
     capture_lex $P346
-    .const 'Sub' $P286 = "25_1274022903.56472" 
+    .const 'Sub' $P286 = "25_1274564782.90592" 
     capture_lex $P286
-    .const 'Sub' $P243 = "23_1274022903.56472" 
+    .const 'Sub' $P243 = "23_1274564782.90592" 
     capture_lex $P243
-    .const 'Sub' $P214 = "22_1274022903.56472" 
+    .const 'Sub' $P214 = "22_1274564782.90592" 
     capture_lex $P214
-    .const 'Sub' $P181 = "21_1274022903.56472" 
+    .const 'Sub' $P181 = "21_1274564782.90592" 
     capture_lex $P181
-    .const 'Sub' $P171 = "20_1274022903.56472" 
+    .const 'Sub' $P171 = "20_1274564782.90592" 
     capture_lex $P171
-    .const 'Sub' $P151 = "19_1274022903.56472" 
+    .const 'Sub' $P151 = "19_1274564782.90592" 
     capture_lex $P151
-    .const 'Sub' $P100 = "18_1274022903.56472" 
+    .const 'Sub' $P100 = "18_1274564782.90592" 
     capture_lex $P100
-    .const 'Sub' $P84 = "17_1274022903.56472" 
+    .const 'Sub' $P84 = "17_1274564782.90592" 
     capture_lex $P84
-    .const 'Sub' $P63 = "16_1274022903.56472" 
+    .const 'Sub' $P63 = "16_1274564782.90592" 
     capture_lex $P63
-    .const 'Sub' $P27 = "13_1274022903.56472" 
+    .const 'Sub' $P27 = "13_1274564782.90592" 
     capture_lex $P27
-    .const 'Sub' $P16 = "12_1274022903.56472" 
+    .const 'Sub' $P16 = "12_1274564782.90592" 
     capture_lex $P16
     get_global $P15, "@BLOCK"
-    unless_null $P15, vivify_137
+    unless_null $P15, vivify_141
     $P15 = root_new ['parrot';'ResizablePMCArray']
     set_global "@BLOCK", $P15
-  vivify_137:
+  vivify_141:
 .annotate 'line', 9
-    .const 'Sub' $P16 = "12_1274022903.56472" 
+    .const 'Sub' $P16 = "12_1274564782.90592" 
     newclosure $P26, $P16
     .lex "xblock_immediate", $P26
 .annotate 'line', 14
-    .const 'Sub' $P27 = "13_1274022903.56472" 
+    .const 'Sub' $P27 = "13_1274564782.90592" 
     newclosure $P62, $P27
     .lex "block_immediate", $P62
 .annotate 'line', 24
-    .const 'Sub' $P63 = "16_1274022903.56472" 
+    .const 'Sub' $P63 = "16_1274564782.90592" 
     newclosure $P83, $P63
     .lex "vivitype", $P83
 .annotate 'line', 43
-    .const 'Sub' $P84 = "17_1274022903.56472" 
+    .const 'Sub' $P84 = "17_1274564782.90592" 
     newclosure $P99, $P84
     .lex "colonpair_str", $P99
 .annotate 'line', 204
-    .const 'Sub' $P100 = "18_1274022903.56472" 
+    .const 'Sub' $P100 = "18_1274564782.90592" 
     newclosure $P150, $P100
     .lex "push_block_handler", $P150
 .annotate 'line', 788
-    .const 'Sub' $P151 = "19_1274022903.56472" 
+    .const 'Sub' $P151 = "19_1274564782.90592" 
     newclosure $P166, $P151
     .lex "control", $P166
 .annotate 'line', 3
@@ -16704,46 +17413,46 @@
 .annotate 'line', 810
     get_hll_global $P2189, ["NQP";"RegexActions"], "_block2188" 
     capture_lex $P2189
-    $P2252 = $P2189()
+    $P2360 = $P2189()
 .annotate 'line', 3
-    .return ($P2252)
-    .const 'Sub' $P2254 = "131_1274022903.56472" 
-    .return ($P2254)
+    .return ($P2360)
+    .const 'Sub' $P2362 = "135_1274564782.90592" 
+    .return ($P2362)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "" :load :init :subid("post135") :outer("11_1274022903.56472")
+.sub "" :load :init :subid("post139") :outer("11_1274564782.90592")
 .annotate 'line', 3
     get_hll_global $P14, ["NQP";"Actions"], "_block13" 
     .local pmc block
     set block, $P14
 .annotate 'line', 5
-    .const 'Sub' $P2258 = "132_1274022903.56472" 
-    capture_lex $P2258
-    $P2258()
-    $P2261 = get_root_global ["parrot"], "P6metaclass"
-    $P2261."new_class"("NQP::RegexActions", "Regex::P6Regex::Actions" :named("parent"))
+    .const 'Sub' $P2366 = "136_1274564782.90592" 
+    capture_lex $P2366
+    $P2366()
+    $P2369 = get_root_global ["parrot"], "P6metaclass"
+    $P2369."new_class"("NQP::RegexActions", "Regex::P6Regex::Actions" :named("parent"))
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block2257"  :anon :subid("132_1274022903.56472") :outer("11_1274022903.56472")
+.sub "_block2365"  :anon :subid("136_1274564782.90592") :outer("11_1274564782.90592")
 .annotate 'line', 6
-    get_global $P2259, "@BLOCK"
-    unless_null $P2259, vivify_136
-    $P2259 = root_new ['parrot';'ResizablePMCArray']
-    set_global "@BLOCK", $P2259
-  vivify_136:
- $P2260 = new ['ResizablePMCArray'] 
-    set_global "@BLOCK", $P2260
+    get_global $P2367, "@BLOCK"
+    unless_null $P2367, vivify_140
+    $P2367 = root_new ['parrot';'ResizablePMCArray']
+    set_global "@BLOCK", $P2367
+  vivify_140:
+ $P2368 = new ['ResizablePMCArray'] 
+    set_global "@BLOCK", $P2368
 .annotate 'line', 5
-    .return ($P2260)
+    .return ($P2368)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "xblock_immediate"  :subid("12_1274022903.56472") :outer("11_1274022903.56472")
+.sub "xblock_immediate"  :subid("12_1274564782.90592") :outer("11_1274564782.90592")
     .param pmc param_19
 .annotate 'line', 9
     new $P18, 'ExceptionHandler'
@@ -16753,19 +17462,19 @@
     .lex "$xblock", param_19
 .annotate 'line', 10
     find_lex $P20, "$xblock"
-    unless_null $P20, vivify_138
+    unless_null $P20, vivify_142
     $P20 = root_new ['parrot';'ResizablePMCArray']
-  vivify_138:
+  vivify_142:
     set $P21, $P20[1]
-    unless_null $P21, vivify_139
+    unless_null $P21, vivify_143
     new $P21, "Undef"
-  vivify_139:
+  vivify_143:
     $P22 = "block_immediate"($P21)
     find_lex $P23, "$xblock"
-    unless_null $P23, vivify_140
+    unless_null $P23, vivify_144
     $P23 = root_new ['parrot';'ResizablePMCArray']
     store_lex "$xblock", $P23
-  vivify_140:
+  vivify_144:
     set $P23[1], $P22
     find_lex $P24, "$xblock"
 .annotate 'line', 9
@@ -16779,10 +17488,10 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "block_immediate"  :subid("13_1274022903.56472") :outer("11_1274022903.56472")
+.sub "block_immediate"  :subid("13_1274564782.90592") :outer("11_1274564782.90592")
     .param pmc param_30
 .annotate 'line', 14
-    .const 'Sub' $P40 = "14_1274022903.56472" 
+    .const 'Sub' $P40 = "14_1274564782.90592" 
     capture_lex $P40
     new $P29, 'ExceptionHandler'
     set_addr $P29, control_28
@@ -16804,7 +17513,7 @@
     set $P33, $P38
   unless_34_end:
     if $P33, unless_32_end
-    .const 'Sub' $P40 = "14_1274022903.56472" 
+    .const 'Sub' $P40 = "14_1274564782.90592" 
     capture_lex $P40
     $P40()
   unless_32_end:
@@ -16820,9 +17529,9 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block39"  :anon :subid("14_1274022903.56472") :outer("13_1274022903.56472")
+.sub "_block39"  :anon :subid("14_1274564782.90592") :outer("13_1274564782.90592")
 .annotate 'line', 16
-    .const 'Sub' $P51 = "15_1274022903.56472" 
+    .const 'Sub' $P51 = "15_1274564782.90592" 
     capture_lex $P51
 .annotate 'line', 17
     new $P41, "Undef"
@@ -16835,7 +17544,7 @@
     find_lex $P46, "$block"
     $P47 = $P46."list"()
     defined $I48, $P47
-    unless $I48, for_undef_141
+    unless $I48, for_undef_145
     iter $P45, $P47
     new $P57, 'ExceptionHandler'
     set_addr $P57, loop56_handler
@@ -16845,7 +17554,7 @@
     unless $P45, loop56_done
     shift $P49, $P45
   loop56_redo:
-    .const 'Sub' $P51 = "15_1274022903.56472" 
+    .const 'Sub' $P51 = "15_1274564782.90592" 
     capture_lex $P51
     $P51($P49)
   loop56_next:
@@ -16858,7 +17567,7 @@
     eq $P58, 66, loop56_redo
   loop56_done:
     pop_eh 
-  for_undef_141:
+  for_undef_145:
 .annotate 'line', 19
     find_lex $P59, "$stmts"
     store_lex "$block", $P59
@@ -16868,7 +17577,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block50"  :anon :subid("15_1274022903.56472") :outer("14_1274022903.56472")
+.sub "_block50"  :anon :subid("15_1274564782.90592") :outer("14_1274564782.90592")
     .param pmc param_52
 .annotate 'line', 18
     .lex "$_", param_52
@@ -16880,7 +17589,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "vivitype"  :subid("16_1274022903.56472") :outer("11_1274022903.56472")
+.sub "vivitype"  :subid("16_1274564782.90592") :outer("11_1274564782.90592")
     .param pmc param_66
 .annotate 'line', 24
     new $P65, 'ExceptionHandler'
@@ -16928,7 +17637,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "colonpair_str"  :subid("17_1274022903.56472") :outer("11_1274022903.56472")
+.sub "colonpair_str"  :subid("17_1274564782.90592") :outer("11_1274564782.90592")
     .param pmc param_87
 .annotate 'line', 43
     new $P86, 'ExceptionHandler'
@@ -16966,7 +17675,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "push_block_handler"  :subid("18_1274022903.56472") :outer("11_1274022903.56472")
+.sub "push_block_handler"  :subid("18_1274564782.90592") :outer("11_1274564782.90592")
     .param pmc param_103
     .param pmc param_104
 .annotate 'line', 204
@@ -16978,24 +17687,24 @@
     .lex "$block", param_104
 .annotate 'line', 205
     get_global $P106, "@BLOCK"
-    unless_null $P106, vivify_142
+    unless_null $P106, vivify_146
     $P106 = root_new ['parrot';'ResizablePMCArray']
-  vivify_142:
+  vivify_146:
     set $P107, $P106[0]
-    unless_null $P107, vivify_143
+    unless_null $P107, vivify_147
     new $P107, "Undef"
-  vivify_143:
+  vivify_147:
     $P108 = $P107."handlers"()
     if $P108, unless_105_end
 .annotate 'line', 206
     get_global $P109, "@BLOCK"
-    unless_null $P109, vivify_144
+    unless_null $P109, vivify_148
     $P109 = root_new ['parrot';'ResizablePMCArray']
-  vivify_144:
+  vivify_148:
     set $P110, $P109[0]
-    unless_null $P110, vivify_145
+    unless_null $P110, vivify_149
     new $P110, "Undef"
-  vivify_145:
+  vivify_149:
     new $P111, "ResizablePMCArray"
     $P110."handlers"($P111)
   unless_105_end:
@@ -17036,13 +17745,13 @@
     $P128."blocktype"("declaration")
 .annotate 'line', 221
     get_global $P129, "@BLOCK"
-    unless_null $P129, vivify_146
+    unless_null $P129, vivify_150
     $P129 = root_new ['parrot';'ResizablePMCArray']
-  vivify_146:
+  vivify_150:
     set $P130, $P129[0]
-    unless_null $P130, vivify_147
+    unless_null $P130, vivify_151
     new $P130, "Undef"
-  vivify_147:
+  vivify_151:
     $P131 = $P130."handlers"()
 .annotate 'line', 222
     get_hll_global $P132, ["PAST"], "Control"
@@ -17083,7 +17792,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "control"  :subid("19_1274022903.56472") :outer("11_1274022903.56472")
+.sub "control"  :subid("19_1274564782.90592") :outer("11_1274564782.90592")
     .param pmc param_154
     .param pmc param_155
 .annotate 'line', 788
@@ -17121,7 +17830,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "TOP"  :subid("20_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "TOP"  :subid("20_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_174
 .annotate 'line', 33
     new $P173, 'ExceptionHandler'
@@ -17132,13 +17841,13 @@
     .lex "$/", param_174
     find_lex $P175, "$/"
     find_lex $P176, "$/"
-    unless_null $P176, vivify_148
+    unless_null $P176, vivify_152
     $P176 = root_new ['parrot';'Hash']
-  vivify_148:
+  vivify_152:
     set $P177, $P176["comp_unit"]
-    unless_null $P177, vivify_149
+    unless_null $P177, vivify_153
     new $P177, "Undef"
-  vivify_149:
+  vivify_153:
     $P178 = $P177."ast"()
     $P179 = $P175."!make"($P178)
     .return ($P179)
@@ -17151,7 +17860,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "deflongname"  :subid("21_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "deflongname"  :subid("21_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_184
 .annotate 'line', 35
     new $P183, 'ExceptionHandler'
@@ -17164,13 +17873,13 @@
     find_lex $P185, "$/"
 .annotate 'line', 37
     find_lex $P188, "$/"
-    unless_null $P188, vivify_150
+    unless_null $P188, vivify_154
     $P188 = root_new ['parrot';'Hash']
-  vivify_150:
+  vivify_154:
     set $P189, $P188["colonpair"]
-    unless_null $P189, vivify_151
+    unless_null $P189, vivify_155
     new $P189, "Undef"
-  vivify_151:
+  vivify_155:
     if $P189, if_187
 .annotate 'line', 39
     find_lex $P209, "$/"
@@ -17181,46 +17890,46 @@
     goto if_187_end
   if_187:
     find_lex $P190, "$/"
-    unless_null $P190, vivify_152
+    unless_null $P190, vivify_156
     $P190 = root_new ['parrot';'Hash']
-  vivify_152:
+  vivify_156:
     set $P191, $P190["identifier"]
-    unless_null $P191, vivify_153
+    unless_null $P191, vivify_157
     new $P191, "Undef"
-  vivify_153:
+  vivify_157:
     set $S192, $P191
     new $P193, 'String'
     set $P193, $S192
     concat $P194, $P193, ":"
     find_lex $P195, "$/"
-    unless_null $P195, vivify_154
+    unless_null $P195, vivify_158
     $P195 = root_new ['parrot';'Hash']
-  vivify_154:
+  vivify_158:
     set $P196, $P195["colonpair"]
-    unless_null $P196, vivify_155
+    unless_null $P196, vivify_159
     $P196 = root_new ['parrot';'ResizablePMCArray']
-  vivify_155:
+  vivify_159:
     set $P197, $P196[0]
-    unless_null $P197, vivify_156
+    unless_null $P197, vivify_160
     new $P197, "Undef"
-  vivify_156:
+  vivify_160:
     $P198 = $P197."ast"()
     $S199 = $P198."named"()
     concat $P200, $P194, $S199
     concat $P201, $P200, "<"
 .annotate 'line', 38
     find_lex $P202, "$/"
-    unless_null $P202, vivify_157
+    unless_null $P202, vivify_161
     $P202 = root_new ['parrot';'Hash']
-  vivify_157:
+  vivify_161:
     set $P203, $P202["colonpair"]
-    unless_null $P203, vivify_158
+    unless_null $P203, vivify_162
     $P203 = root_new ['parrot';'ResizablePMCArray']
-  vivify_158:
+  vivify_162:
     set $P204, $P203[0]
-    unless_null $P204, vivify_159
+    unless_null $P204, vivify_163
     new $P204, "Undef"
-  vivify_159:
+  vivify_163:
     $P205 = $P204."ast"()
     $S206 = "colonpair_str"($P205)
     concat $P207, $P201, $S206
@@ -17240,7 +17949,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "comp_unit"  :subid("22_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "comp_unit"  :subid("22_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_217
 .annotate 'line', 49
     new $P216, 'ExceptionHandler'
@@ -17257,13 +17966,13 @@
     .lex "$unit", $P219
 .annotate 'line', 50
     find_lex $P220, "$/"
-    unless_null $P220, vivify_160
+    unless_null $P220, vivify_164
     $P220 = root_new ['parrot';'Hash']
-  vivify_160:
+  vivify_164:
     set $P221, $P220["statementlist"]
-    unless_null $P221, vivify_161
+    unless_null $P221, vivify_165
     new $P221, "Undef"
-  vivify_161:
+  vivify_165:
     $P222 = $P221."ast"()
     store_lex "$mainline", $P222
 .annotate 'line', 51
@@ -17309,10 +18018,10 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "statementlist"  :subid("23_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "statementlist"  :subid("23_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_246
 .annotate 'line', 72
-    .const 'Sub' $P260 = "24_1274022903.56472" 
+    .const 'Sub' $P260 = "24_1274564782.90592" 
     capture_lex $P260
     new $P245, 'ExceptionHandler'
     set_addr $P245, control_244
@@ -17329,25 +18038,25 @@
     store_lex "$past", $P250
 .annotate 'line', 74
     find_lex $P252, "$/"
-    unless_null $P252, vivify_162
+    unless_null $P252, vivify_166
     $P252 = root_new ['parrot';'Hash']
-  vivify_162:
+  vivify_166:
     set $P253, $P252["statement"]
-    unless_null $P253, vivify_163
+    unless_null $P253, vivify_167
     new $P253, "Undef"
-  vivify_163:
+  vivify_167:
     unless $P253, if_251_end
 .annotate 'line', 75
     find_lex $P255, "$/"
-    unless_null $P255, vivify_164
+    unless_null $P255, vivify_168
     $P255 = root_new ['parrot';'Hash']
-  vivify_164:
+  vivify_168:
     set $P256, $P255["statement"]
-    unless_null $P256, vivify_165
+    unless_null $P256, vivify_169
     new $P256, "Undef"
-  vivify_165:
+  vivify_169:
     defined $I257, $P256
-    unless $I257, for_undef_166
+    unless $I257, for_undef_170
     iter $P254, $P256
     new $P280, 'ExceptionHandler'
     set_addr $P280, loop279_handler
@@ -17357,7 +18066,7 @@
     unless $P254, loop279_done
     shift $P258, $P254
   loop279_redo:
-    .const 'Sub' $P260 = "24_1274022903.56472" 
+    .const 'Sub' $P260 = "24_1274564782.90592" 
     capture_lex $P260
     $P260($P258)
   loop279_next:
@@ -17370,7 +18079,7 @@
     eq $P281, 66, loop279_redo
   loop279_done:
     pop_eh 
-  for_undef_166:
+  for_undef_170:
   if_251_end:
 .annotate 'line', 82
     find_lex $P282, "$/"
@@ -17387,7 +18096,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block259"  :anon :subid("24_1274022903.56472") :outer("23_1274022903.56472")
+.sub "_block259"  :anon :subid("24_1274564782.90592") :outer("23_1274564782.90592")
     .param pmc param_262
 .annotate 'line', 76
     new $P261, "Undef"
@@ -17398,34 +18107,34 @@
     store_lex "$ast", $P264
 .annotate 'line', 77
     find_lex $P266, "$ast"
-    unless_null $P266, vivify_167
+    unless_null $P266, vivify_171
     $P266 = root_new ['parrot';'Hash']
-  vivify_167:
+  vivify_171:
     set $P267, $P266["sink"]
-    unless_null $P267, vivify_168
+    unless_null $P267, vivify_172
     new $P267, "Undef"
-  vivify_168:
+  vivify_172:
     defined $I268, $P267
     unless $I268, if_265_end
     find_lex $P269, "$ast"
-    unless_null $P269, vivify_169
+    unless_null $P269, vivify_173
     $P269 = root_new ['parrot';'Hash']
-  vivify_169:
+  vivify_173:
     set $P270, $P269["sink"]
-    unless_null $P270, vivify_170
+    unless_null $P270, vivify_174
     new $P270, "Undef"
-  vivify_170:
+  vivify_174:
     store_lex "$ast", $P270
   if_265_end:
 .annotate 'line', 78
     find_lex $P272, "$ast"
-    unless_null $P272, vivify_171
+    unless_null $P272, vivify_175
     $P272 = root_new ['parrot';'Hash']
-  vivify_171:
+  vivify_175:
     set $P273, $P272["bareblock"]
-    unless_null $P273, vivify_172
+    unless_null $P273, vivify_176
     new $P273, "Undef"
-  vivify_172:
+  vivify_176:
     unless $P273, if_271_end
     find_lex $P274, "$ast"
     $P275 = "block_immediate"($P274)
@@ -17441,12 +18150,12 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "statement"  :subid("25_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "statement"  :subid("25_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_289
     .param pmc param_290 :optional
     .param int has_param_290 :opt_flag
 .annotate 'line', 85
-    .const 'Sub' $P298 = "26_1274022903.56472" 
+    .const 'Sub' $P298 = "26_1274564782.90592" 
     capture_lex $P298
     new $P288, 'ExceptionHandler'
     set_addr $P288, control_287
@@ -17454,10 +18163,10 @@
     push_eh $P288
     .lex "self", self
     .lex "$/", param_289
-    if has_param_290, optparam_173
+    if has_param_290, optparam_177
     new $P291, "Undef"
     set param_290, $P291
-  optparam_173:
+  optparam_177:
     .lex "$key", param_290
 .annotate 'line', 86
     new $P292, "Undef"
@@ -17466,23 +18175,23 @@
     find_lex $P293, "$past"
 .annotate 'line', 87
     find_lex $P295, "$/"
-    unless_null $P295, vivify_174
+    unless_null $P295, vivify_178
     $P295 = root_new ['parrot';'Hash']
-  vivify_174:
+  vivify_178:
     set $P296, $P295["EXPR"]
-    unless_null $P296, vivify_175
+    unless_null $P296, vivify_179
     new $P296, "Undef"
-  vivify_175:
+  vivify_179:
     if $P296, if_294
 .annotate 'line', 98
     find_lex $P336, "$/"
-    unless_null $P336, vivify_176
+    unless_null $P336, vivify_180
     $P336 = root_new ['parrot';'Hash']
-  vivify_176:
+  vivify_180:
     set $P337, $P336["statement_control"]
-    unless_null $P337, vivify_177
+    unless_null $P337, vivify_181
     new $P337, "Undef"
-  vivify_177:
+  vivify_181:
     if $P337, if_335
 .annotate 'line', 99
     new $P341, "Integer"
@@ -17492,20 +18201,20 @@
   if_335:
 .annotate 'line', 98
     find_lex $P338, "$/"
-    unless_null $P338, vivify_178
+    unless_null $P338, vivify_182
     $P338 = root_new ['parrot';'Hash']
-  vivify_178:
+  vivify_182:
     set $P339, $P338["statement_control"]
-    unless_null $P339, vivify_179
+    unless_null $P339, vivify_183
     new $P339, "Undef"
-  vivify_179:
+  vivify_183:
     $P340 = $P339."ast"()
     store_lex "$past", $P340
   if_335_end:
     goto if_294_end
   if_294:
 .annotate 'line', 87
-    .const 'Sub' $P298 = "26_1274022903.56472" 
+    .const 'Sub' $P298 = "26_1274564782.90592" 
     capture_lex $P298
     $P298()
   if_294_end:
@@ -17524,7 +18233,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block297"  :anon :subid("26_1274022903.56472") :outer("25_1274022903.56472")
+.sub "_block297"  :anon :subid("26_1274564782.90592") :outer("25_1274564782.90592")
 .annotate 'line', 88
     new $P299, "Undef"
     .lex "$mc", $P299
@@ -17533,41 +18242,41 @@
     .lex "$ml", $P300
 .annotate 'line', 88
     find_lex $P301, "$/"
-    unless_null $P301, vivify_180
+    unless_null $P301, vivify_184
     $P301 = root_new ['parrot';'Hash']
-  vivify_180:
+  vivify_184:
     set $P302, $P301["statement_mod_cond"]
-    unless_null $P302, vivify_181
+    unless_null $P302, vivify_185
     $P302 = root_new ['parrot';'ResizablePMCArray']
-  vivify_181:
+  vivify_185:
     set $P303, $P302[0]
-    unless_null $P303, vivify_182
+    unless_null $P303, vivify_186
     new $P303, "Undef"
-  vivify_182:
+  vivify_186:
     store_lex "$mc", $P303
 .annotate 'line', 89
     find_lex $P304, "$/"
-    unless_null $P304, vivify_183
+    unless_null $P304, vivify_187
     $P304 = root_new ['parrot';'Hash']
-  vivify_183:
+  vivify_187:
     set $P305, $P304["statement_mod_loop"]
-    unless_null $P305, vivify_184
+    unless_null $P305, vivify_188
     $P305 = root_new ['parrot';'ResizablePMCArray']
-  vivify_184:
+  vivify_188:
     set $P306, $P305[0]
-    unless_null $P306, vivify_185
+    unless_null $P306, vivify_189
     new $P306, "Undef"
-  vivify_185:
+  vivify_189:
     store_lex "$ml", $P306
 .annotate 'line', 90
     find_lex $P307, "$/"
-    unless_null $P307, vivify_186
+    unless_null $P307, vivify_190
     $P307 = root_new ['parrot';'Hash']
-  vivify_186:
+  vivify_190:
     set $P308, $P307["EXPR"]
-    unless_null $P308, vivify_187
+    unless_null $P308, vivify_191
     new $P308, "Undef"
-  vivify_187:
+  vivify_191:
     $P309 = $P308."ast"()
     store_lex "$past", $P309
 .annotate 'line', 91
@@ -17576,23 +18285,23 @@
 .annotate 'line', 92
     get_hll_global $P312, ["PAST"], "Op"
     find_lex $P313, "$mc"
-    unless_null $P313, vivify_188
+    unless_null $P313, vivify_192
     $P313 = root_new ['parrot';'Hash']
-  vivify_188:
+  vivify_192:
     set $P314, $P313["cond"]
-    unless_null $P314, vivify_189
+    unless_null $P314, vivify_193
     new $P314, "Undef"
-  vivify_189:
+  vivify_193:
     $P315 = $P314."ast"()
     find_lex $P316, "$past"
     find_lex $P317, "$mc"
-    unless_null $P317, vivify_190
+    unless_null $P317, vivify_194
     $P317 = root_new ['parrot';'Hash']
-  vivify_190:
+  vivify_194:
     set $P318, $P317["sym"]
-    unless_null $P318, vivify_191
+    unless_null $P318, vivify_195
     new $P318, "Undef"
-  vivify_191:
+  vivify_195:
     set $S319, $P318
     find_lex $P320, "$/"
     $P321 = $P312."new"($P315, $P316, $S319 :named("pasttype"), $P320 :named("node"))
@@ -17607,23 +18316,23 @@
 .annotate 'line', 95
     get_hll_global $P325, ["PAST"], "Op"
     find_lex $P326, "$ml"
-    unless_null $P326, vivify_192
+    unless_null $P326, vivify_196
     $P326 = root_new ['parrot';'Hash']
-  vivify_192:
+  vivify_196:
     set $P327, $P326["cond"]
-    unless_null $P327, vivify_193
+    unless_null $P327, vivify_197
     new $P327, "Undef"
-  vivify_193:
+  vivify_197:
     $P328 = $P327."ast"()
     find_lex $P329, "$past"
     find_lex $P330, "$ml"
-    unless_null $P330, vivify_194
+    unless_null $P330, vivify_198
     $P330 = root_new ['parrot';'Hash']
-  vivify_194:
+  vivify_198:
     set $P331, $P330["sym"]
-    unless_null $P331, vivify_195
+    unless_null $P331, vivify_199
     new $P331, "Undef"
-  vivify_195:
+  vivify_199:
     set $S332, $P331
     find_lex $P333, "$/"
     $P334 = $P325."new"($P328, $P329, $S332 :named("pasttype"), $P333 :named("node"))
@@ -17637,7 +18346,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "xblock"  :subid("27_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "xblock"  :subid("27_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_349
 .annotate 'line', 103
     new $P348, 'ExceptionHandler'
@@ -17650,22 +18359,22 @@
     find_lex $P350, "$/"
     get_hll_global $P351, ["PAST"], "Op"
     find_lex $P352, "$/"
-    unless_null $P352, vivify_196
+    unless_null $P352, vivify_200
     $P352 = root_new ['parrot';'Hash']
-  vivify_196:
+  vivify_200:
     set $P353, $P352["EXPR"]
-    unless_null $P353, vivify_197
+    unless_null $P353, vivify_201
     new $P353, "Undef"
-  vivify_197:
+  vivify_201:
     $P354 = $P353."ast"()
     find_lex $P355, "$/"
-    unless_null $P355, vivify_198
+    unless_null $P355, vivify_202
     $P355 = root_new ['parrot';'Hash']
-  vivify_198:
+  vivify_202:
     set $P356, $P355["pblock"]
-    unless_null $P356, vivify_199
+    unless_null $P356, vivify_203
     new $P356, "Undef"
-  vivify_199:
+  vivify_203:
     $P357 = $P356."ast"()
     find_lex $P358, "$/"
     $P359 = $P351."new"($P354, $P357, "if" :named("pasttype"), $P358 :named("node"))
@@ -17681,7 +18390,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "pblock"  :subid("28_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "pblock"  :subid("28_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_365
 .annotate 'line', 107
     new $P364, 'ExceptionHandler'
@@ -17693,13 +18402,13 @@
 .annotate 'line', 108
     find_lex $P366, "$/"
     find_lex $P367, "$/"
-    unless_null $P367, vivify_200
+    unless_null $P367, vivify_204
     $P367 = root_new ['parrot';'Hash']
-  vivify_200:
+  vivify_204:
     set $P368, $P367["blockoid"]
-    unless_null $P368, vivify_201
+    unless_null $P368, vivify_205
     new $P368, "Undef"
-  vivify_201:
+  vivify_205:
     $P369 = $P368."ast"()
     $P370 = $P366."!make"($P369)
 .annotate 'line', 107
@@ -17713,7 +18422,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "block"  :subid("29_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "block"  :subid("29_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_375
 .annotate 'line', 111
     new $P374, 'ExceptionHandler'
@@ -17725,13 +18434,13 @@
 .annotate 'line', 112
     find_lex $P376, "$/"
     find_lex $P377, "$/"
-    unless_null $P377, vivify_202
+    unless_null $P377, vivify_206
     $P377 = root_new ['parrot';'Hash']
-  vivify_202:
+  vivify_206:
     set $P378, $P377["blockoid"]
-    unless_null $P378, vivify_203
+    unless_null $P378, vivify_207
     new $P378, "Undef"
-  vivify_203:
+  vivify_207:
     $P379 = $P378."ast"()
     $P380 = $P376."!make"($P379)
 .annotate 'line', 111
@@ -17745,7 +18454,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "blockoid"  :subid("30_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "blockoid"  :subid("30_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_385
 .annotate 'line', 115
     new $P384, 'ExceptionHandler'
@@ -17762,13 +18471,13 @@
     .lex "$BLOCK", $P387
 .annotate 'line', 116
     find_lex $P388, "$/"
-    unless_null $P388, vivify_204
+    unless_null $P388, vivify_208
     $P388 = root_new ['parrot';'Hash']
-  vivify_204:
+  vivify_208:
     set $P389, $P388["statementlist"]
-    unless_null $P389, vivify_205
+    unless_null $P389, vivify_209
     new $P389, "Undef"
-  vivify_205:
+  vivify_209:
     $P390 = $P389."ast"()
     store_lex "$past", $P390
 .annotate 'line', 117
@@ -17801,7 +18510,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "newpad"  :subid("31_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "newpad"  :subid("31_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_405
 .annotate 'line', 124
     new $P404, 'ExceptionHandler'
@@ -17812,10 +18521,10 @@
     .lex "$/", param_405
 .annotate 'line', 125
     get_global $P406, "@BLOCK"
-    unless_null $P406, vivify_206
+    unless_null $P406, vivify_210
     $P406 = root_new ['parrot';'ResizablePMCArray']
     set_global "@BLOCK", $P406
-  vivify_206:
+  vivify_210:
 .annotate 'line', 124
     get_global $P407, "@BLOCK"
 .annotate 'line', 126
@@ -17836,10 +18545,10 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "statement_control:sym<if>"  :subid("32_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "statement_control:sym<if>"  :subid("32_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_418
 .annotate 'line', 131
-    .const 'Sub' $P446 = "33_1274022903.56472" 
+    .const 'Sub' $P446 = "33_1274564782.90592" 
     capture_lex $P446
     new $P417, 'ExceptionHandler'
     set_addr $P417, control_416
@@ -17855,13 +18564,13 @@
     .lex "$past", $P420
 .annotate 'line', 132
     find_lex $P421, "$/"
-    unless_null $P421, vivify_207
+    unless_null $P421, vivify_211
     $P421 = root_new ['parrot';'Hash']
-  vivify_207:
+  vivify_211:
     set $P422, $P421["xblock"]
-    unless_null $P422, vivify_208
+    unless_null $P422, vivify_212
     new $P422, "Undef"
-  vivify_208:
+  vivify_212:
     set $N423, $P422
     new $P424, 'Float'
     set $P424, $N423
@@ -17871,44 +18580,44 @@
     find_lex $P426, "$count"
     set $I427, $P426
     find_lex $P428, "$/"
-    unless_null $P428, vivify_209
+    unless_null $P428, vivify_213
     $P428 = root_new ['parrot';'Hash']
-  vivify_209:
+  vivify_213:
     set $P429, $P428["xblock"]
-    unless_null $P429, vivify_210
+    unless_null $P429, vivify_214
     $P429 = root_new ['parrot';'ResizablePMCArray']
-  vivify_210:
+  vivify_214:
     set $P430, $P429[$I427]
-    unless_null $P430, vivify_211
+    unless_null $P430, vivify_215
     new $P430, "Undef"
-  vivify_211:
+  vivify_215:
     $P431 = $P430."ast"()
     $P432 = "xblock_immediate"($P431)
     store_lex "$past", $P432
 .annotate 'line', 134
     find_lex $P434, "$/"
-    unless_null $P434, vivify_212
+    unless_null $P434, vivify_216
     $P434 = root_new ['parrot';'Hash']
-  vivify_212:
+  vivify_216:
     set $P435, $P434["else"]
-    unless_null $P435, vivify_213
+    unless_null $P435, vivify_217
     new $P435, "Undef"
-  vivify_213:
+  vivify_217:
     unless $P435, if_433_end
 .annotate 'line', 135
     find_lex $P436, "$past"
     find_lex $P437, "$/"
-    unless_null $P437, vivify_214
+    unless_null $P437, vivify_218
     $P437 = root_new ['parrot';'Hash']
-  vivify_214:
+  vivify_218:
     set $P438, $P437["else"]
-    unless_null $P438, vivify_215
+    unless_null $P438, vivify_219
     $P438 = root_new ['parrot';'ResizablePMCArray']
-  vivify_215:
+  vivify_219:
     set $P439, $P438[0]
-    unless_null $P439, vivify_216
+    unless_null $P439, vivify_220
     new $P439, "Undef"
-  vivify_216:
+  vivify_220:
     $P440 = $P439."ast"()
     $P441 = "block_immediate"($P440)
     $P436."push"($P441)
@@ -17924,7 +18633,7 @@
     isgt $I444, $N443, 0.0
     unless $I444, loop461_done
   loop461_redo:
-    .const 'Sub' $P446 = "33_1274022903.56472" 
+    .const 'Sub' $P446 = "33_1274564782.90592" 
     capture_lex $P446
     $P446()
   loop461_next:
@@ -17952,7 +18661,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block445"  :anon :subid("33_1274022903.56472") :outer("32_1274022903.56472")
+.sub "_block445"  :anon :subid("33_1274564782.90592") :outer("32_1274564782.90592")
 .annotate 'line', 140
     new $P447, "Undef"
     .lex "$else", $P447
@@ -17967,17 +18676,17 @@
     find_lex $P451, "$count"
     set $I452, $P451
     find_lex $P453, "$/"
-    unless_null $P453, vivify_217
+    unless_null $P453, vivify_221
     $P453 = root_new ['parrot';'Hash']
-  vivify_217:
+  vivify_221:
     set $P454, $P453["xblock"]
-    unless_null $P454, vivify_218
+    unless_null $P454, vivify_222
     $P454 = root_new ['parrot';'ResizablePMCArray']
-  vivify_218:
+  vivify_222:
     set $P455, $P454[$I452]
-    unless_null $P455, vivify_219
+    unless_null $P455, vivify_223
     new $P455, "Undef"
-  vivify_219:
+  vivify_223:
     $P456 = $P455."ast"()
     $P457 = "xblock_immediate"($P456)
     store_lex "$past", $P457
@@ -17991,7 +18700,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "statement_control:sym<unless>"  :subid("34_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "statement_control:sym<unless>"  :subid("34_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_471
 .annotate 'line', 147
     new $P470, 'ExceptionHandler'
@@ -18004,13 +18713,13 @@
     new $P472, "Undef"
     .lex "$past", $P472
     find_lex $P473, "$/"
-    unless_null $P473, vivify_220
+    unless_null $P473, vivify_224
     $P473 = root_new ['parrot';'Hash']
-  vivify_220:
+  vivify_224:
     set $P474, $P473["xblock"]
-    unless_null $P474, vivify_221
+    unless_null $P474, vivify_225
     new $P474, "Undef"
-  vivify_221:
+  vivify_225:
     $P475 = $P474."ast"()
     $P476 = "xblock_immediate"($P475)
     store_lex "$past", $P476
@@ -18032,7 +18741,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "statement_control:sym<while>"  :subid("35_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "statement_control:sym<while>"  :subid("35_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_485
 .annotate 'line', 153
     new $P484, 'ExceptionHandler'
@@ -18045,26 +18754,26 @@
     new $P486, "Undef"
     .lex "$past", $P486
     find_lex $P487, "$/"
-    unless_null $P487, vivify_222
+    unless_null $P487, vivify_226
     $P487 = root_new ['parrot';'Hash']
-  vivify_222:
+  vivify_226:
     set $P488, $P487["xblock"]
-    unless_null $P488, vivify_223
+    unless_null $P488, vivify_227
     new $P488, "Undef"
-  vivify_223:
+  vivify_227:
     $P489 = $P488."ast"()
     $P490 = "xblock_immediate"($P489)
     store_lex "$past", $P490
 .annotate 'line', 155
     find_lex $P491, "$past"
     find_lex $P492, "$/"
-    unless_null $P492, vivify_224
+    unless_null $P492, vivify_228
     $P492 = root_new ['parrot';'Hash']
-  vivify_224:
+  vivify_228:
     set $P493, $P492["sym"]
-    unless_null $P493, vivify_225
+    unless_null $P493, vivify_229
     new $P493, "Undef"
-  vivify_225:
+  vivify_229:
     set $S494, $P493
     $P491."pasttype"($S494)
 .annotate 'line', 156
@@ -18082,7 +18791,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "statement_control:sym<repeat>"  :subid("36_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "statement_control:sym<repeat>"  :subid("36_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_502
 .annotate 'line', 159
     new $P501, 'ExceptionHandler'
@@ -18101,46 +18810,46 @@
     new $P505, "String"
     assign $P505, "repeat_"
     find_lex $P506, "$/"
-    unless_null $P506, vivify_226
+    unless_null $P506, vivify_230
     $P506 = root_new ['parrot';'Hash']
-  vivify_226:
+  vivify_230:
     set $P507, $P506["wu"]
-    unless_null $P507, vivify_227
+    unless_null $P507, vivify_231
     new $P507, "Undef"
-  vivify_227:
+  vivify_231:
     set $S508, $P507
     concat $P509, $P505, $S508
     store_lex "$pasttype", $P509
     find_lex $P510, "$past"
 .annotate 'line', 162
     find_lex $P512, "$/"
-    unless_null $P512, vivify_228
+    unless_null $P512, vivify_232
     $P512 = root_new ['parrot';'Hash']
-  vivify_228:
+  vivify_232:
     set $P513, $P512["xblock"]
-    unless_null $P513, vivify_229
+    unless_null $P513, vivify_233
     new $P513, "Undef"
-  vivify_229:
+  vivify_233:
     if $P513, if_511
 .annotate 'line', 167
     get_hll_global $P520, ["PAST"], "Op"
     find_lex $P521, "$/"
-    unless_null $P521, vivify_230
+    unless_null $P521, vivify_234
     $P521 = root_new ['parrot';'Hash']
-  vivify_230:
+  vivify_234:
     set $P522, $P521["EXPR"]
-    unless_null $P522, vivify_231
+    unless_null $P522, vivify_235
     new $P522, "Undef"
-  vivify_231:
+  vivify_235:
     $P523 = $P522."ast"()
     find_lex $P524, "$/"
-    unless_null $P524, vivify_232
+    unless_null $P524, vivify_236
     $P524 = root_new ['parrot';'Hash']
-  vivify_232:
+  vivify_236:
     set $P525, $P524["pblock"]
-    unless_null $P525, vivify_233
+    unless_null $P525, vivify_237
     new $P525, "Undef"
-  vivify_233:
+  vivify_237:
     $P526 = $P525."ast"()
     $P527 = "block_immediate"($P526)
     find_lex $P528, "$pasttype"
@@ -18152,13 +18861,13 @@
   if_511:
 .annotate 'line', 163
     find_lex $P514, "$/"
-    unless_null $P514, vivify_234
+    unless_null $P514, vivify_238
     $P514 = root_new ['parrot';'Hash']
-  vivify_234:
+  vivify_238:
     set $P515, $P514["xblock"]
-    unless_null $P515, vivify_235
+    unless_null $P515, vivify_239
     new $P515, "Undef"
-  vivify_235:
+  vivify_239:
     $P516 = $P515."ast"()
     $P517 = "xblock_immediate"($P516)
     store_lex "$past", $P517
@@ -18182,7 +18891,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "statement_control:sym<for>"  :subid("37_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "statement_control:sym<for>"  :subid("37_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_538
 .annotate 'line', 173
     new $P537, 'ExceptionHandler'
@@ -18199,13 +18908,13 @@
     .lex "$block", $P540
 .annotate 'line', 174
     find_lex $P541, "$/"
-    unless_null $P541, vivify_236
+    unless_null $P541, vivify_240
     $P541 = root_new ['parrot';'Hash']
-  vivify_236:
+  vivify_240:
     set $P542, $P541["xblock"]
-    unless_null $P542, vivify_237
+    unless_null $P542, vivify_241
     new $P542, "Undef"
-  vivify_237:
+  vivify_241:
     $P543 = $P542."ast"()
     store_lex "$past", $P543
 .annotate 'line', 175
@@ -18213,13 +18922,13 @@
     $P544."pasttype"("for")
 .annotate 'line', 176
     find_lex $P545, "$past"
-    unless_null $P545, vivify_238
+    unless_null $P545, vivify_242
     $P545 = root_new ['parrot';'ResizablePMCArray']
-  vivify_238:
+  vivify_242:
     set $P546, $P545[1]
-    unless_null $P546, vivify_239
+    unless_null $P546, vivify_243
     new $P546, "Undef"
-  vivify_239:
+  vivify_243:
     store_lex "$block", $P546
 .annotate 'line', 177
     find_lex $P548, "$block"
@@ -18227,13 +18936,13 @@
     if $P549, unless_547_end
 .annotate 'line', 178
     find_lex $P550, "$block"
-    unless_null $P550, vivify_240
+    unless_null $P550, vivify_244
     $P550 = root_new ['parrot';'ResizablePMCArray']
-  vivify_240:
+  vivify_244:
     set $P551, $P550[0]
-    unless_null $P551, vivify_241
+    unless_null $P551, vivify_245
     new $P551, "Undef"
-  vivify_241:
+  vivify_245:
     get_hll_global $P552, ["PAST"], "Var"
     $P553 = $P552."new"("$_" :named("name"), "parameter" :named("scope"))
     $P551."push"($P553)
@@ -18262,7 +18971,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "statement_control:sym<return>"  :subid("38_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "statement_control:sym<return>"  :subid("38_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_564
 .annotate 'line', 186
     new $P563, 'ExceptionHandler'
@@ -18275,13 +18984,13 @@
     find_lex $P565, "$/"
     get_hll_global $P566, ["PAST"], "Op"
     find_lex $P567, "$/"
-    unless_null $P567, vivify_242
+    unless_null $P567, vivify_246
     $P567 = root_new ['parrot';'Hash']
-  vivify_242:
+  vivify_246:
     set $P568, $P567["EXPR"]
-    unless_null $P568, vivify_243
+    unless_null $P568, vivify_247
     new $P568, "Undef"
-  vivify_243:
+  vivify_247:
     $P569 = $P568."ast"()
     find_lex $P570, "$/"
     $P571 = $P566."new"($P569, "return" :named("pasttype"), $P570 :named("node"))
@@ -18297,7 +19006,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "statement_control:sym<CATCH>"  :subid("39_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "statement_control:sym<CATCH>"  :subid("39_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_577
 .annotate 'line', 190
     new $P576, 'ExceptionHandler'
@@ -18310,13 +19019,13 @@
     new $P578, "Undef"
     .lex "$block", $P578
     find_lex $P579, "$/"
-    unless_null $P579, vivify_244
+    unless_null $P579, vivify_248
     $P579 = root_new ['parrot';'Hash']
-  vivify_244:
+  vivify_248:
     set $P580, $P579["block"]
-    unless_null $P580, vivify_245
+    unless_null $P580, vivify_249
     new $P580, "Undef"
-  vivify_245:
+  vivify_249:
     $P581 = $P580."ast"()
     store_lex "$block", $P581
 .annotate 'line', 192
@@ -18325,18 +19034,18 @@
     "push_block_handler"($P582, $P583)
 .annotate 'line', 193
     get_global $P584, "@BLOCK"
-    unless_null $P584, vivify_246
+    unless_null $P584, vivify_250
     $P584 = root_new ['parrot';'ResizablePMCArray']
-  vivify_246:
+  vivify_250:
     set $P585, $P584[0]
-    unless_null $P585, vivify_247
+    unless_null $P585, vivify_251
     new $P585, "Undef"
-  vivify_247:
+  vivify_251:
     $P586 = $P585."handlers"()
     set $P587, $P586[0]
-    unless_null $P587, vivify_248
+    unless_null $P587, vivify_252
     new $P587, "Undef"
-  vivify_248:
+  vivify_252:
     $P587."handle_types_except"("CONTROL")
 .annotate 'line', 194
     find_lex $P588, "$/"
@@ -18355,7 +19064,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "statement_control:sym<CONTROL>"  :subid("40_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "statement_control:sym<CONTROL>"  :subid("40_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_597
 .annotate 'line', 197
     new $P596, 'ExceptionHandler'
@@ -18368,13 +19077,13 @@
     new $P598, "Undef"
     .lex "$block", $P598
     find_lex $P599, "$/"
-    unless_null $P599, vivify_249
+    unless_null $P599, vivify_253
     $P599 = root_new ['parrot';'Hash']
-  vivify_249:
+  vivify_253:
     set $P600, $P599["block"]
-    unless_null $P600, vivify_250
+    unless_null $P600, vivify_254
     new $P600, "Undef"
-  vivify_250:
+  vivify_254:
     $P601 = $P600."ast"()
     store_lex "$block", $P601
 .annotate 'line', 199
@@ -18383,18 +19092,18 @@
     "push_block_handler"($P602, $P603)
 .annotate 'line', 200
     get_global $P604, "@BLOCK"
-    unless_null $P604, vivify_251
+    unless_null $P604, vivify_255
     $P604 = root_new ['parrot';'ResizablePMCArray']
-  vivify_251:
+  vivify_255:
     set $P605, $P604[0]
-    unless_null $P605, vivify_252
+    unless_null $P605, vivify_256
     new $P605, "Undef"
-  vivify_252:
+  vivify_256:
     $P606 = $P605."handlers"()
     set $P607, $P606[0]
-    unless_null $P607, vivify_253
+    unless_null $P607, vivify_257
     new $P607, "Undef"
-  vivify_253:
+  vivify_257:
     $P607."handle_types"("CONTROL")
 .annotate 'line', 201
     find_lex $P608, "$/"
@@ -18413,7 +19122,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "statement_prefix:sym<INIT>"  :subid("41_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "statement_prefix:sym<INIT>"  :subid("41_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_618
 .annotate 'line', 241
     new $P617, 'ExceptionHandler'
@@ -18424,22 +19133,22 @@
     .lex "$/", param_618
 .annotate 'line', 242
     get_global $P619, "@BLOCK"
-    unless_null $P619, vivify_254
+    unless_null $P619, vivify_258
     $P619 = root_new ['parrot';'ResizablePMCArray']
-  vivify_254:
+  vivify_258:
     set $P620, $P619[0]
-    unless_null $P620, vivify_255
+    unless_null $P620, vivify_259
     new $P620, "Undef"
-  vivify_255:
+  vivify_259:
     $P621 = $P620."loadinit"()
     find_lex $P622, "$/"
-    unless_null $P622, vivify_256
+    unless_null $P622, vivify_260
     $P622 = root_new ['parrot';'Hash']
-  vivify_256:
+  vivify_260:
     set $P623, $P622["blorst"]
-    unless_null $P623, vivify_257
+    unless_null $P623, vivify_261
     new $P623, "Undef"
-  vivify_257:
+  vivify_261:
     $P624 = $P623."ast"()
     $P621."push"($P624)
 .annotate 'line', 243
@@ -18459,7 +19168,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "statement_prefix:sym<try>"  :subid("42_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "statement_prefix:sym<try>"  :subid("42_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_634
 .annotate 'line', 246
     new $P633, 'ExceptionHandler'
@@ -18472,13 +19181,13 @@
     new $P635, "Undef"
     .lex "$past", $P635
     find_lex $P636, "$/"
-    unless_null $P636, vivify_258
+    unless_null $P636, vivify_262
     $P636 = root_new ['parrot';'Hash']
-  vivify_258:
+  vivify_262:
     set $P637, $P636["blorst"]
-    unless_null $P637, vivify_259
+    unless_null $P637, vivify_263
     new $P637, "Undef"
-  vivify_259:
+  vivify_263:
     $P638 = $P637."ast"()
     store_lex "$past", $P638
 .annotate 'line', 248
@@ -18536,7 +19245,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "blorst"  :subid("43_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "blorst"  :subid("43_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_669
 .annotate 'line', 269
     new $P668, 'ExceptionHandler'
@@ -18549,36 +19258,36 @@
     find_lex $P670, "$/"
 .annotate 'line', 271
     find_lex $P673, "$/"
-    unless_null $P673, vivify_260
+    unless_null $P673, vivify_264
     $P673 = root_new ['parrot';'Hash']
-  vivify_260:
+  vivify_264:
     set $P674, $P673["block"]
-    unless_null $P674, vivify_261
+    unless_null $P674, vivify_265
     new $P674, "Undef"
-  vivify_261:
+  vivify_265:
     if $P674, if_672
 .annotate 'line', 272
     find_lex $P679, "$/"
-    unless_null $P679, vivify_262
+    unless_null $P679, vivify_266
     $P679 = root_new ['parrot';'Hash']
-  vivify_262:
+  vivify_266:
     set $P680, $P679["statement"]
-    unless_null $P680, vivify_263
+    unless_null $P680, vivify_267
     new $P680, "Undef"
-  vivify_263:
+  vivify_267:
     $P681 = $P680."ast"()
     set $P671, $P681
 .annotate 'line', 271
     goto if_672_end
   if_672:
     find_lex $P675, "$/"
-    unless_null $P675, vivify_264
+    unless_null $P675, vivify_268
     $P675 = root_new ['parrot';'Hash']
-  vivify_264:
+  vivify_268:
     set $P676, $P675["block"]
-    unless_null $P676, vivify_265
+    unless_null $P676, vivify_269
     new $P676, "Undef"
-  vivify_265:
+  vivify_269:
     $P677 = $P676."ast"()
     $P678 = "block_immediate"($P677)
     set $P671, $P678
@@ -18595,7 +19304,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "statement_mod_cond:sym<if>"  :subid("44_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "statement_mod_cond:sym<if>"  :subid("44_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_687
 .annotate 'line', 277
     new $P686, 'ExceptionHandler'
@@ -18606,13 +19315,13 @@
     .lex "$/", param_687
     find_lex $P688, "$/"
     find_lex $P689, "$/"
-    unless_null $P689, vivify_266
+    unless_null $P689, vivify_270
     $P689 = root_new ['parrot';'Hash']
-  vivify_266:
+  vivify_270:
     set $P690, $P689["cond"]
-    unless_null $P690, vivify_267
+    unless_null $P690, vivify_271
     new $P690, "Undef"
-  vivify_267:
+  vivify_271:
     $P691 = $P690."ast"()
     $P692 = $P688."!make"($P691)
     .return ($P692)
@@ -18625,7 +19334,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "statement_mod_cond:sym<unless>"  :subid("45_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "statement_mod_cond:sym<unless>"  :subid("45_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_697
 .annotate 'line', 278
     new $P696, 'ExceptionHandler'
@@ -18636,13 +19345,13 @@
     .lex "$/", param_697
     find_lex $P698, "$/"
     find_lex $P699, "$/"
-    unless_null $P699, vivify_268
+    unless_null $P699, vivify_272
     $P699 = root_new ['parrot';'Hash']
-  vivify_268:
+  vivify_272:
     set $P700, $P699["cond"]
-    unless_null $P700, vivify_269
+    unless_null $P700, vivify_273
     new $P700, "Undef"
-  vivify_269:
+  vivify_273:
     $P701 = $P700."ast"()
     $P702 = $P698."!make"($P701)
     .return ($P702)
@@ -18655,7 +19364,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "statement_mod_loop:sym<while>"  :subid("46_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "statement_mod_loop:sym<while>"  :subid("46_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_707
 .annotate 'line', 280
     new $P706, 'ExceptionHandler'
@@ -18666,13 +19375,13 @@
     .lex "$/", param_707
     find_lex $P708, "$/"
     find_lex $P709, "$/"
-    unless_null $P709, vivify_270
+    unless_null $P709, vivify_274
     $P709 = root_new ['parrot';'Hash']
-  vivify_270:
+  vivify_274:
     set $P710, $P709["cond"]
-    unless_null $P710, vivify_271
+    unless_null $P710, vivify_275
     new $P710, "Undef"
-  vivify_271:
+  vivify_275:
     $P711 = $P710."ast"()
     $P712 = $P708."!make"($P711)
     .return ($P712)
@@ -18685,7 +19394,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "statement_mod_loop:sym<until>"  :subid("47_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "statement_mod_loop:sym<until>"  :subid("47_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_717
 .annotate 'line', 281
     new $P716, 'ExceptionHandler'
@@ -18696,13 +19405,13 @@
     .lex "$/", param_717
     find_lex $P718, "$/"
     find_lex $P719, "$/"
-    unless_null $P719, vivify_272
+    unless_null $P719, vivify_276
     $P719 = root_new ['parrot';'Hash']
-  vivify_272:
+  vivify_276:
     set $P720, $P719["cond"]
-    unless_null $P720, vivify_273
+    unless_null $P720, vivify_277
     new $P720, "Undef"
-  vivify_273:
+  vivify_277:
     $P721 = $P720."ast"()
     $P722 = $P718."!make"($P721)
     .return ($P722)
@@ -18715,7 +19424,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "term:sym<fatarrow>"  :subid("48_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "term:sym<fatarrow>"  :subid("48_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_727
 .annotate 'line', 285
     new $P726, 'ExceptionHandler'
@@ -18726,13 +19435,13 @@
     .lex "$/", param_727
     find_lex $P728, "$/"
     find_lex $P729, "$/"
-    unless_null $P729, vivify_274
+    unless_null $P729, vivify_278
     $P729 = root_new ['parrot';'Hash']
-  vivify_274:
+  vivify_278:
     set $P730, $P729["fatarrow"]
-    unless_null $P730, vivify_275
+    unless_null $P730, vivify_279
     new $P730, "Undef"
-  vivify_275:
+  vivify_279:
     $P731 = $P730."ast"()
     $P732 = $P728."!make"($P731)
     .return ($P732)
@@ -18745,7 +19454,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "term:sym<colonpair>"  :subid("49_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "term:sym<colonpair>"  :subid("49_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_737
 .annotate 'line', 286
     new $P736, 'ExceptionHandler'
@@ -18756,13 +19465,13 @@
     .lex "$/", param_737
     find_lex $P738, "$/"
     find_lex $P739, "$/"
-    unless_null $P739, vivify_276
+    unless_null $P739, vivify_280
     $P739 = root_new ['parrot';'Hash']
-  vivify_276:
+  vivify_280:
     set $P740, $P739["colonpair"]
-    unless_null $P740, vivify_277
+    unless_null $P740, vivify_281
     new $P740, "Undef"
-  vivify_277:
+  vivify_281:
     $P741 = $P740."ast"()
     $P742 = $P738."!make"($P741)
     .return ($P742)
@@ -18775,7 +19484,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "term:sym<variable>"  :subid("50_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "term:sym<variable>"  :subid("50_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_747
 .annotate 'line', 287
     new $P746, 'ExceptionHandler'
@@ -18786,13 +19495,13 @@
     .lex "$/", param_747
     find_lex $P748, "$/"
     find_lex $P749, "$/"
-    unless_null $P749, vivify_278
+    unless_null $P749, vivify_282
     $P749 = root_new ['parrot';'Hash']
-  vivify_278:
+  vivify_282:
     set $P750, $P749["variable"]
-    unless_null $P750, vivify_279
+    unless_null $P750, vivify_283
     new $P750, "Undef"
-  vivify_279:
+  vivify_283:
     $P751 = $P750."ast"()
     $P752 = $P748."!make"($P751)
     .return ($P752)
@@ -18805,7 +19514,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "term:sym<package_declarator>"  :subid("51_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "term:sym<package_declarator>"  :subid("51_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_757
 .annotate 'line', 288
     new $P756, 'ExceptionHandler'
@@ -18816,13 +19525,13 @@
     .lex "$/", param_757
     find_lex $P758, "$/"
     find_lex $P759, "$/"
-    unless_null $P759, vivify_280
+    unless_null $P759, vivify_284
     $P759 = root_new ['parrot';'Hash']
-  vivify_280:
+  vivify_284:
     set $P760, $P759["package_declarator"]
-    unless_null $P760, vivify_281
+    unless_null $P760, vivify_285
     new $P760, "Undef"
-  vivify_281:
+  vivify_285:
     $P761 = $P760."ast"()
     $P762 = $P758."!make"($P761)
     .return ($P762)
@@ -18835,7 +19544,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "term:sym<scope_declarator>"  :subid("52_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "term:sym<scope_declarator>"  :subid("52_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_767
 .annotate 'line', 289
     new $P766, 'ExceptionHandler'
@@ -18846,13 +19555,13 @@
     .lex "$/", param_767
     find_lex $P768, "$/"
     find_lex $P769, "$/"
-    unless_null $P769, vivify_282
+    unless_null $P769, vivify_286
     $P769 = root_new ['parrot';'Hash']
-  vivify_282:
+  vivify_286:
     set $P770, $P769["scope_declarator"]
-    unless_null $P770, vivify_283
+    unless_null $P770, vivify_287
     new $P770, "Undef"
-  vivify_283:
+  vivify_287:
     $P771 = $P770."ast"()
     $P772 = $P768."!make"($P771)
     .return ($P772)
@@ -18865,7 +19574,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "term:sym<routine_declarator>"  :subid("53_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "term:sym<routine_declarator>"  :subid("53_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_777
 .annotate 'line', 290
     new $P776, 'ExceptionHandler'
@@ -18876,13 +19585,13 @@
     .lex "$/", param_777
     find_lex $P778, "$/"
     find_lex $P779, "$/"
-    unless_null $P779, vivify_284
+    unless_null $P779, vivify_288
     $P779 = root_new ['parrot';'Hash']
-  vivify_284:
+  vivify_288:
     set $P780, $P779["routine_declarator"]
-    unless_null $P780, vivify_285
+    unless_null $P780, vivify_289
     new $P780, "Undef"
-  vivify_285:
+  vivify_289:
     $P781 = $P780."ast"()
     $P782 = $P778."!make"($P781)
     .return ($P782)
@@ -18895,7 +19604,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "term:sym<regex_declarator>"  :subid("54_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "term:sym<regex_declarator>"  :subid("54_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_787
 .annotate 'line', 291
     new $P786, 'ExceptionHandler'
@@ -18906,13 +19615,13 @@
     .lex "$/", param_787
     find_lex $P788, "$/"
     find_lex $P789, "$/"
-    unless_null $P789, vivify_286
+    unless_null $P789, vivify_290
     $P789 = root_new ['parrot';'Hash']
-  vivify_286:
+  vivify_290:
     set $P790, $P789["regex_declarator"]
-    unless_null $P790, vivify_287
+    unless_null $P790, vivify_291
     new $P790, "Undef"
-  vivify_287:
+  vivify_291:
     $P791 = $P790."ast"()
     $P792 = $P788."!make"($P791)
     .return ($P792)
@@ -18925,7 +19634,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "term:sym<statement_prefix>"  :subid("55_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "term:sym<statement_prefix>"  :subid("55_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_797
 .annotate 'line', 292
     new $P796, 'ExceptionHandler'
@@ -18936,13 +19645,13 @@
     .lex "$/", param_797
     find_lex $P798, "$/"
     find_lex $P799, "$/"
-    unless_null $P799, vivify_288
+    unless_null $P799, vivify_292
     $P799 = root_new ['parrot';'Hash']
-  vivify_288:
+  vivify_292:
     set $P800, $P799["statement_prefix"]
-    unless_null $P800, vivify_289
+    unless_null $P800, vivify_293
     new $P800, "Undef"
-  vivify_289:
+  vivify_293:
     $P801 = $P800."ast"()
     $P802 = $P798."!make"($P801)
     .return ($P802)
@@ -18955,7 +19664,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "term:sym<lambda>"  :subid("56_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "term:sym<lambda>"  :subid("56_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_807
 .annotate 'line', 293
     new $P806, 'ExceptionHandler'
@@ -18966,13 +19675,13 @@
     .lex "$/", param_807
     find_lex $P808, "$/"
     find_lex $P809, "$/"
-    unless_null $P809, vivify_290
+    unless_null $P809, vivify_294
     $P809 = root_new ['parrot';'Hash']
-  vivify_290:
+  vivify_294:
     set $P810, $P809["pblock"]
-    unless_null $P810, vivify_291
+    unless_null $P810, vivify_295
     new $P810, "Undef"
-  vivify_291:
+  vivify_295:
     $P811 = $P810."ast"()
     $P812 = $P808."!make"($P811)
     .return ($P812)
@@ -18985,7 +19694,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "fatarrow"  :subid("57_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "fatarrow"  :subid("57_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_817
 .annotate 'line', 295
     new $P816, 'ExceptionHandler'
@@ -18998,25 +19707,25 @@
     new $P818, "Undef"
     .lex "$past", $P818
     find_lex $P819, "$/"
-    unless_null $P819, vivify_292
+    unless_null $P819, vivify_296
     $P819 = root_new ['parrot';'Hash']
-  vivify_292:
+  vivify_296:
     set $P820, $P819["val"]
-    unless_null $P820, vivify_293
+    unless_null $P820, vivify_297
     new $P820, "Undef"
-  vivify_293:
+  vivify_297:
     $P821 = $P820."ast"()
     store_lex "$past", $P821
 .annotate 'line', 297
     find_lex $P822, "$past"
     find_lex $P823, "$/"
-    unless_null $P823, vivify_294
+    unless_null $P823, vivify_298
     $P823 = root_new ['parrot';'Hash']
-  vivify_294:
+  vivify_298:
     set $P824, $P823["key"]
-    unless_null $P824, vivify_295
+    unless_null $P824, vivify_299
     new $P824, "Undef"
-  vivify_295:
+  vivify_299:
     $P825 = $P824."Str"()
     $P822."named"($P825)
 .annotate 'line', 298
@@ -19034,7 +19743,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "colonpair"  :subid("58_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "colonpair"  :subid("58_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_833
 .annotate 'line', 301
     new $P832, 'ExceptionHandler'
@@ -19048,24 +19757,24 @@
     .lex "$past", $P834
 .annotate 'line', 303
     find_lex $P837, "$/"
-    unless_null $P837, vivify_296
+    unless_null $P837, vivify_300
     $P837 = root_new ['parrot';'Hash']
-  vivify_296:
+  vivify_300:
     set $P838, $P837["circumfix"]
-    unless_null $P838, vivify_297
+    unless_null $P838, vivify_301
     new $P838, "Undef"
-  vivify_297:
+  vivify_301:
     if $P838, if_836
 .annotate 'line', 304
     get_hll_global $P843, ["PAST"], "Val"
     find_lex $P844, "$/"
-    unless_null $P844, vivify_298
+    unless_null $P844, vivify_302
     $P844 = root_new ['parrot';'Hash']
-  vivify_298:
+  vivify_302:
     set $P845, $P844["not"]
-    unless_null $P845, vivify_299
+    unless_null $P845, vivify_303
     new $P845, "Undef"
-  vivify_299:
+  vivify_303:
     isfalse $I846, $P845
     $P847 = $P843."new"($I846 :named("value"))
     set $P835, $P847
@@ -19073,17 +19782,17 @@
     goto if_836_end
   if_836:
     find_lex $P839, "$/"
-    unless_null $P839, vivify_300
+    unless_null $P839, vivify_304
     $P839 = root_new ['parrot';'Hash']
-  vivify_300:
+  vivify_304:
     set $P840, $P839["circumfix"]
-    unless_null $P840, vivify_301
+    unless_null $P840, vivify_305
     $P840 = root_new ['parrot';'ResizablePMCArray']
-  vivify_301:
+  vivify_305:
     set $P841, $P840[0]
-    unless_null $P841, vivify_302
+    unless_null $P841, vivify_306
     new $P841, "Undef"
-  vivify_302:
+  vivify_306:
     $P842 = $P841."ast"()
     set $P835, $P842
   if_836_end:
@@ -19091,13 +19800,13 @@
 .annotate 'line', 305
     find_lex $P848, "$past"
     find_lex $P849, "$/"
-    unless_null $P849, vivify_303
+    unless_null $P849, vivify_307
     $P849 = root_new ['parrot';'Hash']
-  vivify_303:
+  vivify_307:
     set $P850, $P849["identifier"]
-    unless_null $P850, vivify_304
+    unless_null $P850, vivify_308
     new $P850, "Undef"
-  vivify_304:
+  vivify_308:
     set $S851, $P850
     $P848."named"($S851)
 .annotate 'line', 306
@@ -19115,10 +19824,10 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "variable"  :subid("59_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "variable"  :subid("59_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_859
 .annotate 'line', 309
-    .const 'Sub' $P872 = "60_1274022903.56472" 
+    .const 'Sub' $P872 = "60_1274564782.90592" 
     capture_lex $P872
     new $P858, 'ExceptionHandler'
     set_addr $P858, control_857
@@ -19133,29 +19842,29 @@
     find_lex $P861, "$past"
 .annotate 'line', 311
     find_lex $P863, "$/"
-    unless_null $P863, vivify_305
+    unless_null $P863, vivify_309
     $P863 = root_new ['parrot';'Hash']
-  vivify_305:
+  vivify_309:
     set $P864, $P863["postcircumfix"]
-    unless_null $P864, vivify_306
+    unless_null $P864, vivify_310
     new $P864, "Undef"
-  vivify_306:
+  vivify_310:
     if $P864, if_862
 .annotate 'line', 315
-    .const 'Sub' $P872 = "60_1274022903.56472" 
+    .const 'Sub' $P872 = "60_1274564782.90592" 
     capture_lex $P872
     $P872()
     goto if_862_end
   if_862:
 .annotate 'line', 312
     find_lex $P865, "$/"
-    unless_null $P865, vivify_323
+    unless_null $P865, vivify_327
     $P865 = root_new ['parrot';'Hash']
-  vivify_323:
+  vivify_327:
     set $P866, $P865["postcircumfix"]
-    unless_null $P866, vivify_324
+    unless_null $P866, vivify_328
     new $P866, "Undef"
-  vivify_324:
+  vivify_328:
     $P867 = $P866."ast"()
     store_lex "$past", $P867
 .annotate 'line', 313
@@ -19179,7 +19888,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block871"  :anon :subid("60_1274022903.56472") :outer("59_1274022903.56472")
+.sub "_block871"  :anon :subid("60_1274564782.90592") :outer("59_1274564782.90592")
 .annotate 'line', 316
     $P873 = root_new ['parrot';'ResizablePMCArray']
     .lex "@name", $P873
@@ -19200,13 +19909,13 @@
     unless $P884, if_883_end
 .annotate 'line', 319
     find_lex $P886, "@name"
-    unless_null $P886, vivify_307
+    unless_null $P886, vivify_311
     $P886 = root_new ['parrot';'ResizablePMCArray']
-  vivify_307:
+  vivify_311:
     set $P887, $P886[0]
-    unless_null $P887, vivify_308
+    unless_null $P887, vivify_312
     new $P887, "Undef"
-  vivify_308:
+  vivify_312:
     set $S888, $P887
     iseq $I889, $S888, "GLOBAL"
     unless $I889, if_885_end
@@ -19223,13 +19932,13 @@
 .annotate 'line', 322
     find_lex $P894, "$past"
     find_lex $P895, "$/"
-    unless_null $P895, vivify_309
+    unless_null $P895, vivify_313
     $P895 = root_new ['parrot';'Hash']
-  vivify_309:
+  vivify_313:
     set $P896, $P895["sigil"]
-    unless_null $P896, vivify_310
+    unless_null $P896, vivify_314
     new $P896, "Undef"
-  vivify_310:
+  vivify_314:
     $P897 = "vivitype"($P896)
     $P894."viviself"($P897)
 .annotate 'line', 323
@@ -19238,33 +19947,33 @@
   if_883_end:
 .annotate 'line', 325
     find_lex $P901, "$/"
-    unless_null $P901, vivify_311
+    unless_null $P901, vivify_315
     $P901 = root_new ['parrot';'Hash']
-  vivify_311:
+  vivify_315:
     set $P902, $P901["twigil"]
-    unless_null $P902, vivify_312
+    unless_null $P902, vivify_316
     $P902 = root_new ['parrot';'ResizablePMCArray']
-  vivify_312:
+  vivify_316:
     set $P903, $P902[0]
-    unless_null $P903, vivify_313
+    unless_null $P903, vivify_317
     new $P903, "Undef"
-  vivify_313:
+  vivify_317:
     set $S904, $P903
     iseq $I905, $S904, "*"
     if $I905, if_900
 .annotate 'line', 338
     find_lex $P927, "$/"
-    unless_null $P927, vivify_314
+    unless_null $P927, vivify_318
     $P927 = root_new ['parrot';'Hash']
-  vivify_314:
+  vivify_318:
     set $P928, $P927["twigil"]
-    unless_null $P928, vivify_315
+    unless_null $P928, vivify_319
     $P928 = root_new ['parrot';'ResizablePMCArray']
-  vivify_315:
+  vivify_319:
     set $P929, $P928[0]
-    unless_null $P929, vivify_316
+    unless_null $P929, vivify_320
     new $P929, "Undef"
-  vivify_316:
+  vivify_320:
     set $S930, $P929
     iseq $I931, $S930, "!"
     if $I931, if_926
@@ -19283,13 +19992,13 @@
 .annotate 'line', 341
     find_lex $P936, "$past"
     find_lex $P937, "$/"
-    unless_null $P937, vivify_317
+    unless_null $P937, vivify_321
     $P937 = root_new ['parrot';'Hash']
-  vivify_317:
+  vivify_321:
     set $P938, $P937["sigil"]
-    unless_null $P938, vivify_318
+    unless_null $P938, vivify_322
     new $P938, "Undef"
-  vivify_318:
+  vivify_322:
     $P939 = "vivitype"($P938)
     $P940 = $P936."viviself"($P939)
 .annotate 'line', 338
@@ -19308,24 +20017,24 @@
     get_hll_global $P908, ["PAST"], "Var"
 .annotate 'line', 330
     find_lex $P909, "$/"
-    unless_null $P909, vivify_319
+    unless_null $P909, vivify_323
     $P909 = root_new ['parrot';'Hash']
-  vivify_319:
+  vivify_323:
     set $P910, $P909["sigil"]
-    unless_null $P910, vivify_320
+    unless_null $P910, vivify_324
     new $P910, "Undef"
-  vivify_320:
+  vivify_324:
     set $S911, $P910
     new $P912, 'String'
     set $P912, $S911
     find_lex $P913, "$/"
-    unless_null $P913, vivify_321
+    unless_null $P913, vivify_325
     $P913 = root_new ['parrot';'Hash']
-  vivify_321:
+  vivify_325:
     set $P914, $P913["desigilname"]
-    unless_null $P914, vivify_322
+    unless_null $P914, vivify_326
     new $P914, "Undef"
-  vivify_322:
+  vivify_326:
     concat $P915, $P912, $P914
 .annotate 'line', 332
     get_hll_global $P916, ["PAST"], "Op"
@@ -19348,7 +20057,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "package_declarator:sym<module>"  :subid("61_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "package_declarator:sym<module>"  :subid("61_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_948
 .annotate 'line', 347
     new $P947, 'ExceptionHandler'
@@ -19359,13 +20068,13 @@
     .lex "$/", param_948
     find_lex $P949, "$/"
     find_lex $P950, "$/"
-    unless_null $P950, vivify_325
+    unless_null $P950, vivify_329
     $P950 = root_new ['parrot';'Hash']
-  vivify_325:
+  vivify_329:
     set $P951, $P950["package_def"]
-    unless_null $P951, vivify_326
+    unless_null $P951, vivify_330
     new $P951, "Undef"
-  vivify_326:
+  vivify_330:
     $P952 = $P951."ast"()
     $P953 = $P949."!make"($P952)
     .return ($P953)
@@ -19378,7 +20087,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "package_declarator:sym<class>"  :subid("62_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "package_declarator:sym<class>"  :subid("62_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_958
 .annotate 'line', 348
     new $P957, 'ExceptionHandler'
@@ -19398,13 +20107,13 @@
     .lex "$parent", $P961
 .annotate 'line', 349
     find_lex $P962, "$/"
-    unless_null $P962, vivify_327
+    unless_null $P962, vivify_331
     $P962 = root_new ['parrot';'Hash']
-  vivify_327:
+  vivify_331:
     set $P963, $P962["package_def"]
-    unless_null $P963, vivify_328
+    unless_null $P963, vivify_332
     new $P963, "Undef"
-  vivify_328:
+  vivify_332:
     $P964 = $P963."ast"()
     store_lex "$past", $P964
 .annotate 'line', 351
@@ -19414,38 +20123,38 @@
     $P967 = $P966."new"("    %r = get_root_global [\"parrot\"], \"P6metaclass\"" :named("inline"))
 .annotate 'line', 355
     find_lex $P968, "$/"
-    unless_null $P968, vivify_329
+    unless_null $P968, vivify_333
     $P968 = root_new ['parrot';'Hash']
-  vivify_329:
+  vivify_333:
     set $P969, $P968["package_def"]
-    unless_null $P969, vivify_330
+    unless_null $P969, vivify_334
     $P969 = root_new ['parrot';'Hash']
-  vivify_330:
+  vivify_334:
     set $P970, $P969["name"]
-    unless_null $P970, vivify_331
+    unless_null $P970, vivify_335
     new $P970, "Undef"
-  vivify_331:
+  vivify_335:
     set $S971, $P970
     $P972 = $P965."new"($P967, $S971, "new_class" :named("name"), "callmethod" :named("pasttype"))
 .annotate 'line', 351
     store_lex "$classinit", $P972
 .annotate 'line', 359
     find_lex $P975, "$/"
-    unless_null $P975, vivify_332
+    unless_null $P975, vivify_336
     $P975 = root_new ['parrot';'Hash']
-  vivify_332:
+  vivify_336:
     set $P976, $P975["package_def"]
-    unless_null $P976, vivify_333
+    unless_null $P976, vivify_337
     $P976 = root_new ['parrot';'Hash']
-  vivify_333:
+  vivify_337:
     set $P977, $P976["parent"]
-    unless_null $P977, vivify_334
+    unless_null $P977, vivify_338
     $P977 = root_new ['parrot';'ResizablePMCArray']
-  vivify_334:
+  vivify_338:
     set $P978, $P977[0]
-    unless_null $P978, vivify_335
+    unless_null $P978, vivify_339
     new $P978, "Undef"
-  vivify_335:
+  vivify_339:
     set $S979, $P978
     unless $S979, unless_974
     new $P973, 'String'
@@ -19454,13 +20163,13 @@
   unless_974:
 .annotate 'line', 360
     find_lex $P982, "$/"
-    unless_null $P982, vivify_336
+    unless_null $P982, vivify_340
     $P982 = root_new ['parrot';'Hash']
-  vivify_336:
+  vivify_340:
     set $P983, $P982["sym"]
-    unless_null $P983, vivify_337
+    unless_null $P983, vivify_341
     new $P983, "Undef"
-  vivify_337:
+  vivify_341:
     set $S984, $P983
     iseq $I985, $S984, "grammar"
     if $I985, if_981
@@ -19488,35 +20197,35 @@
   if_988_end:
 .annotate 'line', 364
     find_lex $P995, "$past"
-    unless_null $P995, vivify_338
+    unless_null $P995, vivify_342
     $P995 = root_new ['parrot';'Hash']
-  vivify_338:
+  vivify_342:
     set $P996, $P995["attributes"]
-    unless_null $P996, vivify_339
+    unless_null $P996, vivify_343
     new $P996, "Undef"
-  vivify_339:
+  vivify_343:
     unless $P996, if_994_end
 .annotate 'line', 365
     find_lex $P997, "$classinit"
     find_lex $P998, "$past"
-    unless_null $P998, vivify_340
+    unless_null $P998, vivify_344
     $P998 = root_new ['parrot';'Hash']
-  vivify_340:
+  vivify_344:
     set $P999, $P998["attributes"]
-    unless_null $P999, vivify_341
+    unless_null $P999, vivify_345
     new $P999, "Undef"
-  vivify_341:
+  vivify_345:
     $P997."push"($P999)
   if_994_end:
 .annotate 'line', 367
     get_global $P1000, "@BLOCK"
-    unless_null $P1000, vivify_342
+    unless_null $P1000, vivify_346
     $P1000 = root_new ['parrot';'ResizablePMCArray']
-  vivify_342:
+  vivify_346:
     set $P1001, $P1000[0]
-    unless_null $P1001, vivify_343
+    unless_null $P1001, vivify_347
     new $P1001, "Undef"
-  vivify_343:
+  vivify_347:
     $P1002 = $P1001."loadinit"()
     find_lex $P1003, "$classinit"
     $P1002."push"($P1003)
@@ -19535,7 +20244,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "package_def"  :subid("63_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "package_def"  :subid("63_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_1011
 .annotate 'line', 371
     new $P1010, 'ExceptionHandler'
@@ -19548,34 +20257,34 @@
     new $P1012, "Undef"
     .lex "$past", $P1012
     find_lex $P1015, "$/"
-    unless_null $P1015, vivify_344
+    unless_null $P1015, vivify_348
     $P1015 = root_new ['parrot';'Hash']
-  vivify_344:
+  vivify_348:
     set $P1016, $P1015["block"]
-    unless_null $P1016, vivify_345
+    unless_null $P1016, vivify_349
     new $P1016, "Undef"
-  vivify_345:
+  vivify_349:
     if $P1016, if_1014
     find_lex $P1020, "$/"
-    unless_null $P1020, vivify_346
+    unless_null $P1020, vivify_350
     $P1020 = root_new ['parrot';'Hash']
-  vivify_346:
+  vivify_350:
     set $P1021, $P1020["comp_unit"]
-    unless_null $P1021, vivify_347
+    unless_null $P1021, vivify_351
     new $P1021, "Undef"
-  vivify_347:
+  vivify_351:
     $P1022 = $P1021."ast"()
     set $P1013, $P1022
     goto if_1014_end
   if_1014:
     find_lex $P1017, "$/"
-    unless_null $P1017, vivify_348
+    unless_null $P1017, vivify_352
     $P1017 = root_new ['parrot';'Hash']
-  vivify_348:
+  vivify_352:
     set $P1018, $P1017["block"]
-    unless_null $P1018, vivify_349
+    unless_null $P1018, vivify_353
     new $P1018, "Undef"
-  vivify_349:
+  vivify_353:
     $P1019 = $P1018."ast"()
     set $P1013, $P1019
   if_1014_end:
@@ -19583,17 +20292,17 @@
 .annotate 'line', 373
     find_lex $P1023, "$past"
     find_lex $P1024, "$/"
-    unless_null $P1024, vivify_350
+    unless_null $P1024, vivify_354
     $P1024 = root_new ['parrot';'Hash']
-  vivify_350:
+  vivify_354:
     set $P1025, $P1024["name"]
-    unless_null $P1025, vivify_351
+    unless_null $P1025, vivify_355
     $P1025 = root_new ['parrot';'Hash']
-  vivify_351:
+  vivify_355:
     set $P1026, $P1025["identifier"]
-    unless_null $P1026, vivify_352
+    unless_null $P1026, vivify_356
     new $P1026, "Undef"
-  vivify_352:
+  vivify_356:
     $P1023."namespace"($P1026)
 .annotate 'line', 374
     find_lex $P1027, "$past"
@@ -19613,7 +20322,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "scope_declarator:sym<my>"  :subid("64_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "scope_declarator:sym<my>"  :subid("64_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_1035
 .annotate 'line', 378
     new $P1034, 'ExceptionHandler'
@@ -19624,13 +20333,13 @@
     .lex "$/", param_1035
     find_lex $P1036, "$/"
     find_lex $P1037, "$/"
-    unless_null $P1037, vivify_353
+    unless_null $P1037, vivify_357
     $P1037 = root_new ['parrot';'Hash']
-  vivify_353:
+  vivify_357:
     set $P1038, $P1037["scoped"]
-    unless_null $P1038, vivify_354
+    unless_null $P1038, vivify_358
     new $P1038, "Undef"
-  vivify_354:
+  vivify_358:
     $P1039 = $P1038."ast"()
     $P1040 = $P1036."!make"($P1039)
     .return ($P1040)
@@ -19643,7 +20352,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "scope_declarator:sym<our>"  :subid("65_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "scope_declarator:sym<our>"  :subid("65_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_1045
 .annotate 'line', 379
     new $P1044, 'ExceptionHandler'
@@ -19654,13 +20363,13 @@
     .lex "$/", param_1045
     find_lex $P1046, "$/"
     find_lex $P1047, "$/"
-    unless_null $P1047, vivify_355
+    unless_null $P1047, vivify_359
     $P1047 = root_new ['parrot';'Hash']
-  vivify_355:
+  vivify_359:
     set $P1048, $P1047["scoped"]
-    unless_null $P1048, vivify_356
+    unless_null $P1048, vivify_360
     new $P1048, "Undef"
-  vivify_356:
+  vivify_360:
     $P1049 = $P1048."ast"()
     $P1050 = $P1046."!make"($P1049)
     .return ($P1050)
@@ -19673,7 +20382,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "scope_declarator:sym<has>"  :subid("66_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "scope_declarator:sym<has>"  :subid("66_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_1055
 .annotate 'line', 380
     new $P1054, 'ExceptionHandler'
@@ -19684,13 +20393,13 @@
     .lex "$/", param_1055
     find_lex $P1056, "$/"
     find_lex $P1057, "$/"
-    unless_null $P1057, vivify_357
+    unless_null $P1057, vivify_361
     $P1057 = root_new ['parrot';'Hash']
-  vivify_357:
+  vivify_361:
     set $P1058, $P1057["scoped"]
-    unless_null $P1058, vivify_358
+    unless_null $P1058, vivify_362
     new $P1058, "Undef"
-  vivify_358:
+  vivify_362:
     $P1059 = $P1058."ast"()
     $P1060 = $P1056."!make"($P1059)
     .return ($P1060)
@@ -19703,7 +20412,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "scoped"  :subid("67_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "scoped"  :subid("67_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_1065
 .annotate 'line', 382
     new $P1064, 'ExceptionHandler'
@@ -19715,13 +20424,13 @@
 .annotate 'line', 383
     find_lex $P1066, "$/"
     find_lex $P1067, "$/"
-    unless_null $P1067, vivify_359
+    unless_null $P1067, vivify_363
     $P1067 = root_new ['parrot';'Hash']
-  vivify_359:
+  vivify_363:
     set $P1068, $P1067["declarator"]
-    unless_null $P1068, vivify_360
+    unless_null $P1068, vivify_364
     new $P1068, "Undef"
-  vivify_360:
+  vivify_364:
     $P1069 = $P1068."ast"()
     $P1070 = $P1066."!make"($P1069)
 .annotate 'line', 382
@@ -19735,7 +20444,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "declarator"  :subid("68_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "declarator"  :subid("68_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_1075
 .annotate 'line', 386
     new $P1074, 'ExceptionHandler'
@@ -19748,36 +20457,36 @@
     find_lex $P1076, "$/"
 .annotate 'line', 388
     find_lex $P1079, "$/"
-    unless_null $P1079, vivify_361
+    unless_null $P1079, vivify_365
     $P1079 = root_new ['parrot';'Hash']
-  vivify_361:
+  vivify_365:
     set $P1080, $P1079["routine_declarator"]
-    unless_null $P1080, vivify_362
+    unless_null $P1080, vivify_366
     new $P1080, "Undef"
-  vivify_362:
+  vivify_366:
     if $P1080, if_1078
 .annotate 'line', 389
     find_lex $P1084, "$/"
-    unless_null $P1084, vivify_363
+    unless_null $P1084, vivify_367
     $P1084 = root_new ['parrot';'Hash']
-  vivify_363:
+  vivify_367:
     set $P1085, $P1084["variable_declarator"]
-    unless_null $P1085, vivify_364
+    unless_null $P1085, vivify_368
     new $P1085, "Undef"
-  vivify_364:
+  vivify_368:
     $P1086 = $P1085."ast"()
     set $P1077, $P1086
 .annotate 'line', 388
     goto if_1078_end
   if_1078:
     find_lex $P1081, "$/"
-    unless_null $P1081, vivify_365
+    unless_null $P1081, vivify_369
     $P1081 = root_new ['parrot';'Hash']
-  vivify_365:
+  vivify_369:
     set $P1082, $P1081["routine_declarator"]
-    unless_null $P1082, vivify_366
+    unless_null $P1082, vivify_370
     new $P1082, "Undef"
-  vivify_366:
+  vivify_370:
     $P1083 = $P1082."ast"()
     set $P1077, $P1083
   if_1078_end:
@@ -19793,10 +20502,10 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "variable_declarator"  :subid("69_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "variable_declarator"  :subid("69_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_1092
 .annotate 'line', 392
-    .const 'Sub' $P1132 = "70_1274022903.56472" 
+    .const 'Sub' $P1132 = "70_1274564782.90592" 
     capture_lex $P1132
     new $P1091, 'ExceptionHandler'
     set_addr $P1091, control_1090
@@ -19818,28 +20527,28 @@
     .lex "$BLOCK", $P1096
 .annotate 'line', 393
     find_lex $P1097, "$/"
-    unless_null $P1097, vivify_367
+    unless_null $P1097, vivify_371
     $P1097 = root_new ['parrot';'Hash']
-  vivify_367:
+  vivify_371:
     set $P1098, $P1097["variable"]
-    unless_null $P1098, vivify_368
+    unless_null $P1098, vivify_372
     new $P1098, "Undef"
-  vivify_368:
+  vivify_372:
     $P1099 = $P1098."ast"()
     store_lex "$past", $P1099
 .annotate 'line', 394
     find_lex $P1100, "$/"
-    unless_null $P1100, vivify_369
+    unless_null $P1100, vivify_373
     $P1100 = root_new ['parrot';'Hash']
-  vivify_369:
+  vivify_373:
     set $P1101, $P1100["variable"]
-    unless_null $P1101, vivify_370
+    unless_null $P1101, vivify_374
     $P1101 = root_new ['parrot';'Hash']
-  vivify_370:
+  vivify_374:
     set $P1102, $P1101["sigil"]
-    unless_null $P1102, vivify_371
+    unless_null $P1102, vivify_375
     new $P1102, "Undef"
-  vivify_371:
+  vivify_375:
     store_lex "$sigil", $P1102
 .annotate 'line', 395
     find_lex $P1103, "$past"
@@ -19847,13 +20556,13 @@
     store_lex "$name", $P1104
 .annotate 'line', 396
     get_global $P1105, "@BLOCK"
-    unless_null $P1105, vivify_372
+    unless_null $P1105, vivify_376
     $P1105 = root_new ['parrot';'ResizablePMCArray']
-  vivify_372:
+  vivify_376:
     set $P1106, $P1105[0]
-    unless_null $P1106, vivify_373
+    unless_null $P1106, vivify_377
     new $P1106, "Undef"
-  vivify_373:
+  vivify_377:
     store_lex "$BLOCK", $P1106
 .annotate 'line', 397
     find_lex $P1108, "$BLOCK"
@@ -19868,17 +20577,17 @@
   if_1107_end:
 .annotate 'line', 400
     find_dynamic_lex $P1115, "$*SCOPE"
-    unless_null $P1115, vivify_374
+    unless_null $P1115, vivify_378
     get_hll_global $P1115, "$SCOPE"
-    unless_null $P1115, vivify_375
+    unless_null $P1115, vivify_379
     die "Contextual $*SCOPE not found"
-  vivify_375:
-  vivify_374:
+  vivify_379:
+  vivify_378:
     set $S1116, $P1115
     iseq $I1117, $S1116, "has"
     if $I1117, if_1114
 .annotate 'line', 409
-    .const 'Sub' $P1132 = "70_1274022903.56472" 
+    .const 'Sub' $P1132 = "70_1274564782.90592" 
     capture_lex $P1132
     $P1132()
     goto if_1114_end
@@ -19889,33 +20598,33 @@
     $P1118."symbol"($P1119, "attribute" :named("scope"))
 .annotate 'line', 402
     find_lex $P1121, "$BLOCK"
-    unless_null $P1121, vivify_380
+    unless_null $P1121, vivify_384
     $P1121 = root_new ['parrot';'Hash']
-  vivify_380:
+  vivify_384:
     set $P1122, $P1121["attributes"]
-    unless_null $P1122, vivify_381
+    unless_null $P1122, vivify_385
     new $P1122, "Undef"
-  vivify_381:
+  vivify_385:
     if $P1122, unless_1120_end
 .annotate 'line', 404
     get_hll_global $P1123, ["PAST"], "Op"
     $P1124 = $P1123."new"("list" :named("pasttype"), "attr" :named("named"))
     find_lex $P1125, "$BLOCK"
-    unless_null $P1125, vivify_382
+    unless_null $P1125, vivify_386
     $P1125 = root_new ['parrot';'Hash']
     store_lex "$BLOCK", $P1125
-  vivify_382:
+  vivify_386:
     set $P1125["attributes"], $P1124
   unless_1120_end:
 .annotate 'line', 406
     find_lex $P1126, "$BLOCK"
-    unless_null $P1126, vivify_383
+    unless_null $P1126, vivify_387
     $P1126 = root_new ['parrot';'Hash']
-  vivify_383:
+  vivify_387:
     set $P1127, $P1126["attributes"]
-    unless_null $P1127, vivify_384
+    unless_null $P1127, vivify_388
     new $P1127, "Undef"
-  vivify_384:
+  vivify_388:
     find_lex $P1128, "$name"
     $P1127."push"($P1128)
 .annotate 'line', 407
@@ -19938,7 +20647,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block1131"  :anon :subid("70_1274022903.56472") :outer("69_1274022903.56472")
+.sub "_block1131"  :anon :subid("70_1274564782.90592") :outer("69_1274564782.90592")
 .annotate 'line', 410
     new $P1133, "Undef"
     .lex "$scope", $P1133
@@ -19947,12 +20656,12 @@
     .lex "$decl", $P1134
 .annotate 'line', 410
     find_dynamic_lex $P1137, "$*SCOPE"
-    unless_null $P1137, vivify_376
+    unless_null $P1137, vivify_380
     get_hll_global $P1137, "$SCOPE"
-    unless_null $P1137, vivify_377
+    unless_null $P1137, vivify_381
     die "Contextual $*SCOPE not found"
-  vivify_377:
-  vivify_376:
+  vivify_381:
+  vivify_380:
     set $S1138, $P1137
     iseq $I1139, $S1138, "our"
     if $I1139, if_1136
@@ -19984,13 +20693,13 @@
     $P1149."symbol"($P1150, $P1151 :named("scope"))
 .annotate 'line', 415
     find_lex $P1152, "$BLOCK"
-    unless_null $P1152, vivify_378
+    unless_null $P1152, vivify_382
     $P1152 = root_new ['parrot';'ResizablePMCArray']
-  vivify_378:
+  vivify_382:
     set $P1153, $P1152[0]
-    unless_null $P1153, vivify_379
+    unless_null $P1153, vivify_383
     new $P1153, "Undef"
-  vivify_379:
+  vivify_383:
     find_lex $P1154, "$decl"
     $P1155 = $P1153."push"($P1154)
 .annotate 'line', 409
@@ -19999,7 +20708,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "routine_declarator:sym<sub>"  :subid("71_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "routine_declarator:sym<sub>"  :subid("71_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_1163
 .annotate 'line', 420
     new $P1162, 'ExceptionHandler'
@@ -20010,13 +20719,13 @@
     .lex "$/", param_1163
     find_lex $P1164, "$/"
     find_lex $P1165, "$/"
-    unless_null $P1165, vivify_385
+    unless_null $P1165, vivify_389
     $P1165 = root_new ['parrot';'Hash']
-  vivify_385:
+  vivify_389:
     set $P1166, $P1165["routine_def"]
-    unless_null $P1166, vivify_386
+    unless_null $P1166, vivify_390
     new $P1166, "Undef"
-  vivify_386:
+  vivify_390:
     $P1167 = $P1166."ast"()
     $P1168 = $P1164."!make"($P1167)
     .return ($P1168)
@@ -20029,7 +20738,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "routine_declarator:sym<method>"  :subid("72_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "routine_declarator:sym<method>"  :subid("72_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_1173
 .annotate 'line', 421
     new $P1172, 'ExceptionHandler'
@@ -20040,13 +20749,13 @@
     .lex "$/", param_1173
     find_lex $P1174, "$/"
     find_lex $P1175, "$/"
-    unless_null $P1175, vivify_387
+    unless_null $P1175, vivify_391
     $P1175 = root_new ['parrot';'Hash']
-  vivify_387:
+  vivify_391:
     set $P1176, $P1175["method_def"]
-    unless_null $P1176, vivify_388
+    unless_null $P1176, vivify_392
     new $P1176, "Undef"
-  vivify_388:
+  vivify_392:
     $P1177 = $P1176."ast"()
     $P1178 = $P1174."!make"($P1177)
     .return ($P1178)
@@ -20059,10 +20768,10 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "routine_def"  :subid("73_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "routine_def"  :subid("73_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_1183
 .annotate 'line', 423
-    .const 'Sub' $P1194 = "74_1274022903.56472" 
+    .const 'Sub' $P1194 = "74_1274564782.90592" 
     capture_lex $P1194
     new $P1182, 'ExceptionHandler'
     set_addr $P1182, control_1181
@@ -20074,13 +20783,13 @@
     new $P1184, "Undef"
     .lex "$past", $P1184
     find_lex $P1185, "$/"
-    unless_null $P1185, vivify_389
+    unless_null $P1185, vivify_393
     $P1185 = root_new ['parrot';'Hash']
-  vivify_389:
+  vivify_393:
     set $P1186, $P1185["blockoid"]
-    unless_null $P1186, vivify_390
+    unless_null $P1186, vivify_394
     new $P1186, "Undef"
-  vivify_390:
+  vivify_394:
     $P1187 = $P1186."ast"()
     store_lex "$past", $P1187
 .annotate 'line', 425
@@ -20091,15 +20800,15 @@
     $P1189."control"("return_pir")
 .annotate 'line', 427
     find_lex $P1191, "$/"
-    unless_null $P1191, vivify_391
+    unless_null $P1191, vivify_395
     $P1191 = root_new ['parrot';'Hash']
-  vivify_391:
+  vivify_395:
     set $P1192, $P1191["deflongname"]
-    unless_null $P1192, vivify_392
+    unless_null $P1192, vivify_396
     new $P1192, "Undef"
-  vivify_392:
+  vivify_396:
     unless $P1192, if_1190_end
-    .const 'Sub' $P1194 = "74_1274022903.56472" 
+    .const 'Sub' $P1194 = "74_1274564782.90592" 
     capture_lex $P1194
     $P1194()
   if_1190_end:
@@ -20118,37 +20827,37 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block1193"  :anon :subid("74_1274022903.56472") :outer("73_1274022903.56472")
+.sub "_block1193"  :anon :subid("74_1274564782.90592") :outer("73_1274564782.90592")
 .annotate 'line', 428
     new $P1195, "Undef"
     .lex "$name", $P1195
     find_lex $P1196, "$/"
-    unless_null $P1196, vivify_393
+    unless_null $P1196, vivify_397
     $P1196 = root_new ['parrot';'Hash']
-  vivify_393:
+  vivify_397:
     set $P1197, $P1196["sigil"]
-    unless_null $P1197, vivify_394
+    unless_null $P1197, vivify_398
     $P1197 = root_new ['parrot';'ResizablePMCArray']
-  vivify_394:
+  vivify_398:
     set $P1198, $P1197[0]
-    unless_null $P1198, vivify_395
+    unless_null $P1198, vivify_399
     new $P1198, "Undef"
-  vivify_395:
+  vivify_399:
     set $S1199, $P1198
     new $P1200, 'String'
     set $P1200, $S1199
     find_lex $P1201, "$/"
-    unless_null $P1201, vivify_396
+    unless_null $P1201, vivify_400
     $P1201 = root_new ['parrot';'Hash']
-  vivify_396:
+  vivify_400:
     set $P1202, $P1201["deflongname"]
-    unless_null $P1202, vivify_397
+    unless_null $P1202, vivify_401
     $P1202 = root_new ['parrot';'ResizablePMCArray']
-  vivify_397:
+  vivify_401:
     set $P1203, $P1202[0]
-    unless_null $P1203, vivify_398
+    unless_null $P1203, vivify_402
     new $P1203, "Undef"
-  vivify_398:
+  vivify_402:
     $S1204 = $P1203."ast"()
     concat $P1205, $P1200, $S1204
     store_lex "$name", $P1205
@@ -20158,12 +20867,12 @@
     $P1206."name"($P1207)
 .annotate 'line', 430
     find_dynamic_lex $P1210, "$*SCOPE"
-    unless_null $P1210, vivify_399
+    unless_null $P1210, vivify_403
     get_hll_global $P1210, "$SCOPE"
-    unless_null $P1210, vivify_400
+    unless_null $P1210, vivify_404
     die "Contextual $*SCOPE not found"
-  vivify_400:
-  vivify_399:
+  vivify_404:
+  vivify_403:
     set $S1211, $P1210
     isne $I1212, $S1211, "our"
     if $I1212, if_1209
@@ -20173,17 +20882,17 @@
   if_1209:
 .annotate 'line', 431
     get_global $P1213, "@BLOCK"
-    unless_null $P1213, vivify_401
+    unless_null $P1213, vivify_405
     $P1213 = root_new ['parrot';'ResizablePMCArray']
-  vivify_401:
+  vivify_405:
     set $P1214, $P1213[0]
-    unless_null $P1214, vivify_402
+    unless_null $P1214, vivify_406
     $P1214 = root_new ['parrot';'ResizablePMCArray']
-  vivify_402:
+  vivify_406:
     set $P1215, $P1214[0]
-    unless_null $P1215, vivify_403
+    unless_null $P1215, vivify_407
     new $P1215, "Undef"
-  vivify_403:
+  vivify_407:
     get_hll_global $P1216, ["PAST"], "Var"
     find_lex $P1217, "$name"
     find_lex $P1218, "$past"
@@ -20191,13 +20900,13 @@
     $P1215."push"($P1219)
 .annotate 'line', 433
     get_global $P1220, "@BLOCK"
-    unless_null $P1220, vivify_404
+    unless_null $P1220, vivify_408
     $P1220 = root_new ['parrot';'ResizablePMCArray']
-  vivify_404:
+  vivify_408:
     set $P1221, $P1220[0]
-    unless_null $P1221, vivify_405
+    unless_null $P1221, vivify_409
     new $P1221, "Undef"
-  vivify_405:
+  vivify_409:
     find_lex $P1222, "$name"
     $P1221."symbol"($P1222, "lexical" :named("scope"))
 .annotate 'line', 434
@@ -20214,10 +20923,10 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "method_def"  :subid("75_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "method_def"  :subid("75_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_1233
 .annotate 'line', 441
-    .const 'Sub' $P1249 = "76_1274022903.56472" 
+    .const 'Sub' $P1249 = "76_1274564782.90592" 
     capture_lex $P1249
     new $P1232, 'ExceptionHandler'
     set_addr $P1232, control_1231
@@ -20229,13 +20938,13 @@
     new $P1234, "Undef"
     .lex "$past", $P1234
     find_lex $P1235, "$/"
-    unless_null $P1235, vivify_406
+    unless_null $P1235, vivify_410
     $P1235 = root_new ['parrot';'Hash']
-  vivify_406:
+  vivify_410:
     set $P1236, $P1235["blockoid"]
-    unless_null $P1236, vivify_407
+    unless_null $P1236, vivify_411
     new $P1236, "Undef"
-  vivify_407:
+  vivify_411:
     $P1237 = $P1236."ast"()
     store_lex "$past", $P1237
 .annotate 'line', 443
@@ -20246,13 +20955,13 @@
     $P1239."control"("return_pir")
 .annotate 'line', 445
     find_lex $P1240, "$past"
-    unless_null $P1240, vivify_408
+    unless_null $P1240, vivify_412
     $P1240 = root_new ['parrot';'ResizablePMCArray']
-  vivify_408:
+  vivify_412:
     set $P1241, $P1240[0]
-    unless_null $P1241, vivify_409
+    unless_null $P1241, vivify_413
     new $P1241, "Undef"
-  vivify_409:
+  vivify_413:
     get_hll_global $P1242, ["PAST"], "Op"
     $P1243 = $P1242."new"("    .lex \"self\", self" :named("inline"))
     $P1241."unshift"($P1243)
@@ -20261,15 +20970,15 @@
     $P1244."symbol"("self", "lexical" :named("scope"))
 .annotate 'line', 447
     find_lex $P1246, "$/"
-    unless_null $P1246, vivify_410
+    unless_null $P1246, vivify_414
     $P1246 = root_new ['parrot';'Hash']
-  vivify_410:
+  vivify_414:
     set $P1247, $P1246["deflongname"]
-    unless_null $P1247, vivify_411
+    unless_null $P1247, vivify_415
     new $P1247, "Undef"
-  vivify_411:
+  vivify_415:
     unless $P1247, if_1245_end
-    .const 'Sub' $P1249 = "76_1274022903.56472" 
+    .const 'Sub' $P1249 = "76_1274564782.90592" 
     capture_lex $P1249
     $P1249()
   if_1245_end:
@@ -20288,22 +20997,22 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block1248"  :anon :subid("76_1274022903.56472") :outer("75_1274022903.56472")
+.sub "_block1248"  :anon :subid("76_1274564782.90592") :outer("75_1274564782.90592")
 .annotate 'line', 448
     new $P1250, "Undef"
     .lex "$name", $P1250
     find_lex $P1251, "$/"
-    unless_null $P1251, vivify_412
+    unless_null $P1251, vivify_416
     $P1251 = root_new ['parrot';'Hash']
-  vivify_412:
+  vivify_416:
     set $P1252, $P1251["deflongname"]
-    unless_null $P1252, vivify_413
+    unless_null $P1252, vivify_417
     $P1252 = root_new ['parrot';'ResizablePMCArray']
-  vivify_413:
+  vivify_417:
     set $P1253, $P1252[0]
-    unless_null $P1253, vivify_414
+    unless_null $P1253, vivify_418
     new $P1253, "Undef"
-  vivify_414:
+  vivify_418:
     $P1254 = $P1253."ast"()
     set $S1255, $P1254
     new $P1256, 'String'
@@ -20319,10 +21028,10 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "signature"  :subid("77_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "signature"  :subid("77_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_1267
 .annotate 'line', 455
-    .const 'Sub' $P1278 = "78_1274022903.56472" 
+    .const 'Sub' $P1278 = "78_1274564782.90592" 
     capture_lex $P1278
     new $P1266, 'ExceptionHandler'
     set_addr $P1266, control_1265
@@ -20334,29 +21043,29 @@
     new $P1268, "Undef"
     .lex "$BLOCKINIT", $P1268
     get_global $P1269, "@BLOCK"
-    unless_null $P1269, vivify_415
+    unless_null $P1269, vivify_419
     $P1269 = root_new ['parrot';'ResizablePMCArray']
-  vivify_415:
+  vivify_419:
     set $P1270, $P1269[0]
-    unless_null $P1270, vivify_416
+    unless_null $P1270, vivify_420
     $P1270 = root_new ['parrot';'ResizablePMCArray']
-  vivify_416:
+  vivify_420:
     set $P1271, $P1270[0]
-    unless_null $P1271, vivify_417
+    unless_null $P1271, vivify_421
     new $P1271, "Undef"
-  vivify_417:
+  vivify_421:
     store_lex "$BLOCKINIT", $P1271
 .annotate 'line', 457
     find_lex $P1273, "$/"
-    unless_null $P1273, vivify_418
+    unless_null $P1273, vivify_422
     $P1273 = root_new ['parrot';'Hash']
-  vivify_418:
+  vivify_422:
     set $P1274, $P1273["parameter"]
-    unless_null $P1274, vivify_419
+    unless_null $P1274, vivify_423
     new $P1274, "Undef"
-  vivify_419:
+  vivify_423:
     defined $I1275, $P1274
-    unless $I1275, for_undef_420
+    unless $I1275, for_undef_424
     iter $P1272, $P1274
     new $P1285, 'ExceptionHandler'
     set_addr $P1285, loop1284_handler
@@ -20366,7 +21075,7 @@
     unless $P1272, loop1284_done
     shift $P1276, $P1272
   loop1284_redo:
-    .const 'Sub' $P1278 = "78_1274022903.56472" 
+    .const 'Sub' $P1278 = "78_1274564782.90592" 
     capture_lex $P1278
     $P1278($P1276)
   loop1284_next:
@@ -20379,7 +21088,7 @@
     eq $P1286, 66, loop1284_redo
   loop1284_done:
     pop_eh 
-  for_undef_420:
+  for_undef_424:
 .annotate 'line', 455
     .return ($P1272)
   control_1265:
@@ -20391,7 +21100,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block1277"  :anon :subid("78_1274022903.56472") :outer("77_1274022903.56472")
+.sub "_block1277"  :anon :subid("78_1274564782.90592") :outer("77_1274564782.90592")
     .param pmc param_1279
 .annotate 'line', 457
     .lex "$_", param_1279
@@ -20404,7 +21113,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "parameter"  :subid("79_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "parameter"  :subid("79_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_1291
 .annotate 'line', 460
     new $P1290, 'ExceptionHandler'
@@ -20421,34 +21130,34 @@
     .lex "$past", $P1293
 .annotate 'line', 461
     find_lex $P1294, "$/"
-    unless_null $P1294, vivify_421
+    unless_null $P1294, vivify_425
     $P1294 = root_new ['parrot';'Hash']
-  vivify_421:
+  vivify_425:
     set $P1295, $P1294["quant"]
-    unless_null $P1295, vivify_422
+    unless_null $P1295, vivify_426
     new $P1295, "Undef"
-  vivify_422:
+  vivify_426:
     store_lex "$quant", $P1295
     find_lex $P1296, "$past"
 .annotate 'line', 463
     find_lex $P1298, "$/"
-    unless_null $P1298, vivify_423
+    unless_null $P1298, vivify_427
     $P1298 = root_new ['parrot';'Hash']
-  vivify_423:
+  vivify_427:
     set $P1299, $P1298["named_param"]
-    unless_null $P1299, vivify_424
+    unless_null $P1299, vivify_428
     new $P1299, "Undef"
-  vivify_424:
+  vivify_428:
     if $P1299, if_1297
 .annotate 'line', 470
     find_lex $P1313, "$/"
-    unless_null $P1313, vivify_425
+    unless_null $P1313, vivify_429
     $P1313 = root_new ['parrot';'Hash']
-  vivify_425:
+  vivify_429:
     set $P1314, $P1313["param_var"]
-    unless_null $P1314, vivify_426
+    unless_null $P1314, vivify_430
     new $P1314, "Undef"
-  vivify_426:
+  vivify_430:
     $P1315 = $P1314."ast"()
     store_lex "$past", $P1315
 .annotate 'line', 471
@@ -20464,17 +21173,17 @@
 .annotate 'line', 476
     find_lex $P1331, "$past"
     find_lex $P1332, "$/"
-    unless_null $P1332, vivify_427
+    unless_null $P1332, vivify_431
     $P1332 = root_new ['parrot';'Hash']
-  vivify_427:
+  vivify_431:
     set $P1333, $P1332["param_var"]
-    unless_null $P1333, vivify_428
+    unless_null $P1333, vivify_432
     $P1333 = root_new ['parrot';'Hash']
-  vivify_428:
+  vivify_432:
     set $P1334, $P1333["sigil"]
-    unless_null $P1334, vivify_429
+    unless_null $P1334, vivify_433
     new $P1334, "Undef"
-  vivify_429:
+  vivify_433:
     $P1335 = "vivitype"($P1334)
     $P1331."viviself"($P1335)
   if_1327_end:
@@ -20487,17 +21196,17 @@
 .annotate 'line', 473
     find_lex $P1321, "$past"
     find_lex $P1322, "$/"
-    unless_null $P1322, vivify_430
+    unless_null $P1322, vivify_434
     $P1322 = root_new ['parrot';'Hash']
-  vivify_430:
+  vivify_434:
     set $P1323, $P1322["param_var"]
-    unless_null $P1323, vivify_431
+    unless_null $P1323, vivify_435
     $P1323 = root_new ['parrot';'Hash']
-  vivify_431:
+  vivify_435:
     set $P1324, $P1323["sigil"]
-    unless_null $P1324, vivify_432
+    unless_null $P1324, vivify_436
     new $P1324, "Undef"
-  vivify_432:
+  vivify_436:
     set $S1325, $P1324
     iseq $I1326, $S1325, "%"
     $P1321."named"($I1326)
@@ -20507,13 +21216,13 @@
   if_1297:
 .annotate 'line', 464
     find_lex $P1300, "$/"
-    unless_null $P1300, vivify_433
+    unless_null $P1300, vivify_437
     $P1300 = root_new ['parrot';'Hash']
-  vivify_433:
+  vivify_437:
     set $P1301, $P1300["named_param"]
-    unless_null $P1301, vivify_434
+    unless_null $P1301, vivify_438
     new $P1301, "Undef"
-  vivify_434:
+  vivify_438:
     $P1302 = $P1301."ast"()
     store_lex "$past", $P1302
 .annotate 'line', 465
@@ -20524,34 +21233,34 @@
 .annotate 'line', 466
     find_lex $P1307, "$past"
     find_lex $P1308, "$/"
-    unless_null $P1308, vivify_435
+    unless_null $P1308, vivify_439
     $P1308 = root_new ['parrot';'Hash']
-  vivify_435:
+  vivify_439:
     set $P1309, $P1308["named_param"]
-    unless_null $P1309, vivify_436
+    unless_null $P1309, vivify_440
     $P1309 = root_new ['parrot';'Hash']
-  vivify_436:
+  vivify_440:
     set $P1310, $P1309["param_var"]
-    unless_null $P1310, vivify_437
+    unless_null $P1310, vivify_441
     $P1310 = root_new ['parrot';'Hash']
-  vivify_437:
+  vivify_441:
     set $P1311, $P1310["sigil"]
-    unless_null $P1311, vivify_438
+    unless_null $P1311, vivify_442
     new $P1311, "Undef"
-  vivify_438:
+  vivify_442:
     $P1312 = "vivitype"($P1311)
     $P1307."viviself"($P1312)
   if_1303_end:
   if_1297_end:
 .annotate 'line', 479
     find_lex $P1337, "$/"
-    unless_null $P1337, vivify_439
+    unless_null $P1337, vivify_443
     $P1337 = root_new ['parrot';'Hash']
-  vivify_439:
+  vivify_443:
     set $P1338, $P1337["default_value"]
-    unless_null $P1338, vivify_440
+    unless_null $P1338, vivify_444
     new $P1338, "Undef"
-  vivify_440:
+  vivify_444:
     unless $P1338, if_1336_end
 .annotate 'line', 480
     find_lex $P1340, "$quant"
@@ -20576,21 +21285,21 @@
 .annotate 'line', 486
     find_lex $P1351, "$past"
     find_lex $P1352, "$/"
-    unless_null $P1352, vivify_441
+    unless_null $P1352, vivify_445
     $P1352 = root_new ['parrot';'Hash']
-  vivify_441:
+  vivify_445:
     set $P1353, $P1352["default_value"]
-    unless_null $P1353, vivify_442
+    unless_null $P1353, vivify_446
     $P1353 = root_new ['parrot';'ResizablePMCArray']
-  vivify_442:
+  vivify_446:
     set $P1354, $P1353[0]
-    unless_null $P1354, vivify_443
+    unless_null $P1354, vivify_447
     $P1354 = root_new ['parrot';'Hash']
-  vivify_443:
+  vivify_447:
     set $P1355, $P1354["EXPR"]
-    unless_null $P1355, vivify_444
+    unless_null $P1355, vivify_448
     new $P1355, "Undef"
-  vivify_444:
+  vivify_448:
     $P1356 = $P1355."ast"()
     $P1351."viviself"($P1356)
   if_1336_end:
@@ -20599,21 +21308,21 @@
     $P1359 = $P1358."viviself"()
     if $P1359, unless_1357_end
     get_global $P1360, "@BLOCK"
-    unless_null $P1360, vivify_445
+    unless_null $P1360, vivify_449
     $P1360 = root_new ['parrot';'ResizablePMCArray']
-  vivify_445:
+  vivify_449:
     set $P1361, $P1360[0]
-    unless_null $P1361, vivify_446
+    unless_null $P1361, vivify_450
     new $P1361, "Undef"
-  vivify_446:
+  vivify_450:
     get_global $P1362, "@BLOCK"
-    unless_null $P1362, vivify_447
+    unless_null $P1362, vivify_451
     $P1362 = root_new ['parrot';'ResizablePMCArray']
-  vivify_447:
+  vivify_451:
     set $P1363, $P1362[0]
-    unless_null $P1363, vivify_448
+    unless_null $P1363, vivify_452
     new $P1363, "Undef"
-  vivify_448:
+  vivify_452:
     $P1364 = $P1363."arity"()
     set $N1365, $P1364
     new $P1366, 'Float'
@@ -20636,7 +21345,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "param_var"  :subid("80_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "param_var"  :subid("80_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_1375
 .annotate 'line', 492
     new $P1374, 'ExceptionHandler'
@@ -20665,13 +21374,13 @@
     store_lex "$past", $P1384
 .annotate 'line', 496
     get_global $P1385, "@BLOCK"
-    unless_null $P1385, vivify_449
+    unless_null $P1385, vivify_453
     $P1385 = root_new ['parrot';'ResizablePMCArray']
-  vivify_449:
+  vivify_453:
     set $P1386, $P1385[0]
-    unless_null $P1386, vivify_450
+    unless_null $P1386, vivify_454
     new $P1386, "Undef"
-  vivify_450:
+  vivify_454:
     find_lex $P1387, "$name"
     $P1386."symbol"($P1387, "lexical" :named("scope"))
 .annotate 'line', 497
@@ -20689,7 +21398,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "named_param"  :subid("81_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "named_param"  :subid("81_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_1395
 .annotate 'line', 500
     new $P1394, 'ExceptionHandler'
@@ -20702,29 +21411,29 @@
     new $P1396, "Undef"
     .lex "$past", $P1396
     find_lex $P1397, "$/"
-    unless_null $P1397, vivify_451
+    unless_null $P1397, vivify_455
     $P1397 = root_new ['parrot';'Hash']
-  vivify_451:
+  vivify_455:
     set $P1398, $P1397["param_var"]
-    unless_null $P1398, vivify_452
+    unless_null $P1398, vivify_456
     new $P1398, "Undef"
-  vivify_452:
+  vivify_456:
     $P1399 = $P1398."ast"()
     store_lex "$past", $P1399
 .annotate 'line', 502
     find_lex $P1400, "$past"
     find_lex $P1401, "$/"
-    unless_null $P1401, vivify_453
+    unless_null $P1401, vivify_457
     $P1401 = root_new ['parrot';'Hash']
-  vivify_453:
+  vivify_457:
     set $P1402, $P1401["param_var"]
-    unless_null $P1402, vivify_454
+    unless_null $P1402, vivify_458
     $P1402 = root_new ['parrot';'Hash']
-  vivify_454:
+  vivify_458:
     set $P1403, $P1402["name"]
-    unless_null $P1403, vivify_455
+    unless_null $P1403, vivify_459
     new $P1403, "Undef"
-  vivify_455:
+  vivify_459:
     set $S1404, $P1403
     $P1400."named"($S1404)
 .annotate 'line', 503
@@ -20742,14 +21451,14 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "regex_declarator"  :subid("82_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "regex_declarator"  :subid("82_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_1412
     .param pmc param_1413 :optional
     .param int has_param_1413 :opt_flag
 .annotate 'line', 506
-    .const 'Sub' $P1483 = "84_1274022903.56472" 
+    .const 'Sub' $P1483 = "84_1274564782.90592" 
     capture_lex $P1483
-    .const 'Sub' $P1455 = "83_1274022903.56472" 
+    .const 'Sub' $P1455 = "83_1274564782.90592" 
     capture_lex $P1455
     new $P1411, 'ExceptionHandler'
     set_addr $P1411, control_1410
@@ -20757,10 +21466,10 @@
     push_eh $P1411
     .lex "self", self
     .lex "$/", param_1412
-    if has_param_1413, optparam_456
+    if has_param_1413, optparam_460
     new $P1414, "Undef"
     set param_1413, $P1414
-  optparam_456:
+  optparam_460:
     .lex "$key", param_1413
 .annotate 'line', 507
     $P1415 = root_new ['parrot';'ResizablePMCArray']
@@ -20778,13 +21487,13 @@
     store_lex "@MODIFIERS", $P1418
 .annotate 'line', 510
     find_lex $P1419, "$/"
-    unless_null $P1419, vivify_457
+    unless_null $P1419, vivify_461
     $P1419 = root_new ['parrot';'Hash']
-  vivify_457:
+  vivify_461:
     set $P1420, $P1419["deflongname"]
-    unless_null $P1420, vivify_458
+    unless_null $P1420, vivify_462
     new $P1420, "Undef"
-  vivify_458:
+  vivify_462:
     $P1421 = $P1420."ast"()
     set $S1422, $P1421
     new $P1423, 'String'
@@ -20793,13 +21502,13 @@
     find_lex $P1424, "$past"
 .annotate 'line', 512
     find_lex $P1426, "$/"
-    unless_null $P1426, vivify_459
+    unless_null $P1426, vivify_463
     $P1426 = root_new ['parrot';'Hash']
-  vivify_459:
+  vivify_463:
     set $P1427, $P1426["proto"]
-    unless_null $P1427, vivify_460
+    unless_null $P1427, vivify_464
     new $P1427, "Undef"
-  vivify_460:
+  vivify_464:
     if $P1427, if_1425
 .annotate 'line', 539
     find_lex $P1451, "$key"
@@ -20807,13 +21516,13 @@
     iseq $I1453, $S1452, "open"
     if $I1453, if_1450
 .annotate 'line', 552
-    .const 'Sub' $P1483 = "84_1274022903.56472" 
+    .const 'Sub' $P1483 = "84_1274564782.90592" 
     capture_lex $P1483
     $P1483()
     goto if_1450_end
   if_1450:
 .annotate 'line', 539
-    .const 'Sub' $P1455 = "83_1274022903.56472" 
+    .const 'Sub' $P1455 = "83_1274564782.90592" 
     capture_lex $P1455
     $P1455()
   if_1450_end:
@@ -20870,20 +21579,20 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block1482"  :anon :subid("84_1274022903.56472") :outer("82_1274022903.56472")
+.sub "_block1482"  :anon :subid("84_1274564782.90592") :outer("82_1274564782.90592")
 .annotate 'line', 553
     new $P1484, "Undef"
     .lex "$regex", $P1484
 .annotate 'line', 554
     get_hll_global $P1485, ["Regex";"P6Regex";"Actions"], "buildsub"
     find_lex $P1486, "$/"
-    unless_null $P1486, vivify_461
+    unless_null $P1486, vivify_465
     $P1486 = root_new ['parrot';'Hash']
-  vivify_461:
+  vivify_465:
     set $P1487, $P1486["p6regex"]
-    unless_null $P1487, vivify_462
+    unless_null $P1487, vivify_466
     new $P1487, "Undef"
-  vivify_462:
+  vivify_466:
     $P1488 = $P1487."ast"()
     get_global $P1489, "@BLOCK"
     $P1490 = $P1489."shift"()
@@ -20907,10 +21616,10 @@
 .annotate 'line', 563
     find_lex $P1500, "$regex"
     find_lex $P1501, "$past"
-    unless_null $P1501, vivify_463
+    unless_null $P1501, vivify_467
     $P1501 = root_new ['parrot';'Hash']
     store_lex "$past", $P1501
-  vivify_463:
+  vivify_467:
     set $P1501["sink"], $P1500
 .annotate 'line', 564
     find_lex $P1502, "@MODIFIERS"
@@ -20921,7 +21630,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block1454"  :anon :subid("83_1274022903.56472") :outer("82_1274022903.56472")
+.sub "_block1454"  :anon :subid("83_1274564782.90592") :outer("82_1274564782.90592")
 .annotate 'line', 540
     $P1456 = root_new ['parrot';'Hash']
     .lex "%h", $P1456
@@ -20929,52 +21638,52 @@
     find_lex $P1457, "%h"
 .annotate 'line', 541
     find_lex $P1459, "$/"
-    unless_null $P1459, vivify_464
+    unless_null $P1459, vivify_468
     $P1459 = root_new ['parrot';'Hash']
-  vivify_464:
+  vivify_468:
     set $P1460, $P1459["sym"]
-    unless_null $P1460, vivify_465
+    unless_null $P1460, vivify_469
     new $P1460, "Undef"
-  vivify_465:
+  vivify_469:
     set $S1461, $P1460
     iseq $I1462, $S1461, "token"
     unless $I1462, if_1458_end
     new $P1463, "Integer"
     assign $P1463, 1
     find_lex $P1464, "%h"
-    unless_null $P1464, vivify_466
+    unless_null $P1464, vivify_470
     $P1464 = root_new ['parrot';'Hash']
     store_lex "%h", $P1464
-  vivify_466:
+  vivify_470:
     set $P1464["r"], $P1463
   if_1458_end:
 .annotate 'line', 542
     find_lex $P1466, "$/"
-    unless_null $P1466, vivify_467
+    unless_null $P1466, vivify_471
     $P1466 = root_new ['parrot';'Hash']
-  vivify_467:
+  vivify_471:
     set $P1467, $P1466["sym"]
-    unless_null $P1467, vivify_468
+    unless_null $P1467, vivify_472
     new $P1467, "Undef"
-  vivify_468:
+  vivify_472:
     set $S1468, $P1467
     iseq $I1469, $S1468, "rule"
     unless $I1469, if_1465_end
     new $P1470, "Integer"
     assign $P1470, 1
     find_lex $P1471, "%h"
-    unless_null $P1471, vivify_469
+    unless_null $P1471, vivify_473
     $P1471 = root_new ['parrot';'Hash']
     store_lex "%h", $P1471
-  vivify_469:
+  vivify_473:
     set $P1471["r"], $P1470
     new $P1472, "Integer"
     assign $P1472, 1
     find_lex $P1473, "%h"
-    unless_null $P1473, vivify_470
+    unless_null $P1473, vivify_474
     $P1473 = root_new ['parrot';'Hash']
     store_lex "%h", $P1473
-  vivify_470:
+  vivify_474:
     set $P1473["s"], $P1472
   if_1465_end:
 .annotate 'line', 543
@@ -20988,23 +21697,23 @@
         
 .annotate 'line', 548
     get_global $P1476, "@BLOCK"
-    unless_null $P1476, vivify_471
+    unless_null $P1476, vivify_475
     $P1476 = root_new ['parrot';'ResizablePMCArray']
-  vivify_471:
+  vivify_475:
     set $P1477, $P1476[0]
-    unless_null $P1477, vivify_472
+    unless_null $P1477, vivify_476
     new $P1477, "Undef"
-  vivify_472:
+  vivify_476:
     $P1477."symbol"(unicode:"$\x{a2}", "lexical" :named("scope"))
 .annotate 'line', 549
     get_global $P1478, "@BLOCK"
-    unless_null $P1478, vivify_473
+    unless_null $P1478, vivify_477
     $P1478 = root_new ['parrot';'ResizablePMCArray']
-  vivify_473:
+  vivify_477:
     set $P1479, $P1478[0]
-    unless_null $P1479, vivify_474
+    unless_null $P1479, vivify_478
     new $P1479, "Undef"
-  vivify_474:
+  vivify_478:
     $P1479."symbol"("$/", "lexical" :named("scope"))
 .annotate 'line', 550
     new $P1480, "Exception"
@@ -21019,7 +21728,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "dotty"  :subid("85_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "dotty"  :subid("85_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_1511
 .annotate 'line', 570
     new $P1510, 'ExceptionHandler'
@@ -21032,13 +21741,13 @@
     new $P1512, "Undef"
     .lex "$past", $P1512
     find_lex $P1515, "$/"
-    unless_null $P1515, vivify_475
+    unless_null $P1515, vivify_479
     $P1515 = root_new ['parrot';'Hash']
-  vivify_475:
+  vivify_479:
     set $P1516, $P1515["args"]
-    unless_null $P1516, vivify_476
+    unless_null $P1516, vivify_480
     new $P1516, "Undef"
-  vivify_476:
+  vivify_480:
     if $P1516, if_1514
     get_hll_global $P1521, ["PAST"], "Op"
     find_lex $P1522, "$/"
@@ -21047,17 +21756,17 @@
     goto if_1514_end
   if_1514:
     find_lex $P1517, "$/"
-    unless_null $P1517, vivify_477
+    unless_null $P1517, vivify_481
     $P1517 = root_new ['parrot';'Hash']
-  vivify_477:
+  vivify_481:
     set $P1518, $P1517["args"]
-    unless_null $P1518, vivify_478
+    unless_null $P1518, vivify_482
     $P1518 = root_new ['parrot';'ResizablePMCArray']
-  vivify_478:
+  vivify_482:
     set $P1519, $P1518[0]
-    unless_null $P1519, vivify_479
+    unless_null $P1519, vivify_483
     new $P1519, "Undef"
-  vivify_479:
+  vivify_483:
     $P1520 = $P1519."ast"()
     set $P1513, $P1520
   if_1514_end:
@@ -21065,35 +21774,35 @@
 .annotate 'line', 572
     find_lex $P1524, "$past"
     find_lex $P1527, "$/"
-    unless_null $P1527, vivify_480
+    unless_null $P1527, vivify_484
     $P1527 = root_new ['parrot';'Hash']
-  vivify_480:
+  vivify_484:
     set $P1528, $P1527["quote"]
-    unless_null $P1528, vivify_481
+    unless_null $P1528, vivify_485
     new $P1528, "Undef"
-  vivify_481:
+  vivify_485:
     if $P1528, if_1526
     find_lex $P1532, "$/"
-    unless_null $P1532, vivify_482
+    unless_null $P1532, vivify_486
     $P1532 = root_new ['parrot';'Hash']
-  vivify_482:
+  vivify_486:
     set $P1533, $P1532["longname"]
-    unless_null $P1533, vivify_483
+    unless_null $P1533, vivify_487
     new $P1533, "Undef"
-  vivify_483:
+  vivify_487:
     set $S1534, $P1533
     new $P1525, 'String'
     set $P1525, $S1534
     goto if_1526_end
   if_1526:
     find_lex $P1529, "$/"
-    unless_null $P1529, vivify_484
+    unless_null $P1529, vivify_488
     $P1529 = root_new ['parrot';'Hash']
-  vivify_484:
+  vivify_488:
     set $P1530, $P1529["quote"]
-    unless_null $P1530, vivify_485
+    unless_null $P1530, vivify_489
     new $P1530, "Undef"
-  vivify_485:
+  vivify_489:
     $P1531 = $P1530."ast"()
     set $P1525, $P1531
   if_1526_end:
@@ -21116,7 +21825,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "term:sym<self>"  :subid("86_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "term:sym<self>"  :subid("86_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_1543
 .annotate 'line', 579
     new $P1542, 'ExceptionHandler'
@@ -21141,7 +21850,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "term:sym<identifier>"  :subid("87_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "term:sym<identifier>"  :subid("87_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_1552
 .annotate 'line', 583
     new $P1551, 'ExceptionHandler'
@@ -21154,25 +21863,25 @@
     new $P1553, "Undef"
     .lex "$past", $P1553
     find_lex $P1554, "$/"
-    unless_null $P1554, vivify_486
+    unless_null $P1554, vivify_490
     $P1554 = root_new ['parrot';'Hash']
-  vivify_486:
+  vivify_490:
     set $P1555, $P1554["args"]
-    unless_null $P1555, vivify_487
+    unless_null $P1555, vivify_491
     new $P1555, "Undef"
-  vivify_487:
+  vivify_491:
     $P1556 = $P1555."ast"()
     store_lex "$past", $P1556
 .annotate 'line', 585
     find_lex $P1557, "$past"
     find_lex $P1558, "$/"
-    unless_null $P1558, vivify_488
+    unless_null $P1558, vivify_492
     $P1558 = root_new ['parrot';'Hash']
-  vivify_488:
+  vivify_492:
     set $P1559, $P1558["identifier"]
-    unless_null $P1559, vivify_489
+    unless_null $P1559, vivify_493
     new $P1559, "Undef"
-  vivify_489:
+  vivify_493:
     set $S1560, $P1559
     $P1557."name"($S1560)
 .annotate 'line', 586
@@ -21190,7 +21899,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "term:sym<name>"  :subid("88_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "term:sym<name>"  :subid("88_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_1568
 .annotate 'line', 589
     new $P1567, 'ExceptionHandler'
@@ -21213,17 +21922,17 @@
     .lex "$past", $P1572
 .annotate 'line', 590
     find_lex $P1573, "$/"
-    unless_null $P1573, vivify_490
+    unless_null $P1573, vivify_494
     $P1573 = root_new ['parrot';'Hash']
-  vivify_490:
+  vivify_494:
     set $P1574, $P1573["name"]
-    unless_null $P1574, vivify_491
+    unless_null $P1574, vivify_495
     $P1574 = root_new ['parrot';'Hash']
-  vivify_491:
+  vivify_495:
     set $P1575, $P1574["identifier"]
-    unless_null $P1575, vivify_492
+    unless_null $P1575, vivify_496
     new $P1575, "Undef"
-  vivify_492:
+  vivify_496:
     clone $P1576, $P1575
     store_lex "@ns", $P1576
 .annotate 'line', 591
@@ -21237,13 +21946,13 @@
     goto if_1581_end
   if_1581:
     find_lex $P1583, "@ns"
-    unless_null $P1583, vivify_493
+    unless_null $P1583, vivify_497
     $P1583 = root_new ['parrot';'ResizablePMCArray']
-  vivify_493:
+  vivify_497:
     set $P1584, $P1583[0]
-    unless_null $P1584, vivify_494
+    unless_null $P1584, vivify_498
     new $P1584, "Undef"
-  vivify_494:
+  vivify_498:
     set $S1585, $P1584
     iseq $I1586, $S1585, "GLOBAL"
     new $P1580, 'Integer'
@@ -21265,27 +21974,27 @@
     store_lex "$past", $P1593
 .annotate 'line', 596
     find_lex $P1595, "$/"
-    unless_null $P1595, vivify_495
+    unless_null $P1595, vivify_499
     $P1595 = root_new ['parrot';'Hash']
-  vivify_495:
+  vivify_499:
     set $P1596, $P1595["args"]
-    unless_null $P1596, vivify_496
+    unless_null $P1596, vivify_500
     new $P1596, "Undef"
-  vivify_496:
+  vivify_500:
     unless $P1596, if_1594_end
 .annotate 'line', 597
     find_lex $P1597, "$/"
-    unless_null $P1597, vivify_497
+    unless_null $P1597, vivify_501
     $P1597 = root_new ['parrot';'Hash']
-  vivify_497:
+  vivify_501:
     set $P1598, $P1597["args"]
-    unless_null $P1598, vivify_498
+    unless_null $P1598, vivify_502
     $P1598 = root_new ['parrot';'ResizablePMCArray']
-  vivify_498:
+  vivify_502:
     set $P1599, $P1598[0]
-    unless_null $P1599, vivify_499
+    unless_null $P1599, vivify_503
     new $P1599, "Undef"
-  vivify_499:
+  vivify_503:
     $P1600 = $P1599."ast"()
     store_lex "$past", $P1600
 .annotate 'line', 598
@@ -21308,7 +22017,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "term:sym<pir::op>"  :subid("89_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "term:sym<pir::op>"  :subid("89_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_1610
 .annotate 'line', 603
     new $P1609, 'ExceptionHandler'
@@ -21325,13 +22034,13 @@
     .lex "$pirop", $P1612
 .annotate 'line', 604
     find_lex $P1615, "$/"
-    unless_null $P1615, vivify_500
+    unless_null $P1615, vivify_504
     $P1615 = root_new ['parrot';'Hash']
-  vivify_500:
+  vivify_504:
     set $P1616, $P1615["args"]
-    unless_null $P1616, vivify_501
+    unless_null $P1616, vivify_505
     new $P1616, "Undef"
-  vivify_501:
+  vivify_505:
     if $P1616, if_1614
     get_hll_global $P1621, ["PAST"], "Op"
     find_lex $P1622, "$/"
@@ -21340,30 +22049,30 @@
     goto if_1614_end
   if_1614:
     find_lex $P1617, "$/"
-    unless_null $P1617, vivify_502
+    unless_null $P1617, vivify_506
     $P1617 = root_new ['parrot';'Hash']
-  vivify_502:
+  vivify_506:
     set $P1618, $P1617["args"]
-    unless_null $P1618, vivify_503
+    unless_null $P1618, vivify_507
     $P1618 = root_new ['parrot';'ResizablePMCArray']
-  vivify_503:
+  vivify_507:
     set $P1619, $P1618[0]
-    unless_null $P1619, vivify_504
+    unless_null $P1619, vivify_508
     new $P1619, "Undef"
-  vivify_504:
+  vivify_508:
     $P1620 = $P1619."ast"()
     set $P1613, $P1620
   if_1614_end:
     store_lex "$past", $P1613
 .annotate 'line', 605
     find_lex $P1624, "$/"
-    unless_null $P1624, vivify_505
+    unless_null $P1624, vivify_509
     $P1624 = root_new ['parrot';'Hash']
-  vivify_505:
+  vivify_509:
     set $P1625, $P1624["op"]
-    unless_null $P1625, vivify_506
+    unless_null $P1625, vivify_510
     new $P1625, "Undef"
-  vivify_506:
+  vivify_510:
     set $S1626, $P1625
     new $P1627, 'String'
     set $P1627, $S1626
@@ -21399,7 +22108,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "args"  :subid("90_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "args"  :subid("90_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_1639
 .annotate 'line', 618
     new $P1638, 'ExceptionHandler'
@@ -21410,13 +22119,13 @@
     .lex "$/", param_1639
     find_lex $P1640, "$/"
     find_lex $P1641, "$/"
-    unless_null $P1641, vivify_507
+    unless_null $P1641, vivify_511
     $P1641 = root_new ['parrot';'Hash']
-  vivify_507:
+  vivify_511:
     set $P1642, $P1641["arglist"]
-    unless_null $P1642, vivify_508
+    unless_null $P1642, vivify_512
     new $P1642, "Undef"
-  vivify_508:
+  vivify_512:
     $P1643 = $P1642."ast"()
     $P1644 = $P1640."!make"($P1643)
     .return ($P1644)
@@ -21429,10 +22138,10 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "arglist"  :subid("91_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "arglist"  :subid("91_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_1649
 .annotate 'line', 620
-    .const 'Sub' $P1660 = "92_1274022903.56472" 
+    .const 'Sub' $P1660 = "92_1274564782.90592" 
     capture_lex $P1660
     new $P1648, 'ExceptionHandler'
     set_addr $P1648, control_1647
@@ -21456,15 +22165,15 @@
     store_lex "$past", $P1655
 .annotate 'line', 622
     find_lex $P1657, "$/"
-    unless_null $P1657, vivify_509
+    unless_null $P1657, vivify_513
     $P1657 = root_new ['parrot';'Hash']
-  vivify_509:
+  vivify_513:
     set $P1658, $P1657["EXPR"]
-    unless_null $P1658, vivify_510
+    unless_null $P1658, vivify_514
     new $P1658, "Undef"
-  vivify_510:
+  vivify_514:
     unless $P1658, if_1656_end
-    .const 'Sub' $P1660 = "92_1274022903.56472" 
+    .const 'Sub' $P1660 = "92_1274564782.90592" 
     capture_lex $P1660
     $P1660()
   if_1656_end:
@@ -21496,13 +22205,13 @@
     find_lex $P1703, "$i"
     set $I1704, $P1703
     find_lex $P1705, "$past"
-    unless_null $P1705, vivify_514
+    unless_null $P1705, vivify_518
     $P1705 = root_new ['parrot';'ResizablePMCArray']
-  vivify_514:
+  vivify_518:
     set $P1706, $P1705[$I1704]
-    unless_null $P1706, vivify_515
+    unless_null $P1706, vivify_519
     new $P1706, "Undef"
-  vivify_515:
+  vivify_519:
     $S1707 = $P1706."name"()
     iseq $I1708, $S1707, "&prefix:<|>"
     unless $I1708, if_1702_end
@@ -21510,48 +22219,48 @@
     find_lex $P1709, "$i"
     set $I1710, $P1709
     find_lex $P1711, "$past"
-    unless_null $P1711, vivify_516
+    unless_null $P1711, vivify_520
     $P1711 = root_new ['parrot';'ResizablePMCArray']
-  vivify_516:
+  vivify_520:
     set $P1712, $P1711[$I1710]
-    unless_null $P1712, vivify_517
+    unless_null $P1712, vivify_521
     $P1712 = root_new ['parrot';'ResizablePMCArray']
-  vivify_517:
+  vivify_521:
     set $P1713, $P1712[0]
-    unless_null $P1713, vivify_518
+    unless_null $P1713, vivify_522
     new $P1713, "Undef"
-  vivify_518:
+  vivify_522:
     find_lex $P1714, "$i"
     set $I1715, $P1714
     find_lex $P1716, "$past"
-    unless_null $P1716, vivify_519
+    unless_null $P1716, vivify_523
     $P1716 = root_new ['parrot';'ResizablePMCArray']
     store_lex "$past", $P1716
-  vivify_519:
+  vivify_523:
     set $P1716[$I1715], $P1713
 .annotate 'line', 634
     find_lex $P1717, "$i"
     set $I1718, $P1717
     find_lex $P1719, "$past"
-    unless_null $P1719, vivify_520
+    unless_null $P1719, vivify_524
     $P1719 = root_new ['parrot';'ResizablePMCArray']
-  vivify_520:
+  vivify_524:
     set $P1720, $P1719[$I1718]
-    unless_null $P1720, vivify_521
+    unless_null $P1720, vivify_525
     new $P1720, "Undef"
-  vivify_521:
+  vivify_525:
     $P1720."flat"(1)
 .annotate 'line', 635
     find_lex $P1724, "$i"
     set $I1725, $P1724
     find_lex $P1726, "$past"
-    unless_null $P1726, vivify_522
+    unless_null $P1726, vivify_526
     $P1726 = root_new ['parrot';'ResizablePMCArray']
-  vivify_522:
+  vivify_526:
     set $P1727, $P1726[$I1725]
-    unless_null $P1727, vivify_523
+    unless_null $P1727, vivify_527
     new $P1727, "Undef"
-  vivify_523:
+  vivify_527:
     get_hll_global $P1728, ["PAST"], "Val"
     $P1729 = $P1727."isa"($P1728)
     if $P1729, if_1723
@@ -21562,13 +22271,13 @@
     find_lex $P1730, "$i"
     set $I1731, $P1730
     find_lex $P1732, "$past"
-    unless_null $P1732, vivify_524
+    unless_null $P1732, vivify_528
     $P1732 = root_new ['parrot';'ResizablePMCArray']
-  vivify_524:
+  vivify_528:
     set $P1733, $P1732[$I1731]
-    unless_null $P1733, vivify_525
+    unless_null $P1733, vivify_529
     new $P1733, "Undef"
-  vivify_525:
+  vivify_529:
     $S1734 = $P1733."name"()
     substr $S1735, $S1734, 0, 1
     iseq $I1736, $S1735, "%"
@@ -21580,13 +22289,13 @@
     find_lex $P1737, "$i"
     set $I1738, $P1737
     find_lex $P1739, "$past"
-    unless_null $P1739, vivify_526
+    unless_null $P1739, vivify_530
     $P1739 = root_new ['parrot';'ResizablePMCArray']
-  vivify_526:
+  vivify_530:
     set $P1740, $P1739[$I1738]
-    unless_null $P1740, vivify_527
+    unless_null $P1740, vivify_531
     new $P1740, "Undef"
-  vivify_527:
+  vivify_531:
     $P1740."named"(1)
   if_1721_end:
   if_1702_end:
@@ -21620,21 +22329,21 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block1659"  :anon :subid("92_1274022903.56472") :outer("91_1274022903.56472")
+.sub "_block1659"  :anon :subid("92_1274564782.90592") :outer("91_1274564782.90592")
 .annotate 'line', 622
-    .const 'Sub' $P1681 = "93_1274022903.56472" 
+    .const 'Sub' $P1681 = "93_1274564782.90592" 
     capture_lex $P1681
 .annotate 'line', 623
     new $P1661, "Undef"
     .lex "$expr", $P1661
     find_lex $P1662, "$/"
-    unless_null $P1662, vivify_511
+    unless_null $P1662, vivify_515
     $P1662 = root_new ['parrot';'Hash']
-  vivify_511:
+  vivify_515:
     set $P1663, $P1662["EXPR"]
-    unless_null $P1663, vivify_512
+    unless_null $P1663, vivify_516
     new $P1663, "Undef"
-  vivify_512:
+  vivify_516:
     $P1664 = $P1663."ast"()
     store_lex "$expr", $P1664
 .annotate 'line', 624
@@ -21665,7 +22374,7 @@
     find_lex $P1676, "$expr"
     $P1677 = $P1676."list"()
     defined $I1678, $P1677
-    unless $I1678, for_undef_513
+    unless $I1678, for_undef_517
     iter $P1675, $P1677
     new $P1687, 'ExceptionHandler'
     set_addr $P1687, loop1686_handler
@@ -21675,7 +22384,7 @@
     unless $P1675, loop1686_done
     shift $P1679, $P1675
   loop1686_redo:
-    .const 'Sub' $P1681 = "93_1274022903.56472" 
+    .const 'Sub' $P1681 = "93_1274564782.90592" 
     capture_lex $P1681
     $P1681($P1679)
   loop1686_next:
@@ -21688,7 +22397,7 @@
     eq $P1688, 66, loop1686_redo
   loop1686_done:
     pop_eh 
-  for_undef_513:
+  for_undef_517:
 .annotate 'line', 624
     set $P1665, $P1675
   if_1666_end:
@@ -21698,7 +22407,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block1680"  :anon :subid("93_1274022903.56472") :outer("92_1274022903.56472")
+.sub "_block1680"  :anon :subid("93_1274564782.90592") :outer("92_1274564782.90592")
     .param pmc param_1682
 .annotate 'line', 625
     .lex "$_", param_1682
@@ -21710,7 +22419,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "term:sym<value>"  :subid("94_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "term:sym<value>"  :subid("94_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_1753
 .annotate 'line', 646
     new $P1752, 'ExceptionHandler'
@@ -21721,13 +22430,13 @@
     .lex "$/", param_1753
     find_lex $P1754, "$/"
     find_lex $P1755, "$/"
-    unless_null $P1755, vivify_528
+    unless_null $P1755, vivify_532
     $P1755 = root_new ['parrot';'Hash']
-  vivify_528:
+  vivify_532:
     set $P1756, $P1755["value"]
-    unless_null $P1756, vivify_529
+    unless_null $P1756, vivify_533
     new $P1756, "Undef"
-  vivify_529:
+  vivify_533:
     $P1757 = $P1756."ast"()
     $P1758 = $P1754."!make"($P1757)
     .return ($P1758)
@@ -21740,7 +22449,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "circumfix:sym<( )>"  :subid("95_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "circumfix:sym<( )>"  :subid("95_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_1763
 .annotate 'line', 648
     new $P1762, 'ExceptionHandler'
@@ -21753,13 +22462,13 @@
     find_lex $P1764, "$/"
 .annotate 'line', 650
     find_lex $P1767, "$/"
-    unless_null $P1767, vivify_530
+    unless_null $P1767, vivify_534
     $P1767 = root_new ['parrot';'Hash']
-  vivify_530:
+  vivify_534:
     set $P1768, $P1767["EXPR"]
-    unless_null $P1768, vivify_531
+    unless_null $P1768, vivify_535
     new $P1768, "Undef"
-  vivify_531:
+  vivify_535:
     if $P1768, if_1766
 .annotate 'line', 651
     get_hll_global $P1773, ["PAST"], "Op"
@@ -21770,17 +22479,17 @@
     goto if_1766_end
   if_1766:
     find_lex $P1769, "$/"
-    unless_null $P1769, vivify_532
+    unless_null $P1769, vivify_536
     $P1769 = root_new ['parrot';'Hash']
-  vivify_532:
+  vivify_536:
     set $P1770, $P1769["EXPR"]
-    unless_null $P1770, vivify_533
+    unless_null $P1770, vivify_537
     $P1770 = root_new ['parrot';'ResizablePMCArray']
-  vivify_533:
+  vivify_537:
     set $P1771, $P1770[0]
-    unless_null $P1771, vivify_534
+    unless_null $P1771, vivify_538
     new $P1771, "Undef"
-  vivify_534:
+  vivify_538:
     $P1772 = $P1771."ast"()
     set $P1765, $P1772
   if_1766_end:
@@ -21796,7 +22505,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "circumfix:sym<[ ]>"  :subid("96_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "circumfix:sym<[ ]>"  :subid("96_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_1781
 .annotate 'line', 654
     new $P1780, 'ExceptionHandler'
@@ -21812,13 +22521,13 @@
     find_lex $P1783, "$past"
 .annotate 'line', 656
     find_lex $P1785, "$/"
-    unless_null $P1785, vivify_535
+    unless_null $P1785, vivify_539
     $P1785 = root_new ['parrot';'Hash']
-  vivify_535:
+  vivify_539:
     set $P1786, $P1785["EXPR"]
-    unless_null $P1786, vivify_536
+    unless_null $P1786, vivify_540
     new $P1786, "Undef"
-  vivify_536:
+  vivify_540:
     if $P1786, if_1784
 .annotate 'line', 663
     get_hll_global $P1798, ["PAST"], "Op"
@@ -21829,17 +22538,17 @@
   if_1784:
 .annotate 'line', 657
     find_lex $P1787, "$/"
-    unless_null $P1787, vivify_537
+    unless_null $P1787, vivify_541
     $P1787 = root_new ['parrot';'Hash']
-  vivify_537:
+  vivify_541:
     set $P1788, $P1787["EXPR"]
-    unless_null $P1788, vivify_538
+    unless_null $P1788, vivify_542
     $P1788 = root_new ['parrot';'ResizablePMCArray']
-  vivify_538:
+  vivify_542:
     set $P1789, $P1788[0]
-    unless_null $P1789, vivify_539
+    unless_null $P1789, vivify_543
     new $P1789, "Undef"
-  vivify_539:
+  vivify_543:
     $P1790 = $P1789."ast"()
     store_lex "$past", $P1790
 .annotate 'line', 658
@@ -21872,7 +22581,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "circumfix:sym<ang>"  :subid("97_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "circumfix:sym<ang>"  :subid("97_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_1808
 .annotate 'line', 669
     new $P1807, 'ExceptionHandler'
@@ -21883,13 +22592,13 @@
     .lex "$/", param_1808
     find_lex $P1809, "$/"
     find_lex $P1810, "$/"
-    unless_null $P1810, vivify_540
+    unless_null $P1810, vivify_544
     $P1810 = root_new ['parrot';'Hash']
-  vivify_540:
+  vivify_544:
     set $P1811, $P1810["quote_EXPR"]
-    unless_null $P1811, vivify_541
+    unless_null $P1811, vivify_545
     new $P1811, "Undef"
-  vivify_541:
+  vivify_545:
     $P1812 = $P1811."ast"()
     $P1813 = $P1809."!make"($P1812)
     .return ($P1813)
@@ -21902,7 +22611,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub unicode:"circumfix:sym<\x{ab} \x{bb}>"  :subid("98_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub unicode:"circumfix:sym<\x{ab} \x{bb}>"  :subid("98_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_1818
 .annotate 'line', 670
     new $P1817, 'ExceptionHandler'
@@ -21913,13 +22622,13 @@
     .lex "$/", param_1818
     find_lex $P1819, "$/"
     find_lex $P1820, "$/"
-    unless_null $P1820, vivify_542
+    unless_null $P1820, vivify_546
     $P1820 = root_new ['parrot';'Hash']
-  vivify_542:
+  vivify_546:
     set $P1821, $P1820["quote_EXPR"]
-    unless_null $P1821, vivify_543
+    unless_null $P1821, vivify_547
     new $P1821, "Undef"
-  vivify_543:
+  vivify_547:
     $P1822 = $P1821."ast"()
     $P1823 = $P1819."!make"($P1822)
     .return ($P1823)
@@ -21932,7 +22641,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "circumfix:sym<{ }>"  :subid("99_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "circumfix:sym<{ }>"  :subid("99_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_1828
 .annotate 'line', 672
     new $P1827, 'ExceptionHandler'
@@ -21945,25 +22654,25 @@
     new $P1829, "Undef"
     .lex "$past", $P1829
     find_lex $P1832, "$/"
-    unless_null $P1832, vivify_544
+    unless_null $P1832, vivify_548
     $P1832 = root_new ['parrot';'Hash']
-  vivify_544:
+  vivify_548:
     set $P1833, $P1832["pblock"]
-    unless_null $P1833, vivify_545
+    unless_null $P1833, vivify_549
     $P1833 = root_new ['parrot';'Hash']
-  vivify_545:
+  vivify_549:
     set $P1834, $P1833["blockoid"]
-    unless_null $P1834, vivify_546
+    unless_null $P1834, vivify_550
     $P1834 = root_new ['parrot';'Hash']
-  vivify_546:
+  vivify_550:
     set $P1835, $P1834["statementlist"]
-    unless_null $P1835, vivify_547
+    unless_null $P1835, vivify_551
     $P1835 = root_new ['parrot';'Hash']
-  vivify_547:
+  vivify_551:
     set $P1836, $P1835["statement"]
-    unless_null $P1836, vivify_548
+    unless_null $P1836, vivify_552
     new $P1836, "Undef"
-  vivify_548:
+  vivify_552:
     set $N1837, $P1836
     isgt $I1838, $N1837, 0.0
     if $I1838, if_1831
@@ -21975,13 +22684,13 @@
   if_1831:
 .annotate 'line', 674
     find_lex $P1839, "$/"
-    unless_null $P1839, vivify_549
+    unless_null $P1839, vivify_553
     $P1839 = root_new ['parrot';'Hash']
-  vivify_549:
+  vivify_553:
     set $P1840, $P1839["pblock"]
-    unless_null $P1840, vivify_550
+    unless_null $P1840, vivify_554
     new $P1840, "Undef"
-  vivify_550:
+  vivify_554:
     $P1841 = $P1840."ast"()
     set $P1830, $P1841
   if_1831_end:
@@ -21990,10 +22699,10 @@
     new $P1843, "Integer"
     assign $P1843, 1
     find_lex $P1844, "$past"
-    unless_null $P1844, vivify_551
+    unless_null $P1844, vivify_555
     $P1844 = root_new ['parrot';'Hash']
     store_lex "$past", $P1844
-  vivify_551:
+  vivify_555:
     set $P1844["bareblock"], $P1843
 .annotate 'line', 677
     find_lex $P1845, "$/"
@@ -22010,7 +22719,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "circumfix:sym<sigil>"  :subid("100_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "circumfix:sym<sigil>"  :subid("100_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_1852
 .annotate 'line', 680
     new $P1851, 'ExceptionHandler'
@@ -22023,25 +22732,25 @@
     new $P1853, "Undef"
     .lex "$name", $P1853
     find_lex $P1856, "$/"
-    unless_null $P1856, vivify_552
+    unless_null $P1856, vivify_556
     $P1856 = root_new ['parrot';'Hash']
-  vivify_552:
+  vivify_556:
     set $P1857, $P1856["sigil"]
-    unless_null $P1857, vivify_553
+    unless_null $P1857, vivify_557
     new $P1857, "Undef"
-  vivify_553:
+  vivify_557:
     set $S1858, $P1857
     iseq $I1859, $S1858, "@"
     if $I1859, if_1855
 .annotate 'line', 682
     find_lex $P1863, "$/"
-    unless_null $P1863, vivify_554
+    unless_null $P1863, vivify_558
     $P1863 = root_new ['parrot';'Hash']
-  vivify_554:
+  vivify_558:
     set $P1864, $P1863["sigil"]
-    unless_null $P1864, vivify_555
+    unless_null $P1864, vivify_559
     new $P1864, "Undef"
-  vivify_555:
+  vivify_559:
     set $S1865, $P1864
     iseq $I1866, $S1865, "%"
     if $I1866, if_1862
@@ -22068,13 +22777,13 @@
     get_hll_global $P1870, ["PAST"], "Op"
     find_lex $P1871, "$name"
     find_lex $P1872, "$/"
-    unless_null $P1872, vivify_556
+    unless_null $P1872, vivify_560
     $P1872 = root_new ['parrot';'Hash']
-  vivify_556:
+  vivify_560:
     set $P1873, $P1872["semilist"]
-    unless_null $P1873, vivify_557
+    unless_null $P1873, vivify_561
     new $P1873, "Undef"
-  vivify_557:
+  vivify_561:
     $P1874 = $P1873."ast"()
     $P1875 = $P1870."new"($P1874, "callmethod" :named("pasttype"), $P1871 :named("name"))
     $P1876 = $P1869."!make"($P1875)
@@ -22089,7 +22798,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "semilist"  :subid("101_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "semilist"  :subid("101_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_1881
 .annotate 'line', 687
     new $P1880, 'ExceptionHandler'
@@ -22100,13 +22809,13 @@
     .lex "$/", param_1881
     find_lex $P1882, "$/"
     find_lex $P1883, "$/"
-    unless_null $P1883, vivify_558
+    unless_null $P1883, vivify_562
     $P1883 = root_new ['parrot';'Hash']
-  vivify_558:
+  vivify_562:
     set $P1884, $P1883["statement"]
-    unless_null $P1884, vivify_559
+    unless_null $P1884, vivify_563
     new $P1884, "Undef"
-  vivify_559:
+  vivify_563:
     $P1885 = $P1884."ast"()
     $P1886 = $P1882."!make"($P1885)
     .return ($P1886)
@@ -22119,7 +22828,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "postcircumfix:sym<[ ]>"  :subid("102_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "postcircumfix:sym<[ ]>"  :subid("102_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_1891
 .annotate 'line', 689
     new $P1890, 'ExceptionHandler'
@@ -22132,13 +22841,13 @@
     find_lex $P1892, "$/"
     get_hll_global $P1893, ["PAST"], "Var"
     find_lex $P1894, "$/"
-    unless_null $P1894, vivify_560
+    unless_null $P1894, vivify_564
     $P1894 = root_new ['parrot';'Hash']
-  vivify_560:
+  vivify_564:
     set $P1895, $P1894["EXPR"]
-    unless_null $P1895, vivify_561
+    unless_null $P1895, vivify_565
     new $P1895, "Undef"
-  vivify_561:
+  vivify_565:
     $P1896 = $P1895."ast"()
 .annotate 'line', 692
     $P1897 = "vivitype"("@")
@@ -22156,7 +22865,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "postcircumfix:sym<{ }>"  :subid("103_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "postcircumfix:sym<{ }>"  :subid("103_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_1904
 .annotate 'line', 695
     new $P1903, 'ExceptionHandler'
@@ -22169,13 +22878,13 @@
     find_lex $P1905, "$/"
     get_hll_global $P1906, ["PAST"], "Var"
     find_lex $P1907, "$/"
-    unless_null $P1907, vivify_562
+    unless_null $P1907, vivify_566
     $P1907 = root_new ['parrot';'Hash']
-  vivify_562:
+  vivify_566:
     set $P1908, $P1907["EXPR"]
-    unless_null $P1908, vivify_563
+    unless_null $P1908, vivify_567
     new $P1908, "Undef"
-  vivify_563:
+  vivify_567:
     $P1909 = $P1908."ast"()
 .annotate 'line', 698
     $P1910 = "vivitype"("%")
@@ -22193,7 +22902,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "postcircumfix:sym<ang>"  :subid("104_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "postcircumfix:sym<ang>"  :subid("104_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_1917
 .annotate 'line', 701
     new $P1916, 'ExceptionHandler'
@@ -22206,13 +22915,13 @@
     find_lex $P1918, "$/"
     get_hll_global $P1919, ["PAST"], "Var"
     find_lex $P1920, "$/"
-    unless_null $P1920, vivify_564
+    unless_null $P1920, vivify_568
     $P1920 = root_new ['parrot';'Hash']
-  vivify_564:
+  vivify_568:
     set $P1921, $P1920["quote_EXPR"]
-    unless_null $P1921, vivify_565
+    unless_null $P1921, vivify_569
     new $P1921, "Undef"
-  vivify_565:
+  vivify_569:
     $P1922 = $P1921."ast"()
 .annotate 'line', 704
     $P1923 = "vivitype"("%")
@@ -22230,7 +22939,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "postcircumfix:sym<( )>"  :subid("105_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "postcircumfix:sym<( )>"  :subid("105_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_1930
 .annotate 'line', 707
     new $P1929, 'ExceptionHandler'
@@ -22242,13 +22951,13 @@
 .annotate 'line', 708
     find_lex $P1931, "$/"
     find_lex $P1932, "$/"
-    unless_null $P1932, vivify_566
+    unless_null $P1932, vivify_570
     $P1932 = root_new ['parrot';'Hash']
-  vivify_566:
+  vivify_570:
     set $P1933, $P1932["arglist"]
-    unless_null $P1933, vivify_567
+    unless_null $P1933, vivify_571
     new $P1933, "Undef"
-  vivify_567:
+  vivify_571:
     $P1934 = $P1933."ast"()
     $P1935 = $P1931."!make"($P1934)
 .annotate 'line', 707
@@ -22262,7 +22971,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "value"  :subid("106_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "value"  :subid("106_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_1940
 .annotate 'line', 711
     new $P1939, 'ExceptionHandler'
@@ -22274,34 +22983,34 @@
 .annotate 'line', 712
     find_lex $P1941, "$/"
     find_lex $P1944, "$/"
-    unless_null $P1944, vivify_568
+    unless_null $P1944, vivify_572
     $P1944 = root_new ['parrot';'Hash']
-  vivify_568:
+  vivify_572:
     set $P1945, $P1944["quote"]
-    unless_null $P1945, vivify_569
+    unless_null $P1945, vivify_573
     new $P1945, "Undef"
-  vivify_569:
+  vivify_573:
     if $P1945, if_1943
     find_lex $P1949, "$/"
-    unless_null $P1949, vivify_570
+    unless_null $P1949, vivify_574
     $P1949 = root_new ['parrot';'Hash']
-  vivify_570:
+  vivify_574:
     set $P1950, $P1949["number"]
-    unless_null $P1950, vivify_571
+    unless_null $P1950, vivify_575
     new $P1950, "Undef"
-  vivify_571:
+  vivify_575:
     $P1951 = $P1950."ast"()
     set $P1942, $P1951
     goto if_1943_end
   if_1943:
     find_lex $P1946, "$/"
-    unless_null $P1946, vivify_572
+    unless_null $P1946, vivify_576
     $P1946 = root_new ['parrot';'Hash']
-  vivify_572:
+  vivify_576:
     set $P1947, $P1946["quote"]
-    unless_null $P1947, vivify_573
+    unless_null $P1947, vivify_577
     new $P1947, "Undef"
-  vivify_573:
+  vivify_577:
     $P1948 = $P1947."ast"()
     set $P1942, $P1948
   if_1943_end:
@@ -22317,7 +23026,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "number"  :subid("107_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "number"  :subid("107_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_1957
 .annotate 'line', 715
     new $P1956, 'ExceptionHandler'
@@ -22330,47 +23039,47 @@
     new $P1958, "Undef"
     .lex "$value", $P1958
     find_lex $P1961, "$/"
-    unless_null $P1961, vivify_574
+    unless_null $P1961, vivify_578
     $P1961 = root_new ['parrot';'Hash']
-  vivify_574:
+  vivify_578:
     set $P1962, $P1961["dec_number"]
-    unless_null $P1962, vivify_575
+    unless_null $P1962, vivify_579
     new $P1962, "Undef"
-  vivify_575:
+  vivify_579:
     if $P1962, if_1960
     find_lex $P1966, "$/"
-    unless_null $P1966, vivify_576
+    unless_null $P1966, vivify_580
     $P1966 = root_new ['parrot';'Hash']
-  vivify_576:
+  vivify_580:
     set $P1967, $P1966["integer"]
-    unless_null $P1967, vivify_577
+    unless_null $P1967, vivify_581
     new $P1967, "Undef"
-  vivify_577:
+  vivify_581:
     $P1968 = $P1967."ast"()
     set $P1959, $P1968
     goto if_1960_end
   if_1960:
     find_lex $P1963, "$/"
-    unless_null $P1963, vivify_578
+    unless_null $P1963, vivify_582
     $P1963 = root_new ['parrot';'Hash']
-  vivify_578:
+  vivify_582:
     set $P1964, $P1963["dec_number"]
-    unless_null $P1964, vivify_579
+    unless_null $P1964, vivify_583
     new $P1964, "Undef"
-  vivify_579:
+  vivify_583:
     $P1965 = $P1964."ast"()
     set $P1959, $P1965
   if_1960_end:
     store_lex "$value", $P1959
 .annotate 'line', 717
     find_lex $P1970, "$/"
-    unless_null $P1970, vivify_580
+    unless_null $P1970, vivify_584
     $P1970 = root_new ['parrot';'Hash']
-  vivify_580:
+  vivify_584:
     set $P1971, $P1970["sign"]
-    unless_null $P1971, vivify_581
+    unless_null $P1971, vivify_585
     new $P1971, "Undef"
-  vivify_581:
+  vivify_585:
     set $S1972, $P1971
     iseq $I1973, $S1972, "-"
     unless $I1973, if_1969_end
@@ -22395,7 +23104,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "quote:sym<apos>"  :subid("108_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "quote:sym<apos>"  :subid("108_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_1985
 .annotate 'line', 721
     new $P1984, 'ExceptionHandler'
@@ -22406,13 +23115,13 @@
     .lex "$/", param_1985
     find_lex $P1986, "$/"
     find_lex $P1987, "$/"
-    unless_null $P1987, vivify_582
+    unless_null $P1987, vivify_586
     $P1987 = root_new ['parrot';'Hash']
-  vivify_582:
+  vivify_586:
     set $P1988, $P1987["quote_EXPR"]
-    unless_null $P1988, vivify_583
+    unless_null $P1988, vivify_587
     new $P1988, "Undef"
-  vivify_583:
+  vivify_587:
     $P1989 = $P1988."ast"()
     $P1990 = $P1986."!make"($P1989)
     .return ($P1990)
@@ -22425,7 +23134,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "quote:sym<dblq>"  :subid("109_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "quote:sym<dblq>"  :subid("109_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_1995
 .annotate 'line', 722
     new $P1994, 'ExceptionHandler'
@@ -22436,13 +23145,13 @@
     .lex "$/", param_1995
     find_lex $P1996, "$/"
     find_lex $P1997, "$/"
-    unless_null $P1997, vivify_584
+    unless_null $P1997, vivify_588
     $P1997 = root_new ['parrot';'Hash']
-  vivify_584:
+  vivify_588:
     set $P1998, $P1997["quote_EXPR"]
-    unless_null $P1998, vivify_585
+    unless_null $P1998, vivify_589
     new $P1998, "Undef"
-  vivify_585:
+  vivify_589:
     $P1999 = $P1998."ast"()
     $P2000 = $P1996."!make"($P1999)
     .return ($P2000)
@@ -22455,7 +23164,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "quote:sym<qq>"  :subid("110_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "quote:sym<qq>"  :subid("110_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_2005
 .annotate 'line', 723
     new $P2004, 'ExceptionHandler'
@@ -22466,13 +23175,13 @@
     .lex "$/", param_2005
     find_lex $P2006, "$/"
     find_lex $P2007, "$/"
-    unless_null $P2007, vivify_586
+    unless_null $P2007, vivify_590
     $P2007 = root_new ['parrot';'Hash']
-  vivify_586:
+  vivify_590:
     set $P2008, $P2007["quote_EXPR"]
-    unless_null $P2008, vivify_587
+    unless_null $P2008, vivify_591
     new $P2008, "Undef"
-  vivify_587:
+  vivify_591:
     $P2009 = $P2008."ast"()
     $P2010 = $P2006."!make"($P2009)
     .return ($P2010)
@@ -22485,7 +23194,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "quote:sym<q>"  :subid("111_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "quote:sym<q>"  :subid("111_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_2015
 .annotate 'line', 724
     new $P2014, 'ExceptionHandler'
@@ -22496,13 +23205,13 @@
     .lex "$/", param_2015
     find_lex $P2016, "$/"
     find_lex $P2017, "$/"
-    unless_null $P2017, vivify_588
+    unless_null $P2017, vivify_592
     $P2017 = root_new ['parrot';'Hash']
-  vivify_588:
+  vivify_592:
     set $P2018, $P2017["quote_EXPR"]
-    unless_null $P2018, vivify_589
+    unless_null $P2018, vivify_593
     new $P2018, "Undef"
-  vivify_589:
+  vivify_593:
     $P2019 = $P2018."ast"()
     $P2020 = $P2016."!make"($P2019)
     .return ($P2020)
@@ -22515,7 +23224,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "quote:sym<Q>"  :subid("112_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "quote:sym<Q>"  :subid("112_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_2025
 .annotate 'line', 725
     new $P2024, 'ExceptionHandler'
@@ -22526,13 +23235,13 @@
     .lex "$/", param_2025
     find_lex $P2026, "$/"
     find_lex $P2027, "$/"
-    unless_null $P2027, vivify_590
+    unless_null $P2027, vivify_594
     $P2027 = root_new ['parrot';'Hash']
-  vivify_590:
+  vivify_594:
     set $P2028, $P2027["quote_EXPR"]
-    unless_null $P2028, vivify_591
+    unless_null $P2028, vivify_595
     new $P2028, "Undef"
-  vivify_591:
+  vivify_595:
     $P2029 = $P2028."ast"()
     $P2030 = $P2026."!make"($P2029)
     .return ($P2030)
@@ -22545,7 +23254,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "quote:sym<Q:PIR>"  :subid("113_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "quote:sym<Q:PIR>"  :subid("113_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_2035
 .annotate 'line', 726
     new $P2034, 'ExceptionHandler'
@@ -22558,13 +23267,13 @@
     find_lex $P2036, "$/"
     get_hll_global $P2037, ["PAST"], "Op"
     find_lex $P2038, "$/"
-    unless_null $P2038, vivify_592
+    unless_null $P2038, vivify_596
     $P2038 = root_new ['parrot';'Hash']
-  vivify_592:
+  vivify_596:
     set $P2039, $P2038["quote_EXPR"]
-    unless_null $P2039, vivify_593
+    unless_null $P2039, vivify_597
     new $P2039, "Undef"
-  vivify_593:
+  vivify_597:
     $P2040 = $P2039."ast"()
     $P2041 = $P2040."value"()
     find_lex $P2042, "$/"
@@ -22581,7 +23290,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "quote:sym</ />"  :subid("114_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "quote:sym</ />"  :subid("114_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_2049
     .param pmc param_2050 :optional
     .param int has_param_2050 :opt_flag
@@ -22592,10 +23301,10 @@
     push_eh $P2048
     .lex "self", self
     .lex "$/", param_2049
-    if has_param_2050, optparam_594
+    if has_param_2050, optparam_598
     new $P2051, "Undef"
     set param_2050, $P2051
-  optparam_594:
+  optparam_598:
     .lex "$key", param_2050
 .annotate 'line', 742
     new $P2052, "Undef"
@@ -22615,23 +23324,23 @@
         
 .annotate 'line', 738
     get_global $P2058, "@BLOCK"
-    unless_null $P2058, vivify_595
+    unless_null $P2058, vivify_599
     $P2058 = root_new ['parrot';'ResizablePMCArray']
-  vivify_595:
+  vivify_599:
     set $P2059, $P2058[0]
-    unless_null $P2059, vivify_596
+    unless_null $P2059, vivify_600
     new $P2059, "Undef"
-  vivify_596:
+  vivify_600:
     $P2059."symbol"(unicode:"$\x{a2}", "lexical" :named("scope"))
 .annotate 'line', 739
     get_global $P2060, "@BLOCK"
-    unless_null $P2060, vivify_597
+    unless_null $P2060, vivify_601
     $P2060 = root_new ['parrot';'ResizablePMCArray']
-  vivify_597:
+  vivify_601:
     set $P2061, $P2060[0]
-    unless_null $P2061, vivify_598
+    unless_null $P2061, vivify_602
     new $P2061, "Undef"
-  vivify_598:
+  vivify_602:
     $P2061."symbol"("$/", "lexical" :named("scope"))
 .annotate 'line', 740
     new $P2062, "Exception"
@@ -22644,13 +23353,13 @@
 .annotate 'line', 743
     get_hll_global $P2064, ["Regex";"P6Regex";"Actions"], "buildsub"
     find_lex $P2065, "$/"
-    unless_null $P2065, vivify_599
+    unless_null $P2065, vivify_603
     $P2065 = root_new ['parrot';'Hash']
-  vivify_599:
+  vivify_603:
     set $P2066, $P2065["p6regex"]
-    unless_null $P2066, vivify_600
+    unless_null $P2066, vivify_604
     new $P2066, "Undef"
-  vivify_600:
+  vivify_604:
     $P2067 = $P2066."ast"()
     get_global $P2068, "@BLOCK"
     $P2069 = $P2068."shift"()
@@ -22670,10 +23379,10 @@
 .annotate 'line', 751
     find_lex $P2077, "$regex"
     find_lex $P2078, "$past"
-    unless_null $P2078, vivify_601
+    unless_null $P2078, vivify_605
     $P2078 = root_new ['parrot';'Hash']
     store_lex "$past", $P2078
-  vivify_601:
+  vivify_605:
     set $P2078["sink"], $P2077
 .annotate 'line', 752
     find_lex $P2079, "$/"
@@ -22690,7 +23399,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "quote_escape:sym<$>"  :subid("115_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "quote_escape:sym<$>"  :subid("115_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_2086
 .annotate 'line', 755
     new $P2085, 'ExceptionHandler'
@@ -22701,13 +23410,13 @@
     .lex "$/", param_2086
     find_lex $P2087, "$/"
     find_lex $P2088, "$/"
-    unless_null $P2088, vivify_602
+    unless_null $P2088, vivify_606
     $P2088 = root_new ['parrot';'Hash']
-  vivify_602:
+  vivify_606:
     set $P2089, $P2088["variable"]
-    unless_null $P2089, vivify_603
+    unless_null $P2089, vivify_607
     new $P2089, "Undef"
-  vivify_603:
+  vivify_607:
     $P2090 = $P2089."ast"()
     $P2091 = $P2087."!make"($P2090)
     .return ($P2091)
@@ -22720,7 +23429,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "quote_escape:sym<{ }>"  :subid("116_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "quote_escape:sym<{ }>"  :subid("116_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_2096
 .annotate 'line', 756
     new $P2095, 'ExceptionHandler'
@@ -22734,13 +23443,13 @@
     get_hll_global $P2098, ["PAST"], "Op"
 .annotate 'line', 758
     find_lex $P2099, "$/"
-    unless_null $P2099, vivify_604
+    unless_null $P2099, vivify_608
     $P2099 = root_new ['parrot';'Hash']
-  vivify_604:
+  vivify_608:
     set $P2100, $P2099["block"]
-    unless_null $P2100, vivify_605
+    unless_null $P2100, vivify_609
     new $P2100, "Undef"
-  vivify_605:
+  vivify_609:
     $P2101 = $P2100."ast"()
     $P2102 = "block_immediate"($P2101)
     find_lex $P2103, "$/"
@@ -22758,7 +23467,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "quote_escape:sym<esc>"  :subid("117_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "quote_escape:sym<esc>"  :subid("117_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_2110
 .annotate 'line', 761
     new $P2109, 'ExceptionHandler'
@@ -22779,7 +23488,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "postfix:sym<.>"  :subid("118_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "postfix:sym<.>"  :subid("118_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_2117
 .annotate 'line', 765
     new $P2116, 'ExceptionHandler'
@@ -22790,13 +23499,13 @@
     .lex "$/", param_2117
     find_lex $P2118, "$/"
     find_lex $P2119, "$/"
-    unless_null $P2119, vivify_606
+    unless_null $P2119, vivify_610
     $P2119 = root_new ['parrot';'Hash']
-  vivify_606:
+  vivify_610:
     set $P2120, $P2119["dotty"]
-    unless_null $P2120, vivify_607
+    unless_null $P2120, vivify_611
     new $P2120, "Undef"
-  vivify_607:
+  vivify_611:
     $P2121 = $P2120."ast"()
     $P2122 = $P2118."!make"($P2121)
     .return ($P2122)
@@ -22809,7 +23518,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "postfix:sym<++>"  :subid("119_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "postfix:sym<++>"  :subid("119_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_2127
 .annotate 'line', 767
     new $P2126, 'ExceptionHandler'
@@ -22839,7 +23548,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "postfix:sym<-->"  :subid("120_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "postfix:sym<-->"  :subid("120_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_2137
 .annotate 'line', 773
     new $P2136, 'ExceptionHandler'
@@ -22869,7 +23578,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "prefix:sym<make>"  :subid("121_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "prefix:sym<make>"  :subid("121_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_2147
 .annotate 'line', 779
     new $P2146, 'ExceptionHandler'
@@ -22899,7 +23608,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "term:sym<next>"  :subid("122_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "term:sym<next>"  :subid("122_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_2160
 .annotate 'line', 801
     new $P2159, 'ExceptionHandler'
@@ -22920,7 +23629,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "term:sym<last>"  :subid("123_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "term:sym<last>"  :subid("123_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_2167
 .annotate 'line', 802
     new $P2166, 'ExceptionHandler'
@@ -22941,7 +23650,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "term:sym<redo>"  :subid("124_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "term:sym<redo>"  :subid("124_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_2174
 .annotate 'line', 803
     new $P2173, 'ExceptionHandler'
@@ -22962,7 +23671,7 @@
 
 
 .namespace ["NQP";"Actions"]
-.sub "infix:sym<~~>"  :subid("125_1274022903.56472") :method :outer("11_1274022903.56472")
+.sub "infix:sym<~~>"  :subid("125_1274564782.90592") :method :outer("11_1274564782.90592")
     .param pmc param_2181
 .annotate 'line', 805
     new $P2180, 'ExceptionHandler'
@@ -22988,206 +23697,526 @@
 
 
 .namespace ["NQP";"RegexActions"]
-.sub "_block2188"  :subid("126_1274022903.56472") :outer("11_1274022903.56472")
+.sub "_block2188"  :subid("126_1274564782.90592") :outer("11_1274564782.90592")
 .annotate 'line', 810
-    .const 'Sub' $P2224 = "130_1274022903.56472" 
-    capture_lex $P2224
-    .const 'Sub' $P2214 = "129_1274022903.56472" 
-    capture_lex $P2214
-    .const 'Sub' $P2204 = "128_1274022903.56472" 
-    capture_lex $P2204
-    .const 'Sub' $P2190 = "127_1274022903.56472" 
+    .const 'Sub' $P2345 = "134_1274564782.90592" 
+    capture_lex $P2345
+    .const 'Sub' $P2332 = "133_1274564782.90592" 
+    capture_lex $P2332
+    .const 'Sub' $P2319 = "132_1274564782.90592" 
+    capture_lex $P2319
+    .const 'Sub' $P2306 = "131_1274564782.90592" 
+    capture_lex $P2306
+    .const 'Sub' $P2221 = "129_1274564782.90592" 
+    capture_lex $P2221
+    .const 'Sub' $P2207 = "128_1274564782.90592" 
+    capture_lex $P2207
+    .const 'Sub' $P2190 = "127_1274564782.90592" 
     capture_lex $P2190
-.annotate 'line', 821
-    .const 'Sub' $P2224 = "130_1274022903.56472" 
-    newclosure $P2251, $P2224
+.annotate 'line', 870
+    .const 'Sub' $P2190 = "127_1274564782.90592" 
+    newclosure $P2206, $P2190
+    .lex "bindmatch", $P2206
+.annotate 'line', 864
+    find_lex $P2359, "bindmatch"
 .annotate 'line', 810
-    .return ($P2251)
+    .return ($P2359)
 .end
 
 
 .namespace ["NQP";"RegexActions"]
-.sub "metachar:sym<:my>"  :subid("127_1274022903.56472") :method :outer("126_1274022903.56472")
+.sub "bindmatch"  :subid("127_1274564782.90592") :outer("126_1274564782.90592")
     .param pmc param_2193
-.annotate 'line', 812
+.annotate 'line', 870
     new $P2192, 'ExceptionHandler'
     set_addr $P2192, control_2191
     $P2192."handle_types"(57)
     push_eh $P2192
-    .lex "self", self
-    .lex "$/", param_2193
-.annotate 'line', 813
-    new $P2194, "Undef"
-    .lex "$past", $P2194
-    find_lex $P2195, "$/"
-    unless_null $P2195, vivify_608
-    $P2195 = root_new ['parrot';'Hash']
-  vivify_608:
-    set $P2196, $P2195["statement"]
-    unless_null $P2196, vivify_609
-    new $P2196, "Undef"
-  vivify_609:
-    $P2197 = $P2196."ast"()
-    store_lex "$past", $P2197
-.annotate 'line', 814
-    find_lex $P2198, "$/"
-    get_hll_global $P2199, ["PAST"], "Regex"
-    find_lex $P2200, "$past"
-    $P2201 = $P2199."new"($P2200, "pastnode" :named("pasttype"))
-    $P2202 = $P2198."!make"($P2201)
-.annotate 'line', 812
-    .return ($P2202)
+    .lex "$past", param_2193
+.annotate 'line', 871
+    get_hll_global $P2194, ["PAST"], "Stmts"
+.annotate 'line', 872
+    get_hll_global $P2195, ["PAST"], "Op"
+.annotate 'line', 873
+    get_hll_global $P2196, ["PAST"], "Var"
+    $P2197 = $P2196."new"("$/" :named("name"))
+.annotate 'line', 874
+    get_hll_global $P2198, ["PAST"], "Op"
+.annotate 'line', 875
+    get_hll_global $P2199, ["PAST"], "Var"
+    $P2200 = $P2199."new"(unicode:"$\x{a2}" :named("name"))
+    $P2201 = $P2198."new"($P2200, "MATCH" :named("name"), "callmethod" :named("pasttype"))
+.annotate 'line', 874
+    $P2202 = $P2195."new"($P2197, $P2201, "bind" :named("pasttype"))
+.annotate 'line', 872
+    find_lex $P2203, "$past"
+    $P2204 = $P2194."new"($P2202, $P2203)
+.annotate 'line', 870
+    .return ($P2204)
   control_2191:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2203, exception, "payload"
-    .return ($P2203)
-.end
-
-
-.namespace ["NQP";"RegexActions"]
-.sub "metachar:sym<{ }>"  :subid("128_1274022903.56472") :method :outer("126_1274022903.56472")
-    .param pmc param_2207
-.annotate 'line', 817
-    new $P2206, 'ExceptionHandler'
-    set_addr $P2206, control_2205
-    $P2206."handle_types"(57)
-    push_eh $P2206
-    .lex "self", self
-    .lex "$/", param_2207
-    find_lex $P2208, "$/"
-    find_lex $P2209, "$/"
-    unless_null $P2209, vivify_610
-    $P2209 = root_new ['parrot';'Hash']
-  vivify_610:
-    set $P2210, $P2209["codeblock"]
-    unless_null $P2210, vivify_611
-    new $P2210, "Undef"
-  vivify_611:
-    $P2211 = $P2210."ast"()
-    $P2212 = $P2208."!make"($P2211)
-    .return ($P2212)
-  control_2205:
-    .local pmc exception 
-    .get_results (exception) 
-    getattribute $P2213, exception, "payload"
-    .return ($P2213)
+    getattribute $P2205, exception, "payload"
+    .return ($P2205)
 .end
 
 
 .namespace ["NQP";"RegexActions"]
-.sub "assertion:sym<{ }>"  :subid("129_1274022903.56472") :method :outer("126_1274022903.56472")
-    .param pmc param_2217
-.annotate 'line', 819
-    new $P2216, 'ExceptionHandler'
-    set_addr $P2216, control_2215
-    $P2216."handle_types"(57)
-    push_eh $P2216
-    .lex "self", self
-    .lex "$/", param_2217
-    find_lex $P2218, "$/"
-    find_lex $P2219, "$/"
-    unless_null $P2219, vivify_612
-    $P2219 = root_new ['parrot';'Hash']
+.sub "metachar:sym<:my>"  :subid("128_1274564782.90592") :method :outer("126_1274564782.90592")
+    .param pmc param_2210
+.annotate 'line', 812
+    new $P2209, 'ExceptionHandler'
+    set_addr $P2209, control_2208
+    $P2209."handle_types"(57)
+    push_eh $P2209
+    .lex "self", self
+    .lex "$/", param_2210
+.annotate 'line', 813
+    new $P2211, "Undef"
+    .lex "$past", $P2211
+    find_lex $P2212, "$/"
+    unless_null $P2212, vivify_612
+    $P2212 = root_new ['parrot';'Hash']
   vivify_612:
-    set $P2220, $P2219["codeblock"]
-    unless_null $P2220, vivify_613
-    new $P2220, "Undef"
+    set $P2213, $P2212["statement"]
+    unless_null $P2213, vivify_613
+    new $P2213, "Undef"
   vivify_613:
-    $P2221 = $P2220."ast"()
-    $P2222 = $P2218."!make"($P2221)
-    .return ($P2222)
-  control_2215:
+    $P2214 = $P2213."ast"()
+    store_lex "$past", $P2214
+.annotate 'line', 814
+    find_lex $P2215, "$/"
+    get_hll_global $P2216, ["PAST"], "Regex"
+    find_lex $P2217, "$past"
+    $P2218 = $P2216."new"($P2217, "pastnode" :named("pasttype"))
+    $P2219 = $P2215."!make"($P2218)
+.annotate 'line', 812
+    .return ($P2219)
+  control_2208:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2223, exception, "payload"
-    .return ($P2223)
+    getattribute $P2220, exception, "payload"
+    .return ($P2220)
 .end
 
 
 .namespace ["NQP";"RegexActions"]
-.sub "codeblock"  :subid("130_1274022903.56472") :method :outer("126_1274022903.56472")
-    .param pmc param_2227
-.annotate 'line', 821
-    new $P2226, 'ExceptionHandler'
-    set_addr $P2226, control_2225
-    $P2226."handle_types"(57)
-    push_eh $P2226
-    .lex "self", self
-    .lex "$/", param_2227
-.annotate 'line', 822
-    new $P2228, "Undef"
-    .lex "$block", $P2228
-.annotate 'line', 824
-    new $P2229, "Undef"
-    .lex "$past", $P2229
-.annotate 'line', 822
+.sub "metachar:sym<var>"  :subid("129_1274564782.90592") :method :outer("126_1274564782.90592")
+    .param pmc param_2224
+.annotate 'line', 817
+    .const 'Sub' $P2280 = "130_1274564782.90592" 
+    capture_lex $P2280
+    new $P2223, 'ExceptionHandler'
+    set_addr $P2223, control_2222
+    $P2223."handle_types"(57)
+    push_eh $P2223
+    .lex "self", self
+    .lex "$/", param_2224
+.annotate 'line', 818
+    new $P2225, "Undef"
+    .lex "$past", $P2225
+.annotate 'line', 819
+    new $P2226, "Undef"
+    .lex "$name", $P2226
+.annotate 'line', 817
+    find_lex $P2227, "$past"
+.annotate 'line', 819
     find_lex $P2230, "$/"
     unless_null $P2230, vivify_614
     $P2230 = root_new ['parrot';'Hash']
   vivify_614:
-    set $P2231, $P2230["block"]
+    set $P2231, $P2230["pos"]
     unless_null $P2231, vivify_615
     new $P2231, "Undef"
   vivify_615:
-    $P2232 = $P2231."ast"()
-    store_lex "$block", $P2232
-.annotate 'line', 823
-    find_lex $P2233, "$block"
-    $P2233."blocktype"("immediate")
+    if $P2231, if_2229
+    find_lex $P2235, "$/"
+    unless_null $P2235, vivify_616
+    $P2235 = root_new ['parrot';'Hash']
+  vivify_616:
+    set $P2236, $P2235["name"]
+    unless_null $P2236, vivify_617
+    new $P2236, "Undef"
+  vivify_617:
+    set $S2237, $P2236
+    new $P2228, 'String'
+    set $P2228, $S2237
+    goto if_2229_end
+  if_2229:
+    find_lex $P2232, "$/"
+    unless_null $P2232, vivify_618
+    $P2232 = root_new ['parrot';'Hash']
+  vivify_618:
+    set $P2233, $P2232["pos"]
+    unless_null $P2233, vivify_619
+    new $P2233, "Undef"
+  vivify_619:
+    set $N2234, $P2233
+    new $P2228, 'Float'
+    set $P2228, $N2234
+  if_2229_end:
+    store_lex "$name", $P2228
+.annotate 'line', 820
+    find_lex $P2239, "$/"
+    unless_null $P2239, vivify_620
+    $P2239 = root_new ['parrot';'Hash']
+  vivify_620:
+    set $P2240, $P2239["quantified_atom"]
+    unless_null $P2240, vivify_621
+    new $P2240, "Undef"
+  vivify_621:
+    if $P2240, if_2238
+.annotate 'line', 834
+    find_lex $P2277, "$/"
+    unless_null $P2277, vivify_622
+    $P2277 = root_new ['parrot';'Hash']
+  vivify_622:
+    set $P2278, $P2277["var"]
+    unless_null $P2278, vivify_623
+    new $P2278, "Undef"
+  vivify_623:
+    if $P2278, if_2276
+.annotate 'line', 842
+    get_hll_global $P2298, ["PAST"], "Regex"
+    find_lex $P2299, "$name"
+    find_lex $P2300, "$/"
+    $P2301 = $P2298."new"("!BACKREF", $P2299, "subrule" :named("pasttype"), "method" :named("subtype"), $P2300 :named("node"))
+    store_lex "$past", $P2301
+.annotate 'line', 841
+    goto if_2276_end
+  if_2276:
+.annotate 'line', 834
+    .const 'Sub' $P2280 = "130_1274564782.90592" 
+    capture_lex $P2280
+    $P2280()
+  if_2276_end:
+.annotate 'line', 833
+    goto if_2238_end
+  if_2238:
+.annotate 'line', 821
+    find_lex $P2242, "$/"
+    unless_null $P2242, vivify_629
+    $P2242 = root_new ['parrot';'Hash']
+  vivify_629:
+    set $P2243, $P2242["var"]
+    unless_null $P2243, vivify_630
+    new $P2243, "Undef"
+  vivify_630:
+    unless $P2243, if_2241_end
+.annotate 'line', 822
+    find_lex $P2244, "$/"
+    $P2245 = $P2244."CURSOR"()
+    $P2245."panic"("\"$var = \" syntax not yet supported in regexes")
+  if_2241_end:
+.annotate 'line', 824
+    find_lex $P2246, "$/"
+    unless_null $P2246, vivify_631
+    $P2246 = root_new ['parrot';'Hash']
+  vivify_631:
+    set $P2247, $P2246["quantified_atom"]
+    unless_null $P2247, vivify_632
+    $P2247 = root_new ['parrot';'ResizablePMCArray']
+  vivify_632:
+    set $P2248, $P2247[0]
+    unless_null $P2248, vivify_633
+    new $P2248, "Undef"
+  vivify_633:
+    $P2249 = $P2248."ast"()
+    store_lex "$past", $P2249
 .annotate 'line', 825
-    get_hll_global $P2234, ["PAST"], "Regex"
-.annotate 'line', 826
-    get_hll_global $P2235, ["PAST"], "Stmts"
-.annotate 'line', 827
-    get_hll_global $P2236, ["PAST"], "Op"
+    find_lex $P2253, "$past"
+    $S2254 = $P2253."pasttype"()
+    iseq $I2255, $S2254, "quant"
+    if $I2255, if_2252
+    new $P2251, 'Integer'
+    set $P2251, $I2255
+    goto if_2252_end
+  if_2252:
+    find_lex $P2256, "$past"
+    unless_null $P2256, vivify_634
+    $P2256 = root_new ['parrot';'ResizablePMCArray']
+  vivify_634:
+    set $P2257, $P2256[0]
+    unless_null $P2257, vivify_635
+    new $P2257, "Undef"
+  vivify_635:
+    $S2258 = $P2257."pasttype"()
+    iseq $I2259, $S2258, "subrule"
+    new $P2251, 'Integer'
+    set $P2251, $I2259
+  if_2252_end:
+    if $P2251, if_2250
 .annotate 'line', 828
-    get_hll_global $P2237, ["PAST"], "Var"
-    $P2238 = $P2237."new"("$/" :named("name"))
-.annotate 'line', 829
-    get_hll_global $P2239, ["PAST"], "Op"
+    find_lex $P2265, "$past"
+    $S2266 = $P2265."pasttype"()
+    iseq $I2267, $S2266, "subrule"
+    if $I2267, if_2264
 .annotate 'line', 830
-    get_hll_global $P2240, ["PAST"], "Var"
-    $P2241 = $P2240."new"(unicode:"$\x{a2}" :named("name"))
-    $P2242 = $P2239."new"($P2241, "MATCH" :named("name"), "callmethod" :named("pasttype"))
+    get_hll_global $P2271, ["PAST"], "Regex"
+    find_lex $P2272, "$past"
+    find_lex $P2273, "$name"
+    find_lex $P2274, "$/"
+    $P2275 = $P2271."new"($P2272, $P2273 :named("name"), "subcapture" :named("pasttype"), $P2274 :named("node"))
+    store_lex "$past", $P2275
 .annotate 'line', 829
-    $P2243 = $P2236."new"($P2238, $P2242, "bind" :named("pasttype"))
-.annotate 'line', 827
-    find_lex $P2244, "$block"
-    $P2245 = $P2235."new"($P2243, $P2244)
+    goto if_2264_end
+  if_2264:
+.annotate 'line', 828
+    get_hll_global $P2268, ["Regex";"P6Regex";"Actions"], "subrule_alias"
+    find_lex $P2269, "$past"
+    find_lex $P2270, "$name"
+    $P2268($P2269, $P2270)
+  if_2264_end:
+    goto if_2250_end
+  if_2250:
 .annotate 'line', 826
-    $P2246 = $P2234."new"($P2245, "pastnode" :named("pasttype"))
-.annotate 'line', 825
-    store_lex "$past", $P2246
-.annotate 'line', 840
-    find_lex $P2247, "$/"
-    find_lex $P2248, "$past"
-    $P2249 = $P2247."!make"($P2248)
-.annotate 'line', 821
-    .return ($P2249)
-  control_2225:
+    get_hll_global $P2260, ["Regex";"P6Regex";"Actions"], "subrule_alias"
+    find_lex $P2261, "$past"
+    unless_null $P2261, vivify_636
+    $P2261 = root_new ['parrot';'ResizablePMCArray']
+  vivify_636:
+    set $P2262, $P2261[0]
+    unless_null $P2262, vivify_637
+    new $P2262, "Undef"
+  vivify_637:
+    find_lex $P2263, "$name"
+    $P2260($P2262, $P2263)
+  if_2250_end:
+  if_2238_end:
+.annotate 'line', 846
+    find_lex $P2302, "$/"
+    find_lex $P2303, "$past"
+    $P2304 = $P2302."!make"($P2303)
+.annotate 'line', 817
+    .return ($P2304)
+  control_2222:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P2305, exception, "payload"
+    .return ($P2305)
+.end
+
+
+.namespace ["NQP";"RegexActions"]
+.sub "_block2279"  :anon :subid("130_1274564782.90592") :outer("129_1274564782.90592")
+.annotate 'line', 835
+    $P2281 = root_new ['parrot';'ResizablePMCArray']
+    .lex "@MODIFIERS", $P2281
+.annotate 'line', 838
+    new $P2282, "Undef"
+    .lex "$subtype", $P2282
+.annotate 'line', 835
+
+                    $P2283 = get_hll_global ['Regex';'P6Regex';'Actions'], '@MODIFIERS'
+                
+    store_lex "@MODIFIERS", $P2283
+.annotate 'line', 838
+    find_lex $P2286, "@MODIFIERS"
+    unless_null $P2286, vivify_624
+    $P2286 = root_new ['parrot';'ResizablePMCArray']
+  vivify_624:
+    set $P2287, $P2286[0]
+    unless_null $P2287, vivify_625
+    $P2287 = root_new ['parrot';'Hash']
+  vivify_625:
+    set $P2288, $P2287["i"]
+    unless_null $P2288, vivify_626
+    new $P2288, "Undef"
+  vivify_626:
+    if $P2288, if_2285
+    new $P2290, "String"
+    assign $P2290, "interp_literal"
+    set $P2284, $P2290
+    goto if_2285_end
+  if_2285:
+    new $P2289, "String"
+    assign $P2289, "interp_literal_i"
+    set $P2284, $P2289
+  if_2285_end:
+    store_lex "$subtype", $P2284
+.annotate 'line', 839
+    get_hll_global $P2291, ["PAST"], "Regex"
+    find_lex $P2292, "$/"
+    unless_null $P2292, vivify_627
+    $P2292 = root_new ['parrot';'Hash']
+  vivify_627:
+    set $P2293, $P2292["var"]
+    unless_null $P2293, vivify_628
+    new $P2293, "Undef"
+  vivify_628:
+    $P2294 = $P2293."ast"()
+    find_lex $P2295, "$subtype"
+    find_lex $P2296, "$/"
+    $P2297 = $P2291."new"($P2294, "pastnode" :named("pasttype"), $P2295 :named("subtype"), $P2296 :named("node"))
+    store_lex "$past", $P2297
+.annotate 'line', 834
+    .return ($P2297)
+.end
+
+
+.namespace ["NQP";"RegexActions"]
+.sub "assertion:sym<var>"  :subid("131_1274564782.90592") :method :outer("126_1274564782.90592")
+    .param pmc param_2309
+.annotate 'line', 849
+    new $P2308, 'ExceptionHandler'
+    set_addr $P2308, control_2307
+    $P2308."handle_types"(57)
+    push_eh $P2308
+    .lex "self", self
+    .lex "$/", param_2309
+.annotate 'line', 850
+    find_lex $P2310, "$/"
+    get_hll_global $P2311, ["PAST"], "Regex"
+    find_lex $P2312, "$/"
+    unless_null $P2312, vivify_638
+    $P2312 = root_new ['parrot';'Hash']
+  vivify_638:
+    set $P2313, $P2312["var"]
+    unless_null $P2313, vivify_639
+    new $P2313, "Undef"
+  vivify_639:
+    $P2314 = $P2313."ast"()
+    find_lex $P2315, "$/"
+    $P2316 = $P2311."new"($P2314, "pastnode" :named("pasttype"), "interp_regex" :named("subtype"), $P2315 :named("node"))
+    $P2317 = $P2310."!make"($P2316)
+.annotate 'line', 849
+    .return ($P2317)
+  control_2307:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P2318, exception, "payload"
+    .return ($P2318)
+.end
+
+
+.namespace ["NQP";"RegexActions"]
+.sub "metachar:sym<{ }>"  :subid("132_1274564782.90592") :method :outer("126_1274564782.90592")
+    .param pmc param_2322
+.annotate 'line', 855
+    new $P2321, 'ExceptionHandler'
+    set_addr $P2321, control_2320
+    $P2321."handle_types"(57)
+    push_eh $P2321
+    .lex "self", self
+    .lex "$/", param_2322
+.annotate 'line', 856
+    find_lex $P2323, "$/"
+    get_hll_global $P2324, ["PAST"], "Regex"
+    find_lex $P2325, "$/"
+    find_lex $P2326, "$/"
+    unless_null $P2326, vivify_640
+    $P2326 = root_new ['parrot';'Hash']
+  vivify_640:
+    set $P2327, $P2326["codeblock"]
+    unless_null $P2327, vivify_641
+    new $P2327, "Undef"
+  vivify_641:
+    $P2328 = $P2327."ast"()
+    $P2329 = $P2324."new"($P2328, $P2325 :named("node"), "pastnode" :named("pasttype"))
+    $P2330 = $P2323."!make"($P2329)
+.annotate 'line', 855
+    .return ($P2330)
+  control_2320:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P2331, exception, "payload"
+    .return ($P2331)
+.end
+
+
+.namespace ["NQP";"RegexActions"]
+.sub "assertion:sym<{ }>"  :subid("133_1274564782.90592") :method :outer("126_1274564782.90592")
+    .param pmc param_2335
+.annotate 'line', 859
+    new $P2334, 'ExceptionHandler'
+    set_addr $P2334, control_2333
+    $P2334."handle_types"(57)
+    push_eh $P2334
+    .lex "self", self
+    .lex "$/", param_2335
+.annotate 'line', 860
+    find_lex $P2336, "$/"
+    get_hll_global $P2337, ["PAST"], "Regex"
+    find_lex $P2338, "$/"
+.annotate 'line', 861
+    find_lex $P2339, "$/"
+    unless_null $P2339, vivify_642
+    $P2339 = root_new ['parrot';'Hash']
+  vivify_642:
+    set $P2340, $P2339["codeblock"]
+    unless_null $P2340, vivify_643
+    new $P2340, "Undef"
+  vivify_643:
+    $P2341 = $P2340."ast"()
+    $P2342 = $P2337."new"($P2341, $P2338 :named("node"), "pastnode" :named("pasttype"), "interp_regex" :named("subtype"))
+.annotate 'line', 860
+    $P2343 = $P2336."!make"($P2342)
+.annotate 'line', 859
+    .return ($P2343)
+  control_2333:
+    .local pmc exception 
+    .get_results (exception) 
+    getattribute $P2344, exception, "payload"
+    .return ($P2344)
+.end
+
+
+.namespace ["NQP";"RegexActions"]
+.sub "codeblock"  :subid("134_1274564782.90592") :method :outer("126_1274564782.90592")
+    .param pmc param_2348
+.annotate 'line', 864
+    new $P2347, 'ExceptionHandler'
+    set_addr $P2347, control_2346
+    $P2347."handle_types"(57)
+    push_eh $P2347
+    .lex "self", self
+    .lex "$/", param_2348
+.annotate 'line', 865
+    new $P2349, "Undef"
+    .lex "$block", $P2349
+    find_lex $P2350, "$/"
+    unless_null $P2350, vivify_644
+    $P2350 = root_new ['parrot';'Hash']
+  vivify_644:
+    set $P2351, $P2350["block"]
+    unless_null $P2351, vivify_645
+    new $P2351, "Undef"
+  vivify_645:
+    $P2352 = $P2351."ast"()
+    store_lex "$block", $P2352
+.annotate 'line', 866
+    find_lex $P2353, "$block"
+    $P2353."blocktype"("immediate")
+.annotate 'line', 867
+    find_lex $P2354, "$/"
+    find_lex $P2355, "$block"
+    $P2356 = "bindmatch"($P2355)
+    $P2357 = $P2354."!make"($P2356)
+.annotate 'line', 864
+    .return ($P2357)
+  control_2346:
     .local pmc exception 
     .get_results (exception) 
-    getattribute $P2250, exception, "payload"
-    .return ($P2250)
+    getattribute $P2358, exception, "payload"
+    .return ($P2358)
 .end
 
 
 .namespace ["NQP";"Actions"]
-.sub "_block2253" :load :anon :subid("131_1274022903.56472")
+.sub "_block2361" :load :anon :subid("135_1274564782.90592")
 .annotate 'line', 3
-    .const 'Sub' $P2255 = "11_1274022903.56472" 
-    $P2256 = $P2255()
-    .return ($P2256)
+    .const 'Sub' $P2363 = "11_1274564782.90592" 
+    $P2364 = $P2363()
+    .return ($P2364)
 .end
 
 
 .namespace []
-.sub "_block2263" :load :anon :subid("133_1274022903.56472")
+.sub "_block2371" :load :anon :subid("137_1274564782.90592")
 .annotate 'line', 1
-    .const 'Sub' $P2265 = "10_1274022903.56472" 
-    $P2266 = $P2265()
-    .return ($P2266)
+    .const 'Sub' $P2373 = "10_1274564782.90592" 
+    $P2374 = $P2373()
+    .return ($P2374)
 .end
 
 ### .include 'src/cheats/nqp-builtins.pir'

Modified: branches/ucs4_encoding/ext/nqp-rx/src/stage0/P6Regex-s0.pir
==============================================================================
--- branches/ucs4_encoding/ext/nqp-rx/src/stage0/P6Regex-s0.pir	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/ext/nqp-rx/src/stage0/P6Regex-s0.pir	Mon May 24 21:18:41 2010	(r46974)
@@ -16,7 +16,7 @@
 ### .include 'gen/p6regex-grammar.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1274022883.50471")
+.sub "_block11"  :anon :subid("10_1274564774.16047")
 .annotate 'line', 0
     get_hll_global $P14, ["Regex";"P6Regex";"Grammar"], "_block13" 
     capture_lex $P14
@@ -26,15 +26,15 @@
     $P583 = $P14()
 .annotate 'line', 1
     .return ($P583)
-    .const 'Sub' $P585 = "159_1274022883.50471" 
+    .const 'Sub' $P585 = "159_1274564774.16047" 
     .return ($P585)
 .end
 
 
 .namespace []
-.sub "" :load :init :subid("post160") :outer("10_1274022883.50471")
+.sub "" :load :init :subid("post160") :outer("10_1274564774.16047")
 .annotate 'line', 0
-    .const 'Sub' $P12 = "10_1274022883.50471" 
+    .const 'Sub' $P12 = "10_1274564774.16047" 
     .local pmc block
     set block, $P12
     $P588 = get_root_global ["parrot"], "P6metaclass"
@@ -43,142 +43,142 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block13"  :subid("11_1274022883.50471") :outer("10_1274022883.50471")
+.sub "_block13"  :subid("11_1274564774.16047") :outer("10_1274564774.16047")
 .annotate 'line', 3
-    .const 'Sub' $P571 = "156_1274022883.50471" 
+    .const 'Sub' $P571 = "156_1274564774.16047" 
     capture_lex $P571
-    .const 'Sub' $P563 = "154_1274022883.50471" 
+    .const 'Sub' $P563 = "154_1274564774.16047" 
     capture_lex $P563
-    .const 'Sub' $P555 = "152_1274022883.50471" 
+    .const 'Sub' $P555 = "152_1274564774.16047" 
     capture_lex $P555
-    .const 'Sub' $P534 = "147_1274022883.50471" 
+    .const 'Sub' $P534 = "147_1274564774.16047" 
     capture_lex $P534
-    .const 'Sub' $P499 = "141_1274022883.50471" 
+    .const 'Sub' $P499 = "141_1274564774.16047" 
     capture_lex $P499
-    .const 'Sub' $P487 = "138_1274022883.50471" 
+    .const 'Sub' $P487 = "138_1274564774.16047" 
     capture_lex $P487
-    .const 'Sub' $P474 = "135_1274022883.50471" 
+    .const 'Sub' $P474 = "135_1274564774.16047" 
     capture_lex $P474
-    .const 'Sub' $P468 = "133_1274022883.50471" 
+    .const 'Sub' $P468 = "133_1274564774.16047" 
     capture_lex $P468
-    .const 'Sub' $P457 = "130_1274022883.50471" 
+    .const 'Sub' $P457 = "130_1274564774.16047" 
     capture_lex $P457
-    .const 'Sub' $P446 = "127_1274022883.50471" 
+    .const 'Sub' $P446 = "127_1274564774.16047" 
     capture_lex $P446
-    .const 'Sub' $P437 = "123_1274022883.50471" 
+    .const 'Sub' $P437 = "123_1274564774.16047" 
     capture_lex $P437
-    .const 'Sub' $P431 = "121_1274022883.50471" 
+    .const 'Sub' $P431 = "121_1274564774.16047" 
     capture_lex $P431
-    .const 'Sub' $P425 = "119_1274022883.50471" 
+    .const 'Sub' $P425 = "119_1274564774.16047" 
     capture_lex $P425
-    .const 'Sub' $P419 = "117_1274022883.50471" 
+    .const 'Sub' $P419 = "117_1274564774.16047" 
     capture_lex $P419
-    .const 'Sub' $P413 = "115_1274022883.50471" 
+    .const 'Sub' $P413 = "115_1274564774.16047" 
     capture_lex $P413
-    .const 'Sub' $P405 = "113_1274022883.50471" 
+    .const 'Sub' $P405 = "113_1274564774.16047" 
     capture_lex $P405
-    .const 'Sub' $P394 = "111_1274022883.50471" 
+    .const 'Sub' $P394 = "111_1274564774.16047" 
     capture_lex $P394
-    .const 'Sub' $P383 = "109_1274022883.50471" 
+    .const 'Sub' $P383 = "109_1274564774.16047" 
     capture_lex $P383
-    .const 'Sub' $P377 = "107_1274022883.50471" 
+    .const 'Sub' $P377 = "107_1274564774.16047" 
     capture_lex $P377
-    .const 'Sub' $P371 = "105_1274022883.50471" 
+    .const 'Sub' $P371 = "105_1274564774.16047" 
     capture_lex $P371
-    .const 'Sub' $P365 = "103_1274022883.50471" 
+    .const 'Sub' $P365 = "103_1274564774.16047" 
     capture_lex $P365
-    .const 'Sub' $P359 = "101_1274022883.50471" 
+    .const 'Sub' $P359 = "101_1274564774.16047" 
     capture_lex $P359
-    .const 'Sub' $P353 = "99_1274022883.50471" 
+    .const 'Sub' $P353 = "99_1274564774.16047" 
     capture_lex $P353
-    .const 'Sub' $P347 = "97_1274022883.50471" 
+    .const 'Sub' $P347 = "97_1274564774.16047" 
     capture_lex $P347
-    .const 'Sub' $P341 = "95_1274022883.50471" 
+    .const 'Sub' $P341 = "95_1274564774.16047" 
     capture_lex $P341
-    .const 'Sub' $P335 = "93_1274022883.50471" 
+    .const 'Sub' $P335 = "93_1274564774.16047" 
     capture_lex $P335
-    .const 'Sub' $P323 = "89_1274022883.50471" 
+    .const 'Sub' $P323 = "89_1274564774.16047" 
     capture_lex $P323
-    .const 'Sub' $P311 = "87_1274022883.50471" 
+    .const 'Sub' $P311 = "87_1274564774.16047" 
     capture_lex $P311
-    .const 'Sub' $P304 = "85_1274022883.50471" 
+    .const 'Sub' $P304 = "85_1274564774.16047" 
     capture_lex $P304
-    .const 'Sub' $P287 = "83_1274022883.50471" 
+    .const 'Sub' $P287 = "83_1274564774.16047" 
     capture_lex $P287
-    .const 'Sub' $P280 = "81_1274022883.50471" 
+    .const 'Sub' $P280 = "81_1274564774.16047" 
     capture_lex $P280
-    .const 'Sub' $P274 = "79_1274022883.50471" 
+    .const 'Sub' $P274 = "79_1274564774.16047" 
     capture_lex $P274
-    .const 'Sub' $P268 = "77_1274022883.50471" 
+    .const 'Sub' $P268 = "77_1274564774.16047" 
     capture_lex $P268
-    .const 'Sub' $P261 = "75_1274022883.50471" 
+    .const 'Sub' $P261 = "75_1274564774.16047" 
     capture_lex $P261
-    .const 'Sub' $P254 = "73_1274022883.50471" 
+    .const 'Sub' $P254 = "73_1274564774.16047" 
     capture_lex $P254
-    .const 'Sub' $P247 = "71_1274022883.50471" 
+    .const 'Sub' $P247 = "71_1274564774.16047" 
     capture_lex $P247
-    .const 'Sub' $P240 = "69_1274022883.50471" 
+    .const 'Sub' $P240 = "69_1274564774.16047" 
     capture_lex $P240
-    .const 'Sub' $P234 = "67_1274022883.50471" 
+    .const 'Sub' $P234 = "67_1274564774.16047" 
     capture_lex $P234
-    .const 'Sub' $P228 = "65_1274022883.50471" 
+    .const 'Sub' $P228 = "65_1274564774.16047" 
     capture_lex $P228
-    .const 'Sub' $P222 = "63_1274022883.50471" 
+    .const 'Sub' $P222 = "63_1274564774.16047" 
     capture_lex $P222
-    .const 'Sub' $P216 = "61_1274022883.50471" 
+    .const 'Sub' $P216 = "61_1274564774.16047" 
     capture_lex $P216
-    .const 'Sub' $P210 = "59_1274022883.50471" 
+    .const 'Sub' $P210 = "59_1274564774.16047" 
     capture_lex $P210
-    .const 'Sub' $P205 = "57_1274022883.50471" 
+    .const 'Sub' $P205 = "57_1274564774.16047" 
     capture_lex $P205
-    .const 'Sub' $P200 = "55_1274022883.50471" 
+    .const 'Sub' $P200 = "55_1274564774.16047" 
     capture_lex $P200
-    .const 'Sub' $P194 = "53_1274022883.50471" 
+    .const 'Sub' $P194 = "53_1274564774.16047" 
     capture_lex $P194
-    .const 'Sub' $P188 = "51_1274022883.50471" 
+    .const 'Sub' $P188 = "51_1274564774.16047" 
     capture_lex $P188
-    .const 'Sub' $P182 = "49_1274022883.50471" 
+    .const 'Sub' $P182 = "49_1274564774.16047" 
     capture_lex $P182
-    .const 'Sub' $P166 = "44_1274022883.50471" 
+    .const 'Sub' $P166 = "44_1274564774.16047" 
     capture_lex $P166
-    .const 'Sub' $P154 = "42_1274022883.50471" 
+    .const 'Sub' $P154 = "42_1274564774.16047" 
     capture_lex $P154
-    .const 'Sub' $P147 = "40_1274022883.50471" 
+    .const 'Sub' $P147 = "40_1274564774.16047" 
     capture_lex $P147
-    .const 'Sub' $P140 = "38_1274022883.50471" 
+    .const 'Sub' $P140 = "38_1274564774.16047" 
     capture_lex $P140
-    .const 'Sub' $P133 = "36_1274022883.50471" 
+    .const 'Sub' $P133 = "36_1274564774.16047" 
     capture_lex $P133
-    .const 'Sub' $P114 = "31_1274022883.50471" 
+    .const 'Sub' $P114 = "31_1274564774.16047" 
     capture_lex $P114
-    .const 'Sub' $P101 = "28_1274022883.50471" 
+    .const 'Sub' $P101 = "28_1274564774.16047" 
     capture_lex $P101
-    .const 'Sub' $P94 = "26_1274022883.50471" 
+    .const 'Sub' $P94 = "26_1274564774.16047" 
     capture_lex $P94
-    .const 'Sub' $P82 = "24_1274022883.50471" 
+    .const 'Sub' $P82 = "24_1274564774.16047" 
     capture_lex $P82
-    .const 'Sub' $P75 = "22_1274022883.50471" 
+    .const 'Sub' $P75 = "22_1274564774.16047" 
     capture_lex $P75
-    .const 'Sub' $P63 = "20_1274022883.50471" 
+    .const 'Sub' $P63 = "20_1274564774.16047" 
     capture_lex $P63
-    .const 'Sub' $P56 = "18_1274022883.50471" 
+    .const 'Sub' $P56 = "18_1274564774.16047" 
     capture_lex $P56
-    .const 'Sub' $P46 = "15_1274022883.50471" 
+    .const 'Sub' $P46 = "15_1274564774.16047" 
     capture_lex $P46
-    .const 'Sub' $P38 = "13_1274022883.50471" 
+    .const 'Sub' $P38 = "13_1274564774.16047" 
     capture_lex $P38
-    .const 'Sub' $P15 = "12_1274022883.50471" 
+    .const 'Sub' $P15 = "12_1274564774.16047" 
     capture_lex $P15
-    .const 'Sub' $P571 = "156_1274022883.50471" 
+    .const 'Sub' $P571 = "156_1274564774.16047" 
     capture_lex $P571
     .return ($P571)
-    .const 'Sub' $P580 = "158_1274022883.50471" 
+    .const 'Sub' $P580 = "158_1274564774.16047" 
     .return ($P580)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "obs"  :subid("12_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "obs"  :subid("12_1274564774.16047") :method :outer("11_1274564774.16047")
     .param pmc param_18
     .param pmc param_19
     .param pmc param_20 :optional
@@ -226,7 +226,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "ws"  :subid("13_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "ws"  :subid("13_1274564774.16047") :method :outer("11_1274564774.16047")
 .annotate 'line', 3
     .local string rx39_tgt
     .local int rx39_pos
@@ -308,7 +308,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__ws"  :subid("14_1274022883.50471") :method
+.sub "!PREFIX__ws"  :subid("14_1274564774.16047") :method
 .annotate 'line', 3
     new $P41, "ResizablePMCArray"
     push $P41, ""
@@ -317,9 +317,9 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "normspace"  :subid("15_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "normspace"  :subid("15_1274564774.16047") :method :outer("11_1274564774.16047")
 .annotate 'line', 3
-    .const 'Sub' $P52 = "17_1274022883.50471" 
+    .const 'Sub' $P52 = "17_1274564774.16047" 
     capture_lex $P52
     .local string rx47_tgt
     .local int rx47_pos
@@ -353,7 +353,7 @@
 .annotate 'line', 10
   # rx subrule "before" subtype=zerowidth negate=
     rx47_cur."!cursor_pos"(rx47_pos)
-    .const 'Sub' $P52 = "17_1274022883.50471" 
+    .const 'Sub' $P52 = "17_1274564774.16047" 
     capture_lex $P52
     $P10 = rx47_cur."before"($P52)
     unless $P10, rx47_fail
@@ -381,7 +381,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__normspace"  :subid("16_1274022883.50471") :method
+.sub "!PREFIX__normspace"  :subid("16_1274564774.16047") :method
 .annotate 'line', 3
     new $P49, "ResizablePMCArray"
     push $P49, ""
@@ -390,7 +390,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block51"  :anon :subid("17_1274022883.50471") :method :outer("15_1274022883.50471")
+.sub "_block51"  :anon :subid("17_1274564774.16047") :method :outer("15_1274564774.16047")
 .annotate 'line', 10
     .local string rx53_tgt
     .local int rx53_pos
@@ -458,7 +458,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "arg"  :subid("18_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "arg"  :subid("18_1274564774.16047") :method :outer("11_1274564774.16047")
 .annotate 'line', 3
     .local string rx57_tgt
     .local int rx57_pos
@@ -569,7 +569,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__arg"  :subid("19_1274022883.50471") :method
+.sub "!PREFIX__arg"  :subid("19_1274564774.16047") :method
 .annotate 'line', 3
     new $P59, "ResizablePMCArray"
     push $P59, ""
@@ -580,7 +580,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "arglist"  :subid("20_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "arglist"  :subid("20_1274564774.16047") :method :outer("11_1274564774.16047")
 .annotate 'line', 3
     .local string rx64_tgt
     .local int rx64_pos
@@ -686,7 +686,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__arglist"  :subid("21_1274022883.50471") :method
+.sub "!PREFIX__arglist"  :subid("21_1274564774.16047") :method
 .annotate 'line', 3
     new $P66, "ResizablePMCArray"
     push $P66, ""
@@ -695,7 +695,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "TOP"  :subid("22_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "TOP"  :subid("22_1274564774.16047") :method :outer("11_1274564774.16047")
 .annotate 'line', 3
     .local string rx76_tgt
     .local int rx76_pos
@@ -768,7 +768,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__TOP"  :subid("23_1274022883.50471") :method
+.sub "!PREFIX__TOP"  :subid("23_1274564774.16047") :method
 .annotate 'line', 3
     $P78 = self."!PREFIX__!subrule"("nibbler", "")
     new $P79, "ResizablePMCArray"
@@ -778,7 +778,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "nibbler"  :subid("24_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "nibbler"  :subid("24_1274564774.16047") :method :outer("11_1274564774.16047")
 .annotate 'line', 3
     .local string rx83_tgt
     .local int rx83_pos
@@ -946,7 +946,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__nibbler"  :subid("25_1274022883.50471") :method
+.sub "!PREFIX__nibbler"  :subid("25_1274564774.16047") :method
 .annotate 'line', 3
     new $P85, "ResizablePMCArray"
     push $P85, ""
@@ -955,7 +955,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "termish"  :subid("26_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "termish"  :subid("26_1274564774.16047") :method :outer("11_1274564774.16047")
 .annotate 'line', 3
     .local string rx95_tgt
     .local int rx95_pos
@@ -1023,7 +1023,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__termish"  :subid("27_1274022883.50471") :method
+.sub "!PREFIX__termish"  :subid("27_1274564774.16047") :method
 .annotate 'line', 3
     new $P97, "ResizablePMCArray"
     push $P97, ""
@@ -1032,9 +1032,9 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantified_atom"  :subid("28_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "quantified_atom"  :subid("28_1274564774.16047") :method :outer("11_1274564774.16047")
 .annotate 'line', 3
-    .const 'Sub' $P110 = "30_1274022883.50471" 
+    .const 'Sub' $P110 = "30_1274564774.16047" 
     capture_lex $P110
     .local string rx102_tgt
     .local int rx102_pos
@@ -1097,7 +1097,7 @@
   alt108_1:
   # rx subrule "before" subtype=zerowidth negate=
     rx102_cur."!cursor_pos"(rx102_pos)
-    .const 'Sub' $P110 = "30_1274022883.50471" 
+    .const 'Sub' $P110 = "30_1274564774.16047" 
     capture_lex $P110
     $P10 = rx102_cur."before"($P110)
     unless $P10, rx102_fail
@@ -1135,7 +1135,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantified_atom"  :subid("29_1274022883.50471") :method
+.sub "!PREFIX__quantified_atom"  :subid("29_1274564774.16047") :method
 .annotate 'line', 3
     $P104 = self."!PREFIX__!subrule"("atom", "")
     new $P105, "ResizablePMCArray"
@@ -1145,7 +1145,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block109"  :anon :subid("30_1274022883.50471") :method :outer("28_1274022883.50471")
+.sub "_block109"  :anon :subid("30_1274564774.16047") :method :outer("28_1274564774.16047")
 .annotate 'line', 41
     .local string rx111_tgt
     .local int rx111_pos
@@ -1201,9 +1201,9 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "atom"  :subid("31_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "atom"  :subid("31_1274564774.16047") :method :outer("11_1274564774.16047")
 .annotate 'line', 3
-    .const 'Sub' $P125 = "33_1274022883.50471" 
+    .const 'Sub' $P125 = "33_1274564774.16047" 
     capture_lex $P125
     .local string rx115_tgt
     .local int rx115_pos
@@ -1263,7 +1263,7 @@
   rxquantg122_done:
   # rx subrule "before" subtype=zerowidth negate=
     rx115_cur."!cursor_pos"(rx115_pos)
-    .const 'Sub' $P125 = "33_1274022883.50471" 
+    .const 'Sub' $P125 = "33_1274564774.16047" 
     capture_lex $P125
     $P10 = rx115_cur."before"($P125)
     unless $P10, rx115_fail
@@ -1300,7 +1300,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__atom"  :subid("32_1274022883.50471") :method
+.sub "!PREFIX__atom"  :subid("32_1274564774.16047") :method
 .annotate 'line', 3
     $P117 = self."!PREFIX__!subrule"("metachar", "")
     new $P118, "ResizablePMCArray"
@@ -1311,7 +1311,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block124"  :anon :subid("33_1274022883.50471") :method :outer("31_1274022883.50471")
+.sub "_block124"  :anon :subid("33_1274564774.16047") :method :outer("31_1274564774.16047")
 .annotate 'line', 47
     .local string rx126_tgt
     .local int rx126_pos
@@ -1366,7 +1366,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantifier"  :subid("34_1274022883.50471") :method
+.sub "quantifier"  :subid("34_1274564774.16047") :method
 .annotate 'line', 52
     $P130 = self."!protoregex"("quantifier")
     .return ($P130)
@@ -1374,7 +1374,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantifier"  :subid("35_1274022883.50471") :method
+.sub "!PREFIX__quantifier"  :subid("35_1274564774.16047") :method
 .annotate 'line', 52
     $P132 = self."!PREFIX__!protoregex"("quantifier")
     .return ($P132)
@@ -1382,7 +1382,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantifier:sym<*>"  :subid("36_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "quantifier:sym<*>"  :subid("36_1274564774.16047") :method :outer("11_1274564774.16047")
 .annotate 'line', 3
     .local string rx134_tgt
     .local int rx134_pos
@@ -1461,7 +1461,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantifier:sym<*>"  :subid("37_1274022883.50471") :method
+.sub "!PREFIX__quantifier:sym<*>"  :subid("37_1274564774.16047") :method
 .annotate 'line', 3
     $P136 = self."!PREFIX__!subrule"("backmod", "*")
     new $P137, "ResizablePMCArray"
@@ -1471,7 +1471,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantifier:sym<+>"  :subid("38_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "quantifier:sym<+>"  :subid("38_1274564774.16047") :method :outer("11_1274564774.16047")
 .annotate 'line', 3
     .local string rx141_tgt
     .local int rx141_pos
@@ -1550,7 +1550,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantifier:sym<+>"  :subid("39_1274022883.50471") :method
+.sub "!PREFIX__quantifier:sym<+>"  :subid("39_1274564774.16047") :method
 .annotate 'line', 3
     $P143 = self."!PREFIX__!subrule"("backmod", "+")
     new $P144, "ResizablePMCArray"
@@ -1560,7 +1560,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantifier:sym<?>"  :subid("40_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "quantifier:sym<?>"  :subid("40_1274564774.16047") :method :outer("11_1274564774.16047")
 .annotate 'line', 3
     .local string rx148_tgt
     .local int rx148_pos
@@ -1639,7 +1639,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantifier:sym<?>"  :subid("41_1274022883.50471") :method
+.sub "!PREFIX__quantifier:sym<?>"  :subid("41_1274564774.16047") :method
 .annotate 'line', 3
     $P150 = self."!PREFIX__!subrule"("backmod", "?")
     new $P151, "ResizablePMCArray"
@@ -1649,7 +1649,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantifier:sym<**>"  :subid("42_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "quantifier:sym<**>"  :subid("42_1274564774.16047") :method :outer("11_1274564774.16047")
 .annotate 'line', 3
     .local string rx155_tgt
     .local int rx155_pos
@@ -1838,7 +1838,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantifier:sym<**>"  :subid("43_1274022883.50471") :method
+.sub "!PREFIX__quantifier:sym<**>"  :subid("43_1274564774.16047") :method
 .annotate 'line', 3
     new $P157, "ResizablePMCArray"
     push $P157, "**"
@@ -1847,9 +1847,9 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backmod"  :subid("44_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "backmod"  :subid("44_1274564774.16047") :method :outer("11_1274564774.16047")
 .annotate 'line', 3
-    .const 'Sub' $P175 = "46_1274022883.50471" 
+    .const 'Sub' $P175 = "46_1274564774.16047" 
     capture_lex $P175
     .local string rx167_tgt
     .local int rx167_pos
@@ -1919,7 +1919,7 @@
   alt173_2:
   # rx subrule "before" subtype=zerowidth negate=1
     rx167_cur."!cursor_pos"(rx167_pos)
-    .const 'Sub' $P175 = "46_1274022883.50471" 
+    .const 'Sub' $P175 = "46_1274564774.16047" 
     capture_lex $P175
     $P10 = rx167_cur."before"($P175)
     if $P10, rx167_fail
@@ -1943,7 +1943,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backmod"  :subid("45_1274022883.50471") :method
+.sub "!PREFIX__backmod"  :subid("45_1274564774.16047") :method
 .annotate 'line', 3
     new $P169, "ResizablePMCArray"
     push $P169, ""
@@ -1952,7 +1952,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block174"  :anon :subid("46_1274022883.50471") :method :outer("44_1274022883.50471")
+.sub "_block174"  :anon :subid("46_1274564774.16047") :method :outer("44_1274564774.16047")
 .annotate 'line', 71
     .local string rx176_tgt
     .local int rx176_pos
@@ -2008,7 +2008,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar"  :subid("47_1274022883.50471") :method
+.sub "metachar"  :subid("47_1274564774.16047") :method
 .annotate 'line', 73
     $P179 = self."!protoregex"("metachar")
     .return ($P179)
@@ -2016,7 +2016,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar"  :subid("48_1274022883.50471") :method
+.sub "!PREFIX__metachar"  :subid("48_1274564774.16047") :method
 .annotate 'line', 73
     $P181 = self."!PREFIX__!protoregex"("metachar")
     .return ($P181)
@@ -2024,7 +2024,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<ws>"  :subid("49_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "metachar:sym<ws>"  :subid("49_1274564774.16047") :method :outer("11_1274564774.16047")
 .annotate 'line', 3
     .local string rx183_tgt
     .local int rx183_pos
@@ -2080,7 +2080,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<ws>"  :subid("50_1274022883.50471") :method
+.sub "!PREFIX__metachar:sym<ws>"  :subid("50_1274564774.16047") :method
 .annotate 'line', 3
     $P185 = self."!PREFIX__!subrule"("", "")
     new $P186, "ResizablePMCArray"
@@ -2090,7 +2090,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<[ ]>"  :subid("51_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "metachar:sym<[ ]>"  :subid("51_1274564774.16047") :method :outer("11_1274564774.16047")
 .annotate 'line', 3
     .local string rx189_tgt
     .local int rx189_pos
@@ -2162,7 +2162,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<[ ]>"  :subid("52_1274022883.50471") :method
+.sub "!PREFIX__metachar:sym<[ ]>"  :subid("52_1274564774.16047") :method
 .annotate 'line', 3
     $P191 = self."!PREFIX__!subrule"("nibbler", "[")
     new $P192, "ResizablePMCArray"
@@ -2172,7 +2172,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<( )>"  :subid("53_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "metachar:sym<( )>"  :subid("53_1274564774.16047") :method :outer("11_1274564774.16047")
 .annotate 'line', 3
     .local string rx195_tgt
     .local int rx195_pos
@@ -2244,7 +2244,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<( )>"  :subid("54_1274022883.50471") :method
+.sub "!PREFIX__metachar:sym<( )>"  :subid("54_1274564774.16047") :method
 .annotate 'line', 3
     $P197 = self."!PREFIX__!subrule"("nibbler", "(")
     new $P198, "ResizablePMCArray"
@@ -2254,7 +2254,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<'>"  :subid("55_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "metachar:sym<'>"  :subid("55_1274564774.16047") :method :outer("11_1274564774.16047")
 .annotate 'line', 3
     .local string rx201_tgt
     .local int rx201_pos
@@ -2318,7 +2318,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<'>"  :subid("56_1274022883.50471") :method
+.sub "!PREFIX__metachar:sym<'>"  :subid("56_1274564774.16047") :method
 .annotate 'line', 3
     new $P203, "ResizablePMCArray"
     push $P203, "'"
@@ -2327,7 +2327,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<\">"  :subid("57_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "metachar:sym<\">"  :subid("57_1274564774.16047") :method :outer("11_1274564774.16047")
 .annotate 'line', 3
     .local string rx206_tgt
     .local int rx206_pos
@@ -2391,7 +2391,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<\">"  :subid("58_1274022883.50471") :method
+.sub "!PREFIX__metachar:sym<\">"  :subid("58_1274564774.16047") :method
 .annotate 'line', 3
     new $P208, "ResizablePMCArray"
     push $P208, "\""
@@ -2400,7 +2400,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<.>"  :subid("59_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "metachar:sym<.>"  :subid("59_1274564774.16047") :method :outer("11_1274564774.16047")
 .annotate 'line', 3
     .local string rx211_tgt
     .local int rx211_pos
@@ -2472,7 +2472,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<.>"  :subid("60_1274022883.50471") :method
+.sub "!PREFIX__metachar:sym<.>"  :subid("60_1274564774.16047") :method
 .annotate 'line', 3
     new $P213, "ResizablePMCArray"
     push $P213, "."
@@ -2481,7 +2481,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<^>"  :subid("61_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "metachar:sym<^>"  :subid("61_1274564774.16047") :method :outer("11_1274564774.16047")
 .annotate 'line', 3
     .local string rx217_tgt
     .local int rx217_pos
@@ -2553,7 +2553,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<^>"  :subid("62_1274022883.50471") :method
+.sub "!PREFIX__metachar:sym<^>"  :subid("62_1274564774.16047") :method
 .annotate 'line', 3
     new $P219, "ResizablePMCArray"
     push $P219, "^"
@@ -2562,7 +2562,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<^^>"  :subid("63_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "metachar:sym<^^>"  :subid("63_1274564774.16047") :method :outer("11_1274564774.16047")
 .annotate 'line', 3
     .local string rx223_tgt
     .local int rx223_pos
@@ -2634,7 +2634,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<^^>"  :subid("64_1274022883.50471") :method
+.sub "!PREFIX__metachar:sym<^^>"  :subid("64_1274564774.16047") :method
 .annotate 'line', 3
     new $P225, "ResizablePMCArray"
     push $P225, "^^"
@@ -2643,7 +2643,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<$>"  :subid("65_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "metachar:sym<$>"  :subid("65_1274564774.16047") :method :outer("11_1274564774.16047")
 .annotate 'line', 3
     .local string rx229_tgt
     .local int rx229_pos
@@ -2715,7 +2715,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<$>"  :subid("66_1274022883.50471") :method
+.sub "!PREFIX__metachar:sym<$>"  :subid("66_1274564774.16047") :method
 .annotate 'line', 3
     new $P231, "ResizablePMCArray"
     push $P231, "$"
@@ -2724,7 +2724,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<$$>"  :subid("67_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "metachar:sym<$$>"  :subid("67_1274564774.16047") :method :outer("11_1274564774.16047")
 .annotate 'line', 3
     .local string rx235_tgt
     .local int rx235_pos
@@ -2796,7 +2796,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<$$>"  :subid("68_1274022883.50471") :method
+.sub "!PREFIX__metachar:sym<$$>"  :subid("68_1274564774.16047") :method
 .annotate 'line', 3
     new $P237, "ResizablePMCArray"
     push $P237, "$$"
@@ -2805,7 +2805,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<:::>"  :subid("69_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "metachar:sym<:::>"  :subid("69_1274564774.16047") :method :outer("11_1274564774.16047")
 .annotate 'line', 3
     .local string rx241_tgt
     .local int rx241_pos
@@ -2882,7 +2882,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<:::>"  :subid("70_1274022883.50471") :method
+.sub "!PREFIX__metachar:sym<:::>"  :subid("70_1274564774.16047") :method
 .annotate 'line', 3
     $P243 = self."!PREFIX__!subrule"("", ":::")
     new $P244, "ResizablePMCArray"
@@ -2892,7 +2892,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<::>"  :subid("71_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "metachar:sym<::>"  :subid("71_1274564774.16047") :method :outer("11_1274564774.16047")
 .annotate 'line', 3
     .local string rx248_tgt
     .local int rx248_pos
@@ -2969,7 +2969,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<::>"  :subid("72_1274022883.50471") :method
+.sub "!PREFIX__metachar:sym<::>"  :subid("72_1274564774.16047") :method
 .annotate 'line', 3
     $P250 = self."!PREFIX__!subrule"("", "::")
     new $P251, "ResizablePMCArray"
@@ -2979,7 +2979,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<lwb>"  :subid("73_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "metachar:sym<lwb>"  :subid("73_1274564774.16047") :method :outer("11_1274564774.16047")
 .annotate 'line', 3
     .local string rx255_tgt
     .local int rx255_pos
@@ -3064,7 +3064,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<lwb>"  :subid("74_1274022883.50471") :method
+.sub "!PREFIX__metachar:sym<lwb>"  :subid("74_1274564774.16047") :method
 .annotate 'line', 3
     new $P257, "ResizablePMCArray"
     push $P257, unicode:"\x{ab}"
@@ -3074,7 +3074,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<rwb>"  :subid("75_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "metachar:sym<rwb>"  :subid("75_1274564774.16047") :method :outer("11_1274564774.16047")
 .annotate 'line', 3
     .local string rx262_tgt
     .local int rx262_pos
@@ -3159,7 +3159,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<rwb>"  :subid("76_1274022883.50471") :method
+.sub "!PREFIX__metachar:sym<rwb>"  :subid("76_1274564774.16047") :method
 .annotate 'line', 3
     new $P264, "ResizablePMCArray"
     push $P264, unicode:"\x{bb}"
@@ -3169,7 +3169,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<bs>"  :subid("77_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "metachar:sym<bs>"  :subid("77_1274564774.16047") :method :outer("11_1274564774.16047")
 .annotate 'line', 3
     .local string rx269_tgt
     .local int rx269_pos
@@ -3234,7 +3234,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<bs>"  :subid("78_1274022883.50471") :method
+.sub "!PREFIX__metachar:sym<bs>"  :subid("78_1274564774.16047") :method
 .annotate 'line', 3
     $P271 = self."!PREFIX__!subrule"("backslash", "\\")
     new $P272, "ResizablePMCArray"
@@ -3244,7 +3244,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<mod>"  :subid("79_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "metachar:sym<mod>"  :subid("79_1274564774.16047") :method :outer("11_1274564774.16047")
 .annotate 'line', 3
     .local string rx275_tgt
     .local int rx275_pos
@@ -3302,7 +3302,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<mod>"  :subid("80_1274022883.50471") :method
+.sub "!PREFIX__metachar:sym<mod>"  :subid("80_1274564774.16047") :method
 .annotate 'line', 3
     $P277 = self."!PREFIX__!subrule"("mod_internal", "")
     new $P278, "ResizablePMCArray"
@@ -3312,7 +3312,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<~>"  :subid("81_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "metachar:sym<~>"  :subid("81_1274564774.16047") :method :outer("11_1274564774.16047")
 .annotate 'line', 3
     .local string rx281_tgt
     .local int rx281_pos
@@ -3411,7 +3411,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<~>"  :subid("82_1274022883.50471") :method
+.sub "!PREFIX__metachar:sym<~>"  :subid("82_1274564774.16047") :method
 .annotate 'line', 3
     $P283 = self."!PREFIX__!subrule"("", "~")
     new $P284, "ResizablePMCArray"
@@ -3421,7 +3421,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<{*}>"  :subid("83_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "metachar:sym<{*}>"  :subid("83_1274564774.16047") :method :outer("11_1274564774.16047")
 .annotate 'line', 3
     .local string rx288_tgt
     .local int rx288_pos
@@ -3588,7 +3588,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<{*}>"  :subid("84_1274022883.50471") :method
+.sub "!PREFIX__metachar:sym<{*}>"  :subid("84_1274564774.16047") :method
 .annotate 'line', 3
     new $P290, "ResizablePMCArray"
     push $P290, "{*}"
@@ -3597,7 +3597,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<assert>"  :subid("85_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "metachar:sym<assert>"  :subid("85_1274564774.16047") :method :outer("11_1274564774.16047")
 .annotate 'line', 3
     .local string rx305_tgt
     .local int rx305_pos
@@ -3682,7 +3682,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<assert>"  :subid("86_1274022883.50471") :method
+.sub "!PREFIX__metachar:sym<assert>"  :subid("86_1274564774.16047") :method
 .annotate 'line', 3
     $P307 = self."!PREFIX__!subrule"("assertion", "<")
     new $P308, "ResizablePMCArray"
@@ -3692,7 +3692,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<var>"  :subid("87_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "metachar:sym<var>"  :subid("87_1274564774.16047") :method :outer("11_1274564774.16047")
 .annotate 'line', 3
     .local string rx312_tgt
     .local int rx312_pos
@@ -3854,7 +3854,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<var>"  :subid("88_1274022883.50471") :method
+.sub "!PREFIX__metachar:sym<var>"  :subid("88_1274564774.16047") :method
 .annotate 'line', 3
     new $P314, "ResizablePMCArray"
     push $P314, "$"
@@ -3864,7 +3864,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<PIR>"  :subid("89_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "metachar:sym<PIR>"  :subid("89_1274564774.16047") :method :outer("11_1274564774.16047")
 .annotate 'line', 3
     .local string rx324_tgt
     .local int rx324_pos
@@ -3955,7 +3955,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<PIR>"  :subid("90_1274022883.50471") :method
+.sub "!PREFIX__metachar:sym<PIR>"  :subid("90_1274564774.16047") :method
 .annotate 'line', 3
     new $P326, "ResizablePMCArray"
     push $P326, ":PIR{{"
@@ -3964,7 +3964,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash"  :subid("91_1274022883.50471") :method
+.sub "backslash"  :subid("91_1274564774.16047") :method
 .annotate 'line', 120
     $P332 = self."!protoregex"("backslash")
     .return ($P332)
@@ -3972,7 +3972,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash"  :subid("92_1274022883.50471") :method
+.sub "!PREFIX__backslash"  :subid("92_1274564774.16047") :method
 .annotate 'line', 120
     $P334 = self."!PREFIX__!protoregex"("backslash")
     .return ($P334)
@@ -3980,7 +3980,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<w>"  :subid("93_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "backslash:sym<w>"  :subid("93_1274564774.16047") :method :outer("11_1274564774.16047")
 .annotate 'line', 3
     .local string rx336_tgt
     .local int rx336_pos
@@ -4052,7 +4052,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<w>"  :subid("94_1274022883.50471") :method
+.sub "!PREFIX__backslash:sym<w>"  :subid("94_1274564774.16047") :method
 .annotate 'line', 3
     new $P338, "ResizablePMCArray"
     push $P338, "N"
@@ -4068,7 +4068,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<b>"  :subid("95_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "backslash:sym<b>"  :subid("95_1274564774.16047") :method :outer("11_1274564774.16047")
 .annotate 'line', 3
     .local string rx342_tgt
     .local int rx342_pos
@@ -4140,7 +4140,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<b>"  :subid("96_1274022883.50471") :method
+.sub "!PREFIX__backslash:sym<b>"  :subid("96_1274564774.16047") :method
 .annotate 'line', 3
     new $P344, "ResizablePMCArray"
     push $P344, "B"
@@ -4150,7 +4150,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<e>"  :subid("97_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "backslash:sym<e>"  :subid("97_1274564774.16047") :method :outer("11_1274564774.16047")
 .annotate 'line', 3
     .local string rx348_tgt
     .local int rx348_pos
@@ -4222,7 +4222,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<e>"  :subid("98_1274022883.50471") :method
+.sub "!PREFIX__backslash:sym<e>"  :subid("98_1274564774.16047") :method
 .annotate 'line', 3
     new $P350, "ResizablePMCArray"
     push $P350, "E"
@@ -4232,7 +4232,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<f>"  :subid("99_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "backslash:sym<f>"  :subid("99_1274564774.16047") :method :outer("11_1274564774.16047")
 .annotate 'line', 3
     .local string rx354_tgt
     .local int rx354_pos
@@ -4304,7 +4304,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<f>"  :subid("100_1274022883.50471") :method
+.sub "!PREFIX__backslash:sym<f>"  :subid("100_1274564774.16047") :method
 .annotate 'line', 3
     new $P356, "ResizablePMCArray"
     push $P356, "F"
@@ -4314,7 +4314,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<h>"  :subid("101_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "backslash:sym<h>"  :subid("101_1274564774.16047") :method :outer("11_1274564774.16047")
 .annotate 'line', 3
     .local string rx360_tgt
     .local int rx360_pos
@@ -4386,7 +4386,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<h>"  :subid("102_1274022883.50471") :method
+.sub "!PREFIX__backslash:sym<h>"  :subid("102_1274564774.16047") :method
 .annotate 'line', 3
     new $P362, "ResizablePMCArray"
     push $P362, "H"
@@ -4396,7 +4396,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<r>"  :subid("103_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "backslash:sym<r>"  :subid("103_1274564774.16047") :method :outer("11_1274564774.16047")
 .annotate 'line', 3
     .local string rx366_tgt
     .local int rx366_pos
@@ -4468,7 +4468,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<r>"  :subid("104_1274022883.50471") :method
+.sub "!PREFIX__backslash:sym<r>"  :subid("104_1274564774.16047") :method
 .annotate 'line', 3
     new $P368, "ResizablePMCArray"
     push $P368, "R"
@@ -4478,7 +4478,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<t>"  :subid("105_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "backslash:sym<t>"  :subid("105_1274564774.16047") :method :outer("11_1274564774.16047")
 .annotate 'line', 3
     .local string rx372_tgt
     .local int rx372_pos
@@ -4550,7 +4550,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<t>"  :subid("106_1274022883.50471") :method
+.sub "!PREFIX__backslash:sym<t>"  :subid("106_1274564774.16047") :method
 .annotate 'line', 3
     new $P374, "ResizablePMCArray"
     push $P374, "T"
@@ -4560,7 +4560,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<v>"  :subid("107_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "backslash:sym<v>"  :subid("107_1274564774.16047") :method :outer("11_1274564774.16047")
 .annotate 'line', 3
     .local string rx378_tgt
     .local int rx378_pos
@@ -4632,7 +4632,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<v>"  :subid("108_1274022883.50471") :method
+.sub "!PREFIX__backslash:sym<v>"  :subid("108_1274564774.16047") :method
 .annotate 'line', 3
     new $P380, "ResizablePMCArray"
     push $P380, "V"
@@ -4642,7 +4642,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<o>"  :subid("109_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "backslash:sym<o>"  :subid("109_1274564774.16047") :method :outer("11_1274564774.16047")
 .annotate 'line', 3
     .local string rx384_tgt
     .local int rx384_pos
@@ -4748,7 +4748,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<o>"  :subid("110_1274022883.50471") :method
+.sub "!PREFIX__backslash:sym<o>"  :subid("110_1274564774.16047") :method
 .annotate 'line', 3
     $P386 = self."!PREFIX__!subrule"("octints", "O[")
     $P387 = self."!PREFIX__!subrule"("octint", "O")
@@ -4764,7 +4764,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<x>"  :subid("111_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "backslash:sym<x>"  :subid("111_1274564774.16047") :method :outer("11_1274564774.16047")
 .annotate 'line', 3
     .local string rx395_tgt
     .local int rx395_pos
@@ -4870,7 +4870,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<x>"  :subid("112_1274022883.50471") :method
+.sub "!PREFIX__backslash:sym<x>"  :subid("112_1274564774.16047") :method
 .annotate 'line', 3
     $P397 = self."!PREFIX__!subrule"("hexints", "X[")
     $P398 = self."!PREFIX__!subrule"("hexint", "X")
@@ -4886,7 +4886,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<c>"  :subid("113_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "backslash:sym<c>"  :subid("113_1274564774.16047") :method :outer("11_1274564774.16047")
 .annotate 'line', 3
     .local string rx406_tgt
     .local int rx406_pos
@@ -4965,7 +4965,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<c>"  :subid("114_1274022883.50471") :method
+.sub "!PREFIX__backslash:sym<c>"  :subid("114_1274564774.16047") :method
 .annotate 'line', 3
     $P408 = self."!PREFIX__!subrule"("charspec", "C")
     $P409 = self."!PREFIX__!subrule"("charspec", "c")
@@ -4977,7 +4977,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<A>"  :subid("115_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "backslash:sym<A>"  :subid("115_1274564774.16047") :method :outer("11_1274564774.16047")
 .annotate 'line', 3
     .local string rx414_tgt
     .local int rx414_pos
@@ -5040,7 +5040,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<A>"  :subid("116_1274022883.50471") :method
+.sub "!PREFIX__backslash:sym<A>"  :subid("116_1274564774.16047") :method
 .annotate 'line', 3
     $P416 = self."!PREFIX__!subrule"("", "A")
     new $P417, "ResizablePMCArray"
@@ -5050,7 +5050,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<z>"  :subid("117_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "backslash:sym<z>"  :subid("117_1274564774.16047") :method :outer("11_1274564774.16047")
 .annotate 'line', 3
     .local string rx420_tgt
     .local int rx420_pos
@@ -5113,7 +5113,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<z>"  :subid("118_1274022883.50471") :method
+.sub "!PREFIX__backslash:sym<z>"  :subid("118_1274564774.16047") :method
 .annotate 'line', 3
     $P422 = self."!PREFIX__!subrule"("", "z")
     new $P423, "ResizablePMCArray"
@@ -5123,7 +5123,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<Z>"  :subid("119_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "backslash:sym<Z>"  :subid("119_1274564774.16047") :method :outer("11_1274564774.16047")
 .annotate 'line', 3
     .local string rx426_tgt
     .local int rx426_pos
@@ -5186,7 +5186,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<Z>"  :subid("120_1274022883.50471") :method
+.sub "!PREFIX__backslash:sym<Z>"  :subid("120_1274564774.16047") :method
 .annotate 'line', 3
     $P428 = self."!PREFIX__!subrule"("", "Z")
     new $P429, "ResizablePMCArray"
@@ -5196,7 +5196,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<Q>"  :subid("121_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "backslash:sym<Q>"  :subid("121_1274564774.16047") :method :outer("11_1274564774.16047")
 .annotate 'line', 3
     .local string rx432_tgt
     .local int rx432_pos
@@ -5259,7 +5259,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<Q>"  :subid("122_1274022883.50471") :method
+.sub "!PREFIX__backslash:sym<Q>"  :subid("122_1274564774.16047") :method
 .annotate 'line', 3
     $P434 = self."!PREFIX__!subrule"("", "Q")
     new $P435, "ResizablePMCArray"
@@ -5269,7 +5269,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<misc>"  :subid("123_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "backslash:sym<misc>"  :subid("123_1274564774.16047") :method :outer("11_1274564774.16047")
 .annotate 'line', 3
     .local string rx438_tgt
     .local int rx438_pos
@@ -5326,7 +5326,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<misc>"  :subid("124_1274022883.50471") :method
+.sub "!PREFIX__backslash:sym<misc>"  :subid("124_1274564774.16047") :method
 .annotate 'line', 3
     new $P440, "ResizablePMCArray"
     push $P440, ""
@@ -5335,7 +5335,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion"  :subid("125_1274022883.50471") :method
+.sub "assertion"  :subid("125_1274564774.16047") :method
 .annotate 'line', 138
     $P443 = self."!protoregex"("assertion")
     .return ($P443)
@@ -5343,7 +5343,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion"  :subid("126_1274022883.50471") :method
+.sub "!PREFIX__assertion"  :subid("126_1274564774.16047") :method
 .annotate 'line', 138
     $P445 = self."!PREFIX__!protoregex"("assertion")
     .return ($P445)
@@ -5351,9 +5351,9 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion:sym<?>"  :subid("127_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "assertion:sym<?>"  :subid("127_1274564774.16047") :method :outer("11_1274564774.16047")
 .annotate 'line', 3
-    .const 'Sub' $P454 = "129_1274022883.50471" 
+    .const 'Sub' $P454 = "129_1274564774.16047" 
     capture_lex $P454
     .local string rx447_tgt
     .local int rx447_pos
@@ -5397,7 +5397,7 @@
     rx447_cur."!mark_push"(0, rx447_pos, $I10)
   # rx subrule "before" subtype=zerowidth negate=
     rx447_cur."!cursor_pos"(rx447_pos)
-    .const 'Sub' $P454 = "129_1274022883.50471" 
+    .const 'Sub' $P454 = "129_1274564774.16047" 
     capture_lex $P454
     $P10 = rx447_cur."before"($P454)
     unless $P10, rx447_fail
@@ -5430,7 +5430,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion:sym<?>"  :subid("128_1274022883.50471") :method
+.sub "!PREFIX__assertion:sym<?>"  :subid("128_1274564774.16047") :method
 .annotate 'line', 3
     $P449 = self."!PREFIX__!subrule"("assertion", "?")
     new $P450, "ResizablePMCArray"
@@ -5441,7 +5441,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block453"  :anon :subid("129_1274022883.50471") :method :outer("127_1274022883.50471")
+.sub "_block453"  :anon :subid("129_1274564774.16047") :method :outer("127_1274564774.16047")
 .annotate 'line', 140
     .local string rx455_tgt
     .local int rx455_pos
@@ -5497,9 +5497,9 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion:sym<!>"  :subid("130_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "assertion:sym<!>"  :subid("130_1274564774.16047") :method :outer("11_1274564774.16047")
 .annotate 'line', 3
-    .const 'Sub' $P465 = "132_1274022883.50471" 
+    .const 'Sub' $P465 = "132_1274564774.16047" 
     capture_lex $P465
     .local string rx458_tgt
     .local int rx458_pos
@@ -5543,7 +5543,7 @@
     rx458_cur."!mark_push"(0, rx458_pos, $I10)
   # rx subrule "before" subtype=zerowidth negate=
     rx458_cur."!cursor_pos"(rx458_pos)
-    .const 'Sub' $P465 = "132_1274022883.50471" 
+    .const 'Sub' $P465 = "132_1274564774.16047" 
     capture_lex $P465
     $P10 = rx458_cur."before"($P465)
     unless $P10, rx458_fail
@@ -5576,7 +5576,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion:sym<!>"  :subid("131_1274022883.50471") :method
+.sub "!PREFIX__assertion:sym<!>"  :subid("131_1274564774.16047") :method
 .annotate 'line', 3
     $P460 = self."!PREFIX__!subrule"("assertion", "!")
     new $P461, "ResizablePMCArray"
@@ -5587,7 +5587,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block464"  :anon :subid("132_1274022883.50471") :method :outer("130_1274022883.50471")
+.sub "_block464"  :anon :subid("132_1274564774.16047") :method :outer("130_1274564774.16047")
 .annotate 'line', 141
     .local string rx466_tgt
     .local int rx466_pos
@@ -5643,7 +5643,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion:sym<method>"  :subid("133_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "assertion:sym<method>"  :subid("133_1274564774.16047") :method :outer("11_1274564774.16047")
 .annotate 'line', 3
     .local string rx469_tgt
     .local int rx469_pos
@@ -5709,7 +5709,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion:sym<method>"  :subid("134_1274022883.50471") :method
+.sub "!PREFIX__assertion:sym<method>"  :subid("134_1274564774.16047") :method
 .annotate 'line', 3
     $P471 = self."!PREFIX__!subrule"("assertion", ".")
     new $P472, "ResizablePMCArray"
@@ -5719,9 +5719,9 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion:sym<name>"  :subid("135_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "assertion:sym<name>"  :subid("135_1274564774.16047") :method :outer("11_1274564774.16047")
 .annotate 'line', 3
-    .const 'Sub' $P483 = "137_1274022883.50471" 
+    .const 'Sub' $P483 = "137_1274564774.16047" 
     capture_lex $P483
     .local string rx475_tgt
     .local int rx475_pos
@@ -5786,7 +5786,7 @@
 .annotate 'line', 150
   # rx subrule "before" subtype=zerowidth negate=
     rx475_cur."!cursor_pos"(rx475_pos)
-    .const 'Sub' $P483 = "137_1274022883.50471" 
+    .const 'Sub' $P483 = "137_1274564774.16047" 
     capture_lex $P483
     $P10 = rx475_cur."before"($P483)
     unless $P10, rx475_fail
@@ -5893,7 +5893,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion:sym<name>"  :subid("136_1274022883.50471") :method
+.sub "!PREFIX__assertion:sym<name>"  :subid("136_1274564774.16047") :method
 .annotate 'line', 3
     new $P477, "ResizablePMCArray"
     push $P477, ""
@@ -5902,7 +5902,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block482"  :anon :subid("137_1274022883.50471") :method :outer("135_1274022883.50471")
+.sub "_block482"  :anon :subid("137_1274564774.16047") :method :outer("135_1274564774.16047")
 .annotate 'line', 150
     .local string rx484_tgt
     .local int rx484_pos
@@ -5958,9 +5958,9 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion:sym<[>"  :subid("138_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "assertion:sym<[>"  :subid("138_1274564774.16047") :method :outer("11_1274564774.16047")
 .annotate 'line', 3
-    .const 'Sub' $P493 = "140_1274022883.50471" 
+    .const 'Sub' $P493 = "140_1274564774.16047" 
     capture_lex $P493
     .local string rx488_tgt
     .local int rx488_pos
@@ -5995,7 +5995,7 @@
 .annotate 'line', 158
   # rx subrule "before" subtype=zerowidth negate=
     rx488_cur."!cursor_pos"(rx488_pos)
-    .const 'Sub' $P493 = "140_1274022883.50471" 
+    .const 'Sub' $P493 = "140_1274564774.16047" 
     capture_lex $P493
     $P10 = rx488_cur."before"($P493)
     unless $P10, rx488_fail
@@ -6033,7 +6033,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion:sym<[>"  :subid("139_1274022883.50471") :method
+.sub "!PREFIX__assertion:sym<[>"  :subid("139_1274564774.16047") :method
 .annotate 'line', 3
     new $P490, "ResizablePMCArray"
     push $P490, ""
@@ -6042,7 +6042,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block492"  :anon :subid("140_1274022883.50471") :method :outer("138_1274022883.50471")
+.sub "_block492"  :anon :subid("140_1274564774.16047") :method :outer("138_1274564774.16047")
 .annotate 'line', 158
     .local string rx494_tgt
     .local int rx494_pos
@@ -6122,9 +6122,9 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "cclass_elem"  :subid("141_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "cclass_elem"  :subid("141_1274564774.16047") :method :outer("11_1274564774.16047")
 .annotate 'line', 3
-    .const 'Sub' $P511 = "143_1274022883.50471" 
+    .const 'Sub' $P511 = "143_1274564774.16047" 
     capture_lex $P511
     .local string rx500_tgt
     .local int rx500_pos
@@ -6227,7 +6227,7 @@
 .annotate 'line', 164
   # rx subrule $P511 subtype=capture negate=
     rx500_cur."!cursor_pos"(rx500_pos)
-    .const 'Sub' $P511 = "143_1274022883.50471" 
+    .const 'Sub' $P511 = "143_1274564774.16047" 
     capture_lex $P511
     $P10 = rx500_cur.$P511()
     unless $P10, rx500_fail
@@ -6308,7 +6308,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__cclass_elem"  :subid("142_1274022883.50471") :method
+.sub "!PREFIX__cclass_elem"  :subid("142_1274564774.16047") :method
 .annotate 'line', 3
     new $P502, "ResizablePMCArray"
     push $P502, ""
@@ -6319,13 +6319,13 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block510"  :anon :subid("143_1274022883.50471") :method :outer("141_1274022883.50471")
+.sub "_block510"  :anon :subid("143_1274564774.16047") :method :outer("141_1274564774.16047")
 .annotate 'line', 164
-    .const 'Sub' $P526 = "146_1274022883.50471" 
+    .const 'Sub' $P526 = "146_1274564774.16047" 
     capture_lex $P526
-    .const 'Sub' $P521 = "145_1274022883.50471" 
+    .const 'Sub' $P521 = "145_1274564774.16047" 
     capture_lex $P521
-    .const 'Sub' $P517 = "144_1274022883.50471" 
+    .const 'Sub' $P517 = "144_1274564774.16047" 
     capture_lex $P517
     .local string rx512_tgt
     .local int rx512_pos
@@ -6396,7 +6396,7 @@
     add rx512_pos, 1
   # rx subrule $P517 subtype=capture negate=
     rx512_cur."!cursor_pos"(rx512_pos)
-    .const 'Sub' $P517 = "144_1274022883.50471" 
+    .const 'Sub' $P517 = "144_1274564774.16047" 
     capture_lex $P517
     $P10 = rx512_cur.$P517()
     unless $P10, rx512_fail
@@ -6407,7 +6407,7 @@
   alt515_1:
   # rx subrule $P521 subtype=capture negate=
     rx512_cur."!cursor_pos"(rx512_pos)
-    .const 'Sub' $P521 = "145_1274022883.50471" 
+    .const 'Sub' $P521 = "145_1274564774.16047" 
     capture_lex $P521
     $P10 = rx512_cur.$P521()
     unless $P10, rx512_fail
@@ -6436,7 +6436,7 @@
     add rx512_pos, rx512_off, $I11
   # rx subrule $P526 subtype=capture negate=
     rx512_cur."!cursor_pos"(rx512_pos)
-    .const 'Sub' $P526 = "146_1274022883.50471" 
+    .const 'Sub' $P526 = "146_1274564774.16047" 
     capture_lex $P526
     $P10 = rx512_cur.$P526()
     unless $P10, rx512_fail
@@ -6465,7 +6465,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block516"  :anon :subid("144_1274022883.50471") :method :outer("143_1274022883.50471")
+.sub "_block516"  :anon :subid("144_1274564774.16047") :method :outer("143_1274564774.16047")
 .annotate 'line', 166
     .local string rx518_tgt
     .local int rx518_pos
@@ -6517,7 +6517,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block520"  :anon :subid("145_1274022883.50471") :method :outer("143_1274022883.50471")
+.sub "_block520"  :anon :subid("145_1274564774.16047") :method :outer("143_1274564774.16047")
 .annotate 'line', 166
     .local string rx522_tgt
     .local int rx522_pos
@@ -6573,7 +6573,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block525"  :anon :subid("146_1274022883.50471") :method :outer("143_1274022883.50471")
+.sub "_block525"  :anon :subid("146_1274564774.16047") :method :outer("143_1274564774.16047")
 .annotate 'line', 166
     .local string rx527_tgt
     .local int rx527_pos
@@ -6625,9 +6625,9 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "mod_internal"  :subid("147_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "mod_internal"  :subid("147_1274564774.16047") :method :outer("11_1274564774.16047")
 .annotate 'line', 3
-    .const 'Sub' $P543 = "149_1274022883.50471" 
+    .const 'Sub' $P543 = "149_1274564774.16047" 
     capture_lex $P543
     .local string rx535_tgt
     .local int rx535_pos
@@ -6677,7 +6677,7 @@
   rxquantr541_loop:
   # rx subrule $P543 subtype=capture negate=
     rx535_cur."!cursor_pos"(rx535_pos)
-    .const 'Sub' $P543 = "149_1274022883.50471" 
+    .const 'Sub' $P543 = "149_1274564774.16047" 
     capture_lex $P543
     $P10 = rx535_cur.$P543()
     unless $P10, rx535_fail
@@ -6779,7 +6779,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__mod_internal"  :subid("148_1274022883.50471") :method
+.sub "!PREFIX__mod_internal"  :subid("148_1274564774.16047") :method
 .annotate 'line', 3
     $P537 = self."!PREFIX__!subrule"("mod_ident", ":")
     new $P538, "ResizablePMCArray"
@@ -6790,7 +6790,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block542"  :anon :subid("149_1274022883.50471") :method :outer("147_1274022883.50471")
+.sub "_block542"  :anon :subid("149_1274564774.16047") :method :outer("147_1274564774.16047")
 .annotate 'line', 176
     .local string rx544_tgt
     .local int rx544_pos
@@ -6858,7 +6858,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "mod_ident"  :subid("150_1274022883.50471") :method
+.sub "mod_ident"  :subid("150_1274564774.16047") :method
 .annotate 'line', 181
     $P552 = self."!protoregex"("mod_ident")
     .return ($P552)
@@ -6866,7 +6866,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__mod_ident"  :subid("151_1274022883.50471") :method
+.sub "!PREFIX__mod_ident"  :subid("151_1274564774.16047") :method
 .annotate 'line', 181
     $P554 = self."!PREFIX__!protoregex"("mod_ident")
     .return ($P554)
@@ -6874,7 +6874,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "mod_ident:sym<ignorecase>"  :subid("152_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "mod_ident:sym<ignorecase>"  :subid("152_1274564774.16047") :method :outer("11_1274564774.16047")
 .annotate 'line', 3
     .local string rx556_tgt
     .local int rx556_pos
@@ -6959,7 +6959,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__mod_ident:sym<ignorecase>"  :subid("153_1274022883.50471") :method
+.sub "!PREFIX__mod_ident:sym<ignorecase>"  :subid("153_1274564774.16047") :method
 .annotate 'line', 3
     new $P558, "ResizablePMCArray"
     push $P558, "i"
@@ -6968,7 +6968,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "mod_ident:sym<ratchet>"  :subid("154_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "mod_ident:sym<ratchet>"  :subid("154_1274564774.16047") :method :outer("11_1274564774.16047")
 .annotate 'line', 3
     .local string rx564_tgt
     .local int rx564_pos
@@ -7053,7 +7053,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__mod_ident:sym<ratchet>"  :subid("155_1274022883.50471") :method
+.sub "!PREFIX__mod_ident:sym<ratchet>"  :subid("155_1274564774.16047") :method
 .annotate 'line', 3
     new $P566, "ResizablePMCArray"
     push $P566, "r"
@@ -7062,7 +7062,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "mod_ident:sym<sigspace>"  :subid("156_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "mod_ident:sym<sigspace>"  :subid("156_1274564774.16047") :method :outer("11_1274564774.16047")
 .annotate 'line', 3
     .local string rx572_tgt
     .local int rx572_pos
@@ -7147,7 +7147,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__mod_ident:sym<sigspace>"  :subid("157_1274022883.50471") :method
+.sub "!PREFIX__mod_ident:sym<sigspace>"  :subid("157_1274564774.16047") :method
 .annotate 'line', 3
     new $P574, "ResizablePMCArray"
     push $P574, "s"
@@ -7156,18 +7156,18 @@
 
 
 .namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block579" :load :anon :subid("158_1274022883.50471")
+.sub "_block579" :load :anon :subid("158_1274564774.16047")
 .annotate 'line', 3
-    .const 'Sub' $P581 = "11_1274022883.50471" 
+    .const 'Sub' $P581 = "11_1274564774.16047" 
     $P582 = $P581()
     .return ($P582)
 .end
 
 
 .namespace []
-.sub "_block584" :load :anon :subid("159_1274022883.50471")
+.sub "_block584" :load :anon :subid("159_1274564774.16047")
 .annotate 'line', 1
-    .const 'Sub' $P586 = "10_1274022883.50471" 
+    .const 'Sub' $P586 = "10_1274564774.16047" 
     $P587 = $P586()
     .return ($P587)
 .end
@@ -7175,7 +7175,7 @@
 ### .include 'gen/p6regex-actions.pir'
 
 .namespace []
-.sub "_block11"  :anon :subid("10_1274022889.08438")
+.sub "_block11"  :anon :subid("10_1274564778.23532")
 .annotate 'line', 0
     get_hll_global $P14, ["Regex";"P6Regex";"Actions"], "_block13" 
     capture_lex $P14
@@ -7185,15 +7185,15 @@
     $P1572 = $P14()
 .annotate 'line', 1
     .return ($P1572)
-    .const 'Sub' $P1574 = "90_1274022889.08438" 
+    .const 'Sub' $P1574 = "90_1274564778.23532" 
     .return ($P1574)
 .end
 
 
 .namespace []
-.sub "" :load :init :subid("post91") :outer("10_1274022889.08438")
+.sub "" :load :init :subid("post91") :outer("10_1274564778.23532")
 .annotate 'line', 0
-    .const 'Sub' $P12 = "10_1274022889.08438" 
+    .const 'Sub' $P12 = "10_1274564778.23532" 
     .local pmc block
     set block, $P12
     $P1577 = get_root_global ["parrot"], "P6metaclass"
@@ -7202,115 +7202,115 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block13"  :subid("11_1274022889.08438") :outer("10_1274022889.08438")
+.sub "_block13"  :subid("11_1274564778.23532") :outer("10_1274564778.23532")
 .annotate 'line', 4
-    .const 'Sub' $P1534 = "88_1274022889.08438" 
+    .const 'Sub' $P1534 = "88_1274564778.23532" 
     capture_lex $P1534
-    .const 'Sub' $P1465 = "84_1274022889.08438" 
+    .const 'Sub' $P1465 = "84_1274564778.23532" 
     capture_lex $P1465
-    .const 'Sub' $P1397 = "82_1274022889.08438" 
+    .const 'Sub' $P1397 = "82_1274564778.23532" 
     capture_lex $P1397
-    .const 'Sub' $P1324 = "79_1274022889.08438" 
+    .const 'Sub' $P1324 = "79_1274564778.23532" 
     capture_lex $P1324
-    .const 'Sub' $P1310 = "78_1274022889.08438" 
+    .const 'Sub' $P1310 = "78_1274564778.23532" 
     capture_lex $P1310
-    .const 'Sub' $P1286 = "77_1274022889.08438" 
+    .const 'Sub' $P1286 = "77_1274564778.23532" 
     capture_lex $P1286
-    .const 'Sub' $P1268 = "76_1274022889.08438" 
+    .const 'Sub' $P1268 = "76_1274564778.23532" 
     capture_lex $P1268
-    .const 'Sub' $P1254 = "75_1274022889.08438" 
+    .const 'Sub' $P1254 = "75_1274564778.23532" 
     capture_lex $P1254
-    .const 'Sub' $P1241 = "74_1274022889.08438" 
+    .const 'Sub' $P1241 = "74_1274564778.23532" 
     capture_lex $P1241
-    .const 'Sub' $P1210 = "73_1274022889.08438" 
+    .const 'Sub' $P1210 = "73_1274564778.23532" 
     capture_lex $P1210
-    .const 'Sub' $P1179 = "72_1274022889.08438" 
+    .const 'Sub' $P1179 = "72_1274564778.23532" 
     capture_lex $P1179
-    .const 'Sub' $P1163 = "71_1274022889.08438" 
+    .const 'Sub' $P1163 = "71_1274564778.23532" 
     capture_lex $P1163
-    .const 'Sub' $P1147 = "70_1274022889.08438" 
+    .const 'Sub' $P1147 = "70_1274564778.23532" 
     capture_lex $P1147
-    .const 'Sub' $P1131 = "69_1274022889.08438" 
+    .const 'Sub' $P1131 = "69_1274564778.23532" 
     capture_lex $P1131
-    .const 'Sub' $P1115 = "68_1274022889.08438" 
+    .const 'Sub' $P1115 = "68_1274564778.23532" 
     capture_lex $P1115
-    .const 'Sub' $P1099 = "67_1274022889.08438" 
+    .const 'Sub' $P1099 = "67_1274564778.23532" 
     capture_lex $P1099
-    .const 'Sub' $P1083 = "66_1274022889.08438" 
+    .const 'Sub' $P1083 = "66_1274564778.23532" 
     capture_lex $P1083
-    .const 'Sub' $P1067 = "65_1274022889.08438" 
+    .const 'Sub' $P1067 = "65_1274564778.23532" 
     capture_lex $P1067
-    .const 'Sub' $P1043 = "64_1274022889.08438" 
+    .const 'Sub' $P1043 = "64_1274564778.23532" 
     capture_lex $P1043
-    .const 'Sub' $P1028 = "63_1274022889.08438" 
+    .const 'Sub' $P1028 = "63_1274564778.23532" 
     capture_lex $P1028
-    .const 'Sub' $P972 = "62_1274022889.08438" 
+    .const 'Sub' $P972 = "62_1274564778.23532" 
     capture_lex $P972
-    .const 'Sub' $P951 = "61_1274022889.08438" 
+    .const 'Sub' $P951 = "61_1274564778.23532" 
     capture_lex $P951
-    .const 'Sub' $P929 = "60_1274022889.08438" 
+    .const 'Sub' $P929 = "60_1274564778.23532" 
     capture_lex $P929
-    .const 'Sub' $P919 = "59_1274022889.08438" 
+    .const 'Sub' $P919 = "59_1274564778.23532" 
     capture_lex $P919
-    .const 'Sub' $P909 = "58_1274022889.08438" 
+    .const 'Sub' $P909 = "58_1274564778.23532" 
     capture_lex $P909
-    .const 'Sub' $P899 = "57_1274022889.08438" 
+    .const 'Sub' $P899 = "57_1274564778.23532" 
     capture_lex $P899
-    .const 'Sub' $P887 = "56_1274022889.08438" 
+    .const 'Sub' $P887 = "56_1274564778.23532" 
     capture_lex $P887
-    .const 'Sub' $P875 = "55_1274022889.08438" 
+    .const 'Sub' $P875 = "55_1274564778.23532" 
     capture_lex $P875
-    .const 'Sub' $P863 = "54_1274022889.08438" 
+    .const 'Sub' $P863 = "54_1274564778.23532" 
     capture_lex $P863
-    .const 'Sub' $P851 = "53_1274022889.08438" 
+    .const 'Sub' $P851 = "53_1274564778.23532" 
     capture_lex $P851
-    .const 'Sub' $P839 = "52_1274022889.08438" 
+    .const 'Sub' $P839 = "52_1274564778.23532" 
     capture_lex $P839
-    .const 'Sub' $P827 = "51_1274022889.08438" 
+    .const 'Sub' $P827 = "51_1274564778.23532" 
     capture_lex $P827
-    .const 'Sub' $P815 = "50_1274022889.08438" 
+    .const 'Sub' $P815 = "50_1274564778.23532" 
     capture_lex $P815
-    .const 'Sub' $P803 = "49_1274022889.08438" 
+    .const 'Sub' $P803 = "49_1274564778.23532" 
     capture_lex $P803
-    .const 'Sub' $P780 = "48_1274022889.08438" 
+    .const 'Sub' $P780 = "48_1274564778.23532" 
     capture_lex $P780
-    .const 'Sub' $P757 = "47_1274022889.08438" 
+    .const 'Sub' $P757 = "47_1274564778.23532" 
     capture_lex $P757
-    .const 'Sub' $P739 = "46_1274022889.08438" 
+    .const 'Sub' $P739 = "46_1274564778.23532" 
     capture_lex $P739
-    .const 'Sub' $P729 = "45_1274022889.08438" 
+    .const 'Sub' $P729 = "45_1274564778.23532" 
     capture_lex $P729
-    .const 'Sub' $P711 = "44_1274022889.08438" 
+    .const 'Sub' $P711 = "44_1274564778.23532" 
     capture_lex $P711
-    .const 'Sub' $P664 = "43_1274022889.08438" 
+    .const 'Sub' $P664 = "43_1274564778.23532" 
     capture_lex $P664
-    .const 'Sub' $P647 = "42_1274022889.08438" 
+    .const 'Sub' $P647 = "42_1274564778.23532" 
     capture_lex $P647
-    .const 'Sub' $P632 = "41_1274022889.08438" 
+    .const 'Sub' $P632 = "41_1274564778.23532" 
     capture_lex $P632
-    .const 'Sub' $P617 = "40_1274022889.08438" 
+    .const 'Sub' $P617 = "40_1274564778.23532" 
     capture_lex $P617
-    .const 'Sub' $P591 = "39_1274022889.08438" 
+    .const 'Sub' $P591 = "39_1274564778.23532" 
     capture_lex $P591
-    .const 'Sub' $P541 = "37_1274022889.08438" 
+    .const 'Sub' $P541 = "37_1274564778.23532" 
     capture_lex $P541
-    .const 'Sub' $P473 = "35_1274022889.08438" 
+    .const 'Sub' $P473 = "35_1274564778.23532" 
     capture_lex $P473
-    .const 'Sub' $P418 = "32_1274022889.08438" 
+    .const 'Sub' $P418 = "32_1274564778.23532" 
     capture_lex $P418
-    .const 'Sub' $P403 = "31_1274022889.08438" 
+    .const 'Sub' $P403 = "31_1274564778.23532" 
     capture_lex $P403
-    .const 'Sub' $P377 = "29_1274022889.08438" 
+    .const 'Sub' $P377 = "29_1274564778.23532" 
     capture_lex $P377
-    .const 'Sub' $P360 = "28_1274022889.08438" 
+    .const 'Sub' $P360 = "28_1274564778.23532" 
     capture_lex $P360
-    .const 'Sub' $P338 = "27_1274022889.08438" 
+    .const 'Sub' $P338 = "27_1274564778.23532" 
     capture_lex $P338
-    .const 'Sub' $P305 = "26_1274022889.08438" 
+    .const 'Sub' $P305 = "26_1274564778.23532" 
     capture_lex $P305
-    .const 'Sub' $P50 = "13_1274022889.08438" 
+    .const 'Sub' $P50 = "13_1274564778.23532" 
     capture_lex $P50
-    .const 'Sub' $P16 = "12_1274022889.08438" 
+    .const 'Sub' $P16 = "12_1274564778.23532" 
     capture_lex $P16
     get_global $P15, "@MODIFIERS"
     unless_null $P15, vivify_93
@@ -7318,19 +7318,19 @@
     set_global "@MODIFIERS", $P15
   vivify_93:
 .annotate 'line', 479
-    .const 'Sub' $P16 = "12_1274022889.08438" 
+    .const 'Sub' $P16 = "12_1274564778.23532" 
     newclosure $P49, $P16
     .lex "buildsub", $P49
 .annotate 'line', 496
-    .const 'Sub' $P50 = "13_1274022889.08438" 
+    .const 'Sub' $P50 = "13_1274564778.23532" 
     newclosure $P304, $P50
     .lex "capnames", $P304
 .annotate 'line', 562
-    .const 'Sub' $P305 = "26_1274022889.08438" 
+    .const 'Sub' $P305 = "26_1274564778.23532" 
     newclosure $P337, $P305
     .lex "backmod", $P337
 .annotate 'line', 569
-    .const 'Sub' $P338 = "27_1274022889.08438" 
+    .const 'Sub' $P338 = "27_1274564778.23532" 
     newclosure $P358, $P338
     .lex "subrule_alias", $P358
 .annotate 'line', 4
@@ -7342,13 +7342,13 @@
     find_lex $P1566, "subrule_alias"
 .annotate 'line', 4
     .return ($P1566)
-    .const 'Sub' $P1568 = "89_1274022889.08438" 
+    .const 'Sub' $P1568 = "89_1274564778.23532" 
     .return ($P1568)
 .end
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "" :load :init :subid("post92") :outer("11_1274022889.08438")
+.sub "" :load :init :subid("post92") :outer("11_1274564778.23532")
 .annotate 'line', 4
     get_hll_global $P14, ["Regex";"P6Regex";"Actions"], "_block13" 
     .local pmc block
@@ -7364,7 +7364,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "buildsub"  :subid("12_1274022889.08438") :outer("11_1274022889.08438")
+.sub "buildsub"  :subid("12_1274564778.23532") :outer("11_1274564778.23532")
     .param pmc param_19
     .param pmc param_20 :optional
     .param int has_param_20 :opt_flag
@@ -7441,19 +7441,19 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "capnames"  :subid("13_1274022889.08438") :outer("11_1274022889.08438")
+.sub "capnames"  :subid("13_1274564778.23532") :outer("11_1274564778.23532")
     .param pmc param_53
     .param pmc param_54
 .annotate 'line', 496
-    .const 'Sub' $P279 = "24_1274022889.08438" 
+    .const 'Sub' $P279 = "24_1274564778.23532" 
     capture_lex $P279
-    .const 'Sub' $P216 = "21_1274022889.08438" 
+    .const 'Sub' $P216 = "21_1274564778.23532" 
     capture_lex $P216
-    .const 'Sub' $P174 = "19_1274022889.08438" 
+    .const 'Sub' $P174 = "19_1274564778.23532" 
     capture_lex $P174
-    .const 'Sub' $P132 = "17_1274022889.08438" 
+    .const 'Sub' $P132 = "17_1274564778.23532" 
     capture_lex $P132
-    .const 'Sub' $P65 = "14_1274022889.08438" 
+    .const 'Sub' $P65 = "14_1274564778.23532" 
     capture_lex $P65
     new $P52, 'ExceptionHandler'
     set_addr $P52, control_51
@@ -7509,21 +7509,21 @@
     set $S276, $P275
     iseq $I277, $S276, "quant"
     unless $I277, if_274_end
-    .const 'Sub' $P279 = "24_1274022889.08438" 
+    .const 'Sub' $P279 = "24_1274564778.23532" 
     capture_lex $P279
     $P279()
   if_274_end:
     goto if_211_end
   if_211:
 .annotate 'line', 534
-    .const 'Sub' $P216 = "21_1274022889.08438" 
+    .const 'Sub' $P216 = "21_1274564778.23532" 
     capture_lex $P216
     $P216()
   if_211_end:
     goto if_164_end
   if_164:
 .annotate 'line', 521
-    .const 'Sub' $P174 = "19_1274022889.08438" 
+    .const 'Sub' $P174 = "19_1274564778.23532" 
     capture_lex $P174
     $P174()
   if_164_end:
@@ -7543,7 +7543,7 @@
     unless $P126, loop161_done
     shift $P130, $P126
   loop161_redo:
-    .const 'Sub' $P132 = "17_1274022889.08438" 
+    .const 'Sub' $P132 = "17_1274564778.23532" 
     capture_lex $P132
     $P132($P130)
   loop161_next:
@@ -7562,7 +7562,7 @@
     goto if_60_end
   if_60:
 .annotate 'line', 499
-    .const 'Sub' $P65 = "14_1274022889.08438" 
+    .const 'Sub' $P65 = "14_1274564778.23532" 
     capture_lex $P65
     $P65()
   if_60_end:
@@ -7586,9 +7586,9 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block278"  :anon :subid("24_1274022889.08438") :outer("13_1274022889.08438")
+.sub "_block278"  :anon :subid("24_1274564778.23532") :outer("13_1274564778.23532")
 .annotate 'line', 551
-    .const 'Sub' $P290 = "25_1274022889.08438" 
+    .const 'Sub' $P290 = "25_1274564778.23532" 
     capture_lex $P290
 .annotate 'line', 552
     $P280 = root_new ['parrot';'Hash']
@@ -7617,7 +7617,7 @@
     unless $P285, loop295_done
     shift $P288, $P285
   loop295_redo:
-    .const 'Sub' $P290 = "25_1274022889.08438" 
+    .const 'Sub' $P290 = "25_1274564778.23532" 
     capture_lex $P290
     $P290($P288)
   loop295_next:
@@ -7647,7 +7647,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block289"  :anon :subid("25_1274022889.08438") :outer("24_1274022889.08438")
+.sub "_block289"  :anon :subid("25_1274564778.23532") :outer("24_1274564778.23532")
     .param pmc param_291
 .annotate 'line', 553
     .lex "$_", param_291
@@ -7667,11 +7667,11 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block215"  :anon :subid("21_1274022889.08438") :outer("13_1274022889.08438")
+.sub "_block215"  :anon :subid("21_1274564778.23532") :outer("13_1274564778.23532")
 .annotate 'line', 534
-    .const 'Sub' $P256 = "23_1274022889.08438" 
+    .const 'Sub' $P256 = "23_1274564778.23532" 
     capture_lex $P256
-    .const 'Sub' $P228 = "22_1274022889.08438" 
+    .const 'Sub' $P228 = "22_1274564778.23532" 
     capture_lex $P228
 .annotate 'line', 535
     new $P217, "Undef"
@@ -7706,7 +7706,7 @@
     unless $P223, loop244_done
     shift $P226, $P223
   loop244_redo:
-    .const 'Sub' $P228 = "22_1274022889.08438" 
+    .const 'Sub' $P228 = "22_1274564778.23532" 
     capture_lex $P228
     $P228($P226)
   loop244_next:
@@ -7745,7 +7745,7 @@
     unless $P251, loop269_done
     shift $P254, $P251
   loop269_redo:
-    .const 'Sub' $P256 = "23_1274022889.08438" 
+    .const 'Sub' $P256 = "23_1274564778.23532" 
     capture_lex $P256
     $P256($P254)
   loop269_next:
@@ -7775,7 +7775,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block227"  :anon :subid("22_1274022889.08438") :outer("21_1274022889.08438")
+.sub "_block227"  :anon :subid("22_1274564778.23532") :outer("21_1274564778.23532")
     .param pmc param_229
 .annotate 'line', 541
     .lex "$_", param_229
@@ -7815,7 +7815,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block255"  :anon :subid("23_1274022889.08438") :outer("21_1274022889.08438")
+.sub "_block255"  :anon :subid("23_1274564778.23532") :outer("21_1274564778.23532")
     .param pmc param_257
 .annotate 'line', 546
     .lex "$_", param_257
@@ -7855,9 +7855,9 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block173"  :anon :subid("19_1274022889.08438") :outer("13_1274022889.08438")
+.sub "_block173"  :anon :subid("19_1274564778.23532") :outer("13_1274564778.23532")
 .annotate 'line', 521
-    .const 'Sub' $P192 = "20_1274022889.08438" 
+    .const 'Sub' $P192 = "20_1274564778.23532" 
     capture_lex $P192
 .annotate 'line', 522
     new $P175, "Undef"
@@ -7900,7 +7900,7 @@
     unless $P187, loop208_done
     shift $P190, $P187
   loop208_redo:
-    .const 'Sub' $P192 = "20_1274022889.08438" 
+    .const 'Sub' $P192 = "20_1274564778.23532" 
     capture_lex $P192
     $P192($P190)
   loop208_next:
@@ -7920,7 +7920,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block191"  :anon :subid("20_1274022889.08438") :outer("19_1274022889.08438")
+.sub "_block191"  :anon :subid("20_1274564778.23532") :outer("19_1274564778.23532")
     .param pmc param_193
 .annotate 'line', 529
     .lex "$_", param_193
@@ -7960,10 +7960,10 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block131"  :anon :subid("17_1274022889.08438") :outer("13_1274022889.08438")
+.sub "_block131"  :anon :subid("17_1274564778.23532") :outer("13_1274564778.23532")
     .param pmc param_134
 .annotate 'line', 513
-    .const 'Sub' $P143 = "18_1274022889.08438" 
+    .const 'Sub' $P143 = "18_1274564778.23532" 
     capture_lex $P143
 .annotate 'line', 514
     $P133 = root_new ['parrot';'Hash']
@@ -7986,7 +7986,7 @@
     unless $P138, loop156_done
     shift $P141, $P138
   loop156_redo:
-    .const 'Sub' $P143 = "18_1274022889.08438" 
+    .const 'Sub' $P143 = "18_1274564778.23532" 
     capture_lex $P143
     $P143($P141)
   loop156_next:
@@ -8016,7 +8016,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block142"  :anon :subid("18_1274022889.08438") :outer("17_1274022889.08438")
+.sub "_block142"  :anon :subid("18_1274564778.23532") :outer("17_1274564778.23532")
     .param pmc param_144
 .annotate 'line', 515
     .lex "$_", param_144
@@ -8056,9 +8056,9 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block64"  :anon :subid("14_1274022889.08438") :outer("13_1274022889.08438")
+.sub "_block64"  :anon :subid("14_1274564778.23532") :outer("13_1274564778.23532")
 .annotate 'line', 499
-    .const 'Sub' $P74 = "15_1274022889.08438" 
+    .const 'Sub' $P74 = "15_1274564778.23532" 
     capture_lex $P74
 .annotate 'line', 500
     new $P66, "Undef"
@@ -8079,7 +8079,7 @@
     unless $P68, loop118_done
     shift $P72, $P68
   loop118_redo:
-    .const 'Sub' $P74 = "15_1274022889.08438" 
+    .const 'Sub' $P74 = "15_1274564778.23532" 
     capture_lex $P74
     $P74($P72)
   loop118_next:
@@ -8102,10 +8102,10 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block73"  :anon :subid("15_1274022889.08438") :outer("14_1274022889.08438")
+.sub "_block73"  :anon :subid("15_1274564778.23532") :outer("14_1274564778.23532")
     .param pmc param_76
 .annotate 'line', 501
-    .const 'Sub' $P85 = "16_1274022889.08438" 
+    .const 'Sub' $P85 = "16_1274564778.23532" 
     capture_lex $P85
 .annotate 'line', 502
     $P75 = root_new ['parrot';'Hash']
@@ -8128,7 +8128,7 @@
     unless $P80, loop105_done
     shift $P83, $P80
   loop105_redo:
-    .const 'Sub' $P85 = "16_1274022889.08438" 
+    .const 'Sub' $P85 = "16_1274564778.23532" 
     capture_lex $P85
     $P85($P83)
   loop105_next:
@@ -8177,7 +8177,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block84"  :anon :subid("16_1274022889.08438") :outer("15_1274022889.08438")
+.sub "_block84"  :anon :subid("16_1274564778.23532") :outer("15_1274564778.23532")
     .param pmc param_86
 .annotate 'line', 503
     .lex "$_", param_86
@@ -8236,7 +8236,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "backmod"  :subid("26_1274022889.08438") :outer("11_1274022889.08438")
+.sub "backmod"  :subid("26_1274564778.23532") :outer("11_1274564778.23532")
     .param pmc param_308
     .param pmc param_309
 .annotate 'line', 562
@@ -8310,7 +8310,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "subrule_alias"  :subid("27_1274022889.08438") :outer("11_1274022889.08438")
+.sub "subrule_alias"  :subid("27_1274564778.23532") :outer("11_1274564778.23532")
     .param pmc param_341
     .param pmc param_342
 .annotate 'line', 569
@@ -8354,7 +8354,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "arg"  :subid("28_1274022889.08438") :method :outer("11_1274022889.08438")
+.sub "arg"  :subid("28_1274564778.23532") :method :outer("11_1274564778.23532")
     .param pmc param_363
 .annotate 'line', 14
     new $P362, 'ExceptionHandler'
@@ -8410,10 +8410,10 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "arglist"  :subid("29_1274022889.08438") :method :outer("11_1274022889.08438")
+.sub "arglist"  :subid("29_1274564778.23532") :method :outer("11_1274564778.23532")
     .param pmc param_380
 .annotate 'line', 18
-    .const 'Sub' $P390 = "30_1274022889.08438" 
+    .const 'Sub' $P390 = "30_1274564778.23532" 
     capture_lex $P390
     new $P379, 'ExceptionHandler'
     set_addr $P379, control_378
@@ -8447,7 +8447,7 @@
     unless $P384, loop396_done
     shift $P388, $P384
   loop396_redo:
-    .const 'Sub' $P390 = "30_1274022889.08438" 
+    .const 'Sub' $P390 = "30_1274564778.23532" 
     capture_lex $P390
     $P390($P388)
   loop396_next:
@@ -8476,7 +8476,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block389"  :anon :subid("30_1274022889.08438") :outer("29_1274022889.08438")
+.sub "_block389"  :anon :subid("30_1274564778.23532") :outer("29_1274564778.23532")
     .param pmc param_391
 .annotate 'line', 20
     .lex "$_", param_391
@@ -8489,7 +8489,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "TOP"  :subid("31_1274022889.08438") :method :outer("11_1274022889.08438")
+.sub "TOP"  :subid("31_1274564778.23532") :method :outer("11_1274564778.23532")
     .param pmc param_406
 .annotate 'line', 24
     new $P405, 'ExceptionHandler'
@@ -8531,14 +8531,14 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "nibbler"  :subid("32_1274022889.08438") :method :outer("11_1274022889.08438")
+.sub "nibbler"  :subid("32_1274564778.23532") :method :outer("11_1274564778.23532")
     .param pmc param_421
     .param pmc param_422 :optional
     .param int has_param_422 :opt_flag
 .annotate 'line', 30
-    .const 'Sub' $P456 = "34_1274022889.08438" 
+    .const 'Sub' $P456 = "34_1274564778.23532" 
     capture_lex $P456
-    .const 'Sub' $P430 = "33_1274022889.08438" 
+    .const 'Sub' $P430 = "33_1274564778.23532" 
     capture_lex $P430
     new $P420, 'ExceptionHandler'
     set_addr $P420, control_419
@@ -8559,7 +8559,7 @@
     set $S427, $P426
     iseq $I428, $S427, "open"
     unless $I428, if_425_end
-    .const 'Sub' $P430 = "33_1274022889.08438" 
+    .const 'Sub' $P430 = "33_1274564778.23532" 
     capture_lex $P430
     $P430()
   if_425_end:
@@ -8622,7 +8622,7 @@
     unless $P450, loop462_done
     shift $P454, $P450
   loop462_redo:
-    .const 'Sub' $P456 = "34_1274022889.08438" 
+    .const 'Sub' $P456 = "34_1274564778.23532" 
     capture_lex $P456
     $P456($P454)
   loop462_next:
@@ -8652,7 +8652,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block429"  :anon :subid("33_1274022889.08438") :outer("32_1274022889.08438")
+.sub "_block429"  :anon :subid("33_1274564778.23532") :outer("32_1274564778.23532")
 .annotate 'line', 32
     $P431 = root_new ['parrot';'Hash']
     .lex "%old", $P431
@@ -8692,7 +8692,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block455"  :anon :subid("34_1274022889.08438") :outer("32_1274022889.08438")
+.sub "_block455"  :anon :subid("34_1274564778.23532") :outer("32_1274564778.23532")
     .param pmc param_457
 .annotate 'line', 45
     .lex "$_", param_457
@@ -8707,10 +8707,10 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "termish"  :subid("35_1274022889.08438") :method :outer("11_1274022889.08438")
+.sub "termish"  :subid("35_1274564778.23532") :method :outer("11_1274564778.23532")
     .param pmc param_476
 .annotate 'line', 55
-    .const 'Sub' $P489 = "36_1274022889.08438" 
+    .const 'Sub' $P489 = "36_1274564778.23532" 
     capture_lex $P489
     new $P475, 'ExceptionHandler'
     set_addr $P475, control_474
@@ -8753,7 +8753,7 @@
     unless $P483, loop534_done
     shift $P487, $P483
   loop534_redo:
-    .const 'Sub' $P489 = "36_1274022889.08438" 
+    .const 'Sub' $P489 = "36_1274564778.23532" 
     capture_lex $P489
     $P489($P487)
   loop534_next:
@@ -8782,7 +8782,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block488"  :anon :subid("36_1274022889.08438") :outer("35_1274022889.08438")
+.sub "_block488"  :anon :subid("36_1274564778.23532") :outer("35_1274564778.23532")
     .param pmc param_491
 .annotate 'line', 59
     new $P490, "Undef"
@@ -8909,10 +8909,10 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "quantified_atom"  :subid("37_1274022889.08438") :method :outer("11_1274022889.08438")
+.sub "quantified_atom"  :subid("37_1274564778.23532") :method :outer("11_1274564778.23532")
     .param pmc param_544
 .annotate 'line', 76
-    .const 'Sub' $P553 = "38_1274022889.08438" 
+    .const 'Sub' $P553 = "38_1274564778.23532" 
     capture_lex $P553
     new $P543, 'ExceptionHandler'
     set_addr $P543, control_542
@@ -8975,7 +8975,7 @@
     goto if_549_end
   if_549:
 .annotate 'line', 78
-    .const 'Sub' $P553 = "38_1274022889.08438" 
+    .const 'Sub' $P553 = "38_1274564778.23532" 
     capture_lex $P553
     $P553()
   if_549_end:
@@ -9029,7 +9029,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block552"  :anon :subid("38_1274022889.08438") :outer("37_1274022889.08438")
+.sub "_block552"  :anon :subid("38_1274564778.23532") :outer("37_1274564778.23532")
 .annotate 'line', 80
     new $P554, "Undef"
     .lex "$qast", $P554
@@ -9068,7 +9068,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "atom"  :subid("39_1274022889.08438") :method :outer("11_1274022889.08438")
+.sub "atom"  :subid("39_1274564778.23532") :method :outer("11_1274564778.23532")
     .param pmc param_594
 .annotate 'line', 91
     new $P593, 'ExceptionHandler'
@@ -9146,7 +9146,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "quantifier:sym<*>"  :subid("40_1274022889.08438") :method :outer("11_1274022889.08438")
+.sub "quantifier:sym<*>"  :subid("40_1274564778.23532") :method :outer("11_1274564778.23532")
     .param pmc param_620
 .annotate 'line', 101
     new $P619, 'ExceptionHandler'
@@ -9186,7 +9186,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "quantifier:sym<+>"  :subid("41_1274022889.08438") :method :outer("11_1274022889.08438")
+.sub "quantifier:sym<+>"  :subid("41_1274564778.23532") :method :outer("11_1274564778.23532")
     .param pmc param_635
 .annotate 'line', 106
     new $P634, 'ExceptionHandler'
@@ -9226,7 +9226,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "quantifier:sym<?>"  :subid("42_1274022889.08438") :method :outer("11_1274022889.08438")
+.sub "quantifier:sym<?>"  :subid("42_1274564778.23532") :method :outer("11_1274564778.23532")
     .param pmc param_650
 .annotate 'line', 111
     new $P649, 'ExceptionHandler'
@@ -9270,7 +9270,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "quantifier:sym<**>"  :subid("43_1274022889.08438") :method :outer("11_1274022889.08438")
+.sub "quantifier:sym<**>"  :subid("43_1274564778.23532") :method :outer("11_1274564778.23532")
     .param pmc param_667
 .annotate 'line', 117
     new $P666, 'ExceptionHandler'
@@ -9410,7 +9410,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<ws>"  :subid("44_1274022889.08438") :method :outer("11_1274022889.08438")
+.sub "metachar:sym<ws>"  :subid("44_1274564778.23532") :method :outer("11_1274564778.23532")
     .param pmc param_714
 .annotate 'line', 131
     new $P713, 'ExceptionHandler'
@@ -9462,7 +9462,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<[ ]>"  :subid("45_1274022889.08438") :method :outer("11_1274022889.08438")
+.sub "metachar:sym<[ ]>"  :subid("45_1274564778.23532") :method :outer("11_1274564778.23532")
     .param pmc param_732
 .annotate 'line', 140
     new $P731, 'ExceptionHandler'
@@ -9494,7 +9494,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<( )>"  :subid("46_1274022889.08438") :method :outer("11_1274022889.08438")
+.sub "metachar:sym<( )>"  :subid("46_1274564778.23532") :method :outer("11_1274564778.23532")
     .param pmc param_742
 .annotate 'line', 144
     new $P741, 'ExceptionHandler'
@@ -9542,7 +9542,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<'>"  :subid("47_1274022889.08438") :method :outer("11_1274022889.08438")
+.sub "metachar:sym<'>"  :subid("47_1274564778.23532") :method :outer("11_1274564778.23532")
     .param pmc param_760
 .annotate 'line', 151
     new $P759, 'ExceptionHandler'
@@ -9598,7 +9598,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<\">"  :subid("48_1274022889.08438") :method :outer("11_1274022889.08438")
+.sub "metachar:sym<\">"  :subid("48_1274564778.23532") :method :outer("11_1274564778.23532")
     .param pmc param_783
 .annotate 'line', 158
     new $P782, 'ExceptionHandler'
@@ -9654,7 +9654,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<.>"  :subid("49_1274022889.08438") :method :outer("11_1274022889.08438")
+.sub "metachar:sym<.>"  :subid("49_1274564778.23532") :method :outer("11_1274564778.23532")
     .param pmc param_806
 .annotate 'line', 165
     new $P805, 'ExceptionHandler'
@@ -9685,7 +9685,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<^>"  :subid("50_1274022889.08438") :method :outer("11_1274022889.08438")
+.sub "metachar:sym<^>"  :subid("50_1274564778.23532") :method :outer("11_1274564778.23532")
     .param pmc param_818
 .annotate 'line', 170
     new $P817, 'ExceptionHandler'
@@ -9716,7 +9716,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<^^>"  :subid("51_1274022889.08438") :method :outer("11_1274022889.08438")
+.sub "metachar:sym<^^>"  :subid("51_1274564778.23532") :method :outer("11_1274564778.23532")
     .param pmc param_830
 .annotate 'line', 175
     new $P829, 'ExceptionHandler'
@@ -9747,7 +9747,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<$>"  :subid("52_1274022889.08438") :method :outer("11_1274022889.08438")
+.sub "metachar:sym<$>"  :subid("52_1274564778.23532") :method :outer("11_1274564778.23532")
     .param pmc param_842
 .annotate 'line', 180
     new $P841, 'ExceptionHandler'
@@ -9778,7 +9778,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<$$>"  :subid("53_1274022889.08438") :method :outer("11_1274022889.08438")
+.sub "metachar:sym<$$>"  :subid("53_1274564778.23532") :method :outer("11_1274564778.23532")
     .param pmc param_854
 .annotate 'line', 185
     new $P853, 'ExceptionHandler'
@@ -9809,7 +9809,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<:::>"  :subid("54_1274022889.08438") :method :outer("11_1274022889.08438")
+.sub "metachar:sym<:::>"  :subid("54_1274564778.23532") :method :outer("11_1274564778.23532")
     .param pmc param_866
 .annotate 'line', 190
     new $P865, 'ExceptionHandler'
@@ -9840,7 +9840,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<lwb>"  :subid("55_1274022889.08438") :method :outer("11_1274022889.08438")
+.sub "metachar:sym<lwb>"  :subid("55_1274564778.23532") :method :outer("11_1274564778.23532")
     .param pmc param_878
 .annotate 'line', 195
     new $P877, 'ExceptionHandler'
@@ -9871,7 +9871,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<rwb>"  :subid("56_1274022889.08438") :method :outer("11_1274022889.08438")
+.sub "metachar:sym<rwb>"  :subid("56_1274564778.23532") :method :outer("11_1274564778.23532")
     .param pmc param_890
 .annotate 'line', 200
     new $P889, 'ExceptionHandler'
@@ -9902,7 +9902,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<bs>"  :subid("57_1274022889.08438") :method :outer("11_1274022889.08438")
+.sub "metachar:sym<bs>"  :subid("57_1274564778.23532") :method :outer("11_1274564778.23532")
     .param pmc param_902
 .annotate 'line', 205
     new $P901, 'ExceptionHandler'
@@ -9934,7 +9934,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<mod>"  :subid("58_1274022889.08438") :method :outer("11_1274022889.08438")
+.sub "metachar:sym<mod>"  :subid("58_1274564778.23532") :method :outer("11_1274564778.23532")
     .param pmc param_912
 .annotate 'line', 209
     new $P911, 'ExceptionHandler'
@@ -9966,7 +9966,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<assert>"  :subid("59_1274022889.08438") :method :outer("11_1274022889.08438")
+.sub "metachar:sym<assert>"  :subid("59_1274564778.23532") :method :outer("11_1274564778.23532")
     .param pmc param_922
 .annotate 'line', 213
     new $P921, 'ExceptionHandler'
@@ -9998,7 +9998,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<~>"  :subid("60_1274022889.08438") :method :outer("11_1274022889.08438")
+.sub "metachar:sym<~>"  :subid("60_1274564778.23532") :method :outer("11_1274564778.23532")
     .param pmc param_932
 .annotate 'line', 217
     new $P931, 'ExceptionHandler'
@@ -10060,7 +10060,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<{*}>"  :subid("61_1274022889.08438") :method :outer("11_1274022889.08438")
+.sub "metachar:sym<{*}>"  :subid("61_1274564778.23532") :method :outer("11_1274564778.23532")
     .param pmc param_954
 .annotate 'line', 230
     new $P953, 'ExceptionHandler'
@@ -10121,7 +10121,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<var>"  :subid("62_1274022889.08438") :method :outer("11_1274022889.08438")
+.sub "metachar:sym<var>"  :subid("62_1274564778.23532") :method :outer("11_1274564778.23532")
     .param pmc param_975
 .annotate 'line', 237
     new $P974, 'ExceptionHandler'
@@ -10281,7 +10281,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<PIR>"  :subid("63_1274022889.08438") :method :outer("11_1274022889.08438")
+.sub "metachar:sym<PIR>"  :subid("63_1274564778.23532") :method :outer("11_1274564778.23532")
     .param pmc param_1031
 .annotate 'line', 257
     new $P1030, 'ExceptionHandler'
@@ -10320,7 +10320,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<w>"  :subid("64_1274022889.08438") :method :outer("11_1274022889.08438")
+.sub "backslash:sym<w>"  :subid("64_1274564778.23532") :method :outer("11_1274564778.23532")
     .param pmc param_1046
 .annotate 'line', 265
     new $P1045, 'ExceptionHandler'
@@ -10386,7 +10386,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<b>"  :subid("65_1274022889.08438") :method :outer("11_1274022889.08438")
+.sub "backslash:sym<b>"  :subid("65_1274564778.23532") :method :outer("11_1274564778.23532")
     .param pmc param_1070
 .annotate 'line', 271
     new $P1069, 'ExceptionHandler'
@@ -10429,7 +10429,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<e>"  :subid("66_1274022889.08438") :method :outer("11_1274022889.08438")
+.sub "backslash:sym<e>"  :subid("66_1274564778.23532") :method :outer("11_1274564778.23532")
     .param pmc param_1086
 .annotate 'line', 277
     new $P1085, 'ExceptionHandler'
@@ -10472,7 +10472,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<f>"  :subid("67_1274022889.08438") :method :outer("11_1274022889.08438")
+.sub "backslash:sym<f>"  :subid("67_1274564778.23532") :method :outer("11_1274564778.23532")
     .param pmc param_1102
 .annotate 'line', 283
     new $P1101, 'ExceptionHandler'
@@ -10515,7 +10515,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<h>"  :subid("68_1274022889.08438") :method :outer("11_1274022889.08438")
+.sub "backslash:sym<h>"  :subid("68_1274564778.23532") :method :outer("11_1274564778.23532")
     .param pmc param_1118
 .annotate 'line', 289
     new $P1117, 'ExceptionHandler'
@@ -10558,7 +10558,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<r>"  :subid("69_1274022889.08438") :method :outer("11_1274022889.08438")
+.sub "backslash:sym<r>"  :subid("69_1274564778.23532") :method :outer("11_1274564778.23532")
     .param pmc param_1134
 .annotate 'line', 295
     new $P1133, 'ExceptionHandler'
@@ -10601,7 +10601,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<t>"  :subid("70_1274022889.08438") :method :outer("11_1274022889.08438")
+.sub "backslash:sym<t>"  :subid("70_1274564778.23532") :method :outer("11_1274564778.23532")
     .param pmc param_1150
 .annotate 'line', 301
     new $P1149, 'ExceptionHandler'
@@ -10644,7 +10644,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<v>"  :subid("71_1274022889.08438") :method :outer("11_1274022889.08438")
+.sub "backslash:sym<v>"  :subid("71_1274564778.23532") :method :outer("11_1274564778.23532")
     .param pmc param_1166
 .annotate 'line', 307
     new $P1165, 'ExceptionHandler'
@@ -10687,7 +10687,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<o>"  :subid("72_1274022889.08438") :method :outer("11_1274022889.08438")
+.sub "backslash:sym<o>"  :subid("72_1274564778.23532") :method :outer("11_1274564778.23532")
     .param pmc param_1182
 .annotate 'line', 314
     new $P1181, 'ExceptionHandler'
@@ -10770,7 +10770,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<x>"  :subid("73_1274022889.08438") :method :outer("11_1274022889.08438")
+.sub "backslash:sym<x>"  :subid("73_1274564778.23532") :method :outer("11_1274564778.23532")
     .param pmc param_1213
 .annotate 'line', 323
     new $P1212, 'ExceptionHandler'
@@ -10853,7 +10853,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<c>"  :subid("74_1274022889.08438") :method :outer("11_1274022889.08438")
+.sub "backslash:sym<c>"  :subid("74_1274564778.23532") :method :outer("11_1274564778.23532")
     .param pmc param_1244
 .annotate 'line', 332
     new $P1243, 'ExceptionHandler'
@@ -10888,7 +10888,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<misc>"  :subid("75_1274022889.08438") :method :outer("11_1274022889.08438")
+.sub "backslash:sym<misc>"  :subid("75_1274564778.23532") :method :outer("11_1274564778.23532")
     .param pmc param_1257
 .annotate 'line', 336
     new $P1256, 'ExceptionHandler'
@@ -10921,7 +10921,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "assertion:sym<?>"  :subid("76_1274022889.08438") :method :outer("11_1274022889.08438")
+.sub "assertion:sym<?>"  :subid("76_1274564778.23532") :method :outer("11_1274564778.23532")
     .param pmc param_1271
 .annotate 'line', 342
     new $P1270, 'ExceptionHandler'
@@ -10981,7 +10981,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "assertion:sym<!>"  :subid("77_1274022889.08438") :method :outer("11_1274022889.08438")
+.sub "assertion:sym<!>"  :subid("77_1274564778.23532") :method :outer("11_1274564778.23532")
     .param pmc param_1289
 .annotate 'line', 352
     new $P1288, 'ExceptionHandler'
@@ -11049,7 +11049,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "assertion:sym<method>"  :subid("78_1274022889.08438") :method :outer("11_1274022889.08438")
+.sub "assertion:sym<method>"  :subid("78_1274564778.23532") :method :outer("11_1274564778.23532")
     .param pmc param_1313
 .annotate 'line', 365
     new $P1312, 'ExceptionHandler'
@@ -11092,12 +11092,12 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "assertion:sym<name>"  :subid("79_1274022889.08438") :method :outer("11_1274022889.08438")
+.sub "assertion:sym<name>"  :subid("79_1274564778.23532") :method :outer("11_1274564778.23532")
     .param pmc param_1327
 .annotate 'line', 372
-    .const 'Sub' $P1385 = "81_1274022889.08438" 
+    .const 'Sub' $P1385 = "81_1274564778.23532" 
     capture_lex $P1385
-    .const 'Sub' $P1349 = "80_1274022889.08438" 
+    .const 'Sub' $P1349 = "80_1274564778.23532" 
     capture_lex $P1349
     new $P1326, 'ExceptionHandler'
     set_addr $P1326, control_1325
@@ -11193,7 +11193,7 @@
     unless $P1376, loop1390_done
     shift $P1383, $P1376
   loop1390_redo:
-    .const 'Sub' $P1385 = "81_1274022889.08438" 
+    .const 'Sub' $P1385 = "81_1274564778.23532" 
     capture_lex $P1385
     $P1385($P1383)
   loop1390_next:
@@ -11233,7 +11233,7 @@
     goto if_1344_end
   if_1344:
 .annotate 'line', 379
-    .const 'Sub' $P1349 = "80_1274022889.08438" 
+    .const 'Sub' $P1349 = "80_1274564778.23532" 
     capture_lex $P1349
     $P1349()
   if_1344_end:
@@ -11274,7 +11274,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1384"  :anon :subid("81_1274022889.08438") :outer("79_1274022889.08438")
+.sub "_block1384"  :anon :subid("81_1274564778.23532") :outer("79_1274564778.23532")
     .param pmc param_1386
 .annotate 'line', 401
     .lex "$_", param_1386
@@ -11286,7 +11286,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1348"  :anon :subid("80_1274022889.08438") :outer("79_1274022889.08438")
+.sub "_block1348"  :anon :subid("80_1274564778.23532") :outer("79_1274564778.23532")
 .annotate 'line', 380
     new $P1350, "Undef"
     .lex "$regexsym", $P1350
@@ -11317,10 +11317,10 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "assertion:sym<[>"  :subid("82_1274022889.08438") :method :outer("11_1274022889.08438")
+.sub "assertion:sym<[>"  :subid("82_1274564778.23532") :method :outer("11_1274564778.23532")
     .param pmc param_1400
 .annotate 'line', 407
-    .const 'Sub' $P1435 = "83_1274022889.08438" 
+    .const 'Sub' $P1435 = "83_1274564778.23532" 
     capture_lex $P1435
     new $P1399, 'ExceptionHandler'
     set_addr $P1399, control_1398
@@ -11412,7 +11412,7 @@
     islt $I1433, $N1430, $N1432
     unless $I1433, loop1458_done
   loop1458_redo:
-    .const 'Sub' $P1435 = "83_1274022889.08438" 
+    .const 'Sub' $P1435 = "83_1274564778.23532" 
     capture_lex $P1435
     $P1435()
   loop1458_next:
@@ -11440,7 +11440,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1434"  :anon :subid("83_1274022889.08438") :outer("82_1274022889.08438")
+.sub "_block1434"  :anon :subid("83_1274564778.23532") :outer("82_1274564778.23532")
 .annotate 'line', 421
     new $P1436, "Undef"
     .lex "$ast", $P1436
@@ -11491,12 +11491,12 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "cclass_elem"  :subid("84_1274022889.08438") :method :outer("11_1274022889.08438")
+.sub "cclass_elem"  :subid("84_1274564778.23532") :method :outer("11_1274564778.23532")
     .param pmc param_1468
 .annotate 'line', 434
-    .const 'Sub' $P1493 = "86_1274022889.08438" 
+    .const 'Sub' $P1493 = "86_1274564778.23532" 
     capture_lex $P1493
-    .const 'Sub' $P1477 = "85_1274022889.08438" 
+    .const 'Sub' $P1477 = "85_1274564778.23532" 
     capture_lex $P1477
     new $P1467, 'ExceptionHandler'
     set_addr $P1467, control_1466
@@ -11545,7 +11545,7 @@
     unless $P1487, loop1518_done
     shift $P1491, $P1487
   loop1518_redo:
-    .const 'Sub' $P1493 = "86_1274022889.08438" 
+    .const 'Sub' $P1493 = "86_1274564778.23532" 
     capture_lex $P1493
     $P1493($P1491)
   loop1518_next:
@@ -11569,7 +11569,7 @@
     goto if_1473_end
   if_1473:
 .annotate 'line', 437
-    .const 'Sub' $P1477 = "85_1274022889.08438" 
+    .const 'Sub' $P1477 = "85_1274564778.23532" 
     capture_lex $P1477
     $P1477()
   if_1473_end:
@@ -11601,10 +11601,10 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1492"  :anon :subid("86_1274022889.08438") :outer("84_1274022889.08438")
+.sub "_block1492"  :anon :subid("86_1274564778.23532") :outer("84_1274564778.23532")
     .param pmc param_1494
 .annotate 'line', 441
-    .const 'Sub' $P1500 = "87_1274022889.08438" 
+    .const 'Sub' $P1500 = "87_1274564778.23532" 
     capture_lex $P1500
     .lex "$_", param_1494
 .annotate 'line', 442
@@ -11633,7 +11633,7 @@
 .annotate 'line', 442
     goto if_1496_end
   if_1496:
-    .const 'Sub' $P1500 = "87_1274022889.08438" 
+    .const 'Sub' $P1500 = "87_1274564778.23532" 
     capture_lex $P1500
     $P1513 = $P1500()
     set $P1495, $P1513
@@ -11644,7 +11644,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1499"  :anon :subid("87_1274022889.08438") :outer("86_1274022889.08438")
+.sub "_block1499"  :anon :subid("87_1274564778.23532") :outer("86_1274564778.23532")
 .annotate 'line', 443
     new $P1501, "Undef"
     .lex "$a", $P1501
@@ -11708,7 +11708,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1476"  :anon :subid("85_1274022889.08438") :outer("84_1274022889.08438")
+.sub "_block1476"  :anon :subid("85_1274564778.23532") :outer("84_1274564778.23532")
 .annotate 'line', 438
     new $P1478, "Undef"
     .lex "$name", $P1478
@@ -11736,7 +11736,7 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "mod_internal"  :subid("88_1274022889.08438") :method :outer("11_1274022889.08438")
+.sub "mod_internal"  :subid("88_1274564778.23532") :method :outer("11_1274564778.23532")
     .param pmc param_1537
 .annotate 'line', 472
     new $P1536, 'ExceptionHandler'
@@ -11834,18 +11834,18 @@
 
 
 .namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1567" :load :anon :subid("89_1274022889.08438")
+.sub "_block1567" :load :anon :subid("89_1274564778.23532")
 .annotate 'line', 4
-    .const 'Sub' $P1569 = "11_1274022889.08438" 
+    .const 'Sub' $P1569 = "11_1274564778.23532" 
     $P1570 = $P1569()
     .return ($P1570)
 .end
 
 
 .namespace []
-.sub "_block1573" :load :anon :subid("90_1274022889.08438")
+.sub "_block1573" :load :anon :subid("90_1274564778.23532")
 .annotate 'line', 1
-    .const 'Sub' $P1575 = "10_1274022889.08438" 
+    .const 'Sub' $P1575 = "10_1274564778.23532" 
     $P1576 = $P1575()
     .return ($P1576)
 .end

Modified: branches/ucs4_encoding/ext/nqp-rx/src/stage0/Regex-s0.pir
==============================================================================
--- branches/ucs4_encoding/ext/nqp-rx/src/stage0/Regex-s0.pir	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/ext/nqp-rx/src/stage0/Regex-s0.pir	Mon May 24 21:18:41 2010	(r46974)
@@ -719,6 +719,82 @@
     .return (cur)
 .end
 
+=item !process_pastnode_results_for_interpolation
+
+Used by the pastnode PAST::Regex type to prepare the results of the evaluation for interpolation.
+
+Takes two arguments:
+
+=over 4
+
+=item The node results
+
+=item The subtype of the PAST::Regex node, which is one of:
+
+=over 4
+
+=item interp_regex
+
+String values should be compiled into regexes and then interpolated.
+
+=item interp_literal
+
+String values should be treated as literals.
+
+=item interp_literal_i
+
+String values should be treated as literals and matched case-insensitively.
+
+=back
+
+=back
+
+Returns a RPA containing the elements to be interpolated
+
+=cut
+
+.sub '!process_pastnode_results_for_interpolation' :method
+    .param pmc node
+    .param string subtype
+
+    .local pmc it, result, compiler, context
+    .local string codestr
+
+    result = new ['ResizablePMCArray']
+    $S0 = typeof node
+    if $S0 == 'ResizablePMCArray' goto array
+    $P1 = node
+    it = box 0
+    goto not_array
+  array:
+    it = iter node
+  loop:
+    unless it, loop_done
+    $P1 = shift it
+  not_array:
+    if subtype != 'interp_regex' goto literal 
+    # Don't need to compile it if it's already a Sub
+    $I0 = isa $P1, ['Sub']
+    if $I0 goto literal
+    codestr = $P1
+    $P1 = split '/', codestr
+    codestr = join '\\/', $P1
+    codestr = concat '/', codestr
+    codestr = concat codestr, '/'
+    compiler = compreg 'NQP-rx'
+    $P2 = getinterp
+    context = $P2['context';0]
+    $P2 = compiler.'compile'(codestr, 'outer_ctx'=>context)
+    $P1 = $P2[0]
+    $P2 = getattribute context, 'current_sub'
+    $P1.'set_outer'($P2)
+    $P1 = $P1()
+  literal:
+    push result, $P1
+    goto loop
+  loop_done:
+    .return (result)
+.end
 
 =back
 
@@ -1921,7 +1997,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
 
@@ -2972,31 +3048,126 @@
 
 =item 'pastnode'(PAST::Regex node)
 
+Evaluates the supplied PAST node and does various things with the result, based on subtype.
+
+Subtype can be any of:
+
+=over 4
+
+=item zerowidth
+
+Only test for truthiness and fail or not.  No interpolation.
+
+=item interp_regex
+
+String values should be compiled into regexes and then interpolated.
+
+=item interp_literal
+
+String values should be treated as literals.
+
+=item interp_literal_i
+
+String values should be treated as literals and matched case-insensitively.
+
+=item <nothing>
+
+Don't interpolate anything, just execute the PAST code
+
+=back
+
 =cut
 
-.sub 'pastnode' :method :multi(_, ['PAST';'Regex'])
+.sub 'pastnode' :method :multi(_, ['PAST'; 'Regex'])
     .param pmc node
-    .local pmc cur, pos, fail, ops
-    (cur, pos, fail) = self.'!rxregs'('cur pos fail')
+    .local pmc cur, pos, fail, ops, eos, off, tgt
+    (cur, pos, eos, off, tgt, fail) = self.'!rxregs'('cur pos eos off tgt fail')
     ops = self.'post_new'('Ops', 'node'=>node, 'result'=>cur)
+ 
+    .local pmc zerowidth, negate, testop, subtype
+    subtype = node.'subtype'()
 
+    ops.'push_pirop'('inline', subtype, negate, 'inline'=>'  # rx pastnode subtype=%1 negate=%2')
     .local pmc cpast, cpost
     cpast = node[0]
     cpost = self.'as_post'(cpast, 'rtype'=>'P')
-
+ 
     self.'!cursorop'(ops, '!cursor_pos', 0, pos)
     ops.'push'(cpost)
 
-    .local pmc subtype, negate, testop
-    subtype = node.'subtype'()
-    if subtype != 'zerowidth' goto done
+    # If this is just a zerowidth assertion, we don't actually interpolate anything.  Just evaluate
+    # and fail or not. 
+    if subtype == 'zerowidth' goto zerowidth_test
+
+    # Retain backwards compatibility with old pastnode semantics
+    unless subtype goto done
+
+    .local string prefix
+    prefix = self.'unique'('pastnode_')
+    .local pmc precompiled_label, done_label, loop_label, iterator_reg, label_reg
+    $S0 =  concat prefix, '_precompiled'
+    precompiled_label = self.'post_new'('Label', 'result'=>$S0)
+    $S0 =  concat prefix, '_done'
+    done_label = self.'post_new'('Label', 'result'=>$S0)
+    $S0 =  concat prefix, '_loop'
+    loop_label = self.'post_new'('Label', 'result'=>$S0)
+    iterator_reg = self.'uniquereg'("P")
+    label_reg = self.'uniquereg'("I")
+
+    $S10 = subtype
+    $S10 = concat '"', $S10
+    $S10 = concat $S10, '"'
+    self.'!cursorop'(ops, '!process_pastnode_results_for_interpolation', 1, '$P10', cpost, $S10)
+
+    ops.'push_pirop'('iter', iterator_reg, '$P10')
+    ops.'push_pirop'('set_addr', label_reg, loop_label)
+    ops.'push'(loop_label)
+    ops.'push_pirop'('unless', iterator_reg, fail)
+    ops.'push_pirop'('shift', '$P10', iterator_reg)
+    self.'!cursorop'(ops, '!mark_push', 0, 0, pos, label_reg)
+
+    # Check if it's already a compiled Regex, and call it as a method if so
+    ops.'push_pirop'('isa', '$I10', '$P10', "['Sub']")
+    ops.'push_pirop'('if', '$I10', precompiled_label)
+
+    # XXX This is rakudo's Regex class.  I'm not sure why the above test doesn't catch it, but
+    # need to figure it out so NQP doesn't have rakudo knowledge :(
+    ops.'push_pirop'('isa', '$I10', '$P10', "['Regex']")
+    ops.'push_pirop'('if', '$I10', precompiled_label)
+
+    # Otherwise, treat it as a literal
+    ops.'push_pirop'('set', '$S10', '$P10')
+    ops.'push_pirop'('length', '$I10', '$S10')
+    ops.'push_pirop'('add', '$I11', pos, '$I10')
+    ops.'push_pirop'('gt', '$I11', eos, fail)
+    ops.'push_pirop'('sub', '$I11', pos, off)
+    ops.'push_pirop'('substr', '$S11', tgt, '$I11', '$I10')
+    ne subtype, 'interp_literal_i', dont_downcase
+    ops.'push_pirop'('downcase', '$S10', '$S10')
+    ops.'push_pirop'('downcase', '$S11', '$S11')
+  dont_downcase:
+    ops.'push_pirop'('ne', '$S11', '$S10', fail)
+    ops.'push_pirop'('add', pos, '$I10')
+    ops.'push_pirop'('goto', done_label)
+
+    ops.'push'(precompiled_label)
+    ops.'push_pirop'('callmethod', '$P10', cur, 'result'=>'$P10')
+    ops.'push_pirop'('unless', '$P10', fail)
+    self.'!cursorop'(ops, '!mark_push', 0, 0, CURSOR_FAIL, 0, '$P10')
+    ops.'push_pirop'('callmethod', '"pos"', '$P10', 'result'=>pos)
+    
+    ops.'push'(done_label)
+
+    goto done
+
+  zerowidth_test:
     negate = node.'negate'()
     testop = self.'??!!'(negate, 'if', 'unless')
     ops.'push_pirop'(testop, cpost, fail)
   done:
     .return (ops)
-.end
 
+.end
 
 =item pass(PAST::Regex node)
 

Modified: branches/ucs4_encoding/ext/nqp-rx/src/stage0/nqp-setting.nqp
==============================================================================
--- branches/ucs4_encoding/ext/nqp-rx/src/stage0/nqp-setting.nqp	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/ext/nqp-rx/src/stage0/nqp-setting.nqp	Mon May 24 21:18:41 2010	(r46974)
@@ -154,17 +154,17 @@
 
 our sub match ($text, $regex, :$global?) {
     my $match := $text ~~ $regex;
+    my @matches;
     if $global {
-        my @matches;
         while $match {
             @matches.push($match);
             $match := $match.CURSOR.parse($text, :rule($regex), :c($match.to));
         }
-        @matches;
     }
-    else {
-        $match;
+    elsif $match {
+        @matches.push($match);
     }
+    @matches;
 }
 
 
@@ -175,8 +175,8 @@
 =end item
 
 our sub subst ($text, $regex, $repl, :$global?) {
-    my @matches := $global ?? match($text, $regex, :global)
-                           !! [ $text ~~ $regex ];
+    my @matches := match($text, $regex, $global);
+
     my $is_code := pir::isa($repl, 'Sub');
     my $offset  := 0;
     my $result  := pir::new__Ps('StringBuilder');

Modified: branches/ucs4_encoding/include/parrot/charset.h
==============================================================================
--- branches/ucs4_encoding/include/parrot/charset.h	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/include/parrot/charset.h	Mon May 24 21:18:41 2010	(r46974)
@@ -72,11 +72,13 @@
 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
 
 PARROT_EXPORT
+PARROT_PURE_FUNCTION
 PARROT_CAN_RETURN_NULL
 PARROT_WARN_UNUSED_RESULT
 const char * Parrot_charset_c_name(SHIM_INTERP, INTVAL number_of_charset);
 
 PARROT_EXPORT
+PARROT_PURE_FUNCTION
 PARROT_CAN_RETURN_NULL
 PARROT_WARN_UNUSED_RESULT
 STRING * Parrot_charset_name(SHIM_INTERP, INTVAL number_of_charset);
@@ -89,6 +91,7 @@
         __attribute__nonnull__(2);
 
 PARROT_EXPORT
+PARROT_PURE_FUNCTION
 PARROT_WARN_UNUSED_RESULT
 INTVAL Parrot_charset_number_of_str(SHIM_INTERP, ARGIN(const STRING *src))
         __attribute__nonnull__(2);
@@ -102,11 +105,13 @@
         __attribute__nonnull__(1);
 
 PARROT_EXPORT
+PARROT_PURE_FUNCTION
 PARROT_WARN_UNUSED_RESULT
 PARROT_CAN_RETURN_NULL
 const CHARSET * Parrot_default_charset(SHIM_INTERP);
 
 PARROT_EXPORT
+PARROT_PURE_FUNCTION
 PARROT_CAN_RETURN_NULL
 PARROT_WARN_UNUSED_RESULT
 const CHARSET * Parrot_find_charset(SHIM_INTERP,
@@ -114,6 +119,7 @@
         __attribute__nonnull__(2);
 
 PARROT_EXPORT
+PARROT_PURE_FUNCTION
 PARROT_WARN_UNUSED_RESULT
 PARROT_CAN_RETURN_NULL
 charset_converter_t Parrot_find_charset_converter(SHIM_INTERP,
@@ -123,6 +129,7 @@
         __attribute__nonnull__(3);
 
 PARROT_EXPORT
+PARROT_PURE_FUNCTION
 PARROT_CAN_RETURN_NULL
 PARROT_WARN_UNUSED_RESULT
 const CHARSET * Parrot_get_charset(SHIM_INTERP, INTVAL number_of_charset);

Modified: branches/ucs4_encoding/include/parrot/compiler.h
==============================================================================
--- branches/ucs4_encoding/include/parrot/compiler.h	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/include/parrot/compiler.h	Mon May 24 21:18:41 2010	(r46974)
@@ -136,11 +136,35 @@
 #define PARROT_IGNORABLE_RESULT
 #define PARROT_WARN_UNUSED_RESULT   __attribute__warn_unused_result__
 
+#define PARROT_PURE_FUNCTION        __attribute__pure__  __attribute__warn_unused_result__
 /* Pure functions have no side-effects, and depend only on parms or globals. e.g. strlen() */
-#define PARROT_PURE_FUNCTION                __attribute__pure__  __attribute__warn_unused_result__
-
-/* Const functions are pure functions, and do not examine targets of pointers. e.g. sqrt() */
-#define PARROT_CONST_FUNCTION               __attribute__const__ __attribute__warn_unused_result__
+/* "Many functions have no effects except the return value and their
+    return value depends only on the parameters and/or global
+    variables. Such a function can be subject to common subexpression
+    elimination and loop optimization just as an arithmetic operator
+    would be. For example, "PARROT_PURE_FUNCTION int square(int x)"
+    says that the hypothetical function square is safe to call fewer
+    times than the program says.
+
+    Some of common examples of pure functions are strlen or
+    memcmp. Interesting non-pure functions are functions with infinite
+    loops or those depending on volatile memory or other system resource,
+    that may change between two consecutive calls (such as feof in a
+    multithreading environment)." -- http://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html
+*/
+
+#define PARROT_CONST_FUNCTION       __attribute__const__ __attribute__warn_unused_result__
+/* Const functions are pure functions, and also do not examine targets of pointer args or globals. e.g. sqrt() */
+/* "Many functions do not examine any values except their arguments,
+    and have no effects except the return value. Basically this is just
+    slightly more strict class than the pure attribute below, since
+    function is not allowed to read global memory. Note that a function
+    that has pointer arguments and examines the data pointed to must
+    not be declared const. Likewise, a function that calls a non-const
+    function usually must not be const. It does not make sense for a
+    const function to return void."
+        -- http://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html
+*/
 
 #define PARROT_DOES_NOT_RETURN              /*@noreturn@*/ __attribute__noreturn__
 #define PARROT_DOES_NOT_RETURN_WHEN_FALSE   /*@noreturnwhenfalse@*/

Modified: branches/ucs4_encoding/include/parrot/embed.h
==============================================================================
--- branches/ucs4_encoding/include/parrot/embed.h	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/include/parrot/embed.h	Mon May 24 21:18:41 2010	(r46974)
@@ -141,14 +141,17 @@
         __attribute__nonnull__(1);
 
 PARROT_EXPORT
+PARROT_PURE_FUNCTION
 Parrot_UInt Parrot_test_debug(PARROT_INTERP, Parrot_UInt flag)
         __attribute__nonnull__(1);
 
 PARROT_EXPORT
+PARROT_PURE_FUNCTION
 Parrot_Int Parrot_test_flag(PARROT_INTERP, Parrot_Int flag)
         __attribute__nonnull__(1);
 
 PARROT_EXPORT
+PARROT_PURE_FUNCTION
 Parrot_UInt Parrot_test_trace(PARROT_INTERP, Parrot_UInt flag)
         __attribute__nonnull__(1);
 

Modified: branches/ucs4_encoding/include/parrot/hash.h
==============================================================================
--- branches/ucs4_encoding/include/parrot/hash.h	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/include/parrot/hash.h	Mon May 24 21:18:41 2010	(r46974)
@@ -315,13 +315,13 @@
         __attribute__nonnull__(2);
 
 PARROT_WARN_UNUSED_RESULT
-PARROT_PURE_FUNCTION
+PARROT_CONST_FUNCTION
 int int_compare(SHIM_INTERP,
     ARGIN_NULLOK(const void *a),
     ARGIN_NULLOK(const void *b));
 
 PARROT_WARN_UNUSED_RESULT
-PARROT_PURE_FUNCTION
+PARROT_CONST_FUNCTION
 size_t key_hash_int(SHIM_INTERP,
     ARGIN_NULLOK(const void *value),
     size_t seed);

Modified: branches/ucs4_encoding/include/parrot/imcc.h
==============================================================================
--- branches/ucs4_encoding/include/parrot/imcc.h	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/include/parrot/imcc.h	Mon May 24 21:18:41 2010	(r46974)
@@ -6,10 +6,8 @@
 #ifndef PARROT_IMCC_H_GUARD
 #define PARROT_IMCC_H_GUARD
 
-PARROT_EXPORT void imcc_initialize(PARROT_INTERP);
-PARROT_EXPORT void imcc_start_handling_flags(PARROT_INTERP);
-PARROT_EXPORT int imcc_handle_flag(PARROT_INTERP, struct longopt_opt_info *opt, Parrot_Run_core_t *core);
-PARROT_EXPORT int imcc_run(PARROT_INTERP, const char *sourcefile, int argc, const char **argv);
+PARROT_EXPORT int  imcc_run(PARROT_INTERP, const char *sourcefile, int argc, const char **argv);
+PARROT_EXPORT void imcc_run_pbc(PARROT_INTERP, const char *outputfile, int argc, const char **argv);
 
 #endif /* PARROT_IMCC_H_GUARD */
 

Modified: branches/ucs4_encoding/include/parrot/interpreter.h
==============================================================================
--- branches/ucs4_encoding/include/parrot/interpreter.h	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/include/parrot/interpreter.h	Mon May 24 21:18:41 2010	(r46974)
@@ -523,6 +523,7 @@
         __attribute__nonnull__(4);
 
 PARROT_WARN_UNUSED_RESULT
+PARROT_CONST_FUNCTION
 INTVAL sysinfo_i(SHIM_INTERP, INTVAL info_wanted);
 
 PARROT_CANNOT_RETURN_NULL

Modified: branches/ucs4_encoding/include/parrot/longopt.h
==============================================================================
--- branches/ucs4_encoding/include/parrot/longopt.h	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/include/parrot/longopt.h	Mon May 24 21:18:41 2010	(r46974)
@@ -1,13 +1,9 @@
 /* longopt.h
- *  Copyright (C) 2001-2003, Parrot Foundation.
+ *  Copyright (C) 2001-2010, Parrot Foundation.
  *  SVN Info
  *     $Id$
  *  Overview:
  *     Command line option parsing (for pre-initialized code)
- *  Data Structure and Algorithms:
- *  History:
- *  Notes:
- *  References:
  */
 
 #ifndef PARROT_LONGOPT_H_GUARD
@@ -44,10 +40,18 @@
 
 #define LONGOPT_OPT_INFO_INIT { 1, 0, NULL, NULL, NULL }
 
+#define OPT_GC_DEBUG       128
+#define OPT_DESTROY_FLAG   129
+#define OPT_HELP_DEBUG     130
+#define OPT_PBC_OUTPUT     131
+#define OPT_RUNTIME_PREFIX 132
+#define OPT_HASH_SEED      133
+
 /* HEADERIZER BEGIN: src/longopt.c */
 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
 
 PARROT_EXPORT
+PARROT_WARN_UNUSED_RESULT
 int longopt_get(PARROT_INTERP,
     int argc,
     ARGIN(const char* argv[]),
@@ -59,11 +63,17 @@
         __attribute__nonnull__(5)
         FUNC_MODIFIES(* info_buf);
 
+PARROT_EXPORT
+PARROT_CANNOT_RETURN_NULL
+PARROT_CONST_FUNCTION
+const struct longopt_opt_decl * Parrot_cmd_options(void);
+
 #define ASSERT_ARGS_longopt_get __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
     , PARROT_ASSERT_ARG(argv) \
     , PARROT_ASSERT_ARG(options) \
     , PARROT_ASSERT_ARG(info_buf))
+#define ASSERT_ARGS_Parrot_cmd_options __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
 /* HEADERIZER END: src/longopt.c */
 

Copied: branches/ucs4_encoding/include/parrot/oplib/core_ops.h (from r46972, trunk/include/parrot/oplib/core_ops.h)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/ucs4_encoding/include/parrot/oplib/core_ops.h	Mon May 24 21:18:41 2010	(r46974, copy of r46972, trunk/include/parrot/oplib/core_ops.h)
@@ -0,0 +1,1303 @@
+
+/* $Id$ */
+
+#ifndef PARROT_OPLIB_CORE_OPS_H_GUARD
+#define PARROT_OPLIB_CORE_OPS_H_GUARD
+
+
+/* ex: set ro:
+ * !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
+ *
+ * This file is generated automatically from 'src/ops/core.ops' (and possibly other
+ * .ops files). by ops2c.nqp.
+ *
+ * Any changes made here will be lost!
+ *
+ */
+
+#include "parrot/parrot.h"
+#include "parrot/oplib.h"
+#include "parrot/runcore_api.h"
+
+ op_lib_t *Parrot_DynOp_core_2_4_0(PARROT_INTERP, long init);
+
+ opcode_t * Parrot_end(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_noop(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_check_events(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_check_events__(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_wrapper__(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_load_bytecode_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_load_bytecode_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_load_language_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_load_language_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_branch_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_branch_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_local_branch_p_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_local_branch_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_local_return_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_jump_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_jump_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_enternative(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_if_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_if_n_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_if_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_if_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_unless_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_unless_n_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_unless_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_unless_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_invokecc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_invoke_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_yield(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_tailcall_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_returncc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_capture_lex_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_newclosure_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_args_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_get_params_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_returns_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_get_results_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_result_info_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_result_info_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_result_info_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_addr_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_addr_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_addr_p_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_get_addr_i_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_schedule_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_addhandler_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_push_eh_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_push_eh_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_pop_eh(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_throw_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_throw_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_rethrow_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_count_eh_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_die_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_die_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_die_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_die_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_die_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_die_ic_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_die_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_die_ic_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_exit_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_exit_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_debug_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_debug_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bounds_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bounds_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_profile_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_profile_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_trace_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_trace_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_gc_debug_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_gc_debug_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_interpinfo_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_interpinfo_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_interpinfo_p_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_interpinfo_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_interpinfo_s_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_interpinfo_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_warningson_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_warningson_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_warningsoff_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_warningsoff_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_errorson_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_errorson_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_errorsoff_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_errorsoff_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_runinterp_p_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_runinterp_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_getinterp_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_sweep_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_collect(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_sweepoff(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_sweepon(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_collectoff(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_collecton(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_needs_destroy_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_loadlib_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_loadlib_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_loadlib_p_s_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_loadlib_p_sc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_loadlib_p_s_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_loadlib_p_sc_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_dlfunc_p_p_s_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_dlfunc_p_p_sc_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_dlfunc_p_p_s_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_dlfunc_p_p_sc_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_dlvar_p_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_dlvar_p_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_compreg_s_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_compreg_sc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_compreg_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_compreg_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_new_callback_p_p_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_new_callback_p_p_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_annotations_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_annotations_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_annotations_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_band_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_band_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_band_p_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_band_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_band_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_band_i_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_band_i_ic_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_band_i_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_band_p_p_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_band_p_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_band_p_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bands_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bands_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bands_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bands_s_s_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bands_s_sc_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bands_s_s_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bands_p_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bands_p_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bands_p_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bnot_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bnot_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bnot_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bnot_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bnots_s_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bnots_s_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bnots_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bnots_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bor_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bor_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bor_p_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bor_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bor_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bor_i_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bor_i_ic_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bor_i_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bor_p_p_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bor_p_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bor_p_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bors_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bors_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bors_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bors_s_s_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bors_s_sc_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bors_s_s_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bors_p_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bors_p_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bors_p_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_shl_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_shl_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_shl_p_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_shl_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_shl_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_shl_i_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_shl_i_ic_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_shl_i_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_shl_p_p_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_shl_p_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_shl_p_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_shr_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_shr_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_shr_p_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_shr_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_shr_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_shr_i_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_shr_i_ic_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_shr_i_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_shr_p_p_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_shr_p_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_shr_p_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_lsr_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_lsr_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_lsr_p_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_lsr_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_lsr_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_lsr_i_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_lsr_i_ic_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_lsr_i_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_lsr_p_p_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_lsr_p_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_lsr_p_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_rot_i_i_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_rot_i_ic_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_rot_i_i_ic_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bxor_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bxor_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bxor_p_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bxor_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bxor_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bxor_i_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bxor_i_ic_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bxor_i_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bxor_p_p_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bxor_p_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bxor_p_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bxors_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bxors_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bxors_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bxors_s_s_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bxors_s_sc_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bxors_s_s_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bxors_p_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bxors_p_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bxors_p_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_eq_i_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_eq_ic_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_eq_i_ic_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_eq_n_n_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_eq_nc_n_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_eq_n_nc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_eq_s_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_eq_sc_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_eq_s_sc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_eq_p_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_eq_p_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_eq_p_ic_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_eq_p_n_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_eq_p_nc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_eq_p_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_eq_p_sc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_eq_str_p_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_eq_num_p_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_eq_addr_s_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_eq_addr_sc_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_eq_addr_s_sc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_eq_addr_sc_sc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_eq_addr_p_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ne_i_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ne_ic_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ne_i_ic_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ne_n_n_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ne_nc_n_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ne_n_nc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ne_s_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ne_sc_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ne_s_sc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ne_p_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ne_p_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ne_p_ic_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ne_p_n_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ne_p_nc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ne_p_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ne_p_sc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ne_str_p_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ne_num_p_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ne_addr_s_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ne_addr_sc_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ne_addr_s_sc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ne_addr_sc_sc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ne_addr_p_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_lt_i_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_lt_ic_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_lt_i_ic_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_lt_n_n_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_lt_nc_n_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_lt_n_nc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_lt_s_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_lt_sc_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_lt_s_sc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_lt_p_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_lt_p_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_lt_p_ic_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_lt_p_n_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_lt_p_nc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_lt_p_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_lt_p_sc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_lt_str_p_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_lt_num_p_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_le_i_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_le_ic_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_le_i_ic_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_le_n_n_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_le_nc_n_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_le_n_nc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_le_s_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_le_sc_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_le_s_sc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_le_p_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_le_p_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_le_p_ic_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_le_p_n_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_le_p_nc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_le_p_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_le_p_sc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_le_str_p_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_le_num_p_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_gt_p_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_gt_p_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_gt_p_ic_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_gt_p_n_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_gt_p_nc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_gt_p_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_gt_p_sc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_gt_str_p_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_gt_num_p_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ge_p_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ge_p_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ge_p_ic_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ge_p_n_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ge_p_nc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ge_p_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ge_p_sc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ge_str_p_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ge_num_p_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_if_null_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_if_null_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_unless_null_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_unless_null_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_cmp_i_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_cmp_i_ic_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_cmp_i_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_cmp_i_n_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_cmp_i_nc_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_cmp_i_n_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_cmp_i_s_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_cmp_i_sc_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_cmp_i_s_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_cmp_i_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_cmp_i_p_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_cmp_i_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_cmp_i_p_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_cmp_i_p_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_cmp_i_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_cmp_i_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_cmp_str_i_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_cmp_num_i_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_cmp_pmc_p_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_issame_i_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_issame_i_s_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_issame_i_sc_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_issame_i_s_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_issame_i_sc_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_isntsame_i_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_isntsame_i_s_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_isntsame_i_sc_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_isntsame_i_s_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_isntsame_i_sc_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_istrue_i_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_isfalse_i_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_isnull_i_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_isnull_i_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_isnull_i_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_isnull_i_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_isgt_i_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_isge_i_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_isle_i_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_isle_i_ic_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_isle_i_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_isle_i_n_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_isle_i_nc_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_isle_i_n_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_isle_i_s_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_isle_i_sc_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_isle_i_s_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_isle_i_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_islt_i_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_islt_i_ic_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_islt_i_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_islt_i_n_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_islt_i_nc_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_islt_i_n_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_islt_i_s_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_islt_i_sc_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_islt_i_s_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_islt_i_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_iseq_i_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_iseq_i_ic_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_iseq_i_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_iseq_i_n_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_iseq_i_nc_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_iseq_i_n_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_iseq_i_s_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_iseq_i_sc_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_iseq_i_s_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_iseq_i_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_isne_i_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_isne_i_ic_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_isne_i_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_isne_i_n_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_isne_i_nc_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_isne_i_n_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_isne_i_s_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_isne_i_sc_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_isne_i_s_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_isne_i_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_and_i_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_and_i_ic_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_and_i_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_and_p_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_not_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_not_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_not_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_not_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_or_i_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_or_i_ic_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_or_i_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_or_p_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_xor_i_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_xor_i_ic_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_xor_i_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_xor_p_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_debug_init(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_debug_load_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_debug_break(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_debug_print(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_backtrace(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_getline_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_getfile_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_close_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fdopen_p_i_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fdopen_p_ic_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fdopen_p_i_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fdopen_p_ic_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_getstdin_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_getstdout_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_getstderr_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_setstdin_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_setstdout_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_setstderr_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_open_p_s_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_open_p_sc_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_open_p_s_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_open_p_sc_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_open_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_open_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_print_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_print_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_print_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_print_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_print_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_print_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_print_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_say_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_say_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_say_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_say_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_say_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_say_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_say_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_printerr_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_printerr_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_printerr_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_printerr_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_printerr_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_printerr_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_printerr_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_print_p_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_print_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_print_p_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_print_p_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_print_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_print_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_print_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_read_s_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_read_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_read_s_p_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_read_s_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_readline_s_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_peek_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_peek_s_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_stat_i_s_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_stat_i_sc_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_stat_i_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_stat_i_sc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_stat_i_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_stat_i_ic_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_stat_i_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_stat_i_ic_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_seek_p_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_seek_p_ic_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_seek_p_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_seek_p_ic_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_seek_p_i_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_seek_p_ic_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_seek_p_i_ic_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_seek_p_ic_ic_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_seek_p_i_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_seek_p_ic_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_seek_p_i_ic_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_seek_p_ic_ic_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_tell_i_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_tell_i_i_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_abs_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_abs_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_abs_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_abs_n_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_abs_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_abs_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_add_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_add_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_add_n_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_add_n_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_add_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_add_p_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_add_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_add_p_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_add_p_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_add_i_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_add_i_ic_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_add_i_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_add_n_n_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_add_n_nc_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_add_n_n_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_add_p_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_add_p_p_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_add_p_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_add_p_p_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_add_p_p_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_cmod_i_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_cmod_i_ic_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_cmod_i_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_cmod_p_p_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_cmod_p_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_cmod_p_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_cmod_n_n_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_cmod_n_nc_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_cmod_n_n_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_cmod_p_p_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_cmod_p_p_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_dec_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_dec_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_dec_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_div_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_div_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_div_n_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_div_n_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_div_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_div_p_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_div_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_div_p_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_div_p_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_div_i_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_div_i_ic_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_div_i_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_div_i_ic_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_div_n_n_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_div_n_nc_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_div_n_n_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_div_n_nc_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_div_p_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_div_p_p_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_div_p_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_div_p_p_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_div_p_p_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fdiv_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fdiv_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fdiv_n_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fdiv_n_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fdiv_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fdiv_p_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fdiv_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fdiv_p_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fdiv_p_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fdiv_i_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fdiv_i_ic_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fdiv_i_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fdiv_n_n_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fdiv_n_nc_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fdiv_n_n_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fdiv_p_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fdiv_p_p_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fdiv_p_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fdiv_p_p_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fdiv_p_p_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ceil_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ceil_i_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ceil_n_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_floor_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_floor_i_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_floor_n_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_inc_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_inc_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_inc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mod_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mod_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mod_n_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mod_n_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mod_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mod_p_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mod_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mod_p_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mod_p_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mod_i_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mod_i_ic_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mod_i_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mod_n_n_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mod_n_nc_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mod_n_n_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mod_p_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mod_p_p_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mod_p_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mod_p_p_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mod_p_p_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mul_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mul_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mul_n_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mul_n_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mul_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mul_p_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mul_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mul_p_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mul_p_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mul_i_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mul_i_ic_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mul_i_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mul_n_n_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mul_n_nc_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mul_n_n_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mul_p_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mul_p_p_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mul_p_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mul_p_p_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mul_p_p_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_neg_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_neg_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_neg_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_neg_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_neg_n_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_neg_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_pow_n_n_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_pow_n_nc_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_pow_n_n_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_pow_p_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_pow_p_p_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_pow_p_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_pow_p_p_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_pow_p_p_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_pow_n_n_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_pow_n_nc_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_pow_n_n_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_pow_n_nc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_sub_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_sub_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_sub_n_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_sub_n_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_sub_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_sub_p_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_sub_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_sub_p_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_sub_p_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_sub_i_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_sub_i_ic_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_sub_i_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_sub_n_n_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_sub_n_nc_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_sub_n_n_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_sub_p_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_sub_p_p_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_sub_p_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_sub_p_p_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_sub_p_p_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_sqrt_n_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_acos_n_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_asec_n_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_asin_n_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_atan_n_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_atan_n_n_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_atan_n_nc_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_atan_n_n_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_cos_n_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_cosh_n_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_exp_n_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ln_n_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_log10_n_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_log2_n_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_sec_n_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_sech_n_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_sin_n_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_sinh_n_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_tan_n_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_tanh_n_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_callmethodcc_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_callmethodcc_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_callmethodcc_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_callmethod_p_s_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_callmethod_p_sc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_callmethod_p_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_tailcallmethod_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_tailcallmethod_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_tailcallmethod_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_addmethod_p_s_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_addmethod_p_sc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_can_i_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_can_i_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_does_i_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_does_i_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_does_i_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_does_i_p_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_isa_i_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_isa_i_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_isa_i_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_isa_i_p_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_newclass_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_newclass_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_newclass_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_newclass_p_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_subclass_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_subclass_p_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_subclass_p_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_subclass_p_pc_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_subclass_p_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_subclass_p_pc_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_subclass_p_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_subclass_p_pc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_subclass_p_p_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_subclass_p_pc_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_subclass_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_subclass_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_subclass_p_s_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_subclass_p_sc_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_subclass_p_s_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_subclass_p_sc_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_subclass_p_s_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_subclass_p_sc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_subclass_p_s_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_subclass_p_sc_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_get_class_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_get_class_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_get_class_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_get_class_p_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_class_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_addparent_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_removeparent_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_addrole_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_addattribute_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_addattribute_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_removeattribute_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_removeattribute_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_getattribute_p_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_getattribute_p_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_getattribute_p_p_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_getattribute_p_p_pc_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_getattribute_p_p_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_getattribute_p_p_pc_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_setattribute_p_s_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_setattribute_p_sc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_setattribute_p_p_s_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_setattribute_p_pc_s_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_setattribute_p_p_sc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_setattribute_p_pc_sc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_inspect_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_inspect_p_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_inspect_p_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_inspect_p_pc_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_inspect_p_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_inspect_p_pc_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_new_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_new_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_new_p_s_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_new_p_sc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_new_p_s_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_new_p_sc_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_new_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_new_p_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_new_p_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_new_p_pc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_new_p_p_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_new_p_pc_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_root_new_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_root_new_p_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_root_new_p_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_root_new_p_pc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_root_new_p_p_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_root_new_p_pc_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_typeof_s_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_typeof_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_get_repr_s_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_method_p_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_method_p_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_defined_i_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_defined_i_p_ki(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_defined_i_p_kic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_defined_i_p_k(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_defined_i_p_kc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_exists_i_p_ki(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_exists_i_p_kic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_exists_i_p_k(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_exists_i_p_kc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_delete_p_k(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_delete_p_kc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_delete_p_ki(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_delete_p_kic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_elements_i_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_push_p_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_push_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_push_p_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_push_p_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_push_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_push_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_push_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_pop_i_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_pop_n_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_pop_s_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_pop_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_unshift_p_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_unshift_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_unshift_p_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_unshift_p_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_unshift_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_unshift_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_unshift_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_shift_i_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_shift_n_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_shift_s_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_shift_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_splice_p_p_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_splice_p_p_ic_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_splice_p_p_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_splice_p_p_ic_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_setprop_p_s_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_setprop_p_sc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_getprop_p_s_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_getprop_p_sc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_delprop_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_delprop_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_prophash_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_freeze_s_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_thaw_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_thaw_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_add_multi_s_s_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_add_multi_sc_s_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_add_multi_s_sc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_add_multi_sc_sc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_multi_p_s_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_multi_p_sc_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_multi_p_s_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_multi_p_sc_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_register_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_unregister_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_box_p_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_box_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_box_p_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_box_p_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_box_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_box_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_iter_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_morph_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_morph_p_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_clone_s_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_clone_s_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_i_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_i_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_i_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_i_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_n_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_n_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_n_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_n_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_n_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_n_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_n_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_s_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_s_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_s_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_s_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_s_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_s_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_i_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_assign_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_assign_p_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_assign_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_assign_p_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_assign_p_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_assign_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_assign_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_assign_s_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_assign_s_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_setref_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_deref_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_ki_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_kic_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_ki_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_kic_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_ki_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_kic_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_ki_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_kic_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_ki_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_kic_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_ki_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_kic_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_ki_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_kic_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_i_p_ki(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_i_p_kic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_n_p_ki(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_n_p_kic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_s_p_ki(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_s_p_kic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_p_ki(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_p_kic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_k_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_kc_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_k_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_kc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_k_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_kc_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_k_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_kc_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_k_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_kc_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_k_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_kc_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_k_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_kc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_i_p_k(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_i_p_kc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_n_p_k(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_n_p_kc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_s_p_k(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_s_p_kc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_p_k(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_p_kc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_clone_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_clone_p_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_clone_p_p_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_copy_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_null_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_null_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_null_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_null_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ord_i_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ord_i_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ord_i_s_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ord_i_sc_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ord_i_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ord_i_sc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_chr_s_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_chr_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_chopn_s_s_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_chopn_s_sc_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_chopn_s_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_chopn_s_sc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_concat_s_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_concat_s_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_concat_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_concat_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_concat_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_concat_s_s_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_concat_s_sc_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_concat_s_s_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_concat_p_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_concat_p_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_concat_p_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_repeat_s_s_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_repeat_s_sc_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_repeat_s_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_repeat_s_sc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_repeat_p_p_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_repeat_p_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_repeat_p_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_repeat_p_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_repeat_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_repeat_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_length_i_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_length_i_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bytelength_i_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bytelength_i_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_pin_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_unpin_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_substr_s_s_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_substr_s_sc_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_substr_s_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_substr_s_sc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_substr_s_s_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_substr_s_sc_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_substr_s_s_ic_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_substr_s_sc_ic_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_substr_s_s_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_substr_s_sc_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_substr_s_s_ic_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_substr_s_sc_ic_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_substr_s_p_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_substr_s_p_ic_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_substr_s_p_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_substr_s_p_ic_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_replace_s_s_i_i_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_replace_s_sc_i_i_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_replace_s_s_ic_i_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_replace_s_sc_ic_i_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_replace_s_s_i_ic_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_replace_s_sc_i_ic_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_replace_s_s_ic_ic_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_replace_s_sc_ic_ic_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_replace_s_s_i_i_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_replace_s_sc_i_i_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_replace_s_s_ic_i_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_replace_s_sc_ic_i_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_replace_s_s_i_ic_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_replace_s_sc_i_ic_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_replace_s_s_ic_ic_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_replace_s_sc_ic_ic_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_index_i_s_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_index_i_sc_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_index_i_s_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_index_i_sc_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_index_i_s_s_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_index_i_sc_s_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_index_i_s_sc_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_index_i_sc_sc_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_index_i_s_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_index_i_sc_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_index_i_s_sc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_index_i_sc_sc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_sprintf_s_s_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_sprintf_s_sc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_sprintf_p_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_new_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_new_s_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_new_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_stringinfo_i_s_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_stringinfo_i_sc_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_stringinfo_i_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_stringinfo_i_sc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_upcase_s_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_upcase_s_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_downcase_s_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_downcase_s_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_titlecase_s_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_titlecase_s_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_join_s_s_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_join_s_sc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_split_p_s_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_split_p_sc_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_split_p_s_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_split_p_sc_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_charset_i_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_charset_i_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_charsetname_s_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_charsetname_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_charset_i_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_charset_i_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_trans_charset_s_s_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_trans_charset_s_sc_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_trans_charset_s_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_trans_charset_s_sc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_encoding_i_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_encoding_i_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_encodingname_s_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_encodingname_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_encoding_i_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_encoding_i_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_trans_encoding_s_s_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_trans_encoding_s_sc_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_trans_encoding_s_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_trans_encoding_s_sc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_is_cclass_i_i_s_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_is_cclass_i_ic_s_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_is_cclass_i_i_sc_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_is_cclass_i_ic_sc_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_is_cclass_i_i_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_is_cclass_i_ic_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_is_cclass_i_i_sc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_is_cclass_i_ic_sc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_cclass_i_i_s_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_cclass_i_ic_s_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_cclass_i_i_sc_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_cclass_i_ic_sc_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_cclass_i_i_s_ic_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_cclass_i_ic_s_ic_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_cclass_i_i_sc_ic_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_cclass_i_ic_sc_ic_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_cclass_i_i_s_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_cclass_i_ic_s_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_cclass_i_i_sc_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_cclass_i_ic_sc_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_cclass_i_i_s_ic_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_cclass_i_ic_s_ic_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_cclass_i_i_sc_ic_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_cclass_i_ic_sc_ic_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_not_cclass_i_i_s_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_not_cclass_i_ic_s_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_not_cclass_i_i_sc_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_not_cclass_i_ic_sc_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_not_cclass_i_i_s_ic_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_not_cclass_i_ic_s_ic_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_not_cclass_i_i_sc_ic_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_not_cclass_i_ic_sc_ic_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_not_cclass_i_i_s_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_not_cclass_i_ic_s_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_not_cclass_i_i_sc_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_not_cclass_i_ic_sc_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_not_cclass_i_i_s_ic_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_not_cclass_i_ic_s_ic_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_not_cclass_i_i_sc_ic_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_not_cclass_i_ic_sc_ic_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_escape_s_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_compose_s_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_compose_s_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_spawnw_i_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_spawnw_i_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_spawnw_i_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_err_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_err_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_err_s_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_err_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_time_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_time_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_gmtime_s_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_gmtime_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_localtime_s_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_localtime_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_decodetime_p_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_decodetime_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_decodelocaltime_p_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_decodelocaltime_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_sysinfo_s_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_sysinfo_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_sysinfo_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_sysinfo_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_sleep_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_sleep_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_sleep_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_sleep_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_store_lex_s_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_store_lex_sc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_store_dynamic_lex_s_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_store_dynamic_lex_sc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_lex_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_lex_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_dynamic_lex_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_dynamic_lex_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_caller_lex_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_caller_lex_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_get_namespace_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_get_namespace_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_get_namespace_p_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_get_hll_namespace_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_get_hll_namespace_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_get_hll_namespace_p_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_get_root_namespace_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_get_root_namespace_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_get_root_namespace_p_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_get_global_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_get_global_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_get_global_p_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_get_global_p_pc_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_get_global_p_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_get_global_p_pc_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_get_hll_global_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_get_hll_global_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_get_hll_global_p_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_get_hll_global_p_pc_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_get_hll_global_p_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_get_hll_global_p_pc_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_get_root_global_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_get_root_global_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_get_root_global_p_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_get_root_global_p_pc_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_get_root_global_p_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_get_root_global_p_pc_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_global_s_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_global_sc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_global_p_s_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_global_pc_s_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_global_p_sc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_global_pc_sc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_hll_global_s_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_hll_global_sc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_hll_global_p_s_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_hll_global_pc_s_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_hll_global_p_sc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_hll_global_pc_sc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_root_global_s_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_root_global_sc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_root_global_p_s_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_root_global_pc_s_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_root_global_p_sc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_root_global_pc_sc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_name_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_name_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_sub_not_null_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_sub_not_null_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_trap(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_label_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_get_label_i_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fetch_p_p_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fetch_p_pc_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fetch_p_p_pc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fetch_p_pc_pc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fetch_p_p_p_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fetch_p_pc_p_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fetch_p_p_pc_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fetch_p_pc_pc_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fetch_p_p_i_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fetch_p_pc_i_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fetch_p_p_ic_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fetch_p_pc_ic_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fetch_p_p_i_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fetch_p_pc_i_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fetch_p_p_ic_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fetch_p_pc_ic_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fetch_p_p_s_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fetch_p_pc_s_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fetch_p_p_sc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fetch_p_pc_sc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fetch_p_p_s_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fetch_p_pc_s_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fetch_p_p_sc_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fetch_p_pc_sc_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_vivify_p_p_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_vivify_p_pc_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_vivify_p_p_pc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_vivify_p_pc_pc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_vivify_p_p_p_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_vivify_p_pc_p_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_vivify_p_p_pc_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_vivify_p_pc_pc_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_vivify_p_p_i_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_vivify_p_pc_i_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_vivify_p_p_ic_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_vivify_p_pc_ic_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_vivify_p_p_i_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_vivify_p_pc_i_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_vivify_p_p_ic_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_vivify_p_pc_ic_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_vivify_p_p_s_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_vivify_p_pc_s_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_vivify_p_p_sc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_vivify_p_pc_sc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_vivify_p_p_s_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_vivify_p_pc_s_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_vivify_p_p_sc_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_vivify_p_pc_sc_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_new_p_s_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_new_p_sc_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_new_p_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_new_p_sc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_new_p_p_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_new_p_pc_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_new_p_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_new_p_pc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_root_new_p_p_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_root_new_p_pc_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_root_new_p_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_root_new_p_pc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_codepoint_i_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_codepoint_i_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_unroll_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_unroll_pc(opcode_t *, PARROT_INTERP);
+
+
+#endif /* PARROT_OPLIB_CORE_OPS_H_GUARD */
+
+
+/*
+ * Local variables:
+ *   c-file-style: "parrot"
+ *   buffer-read-only: t
+ * End:
+ * vim: expandtab shiftwidth=4:
+ */

Copied: branches/ucs4_encoding/include/parrot/oplib/ops.h (from r46972, trunk/include/parrot/oplib/ops.h)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/ucs4_encoding/include/parrot/oplib/ops.h	Mon May 24 21:18:41 2010	(r46974, copy of r46972, trunk/include/parrot/oplib/ops.h)
@@ -0,0 +1,1300 @@
+
+/* $Id$ */
+
+#ifndef PARROT_OPLIB_OPS_H_GUARD
+#define PARROT_OPLIB_OPS_H_GUARD
+
+
+/* ex: set ro:
+ * !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
+ *
+ * This file is generated automatically from 'src/ops/core.ops' (and possibly other
+ * .ops files). by ops2c.nqp.
+ *
+ * Any changes made here will be lost!
+ *
+ */
+
+typedef enum {
+    PARROT_OP_end,                             /* 0 */
+    PARROT_OP_noop,                            /* 1 */
+    PARROT_OP_check_events,                    /* 2 */
+    PARROT_OP_check_events__,                  /* 3 */
+    PARROT_OP_wrapper__,                       /* 4 */
+    PARROT_OP_load_bytecode_s,                 /* 5 */
+    PARROT_OP_load_bytecode_sc,                /* 6 */
+    PARROT_OP_load_language_s,                 /* 7 */
+    PARROT_OP_load_language_sc,                /* 8 */
+    PARROT_OP_branch_i,                        /* 9 */
+    PARROT_OP_branch_ic,                       /* 10 */
+    PARROT_OP_local_branch_p_i,                /* 11 */
+    PARROT_OP_local_branch_p_ic,               /* 12 */
+    PARROT_OP_local_return_p,                  /* 13 */
+    PARROT_OP_jump_i,                          /* 14 */
+    PARROT_OP_jump_ic,                         /* 15 */
+    PARROT_OP_enternative,                     /* 16 */
+    PARROT_OP_if_i_ic,                         /* 17 */
+    PARROT_OP_if_n_ic,                         /* 18 */
+    PARROT_OP_if_s_ic,                         /* 19 */
+    PARROT_OP_if_p_ic,                         /* 20 */
+    PARROT_OP_unless_i_ic,                     /* 21 */
+    PARROT_OP_unless_n_ic,                     /* 22 */
+    PARROT_OP_unless_s_ic,                     /* 23 */
+    PARROT_OP_unless_p_ic,                     /* 24 */
+    PARROT_OP_invokecc_p,                      /* 25 */
+    PARROT_OP_invoke_p_p,                      /* 26 */
+    PARROT_OP_yield,                           /* 27 */
+    PARROT_OP_tailcall_p,                      /* 28 */
+    PARROT_OP_returncc,                        /* 29 */
+    PARROT_OP_capture_lex_p,                   /* 30 */
+    PARROT_OP_newclosure_p_p,                  /* 31 */
+    PARROT_OP_set_args_pc,                     /* 32 */
+    PARROT_OP_get_params_pc,                   /* 33 */
+    PARROT_OP_set_returns_pc,                  /* 34 */
+    PARROT_OP_get_results_pc,                  /* 35 */
+    PARROT_OP_set_result_info_p,               /* 36 */
+    PARROT_OP_set_result_info_pc,              /* 37 */
+    PARROT_OP_result_info_p,                   /* 38 */
+    PARROT_OP_set_addr_i_ic,                   /* 39 */
+    PARROT_OP_set_addr_p_ic,                   /* 40 */
+    PARROT_OP_set_addr_p_i,                    /* 41 */
+    PARROT_OP_get_addr_i_p,                    /* 42 */
+    PARROT_OP_schedule_p,                      /* 43 */
+    PARROT_OP_addhandler_p,                    /* 44 */
+    PARROT_OP_push_eh_ic,                      /* 45 */
+    PARROT_OP_push_eh_p,                       /* 46 */
+    PARROT_OP_pop_eh,                          /* 47 */
+    PARROT_OP_throw_p,                         /* 48 */
+    PARROT_OP_throw_p_p,                       /* 49 */
+    PARROT_OP_rethrow_p,                       /* 50 */
+    PARROT_OP_count_eh_i,                      /* 51 */
+    PARROT_OP_die_s,                           /* 52 */
+    PARROT_OP_die_sc,                          /* 53 */
+    PARROT_OP_die_p,                           /* 54 */
+    PARROT_OP_die_pc,                          /* 55 */
+    PARROT_OP_die_i_i,                         /* 56 */
+    PARROT_OP_die_ic_i,                        /* 57 */
+    PARROT_OP_die_i_ic,                        /* 58 */
+    PARROT_OP_die_ic_ic,                       /* 59 */
+    PARROT_OP_exit_i,                          /* 60 */
+    PARROT_OP_exit_ic,                         /* 61 */
+    PARROT_OP_debug_i,                         /* 62 */
+    PARROT_OP_debug_ic,                        /* 63 */
+    PARROT_OP_bounds_i,                        /* 64 */
+    PARROT_OP_bounds_ic,                       /* 65 */
+    PARROT_OP_profile_i,                       /* 66 */
+    PARROT_OP_profile_ic,                      /* 67 */
+    PARROT_OP_trace_i,                         /* 68 */
+    PARROT_OP_trace_ic,                        /* 69 */
+    PARROT_OP_gc_debug_i,                      /* 70 */
+    PARROT_OP_gc_debug_ic,                     /* 71 */
+    PARROT_OP_interpinfo_i_i,                  /* 72 */
+    PARROT_OP_interpinfo_i_ic,                 /* 73 */
+    PARROT_OP_interpinfo_p_i,                  /* 74 */
+    PARROT_OP_interpinfo_p_ic,                 /* 75 */
+    PARROT_OP_interpinfo_s_i,                  /* 76 */
+    PARROT_OP_interpinfo_s_ic,                 /* 77 */
+    PARROT_OP_warningson_i,                    /* 78 */
+    PARROT_OP_warningson_ic,                   /* 79 */
+    PARROT_OP_warningsoff_i,                   /* 80 */
+    PARROT_OP_warningsoff_ic,                  /* 81 */
+    PARROT_OP_errorson_i,                      /* 82 */
+    PARROT_OP_errorson_ic,                     /* 83 */
+    PARROT_OP_errorsoff_i,                     /* 84 */
+    PARROT_OP_errorsoff_ic,                    /* 85 */
+    PARROT_OP_runinterp_p_i,                   /* 86 */
+    PARROT_OP_runinterp_p_ic,                  /* 87 */
+    PARROT_OP_getinterp_p,                     /* 88 */
+    PARROT_OP_sweep_ic,                        /* 89 */
+    PARROT_OP_collect,                         /* 90 */
+    PARROT_OP_sweepoff,                        /* 91 */
+    PARROT_OP_sweepon,                         /* 92 */
+    PARROT_OP_collectoff,                      /* 93 */
+    PARROT_OP_collecton,                       /* 94 */
+    PARROT_OP_needs_destroy_p,                 /* 95 */
+    PARROT_OP_loadlib_p_s,                     /* 96 */
+    PARROT_OP_loadlib_p_sc,                    /* 97 */
+    PARROT_OP_loadlib_p_s_p,                   /* 98 */
+    PARROT_OP_loadlib_p_sc_p,                  /* 99 */
+    PARROT_OP_loadlib_p_s_pc,                  /* 100 */
+    PARROT_OP_loadlib_p_sc_pc,                 /* 101 */
+    PARROT_OP_dlfunc_p_p_s_s,                  /* 102 */
+    PARROT_OP_dlfunc_p_p_sc_s,                 /* 103 */
+    PARROT_OP_dlfunc_p_p_s_sc,                 /* 104 */
+    PARROT_OP_dlfunc_p_p_sc_sc,                /* 105 */
+    PARROT_OP_dlvar_p_p_s,                     /* 106 */
+    PARROT_OP_dlvar_p_p_sc,                    /* 107 */
+    PARROT_OP_compreg_s_p,                     /* 108 */
+    PARROT_OP_compreg_sc_p,                    /* 109 */
+    PARROT_OP_compreg_p_s,                     /* 110 */
+    PARROT_OP_compreg_p_sc,                    /* 111 */
+    PARROT_OP_new_callback_p_p_p_s,            /* 112 */
+    PARROT_OP_new_callback_p_p_p_sc,           /* 113 */
+    PARROT_OP_annotations_p,                   /* 114 */
+    PARROT_OP_annotations_p_s,                 /* 115 */
+    PARROT_OP_annotations_p_sc,                /* 116 */
+    PARROT_OP_band_i_i,                        /* 117 */
+    PARROT_OP_band_i_ic,                       /* 118 */
+    PARROT_OP_band_p_i,                        /* 119 */
+    PARROT_OP_band_p_ic,                       /* 120 */
+    PARROT_OP_band_p_p,                        /* 121 */
+    PARROT_OP_band_i_i_i,                      /* 122 */
+    PARROT_OP_band_i_ic_i,                     /* 123 */
+    PARROT_OP_band_i_i_ic,                     /* 124 */
+    PARROT_OP_band_p_p_i,                      /* 125 */
+    PARROT_OP_band_p_p_ic,                     /* 126 */
+    PARROT_OP_band_p_p_p,                      /* 127 */
+    PARROT_OP_bands_p_s,                       /* 128 */
+    PARROT_OP_bands_p_sc,                      /* 129 */
+    PARROT_OP_bands_p_p,                       /* 130 */
+    PARROT_OP_bands_s_s_s,                     /* 131 */
+    PARROT_OP_bands_s_sc_s,                    /* 132 */
+    PARROT_OP_bands_s_s_sc,                    /* 133 */
+    PARROT_OP_bands_p_p_s,                     /* 134 */
+    PARROT_OP_bands_p_p_sc,                    /* 135 */
+    PARROT_OP_bands_p_p_p,                     /* 136 */
+    PARROT_OP_bnot_i,                          /* 137 */
+    PARROT_OP_bnot_i_i,                        /* 138 */
+    PARROT_OP_bnot_p,                          /* 139 */
+    PARROT_OP_bnot_p_p,                        /* 140 */
+    PARROT_OP_bnots_s_s,                       /* 141 */
+    PARROT_OP_bnots_s_sc,                      /* 142 */
+    PARROT_OP_bnots_p,                         /* 143 */
+    PARROT_OP_bnots_p_p,                       /* 144 */
+    PARROT_OP_bor_i_i,                         /* 145 */
+    PARROT_OP_bor_i_ic,                        /* 146 */
+    PARROT_OP_bor_p_i,                         /* 147 */
+    PARROT_OP_bor_p_ic,                        /* 148 */
+    PARROT_OP_bor_p_p,                         /* 149 */
+    PARROT_OP_bor_i_i_i,                       /* 150 */
+    PARROT_OP_bor_i_ic_i,                      /* 151 */
+    PARROT_OP_bor_i_i_ic,                      /* 152 */
+    PARROT_OP_bor_p_p_i,                       /* 153 */
+    PARROT_OP_bor_p_p_ic,                      /* 154 */
+    PARROT_OP_bor_p_p_p,                       /* 155 */
+    PARROT_OP_bors_p_s,                        /* 156 */
+    PARROT_OP_bors_p_sc,                       /* 157 */
+    PARROT_OP_bors_p_p,                        /* 158 */
+    PARROT_OP_bors_s_s_s,                      /* 159 */
+    PARROT_OP_bors_s_sc_s,                     /* 160 */
+    PARROT_OP_bors_s_s_sc,                     /* 161 */
+    PARROT_OP_bors_p_p_s,                      /* 162 */
+    PARROT_OP_bors_p_p_sc,                     /* 163 */
+    PARROT_OP_bors_p_p_p,                      /* 164 */
+    PARROT_OP_shl_i_i,                         /* 165 */
+    PARROT_OP_shl_i_ic,                        /* 166 */
+    PARROT_OP_shl_p_i,                         /* 167 */
+    PARROT_OP_shl_p_ic,                        /* 168 */
+    PARROT_OP_shl_p_p,                         /* 169 */
+    PARROT_OP_shl_i_i_i,                       /* 170 */
+    PARROT_OP_shl_i_ic_i,                      /* 171 */
+    PARROT_OP_shl_i_i_ic,                      /* 172 */
+    PARROT_OP_shl_p_p_i,                       /* 173 */
+    PARROT_OP_shl_p_p_ic,                      /* 174 */
+    PARROT_OP_shl_p_p_p,                       /* 175 */
+    PARROT_OP_shr_i_i,                         /* 176 */
+    PARROT_OP_shr_i_ic,                        /* 177 */
+    PARROT_OP_shr_p_i,                         /* 178 */
+    PARROT_OP_shr_p_ic,                        /* 179 */
+    PARROT_OP_shr_p_p,                         /* 180 */
+    PARROT_OP_shr_i_i_i,                       /* 181 */
+    PARROT_OP_shr_i_ic_i,                      /* 182 */
+    PARROT_OP_shr_i_i_ic,                      /* 183 */
+    PARROT_OP_shr_p_p_i,                       /* 184 */
+    PARROT_OP_shr_p_p_ic,                      /* 185 */
+    PARROT_OP_shr_p_p_p,                       /* 186 */
+    PARROT_OP_lsr_i_i,                         /* 187 */
+    PARROT_OP_lsr_i_ic,                        /* 188 */
+    PARROT_OP_lsr_p_i,                         /* 189 */
+    PARROT_OP_lsr_p_ic,                        /* 190 */
+    PARROT_OP_lsr_p_p,                         /* 191 */
+    PARROT_OP_lsr_i_i_i,                       /* 192 */
+    PARROT_OP_lsr_i_ic_i,                      /* 193 */
+    PARROT_OP_lsr_i_i_ic,                      /* 194 */
+    PARROT_OP_lsr_p_p_i,                       /* 195 */
+    PARROT_OP_lsr_p_p_ic,                      /* 196 */
+    PARROT_OP_lsr_p_p_p,                       /* 197 */
+    PARROT_OP_rot_i_i_i_ic,                    /* 198 */
+    PARROT_OP_rot_i_ic_i_ic,                   /* 199 */
+    PARROT_OP_rot_i_i_ic_ic,                   /* 200 */
+    PARROT_OP_bxor_i_i,                        /* 201 */
+    PARROT_OP_bxor_i_ic,                       /* 202 */
+    PARROT_OP_bxor_p_i,                        /* 203 */
+    PARROT_OP_bxor_p_ic,                       /* 204 */
+    PARROT_OP_bxor_p_p,                        /* 205 */
+    PARROT_OP_bxor_i_i_i,                      /* 206 */
+    PARROT_OP_bxor_i_ic_i,                     /* 207 */
+    PARROT_OP_bxor_i_i_ic,                     /* 208 */
+    PARROT_OP_bxor_p_p_i,                      /* 209 */
+    PARROT_OP_bxor_p_p_ic,                     /* 210 */
+    PARROT_OP_bxor_p_p_p,                      /* 211 */
+    PARROT_OP_bxors_p_s,                       /* 212 */
+    PARROT_OP_bxors_p_sc,                      /* 213 */
+    PARROT_OP_bxors_p_p,                       /* 214 */
+    PARROT_OP_bxors_s_s_s,                     /* 215 */
+    PARROT_OP_bxors_s_sc_s,                    /* 216 */
+    PARROT_OP_bxors_s_s_sc,                    /* 217 */
+    PARROT_OP_bxors_p_p_s,                     /* 218 */
+    PARROT_OP_bxors_p_p_sc,                    /* 219 */
+    PARROT_OP_bxors_p_p_p,                     /* 220 */
+    PARROT_OP_eq_i_i_ic,                       /* 221 */
+    PARROT_OP_eq_ic_i_ic,                      /* 222 */
+    PARROT_OP_eq_i_ic_ic,                      /* 223 */
+    PARROT_OP_eq_n_n_ic,                       /* 224 */
+    PARROT_OP_eq_nc_n_ic,                      /* 225 */
+    PARROT_OP_eq_n_nc_ic,                      /* 226 */
+    PARROT_OP_eq_s_s_ic,                       /* 227 */
+    PARROT_OP_eq_sc_s_ic,                      /* 228 */
+    PARROT_OP_eq_s_sc_ic,                      /* 229 */
+    PARROT_OP_eq_p_p_ic,                       /* 230 */
+    PARROT_OP_eq_p_i_ic,                       /* 231 */
+    PARROT_OP_eq_p_ic_ic,                      /* 232 */
+    PARROT_OP_eq_p_n_ic,                       /* 233 */
+    PARROT_OP_eq_p_nc_ic,                      /* 234 */
+    PARROT_OP_eq_p_s_ic,                       /* 235 */
+    PARROT_OP_eq_p_sc_ic,                      /* 236 */
+    PARROT_OP_eq_str_p_p_ic,                   /* 237 */
+    PARROT_OP_eq_num_p_p_ic,                   /* 238 */
+    PARROT_OP_eq_addr_s_s_ic,                  /* 239 */
+    PARROT_OP_eq_addr_sc_s_ic,                 /* 240 */
+    PARROT_OP_eq_addr_s_sc_ic,                 /* 241 */
+    PARROT_OP_eq_addr_sc_sc_ic,                /* 242 */
+    PARROT_OP_eq_addr_p_p_ic,                  /* 243 */
+    PARROT_OP_ne_i_i_ic,                       /* 244 */
+    PARROT_OP_ne_ic_i_ic,                      /* 245 */
+    PARROT_OP_ne_i_ic_ic,                      /* 246 */
+    PARROT_OP_ne_n_n_ic,                       /* 247 */
+    PARROT_OP_ne_nc_n_ic,                      /* 248 */
+    PARROT_OP_ne_n_nc_ic,                      /* 249 */
+    PARROT_OP_ne_s_s_ic,                       /* 250 */
+    PARROT_OP_ne_sc_s_ic,                      /* 251 */
+    PARROT_OP_ne_s_sc_ic,                      /* 252 */
+    PARROT_OP_ne_p_p_ic,                       /* 253 */
+    PARROT_OP_ne_p_i_ic,                       /* 254 */
+    PARROT_OP_ne_p_ic_ic,                      /* 255 */
+    PARROT_OP_ne_p_n_ic,                       /* 256 */
+    PARROT_OP_ne_p_nc_ic,                      /* 257 */
+    PARROT_OP_ne_p_s_ic,                       /* 258 */
+    PARROT_OP_ne_p_sc_ic,                      /* 259 */
+    PARROT_OP_ne_str_p_p_ic,                   /* 260 */
+    PARROT_OP_ne_num_p_p_ic,                   /* 261 */
+    PARROT_OP_ne_addr_s_s_ic,                  /* 262 */
+    PARROT_OP_ne_addr_sc_s_ic,                 /* 263 */
+    PARROT_OP_ne_addr_s_sc_ic,                 /* 264 */
+    PARROT_OP_ne_addr_sc_sc_ic,                /* 265 */
+    PARROT_OP_ne_addr_p_p_ic,                  /* 266 */
+    PARROT_OP_lt_i_i_ic,                       /* 267 */
+    PARROT_OP_lt_ic_i_ic,                      /* 268 */
+    PARROT_OP_lt_i_ic_ic,                      /* 269 */
+    PARROT_OP_lt_n_n_ic,                       /* 270 */
+    PARROT_OP_lt_nc_n_ic,                      /* 271 */
+    PARROT_OP_lt_n_nc_ic,                      /* 272 */
+    PARROT_OP_lt_s_s_ic,                       /* 273 */
+    PARROT_OP_lt_sc_s_ic,                      /* 274 */
+    PARROT_OP_lt_s_sc_ic,                      /* 275 */
+    PARROT_OP_lt_p_p_ic,                       /* 276 */
+    PARROT_OP_lt_p_i_ic,                       /* 277 */
+    PARROT_OP_lt_p_ic_ic,                      /* 278 */
+    PARROT_OP_lt_p_n_ic,                       /* 279 */
+    PARROT_OP_lt_p_nc_ic,                      /* 280 */
+    PARROT_OP_lt_p_s_ic,                       /* 281 */
+    PARROT_OP_lt_p_sc_ic,                      /* 282 */
+    PARROT_OP_lt_str_p_p_ic,                   /* 283 */
+    PARROT_OP_lt_num_p_p_ic,                   /* 284 */
+    PARROT_OP_le_i_i_ic,                       /* 285 */
+    PARROT_OP_le_ic_i_ic,                      /* 286 */
+    PARROT_OP_le_i_ic_ic,                      /* 287 */
+    PARROT_OP_le_n_n_ic,                       /* 288 */
+    PARROT_OP_le_nc_n_ic,                      /* 289 */
+    PARROT_OP_le_n_nc_ic,                      /* 290 */
+    PARROT_OP_le_s_s_ic,                       /* 291 */
+    PARROT_OP_le_sc_s_ic,                      /* 292 */
+    PARROT_OP_le_s_sc_ic,                      /* 293 */
+    PARROT_OP_le_p_p_ic,                       /* 294 */
+    PARROT_OP_le_p_i_ic,                       /* 295 */
+    PARROT_OP_le_p_ic_ic,                      /* 296 */
+    PARROT_OP_le_p_n_ic,                       /* 297 */
+    PARROT_OP_le_p_nc_ic,                      /* 298 */
+    PARROT_OP_le_p_s_ic,                       /* 299 */
+    PARROT_OP_le_p_sc_ic,                      /* 300 */
+    PARROT_OP_le_str_p_p_ic,                   /* 301 */
+    PARROT_OP_le_num_p_p_ic,                   /* 302 */
+    PARROT_OP_gt_p_p_ic,                       /* 303 */
+    PARROT_OP_gt_p_i_ic,                       /* 304 */
+    PARROT_OP_gt_p_ic_ic,                      /* 305 */
+    PARROT_OP_gt_p_n_ic,                       /* 306 */
+    PARROT_OP_gt_p_nc_ic,                      /* 307 */
+    PARROT_OP_gt_p_s_ic,                       /* 308 */
+    PARROT_OP_gt_p_sc_ic,                      /* 309 */
+    PARROT_OP_gt_str_p_p_ic,                   /* 310 */
+    PARROT_OP_gt_num_p_p_ic,                   /* 311 */
+    PARROT_OP_ge_p_p_ic,                       /* 312 */
+    PARROT_OP_ge_p_i_ic,                       /* 313 */
+    PARROT_OP_ge_p_ic_ic,                      /* 314 */
+    PARROT_OP_ge_p_n_ic,                       /* 315 */
+    PARROT_OP_ge_p_nc_ic,                      /* 316 */
+    PARROT_OP_ge_p_s_ic,                       /* 317 */
+    PARROT_OP_ge_p_sc_ic,                      /* 318 */
+    PARROT_OP_ge_str_p_p_ic,                   /* 319 */
+    PARROT_OP_ge_num_p_p_ic,                   /* 320 */
+    PARROT_OP_if_null_p_ic,                    /* 321 */
+    PARROT_OP_if_null_s_ic,                    /* 322 */
+    PARROT_OP_unless_null_p_ic,                /* 323 */
+    PARROT_OP_unless_null_s_ic,                /* 324 */
+    PARROT_OP_cmp_i_i_i,                       /* 325 */
+    PARROT_OP_cmp_i_ic_i,                      /* 326 */
+    PARROT_OP_cmp_i_i_ic,                      /* 327 */
+    PARROT_OP_cmp_i_n_n,                       /* 328 */
+    PARROT_OP_cmp_i_nc_n,                      /* 329 */
+    PARROT_OP_cmp_i_n_nc,                      /* 330 */
+    PARROT_OP_cmp_i_s_s,                       /* 331 */
+    PARROT_OP_cmp_i_sc_s,                      /* 332 */
+    PARROT_OP_cmp_i_s_sc,                      /* 333 */
+    PARROT_OP_cmp_i_p_p,                       /* 334 */
+    PARROT_OP_cmp_i_p_i,                       /* 335 */
+    PARROT_OP_cmp_i_p_ic,                      /* 336 */
+    PARROT_OP_cmp_i_p_n,                       /* 337 */
+    PARROT_OP_cmp_i_p_nc,                      /* 338 */
+    PARROT_OP_cmp_i_p_s,                       /* 339 */
+    PARROT_OP_cmp_i_p_sc,                      /* 340 */
+    PARROT_OP_cmp_str_i_p_p,                   /* 341 */
+    PARROT_OP_cmp_num_i_p_p,                   /* 342 */
+    PARROT_OP_cmp_pmc_p_p_p,                   /* 343 */
+    PARROT_OP_issame_i_p_p,                    /* 344 */
+    PARROT_OP_issame_i_s_s,                    /* 345 */
+    PARROT_OP_issame_i_sc_s,                   /* 346 */
+    PARROT_OP_issame_i_s_sc,                   /* 347 */
+    PARROT_OP_issame_i_sc_sc,                  /* 348 */
+    PARROT_OP_isntsame_i_p_p,                  /* 349 */
+    PARROT_OP_isntsame_i_s_s,                  /* 350 */
+    PARROT_OP_isntsame_i_sc_s,                 /* 351 */
+    PARROT_OP_isntsame_i_s_sc,                 /* 352 */
+    PARROT_OP_isntsame_i_sc_sc,                /* 353 */
+    PARROT_OP_istrue_i_p,                      /* 354 */
+    PARROT_OP_isfalse_i_p,                     /* 355 */
+    PARROT_OP_isnull_i_p,                      /* 356 */
+    PARROT_OP_isnull_i_pc,                     /* 357 */
+    PARROT_OP_isnull_i_s,                      /* 358 */
+    PARROT_OP_isnull_i_sc,                     /* 359 */
+    PARROT_OP_isgt_i_p_p,                      /* 360 */
+    PARROT_OP_isge_i_p_p,                      /* 361 */
+    PARROT_OP_isle_i_i_i,                      /* 362 */
+    PARROT_OP_isle_i_ic_i,                     /* 363 */
+    PARROT_OP_isle_i_i_ic,                     /* 364 */
+    PARROT_OP_isle_i_n_n,                      /* 365 */
+    PARROT_OP_isle_i_nc_n,                     /* 366 */
+    PARROT_OP_isle_i_n_nc,                     /* 367 */
+    PARROT_OP_isle_i_s_s,                      /* 368 */
+    PARROT_OP_isle_i_sc_s,                     /* 369 */
+    PARROT_OP_isle_i_s_sc,                     /* 370 */
+    PARROT_OP_isle_i_p_p,                      /* 371 */
+    PARROT_OP_islt_i_i_i,                      /* 372 */
+    PARROT_OP_islt_i_ic_i,                     /* 373 */
+    PARROT_OP_islt_i_i_ic,                     /* 374 */
+    PARROT_OP_islt_i_n_n,                      /* 375 */
+    PARROT_OP_islt_i_nc_n,                     /* 376 */
+    PARROT_OP_islt_i_n_nc,                     /* 377 */
+    PARROT_OP_islt_i_s_s,                      /* 378 */
+    PARROT_OP_islt_i_sc_s,                     /* 379 */
+    PARROT_OP_islt_i_s_sc,                     /* 380 */
+    PARROT_OP_islt_i_p_p,                      /* 381 */
+    PARROT_OP_iseq_i_i_i,                      /* 382 */
+    PARROT_OP_iseq_i_ic_i,                     /* 383 */
+    PARROT_OP_iseq_i_i_ic,                     /* 384 */
+    PARROT_OP_iseq_i_n_n,                      /* 385 */
+    PARROT_OP_iseq_i_nc_n,                     /* 386 */
+    PARROT_OP_iseq_i_n_nc,                     /* 387 */
+    PARROT_OP_iseq_i_s_s,                      /* 388 */
+    PARROT_OP_iseq_i_sc_s,                     /* 389 */
+    PARROT_OP_iseq_i_s_sc,                     /* 390 */
+    PARROT_OP_iseq_i_p_p,                      /* 391 */
+    PARROT_OP_isne_i_i_i,                      /* 392 */
+    PARROT_OP_isne_i_ic_i,                     /* 393 */
+    PARROT_OP_isne_i_i_ic,                     /* 394 */
+    PARROT_OP_isne_i_n_n,                      /* 395 */
+    PARROT_OP_isne_i_nc_n,                     /* 396 */
+    PARROT_OP_isne_i_n_nc,                     /* 397 */
+    PARROT_OP_isne_i_s_s,                      /* 398 */
+    PARROT_OP_isne_i_sc_s,                     /* 399 */
+    PARROT_OP_isne_i_s_sc,                     /* 400 */
+    PARROT_OP_isne_i_p_p,                      /* 401 */
+    PARROT_OP_and_i_i_i,                       /* 402 */
+    PARROT_OP_and_i_ic_i,                      /* 403 */
+    PARROT_OP_and_i_i_ic,                      /* 404 */
+    PARROT_OP_and_p_p_p,                       /* 405 */
+    PARROT_OP_not_i,                           /* 406 */
+    PARROT_OP_not_i_i,                         /* 407 */
+    PARROT_OP_not_p,                           /* 408 */
+    PARROT_OP_not_p_p,                         /* 409 */
+    PARROT_OP_or_i_i_i,                        /* 410 */
+    PARROT_OP_or_i_ic_i,                       /* 411 */
+    PARROT_OP_or_i_i_ic,                       /* 412 */
+    PARROT_OP_or_p_p_p,                        /* 413 */
+    PARROT_OP_xor_i_i_i,                       /* 414 */
+    PARROT_OP_xor_i_ic_i,                      /* 415 */
+    PARROT_OP_xor_i_i_ic,                      /* 416 */
+    PARROT_OP_xor_p_p_p,                       /* 417 */
+    PARROT_OP_debug_init,                      /* 418 */
+    PARROT_OP_debug_load_sc,                   /* 419 */
+    PARROT_OP_debug_break,                     /* 420 */
+    PARROT_OP_debug_print,                     /* 421 */
+    PARROT_OP_backtrace,                       /* 422 */
+    PARROT_OP_getline_i,                       /* 423 */
+    PARROT_OP_getfile_s,                       /* 424 */
+    PARROT_OP_close_p,                         /* 425 */
+    PARROT_OP_fdopen_p_i_s,                    /* 426 */
+    PARROT_OP_fdopen_p_ic_s,                   /* 427 */
+    PARROT_OP_fdopen_p_i_sc,                   /* 428 */
+    PARROT_OP_fdopen_p_ic_sc,                  /* 429 */
+    PARROT_OP_getstdin_p,                      /* 430 */
+    PARROT_OP_getstdout_p,                     /* 431 */
+    PARROT_OP_getstderr_p,                     /* 432 */
+    PARROT_OP_setstdin_p,                      /* 433 */
+    PARROT_OP_setstdout_p,                     /* 434 */
+    PARROT_OP_setstderr_p,                     /* 435 */
+    PARROT_OP_open_p_s_s,                      /* 436 */
+    PARROT_OP_open_p_sc_s,                     /* 437 */
+    PARROT_OP_open_p_s_sc,                     /* 438 */
+    PARROT_OP_open_p_sc_sc,                    /* 439 */
+    PARROT_OP_open_p_s,                        /* 440 */
+    PARROT_OP_open_p_sc,                       /* 441 */
+    PARROT_OP_print_i,                         /* 442 */
+    PARROT_OP_print_ic,                        /* 443 */
+    PARROT_OP_print_n,                         /* 444 */
+    PARROT_OP_print_nc,                        /* 445 */
+    PARROT_OP_print_s,                         /* 446 */
+    PARROT_OP_print_sc,                        /* 447 */
+    PARROT_OP_print_p,                         /* 448 */
+    PARROT_OP_say_i,                           /* 449 */
+    PARROT_OP_say_ic,                          /* 450 */
+    PARROT_OP_say_n,                           /* 451 */
+    PARROT_OP_say_nc,                          /* 452 */
+    PARROT_OP_say_s,                           /* 453 */
+    PARROT_OP_say_sc,                          /* 454 */
+    PARROT_OP_say_p,                           /* 455 */
+    PARROT_OP_printerr_i,                      /* 456 */
+    PARROT_OP_printerr_ic,                     /* 457 */
+    PARROT_OP_printerr_n,                      /* 458 */
+    PARROT_OP_printerr_nc,                     /* 459 */
+    PARROT_OP_printerr_s,                      /* 460 */
+    PARROT_OP_printerr_sc,                     /* 461 */
+    PARROT_OP_printerr_p,                      /* 462 */
+    PARROT_OP_print_p_i,                       /* 463 */
+    PARROT_OP_print_p_ic,                      /* 464 */
+    PARROT_OP_print_p_n,                       /* 465 */
+    PARROT_OP_print_p_nc,                      /* 466 */
+    PARROT_OP_print_p_s,                       /* 467 */
+    PARROT_OP_print_p_sc,                      /* 468 */
+    PARROT_OP_print_p_p,                       /* 469 */
+    PARROT_OP_read_s_i,                        /* 470 */
+    PARROT_OP_read_s_ic,                       /* 471 */
+    PARROT_OP_read_s_p_i,                      /* 472 */
+    PARROT_OP_read_s_p_ic,                     /* 473 */
+    PARROT_OP_readline_s_p,                    /* 474 */
+    PARROT_OP_peek_s,                          /* 475 */
+    PARROT_OP_peek_s_p,                        /* 476 */
+    PARROT_OP_stat_i_s_i,                      /* 477 */
+    PARROT_OP_stat_i_sc_i,                     /* 478 */
+    PARROT_OP_stat_i_s_ic,                     /* 479 */
+    PARROT_OP_stat_i_sc_ic,                    /* 480 */
+    PARROT_OP_stat_i_i_i,                      /* 481 */
+    PARROT_OP_stat_i_ic_i,                     /* 482 */
+    PARROT_OP_stat_i_i_ic,                     /* 483 */
+    PARROT_OP_stat_i_ic_ic,                    /* 484 */
+    PARROT_OP_seek_p_i_i,                      /* 485 */
+    PARROT_OP_seek_p_ic_i,                     /* 486 */
+    PARROT_OP_seek_p_i_ic,                     /* 487 */
+    PARROT_OP_seek_p_ic_ic,                    /* 488 */
+    PARROT_OP_seek_p_i_i_i,                    /* 489 */
+    PARROT_OP_seek_p_ic_i_i,                   /* 490 */
+    PARROT_OP_seek_p_i_ic_i,                   /* 491 */
+    PARROT_OP_seek_p_ic_ic_i,                  /* 492 */
+    PARROT_OP_seek_p_i_i_ic,                   /* 493 */
+    PARROT_OP_seek_p_ic_i_ic,                  /* 494 */
+    PARROT_OP_seek_p_i_ic_ic,                  /* 495 */
+    PARROT_OP_seek_p_ic_ic_ic,                 /* 496 */
+    PARROT_OP_tell_i_p,                        /* 497 */
+    PARROT_OP_tell_i_i_p,                      /* 498 */
+    PARROT_OP_abs_i,                           /* 499 */
+    PARROT_OP_abs_n,                           /* 500 */
+    PARROT_OP_abs_i_i,                         /* 501 */
+    PARROT_OP_abs_n_n,                         /* 502 */
+    PARROT_OP_abs_p,                           /* 503 */
+    PARROT_OP_abs_p_p,                         /* 504 */
+    PARROT_OP_add_i_i,                         /* 505 */
+    PARROT_OP_add_i_ic,                        /* 506 */
+    PARROT_OP_add_n_n,                         /* 507 */
+    PARROT_OP_add_n_nc,                        /* 508 */
+    PARROT_OP_add_p_p,                         /* 509 */
+    PARROT_OP_add_p_i,                         /* 510 */
+    PARROT_OP_add_p_ic,                        /* 511 */
+    PARROT_OP_add_p_n,                         /* 512 */
+    PARROT_OP_add_p_nc,                        /* 513 */
+    PARROT_OP_add_i_i_i,                       /* 514 */
+    PARROT_OP_add_i_ic_i,                      /* 515 */
+    PARROT_OP_add_i_i_ic,                      /* 516 */
+    PARROT_OP_add_n_n_n,                       /* 517 */
+    PARROT_OP_add_n_nc_n,                      /* 518 */
+    PARROT_OP_add_n_n_nc,                      /* 519 */
+    PARROT_OP_add_p_p_p,                       /* 520 */
+    PARROT_OP_add_p_p_i,                       /* 521 */
+    PARROT_OP_add_p_p_ic,                      /* 522 */
+    PARROT_OP_add_p_p_n,                       /* 523 */
+    PARROT_OP_add_p_p_nc,                      /* 524 */
+    PARROT_OP_cmod_i_i_i,                      /* 525 */
+    PARROT_OP_cmod_i_ic_i,                     /* 526 */
+    PARROT_OP_cmod_i_i_ic,                     /* 527 */
+    PARROT_OP_cmod_p_p_i,                      /* 528 */
+    PARROT_OP_cmod_p_p_ic,                     /* 529 */
+    PARROT_OP_cmod_p_p_p,                      /* 530 */
+    PARROT_OP_cmod_n_n_n,                      /* 531 */
+    PARROT_OP_cmod_n_nc_n,                     /* 532 */
+    PARROT_OP_cmod_n_n_nc,                     /* 533 */
+    PARROT_OP_cmod_p_p_n,                      /* 534 */
+    PARROT_OP_cmod_p_p_nc,                     /* 535 */
+    PARROT_OP_dec_i,                           /* 536 */
+    PARROT_OP_dec_n,                           /* 537 */
+    PARROT_OP_dec_p,                           /* 538 */
+    PARROT_OP_div_i_i,                         /* 539 */
+    PARROT_OP_div_i_ic,                        /* 540 */
+    PARROT_OP_div_n_n,                         /* 541 */
+    PARROT_OP_div_n_nc,                        /* 542 */
+    PARROT_OP_div_p_p,                         /* 543 */
+    PARROT_OP_div_p_i,                         /* 544 */
+    PARROT_OP_div_p_ic,                        /* 545 */
+    PARROT_OP_div_p_n,                         /* 546 */
+    PARROT_OP_div_p_nc,                        /* 547 */
+    PARROT_OP_div_i_i_i,                       /* 548 */
+    PARROT_OP_div_i_ic_i,                      /* 549 */
+    PARROT_OP_div_i_i_ic,                      /* 550 */
+    PARROT_OP_div_i_ic_ic,                     /* 551 */
+    PARROT_OP_div_n_n_n,                       /* 552 */
+    PARROT_OP_div_n_nc_n,                      /* 553 */
+    PARROT_OP_div_n_n_nc,                      /* 554 */
+    PARROT_OP_div_n_nc_nc,                     /* 555 */
+    PARROT_OP_div_p_p_p,                       /* 556 */
+    PARROT_OP_div_p_p_i,                       /* 557 */
+    PARROT_OP_div_p_p_ic,                      /* 558 */
+    PARROT_OP_div_p_p_n,                       /* 559 */
+    PARROT_OP_div_p_p_nc,                      /* 560 */
+    PARROT_OP_fdiv_i_i,                        /* 561 */
+    PARROT_OP_fdiv_i_ic,                       /* 562 */
+    PARROT_OP_fdiv_n_n,                        /* 563 */
+    PARROT_OP_fdiv_n_nc,                       /* 564 */
+    PARROT_OP_fdiv_p_p,                        /* 565 */
+    PARROT_OP_fdiv_p_i,                        /* 566 */
+    PARROT_OP_fdiv_p_ic,                       /* 567 */
+    PARROT_OP_fdiv_p_n,                        /* 568 */
+    PARROT_OP_fdiv_p_nc,                       /* 569 */
+    PARROT_OP_fdiv_i_i_i,                      /* 570 */
+    PARROT_OP_fdiv_i_ic_i,                     /* 571 */
+    PARROT_OP_fdiv_i_i_ic,                     /* 572 */
+    PARROT_OP_fdiv_n_n_n,                      /* 573 */
+    PARROT_OP_fdiv_n_nc_n,                     /* 574 */
+    PARROT_OP_fdiv_n_n_nc,                     /* 575 */
+    PARROT_OP_fdiv_p_p_p,                      /* 576 */
+    PARROT_OP_fdiv_p_p_i,                      /* 577 */
+    PARROT_OP_fdiv_p_p_ic,                     /* 578 */
+    PARROT_OP_fdiv_p_p_n,                      /* 579 */
+    PARROT_OP_fdiv_p_p_nc,                     /* 580 */
+    PARROT_OP_ceil_n,                          /* 581 */
+    PARROT_OP_ceil_i_n,                        /* 582 */
+    PARROT_OP_ceil_n_n,                        /* 583 */
+    PARROT_OP_floor_n,                         /* 584 */
+    PARROT_OP_floor_i_n,                       /* 585 */
+    PARROT_OP_floor_n_n,                       /* 586 */
+    PARROT_OP_inc_i,                           /* 587 */
+    PARROT_OP_inc_n,                           /* 588 */
+    PARROT_OP_inc_p,                           /* 589 */
+    PARROT_OP_mod_i_i,                         /* 590 */
+    PARROT_OP_mod_i_ic,                        /* 591 */
+    PARROT_OP_mod_n_n,                         /* 592 */
+    PARROT_OP_mod_n_nc,                        /* 593 */
+    PARROT_OP_mod_p_p,                         /* 594 */
+    PARROT_OP_mod_p_i,                         /* 595 */
+    PARROT_OP_mod_p_ic,                        /* 596 */
+    PARROT_OP_mod_p_n,                         /* 597 */
+    PARROT_OP_mod_p_nc,                        /* 598 */
+    PARROT_OP_mod_i_i_i,                       /* 599 */
+    PARROT_OP_mod_i_ic_i,                      /* 600 */
+    PARROT_OP_mod_i_i_ic,                      /* 601 */
+    PARROT_OP_mod_n_n_n,                       /* 602 */
+    PARROT_OP_mod_n_nc_n,                      /* 603 */
+    PARROT_OP_mod_n_n_nc,                      /* 604 */
+    PARROT_OP_mod_p_p_p,                       /* 605 */
+    PARROT_OP_mod_p_p_i,                       /* 606 */
+    PARROT_OP_mod_p_p_ic,                      /* 607 */
+    PARROT_OP_mod_p_p_n,                       /* 608 */
+    PARROT_OP_mod_p_p_nc,                      /* 609 */
+    PARROT_OP_mul_i_i,                         /* 610 */
+    PARROT_OP_mul_i_ic,                        /* 611 */
+    PARROT_OP_mul_n_n,                         /* 612 */
+    PARROT_OP_mul_n_nc,                        /* 613 */
+    PARROT_OP_mul_p_p,                         /* 614 */
+    PARROT_OP_mul_p_i,                         /* 615 */
+    PARROT_OP_mul_p_ic,                        /* 616 */
+    PARROT_OP_mul_p_n,                         /* 617 */
+    PARROT_OP_mul_p_nc,                        /* 618 */
+    PARROT_OP_mul_i_i_i,                       /* 619 */
+    PARROT_OP_mul_i_ic_i,                      /* 620 */
+    PARROT_OP_mul_i_i_ic,                      /* 621 */
+    PARROT_OP_mul_n_n_n,                       /* 622 */
+    PARROT_OP_mul_n_nc_n,                      /* 623 */
+    PARROT_OP_mul_n_n_nc,                      /* 624 */
+    PARROT_OP_mul_p_p_p,                       /* 625 */
+    PARROT_OP_mul_p_p_i,                       /* 626 */
+    PARROT_OP_mul_p_p_ic,                      /* 627 */
+    PARROT_OP_mul_p_p_n,                       /* 628 */
+    PARROT_OP_mul_p_p_nc,                      /* 629 */
+    PARROT_OP_neg_i,                           /* 630 */
+    PARROT_OP_neg_n,                           /* 631 */
+    PARROT_OP_neg_p,                           /* 632 */
+    PARROT_OP_neg_i_i,                         /* 633 */
+    PARROT_OP_neg_n_n,                         /* 634 */
+    PARROT_OP_neg_p_p,                         /* 635 */
+    PARROT_OP_pow_n_n_n,                       /* 636 */
+    PARROT_OP_pow_n_nc_n,                      /* 637 */
+    PARROT_OP_pow_n_n_nc,                      /* 638 */
+    PARROT_OP_pow_p_p_p,                       /* 639 */
+    PARROT_OP_pow_p_p_i,                       /* 640 */
+    PARROT_OP_pow_p_p_ic,                      /* 641 */
+    PARROT_OP_pow_p_p_n,                       /* 642 */
+    PARROT_OP_pow_p_p_nc,                      /* 643 */
+    PARROT_OP_pow_n_n_i,                       /* 644 */
+    PARROT_OP_pow_n_nc_i,                      /* 645 */
+    PARROT_OP_pow_n_n_ic,                      /* 646 */
+    PARROT_OP_pow_n_nc_ic,                     /* 647 */
+    PARROT_OP_sub_i_i,                         /* 648 */
+    PARROT_OP_sub_i_ic,                        /* 649 */
+    PARROT_OP_sub_n_n,                         /* 650 */
+    PARROT_OP_sub_n_nc,                        /* 651 */
+    PARROT_OP_sub_p_p,                         /* 652 */
+    PARROT_OP_sub_p_i,                         /* 653 */
+    PARROT_OP_sub_p_ic,                        /* 654 */
+    PARROT_OP_sub_p_n,                         /* 655 */
+    PARROT_OP_sub_p_nc,                        /* 656 */
+    PARROT_OP_sub_i_i_i,                       /* 657 */
+    PARROT_OP_sub_i_ic_i,                      /* 658 */
+    PARROT_OP_sub_i_i_ic,                      /* 659 */
+    PARROT_OP_sub_n_n_n,                       /* 660 */
+    PARROT_OP_sub_n_nc_n,                      /* 661 */
+    PARROT_OP_sub_n_n_nc,                      /* 662 */
+    PARROT_OP_sub_p_p_p,                       /* 663 */
+    PARROT_OP_sub_p_p_i,                       /* 664 */
+    PARROT_OP_sub_p_p_ic,                      /* 665 */
+    PARROT_OP_sub_p_p_n,                       /* 666 */
+    PARROT_OP_sub_p_p_nc,                      /* 667 */
+    PARROT_OP_sqrt_n_n,                        /* 668 */
+    PARROT_OP_acos_n_n,                        /* 669 */
+    PARROT_OP_asec_n_n,                        /* 670 */
+    PARROT_OP_asin_n_n,                        /* 671 */
+    PARROT_OP_atan_n_n,                        /* 672 */
+    PARROT_OP_atan_n_n_n,                      /* 673 */
+    PARROT_OP_atan_n_nc_n,                     /* 674 */
+    PARROT_OP_atan_n_n_nc,                     /* 675 */
+    PARROT_OP_cos_n_n,                         /* 676 */
+    PARROT_OP_cosh_n_n,                        /* 677 */
+    PARROT_OP_exp_n_n,                         /* 678 */
+    PARROT_OP_ln_n_n,                          /* 679 */
+    PARROT_OP_log10_n_n,                       /* 680 */
+    PARROT_OP_log2_n_n,                        /* 681 */
+    PARROT_OP_sec_n_n,                         /* 682 */
+    PARROT_OP_sech_n_n,                        /* 683 */
+    PARROT_OP_sin_n_n,                         /* 684 */
+    PARROT_OP_sinh_n_n,                        /* 685 */
+    PARROT_OP_tan_n_n,                         /* 686 */
+    PARROT_OP_tanh_n_n,                        /* 687 */
+    PARROT_OP_callmethodcc_p_s,                /* 688 */
+    PARROT_OP_callmethodcc_p_sc,               /* 689 */
+    PARROT_OP_callmethodcc_p_p,                /* 690 */
+    PARROT_OP_callmethod_p_s_p,                /* 691 */
+    PARROT_OP_callmethod_p_sc_p,               /* 692 */
+    PARROT_OP_callmethod_p_p_p,                /* 693 */
+    PARROT_OP_tailcallmethod_p_s,              /* 694 */
+    PARROT_OP_tailcallmethod_p_sc,             /* 695 */
+    PARROT_OP_tailcallmethod_p_p,              /* 696 */
+    PARROT_OP_addmethod_p_s_p,                 /* 697 */
+    PARROT_OP_addmethod_p_sc_p,                /* 698 */
+    PARROT_OP_can_i_p_s,                       /* 699 */
+    PARROT_OP_can_i_p_sc,                      /* 700 */
+    PARROT_OP_does_i_p_s,                      /* 701 */
+    PARROT_OP_does_i_p_sc,                     /* 702 */
+    PARROT_OP_does_i_p_p,                      /* 703 */
+    PARROT_OP_does_i_p_pc,                     /* 704 */
+    PARROT_OP_isa_i_p_s,                       /* 705 */
+    PARROT_OP_isa_i_p_sc,                      /* 706 */
+    PARROT_OP_isa_i_p_p,                       /* 707 */
+    PARROT_OP_isa_i_p_pc,                      /* 708 */
+    PARROT_OP_newclass_p_s,                    /* 709 */
+    PARROT_OP_newclass_p_sc,                   /* 710 */
+    PARROT_OP_newclass_p_p,                    /* 711 */
+    PARROT_OP_newclass_p_pc,                   /* 712 */
+    PARROT_OP_subclass_p_p,                    /* 713 */
+    PARROT_OP_subclass_p_pc,                   /* 714 */
+    PARROT_OP_subclass_p_p_s,                  /* 715 */
+    PARROT_OP_subclass_p_pc_s,                 /* 716 */
+    PARROT_OP_subclass_p_p_sc,                 /* 717 */
+    PARROT_OP_subclass_p_pc_sc,                /* 718 */
+    PARROT_OP_subclass_p_p_p,                  /* 719 */
+    PARROT_OP_subclass_p_pc_p,                 /* 720 */
+    PARROT_OP_subclass_p_p_pc,                 /* 721 */
+    PARROT_OP_subclass_p_pc_pc,                /* 722 */
+    PARROT_OP_subclass_p_s,                    /* 723 */
+    PARROT_OP_subclass_p_sc,                   /* 724 */
+    PARROT_OP_subclass_p_s_s,                  /* 725 */
+    PARROT_OP_subclass_p_sc_s,                 /* 726 */
+    PARROT_OP_subclass_p_s_sc,                 /* 727 */
+    PARROT_OP_subclass_p_sc_sc,                /* 728 */
+    PARROT_OP_subclass_p_s_p,                  /* 729 */
+    PARROT_OP_subclass_p_sc_p,                 /* 730 */
+    PARROT_OP_subclass_p_s_pc,                 /* 731 */
+    PARROT_OP_subclass_p_sc_pc,                /* 732 */
+    PARROT_OP_get_class_p_s,                   /* 733 */
+    PARROT_OP_get_class_p_sc,                  /* 734 */
+    PARROT_OP_get_class_p_p,                   /* 735 */
+    PARROT_OP_get_class_p_pc,                  /* 736 */
+    PARROT_OP_class_p_p,                       /* 737 */
+    PARROT_OP_addparent_p_p,                   /* 738 */
+    PARROT_OP_removeparent_p_p,                /* 739 */
+    PARROT_OP_addrole_p_p,                     /* 740 */
+    PARROT_OP_addattribute_p_s,                /* 741 */
+    PARROT_OP_addattribute_p_sc,               /* 742 */
+    PARROT_OP_removeattribute_p_s,             /* 743 */
+    PARROT_OP_removeattribute_p_sc,            /* 744 */
+    PARROT_OP_getattribute_p_p_s,              /* 745 */
+    PARROT_OP_getattribute_p_p_sc,             /* 746 */
+    PARROT_OP_getattribute_p_p_p_s,            /* 747 */
+    PARROT_OP_getattribute_p_p_pc_s,           /* 748 */
+    PARROT_OP_getattribute_p_p_p_sc,           /* 749 */
+    PARROT_OP_getattribute_p_p_pc_sc,          /* 750 */
+    PARROT_OP_setattribute_p_s_p,              /* 751 */
+    PARROT_OP_setattribute_p_sc_p,             /* 752 */
+    PARROT_OP_setattribute_p_p_s_p,            /* 753 */
+    PARROT_OP_setattribute_p_pc_s_p,           /* 754 */
+    PARROT_OP_setattribute_p_p_sc_p,           /* 755 */
+    PARROT_OP_setattribute_p_pc_sc_p,          /* 756 */
+    PARROT_OP_inspect_p_p,                     /* 757 */
+    PARROT_OP_inspect_p_pc,                    /* 758 */
+    PARROT_OP_inspect_p_p_s,                   /* 759 */
+    PARROT_OP_inspect_p_pc_s,                  /* 760 */
+    PARROT_OP_inspect_p_p_sc,                  /* 761 */
+    PARROT_OP_inspect_p_pc_sc,                 /* 762 */
+    PARROT_OP_new_p_s,                         /* 763 */
+    PARROT_OP_new_p_sc,                        /* 764 */
+    PARROT_OP_new_p_s_p,                       /* 765 */
+    PARROT_OP_new_p_sc_p,                      /* 766 */
+    PARROT_OP_new_p_s_pc,                      /* 767 */
+    PARROT_OP_new_p_sc_pc,                     /* 768 */
+    PARROT_OP_new_p_p,                         /* 769 */
+    PARROT_OP_new_p_pc,                        /* 770 */
+    PARROT_OP_new_p_p_p,                       /* 771 */
+    PARROT_OP_new_p_pc_p,                      /* 772 */
+    PARROT_OP_new_p_p_pc,                      /* 773 */
+    PARROT_OP_new_p_pc_pc,                     /* 774 */
+    PARROT_OP_root_new_p_p,                    /* 775 */
+    PARROT_OP_root_new_p_pc,                   /* 776 */
+    PARROT_OP_root_new_p_p_p,                  /* 777 */
+    PARROT_OP_root_new_p_pc_p,                 /* 778 */
+    PARROT_OP_root_new_p_p_pc,                 /* 779 */
+    PARROT_OP_root_new_p_pc_pc,                /* 780 */
+    PARROT_OP_typeof_s_p,                      /* 781 */
+    PARROT_OP_typeof_p_p,                      /* 782 */
+    PARROT_OP_get_repr_s_p,                    /* 783 */
+    PARROT_OP_find_method_p_p_s,               /* 784 */
+    PARROT_OP_find_method_p_p_sc,              /* 785 */
+    PARROT_OP_defined_i_p,                     /* 786 */
+    PARROT_OP_defined_i_p_ki,                  /* 787 */
+    PARROT_OP_defined_i_p_kic,                 /* 788 */
+    PARROT_OP_defined_i_p_k,                   /* 789 */
+    PARROT_OP_defined_i_p_kc,                  /* 790 */
+    PARROT_OP_exists_i_p_ki,                   /* 791 */
+    PARROT_OP_exists_i_p_kic,                  /* 792 */
+    PARROT_OP_exists_i_p_k,                    /* 793 */
+    PARROT_OP_exists_i_p_kc,                   /* 794 */
+    PARROT_OP_delete_p_k,                      /* 795 */
+    PARROT_OP_delete_p_kc,                     /* 796 */
+    PARROT_OP_delete_p_ki,                     /* 797 */
+    PARROT_OP_delete_p_kic,                    /* 798 */
+    PARROT_OP_elements_i_p,                    /* 799 */
+    PARROT_OP_push_p_i,                        /* 800 */
+    PARROT_OP_push_p_ic,                       /* 801 */
+    PARROT_OP_push_p_n,                        /* 802 */
+    PARROT_OP_push_p_nc,                       /* 803 */
+    PARROT_OP_push_p_s,                        /* 804 */
+    PARROT_OP_push_p_sc,                       /* 805 */
+    PARROT_OP_push_p_p,                        /* 806 */
+    PARROT_OP_pop_i_p,                         /* 807 */
+    PARROT_OP_pop_n_p,                         /* 808 */
+    PARROT_OP_pop_s_p,                         /* 809 */
+    PARROT_OP_pop_p_p,                         /* 810 */
+    PARROT_OP_unshift_p_i,                     /* 811 */
+    PARROT_OP_unshift_p_ic,                    /* 812 */
+    PARROT_OP_unshift_p_n,                     /* 813 */
+    PARROT_OP_unshift_p_nc,                    /* 814 */
+    PARROT_OP_unshift_p_s,                     /* 815 */
+    PARROT_OP_unshift_p_sc,                    /* 816 */
+    PARROT_OP_unshift_p_p,                     /* 817 */
+    PARROT_OP_shift_i_p,                       /* 818 */
+    PARROT_OP_shift_n_p,                       /* 819 */
+    PARROT_OP_shift_s_p,                       /* 820 */
+    PARROT_OP_shift_p_p,                       /* 821 */
+    PARROT_OP_splice_p_p_i_i,                  /* 822 */
+    PARROT_OP_splice_p_p_ic_i,                 /* 823 */
+    PARROT_OP_splice_p_p_i_ic,                 /* 824 */
+    PARROT_OP_splice_p_p_ic_ic,                /* 825 */
+    PARROT_OP_setprop_p_s_p,                   /* 826 */
+    PARROT_OP_setprop_p_sc_p,                  /* 827 */
+    PARROT_OP_getprop_p_s_p,                   /* 828 */
+    PARROT_OP_getprop_p_sc_p,                  /* 829 */
+    PARROT_OP_delprop_p_s,                     /* 830 */
+    PARROT_OP_delprop_p_sc,                    /* 831 */
+    PARROT_OP_prophash_p_p,                    /* 832 */
+    PARROT_OP_freeze_s_p,                      /* 833 */
+    PARROT_OP_thaw_p_s,                        /* 834 */
+    PARROT_OP_thaw_p_sc,                       /* 835 */
+    PARROT_OP_add_multi_s_s_p,                 /* 836 */
+    PARROT_OP_add_multi_sc_s_p,                /* 837 */
+    PARROT_OP_add_multi_s_sc_p,                /* 838 */
+    PARROT_OP_add_multi_sc_sc_p,               /* 839 */
+    PARROT_OP_find_multi_p_s_s,                /* 840 */
+    PARROT_OP_find_multi_p_sc_s,               /* 841 */
+    PARROT_OP_find_multi_p_s_sc,               /* 842 */
+    PARROT_OP_find_multi_p_sc_sc,              /* 843 */
+    PARROT_OP_register_p,                      /* 844 */
+    PARROT_OP_unregister_p,                    /* 845 */
+    PARROT_OP_box_p_i,                         /* 846 */
+    PARROT_OP_box_p_ic,                        /* 847 */
+    PARROT_OP_box_p_n,                         /* 848 */
+    PARROT_OP_box_p_nc,                        /* 849 */
+    PARROT_OP_box_p_s,                         /* 850 */
+    PARROT_OP_box_p_sc,                        /* 851 */
+    PARROT_OP_iter_p_p,                        /* 852 */
+    PARROT_OP_morph_p_p,                       /* 853 */
+    PARROT_OP_morph_p_pc,                      /* 854 */
+    PARROT_OP_clone_s_s,                       /* 855 */
+    PARROT_OP_clone_s_sc,                      /* 856 */
+    PARROT_OP_set_i_i,                         /* 857 */
+    PARROT_OP_set_i_ic,                        /* 858 */
+    PARROT_OP_set_i_n,                         /* 859 */
+    PARROT_OP_set_i_nc,                        /* 860 */
+    PARROT_OP_set_i_s,                         /* 861 */
+    PARROT_OP_set_i_sc,                        /* 862 */
+    PARROT_OP_set_n_n,                         /* 863 */
+    PARROT_OP_set_n_nc,                        /* 864 */
+    PARROT_OP_set_n_i,                         /* 865 */
+    PARROT_OP_set_n_ic,                        /* 866 */
+    PARROT_OP_set_n_s,                         /* 867 */
+    PARROT_OP_set_n_sc,                        /* 868 */
+    PARROT_OP_set_n_p,                         /* 869 */
+    PARROT_OP_set_s_p,                         /* 870 */
+    PARROT_OP_set_s_s,                         /* 871 */
+    PARROT_OP_set_s_sc,                        /* 872 */
+    PARROT_OP_set_s_i,                         /* 873 */
+    PARROT_OP_set_s_ic,                        /* 874 */
+    PARROT_OP_set_s_n,                         /* 875 */
+    PARROT_OP_set_s_nc,                        /* 876 */
+    PARROT_OP_set_p_pc,                        /* 877 */
+    PARROT_OP_set_p_p,                         /* 878 */
+    PARROT_OP_set_p_i,                         /* 879 */
+    PARROT_OP_set_p_ic,                        /* 880 */
+    PARROT_OP_set_p_n,                         /* 881 */
+    PARROT_OP_set_p_nc,                        /* 882 */
+    PARROT_OP_set_p_s,                         /* 883 */
+    PARROT_OP_set_p_sc,                        /* 884 */
+    PARROT_OP_set_i_p,                         /* 885 */
+    PARROT_OP_assign_p_p,                      /* 886 */
+    PARROT_OP_assign_p_i,                      /* 887 */
+    PARROT_OP_assign_p_ic,                     /* 888 */
+    PARROT_OP_assign_p_n,                      /* 889 */
+    PARROT_OP_assign_p_nc,                     /* 890 */
+    PARROT_OP_assign_p_s,                      /* 891 */
+    PARROT_OP_assign_p_sc,                     /* 892 */
+    PARROT_OP_assign_s_s,                      /* 893 */
+    PARROT_OP_assign_s_sc,                     /* 894 */
+    PARROT_OP_setref_p_p,                      /* 895 */
+    PARROT_OP_deref_p_p,                       /* 896 */
+    PARROT_OP_set_p_ki_i,                      /* 897 */
+    PARROT_OP_set_p_kic_i,                     /* 898 */
+    PARROT_OP_set_p_ki_ic,                     /* 899 */
+    PARROT_OP_set_p_kic_ic,                    /* 900 */
+    PARROT_OP_set_p_ki_n,                      /* 901 */
+    PARROT_OP_set_p_kic_n,                     /* 902 */
+    PARROT_OP_set_p_ki_nc,                     /* 903 */
+    PARROT_OP_set_p_kic_nc,                    /* 904 */
+    PARROT_OP_set_p_ki_s,                      /* 905 */
+    PARROT_OP_set_p_kic_s,                     /* 906 */
+    PARROT_OP_set_p_ki_sc,                     /* 907 */
+    PARROT_OP_set_p_kic_sc,                    /* 908 */
+    PARROT_OP_set_p_ki_p,                      /* 909 */
+    PARROT_OP_set_p_kic_p,                     /* 910 */
+    PARROT_OP_set_i_p_ki,                      /* 911 */
+    PARROT_OP_set_i_p_kic,                     /* 912 */
+    PARROT_OP_set_n_p_ki,                      /* 913 */
+    PARROT_OP_set_n_p_kic,                     /* 914 */
+    PARROT_OP_set_s_p_ki,                      /* 915 */
+    PARROT_OP_set_s_p_kic,                     /* 916 */
+    PARROT_OP_set_p_p_ki,                      /* 917 */
+    PARROT_OP_set_p_p_kic,                     /* 918 */
+    PARROT_OP_set_p_k_i,                       /* 919 */
+    PARROT_OP_set_p_kc_i,                      /* 920 */
+    PARROT_OP_set_p_k_ic,                      /* 921 */
+    PARROT_OP_set_p_kc_ic,                     /* 922 */
+    PARROT_OP_set_p_k_n,                       /* 923 */
+    PARROT_OP_set_p_kc_n,                      /* 924 */
+    PARROT_OP_set_p_k_nc,                      /* 925 */
+    PARROT_OP_set_p_kc_nc,                     /* 926 */
+    PARROT_OP_set_p_k_s,                       /* 927 */
+    PARROT_OP_set_p_kc_s,                      /* 928 */
+    PARROT_OP_set_p_k_sc,                      /* 929 */
+    PARROT_OP_set_p_kc_sc,                     /* 930 */
+    PARROT_OP_set_p_k_p,                       /* 931 */
+    PARROT_OP_set_p_kc_p,                      /* 932 */
+    PARROT_OP_set_i_p_k,                       /* 933 */
+    PARROT_OP_set_i_p_kc,                      /* 934 */
+    PARROT_OP_set_n_p_k,                       /* 935 */
+    PARROT_OP_set_n_p_kc,                      /* 936 */
+    PARROT_OP_set_s_p_k,                       /* 937 */
+    PARROT_OP_set_s_p_kc,                      /* 938 */
+    PARROT_OP_set_p_p_k,                       /* 939 */
+    PARROT_OP_set_p_p_kc,                      /* 940 */
+    PARROT_OP_clone_p_p,                       /* 941 */
+    PARROT_OP_clone_p_p_p,                     /* 942 */
+    PARROT_OP_clone_p_p_pc,                    /* 943 */
+    PARROT_OP_copy_p_p,                        /* 944 */
+    PARROT_OP_null_s,                          /* 945 */
+    PARROT_OP_null_i,                          /* 946 */
+    PARROT_OP_null_p,                          /* 947 */
+    PARROT_OP_null_n,                          /* 948 */
+    PARROT_OP_ord_i_s,                         /* 949 */
+    PARROT_OP_ord_i_sc,                        /* 950 */
+    PARROT_OP_ord_i_s_i,                       /* 951 */
+    PARROT_OP_ord_i_sc_i,                      /* 952 */
+    PARROT_OP_ord_i_s_ic,                      /* 953 */
+    PARROT_OP_ord_i_sc_ic,                     /* 954 */
+    PARROT_OP_chr_s_i,                         /* 955 */
+    PARROT_OP_chr_s_ic,                        /* 956 */
+    PARROT_OP_chopn_s_s_i,                     /* 957 */
+    PARROT_OP_chopn_s_sc_i,                    /* 958 */
+    PARROT_OP_chopn_s_s_ic,                    /* 959 */
+    PARROT_OP_chopn_s_sc_ic,                   /* 960 */
+    PARROT_OP_concat_s_s,                      /* 961 */
+    PARROT_OP_concat_s_sc,                     /* 962 */
+    PARROT_OP_concat_p_p,                      /* 963 */
+    PARROT_OP_concat_p_s,                      /* 964 */
+    PARROT_OP_concat_p_sc,                     /* 965 */
+    PARROT_OP_concat_s_s_s,                    /* 966 */
+    PARROT_OP_concat_s_sc_s,                   /* 967 */
+    PARROT_OP_concat_s_s_sc,                   /* 968 */
+    PARROT_OP_concat_p_p_s,                    /* 969 */
+    PARROT_OP_concat_p_p_sc,                   /* 970 */
+    PARROT_OP_concat_p_p_p,                    /* 971 */
+    PARROT_OP_repeat_s_s_i,                    /* 972 */
+    PARROT_OP_repeat_s_sc_i,                   /* 973 */
+    PARROT_OP_repeat_s_s_ic,                   /* 974 */
+    PARROT_OP_repeat_s_sc_ic,                  /* 975 */
+    PARROT_OP_repeat_p_p_i,                    /* 976 */
+    PARROT_OP_repeat_p_p_ic,                   /* 977 */
+    PARROT_OP_repeat_p_p_p,                    /* 978 */
+    PARROT_OP_repeat_p_i,                      /* 979 */
+    PARROT_OP_repeat_p_ic,                     /* 980 */
+    PARROT_OP_repeat_p_p,                      /* 981 */
+    PARROT_OP_length_i_s,                      /* 982 */
+    PARROT_OP_length_i_sc,                     /* 983 */
+    PARROT_OP_bytelength_i_s,                  /* 984 */
+    PARROT_OP_bytelength_i_sc,                 /* 985 */
+    PARROT_OP_pin_s,                           /* 986 */
+    PARROT_OP_unpin_s,                         /* 987 */
+    PARROT_OP_substr_s_s_i,                    /* 988 */
+    PARROT_OP_substr_s_sc_i,                   /* 989 */
+    PARROT_OP_substr_s_s_ic,                   /* 990 */
+    PARROT_OP_substr_s_sc_ic,                  /* 991 */
+    PARROT_OP_substr_s_s_i_i,                  /* 992 */
+    PARROT_OP_substr_s_sc_i_i,                 /* 993 */
+    PARROT_OP_substr_s_s_ic_i,                 /* 994 */
+    PARROT_OP_substr_s_sc_ic_i,                /* 995 */
+    PARROT_OP_substr_s_s_i_ic,                 /* 996 */
+    PARROT_OP_substr_s_sc_i_ic,                /* 997 */
+    PARROT_OP_substr_s_s_ic_ic,                /* 998 */
+    PARROT_OP_substr_s_sc_ic_ic,               /* 999 */
+    PARROT_OP_substr_s_p_i_i,                  /* 1000 */
+    PARROT_OP_substr_s_p_ic_i,                 /* 1001 */
+    PARROT_OP_substr_s_p_i_ic,                 /* 1002 */
+    PARROT_OP_substr_s_p_ic_ic,                /* 1003 */
+    PARROT_OP_replace_s_s_i_i_s,               /* 1004 */
+    PARROT_OP_replace_s_sc_i_i_s,              /* 1005 */
+    PARROT_OP_replace_s_s_ic_i_s,              /* 1006 */
+    PARROT_OP_replace_s_sc_ic_i_s,             /* 1007 */
+    PARROT_OP_replace_s_s_i_ic_s,              /* 1008 */
+    PARROT_OP_replace_s_sc_i_ic_s,             /* 1009 */
+    PARROT_OP_replace_s_s_ic_ic_s,             /* 1010 */
+    PARROT_OP_replace_s_sc_ic_ic_s,            /* 1011 */
+    PARROT_OP_replace_s_s_i_i_sc,              /* 1012 */
+    PARROT_OP_replace_s_sc_i_i_sc,             /* 1013 */
+    PARROT_OP_replace_s_s_ic_i_sc,             /* 1014 */
+    PARROT_OP_replace_s_sc_ic_i_sc,            /* 1015 */
+    PARROT_OP_replace_s_s_i_ic_sc,             /* 1016 */
+    PARROT_OP_replace_s_sc_i_ic_sc,            /* 1017 */
+    PARROT_OP_replace_s_s_ic_ic_sc,            /* 1018 */
+    PARROT_OP_replace_s_sc_ic_ic_sc,           /* 1019 */
+    PARROT_OP_index_i_s_s,                     /* 1020 */
+    PARROT_OP_index_i_sc_s,                    /* 1021 */
+    PARROT_OP_index_i_s_sc,                    /* 1022 */
+    PARROT_OP_index_i_sc_sc,                   /* 1023 */
+    PARROT_OP_index_i_s_s_i,                   /* 1024 */
+    PARROT_OP_index_i_sc_s_i,                  /* 1025 */
+    PARROT_OP_index_i_s_sc_i,                  /* 1026 */
+    PARROT_OP_index_i_sc_sc_i,                 /* 1027 */
+    PARROT_OP_index_i_s_s_ic,                  /* 1028 */
+    PARROT_OP_index_i_sc_s_ic,                 /* 1029 */
+    PARROT_OP_index_i_s_sc_ic,                 /* 1030 */
+    PARROT_OP_index_i_sc_sc_ic,                /* 1031 */
+    PARROT_OP_sprintf_s_s_p,                   /* 1032 */
+    PARROT_OP_sprintf_s_sc_p,                  /* 1033 */
+    PARROT_OP_sprintf_p_p_p,                   /* 1034 */
+    PARROT_OP_new_s,                           /* 1035 */
+    PARROT_OP_new_s_i,                         /* 1036 */
+    PARROT_OP_new_s_ic,                        /* 1037 */
+    PARROT_OP_stringinfo_i_s_i,                /* 1038 */
+    PARROT_OP_stringinfo_i_sc_i,               /* 1039 */
+    PARROT_OP_stringinfo_i_s_ic,               /* 1040 */
+    PARROT_OP_stringinfo_i_sc_ic,              /* 1041 */
+    PARROT_OP_upcase_s_s,                      /* 1042 */
+    PARROT_OP_upcase_s_sc,                     /* 1043 */
+    PARROT_OP_downcase_s_s,                    /* 1044 */
+    PARROT_OP_downcase_s_sc,                   /* 1045 */
+    PARROT_OP_titlecase_s_s,                   /* 1046 */
+    PARROT_OP_titlecase_s_sc,                  /* 1047 */
+    PARROT_OP_join_s_s_p,                      /* 1048 */
+    PARROT_OP_join_s_sc_p,                     /* 1049 */
+    PARROT_OP_split_p_s_s,                     /* 1050 */
+    PARROT_OP_split_p_sc_s,                    /* 1051 */
+    PARROT_OP_split_p_s_sc,                    /* 1052 */
+    PARROT_OP_split_p_sc_sc,                   /* 1053 */
+    PARROT_OP_charset_i_s,                     /* 1054 */
+    PARROT_OP_charset_i_sc,                    /* 1055 */
+    PARROT_OP_charsetname_s_i,                 /* 1056 */
+    PARROT_OP_charsetname_s_ic,                /* 1057 */
+    PARROT_OP_find_charset_i_s,                /* 1058 */
+    PARROT_OP_find_charset_i_sc,               /* 1059 */
+    PARROT_OP_trans_charset_s_s_i,             /* 1060 */
+    PARROT_OP_trans_charset_s_sc_i,            /* 1061 */
+    PARROT_OP_trans_charset_s_s_ic,            /* 1062 */
+    PARROT_OP_trans_charset_s_sc_ic,           /* 1063 */
+    PARROT_OP_encoding_i_s,                    /* 1064 */
+    PARROT_OP_encoding_i_sc,                   /* 1065 */
+    PARROT_OP_encodingname_s_i,                /* 1066 */
+    PARROT_OP_encodingname_s_ic,               /* 1067 */
+    PARROT_OP_find_encoding_i_s,               /* 1068 */
+    PARROT_OP_find_encoding_i_sc,              /* 1069 */
+    PARROT_OP_trans_encoding_s_s_i,            /* 1070 */
+    PARROT_OP_trans_encoding_s_sc_i,           /* 1071 */
+    PARROT_OP_trans_encoding_s_s_ic,           /* 1072 */
+    PARROT_OP_trans_encoding_s_sc_ic,          /* 1073 */
+    PARROT_OP_is_cclass_i_i_s_i,               /* 1074 */
+    PARROT_OP_is_cclass_i_ic_s_i,              /* 1075 */
+    PARROT_OP_is_cclass_i_i_sc_i,              /* 1076 */
+    PARROT_OP_is_cclass_i_ic_sc_i,             /* 1077 */
+    PARROT_OP_is_cclass_i_i_s_ic,              /* 1078 */
+    PARROT_OP_is_cclass_i_ic_s_ic,             /* 1079 */
+    PARROT_OP_is_cclass_i_i_sc_ic,             /* 1080 */
+    PARROT_OP_is_cclass_i_ic_sc_ic,            /* 1081 */
+    PARROT_OP_find_cclass_i_i_s_i_i,           /* 1082 */
+    PARROT_OP_find_cclass_i_ic_s_i_i,          /* 1083 */
+    PARROT_OP_find_cclass_i_i_sc_i_i,          /* 1084 */
+    PARROT_OP_find_cclass_i_ic_sc_i_i,         /* 1085 */
+    PARROT_OP_find_cclass_i_i_s_ic_i,          /* 1086 */
+    PARROT_OP_find_cclass_i_ic_s_ic_i,         /* 1087 */
+    PARROT_OP_find_cclass_i_i_sc_ic_i,         /* 1088 */
+    PARROT_OP_find_cclass_i_ic_sc_ic_i,        /* 1089 */
+    PARROT_OP_find_cclass_i_i_s_i_ic,          /* 1090 */
+    PARROT_OP_find_cclass_i_ic_s_i_ic,         /* 1091 */
+    PARROT_OP_find_cclass_i_i_sc_i_ic,         /* 1092 */
+    PARROT_OP_find_cclass_i_ic_sc_i_ic,        /* 1093 */
+    PARROT_OP_find_cclass_i_i_s_ic_ic,         /* 1094 */
+    PARROT_OP_find_cclass_i_ic_s_ic_ic,        /* 1095 */
+    PARROT_OP_find_cclass_i_i_sc_ic_ic,        /* 1096 */
+    PARROT_OP_find_cclass_i_ic_sc_ic_ic,       /* 1097 */
+    PARROT_OP_find_not_cclass_i_i_s_i_i,       /* 1098 */
+    PARROT_OP_find_not_cclass_i_ic_s_i_i,      /* 1099 */
+    PARROT_OP_find_not_cclass_i_i_sc_i_i,      /* 1100 */
+    PARROT_OP_find_not_cclass_i_ic_sc_i_i,     /* 1101 */
+    PARROT_OP_find_not_cclass_i_i_s_ic_i,      /* 1102 */
+    PARROT_OP_find_not_cclass_i_ic_s_ic_i,     /* 1103 */
+    PARROT_OP_find_not_cclass_i_i_sc_ic_i,     /* 1104 */
+    PARROT_OP_find_not_cclass_i_ic_sc_ic_i,    /* 1105 */
+    PARROT_OP_find_not_cclass_i_i_s_i_ic,      /* 1106 */
+    PARROT_OP_find_not_cclass_i_ic_s_i_ic,     /* 1107 */
+    PARROT_OP_find_not_cclass_i_i_sc_i_ic,     /* 1108 */
+    PARROT_OP_find_not_cclass_i_ic_sc_i_ic,    /* 1109 */
+    PARROT_OP_find_not_cclass_i_i_s_ic_ic,     /* 1110 */
+    PARROT_OP_find_not_cclass_i_ic_s_ic_ic,    /* 1111 */
+    PARROT_OP_find_not_cclass_i_i_sc_ic_ic,    /* 1112 */
+    PARROT_OP_find_not_cclass_i_ic_sc_ic_ic,   /* 1113 */
+    PARROT_OP_escape_s_s,                      /* 1114 */
+    PARROT_OP_compose_s_s,                     /* 1115 */
+    PARROT_OP_compose_s_sc,                    /* 1116 */
+    PARROT_OP_spawnw_i_s,                      /* 1117 */
+    PARROT_OP_spawnw_i_sc,                     /* 1118 */
+    PARROT_OP_spawnw_i_p,                      /* 1119 */
+    PARROT_OP_err_i,                           /* 1120 */
+    PARROT_OP_err_s,                           /* 1121 */
+    PARROT_OP_err_s_i,                         /* 1122 */
+    PARROT_OP_err_s_ic,                        /* 1123 */
+    PARROT_OP_time_i,                          /* 1124 */
+    PARROT_OP_time_n,                          /* 1125 */
+    PARROT_OP_gmtime_s_i,                      /* 1126 */
+    PARROT_OP_gmtime_s_ic,                     /* 1127 */
+    PARROT_OP_localtime_s_i,                   /* 1128 */
+    PARROT_OP_localtime_s_ic,                  /* 1129 */
+    PARROT_OP_decodetime_p_i,                  /* 1130 */
+    PARROT_OP_decodetime_p_ic,                 /* 1131 */
+    PARROT_OP_decodelocaltime_p_i,             /* 1132 */
+    PARROT_OP_decodelocaltime_p_ic,            /* 1133 */
+    PARROT_OP_sysinfo_s_i,                     /* 1134 */
+    PARROT_OP_sysinfo_s_ic,                    /* 1135 */
+    PARROT_OP_sysinfo_i_i,                     /* 1136 */
+    PARROT_OP_sysinfo_i_ic,                    /* 1137 */
+    PARROT_OP_sleep_i,                         /* 1138 */
+    PARROT_OP_sleep_ic,                        /* 1139 */
+    PARROT_OP_sleep_n,                         /* 1140 */
+    PARROT_OP_sleep_nc,                        /* 1141 */
+    PARROT_OP_store_lex_s_p,                   /* 1142 */
+    PARROT_OP_store_lex_sc_p,                  /* 1143 */
+    PARROT_OP_store_dynamic_lex_s_p,           /* 1144 */
+    PARROT_OP_store_dynamic_lex_sc_p,          /* 1145 */
+    PARROT_OP_find_lex_p_s,                    /* 1146 */
+    PARROT_OP_find_lex_p_sc,                   /* 1147 */
+    PARROT_OP_find_dynamic_lex_p_s,            /* 1148 */
+    PARROT_OP_find_dynamic_lex_p_sc,           /* 1149 */
+    PARROT_OP_find_caller_lex_p_s,             /* 1150 */
+    PARROT_OP_find_caller_lex_p_sc,            /* 1151 */
+    PARROT_OP_get_namespace_p,                 /* 1152 */
+    PARROT_OP_get_namespace_p_p,               /* 1153 */
+    PARROT_OP_get_namespace_p_pc,              /* 1154 */
+    PARROT_OP_get_hll_namespace_p,             /* 1155 */
+    PARROT_OP_get_hll_namespace_p_p,           /* 1156 */
+    PARROT_OP_get_hll_namespace_p_pc,          /* 1157 */
+    PARROT_OP_get_root_namespace_p,            /* 1158 */
+    PARROT_OP_get_root_namespace_p_p,          /* 1159 */
+    PARROT_OP_get_root_namespace_p_pc,         /* 1160 */
+    PARROT_OP_get_global_p_s,                  /* 1161 */
+    PARROT_OP_get_global_p_sc,                 /* 1162 */
+    PARROT_OP_get_global_p_p_s,                /* 1163 */
+    PARROT_OP_get_global_p_pc_s,               /* 1164 */
+    PARROT_OP_get_global_p_p_sc,               /* 1165 */
+    PARROT_OP_get_global_p_pc_sc,              /* 1166 */
+    PARROT_OP_get_hll_global_p_s,              /* 1167 */
+    PARROT_OP_get_hll_global_p_sc,             /* 1168 */
+    PARROT_OP_get_hll_global_p_p_s,            /* 1169 */
+    PARROT_OP_get_hll_global_p_pc_s,           /* 1170 */
+    PARROT_OP_get_hll_global_p_p_sc,           /* 1171 */
+    PARROT_OP_get_hll_global_p_pc_sc,          /* 1172 */
+    PARROT_OP_get_root_global_p_s,             /* 1173 */
+    PARROT_OP_get_root_global_p_sc,            /* 1174 */
+    PARROT_OP_get_root_global_p_p_s,           /* 1175 */
+    PARROT_OP_get_root_global_p_pc_s,          /* 1176 */
+    PARROT_OP_get_root_global_p_p_sc,          /* 1177 */
+    PARROT_OP_get_root_global_p_pc_sc,         /* 1178 */
+    PARROT_OP_set_global_s_p,                  /* 1179 */
+    PARROT_OP_set_global_sc_p,                 /* 1180 */
+    PARROT_OP_set_global_p_s_p,                /* 1181 */
+    PARROT_OP_set_global_pc_s_p,               /* 1182 */
+    PARROT_OP_set_global_p_sc_p,               /* 1183 */
+    PARROT_OP_set_global_pc_sc_p,              /* 1184 */
+    PARROT_OP_set_hll_global_s_p,              /* 1185 */
+    PARROT_OP_set_hll_global_sc_p,             /* 1186 */
+    PARROT_OP_set_hll_global_p_s_p,            /* 1187 */
+    PARROT_OP_set_hll_global_pc_s_p,           /* 1188 */
+    PARROT_OP_set_hll_global_p_sc_p,           /* 1189 */
+    PARROT_OP_set_hll_global_pc_sc_p,          /* 1190 */
+    PARROT_OP_set_root_global_s_p,             /* 1191 */
+    PARROT_OP_set_root_global_sc_p,            /* 1192 */
+    PARROT_OP_set_root_global_p_s_p,           /* 1193 */
+    PARROT_OP_set_root_global_pc_s_p,          /* 1194 */
+    PARROT_OP_set_root_global_p_sc_p,          /* 1195 */
+    PARROT_OP_set_root_global_pc_sc_p,         /* 1196 */
+    PARROT_OP_find_name_p_s,                   /* 1197 */
+    PARROT_OP_find_name_p_sc,                  /* 1198 */
+    PARROT_OP_find_sub_not_null_p_s,           /* 1199 */
+    PARROT_OP_find_sub_not_null_p_sc,          /* 1200 */
+    PARROT_OP_trap,                            /* 1201 */
+    PARROT_OP_set_label_p_ic,                  /* 1202 */
+    PARROT_OP_get_label_i_p,                   /* 1203 */
+    PARROT_OP_fetch_p_p_p_p,                   /* 1204 */
+    PARROT_OP_fetch_p_pc_p_p,                  /* 1205 */
+    PARROT_OP_fetch_p_p_pc_p,                  /* 1206 */
+    PARROT_OP_fetch_p_pc_pc_p,                 /* 1207 */
+    PARROT_OP_fetch_p_p_p_pc,                  /* 1208 */
+    PARROT_OP_fetch_p_pc_p_pc,                 /* 1209 */
+    PARROT_OP_fetch_p_p_pc_pc,                 /* 1210 */
+    PARROT_OP_fetch_p_pc_pc_pc,                /* 1211 */
+    PARROT_OP_fetch_p_p_i_p,                   /* 1212 */
+    PARROT_OP_fetch_p_pc_i_p,                  /* 1213 */
+    PARROT_OP_fetch_p_p_ic_p,                  /* 1214 */
+    PARROT_OP_fetch_p_pc_ic_p,                 /* 1215 */
+    PARROT_OP_fetch_p_p_i_pc,                  /* 1216 */
+    PARROT_OP_fetch_p_pc_i_pc,                 /* 1217 */
+    PARROT_OP_fetch_p_p_ic_pc,                 /* 1218 */
+    PARROT_OP_fetch_p_pc_ic_pc,                /* 1219 */
+    PARROT_OP_fetch_p_p_s_p,                   /* 1220 */
+    PARROT_OP_fetch_p_pc_s_p,                  /* 1221 */
+    PARROT_OP_fetch_p_p_sc_p,                  /* 1222 */
+    PARROT_OP_fetch_p_pc_sc_p,                 /* 1223 */
+    PARROT_OP_fetch_p_p_s_pc,                  /* 1224 */
+    PARROT_OP_fetch_p_pc_s_pc,                 /* 1225 */
+    PARROT_OP_fetch_p_p_sc_pc,                 /* 1226 */
+    PARROT_OP_fetch_p_pc_sc_pc,                /* 1227 */
+    PARROT_OP_vivify_p_p_p_p,                  /* 1228 */
+    PARROT_OP_vivify_p_pc_p_p,                 /* 1229 */
+    PARROT_OP_vivify_p_p_pc_p,                 /* 1230 */
+    PARROT_OP_vivify_p_pc_pc_p,                /* 1231 */
+    PARROT_OP_vivify_p_p_p_pc,                 /* 1232 */
+    PARROT_OP_vivify_p_pc_p_pc,                /* 1233 */
+    PARROT_OP_vivify_p_p_pc_pc,                /* 1234 */
+    PARROT_OP_vivify_p_pc_pc_pc,               /* 1235 */
+    PARROT_OP_vivify_p_p_i_p,                  /* 1236 */
+    PARROT_OP_vivify_p_pc_i_p,                 /* 1237 */
+    PARROT_OP_vivify_p_p_ic_p,                 /* 1238 */
+    PARROT_OP_vivify_p_pc_ic_p,                /* 1239 */
+    PARROT_OP_vivify_p_p_i_pc,                 /* 1240 */
+    PARROT_OP_vivify_p_pc_i_pc,                /* 1241 */
+    PARROT_OP_vivify_p_p_ic_pc,                /* 1242 */
+    PARROT_OP_vivify_p_pc_ic_pc,               /* 1243 */
+    PARROT_OP_vivify_p_p_s_p,                  /* 1244 */
+    PARROT_OP_vivify_p_pc_s_p,                 /* 1245 */
+    PARROT_OP_vivify_p_p_sc_p,                 /* 1246 */
+    PARROT_OP_vivify_p_pc_sc_p,                /* 1247 */
+    PARROT_OP_vivify_p_p_s_pc,                 /* 1248 */
+    PARROT_OP_vivify_p_pc_s_pc,                /* 1249 */
+    PARROT_OP_vivify_p_p_sc_pc,                /* 1250 */
+    PARROT_OP_vivify_p_pc_sc_pc,               /* 1251 */
+    PARROT_OP_new_p_s_i,                       /* 1252 */
+    PARROT_OP_new_p_sc_i,                      /* 1253 */
+    PARROT_OP_new_p_s_ic,                      /* 1254 */
+    PARROT_OP_new_p_sc_ic,                     /* 1255 */
+    PARROT_OP_new_p_p_i,                       /* 1256 */
+    PARROT_OP_new_p_pc_i,                      /* 1257 */
+    PARROT_OP_new_p_p_ic,                      /* 1258 */
+    PARROT_OP_new_p_pc_ic,                     /* 1259 */
+    PARROT_OP_root_new_p_p_i,                  /* 1260 */
+    PARROT_OP_root_new_p_pc_i,                 /* 1261 */
+    PARROT_OP_root_new_p_p_ic,                 /* 1262 */
+    PARROT_OP_root_new_p_pc_ic,                /* 1263 */
+    PARROT_OP_find_codepoint_i_s,              /* 1264 */
+    PARROT_OP_find_codepoint_i_sc,             /* 1265 */
+    PARROT_OP_unroll_p,                        /* 1266 */
+    PARROT_OP_unroll_pc                        /* 1267 */
+
+} parrot_opcode_enums;
+
+
+#endif /* PARROT_OPLIB_OPS_H_GUARD */
+
+
+/*
+ * Local variables:
+ *   c-file-style: "parrot"
+ *   buffer-read-only: t
+ * End:
+ * vim: expandtab shiftwidth=4:
+ */

Copied: branches/ucs4_encoding/include/parrot/opsenum.h (from r46972, trunk/include/parrot/opsenum.h)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/ucs4_encoding/include/parrot/opsenum.h	Mon May 24 21:18:41 2010	(r46974, copy of r46972, trunk/include/parrot/opsenum.h)
@@ -0,0 +1,1226 @@
+
+/* $Id$ */
+
+#ifndef PARROT_OPSENUM_H_GUARD
+#define PARROT_OPSENUM_H_GUARD
+
+
+/* ex: set ro:
+ * !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
+ *
+ * This file is generated automatically from 'src/ops/core.ops' (and possibly other
+ * .ops files). by ops2c.nqp.
+ *
+ * Any changes made here will be lost!
+ *
+ */
+enum OPS_ENUM {
+    enum_ops_load_bytecode_s               =    5,
+    enum_ops_load_bytecode_sc              =    6,
+    enum_ops_load_language_s               =    7,
+    enum_ops_load_language_sc              =    8,
+    enum_ops_branch_i                      =    9,
+    enum_ops_branch_ic                     =   10,
+    enum_ops_local_branch_p_i              =   11,
+    enum_ops_local_branch_p_ic             =   12,
+    enum_ops_local_return_p                =   13,
+    enum_ops_jump_i                        =   14,
+    enum_ops_jump_ic                       =   15,
+    enum_ops_enternative                   =   16,
+    enum_ops_if_i_ic                       =   17,
+    enum_ops_if_n_ic                       =   18,
+    enum_ops_if_s_ic                       =   19,
+    enum_ops_if_p_ic                       =   20,
+    enum_ops_unless_i_ic                   =   21,
+    enum_ops_unless_n_ic                   =   22,
+    enum_ops_unless_s_ic                   =   23,
+    enum_ops_unless_p_ic                   =   24,
+    enum_ops_invokecc_p                    =   25,
+    enum_ops_invoke_p_p                    =   26,
+    enum_ops_yield                         =   27,
+    enum_ops_tailcall_p                    =   28,
+    enum_ops_returncc                      =   29,
+    enum_ops_capture_lex_p                 =   30,
+    enum_ops_newclosure_p_p                =   31,
+    enum_ops_set_args_pc                   =   32,
+    enum_ops_get_params_pc                 =   33,
+    enum_ops_set_returns_pc                =   34,
+    enum_ops_get_results_pc                =   35,
+    enum_ops_set_result_info_p             =   36,
+    enum_ops_set_result_info_pc            =   37,
+    enum_ops_result_info_p                 =   38,
+    enum_ops_set_addr_i_ic                 =   39,
+    enum_ops_set_addr_p_ic                 =   40,
+    enum_ops_set_addr_p_i                  =   41,
+    enum_ops_get_addr_i_p                  =   42,
+    enum_ops_schedule_p                    =   43,
+    enum_ops_addhandler_p                  =   44,
+    enum_ops_push_eh_ic                    =   45,
+    enum_ops_push_eh_p                     =   46,
+    enum_ops_pop_eh                        =   47,
+    enum_ops_throw_p                       =   48,
+    enum_ops_throw_p_p                     =   49,
+    enum_ops_rethrow_p                     =   50,
+    enum_ops_count_eh_i                    =   51,
+    enum_ops_die_s                         =   52,
+    enum_ops_die_sc                        =   53,
+    enum_ops_die_p                         =   54,
+    enum_ops_die_pc                        =   55,
+    enum_ops_die_i_i                       =   56,
+    enum_ops_die_ic_i                      =   57,
+    enum_ops_die_i_ic                      =   58,
+    enum_ops_die_ic_ic                     =   59,
+    enum_ops_exit_i                        =   60,
+    enum_ops_exit_ic                       =   61,
+    enum_ops_debug_i                       =   62,
+    enum_ops_debug_ic                      =   63,
+    enum_ops_bounds_i                      =   64,
+    enum_ops_bounds_ic                     =   65,
+    enum_ops_profile_i                     =   66,
+    enum_ops_profile_ic                    =   67,
+    enum_ops_trace_i                       =   68,
+    enum_ops_trace_ic                      =   69,
+    enum_ops_gc_debug_i                    =   70,
+    enum_ops_gc_debug_ic                   =   71,
+    enum_ops_interpinfo_i_i                =   72,
+    enum_ops_interpinfo_i_ic               =   73,
+    enum_ops_interpinfo_p_i                =   74,
+    enum_ops_interpinfo_p_ic               =   75,
+    enum_ops_interpinfo_s_i                =   76,
+    enum_ops_interpinfo_s_ic               =   77,
+    enum_ops_warningson_i                  =   78,
+    enum_ops_warningson_ic                 =   79,
+    enum_ops_warningsoff_i                 =   80,
+    enum_ops_warningsoff_ic                =   81,
+    enum_ops_errorson_i                    =   82,
+    enum_ops_errorson_ic                   =   83,
+    enum_ops_errorsoff_i                   =   84,
+    enum_ops_errorsoff_ic                  =   85,
+    enum_ops_runinterp_p_i                 =   86,
+    enum_ops_runinterp_p_ic                =   87,
+    enum_ops_getinterp_p                   =   88,
+    enum_ops_sweep_ic                      =   89,
+    enum_ops_collect                       =   90,
+    enum_ops_sweepoff                      =   91,
+    enum_ops_sweepon                       =   92,
+    enum_ops_collectoff                    =   93,
+    enum_ops_collecton                     =   94,
+    enum_ops_needs_destroy_p               =   95,
+    enum_ops_loadlib_p_s                   =   96,
+    enum_ops_loadlib_p_sc                  =   97,
+    enum_ops_loadlib_p_s_p                 =   98,
+    enum_ops_loadlib_p_sc_p                =   99,
+    enum_ops_loadlib_p_s_pc                =  100,
+    enum_ops_loadlib_p_sc_pc               =  101,
+    enum_ops_dlfunc_p_p_s_s                =  102,
+    enum_ops_dlfunc_p_p_sc_s               =  103,
+    enum_ops_dlfunc_p_p_s_sc               =  104,
+    enum_ops_dlfunc_p_p_sc_sc              =  105,
+    enum_ops_dlvar_p_p_s                   =  106,
+    enum_ops_dlvar_p_p_sc                  =  107,
+    enum_ops_compreg_s_p                   =  108,
+    enum_ops_compreg_sc_p                  =  109,
+    enum_ops_compreg_p_s                   =  110,
+    enum_ops_compreg_p_sc                  =  111,
+    enum_ops_new_callback_p_p_p_s          =  112,
+    enum_ops_new_callback_p_p_p_sc         =  113,
+    enum_ops_annotations_p                 =  114,
+    enum_ops_annotations_p_s               =  115,
+    enum_ops_annotations_p_sc              =  116,
+    enum_ops_band_i_i                      =  117,
+    enum_ops_band_i_ic                     =  118,
+    enum_ops_band_p_i                      =  119,
+    enum_ops_band_p_ic                     =  120,
+    enum_ops_band_p_p                      =  121,
+    enum_ops_band_i_i_i                    =  122,
+    enum_ops_band_i_ic_i                   =  123,
+    enum_ops_band_i_i_ic                   =  124,
+    enum_ops_band_p_p_i                    =  125,
+    enum_ops_band_p_p_ic                   =  126,
+    enum_ops_band_p_p_p                    =  127,
+    enum_ops_bands_p_s                     =  128,
+    enum_ops_bands_p_sc                    =  129,
+    enum_ops_bands_p_p                     =  130,
+    enum_ops_bands_s_s_s                   =  131,
+    enum_ops_bands_s_sc_s                  =  132,
+    enum_ops_bands_s_s_sc                  =  133,
+    enum_ops_bands_p_p_s                   =  134,
+    enum_ops_bands_p_p_sc                  =  135,
+    enum_ops_bands_p_p_p                   =  136,
+    enum_ops_bnot_i                        =  137,
+    enum_ops_bnot_i_i                      =  138,
+    enum_ops_bnot_p                        =  139,
+    enum_ops_bnot_p_p                      =  140,
+    enum_ops_bnots_s_s                     =  141,
+    enum_ops_bnots_s_sc                    =  142,
+    enum_ops_bnots_p                       =  143,
+    enum_ops_bnots_p_p                     =  144,
+    enum_ops_bor_i_i                       =  145,
+    enum_ops_bor_i_ic                      =  146,
+    enum_ops_bor_p_i                       =  147,
+    enum_ops_bor_p_ic                      =  148,
+    enum_ops_bor_p_p                       =  149,
+    enum_ops_bor_i_i_i                     =  150,
+    enum_ops_bor_i_ic_i                    =  151,
+    enum_ops_bor_i_i_ic                    =  152,
+    enum_ops_bor_p_p_i                     =  153,
+    enum_ops_bor_p_p_ic                    =  154,
+    enum_ops_bor_p_p_p                     =  155,
+    enum_ops_bors_p_s                      =  156,
+    enum_ops_bors_p_sc                     =  157,
+    enum_ops_bors_p_p                      =  158,
+    enum_ops_bors_s_s_s                    =  159,
+    enum_ops_bors_s_sc_s                   =  160,
+    enum_ops_bors_s_s_sc                   =  161,
+    enum_ops_bors_p_p_s                    =  162,
+    enum_ops_bors_p_p_sc                   =  163,
+    enum_ops_bors_p_p_p                    =  164,
+    enum_ops_shl_i_i                       =  165,
+    enum_ops_shl_i_ic                      =  166,
+    enum_ops_shl_p_i                       =  167,
+    enum_ops_shl_p_ic                      =  168,
+    enum_ops_shl_p_p                       =  169,
+    enum_ops_shl_i_i_i                     =  170,
+    enum_ops_shl_i_ic_i                    =  171,
+    enum_ops_shl_i_i_ic                    =  172,
+    enum_ops_shl_p_p_i                     =  173,
+    enum_ops_shl_p_p_ic                    =  174,
+    enum_ops_shl_p_p_p                     =  175,
+    enum_ops_shr_i_i                       =  176,
+    enum_ops_shr_i_ic                      =  177,
+    enum_ops_shr_p_i                       =  178,
+    enum_ops_shr_p_ic                      =  179,
+    enum_ops_shr_p_p                       =  180,
+    enum_ops_shr_i_i_i                     =  181,
+    enum_ops_shr_i_ic_i                    =  182,
+    enum_ops_shr_i_i_ic                    =  183,
+    enum_ops_shr_p_p_i                     =  184,
+    enum_ops_shr_p_p_ic                    =  185,
+    enum_ops_shr_p_p_p                     =  186,
+    enum_ops_lsr_i_i                       =  187,
+    enum_ops_lsr_i_ic                      =  188,
+    enum_ops_lsr_p_i                       =  189,
+    enum_ops_lsr_p_ic                      =  190,
+    enum_ops_lsr_p_p                       =  191,
+    enum_ops_lsr_i_i_i                     =  192,
+    enum_ops_lsr_i_ic_i                    =  193,
+    enum_ops_lsr_i_i_ic                    =  194,
+    enum_ops_lsr_p_p_i                     =  195,
+    enum_ops_lsr_p_p_ic                    =  196,
+    enum_ops_lsr_p_p_p                     =  197,
+    enum_ops_rot_i_i_i_ic                  =  198,
+    enum_ops_rot_i_ic_i_ic                 =  199,
+    enum_ops_rot_i_i_ic_ic                 =  200,
+    enum_ops_bxor_i_i                      =  201,
+    enum_ops_bxor_i_ic                     =  202,
+    enum_ops_bxor_p_i                      =  203,
+    enum_ops_bxor_p_ic                     =  204,
+    enum_ops_bxor_p_p                      =  205,
+    enum_ops_bxor_i_i_i                    =  206,
+    enum_ops_bxor_i_ic_i                   =  207,
+    enum_ops_bxor_i_i_ic                   =  208,
+    enum_ops_bxor_p_p_i                    =  209,
+    enum_ops_bxor_p_p_ic                   =  210,
+    enum_ops_bxor_p_p_p                    =  211,
+    enum_ops_bxors_p_s                     =  212,
+    enum_ops_bxors_p_sc                    =  213,
+    enum_ops_bxors_p_p                     =  214,
+    enum_ops_bxors_s_s_s                   =  215,
+    enum_ops_bxors_s_sc_s                  =  216,
+    enum_ops_bxors_s_s_sc                  =  217,
+    enum_ops_bxors_p_p_s                   =  218,
+    enum_ops_bxors_p_p_sc                  =  219,
+    enum_ops_bxors_p_p_p                   =  220,
+    enum_ops_eq_i_i_ic                     =  221,
+    enum_ops_eq_ic_i_ic                    =  222,
+    enum_ops_eq_i_ic_ic                    =  223,
+    enum_ops_eq_n_n_ic                     =  224,
+    enum_ops_eq_nc_n_ic                    =  225,
+    enum_ops_eq_n_nc_ic                    =  226,
+    enum_ops_eq_s_s_ic                     =  227,
+    enum_ops_eq_sc_s_ic                    =  228,
+    enum_ops_eq_s_sc_ic                    =  229,
+    enum_ops_eq_p_p_ic                     =  230,
+    enum_ops_eq_p_i_ic                     =  231,
+    enum_ops_eq_p_ic_ic                    =  232,
+    enum_ops_eq_p_n_ic                     =  233,
+    enum_ops_eq_p_nc_ic                    =  234,
+    enum_ops_eq_p_s_ic                     =  235,
+    enum_ops_eq_p_sc_ic                    =  236,
+    enum_ops_eq_str_p_p_ic                 =  237,
+    enum_ops_eq_num_p_p_ic                 =  238,
+    enum_ops_eq_addr_s_s_ic                =  239,
+    enum_ops_eq_addr_sc_s_ic               =  240,
+    enum_ops_eq_addr_s_sc_ic               =  241,
+    enum_ops_eq_addr_sc_sc_ic              =  242,
+    enum_ops_eq_addr_p_p_ic                =  243,
+    enum_ops_ne_i_i_ic                     =  244,
+    enum_ops_ne_ic_i_ic                    =  245,
+    enum_ops_ne_i_ic_ic                    =  246,
+    enum_ops_ne_n_n_ic                     =  247,
+    enum_ops_ne_nc_n_ic                    =  248,
+    enum_ops_ne_n_nc_ic                    =  249,
+    enum_ops_ne_s_s_ic                     =  250,
+    enum_ops_ne_sc_s_ic                    =  251,
+    enum_ops_ne_s_sc_ic                    =  252,
+    enum_ops_ne_p_p_ic                     =  253,
+    enum_ops_ne_p_i_ic                     =  254,
+    enum_ops_ne_p_ic_ic                    =  255,
+    enum_ops_ne_p_n_ic                     =  256,
+    enum_ops_ne_p_nc_ic                    =  257,
+    enum_ops_ne_p_s_ic                     =  258,
+    enum_ops_ne_p_sc_ic                    =  259,
+    enum_ops_ne_str_p_p_ic                 =  260,
+    enum_ops_ne_num_p_p_ic                 =  261,
+    enum_ops_ne_addr_s_s_ic                =  262,
+    enum_ops_ne_addr_sc_s_ic               =  263,
+    enum_ops_ne_addr_s_sc_ic               =  264,
+    enum_ops_ne_addr_sc_sc_ic              =  265,
+    enum_ops_ne_addr_p_p_ic                =  266,
+    enum_ops_lt_i_i_ic                     =  267,
+    enum_ops_lt_ic_i_ic                    =  268,
+    enum_ops_lt_i_ic_ic                    =  269,
+    enum_ops_lt_n_n_ic                     =  270,
+    enum_ops_lt_nc_n_ic                    =  271,
+    enum_ops_lt_n_nc_ic                    =  272,
+    enum_ops_lt_s_s_ic                     =  273,
+    enum_ops_lt_sc_s_ic                    =  274,
+    enum_ops_lt_s_sc_ic                    =  275,
+    enum_ops_lt_p_p_ic                     =  276,
+    enum_ops_lt_p_i_ic                     =  277,
+    enum_ops_lt_p_ic_ic                    =  278,
+    enum_ops_lt_p_n_ic                     =  279,
+    enum_ops_lt_p_nc_ic                    =  280,
+    enum_ops_lt_p_s_ic                     =  281,
+    enum_ops_lt_p_sc_ic                    =  282,
+    enum_ops_lt_str_p_p_ic                 =  283,
+    enum_ops_lt_num_p_p_ic                 =  284,
+    enum_ops_le_i_i_ic                     =  285,
+    enum_ops_le_ic_i_ic                    =  286,
+    enum_ops_le_i_ic_ic                    =  287,
+    enum_ops_le_n_n_ic                     =  288,
+    enum_ops_le_nc_n_ic                    =  289,
+    enum_ops_le_n_nc_ic                    =  290,
+    enum_ops_le_s_s_ic                     =  291,
+    enum_ops_le_sc_s_ic                    =  292,
+    enum_ops_le_s_sc_ic                    =  293,
+    enum_ops_le_p_p_ic                     =  294,
+    enum_ops_le_p_i_ic                     =  295,
+    enum_ops_le_p_ic_ic                    =  296,
+    enum_ops_le_p_n_ic                     =  297,
+    enum_ops_le_p_nc_ic                    =  298,
+    enum_ops_le_p_s_ic                     =  299,
+    enum_ops_le_p_sc_ic                    =  300,
+    enum_ops_le_str_p_p_ic                 =  301,
+    enum_ops_le_num_p_p_ic                 =  302,
+    enum_ops_gt_p_p_ic                     =  303,
+    enum_ops_gt_p_i_ic                     =  304,
+    enum_ops_gt_p_ic_ic                    =  305,
+    enum_ops_gt_p_n_ic                     =  306,
+    enum_ops_gt_p_nc_ic                    =  307,
+    enum_ops_gt_p_s_ic                     =  308,
+    enum_ops_gt_p_sc_ic                    =  309,
+    enum_ops_gt_str_p_p_ic                 =  310,
+    enum_ops_gt_num_p_p_ic                 =  311,
+    enum_ops_ge_p_p_ic                     =  312,
+    enum_ops_ge_p_i_ic                     =  313,
+    enum_ops_ge_p_ic_ic                    =  314,
+    enum_ops_ge_p_n_ic                     =  315,
+    enum_ops_ge_p_nc_ic                    =  316,
+    enum_ops_ge_p_s_ic                     =  317,
+    enum_ops_ge_p_sc_ic                    =  318,
+    enum_ops_ge_str_p_p_ic                 =  319,
+    enum_ops_ge_num_p_p_ic                 =  320,
+    enum_ops_if_null_p_ic                  =  321,
+    enum_ops_if_null_s_ic                  =  322,
+    enum_ops_unless_null_p_ic              =  323,
+    enum_ops_unless_null_s_ic              =  324,
+    enum_ops_cmp_i_i_i                     =  325,
+    enum_ops_cmp_i_ic_i                    =  326,
+    enum_ops_cmp_i_i_ic                    =  327,
+    enum_ops_cmp_i_n_n                     =  328,
+    enum_ops_cmp_i_nc_n                    =  329,
+    enum_ops_cmp_i_n_nc                    =  330,
+    enum_ops_cmp_i_s_s                     =  331,
+    enum_ops_cmp_i_sc_s                    =  332,
+    enum_ops_cmp_i_s_sc                    =  333,
+    enum_ops_cmp_i_p_p                     =  334,
+    enum_ops_cmp_i_p_i                     =  335,
+    enum_ops_cmp_i_p_ic                    =  336,
+    enum_ops_cmp_i_p_n                     =  337,
+    enum_ops_cmp_i_p_nc                    =  338,
+    enum_ops_cmp_i_p_s                     =  339,
+    enum_ops_cmp_i_p_sc                    =  340,
+    enum_ops_cmp_str_i_p_p                 =  341,
+    enum_ops_cmp_num_i_p_p                 =  342,
+    enum_ops_cmp_pmc_p_p_p                 =  343,
+    enum_ops_issame_i_p_p                  =  344,
+    enum_ops_issame_i_s_s                  =  345,
+    enum_ops_issame_i_sc_s                 =  346,
+    enum_ops_issame_i_s_sc                 =  347,
+    enum_ops_issame_i_sc_sc                =  348,
+    enum_ops_isntsame_i_p_p                =  349,
+    enum_ops_isntsame_i_s_s                =  350,
+    enum_ops_isntsame_i_sc_s               =  351,
+    enum_ops_isntsame_i_s_sc               =  352,
+    enum_ops_isntsame_i_sc_sc              =  353,
+    enum_ops_istrue_i_p                    =  354,
+    enum_ops_isfalse_i_p                   =  355,
+    enum_ops_isnull_i_p                    =  356,
+    enum_ops_isnull_i_pc                   =  357,
+    enum_ops_isnull_i_s                    =  358,
+    enum_ops_isnull_i_sc                   =  359,
+    enum_ops_isgt_i_p_p                    =  360,
+    enum_ops_isge_i_p_p                    =  361,
+    enum_ops_isle_i_i_i                    =  362,
+    enum_ops_isle_i_ic_i                   =  363,
+    enum_ops_isle_i_i_ic                   =  364,
+    enum_ops_isle_i_n_n                    =  365,
+    enum_ops_isle_i_nc_n                   =  366,
+    enum_ops_isle_i_n_nc                   =  367,
+    enum_ops_isle_i_s_s                    =  368,
+    enum_ops_isle_i_sc_s                   =  369,
+    enum_ops_isle_i_s_sc                   =  370,
+    enum_ops_isle_i_p_p                    =  371,
+    enum_ops_islt_i_i_i                    =  372,
+    enum_ops_islt_i_ic_i                   =  373,
+    enum_ops_islt_i_i_ic                   =  374,
+    enum_ops_islt_i_n_n                    =  375,
+    enum_ops_islt_i_nc_n                   =  376,
+    enum_ops_islt_i_n_nc                   =  377,
+    enum_ops_islt_i_s_s                    =  378,
+    enum_ops_islt_i_sc_s                   =  379,
+    enum_ops_islt_i_s_sc                   =  380,
+    enum_ops_islt_i_p_p                    =  381,
+    enum_ops_iseq_i_i_i                    =  382,
+    enum_ops_iseq_i_ic_i                   =  383,
+    enum_ops_iseq_i_i_ic                   =  384,
+    enum_ops_iseq_i_n_n                    =  385,
+    enum_ops_iseq_i_nc_n                   =  386,
+    enum_ops_iseq_i_n_nc                   =  387,
+    enum_ops_iseq_i_s_s                    =  388,
+    enum_ops_iseq_i_sc_s                   =  389,
+    enum_ops_iseq_i_s_sc                   =  390,
+    enum_ops_iseq_i_p_p                    =  391,
+    enum_ops_isne_i_i_i                    =  392,
+    enum_ops_isne_i_ic_i                   =  393,
+    enum_ops_isne_i_i_ic                   =  394,
+    enum_ops_isne_i_n_n                    =  395,
+    enum_ops_isne_i_nc_n                   =  396,
+    enum_ops_isne_i_n_nc                   =  397,
+    enum_ops_isne_i_s_s                    =  398,
+    enum_ops_isne_i_sc_s                   =  399,
+    enum_ops_isne_i_s_sc                   =  400,
+    enum_ops_isne_i_p_p                    =  401,
+    enum_ops_and_i_i_i                     =  402,
+    enum_ops_and_i_ic_i                    =  403,
+    enum_ops_and_i_i_ic                    =  404,
+    enum_ops_and_p_p_p                     =  405,
+    enum_ops_not_i                         =  406,
+    enum_ops_not_i_i                       =  407,
+    enum_ops_not_p                         =  408,
+    enum_ops_not_p_p                       =  409,
+    enum_ops_or_i_i_i                      =  410,
+    enum_ops_or_i_ic_i                     =  411,
+    enum_ops_or_i_i_ic                     =  412,
+    enum_ops_or_p_p_p                      =  413,
+    enum_ops_xor_i_i_i                     =  414,
+    enum_ops_xor_i_ic_i                    =  415,
+    enum_ops_xor_i_i_ic                    =  416,
+    enum_ops_xor_p_p_p                     =  417,
+    enum_ops_debug_init                    =  418,
+    enum_ops_debug_load_sc                 =  419,
+    enum_ops_debug_break                   =  420,
+    enum_ops_debug_print                   =  421,
+    enum_ops_backtrace                     =  422,
+    enum_ops_getline_i                     =  423,
+    enum_ops_getfile_s                     =  424,
+    enum_ops_close_p                       =  425,
+    enum_ops_fdopen_p_i_s                  =  426,
+    enum_ops_fdopen_p_ic_s                 =  427,
+    enum_ops_fdopen_p_i_sc                 =  428,
+    enum_ops_fdopen_p_ic_sc                =  429,
+    enum_ops_getstdin_p                    =  430,
+    enum_ops_getstdout_p                   =  431,
+    enum_ops_getstderr_p                   =  432,
+    enum_ops_setstdin_p                    =  433,
+    enum_ops_setstdout_p                   =  434,
+    enum_ops_setstderr_p                   =  435,
+    enum_ops_open_p_s_s                    =  436,
+    enum_ops_open_p_sc_s                   =  437,
+    enum_ops_open_p_s_sc                   =  438,
+    enum_ops_open_p_sc_sc                  =  439,
+    enum_ops_open_p_s                      =  440,
+    enum_ops_open_p_sc                     =  441,
+    enum_ops_print_i                       =  442,
+    enum_ops_print_ic                      =  443,
+    enum_ops_print_n                       =  444,
+    enum_ops_print_nc                      =  445,
+    enum_ops_print_s                       =  446,
+    enum_ops_print_sc                      =  447,
+    enum_ops_print_p                       =  448,
+    enum_ops_say_i                         =  449,
+    enum_ops_say_ic                        =  450,
+    enum_ops_say_n                         =  451,
+    enum_ops_say_nc                        =  452,
+    enum_ops_say_s                         =  453,
+    enum_ops_say_sc                        =  454,
+    enum_ops_say_p                         =  455,
+    enum_ops_printerr_i                    =  456,
+    enum_ops_printerr_ic                   =  457,
+    enum_ops_printerr_n                    =  458,
+    enum_ops_printerr_nc                   =  459,
+    enum_ops_printerr_s                    =  460,
+    enum_ops_printerr_sc                   =  461,
+    enum_ops_printerr_p                    =  462,
+    enum_ops_print_p_i                     =  463,
+    enum_ops_print_p_ic                    =  464,
+    enum_ops_print_p_n                     =  465,
+    enum_ops_print_p_nc                    =  466,
+    enum_ops_print_p_s                     =  467,
+    enum_ops_print_p_sc                    =  468,
+    enum_ops_print_p_p                     =  469,
+    enum_ops_read_s_i                      =  470,
+    enum_ops_read_s_ic                     =  471,
+    enum_ops_read_s_p_i                    =  472,
+    enum_ops_read_s_p_ic                   =  473,
+    enum_ops_readline_s_p                  =  474,
+    enum_ops_peek_s                        =  475,
+    enum_ops_peek_s_p                      =  476,
+    enum_ops_stat_i_s_i                    =  477,
+    enum_ops_stat_i_sc_i                   =  478,
+    enum_ops_stat_i_s_ic                   =  479,
+    enum_ops_stat_i_sc_ic                  =  480,
+    enum_ops_stat_i_i_i                    =  481,
+    enum_ops_stat_i_ic_i                   =  482,
+    enum_ops_stat_i_i_ic                   =  483,
+    enum_ops_stat_i_ic_ic                  =  484,
+    enum_ops_seek_p_i_i                    =  485,
+    enum_ops_seek_p_ic_i                   =  486,
+    enum_ops_seek_p_i_ic                   =  487,
+    enum_ops_seek_p_ic_ic                  =  488,
+    enum_ops_seek_p_i_i_i                  =  489,
+    enum_ops_seek_p_ic_i_i                 =  490,
+    enum_ops_seek_p_i_ic_i                 =  491,
+    enum_ops_seek_p_ic_ic_i                =  492,
+    enum_ops_seek_p_i_i_ic                 =  493,
+    enum_ops_seek_p_ic_i_ic                =  494,
+    enum_ops_seek_p_i_ic_ic                =  495,
+    enum_ops_seek_p_ic_ic_ic               =  496,
+    enum_ops_tell_i_p                      =  497,
+    enum_ops_tell_i_i_p                    =  498,
+    enum_ops_abs_i                         =  499,
+    enum_ops_abs_n                         =  500,
+    enum_ops_abs_i_i                       =  501,
+    enum_ops_abs_n_n                       =  502,
+    enum_ops_abs_p                         =  503,
+    enum_ops_abs_p_p                       =  504,
+    enum_ops_add_i_i                       =  505,
+    enum_ops_add_i_ic                      =  506,
+    enum_ops_add_n_n                       =  507,
+    enum_ops_add_n_nc                      =  508,
+    enum_ops_add_p_p                       =  509,
+    enum_ops_add_p_i                       =  510,
+    enum_ops_add_p_ic                      =  511,
+    enum_ops_add_p_n                       =  512,
+    enum_ops_add_p_nc                      =  513,
+    enum_ops_add_i_i_i                     =  514,
+    enum_ops_add_i_ic_i                    =  515,
+    enum_ops_add_i_i_ic                    =  516,
+    enum_ops_add_n_n_n                     =  517,
+    enum_ops_add_n_nc_n                    =  518,
+    enum_ops_add_n_n_nc                    =  519,
+    enum_ops_add_p_p_p                     =  520,
+    enum_ops_add_p_p_i                     =  521,
+    enum_ops_add_p_p_ic                    =  522,
+    enum_ops_add_p_p_n                     =  523,
+    enum_ops_add_p_p_nc                    =  524,
+    enum_ops_cmod_i_i_i                    =  525,
+    enum_ops_cmod_i_ic_i                   =  526,
+    enum_ops_cmod_i_i_ic                   =  527,
+    enum_ops_cmod_p_p_i                    =  528,
+    enum_ops_cmod_p_p_ic                   =  529,
+    enum_ops_cmod_p_p_p                    =  530,
+    enum_ops_cmod_n_n_n                    =  531,
+    enum_ops_cmod_n_nc_n                   =  532,
+    enum_ops_cmod_n_n_nc                   =  533,
+    enum_ops_cmod_p_p_n                    =  534,
+    enum_ops_cmod_p_p_nc                   =  535,
+    enum_ops_dec_i                         =  536,
+    enum_ops_dec_n                         =  537,
+    enum_ops_dec_p                         =  538,
+    enum_ops_div_i_i                       =  539,
+    enum_ops_div_i_ic                      =  540,
+    enum_ops_div_n_n                       =  541,
+    enum_ops_div_n_nc                      =  542,
+    enum_ops_div_p_p                       =  543,
+    enum_ops_div_p_i                       =  544,
+    enum_ops_div_p_ic                      =  545,
+    enum_ops_div_p_n                       =  546,
+    enum_ops_div_p_nc                      =  547,
+    enum_ops_div_i_i_i                     =  548,
+    enum_ops_div_i_ic_i                    =  549,
+    enum_ops_div_i_i_ic                    =  550,
+    enum_ops_div_i_ic_ic                   =  551,
+    enum_ops_div_n_n_n                     =  552,
+    enum_ops_div_n_nc_n                    =  553,
+    enum_ops_div_n_n_nc                    =  554,
+    enum_ops_div_n_nc_nc                   =  555,
+    enum_ops_div_p_p_p                     =  556,
+    enum_ops_div_p_p_i                     =  557,
+    enum_ops_div_p_p_ic                    =  558,
+    enum_ops_div_p_p_n                     =  559,
+    enum_ops_div_p_p_nc                    =  560,
+    enum_ops_fdiv_i_i                      =  561,
+    enum_ops_fdiv_i_ic                     =  562,
+    enum_ops_fdiv_n_n                      =  563,
+    enum_ops_fdiv_n_nc                     =  564,
+    enum_ops_fdiv_p_p                      =  565,
+    enum_ops_fdiv_p_i                      =  566,
+    enum_ops_fdiv_p_ic                     =  567,
+    enum_ops_fdiv_p_n                      =  568,
+    enum_ops_fdiv_p_nc                     =  569,
+    enum_ops_fdiv_i_i_i                    =  570,
+    enum_ops_fdiv_i_ic_i                   =  571,
+    enum_ops_fdiv_i_i_ic                   =  572,
+    enum_ops_fdiv_n_n_n                    =  573,
+    enum_ops_fdiv_n_nc_n                   =  574,
+    enum_ops_fdiv_n_n_nc                   =  575,
+    enum_ops_fdiv_p_p_p                    =  576,
+    enum_ops_fdiv_p_p_i                    =  577,
+    enum_ops_fdiv_p_p_ic                   =  578,
+    enum_ops_fdiv_p_p_n                    =  579,
+    enum_ops_fdiv_p_p_nc                   =  580,
+    enum_ops_ceil_n                        =  581,
+    enum_ops_ceil_i_n                      =  582,
+    enum_ops_ceil_n_n                      =  583,
+    enum_ops_floor_n                       =  584,
+    enum_ops_floor_i_n                     =  585,
+    enum_ops_floor_n_n                     =  586,
+    enum_ops_inc_i                         =  587,
+    enum_ops_inc_n                         =  588,
+    enum_ops_inc_p                         =  589,
+    enum_ops_mod_i_i                       =  590,
+    enum_ops_mod_i_ic                      =  591,
+    enum_ops_mod_n_n                       =  592,
+    enum_ops_mod_n_nc                      =  593,
+    enum_ops_mod_p_p                       =  594,
+    enum_ops_mod_p_i                       =  595,
+    enum_ops_mod_p_ic                      =  596,
+    enum_ops_mod_p_n                       =  597,
+    enum_ops_mod_p_nc                      =  598,
+    enum_ops_mod_i_i_i                     =  599,
+    enum_ops_mod_i_ic_i                    =  600,
+    enum_ops_mod_i_i_ic                    =  601,
+    enum_ops_mod_n_n_n                     =  602,
+    enum_ops_mod_n_nc_n                    =  603,
+    enum_ops_mod_n_n_nc                    =  604,
+    enum_ops_mod_p_p_p                     =  605,
+    enum_ops_mod_p_p_i                     =  606,
+    enum_ops_mod_p_p_ic                    =  607,
+    enum_ops_mod_p_p_n                     =  608,
+    enum_ops_mod_p_p_nc                    =  609,
+    enum_ops_mul_i_i                       =  610,
+    enum_ops_mul_i_ic                      =  611,
+    enum_ops_mul_n_n                       =  612,
+    enum_ops_mul_n_nc                      =  613,
+    enum_ops_mul_p_p                       =  614,
+    enum_ops_mul_p_i                       =  615,
+    enum_ops_mul_p_ic                      =  616,
+    enum_ops_mul_p_n                       =  617,
+    enum_ops_mul_p_nc                      =  618,
+    enum_ops_mul_i_i_i                     =  619,
+    enum_ops_mul_i_ic_i                    =  620,
+    enum_ops_mul_i_i_ic                    =  621,
+    enum_ops_mul_n_n_n                     =  622,
+    enum_ops_mul_n_nc_n                    =  623,
+    enum_ops_mul_n_n_nc                    =  624,
+    enum_ops_mul_p_p_p                     =  625,
+    enum_ops_mul_p_p_i                     =  626,
+    enum_ops_mul_p_p_ic                    =  627,
+    enum_ops_mul_p_p_n                     =  628,
+    enum_ops_mul_p_p_nc                    =  629,
+    enum_ops_neg_i                         =  630,
+    enum_ops_neg_n                         =  631,
+    enum_ops_neg_p                         =  632,
+    enum_ops_neg_i_i                       =  633,
+    enum_ops_neg_n_n                       =  634,
+    enum_ops_neg_p_p                       =  635,
+    enum_ops_pow_n_n_n                     =  636,
+    enum_ops_pow_n_nc_n                    =  637,
+    enum_ops_pow_n_n_nc                    =  638,
+    enum_ops_pow_p_p_p                     =  639,
+    enum_ops_pow_p_p_i                     =  640,
+    enum_ops_pow_p_p_ic                    =  641,
+    enum_ops_pow_p_p_n                     =  642,
+    enum_ops_pow_p_p_nc                    =  643,
+    enum_ops_pow_n_n_i                     =  644,
+    enum_ops_pow_n_nc_i                    =  645,
+    enum_ops_pow_n_n_ic                    =  646,
+    enum_ops_pow_n_nc_ic                   =  647,
+    enum_ops_sub_i_i                       =  648,
+    enum_ops_sub_i_ic                      =  649,
+    enum_ops_sub_n_n                       =  650,
+    enum_ops_sub_n_nc                      =  651,
+    enum_ops_sub_p_p                       =  652,
+    enum_ops_sub_p_i                       =  653,
+    enum_ops_sub_p_ic                      =  654,
+    enum_ops_sub_p_n                       =  655,
+    enum_ops_sub_p_nc                      =  656,
+    enum_ops_sub_i_i_i                     =  657,
+    enum_ops_sub_i_ic_i                    =  658,
+    enum_ops_sub_i_i_ic                    =  659,
+    enum_ops_sub_n_n_n                     =  660,
+    enum_ops_sub_n_nc_n                    =  661,
+    enum_ops_sub_n_n_nc                    =  662,
+    enum_ops_sub_p_p_p                     =  663,
+    enum_ops_sub_p_p_i                     =  664,
+    enum_ops_sub_p_p_ic                    =  665,
+    enum_ops_sub_p_p_n                     =  666,
+    enum_ops_sub_p_p_nc                    =  667,
+    enum_ops_sqrt_n_n                      =  668,
+    enum_ops_acos_n_n                      =  669,
+    enum_ops_asec_n_n                      =  670,
+    enum_ops_asin_n_n                      =  671,
+    enum_ops_atan_n_n                      =  672,
+    enum_ops_atan_n_n_n                    =  673,
+    enum_ops_atan_n_nc_n                   =  674,
+    enum_ops_atan_n_n_nc                   =  675,
+    enum_ops_cos_n_n                       =  676,
+    enum_ops_cosh_n_n                      =  677,
+    enum_ops_exp_n_n                       =  678,
+    enum_ops_ln_n_n                        =  679,
+    enum_ops_log10_n_n                     =  680,
+    enum_ops_log2_n_n                      =  681,
+    enum_ops_sec_n_n                       =  682,
+    enum_ops_sech_n_n                      =  683,
+    enum_ops_sin_n_n                       =  684,
+    enum_ops_sinh_n_n                      =  685,
+    enum_ops_tan_n_n                       =  686,
+    enum_ops_tanh_n_n                      =  687,
+    enum_ops_callmethodcc_p_s              =  688,
+    enum_ops_callmethodcc_p_sc             =  689,
+    enum_ops_callmethodcc_p_p              =  690,
+    enum_ops_callmethod_p_s_p              =  691,
+    enum_ops_callmethod_p_sc_p             =  692,
+    enum_ops_callmethod_p_p_p              =  693,
+    enum_ops_tailcallmethod_p_s            =  694,
+    enum_ops_tailcallmethod_p_sc           =  695,
+    enum_ops_tailcallmethod_p_p            =  696,
+    enum_ops_addmethod_p_s_p               =  697,
+    enum_ops_addmethod_p_sc_p              =  698,
+    enum_ops_can_i_p_s                     =  699,
+    enum_ops_can_i_p_sc                    =  700,
+    enum_ops_does_i_p_s                    =  701,
+    enum_ops_does_i_p_sc                   =  702,
+    enum_ops_does_i_p_p                    =  703,
+    enum_ops_does_i_p_pc                   =  704,
+    enum_ops_isa_i_p_s                     =  705,
+    enum_ops_isa_i_p_sc                    =  706,
+    enum_ops_isa_i_p_p                     =  707,
+    enum_ops_isa_i_p_pc                    =  708,
+    enum_ops_newclass_p_s                  =  709,
+    enum_ops_newclass_p_sc                 =  710,
+    enum_ops_newclass_p_p                  =  711,
+    enum_ops_newclass_p_pc                 =  712,
+    enum_ops_subclass_p_p                  =  713,
+    enum_ops_subclass_p_pc                 =  714,
+    enum_ops_subclass_p_p_s                =  715,
+    enum_ops_subclass_p_pc_s               =  716,
+    enum_ops_subclass_p_p_sc               =  717,
+    enum_ops_subclass_p_pc_sc              =  718,
+    enum_ops_subclass_p_p_p                =  719,
+    enum_ops_subclass_p_pc_p               =  720,
+    enum_ops_subclass_p_p_pc               =  721,
+    enum_ops_subclass_p_pc_pc              =  722,
+    enum_ops_subclass_p_s                  =  723,
+    enum_ops_subclass_p_sc                 =  724,
+    enum_ops_subclass_p_s_s                =  725,
+    enum_ops_subclass_p_sc_s               =  726,
+    enum_ops_subclass_p_s_sc               =  727,
+    enum_ops_subclass_p_sc_sc              =  728,
+    enum_ops_subclass_p_s_p                =  729,
+    enum_ops_subclass_p_sc_p               =  730,
+    enum_ops_subclass_p_s_pc               =  731,
+    enum_ops_subclass_p_sc_pc              =  732,
+    enum_ops_get_class_p_s                 =  733,
+    enum_ops_get_class_p_sc                =  734,
+    enum_ops_get_class_p_p                 =  735,
+    enum_ops_get_class_p_pc                =  736,
+    enum_ops_class_p_p                     =  737,
+    enum_ops_addparent_p_p                 =  738,
+    enum_ops_removeparent_p_p              =  739,
+    enum_ops_addrole_p_p                   =  740,
+    enum_ops_addattribute_p_s              =  741,
+    enum_ops_addattribute_p_sc             =  742,
+    enum_ops_removeattribute_p_s           =  743,
+    enum_ops_removeattribute_p_sc          =  744,
+    enum_ops_getattribute_p_p_s            =  745,
+    enum_ops_getattribute_p_p_sc           =  746,
+    enum_ops_getattribute_p_p_p_s          =  747,
+    enum_ops_getattribute_p_p_pc_s         =  748,
+    enum_ops_getattribute_p_p_p_sc         =  749,
+    enum_ops_getattribute_p_p_pc_sc        =  750,
+    enum_ops_setattribute_p_s_p            =  751,
+    enum_ops_setattribute_p_sc_p           =  752,
+    enum_ops_setattribute_p_p_s_p          =  753,
+    enum_ops_setattribute_p_pc_s_p         =  754,
+    enum_ops_setattribute_p_p_sc_p         =  755,
+    enum_ops_setattribute_p_pc_sc_p        =  756,
+    enum_ops_inspect_p_p                   =  757,
+    enum_ops_inspect_p_pc                  =  758,
+    enum_ops_inspect_p_p_s                 =  759,
+    enum_ops_inspect_p_pc_s                =  760,
+    enum_ops_inspect_p_p_sc                =  761,
+    enum_ops_inspect_p_pc_sc               =  762,
+    enum_ops_new_p_s                       =  763,
+    enum_ops_new_p_sc                      =  764,
+    enum_ops_new_p_s_p                     =  765,
+    enum_ops_new_p_sc_p                    =  766,
+    enum_ops_new_p_s_pc                    =  767,
+    enum_ops_new_p_sc_pc                   =  768,
+    enum_ops_new_p_p                       =  769,
+    enum_ops_new_p_pc                      =  770,
+    enum_ops_new_p_p_p                     =  771,
+    enum_ops_new_p_pc_p                    =  772,
+    enum_ops_new_p_p_pc                    =  773,
+    enum_ops_new_p_pc_pc                   =  774,
+    enum_ops_root_new_p_p                  =  775,
+    enum_ops_root_new_p_pc                 =  776,
+    enum_ops_root_new_p_p_p                =  777,
+    enum_ops_root_new_p_pc_p               =  778,
+    enum_ops_root_new_p_p_pc               =  779,
+    enum_ops_root_new_p_pc_pc              =  780,
+    enum_ops_typeof_s_p                    =  781,
+    enum_ops_typeof_p_p                    =  782,
+    enum_ops_get_repr_s_p                  =  783,
+    enum_ops_find_method_p_p_s             =  784,
+    enum_ops_find_method_p_p_sc            =  785,
+    enum_ops_defined_i_p                   =  786,
+    enum_ops_defined_i_p_ki                =  787,
+    enum_ops_defined_i_p_kic               =  788,
+    enum_ops_defined_i_p_k                 =  789,
+    enum_ops_defined_i_p_kc                =  790,
+    enum_ops_exists_i_p_ki                 =  791,
+    enum_ops_exists_i_p_kic                =  792,
+    enum_ops_exists_i_p_k                  =  793,
+    enum_ops_exists_i_p_kc                 =  794,
+    enum_ops_delete_p_k                    =  795,
+    enum_ops_delete_p_kc                   =  796,
+    enum_ops_delete_p_ki                   =  797,
+    enum_ops_delete_p_kic                  =  798,
+    enum_ops_elements_i_p                  =  799,
+    enum_ops_push_p_i                      =  800,
+    enum_ops_push_p_ic                     =  801,
+    enum_ops_push_p_n                      =  802,
+    enum_ops_push_p_nc                     =  803,
+    enum_ops_push_p_s                      =  804,
+    enum_ops_push_p_sc                     =  805,
+    enum_ops_push_p_p                      =  806,
+    enum_ops_pop_i_p                       =  807,
+    enum_ops_pop_n_p                       =  808,
+    enum_ops_pop_s_p                       =  809,
+    enum_ops_pop_p_p                       =  810,
+    enum_ops_unshift_p_i                   =  811,
+    enum_ops_unshift_p_ic                  =  812,
+    enum_ops_unshift_p_n                   =  813,
+    enum_ops_unshift_p_nc                  =  814,
+    enum_ops_unshift_p_s                   =  815,
+    enum_ops_unshift_p_sc                  =  816,
+    enum_ops_unshift_p_p                   =  817,
+    enum_ops_shift_i_p                     =  818,
+    enum_ops_shift_n_p                     =  819,
+    enum_ops_shift_s_p                     =  820,
+    enum_ops_shift_p_p                     =  821,
+    enum_ops_splice_p_p_i_i                =  822,
+    enum_ops_splice_p_p_ic_i               =  823,
+    enum_ops_splice_p_p_i_ic               =  824,
+    enum_ops_splice_p_p_ic_ic              =  825,
+    enum_ops_setprop_p_s_p                 =  826,
+    enum_ops_setprop_p_sc_p                =  827,
+    enum_ops_getprop_p_s_p                 =  828,
+    enum_ops_getprop_p_sc_p                =  829,
+    enum_ops_delprop_p_s                   =  830,
+    enum_ops_delprop_p_sc                  =  831,
+    enum_ops_prophash_p_p                  =  832,
+    enum_ops_freeze_s_p                    =  833,
+    enum_ops_thaw_p_s                      =  834,
+    enum_ops_thaw_p_sc                     =  835,
+    enum_ops_add_multi_s_s_p               =  836,
+    enum_ops_add_multi_sc_s_p              =  837,
+    enum_ops_add_multi_s_sc_p              =  838,
+    enum_ops_add_multi_sc_sc_p             =  839,
+    enum_ops_find_multi_p_s_s              =  840,
+    enum_ops_find_multi_p_sc_s             =  841,
+    enum_ops_find_multi_p_s_sc             =  842,
+    enum_ops_find_multi_p_sc_sc            =  843,
+    enum_ops_register_p                    =  844,
+    enum_ops_unregister_p                  =  845,
+    enum_ops_box_p_i                       =  846,
+    enum_ops_box_p_ic                      =  847,
+    enum_ops_box_p_n                       =  848,
+    enum_ops_box_p_nc                      =  849,
+    enum_ops_box_p_s                       =  850,
+    enum_ops_box_p_sc                      =  851,
+    enum_ops_iter_p_p                      =  852,
+    enum_ops_morph_p_p                     =  853,
+    enum_ops_morph_p_pc                    =  854,
+    enum_ops_clone_s_s                     =  855,
+    enum_ops_clone_s_sc                    =  856,
+    enum_ops_set_i_i                       =  857,
+    enum_ops_set_i_ic                      =  858,
+    enum_ops_set_i_n                       =  859,
+    enum_ops_set_i_nc                      =  860,
+    enum_ops_set_i_s                       =  861,
+    enum_ops_set_i_sc                      =  862,
+    enum_ops_set_n_n                       =  863,
+    enum_ops_set_n_nc                      =  864,
+    enum_ops_set_n_i                       =  865,
+    enum_ops_set_n_ic                      =  866,
+    enum_ops_set_n_s                       =  867,
+    enum_ops_set_n_sc                      =  868,
+    enum_ops_set_n_p                       =  869,
+    enum_ops_set_s_p                       =  870,
+    enum_ops_set_s_s                       =  871,
+    enum_ops_set_s_sc                      =  872,
+    enum_ops_set_s_i                       =  873,
+    enum_ops_set_s_ic                      =  874,
+    enum_ops_set_s_n                       =  875,
+    enum_ops_set_s_nc                      =  876,
+    enum_ops_set_p_pc                      =  877,
+    enum_ops_set_p_p                       =  878,
+    enum_ops_set_p_i                       =  879,
+    enum_ops_set_p_ic                      =  880,
+    enum_ops_set_p_n                       =  881,
+    enum_ops_set_p_nc                      =  882,
+    enum_ops_set_p_s                       =  883,
+    enum_ops_set_p_sc                      =  884,
+    enum_ops_set_i_p                       =  885,
+    enum_ops_assign_p_p                    =  886,
+    enum_ops_assign_p_i                    =  887,
+    enum_ops_assign_p_ic                   =  888,
+    enum_ops_assign_p_n                    =  889,
+    enum_ops_assign_p_nc                   =  890,
+    enum_ops_assign_p_s                    =  891,
+    enum_ops_assign_p_sc                   =  892,
+    enum_ops_assign_s_s                    =  893,
+    enum_ops_assign_s_sc                   =  894,
+    enum_ops_setref_p_p                    =  895,
+    enum_ops_deref_p_p                     =  896,
+    enum_ops_set_p_ki_i                    =  897,
+    enum_ops_set_p_kic_i                   =  898,
+    enum_ops_set_p_ki_ic                   =  899,
+    enum_ops_set_p_kic_ic                  =  900,
+    enum_ops_set_p_ki_n                    =  901,
+    enum_ops_set_p_kic_n                   =  902,
+    enum_ops_set_p_ki_nc                   =  903,
+    enum_ops_set_p_kic_nc                  =  904,
+    enum_ops_set_p_ki_s                    =  905,
+    enum_ops_set_p_kic_s                   =  906,
+    enum_ops_set_p_ki_sc                   =  907,
+    enum_ops_set_p_kic_sc                  =  908,
+    enum_ops_set_p_ki_p                    =  909,
+    enum_ops_set_p_kic_p                   =  910,
+    enum_ops_set_i_p_ki                    =  911,
+    enum_ops_set_i_p_kic                   =  912,
+    enum_ops_set_n_p_ki                    =  913,
+    enum_ops_set_n_p_kic                   =  914,
+    enum_ops_set_s_p_ki                    =  915,
+    enum_ops_set_s_p_kic                   =  916,
+    enum_ops_set_p_p_ki                    =  917,
+    enum_ops_set_p_p_kic                   =  918,
+    enum_ops_set_p_k_i                     =  919,
+    enum_ops_set_p_kc_i                    =  920,
+    enum_ops_set_p_k_ic                    =  921,
+    enum_ops_set_p_kc_ic                   =  922,
+    enum_ops_set_p_k_n                     =  923,
+    enum_ops_set_p_kc_n                    =  924,
+    enum_ops_set_p_k_nc                    =  925,
+    enum_ops_set_p_kc_nc                   =  926,
+    enum_ops_set_p_k_s                     =  927,
+    enum_ops_set_p_kc_s                    =  928,
+    enum_ops_set_p_k_sc                    =  929,
+    enum_ops_set_p_kc_sc                   =  930,
+    enum_ops_set_p_k_p                     =  931,
+    enum_ops_set_p_kc_p                    =  932,
+    enum_ops_set_i_p_k                     =  933,
+    enum_ops_set_i_p_kc                    =  934,
+    enum_ops_set_n_p_k                     =  935,
+    enum_ops_set_n_p_kc                    =  936,
+    enum_ops_set_s_p_k                     =  937,
+    enum_ops_set_s_p_kc                    =  938,
+    enum_ops_set_p_p_k                     =  939,
+    enum_ops_set_p_p_kc                    =  940,
+    enum_ops_clone_p_p                     =  941,
+    enum_ops_clone_p_p_p                   =  942,
+    enum_ops_clone_p_p_pc                  =  943,
+    enum_ops_copy_p_p                      =  944,
+    enum_ops_null_s                        =  945,
+    enum_ops_null_i                        =  946,
+    enum_ops_null_p                        =  947,
+    enum_ops_null_n                        =  948,
+    enum_ops_ord_i_s                       =  949,
+    enum_ops_ord_i_sc                      =  950,
+    enum_ops_ord_i_s_i                     =  951,
+    enum_ops_ord_i_sc_i                    =  952,
+    enum_ops_ord_i_s_ic                    =  953,
+    enum_ops_ord_i_sc_ic                   =  954,
+    enum_ops_chr_s_i                       =  955,
+    enum_ops_chr_s_ic                      =  956,
+    enum_ops_chopn_s_s_i                   =  957,
+    enum_ops_chopn_s_sc_i                  =  958,
+    enum_ops_chopn_s_s_ic                  =  959,
+    enum_ops_chopn_s_sc_ic                 =  960,
+    enum_ops_concat_s_s                    =  961,
+    enum_ops_concat_s_sc                   =  962,
+    enum_ops_concat_p_p                    =  963,
+    enum_ops_concat_p_s                    =  964,
+    enum_ops_concat_p_sc                   =  965,
+    enum_ops_concat_s_s_s                  =  966,
+    enum_ops_concat_s_sc_s                 =  967,
+    enum_ops_concat_s_s_sc                 =  968,
+    enum_ops_concat_p_p_s                  =  969,
+    enum_ops_concat_p_p_sc                 =  970,
+    enum_ops_concat_p_p_p                  =  971,
+    enum_ops_repeat_s_s_i                  =  972,
+    enum_ops_repeat_s_sc_i                 =  973,
+    enum_ops_repeat_s_s_ic                 =  974,
+    enum_ops_repeat_s_sc_ic                =  975,
+    enum_ops_repeat_p_p_i                  =  976,
+    enum_ops_repeat_p_p_ic                 =  977,
+    enum_ops_repeat_p_p_p                  =  978,
+    enum_ops_repeat_p_i                    =  979,
+    enum_ops_repeat_p_ic                   =  980,
+    enum_ops_repeat_p_p                    =  981,
+    enum_ops_length_i_s                    =  982,
+    enum_ops_length_i_sc                   =  983,
+    enum_ops_bytelength_i_s                =  984,
+    enum_ops_bytelength_i_sc               =  985,
+    enum_ops_pin_s                         =  986,
+    enum_ops_unpin_s                       =  987,
+    enum_ops_substr_s_s_i                  =  988,
+    enum_ops_substr_s_sc_i                 =  989,
+    enum_ops_substr_s_s_ic                 =  990,
+    enum_ops_substr_s_sc_ic                =  991,
+    enum_ops_substr_s_s_i_i                =  992,
+    enum_ops_substr_s_sc_i_i               =  993,
+    enum_ops_substr_s_s_ic_i               =  994,
+    enum_ops_substr_s_sc_ic_i              =  995,
+    enum_ops_substr_s_s_i_ic               =  996,
+    enum_ops_substr_s_sc_i_ic              =  997,
+    enum_ops_substr_s_s_ic_ic              =  998,
+    enum_ops_substr_s_sc_ic_ic             =  999,
+    enum_ops_substr_s_p_i_i                = 1000,
+    enum_ops_substr_s_p_ic_i               = 1001,
+    enum_ops_substr_s_p_i_ic               = 1002,
+    enum_ops_substr_s_p_ic_ic              = 1003,
+    enum_ops_replace_s_s_i_i_s             = 1004,
+    enum_ops_replace_s_sc_i_i_s            = 1005,
+    enum_ops_replace_s_s_ic_i_s            = 1006,
+    enum_ops_replace_s_sc_ic_i_s           = 1007,
+    enum_ops_replace_s_s_i_ic_s            = 1008,
+    enum_ops_replace_s_sc_i_ic_s           = 1009,
+    enum_ops_replace_s_s_ic_ic_s           = 1010,
+    enum_ops_replace_s_sc_ic_ic_s          = 1011,
+    enum_ops_replace_s_s_i_i_sc            = 1012,
+    enum_ops_replace_s_sc_i_i_sc           = 1013,
+    enum_ops_replace_s_s_ic_i_sc           = 1014,
+    enum_ops_replace_s_sc_ic_i_sc          = 1015,
+    enum_ops_replace_s_s_i_ic_sc           = 1016,
+    enum_ops_replace_s_sc_i_ic_sc          = 1017,
+    enum_ops_replace_s_s_ic_ic_sc          = 1018,
+    enum_ops_replace_s_sc_ic_ic_sc         = 1019,
+    enum_ops_index_i_s_s                   = 1020,
+    enum_ops_index_i_sc_s                  = 1021,
+    enum_ops_index_i_s_sc                  = 1022,
+    enum_ops_index_i_sc_sc                 = 1023,
+    enum_ops_index_i_s_s_i                 = 1024,
+    enum_ops_index_i_sc_s_i                = 1025,
+    enum_ops_index_i_s_sc_i                = 1026,
+    enum_ops_index_i_sc_sc_i               = 1027,
+    enum_ops_index_i_s_s_ic                = 1028,
+    enum_ops_index_i_sc_s_ic               = 1029,
+    enum_ops_index_i_s_sc_ic               = 1030,
+    enum_ops_index_i_sc_sc_ic              = 1031,
+    enum_ops_sprintf_s_s_p                 = 1032,
+    enum_ops_sprintf_s_sc_p                = 1033,
+    enum_ops_sprintf_p_p_p                 = 1034,
+    enum_ops_new_s                         = 1035,
+    enum_ops_new_s_i                       = 1036,
+    enum_ops_new_s_ic                      = 1037,
+    enum_ops_stringinfo_i_s_i              = 1038,
+    enum_ops_stringinfo_i_sc_i             = 1039,
+    enum_ops_stringinfo_i_s_ic             = 1040,
+    enum_ops_stringinfo_i_sc_ic            = 1041,
+    enum_ops_upcase_s_s                    = 1042,
+    enum_ops_upcase_s_sc                   = 1043,
+    enum_ops_downcase_s_s                  = 1044,
+    enum_ops_downcase_s_sc                 = 1045,
+    enum_ops_titlecase_s_s                 = 1046,
+    enum_ops_titlecase_s_sc                = 1047,
+    enum_ops_join_s_s_p                    = 1048,
+    enum_ops_join_s_sc_p                   = 1049,
+    enum_ops_split_p_s_s                   = 1050,
+    enum_ops_split_p_sc_s                  = 1051,
+    enum_ops_split_p_s_sc                  = 1052,
+    enum_ops_split_p_sc_sc                 = 1053,
+    enum_ops_charset_i_s                   = 1054,
+    enum_ops_charset_i_sc                  = 1055,
+    enum_ops_charsetname_s_i               = 1056,
+    enum_ops_charsetname_s_ic              = 1057,
+    enum_ops_find_charset_i_s              = 1058,
+    enum_ops_find_charset_i_sc             = 1059,
+    enum_ops_trans_charset_s_s_i           = 1060,
+    enum_ops_trans_charset_s_sc_i          = 1061,
+    enum_ops_trans_charset_s_s_ic          = 1062,
+    enum_ops_trans_charset_s_sc_ic         = 1063,
+    enum_ops_encoding_i_s                  = 1064,
+    enum_ops_encoding_i_sc                 = 1065,
+    enum_ops_encodingname_s_i              = 1066,
+    enum_ops_encodingname_s_ic             = 1067,
+    enum_ops_find_encoding_i_s             = 1068,
+    enum_ops_find_encoding_i_sc            = 1069,
+    enum_ops_trans_encoding_s_s_i          = 1070,
+    enum_ops_trans_encoding_s_sc_i         = 1071,
+    enum_ops_trans_encoding_s_s_ic         = 1072,
+    enum_ops_trans_encoding_s_sc_ic        = 1073,
+    enum_ops_is_cclass_i_i_s_i             = 1074,
+    enum_ops_is_cclass_i_ic_s_i            = 1075,
+    enum_ops_is_cclass_i_i_sc_i            = 1076,
+    enum_ops_is_cclass_i_ic_sc_i           = 1077,
+    enum_ops_is_cclass_i_i_s_ic            = 1078,
+    enum_ops_is_cclass_i_ic_s_ic           = 1079,
+    enum_ops_is_cclass_i_i_sc_ic           = 1080,
+    enum_ops_is_cclass_i_ic_sc_ic          = 1081,
+    enum_ops_find_cclass_i_i_s_i_i         = 1082,
+    enum_ops_find_cclass_i_ic_s_i_i        = 1083,
+    enum_ops_find_cclass_i_i_sc_i_i        = 1084,
+    enum_ops_find_cclass_i_ic_sc_i_i       = 1085,
+    enum_ops_find_cclass_i_i_s_ic_i        = 1086,
+    enum_ops_find_cclass_i_ic_s_ic_i       = 1087,
+    enum_ops_find_cclass_i_i_sc_ic_i       = 1088,
+    enum_ops_find_cclass_i_ic_sc_ic_i      = 1089,
+    enum_ops_find_cclass_i_i_s_i_ic        = 1090,
+    enum_ops_find_cclass_i_ic_s_i_ic       = 1091,
+    enum_ops_find_cclass_i_i_sc_i_ic       = 1092,
+    enum_ops_find_cclass_i_ic_sc_i_ic      = 1093,
+    enum_ops_find_cclass_i_i_s_ic_ic       = 1094,
+    enum_ops_find_cclass_i_ic_s_ic_ic      = 1095,
+    enum_ops_find_cclass_i_i_sc_ic_ic      = 1096,
+    enum_ops_find_cclass_i_ic_sc_ic_ic     = 1097,
+    enum_ops_find_not_cclass_i_i_s_i_i     = 1098,
+    enum_ops_find_not_cclass_i_ic_s_i_i    = 1099,
+    enum_ops_find_not_cclass_i_i_sc_i_i    = 1100,
+    enum_ops_find_not_cclass_i_ic_sc_i_i   = 1101,
+    enum_ops_find_not_cclass_i_i_s_ic_i    = 1102,
+    enum_ops_find_not_cclass_i_ic_s_ic_i   = 1103,
+    enum_ops_find_not_cclass_i_i_sc_ic_i   = 1104,
+    enum_ops_find_not_cclass_i_ic_sc_ic_i  = 1105,
+    enum_ops_find_not_cclass_i_i_s_i_ic    = 1106,
+    enum_ops_find_not_cclass_i_ic_s_i_ic   = 1107,
+    enum_ops_find_not_cclass_i_i_sc_i_ic   = 1108,
+    enum_ops_find_not_cclass_i_ic_sc_i_ic  = 1109,
+    enum_ops_find_not_cclass_i_i_s_ic_ic   = 1110,
+    enum_ops_find_not_cclass_i_ic_s_ic_ic  = 1111,
+    enum_ops_find_not_cclass_i_i_sc_ic_ic  = 1112,
+    enum_ops_find_not_cclass_i_ic_sc_ic_ic = 1113,
+    enum_ops_escape_s_s                    = 1114,
+    enum_ops_compose_s_s                   = 1115,
+    enum_ops_compose_s_sc                  = 1116,
+    enum_ops_spawnw_i_s                    = 1117,
+    enum_ops_spawnw_i_sc                   = 1118,
+    enum_ops_spawnw_i_p                    = 1119,
+    enum_ops_err_i                         = 1120,
+    enum_ops_err_s                         = 1121,
+    enum_ops_err_s_i                       = 1122,
+    enum_ops_err_s_ic                      = 1123,
+    enum_ops_time_i                        = 1124,
+    enum_ops_time_n                        = 1125,
+    enum_ops_gmtime_s_i                    = 1126,
+    enum_ops_gmtime_s_ic                   = 1127,
+    enum_ops_localtime_s_i                 = 1128,
+    enum_ops_localtime_s_ic                = 1129,
+    enum_ops_decodetime_p_i                = 1130,
+    enum_ops_decodetime_p_ic               = 1131,
+    enum_ops_decodelocaltime_p_i           = 1132,
+    enum_ops_decodelocaltime_p_ic          = 1133,
+    enum_ops_sysinfo_s_i                   = 1134,
+    enum_ops_sysinfo_s_ic                  = 1135,
+    enum_ops_sysinfo_i_i                   = 1136,
+    enum_ops_sysinfo_i_ic                  = 1137,
+    enum_ops_sleep_i                       = 1138,
+    enum_ops_sleep_ic                      = 1139,
+    enum_ops_sleep_n                       = 1140,
+    enum_ops_sleep_nc                      = 1141,
+    enum_ops_store_lex_s_p                 = 1142,
+    enum_ops_store_lex_sc_p                = 1143,
+    enum_ops_store_dynamic_lex_s_p         = 1144,
+    enum_ops_store_dynamic_lex_sc_p        = 1145,
+    enum_ops_find_lex_p_s                  = 1146,
+    enum_ops_find_lex_p_sc                 = 1147,
+    enum_ops_find_dynamic_lex_p_s          = 1148,
+    enum_ops_find_dynamic_lex_p_sc         = 1149,
+    enum_ops_find_caller_lex_p_s           = 1150,
+    enum_ops_find_caller_lex_p_sc          = 1151,
+    enum_ops_get_namespace_p               = 1152,
+    enum_ops_get_namespace_p_p             = 1153,
+    enum_ops_get_namespace_p_pc            = 1154,
+    enum_ops_get_hll_namespace_p           = 1155,
+    enum_ops_get_hll_namespace_p_p         = 1156,
+    enum_ops_get_hll_namespace_p_pc        = 1157,
+    enum_ops_get_root_namespace_p          = 1158,
+    enum_ops_get_root_namespace_p_p        = 1159,
+    enum_ops_get_root_namespace_p_pc       = 1160,
+    enum_ops_get_global_p_s                = 1161,
+    enum_ops_get_global_p_sc               = 1162,
+    enum_ops_get_global_p_p_s              = 1163,
+    enum_ops_get_global_p_pc_s             = 1164,
+    enum_ops_get_global_p_p_sc             = 1165,
+    enum_ops_get_global_p_pc_sc            = 1166,
+    enum_ops_get_hll_global_p_s            = 1167,
+    enum_ops_get_hll_global_p_sc           = 1168,
+    enum_ops_get_hll_global_p_p_s          = 1169,
+    enum_ops_get_hll_global_p_pc_s         = 1170,
+    enum_ops_get_hll_global_p_p_sc         = 1171,
+    enum_ops_get_hll_global_p_pc_sc        = 1172,
+    enum_ops_get_root_global_p_s           = 1173,
+    enum_ops_get_root_global_p_sc          = 1174,
+    enum_ops_get_root_global_p_p_s         = 1175,
+    enum_ops_get_root_global_p_pc_s        = 1176,
+    enum_ops_get_root_global_p_p_sc        = 1177,
+    enum_ops_get_root_global_p_pc_sc       = 1178,
+    enum_ops_set_global_s_p                = 1179,
+    enum_ops_set_global_sc_p               = 1180,
+    enum_ops_set_global_p_s_p              = 1181,
+    enum_ops_set_global_pc_s_p             = 1182,
+    enum_ops_set_global_p_sc_p             = 1183,
+    enum_ops_set_global_pc_sc_p            = 1184,
+    enum_ops_set_hll_global_s_p            = 1185,
+    enum_ops_set_hll_global_sc_p           = 1186,
+    enum_ops_set_hll_global_p_s_p          = 1187,
+    enum_ops_set_hll_global_pc_s_p         = 1188,
+    enum_ops_set_hll_global_p_sc_p         = 1189,
+    enum_ops_set_hll_global_pc_sc_p        = 1190,
+    enum_ops_set_root_global_s_p           = 1191,
+    enum_ops_set_root_global_sc_p          = 1192,
+    enum_ops_set_root_global_p_s_p         = 1193,
+    enum_ops_set_root_global_pc_s_p        = 1194,
+    enum_ops_set_root_global_p_sc_p        = 1195,
+    enum_ops_set_root_global_pc_sc_p       = 1196,
+    enum_ops_find_name_p_s                 = 1197,
+    enum_ops_find_name_p_sc                = 1198,
+    enum_ops_find_sub_not_null_p_s         = 1199,
+    enum_ops_find_sub_not_null_p_sc        = 1200,
+};
+
+
+#endif /* PARROT_OPSENUM_H_GUARD */
+
+
+/*
+ * Local variables:
+ *   c-file-style: "parrot"
+ *   buffer-read-only: t
+ * End:
+ * vim: expandtab shiftwidth=4:
+ */

Modified: branches/ucs4_encoding/include/parrot/packfile.h
==============================================================================
--- branches/ucs4_encoding/include/parrot/packfile.h	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/include/parrot/packfile.h	Mon May 24 21:18:41 2010	(r46974)
@@ -1096,7 +1096,8 @@
 size_t PF_size_string(ARGIN(const STRING *s))
         __attribute__nonnull__(1);
 
-PARROT_PURE_FUNCTION
+PARROT_CONST_FUNCTION
+PARROT_WARN_UNUSED_RESULT
 size_t PF_size_strlen(const UINTVAL len);
 
 PARROT_WARN_UNUSED_RESULT

Modified: branches/ucs4_encoding/include/parrot/pmc.h
==============================================================================
--- branches/ucs4_encoding/include/parrot/pmc.h	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/include/parrot/pmc.h	Mon May 24 21:18:41 2010	(r46974)
@@ -53,6 +53,7 @@
         __attribute__nonnull__(1);
 
 PARROT_EXPORT
+PARROT_PURE_FUNCTION
 PARROT_WARN_UNUSED_RESULT
 PARROT_HOT
 INTVAL Parrot_pmc_is_null(SHIM_INTERP, ARGIN_NULLOK(const PMC *pmc));
@@ -84,6 +85,7 @@
 
 PARROT_EXPORT
 PARROT_CANNOT_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
 PMC * Parrot_pmc_new_constant_noinit(PARROT_INTERP, INTVAL base_type)
         __attribute__nonnull__(1);
 

Modified: branches/ucs4_encoding/include/parrot/runcore_trace.h
==============================================================================
--- branches/ucs4_encoding/include/parrot/runcore_trace.h	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/include/parrot/runcore_trace.h	Mon May 24 21:18:41 2010	(r46974)
@@ -18,10 +18,6 @@
 /* HEADERIZER BEGIN: src/runcore/trace.c */
 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
 
-PARROT_CANNOT_RETURN_NULL
-Interp * debugger_or_interp(PARROT_INTERP)
-        __attribute__nonnull__(1);
-
 int trace_key_dump(PARROT_INTERP, ARGIN(PMC *key))
         __attribute__nonnull__(1)
         __attribute__nonnull__(2);
@@ -44,8 +40,6 @@
 void trace_pmc_dump(PARROT_INTERP, ARGIN_NULLOK(PMC *pmc))
         __attribute__nonnull__(1);
 
-#define ASSERT_ARGS_debugger_or_interp __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp))
 #define ASSERT_ARGS_trace_key_dump __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
     , PARROT_ASSERT_ARG(key))

Modified: branches/ucs4_encoding/include/parrot/string_funcs.h
==============================================================================
--- branches/ucs4_encoding/include/parrot/string_funcs.h	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/include/parrot/string_funcs.h	Mon May 24 21:18:41 2010	(r46974)
@@ -235,6 +235,7 @@
         __attribute__nonnull__(3);
 
 PARROT_EXPORT
+PARROT_PURE_FUNCTION
 PARROT_WARN_UNUSED_RESULT
 INTVAL Parrot_str_length(SHIM_INTERP, ARGIN_NULLOK(const STRING *s));
 

Modified: branches/ucs4_encoding/lib/Parrot/Configure/Options/Test/Prepare.pm
==============================================================================
--- branches/ucs4_encoding/lib/Parrot/Configure/Options/Test/Prepare.pm	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/lib/Parrot/Configure/Options/Test/Prepare.pm	Mon May 24 21:18:41 2010	(r46974)
@@ -161,8 +161,6 @@
 
     t/postconfigure/
     t/tools/pmc2cutils/
-    t/tools/ops2cutils/
-    t/tools/ops2pm/
     t/pharness/
 
 =back

Modified: branches/ucs4_encoding/lib/Parrot/Distribution.pm
==============================================================================
--- branches/ucs4_encoding/lib/Parrot/Distribution.pm	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/lib/Parrot/Distribution.pm	Mon May 24 21:18:41 2010	(r46974)
@@ -430,7 +430,11 @@
             compilers/pirc/macro/macroparser.h
             include/parrot/config.h
             include/parrot/has_header.h
+            include/parrot/oplib/core_ops.h
+            include/parrot/oplib/ops.h
+            include/parrot/opsenum.h
             src/gc/malloc.c
+            src/ops/core_ops.c
             } unless @exemptions;
 
         my $path = -f $file ? $file : $file->path;

Modified: branches/ucs4_encoding/lib/Parrot/Docs/Section/Ops.pm
==============================================================================
--- branches/ucs4_encoding/lib/Parrot/Docs/Section/Ops.pm	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/lib/Parrot/Docs/Section/Ops.pm	Mon May 24 21:18:41 2010	(r46974)
@@ -53,12 +53,6 @@
         'Opcodes',
         'ops.html',
         '',
-        $self->new_group(
-            'Tools',
-            '',
-            $self->new_item( '', 'tools/build/ops2c.pl' ),
-            $self->new_item( '', 'tools/build/ops2pm.pl' ),
-        ),
         $self->new_group( 'Opcode Libraries', '', @core_ops ),
         $self->new_group( 'Dynamic Opcode Libraries', '', @dynamic_ops ),
     );

Modified: branches/ucs4_encoding/lib/Parrot/Docs/Section/Tools.pm
==============================================================================
--- branches/ucs4_encoding/lib/Parrot/Docs/Section/Tools.pm	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/lib/Parrot/Docs/Section/Tools.pm	Mon May 24 21:18:41 2010	(r46974)
@@ -53,8 +53,6 @@
             '',
             $self->new_item( '', 'docs/configuration.pod' ),
             $self->new_item( '', 'tools/build/c2str.pl' ),
-            $self->new_item( '', 'tools/build/ops2c.pl' ),
-            $self->new_item( '', 'tools/build/ops2pm.pl' ),
             $self->new_item( '', 'tools/build/parrot_config_c.pl' ),
             $self->new_item( '', 'tools/build/pmc2c.pl' ),
             $self->new_item( '', 'tools/dev/install_files.pl' ),

Modified: branches/ucs4_encoding/lib/Parrot/Harness/DefaultTests.pm
==============================================================================
--- branches/ucs4_encoding/lib/Parrot/Harness/DefaultTests.pm	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/lib/Parrot/Harness/DefaultTests.pm	Mon May 24 21:18:41 2010	(r46974)
@@ -66,7 +66,6 @@
     t/oo/*.t
     t/native_pbc/*.t
     t/dynpmc/*.t
-    t/dynoplibs/*.t
 );
 
 # core tests are run unless --runcore-tests is present.  Typically
@@ -85,7 +84,9 @@
     t/compilers/pge/p5regex/*.t
     t/compilers/pge/perl6regex/*.t
     t/compilers/tge/*.t
+    t/compilers/opsc/*.t
     t/compilers/data_json/*.t
+    t/dynoplibs/*.t
     t/library/*.t
     t/tools/*.t
     t/profiling/*.t

Deleted: branches/ucs4_encoding/lib/Parrot/Op.pm
==============================================================================
--- branches/ucs4_encoding/lib/Parrot/Op.pm	Mon May 24 21:18:41 2010	(r46973)
+++ /dev/null	00:00:00 1970	(deleted)
@@ -1,423 +0,0 @@
-#! perl
-# Copyright (C) 2001-2009, Parrot Foundation.
-# $Id$
-
-=head1 NAME
-
-Parrot::Op - Parrot Operation
-
-=head1 SYNOPSIS
-
-  use Parrot::Op;
-
-=head1 DESCRIPTION
-
-C<Parrot::Op> represents a Parrot operation (op, for short), as read
-from an ops file via C<Parrot::OpsFile>, or perhaps even generated by
-some other means. It is the Perl equivalent of the C<op_info_t> C
-C<struct> defined in F<include/parrot/op.h>.
-
-=head2 Op Type
-
-Ops are either I<auto> or I<manual>. Manual ops are responsible for
-having explicit next-op C<RETURN()> statements, while auto ops can count
-on an automatically generated next-op to be appended to the op body.
-
-Note that F<tools/build/ops2c.pl> supplies either 'inline' or 'function'
-as the op's type, depending on whether the C<inline> keyword is present
-in the op definition. This has the effect of causing all ops to be
-considered manual.
-
-=head2 Op Arguments
-
-Note that argument 0 is considered to be the op itself, with arguments
-1..9 being the arguments passed to the op.
-
-Op argument direction and type are represented by short one or two letter
-descriptors.
-
-Op Direction:
-
-    i   The argument is incoming
-    o   The argument is outgoing
-    io  The argument is both incoming and outgoing
-
-Op Type:
-
-    i   The argument is an integer register index.
-    n   The argument is a number register index.
-    p   The argument is a PMC register index.
-    s   The argument is a string register index.
-    ic  The argument is an integer constant (in-line).
-    nc  The argument is a number constant index.
-    pc  The argument is a PMC constant index.
-    sc  The argument is a string constant index.
-    kc  The argument is a key constant index.
-    ki  The argument is a key integer register index.
-    kic  The argument is a key integer constant (in-line).
-
-=head2 Class Methods
-
-=over 4
-
-=cut
-
-package Parrot::Op;
-
-use strict;
-use warnings;
-
-=item C<new($code, $type, $name, $args, $argdirs, $labels, $flags)>
-
-Allocates a new bodyless op. A body must be provided eventually for the
-op to be usable.
-
-C<$code> is the integer identifier for the op.
-
-C<$type> is the type of op (see the note on op types above).
-
-C<$name> is the name of the op.
-
-C<$args> is a reference to an array of argument type descriptors.
-
-C<$argdirs> is a reference to an array of argument direction
-descriptors. Element I<x> is the direction of argument C<< $args->[I<x>]
->>.
-
-C<$labels> is a reference to an array of boolean values indicating
-whether each argument direction was prefixed by 'C<label>'.
-
-C<$flags> is a hash reference containing zero or more I<hints> or
-I<directives>.
-
-=cut
-
-sub new {
-    my $class = shift;
-    my ( $code, $type, $name, $args, $argdirs, $labels, $flags ) = @_;
-
-    my $self = {
-        CODE    => $code,
-        TYPE    => $type,
-        NAME    => $name,
-        ARGS    => [@$args],
-        ARGDIRS => [@$argdirs],
-        LABELS  => [@$labels],
-        FLAGS   => $flags,
-        BODY    => '',
-        JUMP    => 0,
-    };
-
-    return bless $self, $class;
-}
-
-=back
-
-=head2 Instance Methods
-
-=over 4
-
-=item C<code()>
-
-Returns the op code.
-
-=cut
-
-sub code {
-    my $self = shift;
-
-    return $self->{CODE};
-}
-
-=item C<type()>
-
-The type of the op, either 'inline' or 'function'.
-
-=cut
-
-sub type {
-    my $self = shift;
-
-    return $self->{TYPE};
-}
-
-=item C<name()>
-
-The (short or root) name of the op.
-
-=cut
-
-sub name {
-    my $self = shift;
-
-    return $self->{NAME};
-}
-
-=item C<full_name()>
-
-For argumentless ops, it's the same as C<name()>. For ops with
-arguments, an underscore followed by underscore-separated argument types
-are appended to the name.
-
-=cut
-
-sub full_name {
-    my $self      = shift;
-    my $name      = $self->name;
-    my @arg_types = $self->arg_types;
-
-    $name .= "_" . join( "_", @arg_types ) if @arg_types;
-
-    return $name;
-}
-
-=item C<func_name()>
-
-The same as C<full_name()>, but with 'C<Parrot_>' prefixed.
-
-=cut
-
-sub func_name {
-    my ( $self, $trans ) = @_;
-
-    return $trans->prefix . $self->full_name;
-}
-
-=item C<arg_types()>
-
-Returns the types of the op's arguments.
-
-=cut
-
-sub arg_types {
-    my $self = shift;
-
-    return @{ $self->{ARGS} };
-}
-
-=item C<arg_type($index)>
-
-Returns the type of the op's argument at C<$index>.
-
-=cut
-
-sub arg_type {
-    my $self = shift;
-
-    return $self->{ARGS}[shift];
-}
-
-=item C<arg_dirs()>
-
-Returns the directions of the op's arguments.
-
-=cut
-
-sub arg_dirs {
-    my $self = shift;
-
-    return @{ $self->{ARGDIRS} };
-}
-
-=item C<labels()>
-
-Returns the labels.
-
-=cut
-
-sub labels {
-    my $self = shift;
-
-    return @{ $self->{LABELS} };
-}
-
-=item C<flags(@flags)>
-
-=item C<flags()>
-
-Sets/gets the op's flags.  This returns a hash reference, whose keys are any
-flags (passed as ":flag") specified for the op.
-
-=cut
-
-sub flags {
-    my $self = shift;
-
-    if (@_) {
-        $self->{FLAGS} = shift;
-    }
-
-    return $self->{FLAGS};
-}
-
-=item C<arg_dir($index)>
-
-Returns the direction of the op's argument at C<$index>.
-
-=cut
-
-sub arg_dir {
-    my $self = shift;
-
-    return $self->{ARGDIRS}[shift];
-}
-
-=item C<body($body)>
-
-=item C<body()>
-
-Sets/gets the op's code body.
-
-=cut
-
-sub body {
-    my $self = shift;
-
-    if (@_) {
-        $self->{BODY} = shift;
-    }
-
-    return $self->{BODY};
-}
-
-=item C<jump($jump)>
-
-=item C<jump()>
-
-Sets/gets a string containing one or more C<op_jump_t> values joined with
-C<|> (see F<include/parrot/op.h>). This indicates if and how an op
-may jump.
-
-=cut
-
-sub jump {
-    my $self = shift;
-
-    if (@_) {
-        $self->{JUMP} = shift;
-    }
-
-    return $self->{JUMP};
-}
-
-# Called from rewrite_body() to perform the actual substitutions.
-sub _substitute {
-    my $self           = shift;
-    local $_           = shift;
-    my $trans          = shift;
-    my $preamble_only  = shift;
-
-    my $rewrote_access =
-        s/{{\@([^{]*?)}}/   $trans->access_arg($self->arg_type($1 - 1), $1, $self); /me;
-
-    die "Argument access not allowed in preamble\n"
-        if $preamble_only && $rewrote_access;
-
-    s/{{=0,=([^{]*?)}}/   $trans->restart_address($1) . "; {{=0}}"; /me;
-    s/{{=0,\+=([^{]*?)}}/ $trans->restart_offset($1)  . "; {{=0}}"; /me;
-
-    s/{{\+=([^{]*?)}}/    $trans->goto_offset($1);  /me;
-    s/{{=([^*][^{]*?)}}/  $trans->goto_address($1); /me;
-
-    s/{{\^(\d+)}}/        $1                        /me;
-    s/{{\^\+([^{]*?)}}/   $trans->expr_offset($1);  /me;
-    s/{{\^([^{]*?)}}/     $trans->expr_address($1); /me;
-
-    return $_;
-}
-
-=item C<rewrite_body($body, $trans, [$preamble])>
-
-Performs the various macro substitutions using the specified transform,
-correctly handling nested substitions, and repeating over the whole string
-until no more substitutions can be made.
-
-C<VTABLE_> macros are enforced by converting C<<< I<< x >>->vtable->I<<
-method >> >>> to C<VTABLE_I<method>>.
-
-=cut
-
-sub rewrite_body {
-    my ( $self, $body, $trans, $preamble_only ) = @_;
-
-    while (1) {
-        my $new_body = $self->_substitute( $body, $trans, !!$preamble_only );
-
-        last if $body eq $new_body;
-
-        $body = $new_body;
-    }
-
-    return $body;
-}
-
-=item C<source($trans)>
-
-Returns the L<C<body()>> of the op with substitutions made by
-C<$trans> (a subclass of C<Parrot::OpTrans>).
-
-=cut
-
-sub source {
-    my ( $self, $trans ) = @_;
-
-    my $flags = $self->flags;
-
-    if (exists($$flags{pic})
-        && !( ref($trans) eq 'Parrot::OpTrans::CGP' || ref($trans) eq 'Parrot::OpTrans::CSwitch' ) )
-    {
-        return qq{PANIC(interp, "How did you do that");\n};
-    }
-
-    my $prelude = $trans->can( 'add_body_prelude' )
-                ? $trans->add_body_prelude()
-                : '';
-
-    return $self->rewrite_body( $prelude . $self->body, $trans );
-}
-
-=item C<size()>
-
-Returns the op's number of arguments. Note that this also includes
-the op itself as one argument.
-
-=cut
-
-sub size {
-    my $self = shift;
-
-    return scalar( $self->arg_types + 1 );
-}
-
-=back
-
-=head1 SEE ALSO
-
-=over 4
-
-=item C<Parrot::OpsFile>
-
-=item C<Parrot::OpTrans>
-
-=item F<tools/build/ops2c.pl>
-
-=item F<tools/build/ops2pm.pl>
-
-=item F<tools/build/pbc2c.pl>
-
-=back
-
-=head1 HISTORY
-
-Author: Gregor N. Purdy E<lt>gregor at focusresearch.comE<gt>
-
-=cut
-
-1;
-
-# Local Variables:
-#   mode: cperl
-#   cperl-indent-level: 4
-#   fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4:

Deleted: branches/ucs4_encoding/lib/Parrot/OpTrans.pm
==============================================================================
--- branches/ucs4_encoding/lib/Parrot/OpTrans.pm	Mon May 24 21:18:41 2010	(r46973)
+++ /dev/null	00:00:00 1970	(deleted)
@@ -1,225 +0,0 @@
-# Copyright (C) 2002-2007, Parrot Foundation.
-# $Id$
-
-=head1 NAME
-
-Parrot::OpTrans - Transform Ops to C Code
-
-=head1 DESCRIPTION
-
-C<Parrot::OpTrans> is the abstract superclass for the Parrot op to C
-transforms. Each transform contains various bits of information needed
-to generate the C code, and creates a different type of run loop. The
-methods defined here supply various default values and behaviour common
-to all transforms.
-
-The subclass hierarchy is as follows:
-
-    OpTrans
-       |
-       |
-       C
-
-=head2 Class Methods
-
-=over 4
-
-=cut
-
-package Parrot::OpTrans;
-
-use strict;
-use warnings;
-
-=item C<new()>
-
-Returns a new instance.
-
-=cut
-
-sub new {
-    return bless {}, shift;
-}
-
-=back
-
-=head2 Instance Methods
-
-=over 4
-
-=item C<prefix()>
-
-Returns the default 'C<Parrot_>' prefix.
-
-Used by C<Parrot::Op>'s C<func_name()> to individuate op function names.
-
-=cut
-
-sub prefix {
-    return 'Parrot_';
-}
-
-=item C<suffix()>
-
-Implemented in subclasses to return a suffix with which to individuate
-variable names. This default implementation returns an empty string.
-
-=cut
-
-sub suffix {
-    return '';
-}
-
-=item C<core_type()>
-
-Implemented in subclasses to return the type of core created by the
-transform. This default implementation raises an exception indicating
-that the core type is missing. See the C<Parrot_Run_core_t> C<enum> in
-F<include/parrot/interpreter.h> for a list of the core types.
-
-=cut
-
-sub core_type {
-    my $self = shift;
-
-    die ref($self) . " doesn't have core_type()";
-}
-
-=item C<run_core_func_decl($base)>
-
-Optionally implemented in subclasses to return the C code for the run
-core function declaration. C<$base> is the name of the main ops file minus
-the .ops extension.
-
-=item C<ops_addr_decl($base_suffix)>
-
-Optionally implemented in subclasses to return the C code for the ops
-address declaration. C<$base_suffix> is the name of the main ops file minus
-the .ops extension with C<suffix()> and an underscore appended.
-
-=item C<run_core_func_decl($base)>
-
-Optionally implemented in subclasses to return the C code for the run
-core function declaration. C<$base> is the same as for
-C<run_core_func_decl()>.
-
-=item C<run_core_func_start()>
-
-Implemented in subclasses, if C<run_core_func_decl()> is implemented, to
-return the C code prior to the run core function.
-
-=item C<run_core_after_addr_table($base_suffix)>
-
-Optionally implemented in subclasses to return the run core C code for
-section after the address table. C<$base_suffix> is the same as for
-C<ops_addr_decl()>.
-
-=item C<run_core_finish($base)>
-
-Implemented in subclasses to return the C code following the run core
-function. C<$base> is the same as for C<run_core_func_decl()>.
-
-=item C<init_func_init1($base)>
-
-Optionally implemented in subclasses to return the C code for the core's
-init function. C<$base> is the same as for C<run_core_func_decl()>.
-
-=item C<init_set_dispatch($base_suffix)>
-
-Optionally implemented in subclasses to return the C code for
-initializing the dispatch mechanism within the core's init function.
-C<$base_suffix> is the same as for C<ops_addr_decl()>.
-
-=back
-
-B<Macro Substitutions>
-
-The following methods are called by C<Parrot::OpFile> to perform ops
-file macro substitutions.
-
-=over
-
-=item C<access_arg($type, $value, $op)>
-
-Implemented in subclasses to return the C code for the specified op
-argument type and value. C<$op> is an instance of C<Parrot::Op>.
-
-=item C<gen_goto($where)>
-
-The various C<goto_I<X>> methods below call this method with the return
-value of an C<expr_I<X>> method (implemented in subclass).
-
-=cut
-
-sub gen_goto {
-    my ( $self, $where_str ) = @_;
-
-    return "return $where_str";
-}
-
-=item C<restart_address($address)>
-
-Implemented in subclasses to return the C code for C<restart
-ADDRESS($address)>.
-
-=item C<restart_offset($offset)>
-
-Implemented in subclasses to return the C code for C<restart
-OFFSET($offset)>.
-
-=item C<goto_address($address)>
-
-Transforms the C<goto ADDRESS($address)> macro in an ops file into the
-relevant C code.
-
-=cut
-
-sub goto_address {
-    my $self = shift;
-
-    return $self->gen_goto( $self->expr_address(@_) );
-}
-
-=item C<goto_offset($offset)>
-
-Transforms the C<goto OFFSET($offset)> macro in an ops file into the
-relevant C code.
-
-=cut
-
-sub goto_offset {
-    my $self = shift;
-
-    return $self->gen_goto( $self->expr_offset(@_) );
-}
-
-=item C<expr_offset($offset)>
-
-Implemented in subclasses to return the C code for C<OFFSET($offset)>.
-Called by C<goto_offset()>.
-
-=item C<expr_address($address)>
-
-Implemented in subclasses to return the C code for C<ADDRESS($address)>.
-Called by C<goto_address()>.
-
-=back
-
-=head1 SEE ALSO
-
-=over 4
-
-=item C<Parrot::OpTrans::C>
-
-=back
-
-=cut
-
-1;
-
-# Local Variables:
-#   mode: cperl
-#   cperl-indent-level: 4
-#   fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4:

Deleted: branches/ucs4_encoding/lib/Parrot/Ops2pm.pm
==============================================================================
--- branches/ucs4_encoding/lib/Parrot/Ops2pm.pm	Mon May 24 21:18:41 2010	(r46973)
+++ /dev/null	00:00:00 1970	(deleted)
@@ -1,537 +0,0 @@
-# Copyright (C) 2007, Parrot Foundation.
-# $Id$
-package Parrot::Ops2pm;
-use strict;
-use warnings;
-use Cwd;
-use Data::Dumper ();
-use File::Path ();
-use File::Spec;
-use lib qw ( lib );
-use base qw( Parrot::Ops2pm::Base );
-use Parrot::OpsFile;
-
-=head1 NAME
-
-Parrot::Ops2pm - Methods holding functionality for F<tools/build/ops2pm.pl>.
-
-=head1 SYNOPSIS
-
-    use Parrot::Ops2pm;
-
-    $self = Parrot::Ops2pm->new( {
-        argv            => [ @ARGV ],
-        nolines         => $nolines_flag,
-        moddir          => "lib/Parrot/OpLib",
-        module          => "core.pm",
-        inc_dir         => "include/parrot/oplib",
-        inc_f           => "ops.h",
-        script          => "tools/build/ops2pm.pl",
-    } );
-
-    $self->prepare_ops();
-    $self->load_op_map_files();
-    $self->sort_ops();
-    $self->prepare_real_ops();
-    $self->print_module();
-    $self->print_h();
-    exit 0;
-
-=cut
-
-=head1 DESCRIPTION
-
-Parrot::Ops2pm provides methods called by F<tools/build/ops2pm.pl>, a
-program which is called at the very beginning of the Parrot F<make> process.
-The program's function is to build two files:
-
-=over 4
-
-=item * F<lib/Parrot/OpLib/core.pm>
-
-=item * F<include/parrot/oplib/ops.h>
-
-=back
-
-The functionality once (pre-April 2007) found in F<tools/build/ops2pm.pl> has
-been extracted into this package's methods in order to support
-component-focused testing and future refactoring.
-
-=head1 METHODS
-
-=head2 C<new()>
-
-Inherited from Parrot::Ops2pm::Base and documented in
-F<lib/Parrot/Ops2pm/Base.pm>.
-
-=head2 C<prepare_ops()>
-
-Inherited from Parrot::Ops2pm::Base and documented in
-F<lib/Parrot/Ops2pm/Base.pm>.
-
-=head2 C<load_op_map_files()>
-
-=over 4
-
-=item * Purpose
-
-When F<tools/build/ops2pm.pl> is called by F<make>, this method
-checks the number of ops strictly against F<src/ops/ops.num> and
-F<src/ops/ops.skip>.
-
-=item * Arguments
-
-None.  (Implicitly requires that the C<argv> and C<script> keys
-have been provided to the constructor.)
-
-=item * Return Value and Side Effects
-
-Returns true value upon success.  Internally, sets these
-values in these elements in the object's data structure:
-
-=over 4
-
-=item * C<max_op_num>
-
-Scalar holding number of highest non-experimental op.  Example:
-
-    'max_op_num' => 1246,
-
-=item * C<optable>
-
-Reference to hash holding mapping of opcode names ops to their numbers.
-Example:
-
-  'optable' => {
-    'pow_p_p_i' => 650,
-    'say_s' => 463,
-    'lsr_p_p_i' => 207,
-    'lt_s_sc_ic' => 289,
-    # ...
-    'debug_init' => 429,
-    'iseq_i_nc_n' => 397,
-    'eq_addr_sc_s_ic' => 254
-  },
-
-Per F<src/ops/ops.num>, this mapping exists so that we can nail down
-the op numbers for the core opcodes in a particular version of the
-bytecode and provide backward-compatibility for bytecode.
-
-=item * C<skiptable>
-
-Reference to a 'seen-hash' of skipped opcodes.
-
-  'skiptable' => {
-    'bor_i_ic_ic' => 1,
-    'xor_i_ic_ic' => 1,
-    'tanh_n_nc' => 1,
-    # ...
-  },
-
-As F<src/ops/ops.skip> states, these are "... opcodes that could be listed in
-F<[src/ops/]ops.num> but aren't ever to be generated or implemented because
-they are useless and/or silly."
-
-=back
-
-=back
-
-=cut
-
-sub load_op_map_files {
-    my $self      = shift;
-    my $num_file  = $self->{num_file};
-    my $skip_file = $self->{skip_file};
-
-    my ( $op, $name, $number, $prev );
-
-    $self->{max_op_num} ||= 0;
-
-    open $op, '<', $num_file
-        or die "Can't open $num_file: $!";
-    $prev = -1;
-    while (<$op>) {
-        chomp;
-        s/#.*$//;
-        s/\s*$//;
-        s/^\s*//;
-        next unless $_;
-        ( $name, $number ) = split( /\s+/, $_ );
-        if ( $prev + 1 != $number ) {
-            die "hole in ops.num before #$number";
-        }
-        if ( exists $self->{optable}{$name} ) {
-            die "duplicate opcode $name and $number";
-        }
-        $prev = $number;
-        $self->{optable}{$name} = $number;
-        if ( $number > $self->{max_op_num} ) {
-            $self->{max_op_num} = $number;
-        }
-    }
-    undef $op;
-
-    open $op, '<', $skip_file
-        or die "Can't open $skip_file: $!";
-    while (<$op>) {
-        chomp;
-        s/#.*$//;
-        s/\s*$//;
-        s/^\s*//;
-        next unless $_;
-        ($name) = split( /\s+/, $_ );
-        if ( exists $self->{optable}{$name} ) {
-            die "skipped opcode is also in $num_file:$.";
-        }
-        $self->{skiptable}{$name} = 1;
-    }
-    undef $op;
-    return 1;
-}
-
-=head2 C<sort_ops()>
-
-=over 4
-
-=item * Purpose
-
-Internal manipulation of the Parrot::Ops2pm object: sorting by number of the
-list of op codes found in the object's C<{ops}-E<gt>{OPS}> element.
-
-=item * Arguments
-
-None.
-
-=item * Return Value and Side Effects
-
-No return value.  Internally, re-sets the C<ops> key of the object's data
-structure.
-
-=item * Comment
-
-It is at this point that warnings about experimental opcodes will be
-emitted if you are working in a checkout from the Parrot repository.  Example:
-
-    trap                      1247       experimental, not in ops.num
-
-=back
-
-=cut
-
-sub sort_ops {
-    my $self = shift;
-    for my $el ( @{ $self->{ops}{OPS} } ) {
-        if ( exists $self->{optable}{ $el->full_name } ) {
-            $el->{CODE} = $self->{optable}{ $el->full_name };
-        }
-        elsif ( exists $self->{skiptable}{ $el->full_name } ) {
-            $el->{CODE} = -1;
-        }
-        elsif ( $el->{experimental} ) {
-            my $n = $self->{optable}{ $el->full_name } = ++$self->{max_op_num};
-            warn sprintf(
-                "%-25s %-10s experimental, not in ops.num\n",
-                $el->full_name, $n
-            ) if -e "DEVELOPING";
-            $el->{CODE} = $n;
-        }
-        else {
-            die sprintf(
-                "%-25s %-10s FATAL: not in ops.num nor ops.skip\n",
-                $el->full_name, ""
-            ) if -e "DEVELOPING";
-            $el->{CODE} = -1;
-        }
-    }
-    @{ $self->{ops}{OPS} } =
-        sort { $a->{CODE} <=> $b->{CODE} } ( @{ $self->{ops}{OPS} } );
-}
-
-=head2 C<prepare_real_ops()>
-
-=over 4
-
-=item * Purpose
-
-Final stage of preparation of ops.
-
-=item * Arguments
-
-None.  (Same implicit requirements for the constructor as
-C<load_op_map_files()> above.)
-
-=item * Return Value and Side Effects
-
-No return value.  Internally, adds the C<real_ops> key of the object's
-data structure.  Its value is a Parrot::OpsFile object.
-
-=back
-
-=cut
-
-sub prepare_real_ops {
-    my $self = shift;
-
-    my $real_ops = Parrot::OpsFile->new( [], $self->{nolines} );
-    $real_ops->{PREAMBLE} = $self->{ops}{PREAMBLE};
-    $real_ops->version( $self->{ops}->version );
-
-    # verify opcode numbers
-    my $seq = 0;
-    for my $el ( @{ $self->{ops}{OPS} } ) {
-        next if $el->{CODE} < 0;    # skip
-        my $opname = $el->full_name;
-        my $n      = $self->{optable}{$opname};    # former global
-        if ( $n != $el->{CODE} ) {
-            die "op $opname: number mismatch: ops.num $n vs. core.ops $el->{CODE}";
-        }
-        if ( $seq != $el->{CODE} ) {
-            die "op $opname: sequence mismatch: ops.num $seq vs. core.ops $el->{CODE}";
-        }
-        push @{ $real_ops->{OPS} }, $el;
-        ++$seq;
-    }
-    $self->{real_ops} = $real_ops;
-}
-
-=head2 C<print_module()>
-
-=over 4
-
-=item * Purpose
-
-Uses information in the object's data structure -- principally
-the C<real_ops> element -- to create F<lib/Parrot/OpLib/core.pm>.
-
-=item * Arguments
-
-None.  (Implicitly requires that the constructor have the
-following keys defined:  C<argv>, C<script>, C<moddir> and C<module>.)
-
-=item * Return Value
-
-Returns true value upon success.
-
-=item * Comment
-
-=back
-
-=cut
-
-sub print_module {
-    my $self    = shift;
-    my $cwd     = cwd();
-    my $fulldir = File::Spec->catdir( $cwd, $self->{moddir} );
-    if ( !-d $fulldir ) {
-        if ( !File::Path::mkpath( [ $fulldir ], 0, 0755 ) ) {
-            -d $fulldir
-                or die "$self->{script}: Could not mkdir $fulldir: $!!\n";
-        }
-    }
-    my $fullpath = File::Spec->catfile( ($fulldir), $self->{module} );
-    open my $MODULE, '>', $fullpath
-        or die "$self->{script}: Could not open module file '$fullpath' for writing: $!!\n";
-
-    my $version = $self->{real_ops}->version();
-    ( my $pod = <<"END_POD") =~ s/^    //osmg;
-    =head1 NAME
-
-    Parrot::OpLib::core - Parrot Op Info
-
-    =head1 DESCRIPTION
-
-    This is an autogenerated file, created by F<$self->{script}>.
-
-    It contains Parrot version info, a preamble for inclusion in C code,
-    and an array of C<Parrot::Op> instances representing the Parrot ops.
-
-    =cut
-END_POD
-
-    my $preamble = <<END_C;
-#! perl -w
-#
-# !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
-#
-# This file is generated automatically from '$self->{file}'.
-# Any changes made here will be lost!
-#
-
-$pod
-
-use strict;
-
-package Parrot::OpLib::core;
-
-use vars qw(\$VERSION \$ops \$preamble);
-
-\$VERSION = "$version";
-
-END_C
-
-    print {$MODULE} $preamble;
-    print {$MODULE} Data::Dumper->Dump( [ $self->{real_ops}->preamble, [ $self->{real_ops}->ops ] ],
-        [qw($preamble $ops)] );
-
-    print {$MODULE} <<END_C;
-
-1;
-END_C
-
-    close $MODULE or die;
-
-    return 1;
-}
-
-=head2 C<print_h()>
-
-=over 4
-
-=item * Purpose
-
-Uses information in the object's data structure -- principally
-the C<real_ops> key -- to create F<include/parrot/oplib/ops.h>.
-
-=item * Arguments
-
-None.  (Implicitly requires that the constructor have the
-following keys defined:  C<argv>, C<script>, C<inc_dir> and C<inc_f>.)
-
-=item * Return Value
-
-Returns true value upon success.
-
-=item * Comment
-
-=back
-
-=cut
-
-sub print_h {
-    my $self    = shift;
-    my $cwd     = cwd();
-    my $fulldir = File::Spec->catdir( $cwd, $self->{inc_dir} );
-    if ( !-d $fulldir ) {
-        if ( !File::Path::mkpath( [ $fulldir ], 0, 0755 ) ) {
-            -d $fulldir
-                or die "$self->{script}: Could not mkdir $fulldir: $!!\n";
-        }
-    }
-
-    my $fullpath = File::Spec->catfile( ($fulldir), $self->{inc_f} );
-    open my $OUT, '>', $fullpath
-        or die "$self->{script}: Could not open module file '$fullpath' for writing: $!!\n";
-
-    print $OUT <<END_C;
-/* ex: set ro:
- * !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
- *
- * This file is generated automatically from '$self->{file}'
- * by $self->{script}.
- *
- * Any changes made here will be lost!
- */
-
-#ifndef PARROT_OPS_H_GUARD
-#define PARROT_OPS_H_GUARD
-
-typedef enum {
-END_C
-
-    my @OPS = @{ $self->{real_ops}->{OPS} };
-    for my $el (@OPS) {
-        my $opname = $el->full_name;
-        my $n      = $el->{CODE};
-        my $comma  = $n < @OPS - 1 ? "," : "";
-        $opname = "PARROT_OP_$opname$comma";
-
-        printf $OUT "    %-30s\t/* %4d */\n", $opname, $n;
-    }
-
-    print $OUT <<END_C;
-} parrot_opcode_enums;
-
-#endif /* PARROT_OPS_H_GUARD */
-
-END_C
-
-    # append the C code coda
-    print $OUT <<END_C;
-/*
- * Local variables:
- *   c-file-style: "parrot"
- * End:
- * vim: expandtab shiftwidth=4:
- */
-END_C
-    close $OUT;
-    return 1;
-}
-
-=head1 NOTE ON TESTING
-
-A suite of test files to accompany this package is found in
-F<t/tools/ops2pm>.  This suite has been developed to maximize its
-coverage of the code of Parrot::Ops2pm (as measured by Perl module
-Devel::Cover).  Should you wish to refactor this package, it is recommended
-that you do so in a B<test-driven> manner:
-
-=over 4
-
-=item 1
-
-Write the specification for any additions or modifications to
-Parrot::Ops2pm' interface.
-
-=item 2
-
-Write tests that reflect any such modifications.
-
-=item 3
-
-Write the additional or modified code that reflects the new specification.
-
-=item 4
-
-Test the new code and debug.  The tests in the suite should be run B<after>
-Parrot's F<Configure.pl> has run but B<before> F<make> has run.  Example:
-
-    $> perl Configure.pl
-    $> prove -v t/tools/ops2pm/*.t
-    $> make
-
-=item 5
-
-Use Devel::Cover to measure the extent to which the existing and new tests
-cover the existing and revised code.
-
-=item 6
-
-Refactor and retest to ensure high test coverage.
-
-=back
-
-This package's methods are called by F<tools/build/ops2pm.pl>, which in turn
-is invoked by F<make> in the Parrot build process.  Successful execution of
-F<make> proves that the functionality in this package achieved its overall
-objective but does not necessarily invoke many of the individual code
-statements in the package.  That is the rationale for the component-focused
-testing provided by the test suite.
-
-=head1 AUTHOR
-
-See F<tools/build/ops2pm.pl> for a list of the Parrot hackers who, over a
-period of several years, developed the functionality now found in the methods
-of Parrot::Ops2pm.  Jim Keenan extracted that functionality and placed
-it in this package's methods.
-
-=cut
-
-1;
-
-# Local Variables:
-#   mode: cperl
-#   cperl-indent-level: 4
-#   fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4:

Deleted: branches/ucs4_encoding/lib/Parrot/OpsFile.pm
==============================================================================
--- branches/ucs4_encoding/lib/Parrot/OpsFile.pm	Mon May 24 21:18:41 2010	(r46973)
+++ /dev/null	00:00:00 1970	(deleted)
@@ -1,750 +0,0 @@
-#! perl
-# Copyright (C) 2001-2009, Parrot Foundation.
-# $Id$
-
-=head1 NAME
-
-Parrot::OpsFile - Ops To C Code Generation
-
-=head1 SYNOPSIS
-
-  use Parrot::OpsFile;
-
-=head1 DESCRIPTION
-
-C<Parrot::OpsFile> takes one or more files of op functions and
-creates real C code for them.
-
-This class is used by F<tools/build/ops2c.pl>,
-F<tools/build/ops2pm.pl> and F<tools/build/pbc2c.pl>.
-
-=head2 Op Functions
-
-For ops that have trivial bodies (such as just a call to some other
-function and a C<return> statement), opcode functions are in the format:
-
-    inline op opname (args) :flags {
-        ... body of function ...
-    }
-
-Note that currently the C<inline> op type is ignored.
-
-Alternately, for opcode functions that have more internal complexity the
-format is:
-
-    op opname (args) :flags {
-        ... body of function ...
-    }
-
-There may be more than one C<return>.
-
-In both cases the closing brace B<must> be on its own line.
-
-When specifying multiple flags, each flag gets its own prefixing colon.
-
-=head2 Op Arguments
-
-Op arguments are a comma-separated list of direction and type pairs.
-
-Argument direction is one of:
-
-    in            the argument passes a value into the op
-    out           the argument passes a value out of the op
-    inout         the argument passes a value into and out of the op
-    inconst       the argument passes a constant value into the op
-    invar         the argument passes a variable value into the op
-
-Argument direction is used to determine the life times of symbols and
-their related register allocations. When an argument is passed into an
-op a register is read from, when it's passed out of an op a register is
-written to.
-
-Argument type is one of:
-
-    INT       the argument is an integer
-    NUM       the argument is an numeric
-    STR       the argument is an string
-    PMC       the argument is an PMC
-    KEY       the argument is an aggregate PMC key
-    INTKEY    the argument is an aggregate PMC integer key
-    LABEL     the argument is an integer branch offset or address
-
-The size of the return offset is determined from the op function's
-signature.
-
-=head2 Op Flags
-
-The flags are of two types:
-
-=over 4
-
-=item 1 class
-
-The classification of ops is intended to facilitate the selection of
-suitable ops for a Parrot safe mode.
-
-=item 2 behavior
-
-The presence (or absence) of certain flags will change how the op behaves. For
-example, the lack of the C<flow> flag will cause the op to be implicitly
-terminated with C<goto NEXT()>. (See next section).
-
-The :deprecated flag will generate a diagnostic to standard error at
-runtime when a deprecated opcode is invoked and
-C<PARROT_WARNINGS_DEPRECATED_FLAG> has been set.
-
-=back
-
-=head2 Op Body (Macro Substitutions)
-
-In the following macro descriptions, C<PC> and C<PC'> are the current
-and next position within the Parrot code.
-
-=over 4
-
-=item C<goto OFFSET(X)>
-
-Transforms to C<PC' = PC + X>. This is used for branches.
-
-=item C<goto NEXT()>
-
-Transforms to C<PC' = PC + S>, where C<S> is the size of an op.
-
-=item C<goto ADDRESS(X)>
-
-Transforms to C<PC' = X>. This is used for absolute jumps.
-
-=item C<expr OFFSET(X)>
-
-Transforms to C<PC + X>. This is used to give a relative address.
-
-=item C<expr NEXT()>
-
-Transforms to C<PC + S>, the position of the next op.
-
-=item C<expr ADDRESS(X)>
-
-Transforms to C<X>, an absolute address.
-
-=item C<restart OFFSET(X)>
-
-Transforms to C<PC' = 0> and restarts at C<PC + X>.
-
-=item C<restart NEXT()>
-
-Transforms to C<PC' = 0> and restarts at C<PC + S>.
-
-=item C<$n>
-
-Transforms to the op function's nth argument. C<$0> is the opcode itself.
-
-=back
-
-Note that, for ease of parsing, if the argument to one of the above
-notations in a ops file contains parentheses, then double the enclosing
-parentheses and add a space around the argument, like so:
-
-    goto OFFSET(( (void*)interp->happy_place ))
-
-=head2 Class Methods
-
-=over 4
-
-=cut
-
-package Parrot::OpsFile;
-
-use strict;
-use warnings;
-
-use base qw( Exporter );
-
-use Parrot::Op;
-use Parrot::Config;
-
-our %op_body;
-our @EXPORT = qw( %op_body );
-
-# private sub  _trim()
-#
-# Trim leading and trailing spaces.
-
-sub _trim {
-    my $value = shift;
-
-    $value =~ s/^\s+//;
-    $value =~ s/\s+$//;
-
-    return $value;
-}
-
-=item C<new(@files)>
-
-Returns a new instance initialized by calling C<read_ops()> on each of
-the specified op files.
-
-=cut
-
-sub new {
-    my ( $class, $files, $nolines ) = @_;
-
-    my $self = bless { PREAMBLE => '' }, $class;
-
-    $self->read_ops( $_, $nolines ) for @{$files};
-
-    # FILE holds a space separated list of opsfile name
-    if ( $self->{FILE} ) {
-        $self->{FILE} =~ s/, $//;
-        $self->{FILE} =~ s/, $//;
-    }
-
-    return $self;
-}
-
-=back
-
-=head2 Instance Methods
-
-=over 4
-
-=item C<read_ops($file,$nolines)>
-
-Reads in the specified .ops file, gathering information about the ops.
-
-=cut
-
-sub read_ops {
-    my ( $self, $file, $nolines ) = @_;
-
-    my $ops_file = "src/" . $file;
-
-    die "Parrot::OpFunc::init(): No file specified!\n" unless defined $file;
-
-    $self->{FILE} .= $file . ', ';
-
-    my $orig = $file;
-
-    open my $OPS, '<', $file or die "Can't open $file, $!/$^E";
-
-    $self->version( $PConfig{VERSION} );
-
-    if ( !( $file =~ s/\.ops$/.c/ ) ) {
-        $file .= ".c";
-    }
-
-    #
-    # Read through the file, creating and storing Parrot::Op objects:
-    #
-
-    my $count = 0;
-    my ( $name, $footer );
-    my $type;
-    my $body;
-    my $short_name;
-    my $args;
-    my @args;
-    my @argdirs;
-    my $seen_pod;
-    my $seen_op;
-    my $in_preamble;
-    my $line;
-    my $flags;
-    my @labels;
-
-    while (<$OPS>) {
-        $seen_pod    = 1 if m|^=|;
-        $in_preamble = 1 if s|^BEGIN_OPS_PREAMBLE||;
-
-        unless ( $seen_op or m|^(inline\s+)?op\s+| ) {
-
-            if (m|^END_OPS_PREAMBLE|) {
-                $_ = '';
-                $in_preamble = 0;
-            }
-            elsif ($in_preamble) {
-                $self->{PREAMBLE} .= $_;
-            }
-
-            next;
-        }
-
-        die "No 'VERSION = ...;' line found before beginning of ops in file '$orig'!\n"
-            unless defined $self->version;
-
-        #
-        # Handle start-of-op:
-        #
-        # We create a new Parrot::Op instance based on the type, name and args.
-        # We query the Parrot::Op for the op size, etc., which we use later.
-        #
-        # Either of these two forms work:
-        #
-        #   inline op  name (args) {
-        #   op         name (args) {
-        #
-        # The args are a comma-separated list of items from this table of argument
-        # types (even if no formal args are specified, there will be a single 'o'
-        # entry):
-        #
-        #   op   The opcode
-        #
-        #   i    Integer register index
-        #   n    Number register index
-        #   p    PMC register index
-        #   s    String register index
-        #
-        #   ic   Integer constant (in-line)
-        #   nc   Number constant index
-        #   pc   PMC constant index
-        #   sc   String constant index
-        #   kc   Key constant index
-        #   kic  Integer Key constant index (in-line)
-        #
-
-        my $op_sig_RE = qr/
-            ^
-            (inline\s+)?  # optional keywords
-            op
-            \s+
-            ([a-zA-Z]\w*) # op name
-            \s*
-            \((.*)\)      # argument signature
-            \s*
-            ((?: \:\w+\s*)*)         # :flags
-            \s*
-            {
-            $
-        /x;
-
-        if ($_ =~ $op_sig_RE) {
-            if ($seen_op) {
-                die "$ops_file [$.]: Cannot define an op within an op definition!\n";
-            }
-
-            $type       = defined($1) ? 'inline' : 'function';
-            $short_name = $2;
-            $args       = _trim( lc $3 );
-            $flags      = $4 ? _trim( lc $4 ) : "";
-            @args       = split( /\s*,\s*/, $args );
-            @argdirs    = ();
-            @labels     = ();
-            $body       = '';
-            $seen_op    = 1;
-            $line       = $. + 1;
-
-            $flags = { map { $_ => undef } (split(/[ :]+/, $flags)) };
-
-            my @temp;
-
-            for my $arg (@args) {
-                my ( $use, $type ) =
-                    $arg =~ m/^(in|out|inout|inconst|invar)
-                    \s+
-                    (INT|NUM|STR|PMC|KEY|INTKEY|LABEL)$/ix;
-
-                die "Unrecognized arg format '$arg' in '$_'!"
-                    unless defined($use) and defined($type);
-
-                # remember it's a label, then turn it to an int
-                if ( $type =~ /^LABEL$/i ) {
-                    $type = 'i';
-                    push @labels, 1;
-                }
-                else {
-                    push @labels, 0;
-                }
-
-                if ( $type =~ /^INTKEY$/i ) {
-                    $type = 'ki';
-                }
-                else {
-                    $type = lc substr( $type, 0, 1 );
-                }
-
-                if ( $use eq 'in' ) {
-                    push @temp,    "$type|${type}c";
-                    push @argdirs, 'i';
-                }
-                elsif ( $use eq 'invar' ) {
-                    push @temp,    $type;
-                    push @argdirs, 'i';
-                }
-                elsif ( $use eq 'inconst' ) {
-                    push @temp,    "${type}c";
-                    push @argdirs, 'i';
-                }
-                elsif ( $use eq 'inout' ) {
-                    push @temp,    $type;
-                    push @argdirs, 'io';
-                }
-                else {
-                    push @temp,    $type;
-                    push @argdirs, 'o';
-                }
-            }
-
-            @args = @temp;
-
-            next;
-        }
-
-        #
-        # Handle end-of-op:
-        #
-        # We stash the accumulated body of source code in the Parrot::Op, push the
-        # Parrot::Op onto our op array, and forget the op so we can start the next
-        # one.
-        #
-
-        if (/^}\s*$/) {
-            $count += $self->make_op(
-                $count, $type, $short_name, $body,  \@args, \@argdirs,
-                $line,  $orig, \@labels,    $flags, $nolines
-            );
-
-            $seen_op = 0;
-
-            next;
-        }
-
-        #
-        # Accumulate the code into the op's body:
-        #
-
-        if ($seen_op) {
-            $body .= $_;
-        }
-        else {
-            die "Parrot::OpsFile: Unrecognized line: '$_'!\n";
-        }
-    }
-
-    if ($seen_op) {
-        die "Parrot::OpsFile: File ended with incomplete op definition!\n";
-    }
-
-    close $OPS or die "Could not close ops file '$file' ($!)!";
-
-    return;
-}
-
-# Extends a string containing an or expression "0" .. "A" .. "A|B" etc.
-sub or_flag {
-    my ( $flag, $value ) = @_;
-
-    if ( $$flag eq '0' ) {
-        $$flag = $value;
-    }
-    else {
-        $$flag .= "|$value";
-    }
-}
-
-=item C<make_op($code,
-$type, $short_name, $body, $args, $argdirs, $line, $file, $labels, $flags, $nolines)>
-
-Returns a new C<Parrot::Op> instance for the specified arguments.
-
-=cut
-
-sub make_op {
-    my (
-        $self,    $code, $type, $short_name, $body,  $args,
-        $argdirs, $line, $file, $labels,     $flags, $nolines
-    ) = @_;
-    my $counter  = 0;
-    my $branch   = 0;
-    my $pop      = 0;
-
-    if (exists($$flags{deprecated})) {
-        $body = <<"END_CODE" . $body;
-INTVAL unused = PARROT_WARNINGS_test(interp,PARROT_WARNINGS_DEPRECATED_FLAG) &&
-  fprintf(stderr,"Warning: instruction '$short_name' is deprecated\\n");
-END_CODE
-}
-    unless (exists($$flags{flow})) {
-        $body .= "\ngoto NEXT();";
-    }
-
-    foreach my $variant ( expand_args(@$args) ) {
-        my (@fixedargs) = split( /,/, $variant );
-        my $op =
-            Parrot::Op->new( $code++, $type, $short_name, [@fixedargs], [@$argdirs], [@$labels],
-            $flags );
-        my $op_size = $op->size;
-        my $jumps   = "0";
-
-        #
-        # Macro substitutions:
-        #
-        # We convert the following notations:
-        #
-        #   .ops file          Op body  Meaning       Comment
-        #   -----------------  -------  ------------  ----------------------------------
-        #   goto OFFSET(X)     {{+=X}}  PC' = PC + X  Used for branches
-        #   goto NEXT()        {{+=S}}  PC' = PC + S  Where S is op size
-        #   goto ADDRESS(X)    {{=X}}   PC' = X       Used for absolute jumps
-        #   expr OFFSET(X)     {{^+X}}  PC + X        Relative address
-        #   expr NEXT()        {{^+S}}  PC + S        Where S is op size
-        #   expr ADDRESS(X)    {{^X}}   X             Absolute address
-        #
-        #   restart OFFSET(X)  {{=0,+=X}}   PC' = 0   Restarts at PC + X
-        #   restart NEXT()     {{=0,+=S}}   PC' = 0   Restarts at PC + S
-        #
-        #   $X                 {{@X}}   Argument X    $0 is opcode, $1 is first arg
-        #
-        # For ease of parsing, if the argument to one of the above
-        # notations in a .ops file contains parentheses, then double the
-        # enclosing parentheses and add a space around the argument,
-        # like so:
-        #
-        #    goto OFFSET(( (void*)interp->happy_place ))
-        #
-        # Later transformations turn the Op body notations into C code, based
-        # on the mode of operation (function calls, switch statements, gotos
-        # with labels, etc.).
-        #
-        if ($body =~ /(goto|restart)\s+OFFSET\(.*?\)/ || $short_name =~ /runinterp/) {
-            $branch = 1;
-        }
-
-        $body =~ s/\bgoto\s+ADDRESS\(\( (.*?) \)\)/{{=$1}}/mg;
-        $body =~ s/\bexpr\s+ADDRESS\(\( (.*?) \)\)/{{^$1}}/mg;
-        $body =~ s/\bgoto\s+ADDRESS\((.*?)\)/{{=$1}}/mg;
-        $body =~ s/\bexpr\s+ADDRESS\((.*?)\)/{{^$1}}/mg;
-
-        $body =~ s/\bgoto\s+OFFSET\(\( (.*?) \)\)/{{+=$1}}/mg;
-        $body =~ s/\bexpr\s+OFFSET\(\( (.*?) \)\)/{{^+$1}}/mg;
-        $body =~ s/\bgoto\s+OFFSET\((.*?)\)/{{+=$1}}/mg;
-        $body =~ s/\bexpr\s+OFFSET\((.*?)\)/{{^+$1}}/mg;
-
-        $body =~ s/\bexpr\s+NEXT\(\)/{{^+$op_size}}/mg;
-        $body =~ s/\bgoto\s+NEXT\(\)/{{+=$op_size}}/mg;
-
-        $body =~ s/\brestart\s+OFFSET\((.*?)\)/{{=0,+=$1}}/mg;
-        $body =~ s/\brestart\s+NEXT\(\)/{{=0,+=$op_size}}/mg;
-        $body =~ s/\brestart\s+ADDRESS\((.*?)\)/{{=$1}}/mg;
-
-        $body =~ s/\$(\d+)/{{\@$1}}/mg;
-
-        # We can only reference as many parameters as we declare
-        my $max_arg_num = @$args;
-        my @found_args = ($body =~ m/{{@(\d+)}}/g);
-        foreach my $arg (@found_args) {
-            die "opcode '$short_name' uses '\$$arg' but only has $max_arg_num parameters.\n" if $arg > $max_arg_num;
-        }
-
-
-        my $file_escaped = $file;
-        $file_escaped =~ s|(\\)|$1$1|g;    # escape backslashes
-        $op->body( $nolines ? $body : qq{#line $line "$file_escaped"\n$body} );
-
-        # Constants here are defined in include/parrot/op.h
-        or_flag( \$jumps, "PARROT_JUMP_RELATIVE" ) if $branch;
-
-        $op->jump($jumps);
-        $self->push_op($op);
-        $counter++;
-    }
-
-    return $counter;
-}
-
-=item C<expand_args(@args)>
-
-Given an argument list, returns a list of all the possible argument
-combinations.
-
-=cut
-
-sub expand_args {
-    my (@args) = @_;
-
-    return "" if ( !scalar(@args) );
-
-    my $arg = shift(@args);
-    my @var = split( /\|/, $arg );
-
-    if ( !scalar(@args) ) {
-        return @var;
-    }
-    else {
-        my @list = expand_args(@args);
-        my @results;
-
-        foreach my $l (@list) {
-            foreach my $v (@var) {
-                push( @results, "$v,$l" );
-            }
-        }
-
-        return @results;
-    }
-}
-
-=item C<ops()>
-
-Returns the C<Parrot::Op> instances found in the file(s).
-
-=cut
-
-sub ops {
-    my ($self) = @_;
-
-    return @{ $self->{OPS} };
-}
-
-=item C<op($index)>
-
-Returns the op at C<$index>.
-
-=cut
-
-sub op {
-    my ( $self, $index ) = @_;
-
-    return $self->{OPS}[$index];
-}
-
-=item C<preamble()>
-
-=item C<preamble($trans)>
-
-Returns any lines found prior to first op definition.
-
-If C<$trans> (an C<Parrot::OpTrans> subclass) is supplied then
-substitutions are made.
-
-=cut
-
-sub preamble {
-    my ( $self, $trans ) = @_;
-
-    local $_ = $self->{PREAMBLE};
-
-    if ($trans) {
-        s/goto\s+OFFSET\((.*)\)/{{+=$1}}/mg;
-
-        #s/goto\s+NEXT\(\)/{{+=$op_size}}/mg;   #not supported--dependent on op size
-        s/goto\s+ADDRESS\((.*)\)/{{=$1}}/mg;
-
-        $_ = Parrot::Op->rewrite_body( $_, $trans, 'preamble' );
-    }
-
-    return $_;
-}
-
-=item C<version($major, $minor, $patch)>
-
-=item C<version($version)>
-
-=item C<version()>
-
-Sets/gets the version number.
-
-=cut
-
-sub version {
-    my $self = shift;
-
-    if ( @_ == 1 ) {
-        $self->{VERSION} = shift;
-    }
-    elsif ( @_ == 3 ) {
-        $self->{VERSION} = join( '.', @_ );
-    }
-    elsif ( @_ == 0 ) {
-        if (wantarray) {
-            return split( /\./, $self->{VERSION} );
-        }
-        else {
-            return $self->{VERSION};
-        }
-    }
-    else {
-        die "Parrot::OpsFile::version(): Illegal argument count" . scalar(@_) . "!";
-    }
-}
-
-=item C<major_version()>
-
-Returns the major version number.
-
-=cut
-
-sub major_version {
-    my $self = shift;
-
-    $self->{VERSION} =~ m/^(\d+)\./;
-
-    return $1;
-}
-
-=item C<minor_version()>
-
-Returns the minor version number.
-
-=cut
-
-sub minor_version {
-    my $self = shift;
-
-    $self->{VERSION} =~ m/^\d+\.(\d+)\./;
-
-    return $1;
-}
-
-=item C<patch_version()>
-
-Returns the patch version number.
-
-=cut
-
-sub patch_version {
-    my $self = shift;
-
-    $self->{VERSION} =~ m/^\d+\.\d+\.(\d+)/;
-
-    return $1;
-}
-
-=item C<push_op($op)>
-
-Adds C<$op> to the end of the op list.
-
-=cut
-
-sub push_op {
-    my ( $self, $op ) = @_;
-
-    push @{ $self->{OPS} }, $op;
-}
-
-=back
-
-=head1 SEE ALSO
-
-=over 4
-
-=item C<Parrot::Op>
-
-=item C<Parrot::OpTrans>
-
-=item F<tools/build/ops2c.pl>
-
-=item F<tools/build/ops2pm.pl>
-
-=item F<tools/build/pbc2c.pl>
-
-=back
-
-=cut
-
-1;
-
-# Local Variables:
-#   mode: cperl
-#   cperl-indent-level: 4
-#   fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4:

Deleted: branches/ucs4_encoding/lib/Parrot/OpsRenumber.pm
==============================================================================
--- branches/ucs4_encoding/lib/Parrot/OpsRenumber.pm	Mon May 24 21:18:41 2010	(r46973)
+++ /dev/null	00:00:00 1970	(deleted)
@@ -1,190 +0,0 @@
-# Copyright (C) 2007, Parrot Foundation.
-# $Id$
-package Parrot::OpsRenumber;
-use strict;
-use warnings;
-use lib qw ( lib );
-use base qw( Parrot::Ops2pm::Base );
-
-=head1 NAME
-
-Parrot::OpsRenumber - Methods holding functionality for F<tools/dev/opsrenumber.pl>.
-
-=head1 SYNOPSIS
-
-    use Parrot::OpsRenumber;
-
-    $self = Parrot::OpsRenumber->new( {
-        argv            => [ @ARGV ],
-        moddir          => "lib/Parrot/OpLib",
-        module          => "core.pm",
-        inc_dir         => "include/parrot/oplib",
-        inc_f           => "ops.h",
-        script          => "tools/dev/opsrenumber.pl",
-    } );
-
-    $self->prepare_ops();
-    $self->renum_op_map_file();
-
-=cut
-
-=head1 DESCRIPTION
-
-Parrot::OpsRenumber provides methods called by F<tools/dev/opsrenumber.pl>.
-
-=head1 METHODS
-
-=head2 C<new()>
-
-Inherited from Parrot::Ops2pm::Base and documented in
-F<lib/Parrot/Ops2pm/Base.pm>.
-
-=head2 C<prepare_ops()>
-
-Inherited from Parrot::Ops2pm::Base and documented in
-F<lib/Parrot/Ops2pm/Base.pm>.
-
-=head2 C<renum_op_map_file()>
-
-=over 4
-
-=item * Purpose
-
-This method renumbers F<src/ops/ops.num> based on the already
-existing file of that name and additional F<.ops> files.
-
-=item * Arguments
-
-Two scalars.  First is Parrot major version number.  Second is optional:
-string holding name of an F<.ops> file; defaults to F<src/ops/ops.num>.
-(Implicitly requires that the C<argv> and C<script> elements were provided to
-the constructor.)
-
-=item * Return Value
-
-Returns true value upon success.
-
-=back
-
-=cut
-
-
-my $OPSENUM_PREAMBLE =<<END;
-/* ex: set ro ft=c:
- * !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
- *
- * This file is generated automatically from 'lib/Parrot/OpsRenumber.pm'.
- *
- * Any changes made here will be lost!
- *
- */
-#ifndef OPSENUM_H_GUARD
-#define OPSENUM_H_GUARD
-enum OPS_ENUM {
-END
-
-my $OPSENUM_POSTAMBLE =<<END;
-};
-#endif /* OPSENUM_H_GUARD */
-/* GENERATED BY lib/Parrot/OpsRenumber.pm */
-/*
- * Local variables:
- *   c-file-style: "parrot"
- * End:
- * vim: expandtab shiftwidth=4:
- */
-END
-
-sub renum_op_map_file {
-    my $self = shift;
-
-    my $file = $self->{num_file};
-
-    # We open up the currently existing ops.num and file and read it
-    # line-by-line.  That file is basically divided into two halves
-    # separated by the ###DYNAMIC### line.  Above that line are found
-    # (a) # inline comments and
-    # (b) the first 7, never-to-be-altered opcodes.
-    # Below that line are all the remaining opcodes.  All opcode lines
-    # match the pattern /^(\w+)\s+(\d+)$/.  Everything above the line gets
-    # pushed into @lines and, if it's an opcode line, gets split and
-    # pushed into %fixed as well.  Nothing happens to the (opcode) lines
-    # below the DYNAMIC line.
-
-    my ( $name, $number, @lines, %seen, %fixed, $fix );
-    $fix = 1;
-    open my $OP, '<', $file
-        or die "Can't open $file, error $!";
-    while (<$OP>) {
-        push @lines, $_ if $fix;
-        chomp;
-        $fix = 0 if /^###DYNAMIC###/;
-        s/#.*$//;
-        s/\s*$//;
-        s/^\s*//;
-        next unless $_;
-        ( $name, $number ) = split( /\s+/, $_ );
-        $seen{$name}  = 1;
-        $fixed{$name} = $number if $fix;
-    }
-    close $OP;
-
-    # Now we re-open the very same file we just read -- this time for
-    # writing.  We directly print all the lines in @lines, i.e., those
-    # above the DYNAMIC line.  For the purpose of renumbering, we create
-    # an index $n.
-
-    my $opsenumfn = $self->{opsenum_file};
-    open my $OPSENUM, '>', $opsenumfn or die "Can't open $opsenumfn, error $!";
-    print $OPSENUM $OPSENUM_PREAMBLE;
-    open $OP, '>', $file
-        or die "Can't open $file, error $!";
-    print $OP @lines;
-    my ($n);
-
-    # We can't use all autogenerated ops from oplib/core
-    # there are unwanted permutations like 'add_i_ic_ic
-    # which aren't opcodes but calculated at compile-time.
-
-    # The ops element is set by prepare_ops(), which is inherited from
-    # Parrot::Ops2pm::Base.  prepare_ops(), in turn, works off
-    # Parrot::OpsFile.
-
-    # So whether a particular opcode will continue to appear in ops.num
-    # depends entirely on whether or not it's found in
-    # @{ $self->{ops}->{OPS} }.  If a particular opcode has been deleted or
-    # gone missing from that array, then it won't appear in the new
-    # ops.num.
-
-    for ( @{ $self->{ops}->{OPS} } ) {
-
-        # To account for the number of opcodes above the line, we'll
-        # increment the index by one for every element in %fixed.
-
-        if ( defined $fixed{ $_->full_name } ) {
-            $n = $fixed{ $_->full_name };
-        }
-
-        # For all other opcodes, we'll print the opcode, increment the
-        # index, then print the index on that same line.
-
-        elsif ( $seen{ $_->full_name } ) {
-            printf $OP "%-31s%4d\n", $_->full_name, ++$n;
-            printf $OPSENUM "    enum_ops_%-31s= %4d,\n", $_->full_name, $n;
-        }
-    }
-    close $OP;
-    print $OPSENUM $OPSENUM_POSTAMBLE;
-    close $OPSENUM;
-
-    return 1;
-}
-
-1;
-
-# Local Variables:
-#   mode: cperl
-#   cperl-indent-level: 4
-#   fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4:

Modified: branches/ucs4_encoding/lib/Parrot/Test/Pod.pm
==============================================================================
--- branches/ucs4_encoding/lib/Parrot/Test/Pod.pm	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/lib/Parrot/Test/Pod.pm	Mon May 24 21:18:41 2010	(r46974)
@@ -72,11 +72,23 @@
                         | t/configure/testlib/cdefectivefoobar
                         | t/configure/testlib/bdefectivefoobar
                         | examples/config/file/configwithfatalstep
+                        | compilers/opsc
                     }x
                 ) {
                     delete $files_needing_analysis->{ $file };
                     next SECOND_FILE;
                 }
+
+                # read first line. If it contains "nqp" remove file from test.
+                my $fh;
+                open $fh, '<', $full_file or croak "Can't opend file $full_file $!";
+                my $line = <$fh>;
+                close $fh;
+
+                if ($line =~ m/ nqp | use \s v6 /x) {
+                    delete $files_needing_analysis->{ $file };
+                    next SECOND_FILE;
+                }
             }
         }
         nstore $files_needing_analysis, $sto;

Modified: branches/ucs4_encoding/runtime/parrot/library/HTTP/Message.pir
==============================================================================
--- branches/ucs4_encoding/runtime/parrot/library/HTTP/Message.pir	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/runtime/parrot/library/HTTP/Message.pir	Mon May 24 21:18:41 2010	(r46974)
@@ -171,10 +171,11 @@
 .include 'cclass.pasm'
 
 .sub '' :init :load :anon
-    load_bytecode 'URI.pir'
+    load_bytecode 'URI.pbc'
     $P0 = subclass ['HTTP';'Message'], ['HTTP';'Request']
     $P0.'add_attribute'('method')
     $P0.'add_attribute'('uri')
+    $P0.'add_attribute'('proxy')
 .end
 
 =item method
@@ -195,6 +196,17 @@
     .return ($P0)
 .end
 
+.sub 'proxy' :method
+    .param pmc val              :optional
+    .param int has_val          :opt_flag
+    unless has_val goto L1
+    setattribute self, 'proxy', val
+    .return ()
+  L1:
+    $P0 = getattribute self, 'proxy'
+    .return ($P0)
+.end
+
 =item GET
 
 =cut
@@ -467,7 +479,7 @@
   L2:
     $S0 = $P0
     .local pmc encode
-    encode = get_hll_global  ['MIME';'Base64'], 'encode_base64'
+    encode = get_hll_global ['MIME';'Base64'], 'encode_base64'
     $S0 = encode($S0)
     $I1 = length $S0
     $I0 = 0

Deleted: branches/ucs4_encoding/runtime/parrot/library/LWP.pir
==============================================================================
--- branches/ucs4_encoding/runtime/parrot/library/LWP.pir	Mon May 24 21:18:41 2010	(r46973)
+++ /dev/null	00:00:00 1970	(deleted)
@@ -1,851 +0,0 @@
-# Copyright (C) 2010, Parrot Foundation.
-# $Id$
-
-=head1 NAME
-
-LWP - The World-Wide Web library for Parrot
-
-=head2 DESCRIPTION
-
-Simplified port of LWP (version 5.834)
-see http://search.cpan.org/~gaas/libwww-perl/
-
-=head3 Class LWP;UserAgent
-
-=over 4
-
-=cut
-
-.namespace ['LWP';'UserAgent']
-
-.sub '' :init :load :anon
-    load_bytecode 'HTTP/Message.pir'
-    $P0 = newclass ['LWP';'UserAgent']
-    $P0.'add_attribute'('def_headers')
-    $P0.'add_attribute'('show_progress')
-    $P0.'add_attribute'('progress_start')
-    $P0.'add_attribute'('progress_lastp')
-    $P0.'add_attribute'('progress_ani')
-    $P0.'add_attribute'('max_redirect')
-    .globalconst int RC_OK = 200
-    .globalconst int RC_MOVED_PERMANENTLY = 301
-    .globalconst int RC_FOUND = 302
-    .globalconst int RC_SEE_OTHER = 303
-    .globalconst int RC_TEMPORARY_REDIRECT = 307
-    .globalconst int RC_BAD_REQUEST = 400
-    .globalconst int RC_NOT_FOUND = 404
-    .globalconst int RC_INTERNAL_SERVER_ERROR = 500
-    .globalconst int RC_NOT_IMPLEMENTED = 501
-.end
-
-.sub 'init' :vtable :method
-    $P0 = new ['HTTP';'Headers']
-    $P0['User-Agent'] = 'libwww-parrot'
-    setattribute self, 'def_headers', $P0
-    $P0 = box 7
-    setattribute self, 'max_redirect', $P0
-.end
-
-.sub 'send_request' :method
-    .param pmc request
-    .local string method
-    method = request.'method'()
-    .local pmc url
-    url = request.'uri'()
-    .local string scheme
-    scheme = url.'scheme'()
-    self.'progress'('begin', request)
-    .local pmc protocol, response
-    $P0 =get_hll_global ['LWP';'Protocol'], 'create'
-    protocol = $P0(scheme, self)
-    unless null protocol goto L1
-    response = _new_response(request, RC_NOT_IMPLEMENTED, 'Not Implemented')
-    goto L2
-  L1:
-    response = protocol.'request'(request)
-    setattribute response, 'request', request
-    $P0 = get_hll_global ['HTTP';'Date'], 'time2str'
-    $I0 = time
-    $S0 = $P0($I0)
-    response.'push_header'('Client-Date', $S0)
-  L2:
-    self.'progress'('end', response)
-    .return (response)
-.end
-
-.sub 'prepare_request' :method
-    .param pmc request
-    $P0 = request.'method'()
-    unless null $P0 goto L1
-    die "Method missing"
-  L1:
-    $P0 = request.'uri'()
-    unless null $P0 goto L2
-    die "URL missing"
-  L2:
-    $S0 = $P0.'scheme'()
-    unless $S0 == '' goto L3
-    die "URL must be absolute"
-  L3:
-    $P0 = getattribute self, 'def_headers'
-    $P1 = iter $P0
-  L4:
-    unless $P1 goto L5
-    $S0 = shift $P1
-    $S1 = $P0[$S0]
-    request.'push_header'($S0, $S1)
-    goto L4
-  L5:
-.end
-
-.sub 'simple_request' :method
-    .param pmc request
-    unless null request goto L1
-    die "No request object passed in"
-  L1:
-    $I0 = isa request, ['HTTP';'Request']
-    if $I0 goto L2
-    die "You need a ['HTTP';'Request']"
-  L2:
-    self.'prepare_request'(request)
-    .tailcall self.'send_request'(request)
-.end
-
-.sub 'request' :method
-    .param pmc request
-    .param pmc previous         :optional
-    .param int has_previous     :opt_flag
-
-    .local pmc response
-    response = self.'simple_request'(request)
-    unless has_previous goto L1
-    response.'previous'(previous)
-  L1:
-
-    .local int redirect
-    $P0 = response.'redirect'()
-    redirect = elements $P0
-    .local int max_redirect
-    $P0 = getattribute self, 'max_redirect'
-    max_redirect = $P0
-    unless redirect >= max_redirect goto L2
-    $S0 = 'Redirect loop detected (max_redirect = '
-    $S1 = max_redirect
-    $S0 .= $S1
-    $S0 .= ')'
-    response.'push_header'('Client-Warning', $S0)
-    .return (response)
-  L2:
-
-    .local int code
-    code = response.'code'()
-
-    if code == RC_MOVED_PERMANENTLY goto L3
-    if code == RC_FOUND goto L3
-    if code == RC_SEE_OTHER goto L3
-    if code == RC_TEMPORARY_REDIRECT goto L3
-    goto L4
-  L3:
-    .local pmc referral
-    referral = clone request
-    # These headers should never be forwarded
-    referral.'remove_header'('Host')
-    referral.'remove_header'('Cookie')
-
-    # work in progress
-
-    .local string referral_uri
-    referral_uri = response.'get_header'('Location')
-    $P0 = get_hll_global ['URI'], 'new_from_string'
-    $P1 = $P0(referral_uri)
-    $S0 = $P1.'scheme'()
-    unless $S0 == '' goto L5
-    $P2 = new 'StringBuilder'
-    $P3 = request.'uri'()
-    $S0 = $P3.'scheme'()
-    push $P2, $S0
-    push $P2, '://'
-    $S0 = request.'get_header'('Host')
-    push $P2, $S0
-    push $P2, referral_uri
-    $P1 = $P0($P2)
-  L5:
-    setattribute referral, 'uri', $P1
-
-    # work in progress
-
-    $I0 = self.'redirect_ok'(referral, response)
-    if $I0 goto L6
-    .return (response)
-  L6:
-    .tailcall self.'request'(referral, response)
-  L4:
-
-    # work in progress
-
-    .return (response)
-.end
-
-=item get
-
-=cut
-
-.sub 'get' :method
-    .param pmc args :slurpy
-    .param pmc kv :slurpy :named
-    .local pmc request
-    $P0 = get_hll_global ['HTTP';'Request'], 'GET'
-    request = $P0(args :flat, kv :flat :named)
-    .tailcall self.'request'(request)
-.end
-
-=item post
-
-=cut
-
-.sub 'post' :method
-    .param pmc args :slurpy
-    .param pmc kv :slurpy :named
-    .local pmc request
-    $P0 = get_hll_global ['HTTP';'Request'], 'POST'
-    request = $P0(args :flat, kv :flat :named)
-    .tailcall self.'request'(request)
-.end
-
-=item put
-
-=cut
-
-.sub 'put' :method
-    .param pmc args :slurpy
-    .param pmc kv :slurpy :named
-    .local pmc request
-    $P0 = get_hll_global ['HTTP';'Request'], 'PUT'
-    request = $P0(args :flat, kv :flat :named)
-    .tailcall self.'request'(request)
-.end
-
-=item delete
-
-=cut
-
-.sub 'delete' :method
-    .param pmc args :slurpy
-    .param pmc kv :slurpy :named
-    .local pmc request
-    $P0 = get_hll_global ['HTTP';'Request'], 'DELETE'
-    request = $P0(args :flat, kv :flat :named)
-    .tailcall self.'request'(request)
-.end
-
-.sub 'progress' :method
-    .param string status
-    .param pmc msg
-    $P0 = getattribute self, 'show_progress'
-    if null $P0 goto L1
-    unless $P0 goto L1
-    unless status == 'begin' goto L2
-    printerr "** "
-    $P0 = getattribute msg, 'method'
-    printerr $P0
-    printerr " "
-    $P0 = getattribute msg, 'uri'
-    printerr $P0
-    printerr " ==> "
-    $N1 = time
-    $P0 = box $N1
-    setattribute self, 'progress_start', $P0
-    $P0 = box ''
-    setattribute self, 'progress_lastp', $P0
-    $P0 = box 0
-    setattribute self, 'progress_ani', $P0
-    goto L1
-  L2:
-    unless status == 'end' goto L3
-    $P0 = getattribute self, 'progress_start'
-    $N1 = $P0
-    $N2 = time
-    null $P0
-    setattribute self, 'progress_start', $P0
-    setattribute self, 'progress_lastp', $P0
-    setattribute self, 'progress_ani', $P0
-    $S0 = msg.'status_line'()
-    printerr $S0
-    $N0 =$N2 - $N1
-    $I0 = $N0
-    unless $I0 goto L4
-    printerr " ("
-    printerr $I0
-    printerr "s)"
-  L4:
-    printerr "\n"
-    goto L1
-  L3:
-    unless status == 'tick' goto L5
-    $P0 = getattribute self, 'progress_ani'
-    inc $P0
-    $P0 %= 4
-    $P1 = split '', '-\|/'
-    $S0 = $P1[$P0]
-    printerr $S0
-    printerr "\b"
-    goto L1
-  L5:
-    $N0 = status
-    $N0 *= 100
-    $P0 = new 'FixedFloatArray'
-    set $P0, 1
-    $P0[0] = $N0
-    $S1 = sprintf '%3.0f%%', $P0
-    $P0 = getattribute self, 'progress_lastp'
-    $S0 = $P0
-    if $S0 == $S1 goto L1
-    set $P0, $S1
-    printerr $S1
-    printerr "\b\b\b\b"
-  L1:
-.end
-
-.sub 'redirect_ok' :method
-    .param pmc new_request
-    .param pmc response
-    $P0 = response.'request'()
-    $S0 = $P0.'method'()
-    if $S0 == 'GET' goto L1
-    if $S0 == 'HEAD' goto L1
-    .return (0)
-  L1:
-    # work in progress
-    .return (1)
-.end
-
-=item max_redirect
-
-=cut
-
-.sub 'max_redirect' :method
-    .param pmc val
-    setattribute self, 'max_redirect', val
-.end
-
-=item show_progress
-
-=cut
-
-.sub 'show_progress' :method
-    .param pmc val
-    setattribute self, 'show_progress', val
-.end
-
-=item agent
-
-=cut
-
-.sub 'agent' :method
-    .param string val
-    $P0 = getattribute self, 'def_headers'
-    $P0['User-Agent'] = val
-.end
-
-=item env_provy
-
-=cut
-
-.sub 'env_proxy' :method
-    $P0 = new 'Env'
-    $P1 = iter $P0
-  L1:
-    unless $P1 goto L2
-    $S0 = shift $P1
-    $S1 = downcase $S0
-
-    # work in progress
-
-    goto L1
-  L2:
-.end
-
-.sub '_new_response'
-    .param pmc request
-    .param pmc code
-    .param pmc message
-    .local pmc response
-    response = new ['HTTP';'Response']
-    setattribute response, 'code', code
-    setattribute response, 'message', message
-    setattribute response, 'request', request
-    $P0 = get_hll_global ['HTTP';'Date'], 'time2str'
-    $I0 = time
-    $S0 = $P0($I0)
-    response.'push_header'('Client-Date', $S0)
-    response.'push_header'('Client-Warning', "Internal response")
-    response.'push_header'('Content-Type', 'text/plain')
-    $S0 = code
-    $S0 .= ' '
-    $S1 = message
-    $S0 .= $S1
-    $S0 .= "\n"
-    $P0 = box $S0
-    setattribute response, 'content', $P0
-    .return (response)
-.end
-
-=back
-
-=head3 Class LWP;Protocol
-
-=over 4
-
-=cut
-
-.namespace ['LWP';'Protocol']
-
-.sub '' :init :load :anon
-    $P0 = newclass ['LWP';'Protocol']
-    $P0.'add_attribute'('scheme')
-    $P0.'add_attribute'('ua')
-.end
-
-=item create
-
-=cut
-
-.sub 'create'
-    .param string scheme
-    .param pmc ua
-    $P1 = new 'Key'
-    set $P1, 'LWP'
-    $P2 = new 'Key'
-    set $P2, 'Protocol'
-    push $P1, $P2
-    $P3 = new 'Key'
-    set $P3, scheme
-    push $P1, $P3
-    $P0 = get_class $P1
-    unless null $P0 goto L1
-    .return ($P0)
-  L1:
-    .local pmc protocol
-    protocol = new $P0
-    $P0 = box scheme
-    setattribute protocol, 'scheme', $P0
-    setattribute protocol, 'ua', ua
-    .return (protocol)
-.end
-
-=item scheme
-
-=cut
-
-.sub 'scheme' :method
-    $P0 = getattribute self, 'scheme'
-    .return ($P0)
-.end
-
-=item ua
-
-=cut
-
-.sub 'ua' :method
-    $P0 = getattribute self, 'ua'
-    .return ($P0)
-.end
-
-.sub 'request' :method
-    .param pmc args :slurpy
-    die 'LWP::Protocol::request() needs to be overridden in subclasses'
-.end
-
-=back
-
-=head3 Class LWP;Protocol;file
-
-=cut
-
-.namespace ['LWP';'Protocol';'file']
-
-.include 'stat.pasm'
-
-.sub '' :init :load :anon
-    $P0 = subclass ['LWP';'Protocol'], ['LWP';'Protocol';'file']
-.end
-
-.sub 'request' :method
-    .param pmc request
-    load_bytecode 'osutils.pbc'
-    .local string method
-    method = request.'method'()
-    $P0 = get_hll_global ['LWP';'Protocol';'file'], method
-    unless null $P0 goto L1
-    $P0 = new ['HTTP';'Response']
-    $P1 = box RC_BAD_REQUEST
-    setattribute $P0, 'code', $P1
-    $S0 = "Library does not allow method " . method
-    $S0 .= " for 'file:' URLs"
-    $P1 = box $S0
-    setattribute $P0, 'message', $P1
-    .return ($P0)
-  L1:
-    .local pmc url
-    url = request.'uri'()
-    .local string scheme
-    scheme = url.'scheme'()
-    if scheme == 'file' goto L2
-    $P0 = new ['HTTP';'Response']
-    $P1 = box RC_INTERNAL_SERVER_ERROR
-    setattribute $P0, 'code', $P1
-    $S0 = "LWP::Protocol::file::request called for '" . scheme
-    $S0 .= "'"
-    $P1 = box $S0
-    setattribute $P0, 'message', $P1
-    .return ($P0)
-  L2:
-    .tailcall $P0(self, request)
-.end
-
-.sub 'HEAD' :method :nsentry
-    .param pmc request
-    .tailcall self.'GET'(request)
-.end
-
-.sub 'GET' :method :nsentry
-    .param pmc request
-    .local pmc response
-    response = new ['HTTP';'Response']
-    .local string method
-    method = request.'method'()
-    .local pmc url
-    url = request.'uri'()
-    .local string path
-    path = url.'path'()
-
-    $I0 = stat path, .STAT_EXISTS
-    if $I0 goto L1
-    $P0 = box RC_NOT_FOUND
-    setattribute response, 'code', $P0
-    $S0 = "File `" . path
-    $S0 .= "' does not exist"
-    $P0 = box $S0
-    setattribute response, 'message', $P0
-    .return (response)
-  L1:
-
-    .local int mtime
-    mtime = stat path, .STAT_MODIFYTIME
-    $P0 = get_hll_global ['HTTP';'Date'], 'time2str'
-    $S0 = $P0(mtime)
-    response.'push_header'('Last-Modified', $S0)
-    .local int filesize
-    filesize = stat path, .STAT_FILESIZE
-    response.'push_header'('Content-Length', filesize)
-
-    if method == 'HEAD' goto L2
-    push_eh _handler
-    $S0 = slurp(path)
-    pop_eh
-    $P0 = box $S0
-    setattribute response, 'content', $P0
-  L2:
-    $P0 = box RC_OK
-    setattribute response, 'code', $P0
-    .return (response)
-
-  _handler:
-    .local pmc ex
-    .get_results (ex)
-    $P0 = box RC_INTERNAL_SERVER_ERROR
-    setattribute response, 'code', $P0
-    $S0 = ex
-    $P0 = box $S0
-    setattribute response, 'message', $P0
-    .return (response)
-.end
-
-.sub 'PUT' :method :nsentry
-    .param pmc request
-    .local pmc response
-    response = new ['HTTP';'Response']
-    .local pmc url
-    url = request.'uri'()
-    .local string path
-    path = url.'path'()
-    .local string content
-    content = request.'content'()
-
-    push_eh _handler
-    $S0 = spew(path, content)
-    pop_eh
-
-    $P0 = box RC_OK
-    setattribute response, 'code', $P0
-    .return (response)
-
-  _handler:
-    .local pmc ex
-    .get_results (ex)
-    $P0 = box RC_INTERNAL_SERVER_ERROR
-    setattribute response, 'code', $P0
-    $S0 = ex
-    $P0 = box $S0
-    setattribute response, 'message', $P0
-    .return (response)
-.end
-
-.sub 'DELETE' :method :nsentry
-    .param pmc request
-    .local pmc response
-    response = new ['HTTP';'Response']
-    .local pmc url
-    url = request.'uri'()
-    .local string path
-    path = url.'path'()
-
-    $I0 = stat path, .STAT_EXISTS
-    if $I0 goto L1
-    $P0 = box RC_NOT_FOUND
-    setattribute response, 'code', $P0
-    $S0 = "File `" . path
-    $S0 .= "' does not exist"
-    $P0 = box $S0
-    setattribute response, 'message', $P0
-    .return (response)
-  L1:
-
-    push_eh _handler
-    $S0 = unlink(path)
-    pop_eh
-
-    $P0 = box RC_OK
-    setattribute response, 'code', $P0
-    .return (response)
-
-  _handler:
-    .local pmc ex
-    .get_results (ex)
-    $P0 = box RC_INTERNAL_SERVER_ERROR
-    setattribute response, 'code', $P0
-    $S0 = ex
-    $P0 = box $S0
-    setattribute response, 'message', $P0
-    .return (response)
-.end
-
-=head3 Class LWP;Protocol;http
-
-=cut
-
-.namespace ['LWP';'Protocol';'http']
-
-.include 'socket.pasm'
-
-.sub '' :init :load :anon
-    $P0 = subclass ['LWP';'Protocol'], ['LWP';'Protocol';'http']
-.end
-
-.sub '_new_socket' :method
-    .param string host
-    .param int port
-    .local pmc sock, addr
-    sock = new 'Socket'
-    sock.'socket'(.PIO_PF_INET, .PIO_SOCK_STREAM, .PIO_PROTO_TCP)
-    addr = sock.'sockaddr'(host, port)
-    sock.'connect'(addr)
-    .return (sock)
-.end
-
-.sub '_fixup_header' :method
-    .param pmc headers
-    .param pmc url
-    .local string host
-    host = url.'authority'()
-    headers['Host'] = host
-.end
-
-.sub '_format_request'
-    .param string method
-    .param string uri
-    .param pmc headers
-    .const string CRLF = "\r\n"
-    $P0 = new 'StringBuilder'
-    push $P0, method
-    push $P0, ' '
-    push $P0, uri
-    push $P0, ' HTTP/1.1'
-    push $P0, CRLF
-    $P1 = iter headers
-  L1:
-    unless $P1 goto L2
-    $S0 = shift $P1
-    $S1 = headers[$S0]
-    push $P0, $S0
-    push $P0, ': '
-    push $P0, $S1
-    push $P0, CRLF
-    goto L1
-  L2:
-    push $P0, CRLF
-    .return ($P0)
-.end
-
-.sub '_parse_response_headers' :method
-    .param pmc response
-    .param string str
-    .local string sep
-    sep = "\r\n"
-    $I0 = index str, "\r"
-    unless $I0 < 0 goto L0
-    sep = "\n"
-  L0:
-    $S0 = sep . sep
-    $I0 = index str, $S0
-    if $I0 < 0 goto L1
-    str = substr str, 0, $I0
-  L1:
-
-    $P0 = split sep, str
-    .local string status_line
-    status_line = shift $P0
-    $I0 = index status_line, " "
-    if $I0 < 0 goto L2
-    $S0 = substr status_line, 0, $I0
-    $P1 = box $S0
-    setattribute response, 'protocol', $P1
-    $I1 = $I0 + 1
-    $I0 = index status_line, " ", $I1
-    if $I0 < 0 goto L2
-    $I2 = $I0 - $I1
-    $S0 = substr status_line, $I1, $I2
-    $P1 = box $S0
-    setattribute response, 'code', $P1
-    inc $I0
-    $S0 = substr status_line, $I0
-    $P1 = box $S0
-    setattribute response, 'message', $P1
-
-    $P3 = new ['HTTP';'Headers']
-  L3:
-    unless $P0 goto L4
-    $S0 = shift $P0
-    $I0 = index $S0, ": "
-    if $I0 < 0 goto L3
-    $S1 = substr $S0, 0, $I0
-    $I0 += 2
-    $S2 = substr $S0, $I0
-    $P3[$S1] = $S2
-    goto L3
-  L4:
-    setattribute response, 'headers', $P3
-
-    $I0 = length str
-    .return ($I0)
-  L2:
-    .return (0)
-.end
-
-.sub '_parse_response_content' :method
-    .param pmc response
-    .param string str
-    $I0 = index str, "\r\n\r\n"
-    if $I0 < 0 goto L1
-    $I0 += 4
-    $S0 = substr str, $I0
-    $P0 = box $S0
-    setattribute response, 'content', $P0
-    goto L2
-  L1:
-    $I0 = index str, "\n\n"
-    if $I0 < 0 goto L1
-    $I0 += 2
-    $S0 = substr str, $I0
-    $P0 = box $S0
-    setattribute response, 'content', $P0
-  L2:
-.end
-
-.sub 'request' :method
-    .param pmc request
-
-    .local string method
-    method = request.'method'()
-    .local pmc url
-    url = request.'uri'()
-    .local string host, port, fullpath
-    host = url.'host'()
-    port = url.'port'()
-    fullpath = url.'path_query'()
-    $I0 = index fullpath, '/'
-    if $I0 == 0 goto L1
-    fullpath = '/' . fullpath
-  L1:
-
-    # connect to remote site
-    .local pmc sock
-    sock = self.'_new_socket'(host, port)
-
-    .local pmc request_headers
-    request_headers = request.'headers'()
-    self.'_fixup_header'(request_headers, url)
-
-    .local pmc ua
-    ua = self.'ua'()
-    $S0 = _format_request(method, fullpath, request_headers)
-    sock.'send'($S0)
-
-    .local string content
-    content = request.'content'()
-    unless content goto L11
-    .local int content_length
-    content_length = length content
-    $I0 = 0
-  L12:
-    unless $I0 < content_length goto L11
-    $S0 = substr content, $I0, 8192
-    $I1 = sock.'send'($S0)
-    $I0 += $I1
-    $N0 = $I0 / content_length
-    goto L12
-  L11:
-
-    .local pmc response
-    response = new ['HTTP';'Response']
-    .local pmc buf
-    buf = new 'StringBuilder'
-    .local int header_length
-    content_length = 0
-  L21:
-    ua.'progress'('tick', request)
-    $S0 = sock.'recv'()
-    if $S0 == '' goto L22
-    push buf, $S0
-    header_length = self.'_parse_response_headers'(response, buf)
-    $I0 = response.'is_success'()
-    unless $I0 goto L22
-    $S0 = response.'get_header'('Content-Length')
-    if $S0 == '' goto L21
-    content_length = $S0
-  L23:
-    $I0 = buf.'get_string_length'()
-    $I0 -= header_length
-    $N0 = $I0 / content_length
-    ua.'progress'($N0, request)
-    $S0 = sock.'recv'()
-    if $S0 == '' goto L22
-    push buf, $S0
-    goto L23
-  L22:
-    sock.'close'()
-    self.'_parse_response_content'(response, buf)
-    .return (response)
-.end
-
-=head1 AUTHOR
-
-Francois Perrad
-
-=cut
-
-# Local Variables:
-#   mode: pir
-#   fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4 ft=pir:

Copied: branches/ucs4_encoding/runtime/parrot/library/LWP/Protocol.pir (from r46972, trunk/runtime/parrot/library/LWP/Protocol.pir)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/ucs4_encoding/runtime/parrot/library/LWP/Protocol.pir	Mon May 24 21:18:41 2010	(r46974, copy of r46972, trunk/runtime/parrot/library/LWP/Protocol.pir)
@@ -0,0 +1,539 @@
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+=head1 NAME
+
+LWP - The World-Wide Web library for Parrot
+
+=head2 DESCRIPTION
+
+Simplified port of LWP (version 5.834)
+see http://search.cpan.org/~gaas/libwww-perl/
+
+=head3 Class LWP;Protocol
+
+=over 4
+
+=cut
+
+.namespace ['LWP';'Protocol']
+
+.sub '' :init :load :anon
+    load_bytecode 'HTTP/Message.pbc'
+    $P0 = newclass ['LWP';'Protocol']
+    $P0.'add_attribute'('scheme')
+    $P0.'add_attribute'('ua')
+.end
+
+=item create
+
+=cut
+
+.sub 'create'
+    .param string scheme
+    .param pmc ua
+    $P1 = new 'Key'
+    set $P1, 'LWP'
+    $P2 = new 'Key'
+    set $P2, 'Protocol'
+    push $P1, $P2
+    $P3 = new 'Key'
+    set $P3, scheme
+    push $P1, $P3
+    $P0 = get_class $P1
+    unless null $P0 goto L1
+    .return ($P0)
+  L1:
+    .local pmc protocol
+    protocol = new $P0
+    $P0 = box scheme
+    setattribute protocol, 'scheme', $P0
+    setattribute protocol, 'ua', ua
+    .return (protocol)
+.end
+
+=item scheme
+
+=cut
+
+.sub 'scheme' :method
+    $P0 = getattribute self, 'scheme'
+    .return ($P0)
+.end
+
+=item ua
+
+=cut
+
+.sub 'ua' :method
+    $P0 = getattribute self, 'ua'
+    .return ($P0)
+.end
+
+.sub 'request' :method
+    .param pmc args :slurpy
+    die 'LWP::Protocol::request() needs to be overridden in subclasses'
+.end
+
+=back
+
+=head3 Class LWP;Protocol;file
+
+=over 4
+
+=cut
+
+.namespace ['LWP';'Protocol';'file']
+
+.include 'stat.pasm'
+
+.sub '' :init :load :anon
+    $P0 = subclass ['LWP';'Protocol'], ['LWP';'Protocol';'file']
+    .globalconst int RC_OK = 200
+    .globalconst int RC_BAD_REQUEST = 400
+    .globalconst int RC_NOT_FOUND = 404
+    .globalconst int RC_INTERNAL_SERVER_ERROR = 500
+.end
+
+=item request
+
+=cut
+
+.sub 'request' :method
+    .param pmc request
+    .param pmc proxy
+    if null proxy goto L1
+    $P0 = new ['HTTP';'Response']
+    $P1 = box RC_BAD_REQUEST
+    setattribute $P0, 'code', $P1
+    $P1 = box 'You can not proxy through the filesystem'
+    setattribute $P0, 'message', $P1
+    .return ($P0)
+  L1:
+    load_bytecode 'osutils.pbc'
+    .local string method
+    method = request.'method'()
+    $P0 = get_hll_global ['LWP';'Protocol';'file'], method
+    unless null $P0 goto L2
+    $P0 = new ['HTTP';'Response']
+    $P1 = box RC_BAD_REQUEST
+    setattribute $P0, 'code', $P1
+    $S0 = "Library does not allow method " . method
+    $S0 .= " for 'file:' URLs"
+    $P1 = box $S0
+    setattribute $P0, 'message', $P1
+    .return ($P0)
+  L2:
+    .local pmc url
+    url = request.'uri'()
+    .local string scheme
+    scheme = url.'scheme'()
+    if scheme == 'file' goto L3
+    $P0 = new ['HTTP';'Response']
+    $P1 = box RC_INTERNAL_SERVER_ERROR
+    setattribute $P0, 'code', $P1
+    $S0 = "LWP::Protocol::file::request called for '" . scheme
+    $S0 .= "'"
+    $P1 = box $S0
+    setattribute $P0, 'message', $P1
+    .return ($P0)
+  L3:
+    .tailcall $P0(self, request)
+.end
+
+.sub 'HEAD' :method :nsentry
+    .param pmc request
+    .tailcall self.'GET'(request)
+.end
+
+.sub 'GET' :method :nsentry
+    .param pmc request
+    .local pmc response
+    response = new ['HTTP';'Response']
+    .local string method
+    method = request.'method'()
+    .local pmc url
+    url = request.'uri'()
+    .local string path
+    path = url.'path'()
+
+    $I0 = stat path, .STAT_EXISTS
+    if $I0 goto L1
+    $P0 = box RC_NOT_FOUND
+    setattribute response, 'code', $P0
+    $S0 = "File `" . path
+    $S0 .= "' does not exist"
+    $P0 = box $S0
+    setattribute response, 'message', $P0
+    .return (response)
+  L1:
+
+    .local int mtime
+    mtime = stat path, .STAT_MODIFYTIME
+    $P0 = get_hll_global ['HTTP';'Date'], 'time2str'
+    $S0 = $P0(mtime)
+    response.'push_header'('Last-Modified', $S0)
+    .local int filesize
+    filesize = stat path, .STAT_FILESIZE
+    response.'push_header'('Content-Length', filesize)
+
+    if method == 'HEAD' goto L2
+    push_eh _handler
+    $S0 = slurp(path)
+    pop_eh
+    $P0 = box $S0
+    setattribute response, 'content', $P0
+  L2:
+    $P0 = box RC_OK
+    setattribute response, 'code', $P0
+    .return (response)
+
+  _handler:
+    .local pmc ex
+    .get_results (ex)
+    $P0 = box RC_INTERNAL_SERVER_ERROR
+    setattribute response, 'code', $P0
+    $S0 = ex
+    $P0 = box $S0
+    setattribute response, 'message', $P0
+    .return (response)
+.end
+
+.sub 'PUT' :method :nsentry
+    .param pmc request
+    .local pmc response
+    response = new ['HTTP';'Response']
+    .local pmc url
+    url = request.'uri'()
+    .local string path
+    path = url.'path'()
+    .local string content
+    content = request.'content'()
+
+    push_eh _handler
+    $S0 = spew(path, content)
+    pop_eh
+
+    $P0 = box RC_OK
+    setattribute response, 'code', $P0
+    .return (response)
+
+  _handler:
+    .local pmc ex
+    .get_results (ex)
+    $P0 = box RC_INTERNAL_SERVER_ERROR
+    setattribute response, 'code', $P0
+    $S0 = ex
+    $P0 = box $S0
+    setattribute response, 'message', $P0
+    .return (response)
+.end
+
+.sub 'DELETE' :method :nsentry
+    .param pmc request
+    .local pmc response
+    response = new ['HTTP';'Response']
+    .local pmc url
+    url = request.'uri'()
+    .local string path
+    path = url.'path'()
+
+    $I0 = stat path, .STAT_EXISTS
+    if $I0 goto L1
+    $P0 = box RC_NOT_FOUND
+    setattribute response, 'code', $P0
+    $S0 = "File `" . path
+    $S0 .= "' does not exist"
+    $P0 = box $S0
+    setattribute response, 'message', $P0
+    .return (response)
+  L1:
+
+    push_eh _handler
+    $S0 = unlink(path)
+    pop_eh
+
+    $P0 = box RC_OK
+    setattribute response, 'code', $P0
+    .return (response)
+
+  _handler:
+    .local pmc ex
+    .get_results (ex)
+    $P0 = box RC_INTERNAL_SERVER_ERROR
+    setattribute response, 'code', $P0
+    $S0 = ex
+    $P0 = box $S0
+    setattribute response, 'message', $P0
+    .return (response)
+.end
+
+=back
+
+=head3 Class LWP;Protocol;http
+
+=over 4
+
+=cut
+
+.namespace ['LWP';'Protocol';'http']
+
+.include 'socket.pasm'
+
+.sub '' :init :load :anon
+    $P0 = subclass ['LWP';'Protocol'], ['LWP';'Protocol';'http']
+.end
+
+.sub '_new_socket' :method
+    .param string host
+    .param int port
+    .local pmc sock, addr
+    sock = new 'Socket'
+    sock.'socket'(.PIO_PF_INET, .PIO_SOCK_STREAM, .PIO_PROTO_TCP)
+    addr = sock.'sockaddr'(host, port)
+    sock.'connect'(addr)
+    .return (sock)
+.end
+
+.sub '_fixup_header' :method
+    .param pmc headers
+    .param pmc url
+    .param pmc proxy
+    # Extract 'Host' header
+    .local string host
+    host = url.'authority'()
+    $I0 = index host, '@'
+    if $I0 < 0 goto L1
+    .local string userinfo
+    userinfo = substr host, 0, $I0
+    inc $I0
+    host = substr host, $I1
+    $S0 = headers['Authorization']
+    unless $S0 == '' goto L1
+    load_bytecode 'MIME/Base64.pbc'
+    $P0 = get_hll_global ['MIME';'Base64'], 'encode_base64'
+    $S0 = $P0(userinfo)
+    $S0 = 'Basic ' . $S0
+    headers['Authorization'] = $S0
+  L1:
+    headers['Host'] = host
+    if null proxy goto L2
+    userinfo = proxy.'userinfo'()
+    if userinfo == '' goto L2
+    load_bytecode 'MIME/Base64.pbc'
+    $P0 = get_hll_global ['MIME';'Base64'], 'encode_base64'
+    $S0 = $P0(userinfo)
+    $S0 = 'Basic ' . $S0
+    headers['Proxy-Authorization'] = $S0
+  L2:
+.end
+
+.sub '_format_request'
+    .param string method
+    .param string uri
+    .param pmc headers
+    .const string CRLF = "\r\n"
+    $P0 = new 'StringBuilder'
+    push $P0, method
+    push $P0, ' '
+    push $P0, uri
+    push $P0, ' HTTP/1.1'
+    push $P0, CRLF
+    $P1 = iter headers
+  L1:
+    unless $P1 goto L2
+    $S0 = shift $P1
+    $S1 = headers[$S0]
+    push $P0, $S0
+    push $P0, ': '
+    push $P0, $S1
+    push $P0, CRLF
+    goto L1
+  L2:
+    push $P0, CRLF
+    .return ($P0)
+.end
+
+.sub '_parse_response_headers' :method
+    .param pmc response
+    .param string str
+    .local string sep
+    sep = "\r\n"
+    $I0 = index str, "\r"
+    unless $I0 < 0 goto L0
+    sep = "\n"
+  L0:
+    $S0 = sep . sep
+    $I0 = index str, $S0
+    if $I0 < 0 goto L1
+    str = substr str, 0, $I0
+  L1:
+
+    $P0 = split sep, str
+    .local string status_line
+    status_line = shift $P0
+    $I0 = index status_line, " "
+    if $I0 < 0 goto L2
+    $S0 = substr status_line, 0, $I0
+    $P1 = box $S0
+    setattribute response, 'protocol', $P1
+    $I1 = $I0 + 1
+    $I0 = index status_line, " ", $I1
+    if $I0 < 0 goto L2
+    $I2 = $I0 - $I1
+    $S0 = substr status_line, $I1, $I2
+    $P1 = box $S0
+    setattribute response, 'code', $P1
+    inc $I0
+    $S0 = substr status_line, $I0
+    $P1 = box $S0
+    setattribute response, 'message', $P1
+
+    $P3 = new ['HTTP';'Headers']
+  L3:
+    unless $P0 goto L4
+    $S0 = shift $P0
+    $I0 = index $S0, ": "
+    if $I0 < 0 goto L3
+    $S1 = substr $S0, 0, $I0
+    $I0 += 2
+    $S2 = substr $S0, $I0
+    $P3[$S1] = $S2
+    goto L3
+  L4:
+    setattribute response, 'headers', $P3
+
+    $I0 = length str
+    .return ($I0)
+  L2:
+    .return (0)
+.end
+
+.sub '_parse_response_content' :method
+    .param pmc response
+    .param string str
+    $I0 = index str, "\r\n\r\n"
+    if $I0 < 0 goto L1
+    $I0 += 4
+    $S0 = substr str, $I0
+    $P0 = box $S0
+    setattribute response, 'content', $P0
+    goto L2
+  L1:
+    $I0 = index str, "\n\n"
+    if $I0 < 0 goto L1
+    $I0 += 2
+    $S0 = substr str, $I0
+    $P0 = box $S0
+    setattribute response, 'content', $P0
+  L2:
+.end
+
+=item request
+
+=cut
+
+.sub 'request' :method
+    .param pmc request
+    .param pmc proxy
+
+    .local string method
+    method = request.'method'()
+    .local pmc url
+    url = request.'uri'()
+    .local string host, port, fullpath
+    if null proxy goto L1
+    # proxy is an URL to an HTTP server which will proxy this request
+    host = proxy.'host'()
+    port = proxy.'port'()
+    unless method == 'CONNECT' goto L3
+    fullpath = url.'host'()
+    fullpath .= ':'
+    $S0 = url.'port'()
+    fullpath .= $S0
+    goto L2
+  L3:
+    fullpath = url
+    goto L2
+  L1:
+    host = url.'host'()
+    port = url.'port'()
+    fullpath = url.'path_query'()
+    $I0 = index fullpath, '/'
+    if $I0 == 0 goto L2
+    fullpath = '/' . fullpath
+  L2:
+
+    # connect to remote site
+    .local pmc sock
+    sock = self.'_new_socket'(host, port)
+
+    .local pmc request_headers
+    request_headers = request.'headers'()
+    self.'_fixup_header'(request_headers, url, proxy)
+
+    .local pmc ua
+    ua = self.'ua'()
+    $S0 = _format_request(method, fullpath, request_headers)
+    sock.'send'($S0)
+
+    .local string content
+    content = request.'content'()
+    unless content goto L11
+    .local int content_length
+    content_length = length content
+    $I0 = 0
+  L12:
+    unless $I0 < content_length goto L11
+    $S0 = substr content, $I0, 8192
+    $I1 = sock.'send'($S0)
+    $I0 += $I1
+    $N0 = $I0 / content_length
+    goto L12
+  L11:
+
+    .local pmc response
+    response = new ['HTTP';'Response']
+    .local pmc buf
+    buf = new 'StringBuilder'
+    .local int header_length
+    content_length = 0
+  L21:
+    ua.'progress'('tick', request)
+    $S0 = sock.'recv'()
+    if $S0 == '' goto L22
+    push buf, $S0
+    header_length = self.'_parse_response_headers'(response, buf)
+    $I0 = response.'is_success'()
+    unless $I0 goto L22
+    $S0 = response.'get_header'('Content-Length')
+    if $S0 == '' goto L21
+    content_length = $S0
+  L23:
+    $I0 = buf.'get_string_length'()
+    $I0 -= header_length
+    $N0 = $I0 / content_length
+    ua.'progress'($N0, request)
+    $S0 = sock.'recv'()
+    if $S0 == '' goto L22
+    push buf, $S0
+    goto L23
+  L22:
+    sock.'close'()
+    self.'_parse_response_content'(response, buf)
+    .return (response)
+.end
+
+=back
+
+=head1 AUTHOR
+
+Francois Perrad
+
+=cut
+
+# Local Variables:
+#   mode: pir
+#   fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:

Copied: branches/ucs4_encoding/runtime/parrot/library/LWP/UserAgent.pir (from r46972, trunk/runtime/parrot/library/LWP/UserAgent.pir)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/ucs4_encoding/runtime/parrot/library/LWP/UserAgent.pir	Mon May 24 21:18:41 2010	(r46974, copy of r46972, trunk/runtime/parrot/library/LWP/UserAgent.pir)
@@ -0,0 +1,553 @@
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+=head1 NAME
+
+LWP - The World-Wide Web library for Parrot
+
+=head2 DESCRIPTION
+
+Simplified port of LWP (version 5.834)
+see http://search.cpan.org/~gaas/libwww-perl/
+
+=head3 Class LWP;UserAgent
+
+=over 4
+
+=cut
+
+.namespace ['LWP';'UserAgent']
+
+.sub '' :init :load :anon
+    load_bytecode 'URI.pbc'
+    load_bytecode 'HTTP/Message.pbc'
+    load_bytecode 'LWP/Protocol.pbc'
+    $P0 = newclass ['LWP';'UserAgent']
+    $P0.'add_attribute'('def_headers')
+    $P0.'add_attribute'('show_progress')
+    $P0.'add_attribute'('progress_start')
+    $P0.'add_attribute'('progress_lastp')
+    $P0.'add_attribute'('progress_ani')
+    $P0.'add_attribute'('max_redirect')
+    $P0.'add_attribute'('proxy')
+    $P0.'add_attribute'('no_proxy')
+    .globalconst int RC_MOVED_PERMANENTLY = 301
+    .globalconst int RC_FOUND = 302
+    .globalconst int RC_SEE_OTHER = 303
+    .globalconst int RC_TEMPORARY_REDIRECT = 307
+    .globalconst int RC_UNAUTHORIZED = 401
+    .globalconst int RC_PROXY_AUTHENTICATION_REQUIRED = 407
+    .globalconst int RC_NOT_IMPLEMENTED = 501
+.end
+
+.sub 'init' :vtable :method
+    $P0 = new ['HTTP';'Headers']
+    $P0['User-Agent'] = 'libwww-parrot'
+    setattribute self, 'def_headers', $P0
+    $P0 = box 7
+    setattribute self, 'max_redirect', $P0
+    $P0 = new 'Hash'
+    setattribute self, 'proxy', $P0
+    $P0 = new 'ResizableStringArray'
+    setattribute self, 'no_proxy', $P0
+.end
+
+.sub 'send_request' :method
+    .param pmc request
+    .local string method
+    method = request.'method'()
+    .local pmc url
+    url = request.'uri'()
+    .local string scheme
+    scheme = url.'scheme'()
+    self.'progress'('begin', request)
+    .local pmc proxy
+    proxy = request.'proxy'()
+    if null proxy goto L1
+    scheme = proxy.'scheme'()
+  L1:
+    .local pmc protocol, response
+    $P0 =get_hll_global ['LWP';'Protocol'], 'create'
+    protocol = $P0(scheme, self)
+    unless null protocol goto L2
+    response = _new_response(request, RC_NOT_IMPLEMENTED, 'Not Implemented')
+    goto L3
+  L2:
+    response = protocol.'request'(request, proxy)
+    setattribute response, 'request', request
+    $P0 = get_hll_global ['HTTP';'Date'], 'time2str'
+    $I0 = time
+    $S0 = $P0($I0)
+    response.'push_header'('Client-Date', $S0)
+  L3:
+    self.'progress'('end', response)
+    .return (response)
+.end
+
+.sub 'prepare_request' :method
+    .param pmc request
+    $P0 = request.'method'()
+    unless null $P0 goto L1
+    die "Method missing"
+  L1:
+    $P0 = request.'uri'()
+    unless null $P0 goto L2
+    die "URL missing"
+  L2:
+    $S0 = $P0.'scheme'()
+    unless $S0 == '' goto L3
+    die "URL must be absolute"
+  L3:
+    self.'_need_proxy'(request)
+    $P0 = getattribute self, 'def_headers'
+    $P1 = iter $P0
+  L4:
+    unless $P1 goto L5
+    $S0 = shift $P1
+    $S1 = $P0[$S0]
+    request.'push_header'($S0, $S1)
+    goto L4
+  L5:
+.end
+
+.sub 'simple_request' :method
+    .param pmc request
+    unless null request goto L1
+    die "No request object passed in"
+  L1:
+    $I0 = isa request, ['HTTP';'Request']
+    if $I0 goto L2
+    die "You need a ['HTTP';'Request']"
+  L2:
+    self.'prepare_request'(request)
+    .tailcall self.'send_request'(request)
+.end
+
+.sub 'request' :method
+    .param pmc request
+    .param pmc previous         :optional
+    .param int has_previous     :opt_flag
+
+    .local pmc response
+    response = self.'simple_request'(request)
+    unless has_previous goto L1
+    response.'previous'(previous)
+  L1:
+
+    .local int redirect
+    $P0 = response.'redirect'()
+    redirect = elements $P0
+    .local int max_redirect
+    $P0 = getattribute self, 'max_redirect'
+    max_redirect = $P0
+    unless redirect >= max_redirect goto L2
+    $S0 = 'Redirect loop detected (max_redirect = '
+    $S1 = max_redirect
+    $S0 .= $S1
+    $S0 .= ')'
+    response.'push_header'('Client-Warning', $S0)
+    .return (response)
+  L2:
+
+    .local int code
+    code = response.'code'()
+
+    if code == RC_MOVED_PERMANENTLY goto L3
+    if code == RC_FOUND goto L3
+    if code == RC_SEE_OTHER goto L3
+    if code == RC_TEMPORARY_REDIRECT goto L3
+    goto L4
+  L3:
+    .local pmc referral
+    referral = clone request
+    # These headers should never be forwarded
+    referral.'remove_header'('Host')
+    referral.'remove_header'('Cookie')
+
+    # work in progress
+
+    .local string referral_uri
+    referral_uri = response.'get_header'('Location')
+    $P0 = get_hll_global ['URI'], 'new_from_string'
+    $P1 = $P0(referral_uri)
+    $S0 = $P1.'scheme'()
+    unless $S0 == '' goto L5
+    $P2 = new 'StringBuilder'
+    $P3 = request.'uri'()
+    $S0 = $P3.'scheme'()
+    push $P2, $S0
+    push $P2, '://'
+    $S0 = request.'get_header'('Host')
+    push $P2, $S0
+    push $P2, referral_uri
+    $P1 = $P0($P2)
+  L5:
+    setattribute referral, 'uri', $P1
+
+    # work in progress
+
+    $I0 = self.'redirect_ok'(referral, response)
+    if $I0 goto L6
+    .return (response)
+  L6:
+    .tailcall self.'request'(referral, response)
+
+  L4:
+    .local int proxy
+    proxy = 0
+    .local string ch_header
+    ch_header = 'WWW-Authenticate'
+    if code == RC_UNAUTHORIZED goto L11
+    proxy = 1
+    ch_header = 'Proxy-Authenticate'
+    if code == RC_PROXY_AUTHENTICATION_REQUIRED goto L11
+    goto L12
+  L11:
+    .local string challenge
+    challenge = response.'get_header'(ch_header)
+    unless challenge == '' goto L13
+    response.'push_header'('Client-Warning', 'Missing Authenticate header')
+    .return (response)
+  L13:
+
+    # work in progress
+    print "# "
+    say challenge
+
+  L12:
+    .return (response)
+.end
+
+=item get
+
+=cut
+
+.sub 'get' :method
+    .param pmc args :slurpy
+    .param pmc kv :slurpy :named
+    .local pmc request
+    $P0 = get_hll_global ['HTTP';'Request'], 'GET'
+    request = $P0(args :flat, kv :flat :named)
+    .tailcall self.'request'(request)
+.end
+
+=item head
+
+=cut
+
+.sub 'head' :method
+    .param pmc args :slurpy
+    .param pmc kv :slurpy :named
+    .local pmc request
+    $P0 = get_hll_global ['HTTP';'Request'], 'HEAD'
+    request = $P0(args :flat, kv :flat :named)
+    .tailcall self.'request'(request)
+.end
+
+=item post
+
+=cut
+
+.sub 'post' :method
+    .param pmc args :slurpy
+    .param pmc kv :slurpy :named
+    .local pmc request
+    $P0 = get_hll_global ['HTTP';'Request'], 'POST'
+    request = $P0(args :flat, kv :flat :named)
+    .tailcall self.'request'(request)
+.end
+
+=item put
+
+=cut
+
+.sub 'put' :method
+    .param pmc args :slurpy
+    .param pmc kv :slurpy :named
+    .local pmc request
+    $P0 = get_hll_global ['HTTP';'Request'], 'PUT'
+    request = $P0(args :flat, kv :flat :named)
+    .tailcall self.'request'(request)
+.end
+
+=item delete
+
+=cut
+
+.sub 'delete' :method
+    .param pmc args :slurpy
+    .param pmc kv :slurpy :named
+    .local pmc request
+    $P0 = get_hll_global ['HTTP';'Request'], 'DELETE'
+    request = $P0(args :flat, kv :flat :named)
+    .tailcall self.'request'(request)
+.end
+
+.sub 'progress' :method
+    .param string status
+    .param pmc msg
+    $P0 = getattribute self, 'show_progress'
+    if null $P0 goto L1
+    unless $P0 goto L1
+    unless status == 'begin' goto L2
+    printerr "** "
+    $P0 = getattribute msg, 'method'
+    printerr $P0
+    printerr " "
+    $P0 = getattribute msg, 'uri'
+    printerr $P0
+    printerr " ==> "
+    $N1 = time
+    $P0 = box $N1
+    setattribute self, 'progress_start', $P0
+    $P0 = box ''
+    setattribute self, 'progress_lastp', $P0
+    $P0 = box 0
+    setattribute self, 'progress_ani', $P0
+    goto L1
+  L2:
+    unless status == 'end' goto L3
+    $P0 = getattribute self, 'progress_start'
+    $N1 = $P0
+    $N2 = time
+    null $P0
+    setattribute self, 'progress_start', $P0
+    setattribute self, 'progress_lastp', $P0
+    setattribute self, 'progress_ani', $P0
+    $S0 = msg.'status_line'()
+    printerr $S0
+    $N0 =$N2 - $N1
+    $I0 = $N0
+    unless $I0 goto L4
+    printerr " ("
+    printerr $I0
+    printerr "s)"
+  L4:
+    printerr "\n"
+    goto L1
+  L3:
+    unless status == 'tick' goto L5
+    $P0 = getattribute self, 'progress_ani'
+    inc $P0
+    $P0 %= 4
+    $P1 = split '', '-\|/'
+    $S0 = $P1[$P0]
+    printerr $S0
+    printerr "\b"
+    goto L1
+  L5:
+    $N0 = status
+    $N0 *= 100
+    $P0 = new 'FixedFloatArray'
+    set $P0, 1
+    $P0[0] = $N0
+    $S1 = sprintf '%3.0f%%', $P0
+    $P0 = getattribute self, 'progress_lastp'
+    $S0 = $P0
+    if $S0 == $S1 goto L1
+    set $P0, $S1
+    printerr $S1
+    printerr "\b\b\b\b"
+  L1:
+.end
+
+.sub 'redirect_ok' :method
+    .param pmc new_request
+    .param pmc response
+    $P0 = response.'request'()
+    $S0 = $P0.'method'()
+    if $S0 == 'GET' goto L1
+    if $S0 == 'HEAD' goto L1
+    .return (0)
+  L1:
+    # work in progress
+    .return (1)
+.end
+
+=item max_redirect
+
+=cut
+
+.sub 'max_redirect' :method
+    .param pmc val
+    setattribute self, 'max_redirect', val
+.end
+
+=item show_progress
+
+=cut
+
+.sub 'show_progress' :method
+    .param pmc val
+    setattribute self, 'show_progress', val
+.end
+
+=item agent
+
+=cut
+
+.sub 'agent' :method
+    .param string val
+    $P0 = getattribute self, 'def_headers'
+    $P0['User-Agent'] = val
+.end
+
+.sub '_need_proxy' :method
+    .param pmc req
+    $P0 = req.'proxy'()
+    unless null $P0 goto L1
+    .local pmc uri
+    uri = req.'uri'()
+    .local string scheme
+    scheme = uri.'scheme'()
+    $P0 = getattribute self, 'proxy'
+    .local string proxy
+    proxy = $P0[scheme]
+    unless proxy goto L1
+    .local string host
+    host = uri.'host'()
+    $P0 = getattribute self, 'no_proxy'
+    $P1 = iter $P0
+  L2:
+    unless $P1 goto L3
+    $S0 = shift $P1
+    $I0 = index host, $S0
+    if $I0 < 0 goto L2
+    goto L1
+  L3:
+    $P0 = get_hll_global ['URI'], 'new_from_string'
+    $P0 = $P0(proxy)
+    req.'proxy'($P0)
+  L1:
+.end
+
+=item env_provy
+
+=cut
+
+.sub 'env_proxy' :method
+    $P0 = new 'Env'
+    $P1 = iter $P0
+  L1:
+    unless $P1 goto L2
+    $S0 = shift $P1
+    $S1 = downcase $S0
+    $I0 = index $S1, '_proxy'
+    if $I0 < 0 goto L1
+    $S2 = $P0[$S0]
+    unless $S1 == 'no_proxy' goto L3
+    $P2 = split ',', $S2
+    $P3 = iter $P2
+  L4:
+    unless $P3 goto L1
+    $S0 = shift $P3
+    $S0 = trim($S0)
+    self.'no_proxy'($S0)
+    goto L4
+  L3:
+    $S3 = substr $S1, 0, $I0
+    # Ignore xxx_proxy variables if xxx isn't a supported protocol
+    $P11 = new 'Key'
+    set $P11, 'LWP'
+    $P12 = new 'Key'
+    set $P12, 'Protocol'
+    push $P11, $P12
+    $P13 = new 'Key'
+    set $P13, $S3
+    push $P11, $P13
+    $P10 = get_class $P11
+    if null $P10 goto L1
+    self.'proxy'($S3, $S2)
+    goto L1
+  L2:
+.end
+
+.include 'cclass.pasm'
+
+.sub 'trim' :anon
+    .param string str
+    $I0 = length str
+    $I0 = find_not_cclass .CCLASS_WHITESPACE, str, 0, $I0
+    str = substr str, $I0
+    $I0 = length str
+  L1:
+    dec $I0
+    unless $I0 > 0 goto L2
+    $I1 = is_cclass .CCLASS_WHITESPACE, str, $I0
+    if $I1 != 0 goto L1
+  L2:
+    inc $I0
+    str = substr str, 0, $I0
+    .return (str)
+.end
+
+=item proxy
+
+=cut
+
+.sub 'proxy' :method
+    .param string scheme
+    .param string url
+    $P0 = getattribute self, 'proxy'
+    $P0[scheme] = url
+.end
+
+=item no_proxy
+
+=cut
+
+.sub 'no_proxy' :method
+    .param pmc args :slurpy
+    $I0 = elements args
+    if $I0 goto L1
+    $P0 = new 'ResizableStringArray'
+    setattribute self, 'no_proxy', $P0
+    goto L2
+  L1:
+    $P0 = getattribute self, 'no_proxy'
+  L3:
+    unless args goto L2
+    $S0 = shift args
+    push $P0, $S0
+    goto L3
+  L2:
+.end
+
+.sub '_new_response'
+    .param pmc request
+    .param pmc code
+    .param pmc message
+    .local pmc response
+    response = new ['HTTP';'Response']
+    setattribute response, 'code', code
+    setattribute response, 'message', message
+    setattribute response, 'request', request
+    $P0 = get_hll_global ['HTTP';'Date'], 'time2str'
+    $I0 = time
+    $S0 = $P0($I0)
+    response.'push_header'('Client-Date', $S0)
+    response.'push_header'('Client-Warning', "Internal response")
+    response.'push_header'('Content-Type', 'text/plain')
+    $S0 = code
+    $S0 .= ' '
+    $S1 = message
+    $S0 .= $S1
+    $S0 .= "\n"
+    $P0 = box $S0
+    setattribute response, 'content', $P0
+    .return (response)
+.end
+
+=back
+
+=head1 AUTHOR
+
+Francois Perrad
+
+=cut
+
+# Local Variables:
+#   mode: pir
+#   fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:

Modified: branches/ucs4_encoding/runtime/parrot/library/URI.pir
==============================================================================
--- branches/ucs4_encoding/runtime/parrot/library/URI.pir	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/runtime/parrot/library/URI.pir	Mon May 24 21:18:41 2010	(r46974)
@@ -280,16 +280,45 @@
     $P0 = subclass ['URI';'_generic'], ['URI';'_server']
 .end
 
+=item userinfo
+
+=cut
+
+.sub 'userinfo' :method
+    $S0 = self.'authority'()
+    $I0 = index $S0, '@'
+    if $I0 < 0 goto L1
+    $S0 = substr $S0, 0, $I0
+    .return ($S0)
+  L1:
+    .return ('')
+.end
+
 =item host
 
 =cut
 
 .sub 'host' :method
     $S0 = self.'authority'()
-    $I0 = index $S0, ':'
+    $I0 = index $S0, '@'
     if $I0 < 0 goto L1
-    $S0 = substr $S0, 0, $I0
+    inc $I0
+    $S0 = substr $S0, $I0
   L1:
+    .local int pos, lastpos
+    lastpos = length $S0
+    pos = 0
+  L2:
+    pos = index $S0, ':', pos
+    if pos < 0 goto L3
+    $I1 = pos
+    inc pos
+    $I0 = is_cclass .CCLASS_NUMERIC, $S0, pos
+    unless $I0 goto L2
+    $I0 = find_not_cclass .CCLASS_NUMERIC, $S0, pos, lastpos
+    unless $I0 == lastpos goto L2
+    $S0 = substr $S0, 0, $I1
+  L3:
     .return ($S0)
 .end
 
@@ -301,8 +330,10 @@
     $S0 = self.'authority'()
     .local int pos, lastpos
     lastpos = length $S0
-    pos = index $S0, ':'
-    if pos < 0 goto L1
+    pos = 0
+  L1:
+    pos = index $S0, ':', pos
+    if pos < 0 goto L2
     inc pos
     $I0 = is_cclass .CCLASS_NUMERIC, $S0, pos
     unless $I0 goto L1
@@ -310,7 +341,7 @@
     unless $I0 == lastpos goto L1
     $S1 = substr $S0, pos
     .return ($S1)
-  L1:
+  L2:
     .tailcall self.'default_port'()
 .end
 

Modified: branches/ucs4_encoding/runtime/parrot/library/distutils.pir
==============================================================================
--- branches/ucs4_encoding/runtime/parrot/library/distutils.pir	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/runtime/parrot/library/distutils.pir	Mon May 24 21:18:41 2010	(r46974)
@@ -1057,8 +1057,6 @@
     .param string cflags
     .param string ldflags
     mkpath('dynext', 1 :named('verbose'))
-    .local pmc cores
-    cores = get_cores()
     .local string load_ext
     load_ext = get_load_ext()
     $P0 = iter hash
@@ -1067,18 +1065,10 @@
     .local string ops, src
     ops = shift $P0
     src = hash[ops]
-    $P1 = iter cores
-  L3:
-    unless $P1 goto L4
-    .local string core, suffix
-    core = shift $P1
-    suffix = cores[core]
-    $S0 = _mk_path_dynops(ops, suffix, load_ext)
+    $S0 = _mk_path_dynops(ops, load_ext)
     $I0 = newer($S0, src)
-    if $I0 goto L3
-    __build_dynops(src, ops, core, suffix, cflags, ldflags)
-    goto L3
-  L4:
+    if $I0 goto L1
+    __build_dynops(src, ops, cflags, ldflags)
     goto L1
   L2:
 .end
@@ -1086,31 +1076,24 @@
 .sub '__build_dynops' :anon
     .param string src
     .param string ops
-    .param string core
-    .param string suffix
     .param string cflags
     .param string ldflags
     .local pmc config
     config = get_config()
     .local string cmd
-    cmd = config['perl']
-    cmd .= " "
-    $S0 = get_tool('build/ops2c.pl')
-    cmd .= $S0
-    cmd .= " "
-    cmd .= core
+    cmd = get_executable('ops2c')
     cmd .= " --dynamic "
     cmd .= src
     system(cmd, 1 :named('verbose'))
 
     $S0 = config['o']
-    $S1 = _mk_path_gen_dynops(src, ops, suffix, $S0)
-    $S2 = _mk_path_gen_dynops(src, ops, suffix, '.c')
+    $S1 = _mk_path_gen_dynops(src, ops, $S0)
+    $S2 = _mk_path_gen_dynops(src, ops, '.c')
     __compile_cc($S1, $S2, cflags)
 
     .local string dynext
     $S0 = config['load_ext']
-    dynext = _mk_path_dynops(ops, suffix, $S0)
+    dynext = _mk_path_dynops(ops, $S0)
     cmd = config['ld']
     cmd .= " "
     $S0 = config['ld_out']
@@ -1118,7 +1101,7 @@
     cmd .= dynext
     cmd .= " "
     $S0 = config['o']
-    $S0 = _mk_path_gen_dynops(src, ops, suffix, $S0)
+    $S0 = _mk_path_gen_dynops(src, ops, $S0)
     cmd .= $S0
     cmd .= " "
     $S0 = get_ldflags()
@@ -1176,10 +1159,8 @@
 
 .sub '_mk_path_dynops' :anon
     .param string ops
-    .param string suffix
     .param string load_ext
     $S0 = "dynext/" . ops
-    $S0 .= suffix
     $S0 .= load_ext
     .return ($S0)
 .end
@@ -1187,22 +1168,14 @@
 .sub '_mk_path_gen_dynops' :anon
     .param string src
     .param string ops
-    .param string suffix
     .param string ext
     $S0 = dirname(src)
     $S0 .= "/"
     $S0 .= ops
-    $S0 .= suffix
     $S0 .= ext
     .return ($S0)
 .end
 
-.sub 'get_cores'
-    $P0 = new 'Hash'
-    $P0['C'] = ''
-    .return ($P0)
-.end
-
 =item dynpmc
 
 hash
@@ -1711,8 +1684,6 @@
 
 .sub 'clean_dynops'
     .param pmc hash
-    .local pmc cores
-    cores = get_cores()
     .local string load_ext, obj
     load_ext = get_load_ext()
     obj = get_obj()
@@ -1722,22 +1693,14 @@
     .local string ops, src
     ops = shift $P0
     src = hash[ops]
-    $P1 = iter cores
-  L3:
-    unless $P1 goto L4
-    .local string core, suffix
-    core = shift $P1
-    suffix = cores[core]
-    $S0 = _mk_path_dynops(ops, suffix, load_ext)
+    $S0 = _mk_path_dynops(ops, load_ext)
     unlink($S0, 1 :named('verbose'))
-    $S0 = _mk_path_gen_dynops(src, ops, suffix, '.c')
+    $S0 = _mk_path_gen_dynops(src, ops, '.c')
     unlink($S0, 1 :named('verbose'))
-    $S0 = _mk_path_gen_dynops(src, ops, suffix, '.h')
+    $S0 = _mk_path_gen_dynops(src, ops, '.h')
     unlink($S0, 1 :named('verbose'))
-    $S0 = _mk_path_gen_dynops(src, ops, suffix, obj)
+    $S0 = _mk_path_gen_dynops(src, ops, obj)
     unlink($S0, 1 :named('verbose'))
-    goto L3
-  L4:
     goto L1
   L2:
 .end
@@ -2152,9 +2115,10 @@
     set $P0, 1
     $P0[0] = archive
     push contents, $P0
-    load_bytecode 'LWP.pir'
+    load_bytecode 'LWP/UserAgent.pir'
     .local pmc ua, response
     ua = new ['LWP';'UserAgent']
+    ua.'env_proxy'()
     ua.'show_progress'(1)
     $S0 = kv['smolder_url']
     response = ua.'post'($S0, contents :flat, 'form-data' :named('Content-Type'), 'close' :named('Connection'))
@@ -2406,26 +2370,17 @@
 .sub 'get_install_dynops' :anon
     .param pmc files
     .param pmc hash
-    .local string libdir, load_ext, ops, suffix
+    .local string libdir, load_ext, ops
     libdir = get_libdir()
     load_ext = get_load_ext()
-    .local pmc cores
-    cores = get_cores()
     $P0 = iter hash
   L1:
     unless $P0 goto L2
     ops = shift $P0
-    $P1 = iter cores
-  L3:
-    unless $P1 goto L4
-    $S0 = shift $P1
-    suffix = cores[$S0]
-    $S1 = _mk_path_dynops(ops, suffix, load_ext)
+    $S1 = _mk_path_dynops(ops, load_ext)
     $S2 = libdir . "/"
     $S2 .= $S1
     files[$S2] = $S1
-    goto L3
-  L4:
     goto L1
   L2:
 .end

Modified: branches/ucs4_encoding/src/debug.c
==============================================================================
--- branches/ucs4_encoding/src/debug.c	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/src/debug.c	Mon May 24 21:18:41 2010	(r46974)
@@ -2481,8 +2481,7 @@
                                      " :unused040",
                                      " :optional",
                                      " :opt_flag",
-                                     " :named",
-                                     NULL
+                                     " :named"
         };
 
 
@@ -2503,7 +2502,7 @@
 
             /* Add flags, if we have any. */
             {
-                int flag_idx = 0;
+                unsigned int flag_idx = 0;
                 int flags = sig_value;
 
                 /* End when we run out of flags, off the end of flag_names, or
@@ -2511,10 +2510,12 @@
                  * 100 is just an estimate of all buf lengths added together.
                  */
                 while (flags && idx < sizeof (buf) - 100) {
-                    const char * const flag_string
-                                    = (specialop == 2  && STREQ(flag_names[flag_idx], " :flat"))
+                    const char * const flag_string =
+                            flag_idx < (sizeof flag_names / sizeof (char *))
+                                ? (specialop == 2  && STREQ(flag_names[flag_idx], " :flat"))
                                     ? " :slurpy"
-                                    : flag_names[flag_idx];
+                                    : flag_names[flag_idx]
+                                : (const char *) NULL;
 
                     if (! flag_string)
                         break;

Modified: branches/ucs4_encoding/src/dynoplibs/Rules.in
==============================================================================
--- branches/ucs4_encoding/src/dynoplibs/Rules.in	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/src/dynoplibs/Rules.in	Mon May 24 21:18:41 2010	(r46974)
@@ -17,8 +17,8 @@
 
 src/dynoplibs/obscure_ops.h: src/dynoplibs/obscure_ops.c
 
-src/dynoplibs/obscure_ops.c: src/dynoplibs/obscure.ops $(BUILD_TOOLS_DIR)/ops2c.pl
-	$(PERL) $(BUILD_TOOLS_DIR)/ops2c.pl C --dynamic src/dynoplibs/obscure.ops
+src/dynoplibs/obscure_ops.c: src/dynoplibs/obscure.ops $(OPS2C)
+	$(OPS2C) --dynamic src/dynoplibs/obscure.ops
 
 
 $(DYNEXT_DIR)/math_ops$(LOAD_EXT): src/dynoplibs/math_ops$(O) $(LIBPARROT)
@@ -26,8 +26,8 @@
 #IF(win32):	if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;2
 #IF(cygwin or hpux):	$(CHMOD) 0775 $@
 
-src/dynoplibs/math_ops.c: src/dynoplibs/math.ops $(BUILD_TOOLS_DIR)/ops2c.pl
-	$(PERL) $(BUILD_TOOLS_DIR)/ops2c.pl C --dynamic src/dynoplibs/math.ops
+src/dynoplibs/math_ops.c: src/dynoplibs/math.ops $(OPS2C)
+	$(OPS2C) --dynamic src/dynoplibs/math.ops
 
 src/dynoplibs/math_ops$(O): $(DYNOP_O_DEPS) \
     src/dynoplibs/math_ops.c src/dynoplibs/math_ops.h
@@ -45,5 +45,5 @@
 
 src/dynoplibs/deprecated_ops.h: src/dynoplibs/deprecated_ops.c
 
-src/dynoplibs/deprecated_ops.c: src/dynoplibs/deprecated.ops $(BUILD_TOOLS_DIR)/ops2c.pl
-	$(PERL) $(BUILD_TOOLS_DIR)/ops2c.pl C --dynamic src/dynoplibs/deprecated.ops
+src/dynoplibs/deprecated_ops.c: src/dynoplibs/deprecated.ops $(OPS2C)
+	$(OPS2C) --dynamic src/dynoplibs/deprecated.ops

Modified: branches/ucs4_encoding/src/embed.c
==============================================================================
--- branches/ucs4_encoding/src/embed.c	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/src/embed.c	Mon May 24 21:18:41 2010	(r46974)
@@ -281,6 +281,7 @@
 */
 
 PARROT_EXPORT
+PARROT_PURE_FUNCTION
 Parrot_Int
 Parrot_test_flag(PARROT_INTERP, Parrot_Int flag)
 {
@@ -300,6 +301,7 @@
 */
 
 PARROT_EXPORT
+PARROT_PURE_FUNCTION
 Parrot_UInt
 Parrot_test_debug(PARROT_INTERP, Parrot_UInt flag)
 {
@@ -319,6 +321,7 @@
 */
 
 PARROT_EXPORT
+PARROT_PURE_FUNCTION
 Parrot_UInt
 Parrot_test_trace(PARROT_INTERP, Parrot_UInt flag)
 {

Modified: branches/ucs4_encoding/src/hash.c
==============================================================================
--- branches/ucs4_encoding/src/hash.c	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/src/hash.c	Mon May 24 21:18:41 2010	(r46974)
@@ -375,7 +375,7 @@
 */
 
 PARROT_WARN_UNUSED_RESULT
-PARROT_PURE_FUNCTION
+PARROT_CONST_FUNCTION
 size_t
 key_hash_int(SHIM_INTERP, ARGIN_NULLOK(const void *value), size_t seed)
 {
@@ -396,7 +396,7 @@
 */
 
 PARROT_WARN_UNUSED_RESULT
-PARROT_PURE_FUNCTION
+PARROT_CONST_FUNCTION
 int
 int_compare(SHIM_INTERP, ARGIN_NULLOK(const void *a), ARGIN_NULLOK(const void *b))
 {
@@ -1121,8 +1121,7 @@
 */
 
 void
-parrot_chash_destroy_values(PARROT_INTERP, ARGMOD(Hash *hash),
-    NOTNULL(value_free func))
+parrot_chash_destroy_values(PARROT_INTERP, ARGMOD(Hash *hash), NOTNULL(value_free func))
 {
     ASSERT_ARGS(parrot_chash_destroy_values)
     UINTVAL i;

Modified: branches/ucs4_encoding/src/interp/inter_misc.c
==============================================================================
--- branches/ucs4_encoding/src/interp/inter_misc.c	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/src/interp/inter_misc.c	Mon May 24 21:18:41 2010	(r46974)
@@ -385,6 +385,7 @@
 */
 
 PARROT_WARN_UNUSED_RESULT
+PARROT_CONST_FUNCTION
 INTVAL
 sysinfo_i(SHIM_INTERP, INTVAL info_wanted)
 {

Modified: branches/ucs4_encoding/src/longopt.c
==============================================================================
--- branches/ucs4_encoding/src/longopt.c	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/src/longopt.c	Mon May 24 21:18:41 2010	(r46974)
@@ -1,5 +1,5 @@
 /*
-Copyright (C) 2001-2007, Parrot Foundation.
+Copyright (C) 2001-2010, Parrot Foundation.
 $Id$
 
 =head1 NAME
@@ -25,6 +25,7 @@
 /* HEADERIZER BEGIN: static */
 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
 
+PARROT_WARN_UNUSED_RESULT
 static int longopt_get_longopt(PARROT_INTERP,
     int argc,
     ARGIN(const char* argv[]),
@@ -36,6 +37,7 @@
         __attribute__nonnull__(5)
         FUNC_MODIFIES(* info_buf);
 
+PARROT_WARN_UNUSED_RESULT
 static int longopt_get_shortopt(PARROT_INTERP,
     int argc,
     ARGIN(const char* argv[]),
@@ -64,6 +66,57 @@
 
 /*
 
+=item C<const struct longopt_opt_decl * Parrot_cmd_options(void)>
+
+Set up the const struct declaration for cmd_options
+
+=cut
+
+*/
+
+PARROT_EXPORT
+PARROT_CANNOT_RETURN_NULL
+PARROT_CONST_FUNCTION
+const struct longopt_opt_decl *
+Parrot_cmd_options(void)
+{
+    ASSERT_ARGS(Parrot_cmd_options)
+    static const struct longopt_opt_decl cmd_options[] = {
+        { '.', '.', (OPTION_flags)0, { "--wait" } },
+        { 'D', 'D', OPTION_optional_FLAG, { "--parrot-debug" } },
+        { 'E', 'E', (OPTION_flags)0, { "--pre-process-only" } },
+        { 'G', 'G', (OPTION_flags)0, { "--no-gc" } },
+        { '\0', OPT_HASH_SEED, OPTION_required_FLAG, { "--hash-seed" } },
+        { 'I', 'I', OPTION_required_FLAG, { "--include" } },
+        { 'L', 'L', OPTION_required_FLAG, { "--library" } },
+        { 'O', 'O', OPTION_optional_FLAG, { "--optimize" } },
+        { 'R', 'R', OPTION_required_FLAG, { "--runcore" } },
+        { 'g', 'g', OPTION_required_FLAG, { "--gc" } },
+        { 'V', 'V', (OPTION_flags)0, { "--version" } },
+        { 'X', 'X', OPTION_required_FLAG, { "--dynext" } },
+        { '\0', OPT_DESTROY_FLAG, (OPTION_flags)0,
+                                     { "--leak-test", "--destroy-at-end" } },
+        { '\0', OPT_GC_DEBUG, (OPTION_flags)0, { "--gc-debug" } },
+        { 'a', 'a', (OPTION_flags)0, { "--pasm" } },
+        { 'c', 'c', (OPTION_flags)0, { "--pbc" } },
+        { 'd', 'd', OPTION_optional_FLAG, { "--imcc-debug" } },
+        { '\0', OPT_HELP_DEBUG, (OPTION_flags)0, { "--help-debug" } },
+        { 'h', 'h', (OPTION_flags)0, { "--help" } },
+        { 'o', 'o', OPTION_required_FLAG, { "--output" } },
+        { '\0', OPT_PBC_OUTPUT, (OPTION_flags)0, { "--output-pbc" } },
+        { 'r', 'r', (OPTION_flags)0, { "--run-pbc" } },
+        { '\0', OPT_RUNTIME_PREFIX, (OPTION_flags)0, { "--runtime-prefix" } },
+        { 't', 't', OPTION_optional_FLAG, { "--trace" } },
+        { 'v', 'v', (OPTION_flags)0, { "--verbose" } },
+        { 'w', 'w', (OPTION_flags)0, { "--warnings" } },
+        { 'y', 'y', (OPTION_flags)0, { "--yydebug" } },
+        { 0, 0, (OPTION_flags)0, { NULL } }
+    };
+    return cmd_options;
+}
+
+/*
+
 =item C<int longopt_get(PARROT_INTERP, int argc, const char* argv[], const
 struct longopt_opt_decl options[], struct longopt_opt_info* info_buf)>
 
@@ -83,6 +136,7 @@
 */
 
 PARROT_EXPORT
+PARROT_WARN_UNUSED_RESULT
 int
 longopt_get(PARROT_INTERP, int argc, ARGIN(const char* argv[]),
             ARGIN(const struct longopt_opt_decl options[]),
@@ -134,6 +188,7 @@
 
 */
 
+PARROT_WARN_UNUSED_RESULT
 static int
 longopt_get_longopt(PARROT_INTERP, int argc, ARGIN(const char* argv[]),
                     ARGIN(const struct longopt_opt_decl options[]),
@@ -231,6 +286,7 @@
 
 */
 
+PARROT_WARN_UNUSED_RESULT
 static int
 longopt_get_shortopt(PARROT_INTERP, int argc, ARGIN(const char* argv[]),
                      ARGIN(const struct longopt_opt_decl options[]),

Modified: branches/ucs4_encoding/src/main.c
==============================================================================
--- branches/ucs4_encoding/src/main.c	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/src/main.c	Mon May 24 21:18:41 2010	(r46974)
@@ -45,17 +45,20 @@
 static void Parrot_version(void);
 PARROT_CAN_RETURN_NULL
 static const char * parseflags(PARROT_INTERP,
-    ARGMOD(int *argc),
-    ARGMOD(const char **argv[]),
+    int argc,
+    ARGIN(const char *argv[]),
+    ARGOUT(int *pgm_argc),
+    ARGOUT(const char ***pgm_argv),
     ARGMOD(Parrot_Run_core_t *core),
     ARGMOD(Parrot_trace_flags *trace))
         __attribute__nonnull__(1)
-        __attribute__nonnull__(2)
         __attribute__nonnull__(3)
         __attribute__nonnull__(4)
         __attribute__nonnull__(5)
-        FUNC_MODIFIES(*argc)
-        FUNC_MODIFIES(*argv[])
+        __attribute__nonnull__(6)
+        __attribute__nonnull__(7)
+        FUNC_MODIFIES(*pgm_argc)
+        FUNC_MODIFIES(*pgm_argv)
         FUNC_MODIFIES(*core)
         FUNC_MODIFIES(*trace);
 
@@ -76,8 +79,9 @@
 #define ASSERT_ARGS_Parrot_version __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
 #define ASSERT_ARGS_parseflags __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
-    , PARROT_ASSERT_ARG(argc) \
     , PARROT_ASSERT_ARG(argv) \
+    , PARROT_ASSERT_ARG(pgm_argc) \
+    , PARROT_ASSERT_ARG(pgm_argv) \
     , PARROT_ASSERT_ARG(core) \
     , PARROT_ASSERT_ARG(trace))
 #define ASSERT_ARGS_parseflags_minimal __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
@@ -101,11 +105,13 @@
 int
 main(int argc, const char *argv[])
 {
-    int         stacktop;
-    const char *sourcefile;
-    const char *execname;
-    Interp     *interp;
-    int         status;
+    int          stacktop;
+    const char  *sourcefile;
+    const char  *execname;
+    Interp      *interp;
+    int          status;
+    int          pir_argc;
+    const char **pir_argv;
 
     Parrot_Run_core_t  core  = PARROT_SLOW_CORE;
     Parrot_trace_flags trace = PARROT_NO_TRACE;
@@ -129,66 +135,28 @@
 
     /* Now initialize interpreter */
     initialize_interpreter(interp, (void*)&stacktop);
-    imcc_initialize(interp);
 
     /* Parse flags */
-    sourcefile = parseflags(interp, &argc, &argv, &core, &trace);
+    sourcefile = parseflags(interp, argc, argv, &pir_argc, &pir_argv, &core, &trace);
 
     Parrot_set_trace(interp, trace);
     Parrot_set_run_core(interp, (Parrot_Run_core_t) core);
     Parrot_set_executable_name(interp, Parrot_str_new(interp, execname, 0));
 
-    status     = imcc_run(interp, sourcefile, argc, argv);
-    UNUSED(status);
+    status = imcc_run(interp, sourcefile, argc, argv);
+
+    if (status)
+        imcc_run_pbc(interp, interp->output_file, pir_argc, pir_argv);
 
     /* Clean-up after ourselves */
     Parrot_destroy(interp);
     Parrot_exit(interp, 0);
 }
 
-#define OPT_GC_DEBUG       128
-#define OPT_DESTROY_FLAG   129
-#define OPT_HELP_DEBUG     130
-#define OPT_PBC_OUTPUT     131
-#define OPT_RUNTIME_PREFIX 132
-#define OPT_HASH_SEED      133
-
 #define SET_FLAG(flag)   Parrot_set_flag(interp, (flag))
 #define SET_DEBUG(flag)  Parrot_set_debug(interp, (flag))
 #define SET_TRACE(flag)  Parrot_set_trace(interp, (flag))
 
-static struct longopt_opt_decl options[] = {
-    { '.', '.', (OPTION_flags)0, { "--wait" } },
-    { 'D', 'D', OPTION_optional_FLAG, { "--parrot-debug" } },
-    { 'E', 'E', (OPTION_flags)0, { "--pre-process-only" } },
-    { 'G', 'G', (OPTION_flags)0, { "--no-gc" } },
-    { '\0', OPT_HASH_SEED, OPTION_required_FLAG, { "--hash-seed" } },
-    { 'I', 'I', OPTION_required_FLAG, { "--include" } },
-    { 'L', 'L', OPTION_required_FLAG, { "--library" } },
-    { 'O', 'O', OPTION_optional_FLAG, { "--optimize" } },
-    { 'R', 'R', OPTION_required_FLAG, { "--runcore" } },
-    { 'g', 'g', OPTION_required_FLAG, { "--gc" } },
-    { 'V', 'V', (OPTION_flags)0, { "--version" } },
-    { 'X', 'X', OPTION_required_FLAG, { "--dynext" } },
-    { '\0', OPT_DESTROY_FLAG, (OPTION_flags)0,
-                                 { "--leak-test", "--destroy-at-end" } },
-    { '\0', OPT_GC_DEBUG, (OPTION_flags)0, { "--gc-debug" } },
-    { 'a', 'a', (OPTION_flags)0, { "--pasm" } },
-    { 'c', 'c', (OPTION_flags)0, { "--pbc" } },
-    { 'd', 'd', OPTION_optional_FLAG, { "--imcc-debug" } },
-    { '\0', OPT_HELP_DEBUG, (OPTION_flags)0, { "--help-debug" } },
-    { 'h', 'h', (OPTION_flags)0, { "--help" } },
-    { 'o', 'o', OPTION_required_FLAG, { "--output" } },
-    { '\0', OPT_PBC_OUTPUT, (OPTION_flags)0, { "--output-pbc" } },
-    { 'r', 'r', (OPTION_flags)0, { "--run-pbc" } },
-    { '\0', OPT_RUNTIME_PREFIX, (OPTION_flags)0, { "--runtime-prefix" } },
-    { 't', 't', OPTION_optional_FLAG, { "--trace" } },
-    { 'v', 'v', (OPTION_flags)0, { "--verbose" } },
-    { 'w', 'w', (OPTION_flags)0, { "--warnings" } },
-    { 'y', 'y', (OPTION_flags)0, { "--yydebug" } },
-    { 0, 0, (OPTION_flags)0, { NULL } }
-};
-
 /*
 
 =item C<static int is_all_hex_digits(const char *s)>
@@ -423,8 +391,9 @@
 
 /*
 
-=item C<static const char * parseflags(PARROT_INTERP, int *argc, const char
-**argv[], Parrot_Run_core_t *core, Parrot_trace_flags *trace)>
+=item C<static const char * parseflags(PARROT_INTERP, int argc, const char
+*argv[], int *pgm_argc, const char ***pgm_argv, Parrot_Run_core_t *core,
+Parrot_trace_flags *trace)>
 
 Parse Parrot's command line for options and set appropriate flags.
 
@@ -435,26 +404,20 @@
 PARROT_CAN_RETURN_NULL
 static const char *
 parseflags(PARROT_INTERP,
-        ARGMOD(int *argc), ARGMOD(const char **argv[]),
+        int argc, ARGIN(const char *argv[]),
+        ARGOUT(int *pgm_argc), ARGOUT(const char ***pgm_argv),
         ARGMOD(Parrot_Run_core_t *core), ARGMOD(Parrot_trace_flags *trace))
 {
     ASSERT_ARGS(parseflags)
     struct longopt_opt_info opt  = LONGOPT_OPT_INFO_INIT;
     int                     status;
-    /* g++ complains if we cast char** to const char** directly. However, nobody
-       ever complains if you const to void* first. Sure we lose a certain
-       amount of compiler-enforced type safety, but this is a rare occasion
-       with a very long explanatory comment. */
-    const char ** const _tempargv = (const char **)((void *)*argv);
 
-    if (*argc == 1) {
+    if (argc == 1) {
         usage(stderr);
         exit(EXIT_SUCCESS);
     }
 
-    imcc_start_handling_flags(interp);
-
-    while ((status = longopt_get(interp, *argc, _tempargv, options, &opt)) > 0) {
+    while ((status = longopt_get(interp, argc, argv, Parrot_cmd_options(), &opt)) > 0) {
         switch (opt.opt_id) {
           case 'R':
             if (STREQ(opt.opt_arg, "slow") || STREQ(opt.opt_arg, "bounds"))
@@ -544,16 +507,19 @@
             Parrot_lib_add_path_from_cstring(interp, opt.opt_arg,
                     PARROT_LIB_PATH_DYNEXT);
             break;
+          case 'w':
+            /* FIXME It's not best way to set warnings... */
+            Parrot_setwarnings(interp, PARROT_WARNINGS_ALL_FLAG);
+            break;
+          case 'o':
+            interp->output_file = opt.opt_arg;
+            break;
+          case OPT_PBC_OUTPUT:
+            if (!interp->output_file)
+                interp->output_file = "-";
           default:
-            /* Delegate handling of IMCC flags to IMCC */
-            if (imcc_handle_flag(interp, &opt, core))
-                break;
-
-            /* PIRC flags handling goes here */
-            fprintf(stderr,
-                    "main: Invalid flag '%s' used.\n\nhelp: parrot -h\n",
-                    (*argv)[0]);
-            exit(EXIT_FAILURE);
+            /* languages handle their arguments later (after being initialized) */
+            break;
         }
     }
 
@@ -564,7 +530,7 @@
     }
 
     /* reached the end of the option list and consumed all of argv */
-    if (*argc == opt.opt_index) {
+    if (argc == opt.opt_index) {
         if (interp->output_file) {
             fprintf(stderr, "Missing program name or argument for -o\n");
         }
@@ -576,10 +542,10 @@
         exit(EXIT_FAILURE);
     }
 
-    *argc -= opt.opt_index;
-    *argv += opt.opt_index;
+    *pgm_argc = argc - opt.opt_index;
+    *pgm_argv = argv + opt.opt_index;
 
-    return (*argv)[0];
+    return (*pgm_argv)[0];
 }
 /*
 

Copied: branches/ucs4_encoding/src/ops/core_ops.c (from r46972, trunk/src/ops/core_ops.c)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/ucs4_encoding/src/ops/core_ops.c	Mon May 24 21:18:41 2010	(r46974, copy of r46972, trunk/src/ops/core_ops.c)
@@ -0,0 +1,29801 @@
+
+/* ex: set ro:
+ * !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
+ *
+ * This file is generated automatically from 'src/ops/core.ops' (and possibly other
+ * .ops files). by ops2c.nqp.
+ *
+ * Any changes made here will be lost!
+ *
+ */
+
+#include "parrot/oplib/core_ops.h"
+#include "pmc/pmc_parrotlibrary.h"
+#include "pmc/pmc_callcontext.h"
+
+
+/* defines - Ops::Trans::C */
+#undef CONST
+#define REL_PC     ((size_t)(cur_opcode - (opcode_t *)interp->code->base.data))
+#define CUR_OPCODE cur_opcode
+#define IREG(i) (CUR_CTX->bp.regs_i[cur_opcode[i]])
+#define NREG(i) (CUR_CTX->bp.regs_n[-1L - cur_opcode[i]])
+#define PREG(i) (CUR_CTX->bp_ps.regs_p[-1L - cur_opcode[i]])
+#define SREG(i) (CUR_CTX->bp_ps.regs_s[cur_opcode[i]])
+#define CONST(i) Parrot_pcc_get_constants(interp, interp->ctx)[cur_opcode[i]]
+
+static int get_op(PARROT_INTERP, const char * name, int full);
+
+
+
+
+#include "parrot/dynext.h"
+#include "parrot/embed.h"
+#include "parrot/runcore_api.h"
+#include "pmc/pmc_continuation.h"
+#include "pmc/pmc_parrotlibrary.h"
+
+
+ /* Signed shift operator that is compatible with PMC shifts.  This is
+  * guaranteed to produce the same result as bitwise_left_shift_internal modulo
+  * word size, ignoring the fact that Parrot integers are always signed.  This
+  * usually gives the same answer regardless whether you shift PMC operands and
+  * then assign to an I-reg, or move the operands to I-regs and do the shift
+  * there -- except when the true result is between 2^{w-1} and 2^w (where w is
+  * the word size), in which case the high order bit is taken as the sign,
+  * giving a truncated result that is 2^w lower.
+  */
+#define bit_shift_left(number, bits) \
+    ((bits) >= 8*INTVAL_SIZE     ? 0                    \
+     : (bits) >= 0               ? (number) << (bits)   \
+     : (bits) > -8*INTVAL_SIZE   ? (number) >> -(bits)   \
+     : 0)
+
+
+#include "../io/io_private.h"
+
+
+#if PARROT_HAS_ICU
+#  include <unicode/uchar.h>
+#endif
+
+
+
+INTVAL core_numops = 1269;
+
+/*
+** Op Function Table:
+*/
+
+static op_func_t core_op_func_table[1269] = {  Parrot_end,                                        /*      0 */
+  Parrot_noop,                                       /*      1 */
+  Parrot_check_events,                               /*      2 */
+  Parrot_check_events__,                             /*      3 */
+  Parrot_wrapper__,                                  /*      4 */
+  Parrot_load_bytecode_s,                            /*      5 */
+  Parrot_load_bytecode_sc,                           /*      6 */
+  Parrot_load_language_s,                            /*      7 */
+  Parrot_load_language_sc,                           /*      8 */
+  Parrot_branch_i,                                   /*      9 */
+  Parrot_branch_ic,                                  /*     10 */
+  Parrot_local_branch_p_i,                           /*     11 */
+  Parrot_local_branch_p_ic,                          /*     12 */
+  Parrot_local_return_p,                             /*     13 */
+  Parrot_jump_i,                                     /*     14 */
+  Parrot_jump_ic,                                    /*     15 */
+  Parrot_enternative,                                /*     16 */
+  Parrot_if_i_ic,                                    /*     17 */
+  Parrot_if_n_ic,                                    /*     18 */
+  Parrot_if_s_ic,                                    /*     19 */
+  Parrot_if_p_ic,                                    /*     20 */
+  Parrot_unless_i_ic,                                /*     21 */
+  Parrot_unless_n_ic,                                /*     22 */
+  Parrot_unless_s_ic,                                /*     23 */
+  Parrot_unless_p_ic,                                /*     24 */
+  Parrot_invokecc_p,                                 /*     25 */
+  Parrot_invoke_p_p,                                 /*     26 */
+  Parrot_yield,                                      /*     27 */
+  Parrot_tailcall_p,                                 /*     28 */
+  Parrot_returncc,                                   /*     29 */
+  Parrot_capture_lex_p,                              /*     30 */
+  Parrot_newclosure_p_p,                             /*     31 */
+  Parrot_set_args_pc,                                /*     32 */
+  Parrot_get_params_pc,                              /*     33 */
+  Parrot_set_returns_pc,                             /*     34 */
+  Parrot_get_results_pc,                             /*     35 */
+  Parrot_set_result_info_p,                          /*     36 */
+  Parrot_set_result_info_pc,                         /*     37 */
+  Parrot_result_info_p,                              /*     38 */
+  Parrot_set_addr_i_ic,                              /*     39 */
+  Parrot_set_addr_p_ic,                              /*     40 */
+  Parrot_set_addr_p_i,                               /*     41 */
+  Parrot_get_addr_i_p,                               /*     42 */
+  Parrot_schedule_p,                                 /*     43 */
+  Parrot_addhandler_p,                               /*     44 */
+  Parrot_push_eh_ic,                                 /*     45 */
+  Parrot_push_eh_p,                                  /*     46 */
+  Parrot_pop_eh,                                     /*     47 */
+  Parrot_throw_p,                                    /*     48 */
+  Parrot_throw_p_p,                                  /*     49 */
+  Parrot_rethrow_p,                                  /*     50 */
+  Parrot_count_eh_i,                                 /*     51 */
+  Parrot_die_s,                                      /*     52 */
+  Parrot_die_sc,                                     /*     53 */
+  Parrot_die_p,                                      /*     54 */
+  Parrot_die_pc,                                     /*     55 */
+  Parrot_die_i_i,                                    /*     56 */
+  Parrot_die_ic_i,                                   /*     57 */
+  Parrot_die_i_ic,                                   /*     58 */
+  Parrot_die_ic_ic,                                  /*     59 */
+  Parrot_exit_i,                                     /*     60 */
+  Parrot_exit_ic,                                    /*     61 */
+  Parrot_debug_i,                                    /*     62 */
+  Parrot_debug_ic,                                   /*     63 */
+  Parrot_bounds_i,                                   /*     64 */
+  Parrot_bounds_ic,                                  /*     65 */
+  Parrot_profile_i,                                  /*     66 */
+  Parrot_profile_ic,                                 /*     67 */
+  Parrot_trace_i,                                    /*     68 */
+  Parrot_trace_ic,                                   /*     69 */
+  Parrot_gc_debug_i,                                 /*     70 */
+  Parrot_gc_debug_ic,                                /*     71 */
+  Parrot_interpinfo_i_i,                             /*     72 */
+  Parrot_interpinfo_i_ic,                            /*     73 */
+  Parrot_interpinfo_p_i,                             /*     74 */
+  Parrot_interpinfo_p_ic,                            /*     75 */
+  Parrot_interpinfo_s_i,                             /*     76 */
+  Parrot_interpinfo_s_ic,                            /*     77 */
+  Parrot_warningson_i,                               /*     78 */
+  Parrot_warningson_ic,                              /*     79 */
+  Parrot_warningsoff_i,                              /*     80 */
+  Parrot_warningsoff_ic,                             /*     81 */
+  Parrot_errorson_i,                                 /*     82 */
+  Parrot_errorson_ic,                                /*     83 */
+  Parrot_errorsoff_i,                                /*     84 */
+  Parrot_errorsoff_ic,                               /*     85 */
+  Parrot_runinterp_p_i,                              /*     86 */
+  Parrot_runinterp_p_ic,                             /*     87 */
+  Parrot_getinterp_p,                                /*     88 */
+  Parrot_sweep_ic,                                   /*     89 */
+  Parrot_collect,                                    /*     90 */
+  Parrot_sweepoff,                                   /*     91 */
+  Parrot_sweepon,                                    /*     92 */
+  Parrot_collectoff,                                 /*     93 */
+  Parrot_collecton,                                  /*     94 */
+  Parrot_needs_destroy_p,                            /*     95 */
+  Parrot_loadlib_p_s,                                /*     96 */
+  Parrot_loadlib_p_sc,                               /*     97 */
+  Parrot_loadlib_p_s_p,                              /*     98 */
+  Parrot_loadlib_p_sc_p,                             /*     99 */
+  Parrot_loadlib_p_s_pc,                             /*    100 */
+  Parrot_loadlib_p_sc_pc,                            /*    101 */
+  Parrot_dlfunc_p_p_s_s,                             /*    102 */
+  Parrot_dlfunc_p_p_sc_s,                            /*    103 */
+  Parrot_dlfunc_p_p_s_sc,                            /*    104 */
+  Parrot_dlfunc_p_p_sc_sc,                           /*    105 */
+  Parrot_dlvar_p_p_s,                                /*    106 */
+  Parrot_dlvar_p_p_sc,                               /*    107 */
+  Parrot_compreg_s_p,                                /*    108 */
+  Parrot_compreg_sc_p,                               /*    109 */
+  Parrot_compreg_p_s,                                /*    110 */
+  Parrot_compreg_p_sc,                               /*    111 */
+  Parrot_new_callback_p_p_p_s,                       /*    112 */
+  Parrot_new_callback_p_p_p_sc,                      /*    113 */
+  Parrot_annotations_p,                              /*    114 */
+  Parrot_annotations_p_s,                            /*    115 */
+  Parrot_annotations_p_sc,                           /*    116 */
+  Parrot_band_i_i,                                   /*    117 */
+  Parrot_band_i_ic,                                  /*    118 */
+  Parrot_band_p_i,                                   /*    119 */
+  Parrot_band_p_ic,                                  /*    120 */
+  Parrot_band_p_p,                                   /*    121 */
+  Parrot_band_i_i_i,                                 /*    122 */
+  Parrot_band_i_ic_i,                                /*    123 */
+  Parrot_band_i_i_ic,                                /*    124 */
+  Parrot_band_p_p_i,                                 /*    125 */
+  Parrot_band_p_p_ic,                                /*    126 */
+  Parrot_band_p_p_p,                                 /*    127 */
+  Parrot_bands_p_s,                                  /*    128 */
+  Parrot_bands_p_sc,                                 /*    129 */
+  Parrot_bands_p_p,                                  /*    130 */
+  Parrot_bands_s_s_s,                                /*    131 */
+  Parrot_bands_s_sc_s,                               /*    132 */
+  Parrot_bands_s_s_sc,                               /*    133 */
+  Parrot_bands_p_p_s,                                /*    134 */
+  Parrot_bands_p_p_sc,                               /*    135 */
+  Parrot_bands_p_p_p,                                /*    136 */
+  Parrot_bnot_i,                                     /*    137 */
+  Parrot_bnot_i_i,                                   /*    138 */
+  Parrot_bnot_p,                                     /*    139 */
+  Parrot_bnot_p_p,                                   /*    140 */
+  Parrot_bnots_s_s,                                  /*    141 */
+  Parrot_bnots_s_sc,                                 /*    142 */
+  Parrot_bnots_p,                                    /*    143 */
+  Parrot_bnots_p_p,                                  /*    144 */
+  Parrot_bor_i_i,                                    /*    145 */
+  Parrot_bor_i_ic,                                   /*    146 */
+  Parrot_bor_p_i,                                    /*    147 */
+  Parrot_bor_p_ic,                                   /*    148 */
+  Parrot_bor_p_p,                                    /*    149 */
+  Parrot_bor_i_i_i,                                  /*    150 */
+  Parrot_bor_i_ic_i,                                 /*    151 */
+  Parrot_bor_i_i_ic,                                 /*    152 */
+  Parrot_bor_p_p_i,                                  /*    153 */
+  Parrot_bor_p_p_ic,                                 /*    154 */
+  Parrot_bor_p_p_p,                                  /*    155 */
+  Parrot_bors_p_s,                                   /*    156 */
+  Parrot_bors_p_sc,                                  /*    157 */
+  Parrot_bors_p_p,                                   /*    158 */
+  Parrot_bors_s_s_s,                                 /*    159 */
+  Parrot_bors_s_sc_s,                                /*    160 */
+  Parrot_bors_s_s_sc,                                /*    161 */
+  Parrot_bors_p_p_s,                                 /*    162 */
+  Parrot_bors_p_p_sc,                                /*    163 */
+  Parrot_bors_p_p_p,                                 /*    164 */
+  Parrot_shl_i_i,                                    /*    165 */
+  Parrot_shl_i_ic,                                   /*    166 */
+  Parrot_shl_p_i,                                    /*    167 */
+  Parrot_shl_p_ic,                                   /*    168 */
+  Parrot_shl_p_p,                                    /*    169 */
+  Parrot_shl_i_i_i,                                  /*    170 */
+  Parrot_shl_i_ic_i,                                 /*    171 */
+  Parrot_shl_i_i_ic,                                 /*    172 */
+  Parrot_shl_p_p_i,                                  /*    173 */
+  Parrot_shl_p_p_ic,                                 /*    174 */
+  Parrot_shl_p_p_p,                                  /*    175 */
+  Parrot_shr_i_i,                                    /*    176 */
+  Parrot_shr_i_ic,                                   /*    177 */
+  Parrot_shr_p_i,                                    /*    178 */
+  Parrot_shr_p_ic,                                   /*    179 */
+  Parrot_shr_p_p,                                    /*    180 */
+  Parrot_shr_i_i_i,                                  /*    181 */
+  Parrot_shr_i_ic_i,                                 /*    182 */
+  Parrot_shr_i_i_ic,                                 /*    183 */
+  Parrot_shr_p_p_i,                                  /*    184 */
+  Parrot_shr_p_p_ic,                                 /*    185 */
+  Parrot_shr_p_p_p,                                  /*    186 */
+  Parrot_lsr_i_i,                                    /*    187 */
+  Parrot_lsr_i_ic,                                   /*    188 */
+  Parrot_lsr_p_i,                                    /*    189 */
+  Parrot_lsr_p_ic,                                   /*    190 */
+  Parrot_lsr_p_p,                                    /*    191 */
+  Parrot_lsr_i_i_i,                                  /*    192 */
+  Parrot_lsr_i_ic_i,                                 /*    193 */
+  Parrot_lsr_i_i_ic,                                 /*    194 */
+  Parrot_lsr_p_p_i,                                  /*    195 */
+  Parrot_lsr_p_p_ic,                                 /*    196 */
+  Parrot_lsr_p_p_p,                                  /*    197 */
+  Parrot_rot_i_i_i_ic,                               /*    198 */
+  Parrot_rot_i_ic_i_ic,                              /*    199 */
+  Parrot_rot_i_i_ic_ic,                              /*    200 */
+  Parrot_bxor_i_i,                                   /*    201 */
+  Parrot_bxor_i_ic,                                  /*    202 */
+  Parrot_bxor_p_i,                                   /*    203 */
+  Parrot_bxor_p_ic,                                  /*    204 */
+  Parrot_bxor_p_p,                                   /*    205 */
+  Parrot_bxor_i_i_i,                                 /*    206 */
+  Parrot_bxor_i_ic_i,                                /*    207 */
+  Parrot_bxor_i_i_ic,                                /*    208 */
+  Parrot_bxor_p_p_i,                                 /*    209 */
+  Parrot_bxor_p_p_ic,                                /*    210 */
+  Parrot_bxor_p_p_p,                                 /*    211 */
+  Parrot_bxors_p_s,                                  /*    212 */
+  Parrot_bxors_p_sc,                                 /*    213 */
+  Parrot_bxors_p_p,                                  /*    214 */
+  Parrot_bxors_s_s_s,                                /*    215 */
+  Parrot_bxors_s_sc_s,                               /*    216 */
+  Parrot_bxors_s_s_sc,                               /*    217 */
+  Parrot_bxors_p_p_s,                                /*    218 */
+  Parrot_bxors_p_p_sc,                               /*    219 */
+  Parrot_bxors_p_p_p,                                /*    220 */
+  Parrot_eq_i_i_ic,                                  /*    221 */
+  Parrot_eq_ic_i_ic,                                 /*    222 */
+  Parrot_eq_i_ic_ic,                                 /*    223 */
+  Parrot_eq_n_n_ic,                                  /*    224 */
+  Parrot_eq_nc_n_ic,                                 /*    225 */
+  Parrot_eq_n_nc_ic,                                 /*    226 */
+  Parrot_eq_s_s_ic,                                  /*    227 */
+  Parrot_eq_sc_s_ic,                                 /*    228 */
+  Parrot_eq_s_sc_ic,                                 /*    229 */
+  Parrot_eq_p_p_ic,                                  /*    230 */
+  Parrot_eq_p_i_ic,                                  /*    231 */
+  Parrot_eq_p_ic_ic,                                 /*    232 */
+  Parrot_eq_p_n_ic,                                  /*    233 */
+  Parrot_eq_p_nc_ic,                                 /*    234 */
+  Parrot_eq_p_s_ic,                                  /*    235 */
+  Parrot_eq_p_sc_ic,                                 /*    236 */
+  Parrot_eq_str_p_p_ic,                              /*    237 */
+  Parrot_eq_num_p_p_ic,                              /*    238 */
+  Parrot_eq_addr_s_s_ic,                             /*    239 */
+  Parrot_eq_addr_sc_s_ic,                            /*    240 */
+  Parrot_eq_addr_s_sc_ic,                            /*    241 */
+  Parrot_eq_addr_sc_sc_ic,                           /*    242 */
+  Parrot_eq_addr_p_p_ic,                             /*    243 */
+  Parrot_ne_i_i_ic,                                  /*    244 */
+  Parrot_ne_ic_i_ic,                                 /*    245 */
+  Parrot_ne_i_ic_ic,                                 /*    246 */
+  Parrot_ne_n_n_ic,                                  /*    247 */
+  Parrot_ne_nc_n_ic,                                 /*    248 */
+  Parrot_ne_n_nc_ic,                                 /*    249 */
+  Parrot_ne_s_s_ic,                                  /*    250 */
+  Parrot_ne_sc_s_ic,                                 /*    251 */
+  Parrot_ne_s_sc_ic,                                 /*    252 */
+  Parrot_ne_p_p_ic,                                  /*    253 */
+  Parrot_ne_p_i_ic,                                  /*    254 */
+  Parrot_ne_p_ic_ic,                                 /*    255 */
+  Parrot_ne_p_n_ic,                                  /*    256 */
+  Parrot_ne_p_nc_ic,                                 /*    257 */
+  Parrot_ne_p_s_ic,                                  /*    258 */
+  Parrot_ne_p_sc_ic,                                 /*    259 */
+  Parrot_ne_str_p_p_ic,                              /*    260 */
+  Parrot_ne_num_p_p_ic,                              /*    261 */
+  Parrot_ne_addr_s_s_ic,                             /*    262 */
+  Parrot_ne_addr_sc_s_ic,                            /*    263 */
+  Parrot_ne_addr_s_sc_ic,                            /*    264 */
+  Parrot_ne_addr_sc_sc_ic,                           /*    265 */
+  Parrot_ne_addr_p_p_ic,                             /*    266 */
+  Parrot_lt_i_i_ic,                                  /*    267 */
+  Parrot_lt_ic_i_ic,                                 /*    268 */
+  Parrot_lt_i_ic_ic,                                 /*    269 */
+  Parrot_lt_n_n_ic,                                  /*    270 */
+  Parrot_lt_nc_n_ic,                                 /*    271 */
+  Parrot_lt_n_nc_ic,                                 /*    272 */
+  Parrot_lt_s_s_ic,                                  /*    273 */
+  Parrot_lt_sc_s_ic,                                 /*    274 */
+  Parrot_lt_s_sc_ic,                                 /*    275 */
+  Parrot_lt_p_p_ic,                                  /*    276 */
+  Parrot_lt_p_i_ic,                                  /*    277 */
+  Parrot_lt_p_ic_ic,                                 /*    278 */
+  Parrot_lt_p_n_ic,                                  /*    279 */
+  Parrot_lt_p_nc_ic,                                 /*    280 */
+  Parrot_lt_p_s_ic,                                  /*    281 */
+  Parrot_lt_p_sc_ic,                                 /*    282 */
+  Parrot_lt_str_p_p_ic,                              /*    283 */
+  Parrot_lt_num_p_p_ic,                              /*    284 */
+  Parrot_le_i_i_ic,                                  /*    285 */
+  Parrot_le_ic_i_ic,                                 /*    286 */
+  Parrot_le_i_ic_ic,                                 /*    287 */
+  Parrot_le_n_n_ic,                                  /*    288 */
+  Parrot_le_nc_n_ic,                                 /*    289 */
+  Parrot_le_n_nc_ic,                                 /*    290 */
+  Parrot_le_s_s_ic,                                  /*    291 */
+  Parrot_le_sc_s_ic,                                 /*    292 */
+  Parrot_le_s_sc_ic,                                 /*    293 */
+  Parrot_le_p_p_ic,                                  /*    294 */
+  Parrot_le_p_i_ic,                                  /*    295 */
+  Parrot_le_p_ic_ic,                                 /*    296 */
+  Parrot_le_p_n_ic,                                  /*    297 */
+  Parrot_le_p_nc_ic,                                 /*    298 */
+  Parrot_le_p_s_ic,                                  /*    299 */
+  Parrot_le_p_sc_ic,                                 /*    300 */
+  Parrot_le_str_p_p_ic,                              /*    301 */
+  Parrot_le_num_p_p_ic,                              /*    302 */
+  Parrot_gt_p_p_ic,                                  /*    303 */
+  Parrot_gt_p_i_ic,                                  /*    304 */
+  Parrot_gt_p_ic_ic,                                 /*    305 */
+  Parrot_gt_p_n_ic,                                  /*    306 */
+  Parrot_gt_p_nc_ic,                                 /*    307 */
+  Parrot_gt_p_s_ic,                                  /*    308 */
+  Parrot_gt_p_sc_ic,                                 /*    309 */
+  Parrot_gt_str_p_p_ic,                              /*    310 */
+  Parrot_gt_num_p_p_ic,                              /*    311 */
+  Parrot_ge_p_p_ic,                                  /*    312 */
+  Parrot_ge_p_i_ic,                                  /*    313 */
+  Parrot_ge_p_ic_ic,                                 /*    314 */
+  Parrot_ge_p_n_ic,                                  /*    315 */
+  Parrot_ge_p_nc_ic,                                 /*    316 */
+  Parrot_ge_p_s_ic,                                  /*    317 */
+  Parrot_ge_p_sc_ic,                                 /*    318 */
+  Parrot_ge_str_p_p_ic,                              /*    319 */
+  Parrot_ge_num_p_p_ic,                              /*    320 */
+  Parrot_if_null_p_ic,                               /*    321 */
+  Parrot_if_null_s_ic,                               /*    322 */
+  Parrot_unless_null_p_ic,                           /*    323 */
+  Parrot_unless_null_s_ic,                           /*    324 */
+  Parrot_cmp_i_i_i,                                  /*    325 */
+  Parrot_cmp_i_ic_i,                                 /*    326 */
+  Parrot_cmp_i_i_ic,                                 /*    327 */
+  Parrot_cmp_i_n_n,                                  /*    328 */
+  Parrot_cmp_i_nc_n,                                 /*    329 */
+  Parrot_cmp_i_n_nc,                                 /*    330 */
+  Parrot_cmp_i_s_s,                                  /*    331 */
+  Parrot_cmp_i_sc_s,                                 /*    332 */
+  Parrot_cmp_i_s_sc,                                 /*    333 */
+  Parrot_cmp_i_p_p,                                  /*    334 */
+  Parrot_cmp_i_p_i,                                  /*    335 */
+  Parrot_cmp_i_p_ic,                                 /*    336 */
+  Parrot_cmp_i_p_n,                                  /*    337 */
+  Parrot_cmp_i_p_nc,                                 /*    338 */
+  Parrot_cmp_i_p_s,                                  /*    339 */
+  Parrot_cmp_i_p_sc,                                 /*    340 */
+  Parrot_cmp_str_i_p_p,                              /*    341 */
+  Parrot_cmp_num_i_p_p,                              /*    342 */
+  Parrot_cmp_pmc_p_p_p,                              /*    343 */
+  Parrot_issame_i_p_p,                               /*    344 */
+  Parrot_issame_i_s_s,                               /*    345 */
+  Parrot_issame_i_sc_s,                              /*    346 */
+  Parrot_issame_i_s_sc,                              /*    347 */
+  Parrot_issame_i_sc_sc,                             /*    348 */
+  Parrot_isntsame_i_p_p,                             /*    349 */
+  Parrot_isntsame_i_s_s,                             /*    350 */
+  Parrot_isntsame_i_sc_s,                            /*    351 */
+  Parrot_isntsame_i_s_sc,                            /*    352 */
+  Parrot_isntsame_i_sc_sc,                           /*    353 */
+  Parrot_istrue_i_p,                                 /*    354 */
+  Parrot_isfalse_i_p,                                /*    355 */
+  Parrot_isnull_i_p,                                 /*    356 */
+  Parrot_isnull_i_pc,                                /*    357 */
+  Parrot_isnull_i_s,                                 /*    358 */
+  Parrot_isnull_i_sc,                                /*    359 */
+  Parrot_isgt_i_p_p,                                 /*    360 */
+  Parrot_isge_i_p_p,                                 /*    361 */
+  Parrot_isle_i_i_i,                                 /*    362 */
+  Parrot_isle_i_ic_i,                                /*    363 */
+  Parrot_isle_i_i_ic,                                /*    364 */
+  Parrot_isle_i_n_n,                                 /*    365 */
+  Parrot_isle_i_nc_n,                                /*    366 */
+  Parrot_isle_i_n_nc,                                /*    367 */
+  Parrot_isle_i_s_s,                                 /*    368 */
+  Parrot_isle_i_sc_s,                                /*    369 */
+  Parrot_isle_i_s_sc,                                /*    370 */
+  Parrot_isle_i_p_p,                                 /*    371 */
+  Parrot_islt_i_i_i,                                 /*    372 */
+  Parrot_islt_i_ic_i,                                /*    373 */
+  Parrot_islt_i_i_ic,                                /*    374 */
+  Parrot_islt_i_n_n,                                 /*    375 */
+  Parrot_islt_i_nc_n,                                /*    376 */
+  Parrot_islt_i_n_nc,                                /*    377 */
+  Parrot_islt_i_s_s,                                 /*    378 */
+  Parrot_islt_i_sc_s,                                /*    379 */
+  Parrot_islt_i_s_sc,                                /*    380 */
+  Parrot_islt_i_p_p,                                 /*    381 */
+  Parrot_iseq_i_i_i,                                 /*    382 */
+  Parrot_iseq_i_ic_i,                                /*    383 */
+  Parrot_iseq_i_i_ic,                                /*    384 */
+  Parrot_iseq_i_n_n,                                 /*    385 */
+  Parrot_iseq_i_nc_n,                                /*    386 */
+  Parrot_iseq_i_n_nc,                                /*    387 */
+  Parrot_iseq_i_s_s,                                 /*    388 */
+  Parrot_iseq_i_sc_s,                                /*    389 */
+  Parrot_iseq_i_s_sc,                                /*    390 */
+  Parrot_iseq_i_p_p,                                 /*    391 */
+  Parrot_isne_i_i_i,                                 /*    392 */
+  Parrot_isne_i_ic_i,                                /*    393 */
+  Parrot_isne_i_i_ic,                                /*    394 */
+  Parrot_isne_i_n_n,                                 /*    395 */
+  Parrot_isne_i_nc_n,                                /*    396 */
+  Parrot_isne_i_n_nc,                                /*    397 */
+  Parrot_isne_i_s_s,                                 /*    398 */
+  Parrot_isne_i_sc_s,                                /*    399 */
+  Parrot_isne_i_s_sc,                                /*    400 */
+  Parrot_isne_i_p_p,                                 /*    401 */
+  Parrot_and_i_i_i,                                  /*    402 */
+  Parrot_and_i_ic_i,                                 /*    403 */
+  Parrot_and_i_i_ic,                                 /*    404 */
+  Parrot_and_p_p_p,                                  /*    405 */
+  Parrot_not_i,                                      /*    406 */
+  Parrot_not_i_i,                                    /*    407 */
+  Parrot_not_p,                                      /*    408 */
+  Parrot_not_p_p,                                    /*    409 */
+  Parrot_or_i_i_i,                                   /*    410 */
+  Parrot_or_i_ic_i,                                  /*    411 */
+  Parrot_or_i_i_ic,                                  /*    412 */
+  Parrot_or_p_p_p,                                   /*    413 */
+  Parrot_xor_i_i_i,                                  /*    414 */
+  Parrot_xor_i_ic_i,                                 /*    415 */
+  Parrot_xor_i_i_ic,                                 /*    416 */
+  Parrot_xor_p_p_p,                                  /*    417 */
+  Parrot_debug_init,                                 /*    418 */
+  Parrot_debug_load_sc,                              /*    419 */
+  Parrot_debug_break,                                /*    420 */
+  Parrot_debug_print,                                /*    421 */
+  Parrot_backtrace,                                  /*    422 */
+  Parrot_getline_i,                                  /*    423 */
+  Parrot_getfile_s,                                  /*    424 */
+  Parrot_close_p,                                    /*    425 */
+  Parrot_fdopen_p_i_s,                               /*    426 */
+  Parrot_fdopen_p_ic_s,                              /*    427 */
+  Parrot_fdopen_p_i_sc,                              /*    428 */
+  Parrot_fdopen_p_ic_sc,                             /*    429 */
+  Parrot_getstdin_p,                                 /*    430 */
+  Parrot_getstdout_p,                                /*    431 */
+  Parrot_getstderr_p,                                /*    432 */
+  Parrot_setstdin_p,                                 /*    433 */
+  Parrot_setstdout_p,                                /*    434 */
+  Parrot_setstderr_p,                                /*    435 */
+  Parrot_open_p_s_s,                                 /*    436 */
+  Parrot_open_p_sc_s,                                /*    437 */
+  Parrot_open_p_s_sc,                                /*    438 */
+  Parrot_open_p_sc_sc,                               /*    439 */
+  Parrot_open_p_s,                                   /*    440 */
+  Parrot_open_p_sc,                                  /*    441 */
+  Parrot_print_i,                                    /*    442 */
+  Parrot_print_ic,                                   /*    443 */
+  Parrot_print_n,                                    /*    444 */
+  Parrot_print_nc,                                   /*    445 */
+  Parrot_print_s,                                    /*    446 */
+  Parrot_print_sc,                                   /*    447 */
+  Parrot_print_p,                                    /*    448 */
+  Parrot_say_i,                                      /*    449 */
+  Parrot_say_ic,                                     /*    450 */
+  Parrot_say_n,                                      /*    451 */
+  Parrot_say_nc,                                     /*    452 */
+  Parrot_say_s,                                      /*    453 */
+  Parrot_say_sc,                                     /*    454 */
+  Parrot_say_p,                                      /*    455 */
+  Parrot_printerr_i,                                 /*    456 */
+  Parrot_printerr_ic,                                /*    457 */
+  Parrot_printerr_n,                                 /*    458 */
+  Parrot_printerr_nc,                                /*    459 */
+  Parrot_printerr_s,                                 /*    460 */
+  Parrot_printerr_sc,                                /*    461 */
+  Parrot_printerr_p,                                 /*    462 */
+  Parrot_print_p_i,                                  /*    463 */
+  Parrot_print_p_ic,                                 /*    464 */
+  Parrot_print_p_n,                                  /*    465 */
+  Parrot_print_p_nc,                                 /*    466 */
+  Parrot_print_p_s,                                  /*    467 */
+  Parrot_print_p_sc,                                 /*    468 */
+  Parrot_print_p_p,                                  /*    469 */
+  Parrot_read_s_i,                                   /*    470 */
+  Parrot_read_s_ic,                                  /*    471 */
+  Parrot_read_s_p_i,                                 /*    472 */
+  Parrot_read_s_p_ic,                                /*    473 */
+  Parrot_readline_s_p,                               /*    474 */
+  Parrot_peek_s,                                     /*    475 */
+  Parrot_peek_s_p,                                   /*    476 */
+  Parrot_stat_i_s_i,                                 /*    477 */
+  Parrot_stat_i_sc_i,                                /*    478 */
+  Parrot_stat_i_s_ic,                                /*    479 */
+  Parrot_stat_i_sc_ic,                               /*    480 */
+  Parrot_stat_i_i_i,                                 /*    481 */
+  Parrot_stat_i_ic_i,                                /*    482 */
+  Parrot_stat_i_i_ic,                                /*    483 */
+  Parrot_stat_i_ic_ic,                               /*    484 */
+  Parrot_seek_p_i_i,                                 /*    485 */
+  Parrot_seek_p_ic_i,                                /*    486 */
+  Parrot_seek_p_i_ic,                                /*    487 */
+  Parrot_seek_p_ic_ic,                               /*    488 */
+  Parrot_seek_p_i_i_i,                               /*    489 */
+  Parrot_seek_p_ic_i_i,                              /*    490 */
+  Parrot_seek_p_i_ic_i,                              /*    491 */
+  Parrot_seek_p_ic_ic_i,                             /*    492 */
+  Parrot_seek_p_i_i_ic,                              /*    493 */
+  Parrot_seek_p_ic_i_ic,                             /*    494 */
+  Parrot_seek_p_i_ic_ic,                             /*    495 */
+  Parrot_seek_p_ic_ic_ic,                            /*    496 */
+  Parrot_tell_i_p,                                   /*    497 */
+  Parrot_tell_i_i_p,                                 /*    498 */
+  Parrot_abs_i,                                      /*    499 */
+  Parrot_abs_n,                                      /*    500 */
+  Parrot_abs_i_i,                                    /*    501 */
+  Parrot_abs_n_n,                                    /*    502 */
+  Parrot_abs_p,                                      /*    503 */
+  Parrot_abs_p_p,                                    /*    504 */
+  Parrot_add_i_i,                                    /*    505 */
+  Parrot_add_i_ic,                                   /*    506 */
+  Parrot_add_n_n,                                    /*    507 */
+  Parrot_add_n_nc,                                   /*    508 */
+  Parrot_add_p_p,                                    /*    509 */
+  Parrot_add_p_i,                                    /*    510 */
+  Parrot_add_p_ic,                                   /*    511 */
+  Parrot_add_p_n,                                    /*    512 */
+  Parrot_add_p_nc,                                   /*    513 */
+  Parrot_add_i_i_i,                                  /*    514 */
+  Parrot_add_i_ic_i,                                 /*    515 */
+  Parrot_add_i_i_ic,                                 /*    516 */
+  Parrot_add_n_n_n,                                  /*    517 */
+  Parrot_add_n_nc_n,                                 /*    518 */
+  Parrot_add_n_n_nc,                                 /*    519 */
+  Parrot_add_p_p_p,                                  /*    520 */
+  Parrot_add_p_p_i,                                  /*    521 */
+  Parrot_add_p_p_ic,                                 /*    522 */
+  Parrot_add_p_p_n,                                  /*    523 */
+  Parrot_add_p_p_nc,                                 /*    524 */
+  Parrot_cmod_i_i_i,                                 /*    525 */
+  Parrot_cmod_i_ic_i,                                /*    526 */
+  Parrot_cmod_i_i_ic,                                /*    527 */
+  Parrot_cmod_p_p_i,                                 /*    528 */
+  Parrot_cmod_p_p_ic,                                /*    529 */
+  Parrot_cmod_p_p_p,                                 /*    530 */
+  Parrot_cmod_n_n_n,                                 /*    531 */
+  Parrot_cmod_n_nc_n,                                /*    532 */
+  Parrot_cmod_n_n_nc,                                /*    533 */
+  Parrot_cmod_p_p_n,                                 /*    534 */
+  Parrot_cmod_p_p_nc,                                /*    535 */
+  Parrot_dec_i,                                      /*    536 */
+  Parrot_dec_n,                                      /*    537 */
+  Parrot_dec_p,                                      /*    538 */
+  Parrot_div_i_i,                                    /*    539 */
+  Parrot_div_i_ic,                                   /*    540 */
+  Parrot_div_n_n,                                    /*    541 */
+  Parrot_div_n_nc,                                   /*    542 */
+  Parrot_div_p_p,                                    /*    543 */
+  Parrot_div_p_i,                                    /*    544 */
+  Parrot_div_p_ic,                                   /*    545 */
+  Parrot_div_p_n,                                    /*    546 */
+  Parrot_div_p_nc,                                   /*    547 */
+  Parrot_div_i_i_i,                                  /*    548 */
+  Parrot_div_i_ic_i,                                 /*    549 */
+  Parrot_div_i_i_ic,                                 /*    550 */
+  Parrot_div_i_ic_ic,                                /*    551 */
+  Parrot_div_n_n_n,                                  /*    552 */
+  Parrot_div_n_nc_n,                                 /*    553 */
+  Parrot_div_n_n_nc,                                 /*    554 */
+  Parrot_div_n_nc_nc,                                /*    555 */
+  Parrot_div_p_p_p,                                  /*    556 */
+  Parrot_div_p_p_i,                                  /*    557 */
+  Parrot_div_p_p_ic,                                 /*    558 */
+  Parrot_div_p_p_n,                                  /*    559 */
+  Parrot_div_p_p_nc,                                 /*    560 */
+  Parrot_fdiv_i_i,                                   /*    561 */
+  Parrot_fdiv_i_ic,                                  /*    562 */
+  Parrot_fdiv_n_n,                                   /*    563 */
+  Parrot_fdiv_n_nc,                                  /*    564 */
+  Parrot_fdiv_p_p,                                   /*    565 */
+  Parrot_fdiv_p_i,                                   /*    566 */
+  Parrot_fdiv_p_ic,                                  /*    567 */
+  Parrot_fdiv_p_n,                                   /*    568 */
+  Parrot_fdiv_p_nc,                                  /*    569 */
+  Parrot_fdiv_i_i_i,                                 /*    570 */
+  Parrot_fdiv_i_ic_i,                                /*    571 */
+  Parrot_fdiv_i_i_ic,                                /*    572 */
+  Parrot_fdiv_n_n_n,                                 /*    573 */
+  Parrot_fdiv_n_nc_n,                                /*    574 */
+  Parrot_fdiv_n_n_nc,                                /*    575 */
+  Parrot_fdiv_p_p_p,                                 /*    576 */
+  Parrot_fdiv_p_p_i,                                 /*    577 */
+  Parrot_fdiv_p_p_ic,                                /*    578 */
+  Parrot_fdiv_p_p_n,                                 /*    579 */
+  Parrot_fdiv_p_p_nc,                                /*    580 */
+  Parrot_ceil_n,                                     /*    581 */
+  Parrot_ceil_i_n,                                   /*    582 */
+  Parrot_ceil_n_n,                                   /*    583 */
+  Parrot_floor_n,                                    /*    584 */
+  Parrot_floor_i_n,                                  /*    585 */
+  Parrot_floor_n_n,                                  /*    586 */
+  Parrot_inc_i,                                      /*    587 */
+  Parrot_inc_n,                                      /*    588 */
+  Parrot_inc_p,                                      /*    589 */
+  Parrot_mod_i_i,                                    /*    590 */
+  Parrot_mod_i_ic,                                   /*    591 */
+  Parrot_mod_n_n,                                    /*    592 */
+  Parrot_mod_n_nc,                                   /*    593 */
+  Parrot_mod_p_p,                                    /*    594 */
+  Parrot_mod_p_i,                                    /*    595 */
+  Parrot_mod_p_ic,                                   /*    596 */
+  Parrot_mod_p_n,                                    /*    597 */
+  Parrot_mod_p_nc,                                   /*    598 */
+  Parrot_mod_i_i_i,                                  /*    599 */
+  Parrot_mod_i_ic_i,                                 /*    600 */
+  Parrot_mod_i_i_ic,                                 /*    601 */
+  Parrot_mod_n_n_n,                                  /*    602 */
+  Parrot_mod_n_nc_n,                                 /*    603 */
+  Parrot_mod_n_n_nc,                                 /*    604 */
+  Parrot_mod_p_p_p,                                  /*    605 */
+  Parrot_mod_p_p_i,                                  /*    606 */
+  Parrot_mod_p_p_ic,                                 /*    607 */
+  Parrot_mod_p_p_n,                                  /*    608 */
+  Parrot_mod_p_p_nc,                                 /*    609 */
+  Parrot_mul_i_i,                                    /*    610 */
+  Parrot_mul_i_ic,                                   /*    611 */
+  Parrot_mul_n_n,                                    /*    612 */
+  Parrot_mul_n_nc,                                   /*    613 */
+  Parrot_mul_p_p,                                    /*    614 */
+  Parrot_mul_p_i,                                    /*    615 */
+  Parrot_mul_p_ic,                                   /*    616 */
+  Parrot_mul_p_n,                                    /*    617 */
+  Parrot_mul_p_nc,                                   /*    618 */
+  Parrot_mul_i_i_i,                                  /*    619 */
+  Parrot_mul_i_ic_i,                                 /*    620 */
+  Parrot_mul_i_i_ic,                                 /*    621 */
+  Parrot_mul_n_n_n,                                  /*    622 */
+  Parrot_mul_n_nc_n,                                 /*    623 */
+  Parrot_mul_n_n_nc,                                 /*    624 */
+  Parrot_mul_p_p_p,                                  /*    625 */
+  Parrot_mul_p_p_i,                                  /*    626 */
+  Parrot_mul_p_p_ic,                                 /*    627 */
+  Parrot_mul_p_p_n,                                  /*    628 */
+  Parrot_mul_p_p_nc,                                 /*    629 */
+  Parrot_neg_i,                                      /*    630 */
+  Parrot_neg_n,                                      /*    631 */
+  Parrot_neg_p,                                      /*    632 */
+  Parrot_neg_i_i,                                    /*    633 */
+  Parrot_neg_n_n,                                    /*    634 */
+  Parrot_neg_p_p,                                    /*    635 */
+  Parrot_pow_n_n_n,                                  /*    636 */
+  Parrot_pow_n_nc_n,                                 /*    637 */
+  Parrot_pow_n_n_nc,                                 /*    638 */
+  Parrot_pow_p_p_p,                                  /*    639 */
+  Parrot_pow_p_p_i,                                  /*    640 */
+  Parrot_pow_p_p_ic,                                 /*    641 */
+  Parrot_pow_p_p_n,                                  /*    642 */
+  Parrot_pow_p_p_nc,                                 /*    643 */
+  Parrot_pow_n_n_i,                                  /*    644 */
+  Parrot_pow_n_nc_i,                                 /*    645 */
+  Parrot_pow_n_n_ic,                                 /*    646 */
+  Parrot_pow_n_nc_ic,                                /*    647 */
+  Parrot_sub_i_i,                                    /*    648 */
+  Parrot_sub_i_ic,                                   /*    649 */
+  Parrot_sub_n_n,                                    /*    650 */
+  Parrot_sub_n_nc,                                   /*    651 */
+  Parrot_sub_p_p,                                    /*    652 */
+  Parrot_sub_p_i,                                    /*    653 */
+  Parrot_sub_p_ic,                                   /*    654 */
+  Parrot_sub_p_n,                                    /*    655 */
+  Parrot_sub_p_nc,                                   /*    656 */
+  Parrot_sub_i_i_i,                                  /*    657 */
+  Parrot_sub_i_ic_i,                                 /*    658 */
+  Parrot_sub_i_i_ic,                                 /*    659 */
+  Parrot_sub_n_n_n,                                  /*    660 */
+  Parrot_sub_n_nc_n,                                 /*    661 */
+  Parrot_sub_n_n_nc,                                 /*    662 */
+  Parrot_sub_p_p_p,                                  /*    663 */
+  Parrot_sub_p_p_i,                                  /*    664 */
+  Parrot_sub_p_p_ic,                                 /*    665 */
+  Parrot_sub_p_p_n,                                  /*    666 */
+  Parrot_sub_p_p_nc,                                 /*    667 */
+  Parrot_sqrt_n_n,                                   /*    668 */
+  Parrot_acos_n_n,                                   /*    669 */
+  Parrot_asec_n_n,                                   /*    670 */
+  Parrot_asin_n_n,                                   /*    671 */
+  Parrot_atan_n_n,                                   /*    672 */
+  Parrot_atan_n_n_n,                                 /*    673 */
+  Parrot_atan_n_nc_n,                                /*    674 */
+  Parrot_atan_n_n_nc,                                /*    675 */
+  Parrot_cos_n_n,                                    /*    676 */
+  Parrot_cosh_n_n,                                   /*    677 */
+  Parrot_exp_n_n,                                    /*    678 */
+  Parrot_ln_n_n,                                     /*    679 */
+  Parrot_log10_n_n,                                  /*    680 */
+  Parrot_log2_n_n,                                   /*    681 */
+  Parrot_sec_n_n,                                    /*    682 */
+  Parrot_sech_n_n,                                   /*    683 */
+  Parrot_sin_n_n,                                    /*    684 */
+  Parrot_sinh_n_n,                                   /*    685 */
+  Parrot_tan_n_n,                                    /*    686 */
+  Parrot_tanh_n_n,                                   /*    687 */
+  Parrot_callmethodcc_p_s,                           /*    688 */
+  Parrot_callmethodcc_p_sc,                          /*    689 */
+  Parrot_callmethodcc_p_p,                           /*    690 */
+  Parrot_callmethod_p_s_p,                           /*    691 */
+  Parrot_callmethod_p_sc_p,                          /*    692 */
+  Parrot_callmethod_p_p_p,                           /*    693 */
+  Parrot_tailcallmethod_p_s,                         /*    694 */
+  Parrot_tailcallmethod_p_sc,                        /*    695 */
+  Parrot_tailcallmethod_p_p,                         /*    696 */
+  Parrot_addmethod_p_s_p,                            /*    697 */
+  Parrot_addmethod_p_sc_p,                           /*    698 */
+  Parrot_can_i_p_s,                                  /*    699 */
+  Parrot_can_i_p_sc,                                 /*    700 */
+  Parrot_does_i_p_s,                                 /*    701 */
+  Parrot_does_i_p_sc,                                /*    702 */
+  Parrot_does_i_p_p,                                 /*    703 */
+  Parrot_does_i_p_pc,                                /*    704 */
+  Parrot_isa_i_p_s,                                  /*    705 */
+  Parrot_isa_i_p_sc,                                 /*    706 */
+  Parrot_isa_i_p_p,                                  /*    707 */
+  Parrot_isa_i_p_pc,                                 /*    708 */
+  Parrot_newclass_p_s,                               /*    709 */
+  Parrot_newclass_p_sc,                              /*    710 */
+  Parrot_newclass_p_p,                               /*    711 */
+  Parrot_newclass_p_pc,                              /*    712 */
+  Parrot_subclass_p_p,                               /*    713 */
+  Parrot_subclass_p_pc,                              /*    714 */
+  Parrot_subclass_p_p_s,                             /*    715 */
+  Parrot_subclass_p_pc_s,                            /*    716 */
+  Parrot_subclass_p_p_sc,                            /*    717 */
+  Parrot_subclass_p_pc_sc,                           /*    718 */
+  Parrot_subclass_p_p_p,                             /*    719 */
+  Parrot_subclass_p_pc_p,                            /*    720 */
+  Parrot_subclass_p_p_pc,                            /*    721 */
+  Parrot_subclass_p_pc_pc,                           /*    722 */
+  Parrot_subclass_p_s,                               /*    723 */
+  Parrot_subclass_p_sc,                              /*    724 */
+  Parrot_subclass_p_s_s,                             /*    725 */
+  Parrot_subclass_p_sc_s,                            /*    726 */
+  Parrot_subclass_p_s_sc,                            /*    727 */
+  Parrot_subclass_p_sc_sc,                           /*    728 */
+  Parrot_subclass_p_s_p,                             /*    729 */
+  Parrot_subclass_p_sc_p,                            /*    730 */
+  Parrot_subclass_p_s_pc,                            /*    731 */
+  Parrot_subclass_p_sc_pc,                           /*    732 */
+  Parrot_get_class_p_s,                              /*    733 */
+  Parrot_get_class_p_sc,                             /*    734 */
+  Parrot_get_class_p_p,                              /*    735 */
+  Parrot_get_class_p_pc,                             /*    736 */
+  Parrot_class_p_p,                                  /*    737 */
+  Parrot_addparent_p_p,                              /*    738 */
+  Parrot_removeparent_p_p,                           /*    739 */
+  Parrot_addrole_p_p,                                /*    740 */
+  Parrot_addattribute_p_s,                           /*    741 */
+  Parrot_addattribute_p_sc,                          /*    742 */
+  Parrot_removeattribute_p_s,                        /*    743 */
+  Parrot_removeattribute_p_sc,                       /*    744 */
+  Parrot_getattribute_p_p_s,                         /*    745 */
+  Parrot_getattribute_p_p_sc,                        /*    746 */
+  Parrot_getattribute_p_p_p_s,                       /*    747 */
+  Parrot_getattribute_p_p_pc_s,                      /*    748 */
+  Parrot_getattribute_p_p_p_sc,                      /*    749 */
+  Parrot_getattribute_p_p_pc_sc,                     /*    750 */
+  Parrot_setattribute_p_s_p,                         /*    751 */
+  Parrot_setattribute_p_sc_p,                        /*    752 */
+  Parrot_setattribute_p_p_s_p,                       /*    753 */
+  Parrot_setattribute_p_pc_s_p,                      /*    754 */
+  Parrot_setattribute_p_p_sc_p,                      /*    755 */
+  Parrot_setattribute_p_pc_sc_p,                     /*    756 */
+  Parrot_inspect_p_p,                                /*    757 */
+  Parrot_inspect_p_pc,                               /*    758 */
+  Parrot_inspect_p_p_s,                              /*    759 */
+  Parrot_inspect_p_pc_s,                             /*    760 */
+  Parrot_inspect_p_p_sc,                             /*    761 */
+  Parrot_inspect_p_pc_sc,                            /*    762 */
+  Parrot_new_p_s,                                    /*    763 */
+  Parrot_new_p_sc,                                   /*    764 */
+  Parrot_new_p_s_p,                                  /*    765 */
+  Parrot_new_p_sc_p,                                 /*    766 */
+  Parrot_new_p_s_pc,                                 /*    767 */
+  Parrot_new_p_sc_pc,                                /*    768 */
+  Parrot_new_p_p,                                    /*    769 */
+  Parrot_new_p_pc,                                   /*    770 */
+  Parrot_new_p_p_p,                                  /*    771 */
+  Parrot_new_p_pc_p,                                 /*    772 */
+  Parrot_new_p_p_pc,                                 /*    773 */
+  Parrot_new_p_pc_pc,                                /*    774 */
+  Parrot_root_new_p_p,                               /*    775 */
+  Parrot_root_new_p_pc,                              /*    776 */
+  Parrot_root_new_p_p_p,                             /*    777 */
+  Parrot_root_new_p_pc_p,                            /*    778 */
+  Parrot_root_new_p_p_pc,                            /*    779 */
+  Parrot_root_new_p_pc_pc,                           /*    780 */
+  Parrot_typeof_s_p,                                 /*    781 */
+  Parrot_typeof_p_p,                                 /*    782 */
+  Parrot_get_repr_s_p,                               /*    783 */
+  Parrot_find_method_p_p_s,                          /*    784 */
+  Parrot_find_method_p_p_sc,                         /*    785 */
+  Parrot_defined_i_p,                                /*    786 */
+  Parrot_defined_i_p_ki,                             /*    787 */
+  Parrot_defined_i_p_kic,                            /*    788 */
+  Parrot_defined_i_p_k,                              /*    789 */
+  Parrot_defined_i_p_kc,                             /*    790 */
+  Parrot_exists_i_p_ki,                              /*    791 */
+  Parrot_exists_i_p_kic,                             /*    792 */
+  Parrot_exists_i_p_k,                               /*    793 */
+  Parrot_exists_i_p_kc,                              /*    794 */
+  Parrot_delete_p_k,                                 /*    795 */
+  Parrot_delete_p_kc,                                /*    796 */
+  Parrot_delete_p_ki,                                /*    797 */
+  Parrot_delete_p_kic,                               /*    798 */
+  Parrot_elements_i_p,                               /*    799 */
+  Parrot_push_p_i,                                   /*    800 */
+  Parrot_push_p_ic,                                  /*    801 */
+  Parrot_push_p_n,                                   /*    802 */
+  Parrot_push_p_nc,                                  /*    803 */
+  Parrot_push_p_s,                                   /*    804 */
+  Parrot_push_p_sc,                                  /*    805 */
+  Parrot_push_p_p,                                   /*    806 */
+  Parrot_pop_i_p,                                    /*    807 */
+  Parrot_pop_n_p,                                    /*    808 */
+  Parrot_pop_s_p,                                    /*    809 */
+  Parrot_pop_p_p,                                    /*    810 */
+  Parrot_unshift_p_i,                                /*    811 */
+  Parrot_unshift_p_ic,                               /*    812 */
+  Parrot_unshift_p_n,                                /*    813 */
+  Parrot_unshift_p_nc,                               /*    814 */
+  Parrot_unshift_p_s,                                /*    815 */
+  Parrot_unshift_p_sc,                               /*    816 */
+  Parrot_unshift_p_p,                                /*    817 */
+  Parrot_shift_i_p,                                  /*    818 */
+  Parrot_shift_n_p,                                  /*    819 */
+  Parrot_shift_s_p,                                  /*    820 */
+  Parrot_shift_p_p,                                  /*    821 */
+  Parrot_splice_p_p_i_i,                             /*    822 */
+  Parrot_splice_p_p_ic_i,                            /*    823 */
+  Parrot_splice_p_p_i_ic,                            /*    824 */
+  Parrot_splice_p_p_ic_ic,                           /*    825 */
+  Parrot_setprop_p_s_p,                              /*    826 */
+  Parrot_setprop_p_sc_p,                             /*    827 */
+  Parrot_getprop_p_s_p,                              /*    828 */
+  Parrot_getprop_p_sc_p,                             /*    829 */
+  Parrot_delprop_p_s,                                /*    830 */
+  Parrot_delprop_p_sc,                               /*    831 */
+  Parrot_prophash_p_p,                               /*    832 */
+  Parrot_freeze_s_p,                                 /*    833 */
+  Parrot_thaw_p_s,                                   /*    834 */
+  Parrot_thaw_p_sc,                                  /*    835 */
+  Parrot_add_multi_s_s_p,                            /*    836 */
+  Parrot_add_multi_sc_s_p,                           /*    837 */
+  Parrot_add_multi_s_sc_p,                           /*    838 */
+  Parrot_add_multi_sc_sc_p,                          /*    839 */
+  Parrot_find_multi_p_s_s,                           /*    840 */
+  Parrot_find_multi_p_sc_s,                          /*    841 */
+  Parrot_find_multi_p_s_sc,                          /*    842 */
+  Parrot_find_multi_p_sc_sc,                         /*    843 */
+  Parrot_register_p,                                 /*    844 */
+  Parrot_unregister_p,                               /*    845 */
+  Parrot_box_p_i,                                    /*    846 */
+  Parrot_box_p_ic,                                   /*    847 */
+  Parrot_box_p_n,                                    /*    848 */
+  Parrot_box_p_nc,                                   /*    849 */
+  Parrot_box_p_s,                                    /*    850 */
+  Parrot_box_p_sc,                                   /*    851 */
+  Parrot_iter_p_p,                                   /*    852 */
+  Parrot_morph_p_p,                                  /*    853 */
+  Parrot_morph_p_pc,                                 /*    854 */
+  Parrot_clone_s_s,                                  /*    855 */
+  Parrot_clone_s_sc,                                 /*    856 */
+  Parrot_set_i_i,                                    /*    857 */
+  Parrot_set_i_ic,                                   /*    858 */
+  Parrot_set_i_n,                                    /*    859 */
+  Parrot_set_i_nc,                                   /*    860 */
+  Parrot_set_i_s,                                    /*    861 */
+  Parrot_set_i_sc,                                   /*    862 */
+  Parrot_set_n_n,                                    /*    863 */
+  Parrot_set_n_nc,                                   /*    864 */
+  Parrot_set_n_i,                                    /*    865 */
+  Parrot_set_n_ic,                                   /*    866 */
+  Parrot_set_n_s,                                    /*    867 */
+  Parrot_set_n_sc,                                   /*    868 */
+  Parrot_set_n_p,                                    /*    869 */
+  Parrot_set_s_p,                                    /*    870 */
+  Parrot_set_s_s,                                    /*    871 */
+  Parrot_set_s_sc,                                   /*    872 */
+  Parrot_set_s_i,                                    /*    873 */
+  Parrot_set_s_ic,                                   /*    874 */
+  Parrot_set_s_n,                                    /*    875 */
+  Parrot_set_s_nc,                                   /*    876 */
+  Parrot_set_p_pc,                                   /*    877 */
+  Parrot_set_p_p,                                    /*    878 */
+  Parrot_set_p_i,                                    /*    879 */
+  Parrot_set_p_ic,                                   /*    880 */
+  Parrot_set_p_n,                                    /*    881 */
+  Parrot_set_p_nc,                                   /*    882 */
+  Parrot_set_p_s,                                    /*    883 */
+  Parrot_set_p_sc,                                   /*    884 */
+  Parrot_set_i_p,                                    /*    885 */
+  Parrot_assign_p_p,                                 /*    886 */
+  Parrot_assign_p_i,                                 /*    887 */
+  Parrot_assign_p_ic,                                /*    888 */
+  Parrot_assign_p_n,                                 /*    889 */
+  Parrot_assign_p_nc,                                /*    890 */
+  Parrot_assign_p_s,                                 /*    891 */
+  Parrot_assign_p_sc,                                /*    892 */
+  Parrot_assign_s_s,                                 /*    893 */
+  Parrot_assign_s_sc,                                /*    894 */
+  Parrot_setref_p_p,                                 /*    895 */
+  Parrot_deref_p_p,                                  /*    896 */
+  Parrot_set_p_ki_i,                                 /*    897 */
+  Parrot_set_p_kic_i,                                /*    898 */
+  Parrot_set_p_ki_ic,                                /*    899 */
+  Parrot_set_p_kic_ic,                               /*    900 */
+  Parrot_set_p_ki_n,                                 /*    901 */
+  Parrot_set_p_kic_n,                                /*    902 */
+  Parrot_set_p_ki_nc,                                /*    903 */
+  Parrot_set_p_kic_nc,                               /*    904 */
+  Parrot_set_p_ki_s,                                 /*    905 */
+  Parrot_set_p_kic_s,                                /*    906 */
+  Parrot_set_p_ki_sc,                                /*    907 */
+  Parrot_set_p_kic_sc,                               /*    908 */
+  Parrot_set_p_ki_p,                                 /*    909 */
+  Parrot_set_p_kic_p,                                /*    910 */
+  Parrot_set_i_p_ki,                                 /*    911 */
+  Parrot_set_i_p_kic,                                /*    912 */
+  Parrot_set_n_p_ki,                                 /*    913 */
+  Parrot_set_n_p_kic,                                /*    914 */
+  Parrot_set_s_p_ki,                                 /*    915 */
+  Parrot_set_s_p_kic,                                /*    916 */
+  Parrot_set_p_p_ki,                                 /*    917 */
+  Parrot_set_p_p_kic,                                /*    918 */
+  Parrot_set_p_k_i,                                  /*    919 */
+  Parrot_set_p_kc_i,                                 /*    920 */
+  Parrot_set_p_k_ic,                                 /*    921 */
+  Parrot_set_p_kc_ic,                                /*    922 */
+  Parrot_set_p_k_n,                                  /*    923 */
+  Parrot_set_p_kc_n,                                 /*    924 */
+  Parrot_set_p_k_nc,                                 /*    925 */
+  Parrot_set_p_kc_nc,                                /*    926 */
+  Parrot_set_p_k_s,                                  /*    927 */
+  Parrot_set_p_kc_s,                                 /*    928 */
+  Parrot_set_p_k_sc,                                 /*    929 */
+  Parrot_set_p_kc_sc,                                /*    930 */
+  Parrot_set_p_k_p,                                  /*    931 */
+  Parrot_set_p_kc_p,                                 /*    932 */
+  Parrot_set_i_p_k,                                  /*    933 */
+  Parrot_set_i_p_kc,                                 /*    934 */
+  Parrot_set_n_p_k,                                  /*    935 */
+  Parrot_set_n_p_kc,                                 /*    936 */
+  Parrot_set_s_p_k,                                  /*    937 */
+  Parrot_set_s_p_kc,                                 /*    938 */
+  Parrot_set_p_p_k,                                  /*    939 */
+  Parrot_set_p_p_kc,                                 /*    940 */
+  Parrot_clone_p_p,                                  /*    941 */
+  Parrot_clone_p_p_p,                                /*    942 */
+  Parrot_clone_p_p_pc,                               /*    943 */
+  Parrot_copy_p_p,                                   /*    944 */
+  Parrot_null_s,                                     /*    945 */
+  Parrot_null_i,                                     /*    946 */
+  Parrot_null_p,                                     /*    947 */
+  Parrot_null_n,                                     /*    948 */
+  Parrot_ord_i_s,                                    /*    949 */
+  Parrot_ord_i_sc,                                   /*    950 */
+  Parrot_ord_i_s_i,                                  /*    951 */
+  Parrot_ord_i_sc_i,                                 /*    952 */
+  Parrot_ord_i_s_ic,                                 /*    953 */
+  Parrot_ord_i_sc_ic,                                /*    954 */
+  Parrot_chr_s_i,                                    /*    955 */
+  Parrot_chr_s_ic,                                   /*    956 */
+  Parrot_chopn_s_s_i,                                /*    957 */
+  Parrot_chopn_s_sc_i,                               /*    958 */
+  Parrot_chopn_s_s_ic,                               /*    959 */
+  Parrot_chopn_s_sc_ic,                              /*    960 */
+  Parrot_concat_s_s,                                 /*    961 */
+  Parrot_concat_s_sc,                                /*    962 */
+  Parrot_concat_p_p,                                 /*    963 */
+  Parrot_concat_p_s,                                 /*    964 */
+  Parrot_concat_p_sc,                                /*    965 */
+  Parrot_concat_s_s_s,                               /*    966 */
+  Parrot_concat_s_sc_s,                              /*    967 */
+  Parrot_concat_s_s_sc,                              /*    968 */
+  Parrot_concat_p_p_s,                               /*    969 */
+  Parrot_concat_p_p_sc,                              /*    970 */
+  Parrot_concat_p_p_p,                               /*    971 */
+  Parrot_repeat_s_s_i,                               /*    972 */
+  Parrot_repeat_s_sc_i,                              /*    973 */
+  Parrot_repeat_s_s_ic,                              /*    974 */
+  Parrot_repeat_s_sc_ic,                             /*    975 */
+  Parrot_repeat_p_p_i,                               /*    976 */
+  Parrot_repeat_p_p_ic,                              /*    977 */
+  Parrot_repeat_p_p_p,                               /*    978 */
+  Parrot_repeat_p_i,                                 /*    979 */
+  Parrot_repeat_p_ic,                                /*    980 */
+  Parrot_repeat_p_p,                                 /*    981 */
+  Parrot_length_i_s,                                 /*    982 */
+  Parrot_length_i_sc,                                /*    983 */
+  Parrot_bytelength_i_s,                             /*    984 */
+  Parrot_bytelength_i_sc,                            /*    985 */
+  Parrot_pin_s,                                      /*    986 */
+  Parrot_unpin_s,                                    /*    987 */
+  Parrot_substr_s_s_i,                               /*    988 */
+  Parrot_substr_s_sc_i,                              /*    989 */
+  Parrot_substr_s_s_ic,                              /*    990 */
+  Parrot_substr_s_sc_ic,                             /*    991 */
+  Parrot_substr_s_s_i_i,                             /*    992 */
+  Parrot_substr_s_sc_i_i,                            /*    993 */
+  Parrot_substr_s_s_ic_i,                            /*    994 */
+  Parrot_substr_s_sc_ic_i,                           /*    995 */
+  Parrot_substr_s_s_i_ic,                            /*    996 */
+  Parrot_substr_s_sc_i_ic,                           /*    997 */
+  Parrot_substr_s_s_ic_ic,                           /*    998 */
+  Parrot_substr_s_sc_ic_ic,                          /*    999 */
+  Parrot_substr_s_p_i_i,                             /*   1000 */
+  Parrot_substr_s_p_ic_i,                            /*   1001 */
+  Parrot_substr_s_p_i_ic,                            /*   1002 */
+  Parrot_substr_s_p_ic_ic,                           /*   1003 */
+  Parrot_replace_s_s_i_i_s,                          /*   1004 */
+  Parrot_replace_s_sc_i_i_s,                         /*   1005 */
+  Parrot_replace_s_s_ic_i_s,                         /*   1006 */
+  Parrot_replace_s_sc_ic_i_s,                        /*   1007 */
+  Parrot_replace_s_s_i_ic_s,                         /*   1008 */
+  Parrot_replace_s_sc_i_ic_s,                        /*   1009 */
+  Parrot_replace_s_s_ic_ic_s,                        /*   1010 */
+  Parrot_replace_s_sc_ic_ic_s,                       /*   1011 */
+  Parrot_replace_s_s_i_i_sc,                         /*   1012 */
+  Parrot_replace_s_sc_i_i_sc,                        /*   1013 */
+  Parrot_replace_s_s_ic_i_sc,                        /*   1014 */
+  Parrot_replace_s_sc_ic_i_sc,                       /*   1015 */
+  Parrot_replace_s_s_i_ic_sc,                        /*   1016 */
+  Parrot_replace_s_sc_i_ic_sc,                       /*   1017 */
+  Parrot_replace_s_s_ic_ic_sc,                       /*   1018 */
+  Parrot_replace_s_sc_ic_ic_sc,                      /*   1019 */
+  Parrot_index_i_s_s,                                /*   1020 */
+  Parrot_index_i_sc_s,                               /*   1021 */
+  Parrot_index_i_s_sc,                               /*   1022 */
+  Parrot_index_i_sc_sc,                              /*   1023 */
+  Parrot_index_i_s_s_i,                              /*   1024 */
+  Parrot_index_i_sc_s_i,                             /*   1025 */
+  Parrot_index_i_s_sc_i,                             /*   1026 */
+  Parrot_index_i_sc_sc_i,                            /*   1027 */
+  Parrot_index_i_s_s_ic,                             /*   1028 */
+  Parrot_index_i_sc_s_ic,                            /*   1029 */
+  Parrot_index_i_s_sc_ic,                            /*   1030 */
+  Parrot_index_i_sc_sc_ic,                           /*   1031 */
+  Parrot_sprintf_s_s_p,                              /*   1032 */
+  Parrot_sprintf_s_sc_p,                             /*   1033 */
+  Parrot_sprintf_p_p_p,                              /*   1034 */
+  Parrot_new_s,                                      /*   1035 */
+  Parrot_new_s_i,                                    /*   1036 */
+  Parrot_new_s_ic,                                   /*   1037 */
+  Parrot_stringinfo_i_s_i,                           /*   1038 */
+  Parrot_stringinfo_i_sc_i,                          /*   1039 */
+  Parrot_stringinfo_i_s_ic,                          /*   1040 */
+  Parrot_stringinfo_i_sc_ic,                         /*   1041 */
+  Parrot_upcase_s_s,                                 /*   1042 */
+  Parrot_upcase_s_sc,                                /*   1043 */
+  Parrot_downcase_s_s,                               /*   1044 */
+  Parrot_downcase_s_sc,                              /*   1045 */
+  Parrot_titlecase_s_s,                              /*   1046 */
+  Parrot_titlecase_s_sc,                             /*   1047 */
+  Parrot_join_s_s_p,                                 /*   1048 */
+  Parrot_join_s_sc_p,                                /*   1049 */
+  Parrot_split_p_s_s,                                /*   1050 */
+  Parrot_split_p_sc_s,                               /*   1051 */
+  Parrot_split_p_s_sc,                               /*   1052 */
+  Parrot_split_p_sc_sc,                              /*   1053 */
+  Parrot_charset_i_s,                                /*   1054 */
+  Parrot_charset_i_sc,                               /*   1055 */
+  Parrot_charsetname_s_i,                            /*   1056 */
+  Parrot_charsetname_s_ic,                           /*   1057 */
+  Parrot_find_charset_i_s,                           /*   1058 */
+  Parrot_find_charset_i_sc,                          /*   1059 */
+  Parrot_trans_charset_s_s_i,                        /*   1060 */
+  Parrot_trans_charset_s_sc_i,                       /*   1061 */
+  Parrot_trans_charset_s_s_ic,                       /*   1062 */
+  Parrot_trans_charset_s_sc_ic,                      /*   1063 */
+  Parrot_encoding_i_s,                               /*   1064 */
+  Parrot_encoding_i_sc,                              /*   1065 */
+  Parrot_encodingname_s_i,                           /*   1066 */
+  Parrot_encodingname_s_ic,                          /*   1067 */
+  Parrot_find_encoding_i_s,                          /*   1068 */
+  Parrot_find_encoding_i_sc,                         /*   1069 */
+  Parrot_trans_encoding_s_s_i,                       /*   1070 */
+  Parrot_trans_encoding_s_sc_i,                      /*   1071 */
+  Parrot_trans_encoding_s_s_ic,                      /*   1072 */
+  Parrot_trans_encoding_s_sc_ic,                     /*   1073 */
+  Parrot_is_cclass_i_i_s_i,                          /*   1074 */
+  Parrot_is_cclass_i_ic_s_i,                         /*   1075 */
+  Parrot_is_cclass_i_i_sc_i,                         /*   1076 */
+  Parrot_is_cclass_i_ic_sc_i,                        /*   1077 */
+  Parrot_is_cclass_i_i_s_ic,                         /*   1078 */
+  Parrot_is_cclass_i_ic_s_ic,                        /*   1079 */
+  Parrot_is_cclass_i_i_sc_ic,                        /*   1080 */
+  Parrot_is_cclass_i_ic_sc_ic,                       /*   1081 */
+  Parrot_find_cclass_i_i_s_i_i,                      /*   1082 */
+  Parrot_find_cclass_i_ic_s_i_i,                     /*   1083 */
+  Parrot_find_cclass_i_i_sc_i_i,                     /*   1084 */
+  Parrot_find_cclass_i_ic_sc_i_i,                    /*   1085 */
+  Parrot_find_cclass_i_i_s_ic_i,                     /*   1086 */
+  Parrot_find_cclass_i_ic_s_ic_i,                    /*   1087 */
+  Parrot_find_cclass_i_i_sc_ic_i,                    /*   1088 */
+  Parrot_find_cclass_i_ic_sc_ic_i,                   /*   1089 */
+  Parrot_find_cclass_i_i_s_i_ic,                     /*   1090 */
+  Parrot_find_cclass_i_ic_s_i_ic,                    /*   1091 */
+  Parrot_find_cclass_i_i_sc_i_ic,                    /*   1092 */
+  Parrot_find_cclass_i_ic_sc_i_ic,                   /*   1093 */
+  Parrot_find_cclass_i_i_s_ic_ic,                    /*   1094 */
+  Parrot_find_cclass_i_ic_s_ic_ic,                   /*   1095 */
+  Parrot_find_cclass_i_i_sc_ic_ic,                   /*   1096 */
+  Parrot_find_cclass_i_ic_sc_ic_ic,                  /*   1097 */
+  Parrot_find_not_cclass_i_i_s_i_i,                  /*   1098 */
+  Parrot_find_not_cclass_i_ic_s_i_i,                 /*   1099 */
+  Parrot_find_not_cclass_i_i_sc_i_i,                 /*   1100 */
+  Parrot_find_not_cclass_i_ic_sc_i_i,                /*   1101 */
+  Parrot_find_not_cclass_i_i_s_ic_i,                 /*   1102 */
+  Parrot_find_not_cclass_i_ic_s_ic_i,                /*   1103 */
+  Parrot_find_not_cclass_i_i_sc_ic_i,                /*   1104 */
+  Parrot_find_not_cclass_i_ic_sc_ic_i,               /*   1105 */
+  Parrot_find_not_cclass_i_i_s_i_ic,                 /*   1106 */
+  Parrot_find_not_cclass_i_ic_s_i_ic,                /*   1107 */
+  Parrot_find_not_cclass_i_i_sc_i_ic,                /*   1108 */
+  Parrot_find_not_cclass_i_ic_sc_i_ic,               /*   1109 */
+  Parrot_find_not_cclass_i_i_s_ic_ic,                /*   1110 */
+  Parrot_find_not_cclass_i_ic_s_ic_ic,               /*   1111 */
+  Parrot_find_not_cclass_i_i_sc_ic_ic,               /*   1112 */
+  Parrot_find_not_cclass_i_ic_sc_ic_ic,              /*   1113 */
+  Parrot_escape_s_s,                                 /*   1114 */
+  Parrot_compose_s_s,                                /*   1115 */
+  Parrot_compose_s_sc,                               /*   1116 */
+  Parrot_spawnw_i_s,                                 /*   1117 */
+  Parrot_spawnw_i_sc,                                /*   1118 */
+  Parrot_spawnw_i_p,                                 /*   1119 */
+  Parrot_err_i,                                      /*   1120 */
+  Parrot_err_s,                                      /*   1121 */
+  Parrot_err_s_i,                                    /*   1122 */
+  Parrot_err_s_ic,                                   /*   1123 */
+  Parrot_time_i,                                     /*   1124 */
+  Parrot_time_n,                                     /*   1125 */
+  Parrot_gmtime_s_i,                                 /*   1126 */
+  Parrot_gmtime_s_ic,                                /*   1127 */
+  Parrot_localtime_s_i,                              /*   1128 */
+  Parrot_localtime_s_ic,                             /*   1129 */
+  Parrot_decodetime_p_i,                             /*   1130 */
+  Parrot_decodetime_p_ic,                            /*   1131 */
+  Parrot_decodelocaltime_p_i,                        /*   1132 */
+  Parrot_decodelocaltime_p_ic,                       /*   1133 */
+  Parrot_sysinfo_s_i,                                /*   1134 */
+  Parrot_sysinfo_s_ic,                               /*   1135 */
+  Parrot_sysinfo_i_i,                                /*   1136 */
+  Parrot_sysinfo_i_ic,                               /*   1137 */
+  Parrot_sleep_i,                                    /*   1138 */
+  Parrot_sleep_ic,                                   /*   1139 */
+  Parrot_sleep_n,                                    /*   1140 */
+  Parrot_sleep_nc,                                   /*   1141 */
+  Parrot_store_lex_s_p,                              /*   1142 */
+  Parrot_store_lex_sc_p,                             /*   1143 */
+  Parrot_store_dynamic_lex_s_p,                      /*   1144 */
+  Parrot_store_dynamic_lex_sc_p,                     /*   1145 */
+  Parrot_find_lex_p_s,                               /*   1146 */
+  Parrot_find_lex_p_sc,                              /*   1147 */
+  Parrot_find_dynamic_lex_p_s,                       /*   1148 */
+  Parrot_find_dynamic_lex_p_sc,                      /*   1149 */
+  Parrot_find_caller_lex_p_s,                        /*   1150 */
+  Parrot_find_caller_lex_p_sc,                       /*   1151 */
+  Parrot_get_namespace_p,                            /*   1152 */
+  Parrot_get_namespace_p_p,                          /*   1153 */
+  Parrot_get_namespace_p_pc,                         /*   1154 */
+  Parrot_get_hll_namespace_p,                        /*   1155 */
+  Parrot_get_hll_namespace_p_p,                      /*   1156 */
+  Parrot_get_hll_namespace_p_pc,                     /*   1157 */
+  Parrot_get_root_namespace_p,                       /*   1158 */
+  Parrot_get_root_namespace_p_p,                     /*   1159 */
+  Parrot_get_root_namespace_p_pc,                    /*   1160 */
+  Parrot_get_global_p_s,                             /*   1161 */
+  Parrot_get_global_p_sc,                            /*   1162 */
+  Parrot_get_global_p_p_s,                           /*   1163 */
+  Parrot_get_global_p_pc_s,                          /*   1164 */
+  Parrot_get_global_p_p_sc,                          /*   1165 */
+  Parrot_get_global_p_pc_sc,                         /*   1166 */
+  Parrot_get_hll_global_p_s,                         /*   1167 */
+  Parrot_get_hll_global_p_sc,                        /*   1168 */
+  Parrot_get_hll_global_p_p_s,                       /*   1169 */
+  Parrot_get_hll_global_p_pc_s,                      /*   1170 */
+  Parrot_get_hll_global_p_p_sc,                      /*   1171 */
+  Parrot_get_hll_global_p_pc_sc,                     /*   1172 */
+  Parrot_get_root_global_p_s,                        /*   1173 */
+  Parrot_get_root_global_p_sc,                       /*   1174 */
+  Parrot_get_root_global_p_p_s,                      /*   1175 */
+  Parrot_get_root_global_p_pc_s,                     /*   1176 */
+  Parrot_get_root_global_p_p_sc,                     /*   1177 */
+  Parrot_get_root_global_p_pc_sc,                    /*   1178 */
+  Parrot_set_global_s_p,                             /*   1179 */
+  Parrot_set_global_sc_p,                            /*   1180 */
+  Parrot_set_global_p_s_p,                           /*   1181 */
+  Parrot_set_global_pc_s_p,                          /*   1182 */
+  Parrot_set_global_p_sc_p,                          /*   1183 */
+  Parrot_set_global_pc_sc_p,                         /*   1184 */
+  Parrot_set_hll_global_s_p,                         /*   1185 */
+  Parrot_set_hll_global_sc_p,                        /*   1186 */
+  Parrot_set_hll_global_p_s_p,                       /*   1187 */
+  Parrot_set_hll_global_pc_s_p,                      /*   1188 */
+  Parrot_set_hll_global_p_sc_p,                      /*   1189 */
+  Parrot_set_hll_global_pc_sc_p,                     /*   1190 */
+  Parrot_set_root_global_s_p,                        /*   1191 */
+  Parrot_set_root_global_sc_p,                       /*   1192 */
+  Parrot_set_root_global_p_s_p,                      /*   1193 */
+  Parrot_set_root_global_pc_s_p,                     /*   1194 */
+  Parrot_set_root_global_p_sc_p,                     /*   1195 */
+  Parrot_set_root_global_pc_sc_p,                    /*   1196 */
+  Parrot_find_name_p_s,                              /*   1197 */
+  Parrot_find_name_p_sc,                             /*   1198 */
+  Parrot_find_sub_not_null_p_s,                      /*   1199 */
+  Parrot_find_sub_not_null_p_sc,                     /*   1200 */
+  Parrot_trap,                                       /*   1201 */
+  Parrot_set_label_p_ic,                             /*   1202 */
+  Parrot_get_label_i_p,                              /*   1203 */
+  Parrot_fetch_p_p_p_p,                              /*   1204 */
+  Parrot_fetch_p_pc_p_p,                             /*   1205 */
+  Parrot_fetch_p_p_pc_p,                             /*   1206 */
+  Parrot_fetch_p_pc_pc_p,                            /*   1207 */
+  Parrot_fetch_p_p_p_pc,                             /*   1208 */
+  Parrot_fetch_p_pc_p_pc,                            /*   1209 */
+  Parrot_fetch_p_p_pc_pc,                            /*   1210 */
+  Parrot_fetch_p_pc_pc_pc,                           /*   1211 */
+  Parrot_fetch_p_p_i_p,                              /*   1212 */
+  Parrot_fetch_p_pc_i_p,                             /*   1213 */
+  Parrot_fetch_p_p_ic_p,                             /*   1214 */
+  Parrot_fetch_p_pc_ic_p,                            /*   1215 */
+  Parrot_fetch_p_p_i_pc,                             /*   1216 */
+  Parrot_fetch_p_pc_i_pc,                            /*   1217 */
+  Parrot_fetch_p_p_ic_pc,                            /*   1218 */
+  Parrot_fetch_p_pc_ic_pc,                           /*   1219 */
+  Parrot_fetch_p_p_s_p,                              /*   1220 */
+  Parrot_fetch_p_pc_s_p,                             /*   1221 */
+  Parrot_fetch_p_p_sc_p,                             /*   1222 */
+  Parrot_fetch_p_pc_sc_p,                            /*   1223 */
+  Parrot_fetch_p_p_s_pc,                             /*   1224 */
+  Parrot_fetch_p_pc_s_pc,                            /*   1225 */
+  Parrot_fetch_p_p_sc_pc,                            /*   1226 */
+  Parrot_fetch_p_pc_sc_pc,                           /*   1227 */
+  Parrot_vivify_p_p_p_p,                             /*   1228 */
+  Parrot_vivify_p_pc_p_p,                            /*   1229 */
+  Parrot_vivify_p_p_pc_p,                            /*   1230 */
+  Parrot_vivify_p_pc_pc_p,                           /*   1231 */
+  Parrot_vivify_p_p_p_pc,                            /*   1232 */
+  Parrot_vivify_p_pc_p_pc,                           /*   1233 */
+  Parrot_vivify_p_p_pc_pc,                           /*   1234 */
+  Parrot_vivify_p_pc_pc_pc,                          /*   1235 */
+  Parrot_vivify_p_p_i_p,                             /*   1236 */
+  Parrot_vivify_p_pc_i_p,                            /*   1237 */
+  Parrot_vivify_p_p_ic_p,                            /*   1238 */
+  Parrot_vivify_p_pc_ic_p,                           /*   1239 */
+  Parrot_vivify_p_p_i_pc,                            /*   1240 */
+  Parrot_vivify_p_pc_i_pc,                           /*   1241 */
+  Parrot_vivify_p_p_ic_pc,                           /*   1242 */
+  Parrot_vivify_p_pc_ic_pc,                          /*   1243 */
+  Parrot_vivify_p_p_s_p,                             /*   1244 */
+  Parrot_vivify_p_pc_s_p,                            /*   1245 */
+  Parrot_vivify_p_p_sc_p,                            /*   1246 */
+  Parrot_vivify_p_pc_sc_p,                           /*   1247 */
+  Parrot_vivify_p_p_s_pc,                            /*   1248 */
+  Parrot_vivify_p_pc_s_pc,                           /*   1249 */
+  Parrot_vivify_p_p_sc_pc,                           /*   1250 */
+  Parrot_vivify_p_pc_sc_pc,                          /*   1251 */
+  Parrot_new_p_s_i,                                  /*   1252 */
+  Parrot_new_p_sc_i,                                 /*   1253 */
+  Parrot_new_p_s_ic,                                 /*   1254 */
+  Parrot_new_p_sc_ic,                                /*   1255 */
+  Parrot_new_p_p_i,                                  /*   1256 */
+  Parrot_new_p_pc_i,                                 /*   1257 */
+  Parrot_new_p_p_ic,                                 /*   1258 */
+  Parrot_new_p_pc_ic,                                /*   1259 */
+  Parrot_root_new_p_p_i,                             /*   1260 */
+  Parrot_root_new_p_pc_i,                            /*   1261 */
+  Parrot_root_new_p_p_ic,                            /*   1262 */
+  Parrot_root_new_p_pc_ic,                           /*   1263 */
+  Parrot_find_codepoint_i_s,                         /*   1264 */
+  Parrot_find_codepoint_i_sc,                        /*   1265 */
+  Parrot_unroll_p,                                   /*   1266 */
+  Parrot_unroll_pc,                                  /*   1267 */
+
+  NULL /* NULL function pointer */
+};
+
+
+
+/*
+** Op Info Table:
+*/
+
+static op_info_t core_op_info_table[1269] = {
+  { /* 0 */
+    /* type PARROT_INLINE_OP, */
+    "end",
+    "end",
+    "Parrot_end",
+    /* "",  body */
+    0,
+    1,
+    { (arg_type_t) 0 },
+    { (arg_dir_t) 0 },
+    { 0 }
+  },
+  { /* 1 */
+    /* type PARROT_INLINE_OP, */
+    "noop",
+    "noop",
+    "Parrot_noop",
+    /* "",  body */
+    0,
+    1,
+    { (arg_type_t) 0 },
+    { (arg_dir_t) 0 },
+    { 0 }
+  },
+  { /* 2 */
+    /* type PARROT_INLINE_OP, */
+    "check_events",
+    "check_events",
+    "Parrot_check_events",
+    /* "",  body */
+    0,
+    1,
+    { (arg_type_t) 0 },
+    { (arg_dir_t) 0 },
+    { 0 }
+  },
+  { /* 3 */
+    /* type PARROT_INLINE_OP, */
+    "check_events__",
+    "check_events__",
+    "Parrot_check_events__",
+    /* "",  body */
+    0,
+    1,
+    { (arg_type_t) 0 },
+    { (arg_dir_t) 0 },
+    { 0 }
+  },
+  { /* 4 */
+    /* type PARROT_INLINE_OP, */
+    "wrapper__",
+    "wrapper__",
+    "Parrot_wrapper__",
+    /* "",  body */
+    0,
+    1,
+    { (arg_type_t) 0 },
+    { (arg_dir_t) 0 },
+    { 0 }
+  },
+  { /* 5 */
+    /* type PARROT_INLINE_OP, */
+    "load_bytecode",
+    "load_bytecode_s",
+    "Parrot_load_bytecode_s",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_S },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 6 */
+    /* type PARROT_INLINE_OP, */
+    "load_bytecode",
+    "load_bytecode_sc",
+    "Parrot_load_bytecode_sc",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_SC },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 7 */
+    /* type PARROT_INLINE_OP, */
+    "load_language",
+    "load_language_s",
+    "Parrot_load_language_s",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_S },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 8 */
+    /* type PARROT_INLINE_OP, */
+    "load_language",
+    "load_language_sc",
+    "Parrot_load_language_sc",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_SC },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 9 */
+    /* type PARROT_INLINE_OP, */
+    "branch",
+    "branch_i",
+    "Parrot_branch_i",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    2,
+    { PARROT_ARG_I },
+    { PARROT_ARGDIR_IN },
+    { 1 }
+  },
+  { /* 10 */
+    /* type PARROT_INLINE_OP, */
+    "branch",
+    "branch_ic",
+    "Parrot_branch_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    2,
+    { PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN },
+    { 1 }
+  },
+  { /* 11 */
+    /* type PARROT_INLINE_OP, */
+    "local_branch",
+    "local_branch_p_i",
+    "Parrot_local_branch_p_i",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_I },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 1 }
+  },
+  { /* 12 */
+    /* type PARROT_INLINE_OP, */
+    "local_branch",
+    "local_branch_p_ic",
+    "Parrot_local_branch_p_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 1 }
+  },
+  { /* 13 */
+    /* type PARROT_INLINE_OP, */
+    "local_return",
+    "local_return_p",
+    "Parrot_local_return_p",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_P },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 14 */
+    /* type PARROT_INLINE_OP, */
+    "jump",
+    "jump_i",
+    "Parrot_jump_i",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_I },
+    { PARROT_ARGDIR_IN },
+    { 1 }
+  },
+  { /* 15 */
+    /* type PARROT_INLINE_OP, */
+    "jump",
+    "jump_ic",
+    "Parrot_jump_ic",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN },
+    { 1 }
+  },
+  { /* 16 */
+    /* type PARROT_FUNCTION_OP, */
+    "enternative",
+    "enternative",
+    "Parrot_enternative",
+    /* "",  body */
+    0,
+    1,
+    { (arg_type_t) 0 },
+    { (arg_dir_t) 0 },
+    { 0 }
+  },
+  { /* 17 */
+    /* type PARROT_INLINE_OP, */
+    "if",
+    "if_i_ic",
+    "Parrot_if_i_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 1 }
+  },
+  { /* 18 */
+    /* type PARROT_INLINE_OP, */
+    "if",
+    "if_n_ic",
+    "Parrot_if_n_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    3,
+    { PARROT_ARG_N, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 1 }
+  },
+  { /* 19 */
+    /* type PARROT_FUNCTION_OP, */
+    "if",
+    "if_s_ic",
+    "Parrot_if_s_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    3,
+    { PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 1 }
+  },
+  { /* 20 */
+    /* type PARROT_FUNCTION_OP, */
+    "if",
+    "if_p_ic",
+    "Parrot_if_p_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 1 }
+  },
+  { /* 21 */
+    /* type PARROT_INLINE_OP, */
+    "unless",
+    "unless_i_ic",
+    "Parrot_unless_i_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 1 }
+  },
+  { /* 22 */
+    /* type PARROT_INLINE_OP, */
+    "unless",
+    "unless_n_ic",
+    "Parrot_unless_n_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    3,
+    { PARROT_ARG_N, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 1 }
+  },
+  { /* 23 */
+    /* type PARROT_FUNCTION_OP, */
+    "unless",
+    "unless_s_ic",
+    "Parrot_unless_s_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    3,
+    { PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 1 }
+  },
+  { /* 24 */
+    /* type PARROT_FUNCTION_OP, */
+    "unless",
+    "unless_p_ic",
+    "Parrot_unless_p_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 1 }
+  },
+  { /* 25 */
+    /* type PARROT_INLINE_OP, */
+    "invokecc",
+    "invokecc_p",
+    "Parrot_invokecc_p",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_P },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 26 */
+    /* type PARROT_INLINE_OP, */
+    "invoke",
+    "invoke_p_p",
+    "Parrot_invoke_p_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 27 */
+    /* type PARROT_INLINE_OP, */
+    "yield",
+    "yield",
+    "Parrot_yield",
+    /* "",  body */
+    0,
+    1,
+    { (arg_type_t) 0 },
+    { (arg_dir_t) 0 },
+    { 0 }
+  },
+  { /* 28 */
+    /* type PARROT_INLINE_OP, */
+    "tailcall",
+    "tailcall_p",
+    "Parrot_tailcall_p",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_P },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 29 */
+    /* type PARROT_INLINE_OP, */
+    "returncc",
+    "returncc",
+    "Parrot_returncc",
+    /* "",  body */
+    0,
+    1,
+    { (arg_type_t) 0 },
+    { (arg_dir_t) 0 },
+    { 0 }
+  },
+  { /* 30 */
+    /* type PARROT_INLINE_OP, */
+    "capture_lex",
+    "capture_lex_p",
+    "Parrot_capture_lex_p",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_P },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 31 */
+    /* type PARROT_INLINE_OP, */
+    "newclosure",
+    "newclosure_p_p",
+    "Parrot_newclosure_p_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 32 */
+    /* type PARROT_FUNCTION_OP, */
+    "set_args",
+    "set_args_pc",
+    "Parrot_set_args_pc",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    2,
+    { PARROT_ARG_PC },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 33 */
+    /* type PARROT_FUNCTION_OP, */
+    "get_params",
+    "get_params_pc",
+    "Parrot_get_params_pc",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    2,
+    { PARROT_ARG_PC },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 34 */
+    /* type PARROT_FUNCTION_OP, */
+    "set_returns",
+    "set_returns_pc",
+    "Parrot_set_returns_pc",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    2,
+    { PARROT_ARG_PC },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 35 */
+    /* type PARROT_FUNCTION_OP, */
+    "get_results",
+    "get_results_pc",
+    "Parrot_get_results_pc",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    2,
+    { PARROT_ARG_PC },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 36 */
+    /* type PARROT_INLINE_OP, */
+    "set_result_info",
+    "set_result_info_p",
+    "Parrot_set_result_info_p",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_P },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 37 */
+    /* type PARROT_INLINE_OP, */
+    "set_result_info",
+    "set_result_info_pc",
+    "Parrot_set_result_info_pc",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_PC },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 38 */
+    /* type PARROT_INLINE_OP, */
+    "result_info",
+    "result_info_p",
+    "Parrot_result_info_p",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT },
+    { 0 }
+  },
+  { /* 39 */
+    /* type PARROT_INLINE_OP, */
+    "set_addr",
+    "set_addr_i_ic",
+    "Parrot_set_addr_i_ic",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 1 }
+  },
+  { /* 40 */
+    /* type PARROT_INLINE_OP, */
+    "set_addr",
+    "set_addr_p_ic",
+    "Parrot_set_addr_p_ic",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 1 }
+  },
+  { /* 41 */
+    /* type PARROT_INLINE_OP, */
+    "set_addr",
+    "set_addr_p_i",
+    "Parrot_set_addr_p_i",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_I },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 1 }
+  },
+  { /* 42 */
+    /* type PARROT_INLINE_OP, */
+    "get_addr",
+    "get_addr_i_p",
+    "Parrot_get_addr_i_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 43 */
+    /* type PARROT_INLINE_OP, */
+    "schedule",
+    "schedule_p",
+    "Parrot_schedule_p",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_P },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 44 */
+    /* type PARROT_INLINE_OP, */
+    "addhandler",
+    "addhandler_p",
+    "Parrot_addhandler_p",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_P },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 45 */
+    /* type PARROT_INLINE_OP, */
+    "push_eh",
+    "push_eh_ic",
+    "Parrot_push_eh_ic",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN },
+    { 1 }
+  },
+  { /* 46 */
+    /* type PARROT_INLINE_OP, */
+    "push_eh",
+    "push_eh_p",
+    "Parrot_push_eh_p",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_P },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 47 */
+    /* type PARROT_INLINE_OP, */
+    "pop_eh",
+    "pop_eh",
+    "Parrot_pop_eh",
+    /* "",  body */
+    0,
+    1,
+    { (arg_type_t) 0 },
+    { (arg_dir_t) 0 },
+    { 0 }
+  },
+  { /* 48 */
+    /* type PARROT_INLINE_OP, */
+    "throw",
+    "throw_p",
+    "Parrot_throw_p",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_P },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 49 */
+    /* type PARROT_INLINE_OP, */
+    "throw",
+    "throw_p_p",
+    "Parrot_throw_p_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 50 */
+    /* type PARROT_INLINE_OP, */
+    "rethrow",
+    "rethrow_p",
+    "Parrot_rethrow_p",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_P },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 51 */
+    /* type PARROT_INLINE_OP, */
+    "count_eh",
+    "count_eh_i",
+    "Parrot_count_eh_i",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT },
+    { 0 }
+  },
+  { /* 52 */
+    /* type PARROT_INLINE_OP, */
+    "die",
+    "die_s",
+    "Parrot_die_s",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_S },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 53 */
+    /* type PARROT_INLINE_OP, */
+    "die",
+    "die_sc",
+    "Parrot_die_sc",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_SC },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 54 */
+    /* type PARROT_INLINE_OP, */
+    "die",
+    "die_p",
+    "Parrot_die_p",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_P },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 55 */
+    /* type PARROT_INLINE_OP, */
+    "die",
+    "die_pc",
+    "Parrot_die_pc",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_PC },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 56 */
+    /* type PARROT_INLINE_OP, */
+    "die",
+    "die_i_i",
+    "Parrot_die_i_i",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 57 */
+    /* type PARROT_INLINE_OP, */
+    "die",
+    "die_ic_i",
+    "Parrot_die_ic_i",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_IC, PARROT_ARG_I },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 58 */
+    /* type PARROT_INLINE_OP, */
+    "die",
+    "die_i_ic",
+    "Parrot_die_i_ic",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 59 */
+    /* type PARROT_INLINE_OP, */
+    "die",
+    "die_ic_ic",
+    "Parrot_die_ic_ic",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_IC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 60 */
+    /* type PARROT_INLINE_OP, */
+    "exit",
+    "exit_i",
+    "Parrot_exit_i",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_I },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 61 */
+    /* type PARROT_INLINE_OP, */
+    "exit",
+    "exit_ic",
+    "Parrot_exit_ic",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 62 */
+    /* type PARROT_INLINE_OP, */
+    "debug",
+    "debug_i",
+    "Parrot_debug_i",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_I },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 63 */
+    /* type PARROT_INLINE_OP, */
+    "debug",
+    "debug_ic",
+    "Parrot_debug_ic",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 64 */
+    /* type PARROT_INLINE_OP, */
+    "bounds",
+    "bounds_i",
+    "Parrot_bounds_i",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_I },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 65 */
+    /* type PARROT_INLINE_OP, */
+    "bounds",
+    "bounds_ic",
+    "Parrot_bounds_ic",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 66 */
+    /* type PARROT_INLINE_OP, */
+    "profile",
+    "profile_i",
+    "Parrot_profile_i",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_I },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 67 */
+    /* type PARROT_INLINE_OP, */
+    "profile",
+    "profile_ic",
+    "Parrot_profile_ic",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 68 */
+    /* type PARROT_INLINE_OP, */
+    "trace",
+    "trace_i",
+    "Parrot_trace_i",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_I },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 69 */
+    /* type PARROT_INLINE_OP, */
+    "trace",
+    "trace_ic",
+    "Parrot_trace_ic",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 70 */
+    /* type PARROT_INLINE_OP, */
+    "gc_debug",
+    "gc_debug_i",
+    "Parrot_gc_debug_i",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_I },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 71 */
+    /* type PARROT_INLINE_OP, */
+    "gc_debug",
+    "gc_debug_ic",
+    "Parrot_gc_debug_ic",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 72 */
+    /* type PARROT_FUNCTION_OP, */
+    "interpinfo",
+    "interpinfo_i_i",
+    "Parrot_interpinfo_i_i",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 73 */
+    /* type PARROT_FUNCTION_OP, */
+    "interpinfo",
+    "interpinfo_i_ic",
+    "Parrot_interpinfo_i_ic",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 74 */
+    /* type PARROT_FUNCTION_OP, */
+    "interpinfo",
+    "interpinfo_p_i",
+    "Parrot_interpinfo_p_i",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 75 */
+    /* type PARROT_FUNCTION_OP, */
+    "interpinfo",
+    "interpinfo_p_ic",
+    "Parrot_interpinfo_p_ic",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 76 */
+    /* type PARROT_FUNCTION_OP, */
+    "interpinfo",
+    "interpinfo_s_i",
+    "Parrot_interpinfo_s_i",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_S, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 77 */
+    /* type PARROT_FUNCTION_OP, */
+    "interpinfo",
+    "interpinfo_s_ic",
+    "Parrot_interpinfo_s_ic",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 78 */
+    /* type PARROT_INLINE_OP, */
+    "warningson",
+    "warningson_i",
+    "Parrot_warningson_i",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_I },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 79 */
+    /* type PARROT_INLINE_OP, */
+    "warningson",
+    "warningson_ic",
+    "Parrot_warningson_ic",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 80 */
+    /* type PARROT_INLINE_OP, */
+    "warningsoff",
+    "warningsoff_i",
+    "Parrot_warningsoff_i",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_I },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 81 */
+    /* type PARROT_INLINE_OP, */
+    "warningsoff",
+    "warningsoff_ic",
+    "Parrot_warningsoff_ic",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 82 */
+    /* type PARROT_INLINE_OP, */
+    "errorson",
+    "errorson_i",
+    "Parrot_errorson_i",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_I },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 83 */
+    /* type PARROT_INLINE_OP, */
+    "errorson",
+    "errorson_ic",
+    "Parrot_errorson_ic",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 84 */
+    /* type PARROT_INLINE_OP, */
+    "errorsoff",
+    "errorsoff_i",
+    "Parrot_errorsoff_i",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_I },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 85 */
+    /* type PARROT_INLINE_OP, */
+    "errorsoff",
+    "errorsoff_ic",
+    "Parrot_errorsoff_ic",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 86 */
+    /* type PARROT_FUNCTION_OP, */
+    "runinterp",
+    "runinterp_p_i",
+    "Parrot_runinterp_p_i",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_I },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 1 }
+  },
+  { /* 87 */
+    /* type PARROT_FUNCTION_OP, */
+    "runinterp",
+    "runinterp_p_ic",
+    "Parrot_runinterp_p_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 1 }
+  },
+  { /* 88 */
+    /* type PARROT_FUNCTION_OP, */
+    "getinterp",
+    "getinterp_p",
+    "Parrot_getinterp_p",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT },
+    { 0 }
+  },
+  { /* 89 */
+    /* type PARROT_FUNCTION_OP, */
+    "sweep",
+    "sweep_ic",
+    "Parrot_sweep_ic",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 90 */
+    /* type PARROT_FUNCTION_OP, */
+    "collect",
+    "collect",
+    "Parrot_collect",
+    /* "",  body */
+    0,
+    1,
+    { (arg_type_t) 0 },
+    { (arg_dir_t) 0 },
+    { 0 }
+  },
+  { /* 91 */
+    /* type PARROT_FUNCTION_OP, */
+    "sweepoff",
+    "sweepoff",
+    "Parrot_sweepoff",
+    /* "",  body */
+    0,
+    1,
+    { (arg_type_t) 0 },
+    { (arg_dir_t) 0 },
+    { 0 }
+  },
+  { /* 92 */
+    /* type PARROT_FUNCTION_OP, */
+    "sweepon",
+    "sweepon",
+    "Parrot_sweepon",
+    /* "",  body */
+    0,
+    1,
+    { (arg_type_t) 0 },
+    { (arg_dir_t) 0 },
+    { 0 }
+  },
+  { /* 93 */
+    /* type PARROT_FUNCTION_OP, */
+    "collectoff",
+    "collectoff",
+    "Parrot_collectoff",
+    /* "",  body */
+    0,
+    1,
+    { (arg_type_t) 0 },
+    { (arg_dir_t) 0 },
+    { 0 }
+  },
+  { /* 94 */
+    /* type PARROT_FUNCTION_OP, */
+    "collecton",
+    "collecton",
+    "Parrot_collecton",
+    /* "",  body */
+    0,
+    1,
+    { (arg_type_t) 0 },
+    { (arg_dir_t) 0 },
+    { 0 }
+  },
+  { /* 95 */
+    /* type PARROT_FUNCTION_OP, */
+    "needs_destroy",
+    "needs_destroy_p",
+    "Parrot_needs_destroy_p",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_P },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 96 */
+    /* type PARROT_INLINE_OP, */
+    "loadlib",
+    "loadlib_p_s",
+    "Parrot_loadlib_p_s",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 97 */
+    /* type PARROT_INLINE_OP, */
+    "loadlib",
+    "loadlib_p_sc",
+    "Parrot_loadlib_p_sc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 98 */
+    /* type PARROT_INLINE_OP, */
+    "loadlib",
+    "loadlib_p_s_p",
+    "Parrot_loadlib_p_s_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 99 */
+    /* type PARROT_INLINE_OP, */
+    "loadlib",
+    "loadlib_p_sc_p",
+    "Parrot_loadlib_p_sc_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 100 */
+    /* type PARROT_INLINE_OP, */
+    "loadlib",
+    "loadlib_p_s_pc",
+    "Parrot_loadlib_p_s_pc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_PC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 101 */
+    /* type PARROT_INLINE_OP, */
+    "loadlib",
+    "loadlib_p_sc_pc",
+    "Parrot_loadlib_p_sc_pc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_PC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 102 */
+    /* type PARROT_FUNCTION_OP, */
+    "dlfunc",
+    "dlfunc_p_p_s_s",
+    "Parrot_dlfunc_p_p_s_s",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 103 */
+    /* type PARROT_FUNCTION_OP, */
+    "dlfunc",
+    "dlfunc_p_p_sc_s",
+    "Parrot_dlfunc_p_p_sc_s",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 104 */
+    /* type PARROT_FUNCTION_OP, */
+    "dlfunc",
+    "dlfunc_p_p_s_sc",
+    "Parrot_dlfunc_p_p_s_sc",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 105 */
+    /* type PARROT_FUNCTION_OP, */
+    "dlfunc",
+    "dlfunc_p_p_sc_sc",
+    "Parrot_dlfunc_p_p_sc_sc",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 106 */
+    /* type PARROT_FUNCTION_OP, */
+    "dlvar",
+    "dlvar_p_p_s",
+    "Parrot_dlvar_p_p_s",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 107 */
+    /* type PARROT_FUNCTION_OP, */
+    "dlvar",
+    "dlvar_p_p_sc",
+    "Parrot_dlvar_p_p_sc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 108 */
+    /* type PARROT_INLINE_OP, */
+    "compreg",
+    "compreg_s_p",
+    "Parrot_compreg_s_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_S, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 109 */
+    /* type PARROT_INLINE_OP, */
+    "compreg",
+    "compreg_sc_p",
+    "Parrot_compreg_sc_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_SC, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 110 */
+    /* type PARROT_INLINE_OP, */
+    "compreg",
+    "compreg_p_s",
+    "Parrot_compreg_p_s",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 111 */
+    /* type PARROT_INLINE_OP, */
+    "compreg",
+    "compreg_p_sc",
+    "Parrot_compreg_p_sc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 112 */
+    /* type PARROT_FUNCTION_OP, */
+    "new_callback",
+    "new_callback_p_p_p_s",
+    "Parrot_new_callback_p_p_p_s",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 113 */
+    /* type PARROT_FUNCTION_OP, */
+    "new_callback",
+    "new_callback_p_p_p_sc",
+    "Parrot_new_callback_p_p_p_sc",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 114 */
+    /* type PARROT_INLINE_OP, */
+    "annotations",
+    "annotations_p",
+    "Parrot_annotations_p",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT },
+    { 0 }
+  },
+  { /* 115 */
+    /* type PARROT_INLINE_OP, */
+    "annotations",
+    "annotations_p_s",
+    "Parrot_annotations_p_s",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 116 */
+    /* type PARROT_INLINE_OP, */
+    "annotations",
+    "annotations_p_sc",
+    "Parrot_annotations_p_sc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 117 */
+    /* type PARROT_INLINE_OP, */
+    "band",
+    "band_i_i",
+    "Parrot_band_i_i",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 118 */
+    /* type PARROT_INLINE_OP, */
+    "band",
+    "band_i_ic",
+    "Parrot_band_i_ic",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 119 */
+    /* type PARROT_INLINE_OP, */
+    "band",
+    "band_p_i",
+    "Parrot_band_p_i",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_I },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 120 */
+    /* type PARROT_INLINE_OP, */
+    "band",
+    "band_p_ic",
+    "Parrot_band_p_ic",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 121 */
+    /* type PARROT_INLINE_OP, */
+    "band",
+    "band_p_p",
+    "Parrot_band_p_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 122 */
+    /* type PARROT_INLINE_OP, */
+    "band",
+    "band_i_i_i",
+    "Parrot_band_i_i_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 123 */
+    /* type PARROT_INLINE_OP, */
+    "band",
+    "band_i_ic_i",
+    "Parrot_band_i_ic_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 124 */
+    /* type PARROT_INLINE_OP, */
+    "band",
+    "band_i_i_ic",
+    "Parrot_band_i_i_ic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 125 */
+    /* type PARROT_INLINE_OP, */
+    "band",
+    "band_p_p_i",
+    "Parrot_band_p_p_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 126 */
+    /* type PARROT_INLINE_OP, */
+    "band",
+    "band_p_p_ic",
+    "Parrot_band_p_p_ic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 127 */
+    /* type PARROT_INLINE_OP, */
+    "band",
+    "band_p_p_p",
+    "Parrot_band_p_p_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 128 */
+    /* type PARROT_INLINE_OP, */
+    "bands",
+    "bands_p_s",
+    "Parrot_bands_p_s",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 129 */
+    /* type PARROT_INLINE_OP, */
+    "bands",
+    "bands_p_sc",
+    "Parrot_bands_p_sc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 130 */
+    /* type PARROT_INLINE_OP, */
+    "bands",
+    "bands_p_p",
+    "Parrot_bands_p_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 131 */
+    /* type PARROT_INLINE_OP, */
+    "bands",
+    "bands_s_s_s",
+    "Parrot_bands_s_s_s",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 132 */
+    /* type PARROT_INLINE_OP, */
+    "bands",
+    "bands_s_sc_s",
+    "Parrot_bands_s_sc_s",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 133 */
+    /* type PARROT_INLINE_OP, */
+    "bands",
+    "bands_s_s_sc",
+    "Parrot_bands_s_s_sc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 134 */
+    /* type PARROT_INLINE_OP, */
+    "bands",
+    "bands_p_p_s",
+    "Parrot_bands_p_p_s",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 135 */
+    /* type PARROT_INLINE_OP, */
+    "bands",
+    "bands_p_p_sc",
+    "Parrot_bands_p_p_sc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 136 */
+    /* type PARROT_INLINE_OP, */
+    "bands",
+    "bands_p_p_p",
+    "Parrot_bands_p_p_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 137 */
+    /* type PARROT_INLINE_OP, */
+    "bnot",
+    "bnot_i",
+    "Parrot_bnot_i",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_I },
+    { PARROT_ARGDIR_INOUT },
+    { 0 }
+  },
+  { /* 138 */
+    /* type PARROT_INLINE_OP, */
+    "bnot",
+    "bnot_i_i",
+    "Parrot_bnot_i_i",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 139 */
+    /* type PARROT_INLINE_OP, */
+    "bnot",
+    "bnot_p",
+    "Parrot_bnot_p",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_P },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 140 */
+    /* type PARROT_INLINE_OP, */
+    "bnot",
+    "bnot_p_p",
+    "Parrot_bnot_p_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 141 */
+    /* type PARROT_INLINE_OP, */
+    "bnots",
+    "bnots_s_s",
+    "Parrot_bnots_s_s",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_S, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 142 */
+    /* type PARROT_INLINE_OP, */
+    "bnots",
+    "bnots_s_sc",
+    "Parrot_bnots_s_sc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_S, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 143 */
+    /* type PARROT_INLINE_OP, */
+    "bnots",
+    "bnots_p",
+    "Parrot_bnots_p",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_P },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 144 */
+    /* type PARROT_INLINE_OP, */
+    "bnots",
+    "bnots_p_p",
+    "Parrot_bnots_p_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 145 */
+    /* type PARROT_INLINE_OP, */
+    "bor",
+    "bor_i_i",
+    "Parrot_bor_i_i",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 146 */
+    /* type PARROT_INLINE_OP, */
+    "bor",
+    "bor_i_ic",
+    "Parrot_bor_i_ic",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 147 */
+    /* type PARROT_INLINE_OP, */
+    "bor",
+    "bor_p_i",
+    "Parrot_bor_p_i",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_I },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 148 */
+    /* type PARROT_INLINE_OP, */
+    "bor",
+    "bor_p_ic",
+    "Parrot_bor_p_ic",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 149 */
+    /* type PARROT_INLINE_OP, */
+    "bor",
+    "bor_p_p",
+    "Parrot_bor_p_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 150 */
+    /* type PARROT_INLINE_OP, */
+    "bor",
+    "bor_i_i_i",
+    "Parrot_bor_i_i_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 151 */
+    /* type PARROT_INLINE_OP, */
+    "bor",
+    "bor_i_ic_i",
+    "Parrot_bor_i_ic_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 152 */
+    /* type PARROT_INLINE_OP, */
+    "bor",
+    "bor_i_i_ic",
+    "Parrot_bor_i_i_ic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 153 */
+    /* type PARROT_INLINE_OP, */
+    "bor",
+    "bor_p_p_i",
+    "Parrot_bor_p_p_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 154 */
+    /* type PARROT_INLINE_OP, */
+    "bor",
+    "bor_p_p_ic",
+    "Parrot_bor_p_p_ic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 155 */
+    /* type PARROT_INLINE_OP, */
+    "bor",
+    "bor_p_p_p",
+    "Parrot_bor_p_p_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 156 */
+    /* type PARROT_INLINE_OP, */
+    "bors",
+    "bors_p_s",
+    "Parrot_bors_p_s",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 157 */
+    /* type PARROT_INLINE_OP, */
+    "bors",
+    "bors_p_sc",
+    "Parrot_bors_p_sc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 158 */
+    /* type PARROT_INLINE_OP, */
+    "bors",
+    "bors_p_p",
+    "Parrot_bors_p_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 159 */
+    /* type PARROT_INLINE_OP, */
+    "bors",
+    "bors_s_s_s",
+    "Parrot_bors_s_s_s",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 160 */
+    /* type PARROT_INLINE_OP, */
+    "bors",
+    "bors_s_sc_s",
+    "Parrot_bors_s_sc_s",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 161 */
+    /* type PARROT_INLINE_OP, */
+    "bors",
+    "bors_s_s_sc",
+    "Parrot_bors_s_s_sc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 162 */
+    /* type PARROT_INLINE_OP, */
+    "bors",
+    "bors_p_p_s",
+    "Parrot_bors_p_p_s",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 163 */
+    /* type PARROT_INLINE_OP, */
+    "bors",
+    "bors_p_p_sc",
+    "Parrot_bors_p_p_sc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 164 */
+    /* type PARROT_INLINE_OP, */
+    "bors",
+    "bors_p_p_p",
+    "Parrot_bors_p_p_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 165 */
+    /* type PARROT_INLINE_OP, */
+    "shl",
+    "shl_i_i",
+    "Parrot_shl_i_i",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 166 */
+    /* type PARROT_INLINE_OP, */
+    "shl",
+    "shl_i_ic",
+    "Parrot_shl_i_ic",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 167 */
+    /* type PARROT_INLINE_OP, */
+    "shl",
+    "shl_p_i",
+    "Parrot_shl_p_i",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_I },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 168 */
+    /* type PARROT_INLINE_OP, */
+    "shl",
+    "shl_p_ic",
+    "Parrot_shl_p_ic",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 169 */
+    /* type PARROT_INLINE_OP, */
+    "shl",
+    "shl_p_p",
+    "Parrot_shl_p_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 170 */
+    /* type PARROT_INLINE_OP, */
+    "shl",
+    "shl_i_i_i",
+    "Parrot_shl_i_i_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 171 */
+    /* type PARROT_INLINE_OP, */
+    "shl",
+    "shl_i_ic_i",
+    "Parrot_shl_i_ic_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 172 */
+    /* type PARROT_INLINE_OP, */
+    "shl",
+    "shl_i_i_ic",
+    "Parrot_shl_i_i_ic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 173 */
+    /* type PARROT_INLINE_OP, */
+    "shl",
+    "shl_p_p_i",
+    "Parrot_shl_p_p_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 174 */
+    /* type PARROT_INLINE_OP, */
+    "shl",
+    "shl_p_p_ic",
+    "Parrot_shl_p_p_ic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 175 */
+    /* type PARROT_INLINE_OP, */
+    "shl",
+    "shl_p_p_p",
+    "Parrot_shl_p_p_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 176 */
+    /* type PARROT_INLINE_OP, */
+    "shr",
+    "shr_i_i",
+    "Parrot_shr_i_i",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 177 */
+    /* type PARROT_INLINE_OP, */
+    "shr",
+    "shr_i_ic",
+    "Parrot_shr_i_ic",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 178 */
+    /* type PARROT_INLINE_OP, */
+    "shr",
+    "shr_p_i",
+    "Parrot_shr_p_i",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_I },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 179 */
+    /* type PARROT_INLINE_OP, */
+    "shr",
+    "shr_p_ic",
+    "Parrot_shr_p_ic",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 180 */
+    /* type PARROT_INLINE_OP, */
+    "shr",
+    "shr_p_p",
+    "Parrot_shr_p_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 181 */
+    /* type PARROT_INLINE_OP, */
+    "shr",
+    "shr_i_i_i",
+    "Parrot_shr_i_i_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 182 */
+    /* type PARROT_INLINE_OP, */
+    "shr",
+    "shr_i_ic_i",
+    "Parrot_shr_i_ic_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 183 */
+    /* type PARROT_INLINE_OP, */
+    "shr",
+    "shr_i_i_ic",
+    "Parrot_shr_i_i_ic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 184 */
+    /* type PARROT_INLINE_OP, */
+    "shr",
+    "shr_p_p_i",
+    "Parrot_shr_p_p_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 185 */
+    /* type PARROT_INLINE_OP, */
+    "shr",
+    "shr_p_p_ic",
+    "Parrot_shr_p_p_ic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 186 */
+    /* type PARROT_INLINE_OP, */
+    "shr",
+    "shr_p_p_p",
+    "Parrot_shr_p_p_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 187 */
+    /* type PARROT_INLINE_OP, */
+    "lsr",
+    "lsr_i_i",
+    "Parrot_lsr_i_i",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 188 */
+    /* type PARROT_INLINE_OP, */
+    "lsr",
+    "lsr_i_ic",
+    "Parrot_lsr_i_ic",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 189 */
+    /* type PARROT_INLINE_OP, */
+    "lsr",
+    "lsr_p_i",
+    "Parrot_lsr_p_i",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_I },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 190 */
+    /* type PARROT_INLINE_OP, */
+    "lsr",
+    "lsr_p_ic",
+    "Parrot_lsr_p_ic",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 191 */
+    /* type PARROT_INLINE_OP, */
+    "lsr",
+    "lsr_p_p",
+    "Parrot_lsr_p_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 192 */
+    /* type PARROT_INLINE_OP, */
+    "lsr",
+    "lsr_i_i_i",
+    "Parrot_lsr_i_i_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 193 */
+    /* type PARROT_INLINE_OP, */
+    "lsr",
+    "lsr_i_ic_i",
+    "Parrot_lsr_i_ic_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 194 */
+    /* type PARROT_INLINE_OP, */
+    "lsr",
+    "lsr_i_i_ic",
+    "Parrot_lsr_i_i_ic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 195 */
+    /* type PARROT_INLINE_OP, */
+    "lsr",
+    "lsr_p_p_i",
+    "Parrot_lsr_p_p_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 196 */
+    /* type PARROT_INLINE_OP, */
+    "lsr",
+    "lsr_p_p_ic",
+    "Parrot_lsr_p_p_ic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 197 */
+    /* type PARROT_INLINE_OP, */
+    "lsr",
+    "lsr_p_p_p",
+    "Parrot_lsr_p_p_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 198 */
+    /* type PARROT_INLINE_OP, */
+    "rot",
+    "rot_i_i_i_ic",
+    "Parrot_rot_i_i_i_ic",
+    /* "",  body */
+    0,
+    5,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
+  },
+  { /* 199 */
+    /* type PARROT_INLINE_OP, */
+    "rot",
+    "rot_i_ic_i_ic",
+    "Parrot_rot_i_ic_i_ic",
+    /* "",  body */
+    0,
+    5,
+    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
+  },
+  { /* 200 */
+    /* type PARROT_INLINE_OP, */
+    "rot",
+    "rot_i_i_ic_ic",
+    "Parrot_rot_i_i_ic_ic",
+    /* "",  body */
+    0,
+    5,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
+  },
+  { /* 201 */
+    /* type PARROT_INLINE_OP, */
+    "bxor",
+    "bxor_i_i",
+    "Parrot_bxor_i_i",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 202 */
+    /* type PARROT_INLINE_OP, */
+    "bxor",
+    "bxor_i_ic",
+    "Parrot_bxor_i_ic",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 203 */
+    /* type PARROT_INLINE_OP, */
+    "bxor",
+    "bxor_p_i",
+    "Parrot_bxor_p_i",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_I },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 204 */
+    /* type PARROT_INLINE_OP, */
+    "bxor",
+    "bxor_p_ic",
+    "Parrot_bxor_p_ic",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 205 */
+    /* type PARROT_INLINE_OP, */
+    "bxor",
+    "bxor_p_p",
+    "Parrot_bxor_p_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 206 */
+    /* type PARROT_INLINE_OP, */
+    "bxor",
+    "bxor_i_i_i",
+    "Parrot_bxor_i_i_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 207 */
+    /* type PARROT_INLINE_OP, */
+    "bxor",
+    "bxor_i_ic_i",
+    "Parrot_bxor_i_ic_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 208 */
+    /* type PARROT_INLINE_OP, */
+    "bxor",
+    "bxor_i_i_ic",
+    "Parrot_bxor_i_i_ic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 209 */
+    /* type PARROT_INLINE_OP, */
+    "bxor",
+    "bxor_p_p_i",
+    "Parrot_bxor_p_p_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 210 */
+    /* type PARROT_INLINE_OP, */
+    "bxor",
+    "bxor_p_p_ic",
+    "Parrot_bxor_p_p_ic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 211 */
+    /* type PARROT_INLINE_OP, */
+    "bxor",
+    "bxor_p_p_p",
+    "Parrot_bxor_p_p_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 212 */
+    /* type PARROT_INLINE_OP, */
+    "bxors",
+    "bxors_p_s",
+    "Parrot_bxors_p_s",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 213 */
+    /* type PARROT_INLINE_OP, */
+    "bxors",
+    "bxors_p_sc",
+    "Parrot_bxors_p_sc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 214 */
+    /* type PARROT_INLINE_OP, */
+    "bxors",
+    "bxors_p_p",
+    "Parrot_bxors_p_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 215 */
+    /* type PARROT_INLINE_OP, */
+    "bxors",
+    "bxors_s_s_s",
+    "Parrot_bxors_s_s_s",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 216 */
+    /* type PARROT_INLINE_OP, */
+    "bxors",
+    "bxors_s_sc_s",
+    "Parrot_bxors_s_sc_s",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 217 */
+    /* type PARROT_INLINE_OP, */
+    "bxors",
+    "bxors_s_s_sc",
+    "Parrot_bxors_s_s_sc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 218 */
+    /* type PARROT_INLINE_OP, */
+    "bxors",
+    "bxors_p_p_s",
+    "Parrot_bxors_p_p_s",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 219 */
+    /* type PARROT_INLINE_OP, */
+    "bxors",
+    "bxors_p_p_sc",
+    "Parrot_bxors_p_p_sc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 220 */
+    /* type PARROT_INLINE_OP, */
+    "bxors",
+    "bxors_p_p_p",
+    "Parrot_bxors_p_p_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 221 */
+    /* type PARROT_INLINE_OP, */
+    "eq",
+    "eq_i_i_ic",
+    "Parrot_eq_i_i_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 222 */
+    /* type PARROT_INLINE_OP, */
+    "eq",
+    "eq_ic_i_ic",
+    "Parrot_eq_ic_i_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_IC, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 223 */
+    /* type PARROT_INLINE_OP, */
+    "eq",
+    "eq_i_ic_ic",
+    "Parrot_eq_i_ic_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 224 */
+    /* type PARROT_INLINE_OP, */
+    "eq",
+    "eq_n_n_ic",
+    "Parrot_eq_n_n_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 225 */
+    /* type PARROT_INLINE_OP, */
+    "eq",
+    "eq_nc_n_ic",
+    "Parrot_eq_nc_n_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_NC, PARROT_ARG_N, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 226 */
+    /* type PARROT_INLINE_OP, */
+    "eq",
+    "eq_n_nc_ic",
+    "Parrot_eq_n_nc_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 227 */
+    /* type PARROT_FUNCTION_OP, */
+    "eq",
+    "eq_s_s_ic",
+    "Parrot_eq_s_s_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 228 */
+    /* type PARROT_FUNCTION_OP, */
+    "eq",
+    "eq_sc_s_ic",
+    "Parrot_eq_sc_s_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_SC, PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 229 */
+    /* type PARROT_FUNCTION_OP, */
+    "eq",
+    "eq_s_sc_ic",
+    "Parrot_eq_s_sc_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 230 */
+    /* type PARROT_FUNCTION_OP, */
+    "eq",
+    "eq_p_p_ic",
+    "Parrot_eq_p_p_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 231 */
+    /* type PARROT_FUNCTION_OP, */
+    "eq",
+    "eq_p_i_ic",
+    "Parrot_eq_p_i_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 232 */
+    /* type PARROT_FUNCTION_OP, */
+    "eq",
+    "eq_p_ic_ic",
+    "Parrot_eq_p_ic_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 233 */
+    /* type PARROT_FUNCTION_OP, */
+    "eq",
+    "eq_p_n_ic",
+    "Parrot_eq_p_n_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_N, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 234 */
+    /* type PARROT_FUNCTION_OP, */
+    "eq",
+    "eq_p_nc_ic",
+    "Parrot_eq_p_nc_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_NC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 235 */
+    /* type PARROT_FUNCTION_OP, */
+    "eq",
+    "eq_p_s_ic",
+    "Parrot_eq_p_s_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 236 */
+    /* type PARROT_FUNCTION_OP, */
+    "eq",
+    "eq_p_sc_ic",
+    "Parrot_eq_p_sc_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 237 */
+    /* type PARROT_FUNCTION_OP, */
+    "eq_str",
+    "eq_str_p_p_ic",
+    "Parrot_eq_str_p_p_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 238 */
+    /* type PARROT_FUNCTION_OP, */
+    "eq_num",
+    "eq_num_p_p_ic",
+    "Parrot_eq_num_p_p_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 239 */
+    /* type PARROT_FUNCTION_OP, */
+    "eq_addr",
+    "eq_addr_s_s_ic",
+    "Parrot_eq_addr_s_s_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 240 */
+    /* type PARROT_FUNCTION_OP, */
+    "eq_addr",
+    "eq_addr_sc_s_ic",
+    "Parrot_eq_addr_sc_s_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_SC, PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 241 */
+    /* type PARROT_FUNCTION_OP, */
+    "eq_addr",
+    "eq_addr_s_sc_ic",
+    "Parrot_eq_addr_s_sc_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 242 */
+    /* type PARROT_FUNCTION_OP, */
+    "eq_addr",
+    "eq_addr_sc_sc_ic",
+    "Parrot_eq_addr_sc_sc_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_SC, PARROT_ARG_SC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 243 */
+    /* type PARROT_FUNCTION_OP, */
+    "eq_addr",
+    "eq_addr_p_p_ic",
+    "Parrot_eq_addr_p_p_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 244 */
+    /* type PARROT_INLINE_OP, */
+    "ne",
+    "ne_i_i_ic",
+    "Parrot_ne_i_i_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 245 */
+    /* type PARROT_INLINE_OP, */
+    "ne",
+    "ne_ic_i_ic",
+    "Parrot_ne_ic_i_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_IC, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 246 */
+    /* type PARROT_INLINE_OP, */
+    "ne",
+    "ne_i_ic_ic",
+    "Parrot_ne_i_ic_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 247 */
+    /* type PARROT_INLINE_OP, */
+    "ne",
+    "ne_n_n_ic",
+    "Parrot_ne_n_n_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 248 */
+    /* type PARROT_INLINE_OP, */
+    "ne",
+    "ne_nc_n_ic",
+    "Parrot_ne_nc_n_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_NC, PARROT_ARG_N, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 249 */
+    /* type PARROT_INLINE_OP, */
+    "ne",
+    "ne_n_nc_ic",
+    "Parrot_ne_n_nc_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 250 */
+    /* type PARROT_FUNCTION_OP, */
+    "ne",
+    "ne_s_s_ic",
+    "Parrot_ne_s_s_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 251 */
+    /* type PARROT_FUNCTION_OP, */
+    "ne",
+    "ne_sc_s_ic",
+    "Parrot_ne_sc_s_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_SC, PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 252 */
+    /* type PARROT_FUNCTION_OP, */
+    "ne",
+    "ne_s_sc_ic",
+    "Parrot_ne_s_sc_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 253 */
+    /* type PARROT_FUNCTION_OP, */
+    "ne",
+    "ne_p_p_ic",
+    "Parrot_ne_p_p_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 254 */
+    /* type PARROT_FUNCTION_OP, */
+    "ne",
+    "ne_p_i_ic",
+    "Parrot_ne_p_i_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 255 */
+    /* type PARROT_FUNCTION_OP, */
+    "ne",
+    "ne_p_ic_ic",
+    "Parrot_ne_p_ic_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 256 */
+    /* type PARROT_FUNCTION_OP, */
+    "ne",
+    "ne_p_n_ic",
+    "Parrot_ne_p_n_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_N, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 257 */
+    /* type PARROT_FUNCTION_OP, */
+    "ne",
+    "ne_p_nc_ic",
+    "Parrot_ne_p_nc_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_NC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 258 */
+    /* type PARROT_FUNCTION_OP, */
+    "ne",
+    "ne_p_s_ic",
+    "Parrot_ne_p_s_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 259 */
+    /* type PARROT_FUNCTION_OP, */
+    "ne",
+    "ne_p_sc_ic",
+    "Parrot_ne_p_sc_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 260 */
+    /* type PARROT_FUNCTION_OP, */
+    "ne_str",
+    "ne_str_p_p_ic",
+    "Parrot_ne_str_p_p_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 261 */
+    /* type PARROT_FUNCTION_OP, */
+    "ne_num",
+    "ne_num_p_p_ic",
+    "Parrot_ne_num_p_p_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 262 */
+    /* type PARROT_FUNCTION_OP, */
+    "ne_addr",
+    "ne_addr_s_s_ic",
+    "Parrot_ne_addr_s_s_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 263 */
+    /* type PARROT_FUNCTION_OP, */
+    "ne_addr",
+    "ne_addr_sc_s_ic",
+    "Parrot_ne_addr_sc_s_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_SC, PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 264 */
+    /* type PARROT_FUNCTION_OP, */
+    "ne_addr",
+    "ne_addr_s_sc_ic",
+    "Parrot_ne_addr_s_sc_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 265 */
+    /* type PARROT_FUNCTION_OP, */
+    "ne_addr",
+    "ne_addr_sc_sc_ic",
+    "Parrot_ne_addr_sc_sc_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_SC, PARROT_ARG_SC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 266 */
+    /* type PARROT_FUNCTION_OP, */
+    "ne_addr",
+    "ne_addr_p_p_ic",
+    "Parrot_ne_addr_p_p_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 267 */
+    /* type PARROT_INLINE_OP, */
+    "lt",
+    "lt_i_i_ic",
+    "Parrot_lt_i_i_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 268 */
+    /* type PARROT_INLINE_OP, */
+    "lt",
+    "lt_ic_i_ic",
+    "Parrot_lt_ic_i_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_IC, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 269 */
+    /* type PARROT_INLINE_OP, */
+    "lt",
+    "lt_i_ic_ic",
+    "Parrot_lt_i_ic_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 270 */
+    /* type PARROT_INLINE_OP, */
+    "lt",
+    "lt_n_n_ic",
+    "Parrot_lt_n_n_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 271 */
+    /* type PARROT_INLINE_OP, */
+    "lt",
+    "lt_nc_n_ic",
+    "Parrot_lt_nc_n_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_NC, PARROT_ARG_N, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 272 */
+    /* type PARROT_INLINE_OP, */
+    "lt",
+    "lt_n_nc_ic",
+    "Parrot_lt_n_nc_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 273 */
+    /* type PARROT_FUNCTION_OP, */
+    "lt",
+    "lt_s_s_ic",
+    "Parrot_lt_s_s_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 274 */
+    /* type PARROT_FUNCTION_OP, */
+    "lt",
+    "lt_sc_s_ic",
+    "Parrot_lt_sc_s_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_SC, PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 275 */
+    /* type PARROT_FUNCTION_OP, */
+    "lt",
+    "lt_s_sc_ic",
+    "Parrot_lt_s_sc_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 276 */
+    /* type PARROT_FUNCTION_OP, */
+    "lt",
+    "lt_p_p_ic",
+    "Parrot_lt_p_p_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 277 */
+    /* type PARROT_FUNCTION_OP, */
+    "lt",
+    "lt_p_i_ic",
+    "Parrot_lt_p_i_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 278 */
+    /* type PARROT_FUNCTION_OP, */
+    "lt",
+    "lt_p_ic_ic",
+    "Parrot_lt_p_ic_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 279 */
+    /* type PARROT_FUNCTION_OP, */
+    "lt",
+    "lt_p_n_ic",
+    "Parrot_lt_p_n_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_N, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 280 */
+    /* type PARROT_FUNCTION_OP, */
+    "lt",
+    "lt_p_nc_ic",
+    "Parrot_lt_p_nc_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_NC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 281 */
+    /* type PARROT_FUNCTION_OP, */
+    "lt",
+    "lt_p_s_ic",
+    "Parrot_lt_p_s_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 282 */
+    /* type PARROT_FUNCTION_OP, */
+    "lt",
+    "lt_p_sc_ic",
+    "Parrot_lt_p_sc_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 283 */
+    /* type PARROT_FUNCTION_OP, */
+    "lt_str",
+    "lt_str_p_p_ic",
+    "Parrot_lt_str_p_p_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 284 */
+    /* type PARROT_FUNCTION_OP, */
+    "lt_num",
+    "lt_num_p_p_ic",
+    "Parrot_lt_num_p_p_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 285 */
+    /* type PARROT_INLINE_OP, */
+    "le",
+    "le_i_i_ic",
+    "Parrot_le_i_i_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 286 */
+    /* type PARROT_INLINE_OP, */
+    "le",
+    "le_ic_i_ic",
+    "Parrot_le_ic_i_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_IC, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 287 */
+    /* type PARROT_INLINE_OP, */
+    "le",
+    "le_i_ic_ic",
+    "Parrot_le_i_ic_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 288 */
+    /* type PARROT_INLINE_OP, */
+    "le",
+    "le_n_n_ic",
+    "Parrot_le_n_n_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 289 */
+    /* type PARROT_INLINE_OP, */
+    "le",
+    "le_nc_n_ic",
+    "Parrot_le_nc_n_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_NC, PARROT_ARG_N, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 290 */
+    /* type PARROT_INLINE_OP, */
+    "le",
+    "le_n_nc_ic",
+    "Parrot_le_n_nc_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 291 */
+    /* type PARROT_FUNCTION_OP, */
+    "le",
+    "le_s_s_ic",
+    "Parrot_le_s_s_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 292 */
+    /* type PARROT_FUNCTION_OP, */
+    "le",
+    "le_sc_s_ic",
+    "Parrot_le_sc_s_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_SC, PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 293 */
+    /* type PARROT_FUNCTION_OP, */
+    "le",
+    "le_s_sc_ic",
+    "Parrot_le_s_sc_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 294 */
+    /* type PARROT_FUNCTION_OP, */
+    "le",
+    "le_p_p_ic",
+    "Parrot_le_p_p_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 295 */
+    /* type PARROT_FUNCTION_OP, */
+    "le",
+    "le_p_i_ic",
+    "Parrot_le_p_i_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 296 */
+    /* type PARROT_FUNCTION_OP, */
+    "le",
+    "le_p_ic_ic",
+    "Parrot_le_p_ic_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 297 */
+    /* type PARROT_FUNCTION_OP, */
+    "le",
+    "le_p_n_ic",
+    "Parrot_le_p_n_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_N, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 298 */
+    /* type PARROT_FUNCTION_OP, */
+    "le",
+    "le_p_nc_ic",
+    "Parrot_le_p_nc_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_NC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 299 */
+    /* type PARROT_FUNCTION_OP, */
+    "le",
+    "le_p_s_ic",
+    "Parrot_le_p_s_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 300 */
+    /* type PARROT_FUNCTION_OP, */
+    "le",
+    "le_p_sc_ic",
+    "Parrot_le_p_sc_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 301 */
+    /* type PARROT_FUNCTION_OP, */
+    "le_str",
+    "le_str_p_p_ic",
+    "Parrot_le_str_p_p_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 302 */
+    /* type PARROT_FUNCTION_OP, */
+    "le_num",
+    "le_num_p_p_ic",
+    "Parrot_le_num_p_p_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 303 */
+    /* type PARROT_FUNCTION_OP, */
+    "gt",
+    "gt_p_p_ic",
+    "Parrot_gt_p_p_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 304 */
+    /* type PARROT_FUNCTION_OP, */
+    "gt",
+    "gt_p_i_ic",
+    "Parrot_gt_p_i_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 305 */
+    /* type PARROT_FUNCTION_OP, */
+    "gt",
+    "gt_p_ic_ic",
+    "Parrot_gt_p_ic_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 306 */
+    /* type PARROT_FUNCTION_OP, */
+    "gt",
+    "gt_p_n_ic",
+    "Parrot_gt_p_n_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_N, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 307 */
+    /* type PARROT_FUNCTION_OP, */
+    "gt",
+    "gt_p_nc_ic",
+    "Parrot_gt_p_nc_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_NC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 308 */
+    /* type PARROT_FUNCTION_OP, */
+    "gt",
+    "gt_p_s_ic",
+    "Parrot_gt_p_s_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 309 */
+    /* type PARROT_FUNCTION_OP, */
+    "gt",
+    "gt_p_sc_ic",
+    "Parrot_gt_p_sc_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 310 */
+    /* type PARROT_FUNCTION_OP, */
+    "gt_str",
+    "gt_str_p_p_ic",
+    "Parrot_gt_str_p_p_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 311 */
+    /* type PARROT_FUNCTION_OP, */
+    "gt_num",
+    "gt_num_p_p_ic",
+    "Parrot_gt_num_p_p_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 312 */
+    /* type PARROT_FUNCTION_OP, */
+    "ge",
+    "ge_p_p_ic",
+    "Parrot_ge_p_p_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 313 */
+    /* type PARROT_FUNCTION_OP, */
+    "ge",
+    "ge_p_i_ic",
+    "Parrot_ge_p_i_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 314 */
+    /* type PARROT_FUNCTION_OP, */
+    "ge",
+    "ge_p_ic_ic",
+    "Parrot_ge_p_ic_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 315 */
+    /* type PARROT_FUNCTION_OP, */
+    "ge",
+    "ge_p_n_ic",
+    "Parrot_ge_p_n_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_N, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 316 */
+    /* type PARROT_FUNCTION_OP, */
+    "ge",
+    "ge_p_nc_ic",
+    "Parrot_ge_p_nc_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_NC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 317 */
+    /* type PARROT_FUNCTION_OP, */
+    "ge",
+    "ge_p_s_ic",
+    "Parrot_ge_p_s_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 318 */
+    /* type PARROT_FUNCTION_OP, */
+    "ge",
+    "ge_p_sc_ic",
+    "Parrot_ge_p_sc_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 319 */
+    /* type PARROT_FUNCTION_OP, */
+    "ge_str",
+    "ge_str_p_p_ic",
+    "Parrot_ge_str_p_p_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 320 */
+    /* type PARROT_FUNCTION_OP, */
+    "ge_num",
+    "ge_num_p_p_ic",
+    "Parrot_ge_num_p_p_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 1 }
+  },
+  { /* 321 */
+    /* type PARROT_FUNCTION_OP, */
+    "if_null",
+    "if_null_p_ic",
+    "Parrot_if_null_p_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 1 }
+  },
+  { /* 322 */
+    /* type PARROT_FUNCTION_OP, */
+    "if_null",
+    "if_null_s_ic",
+    "Parrot_if_null_s_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    3,
+    { PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 1 }
+  },
+  { /* 323 */
+    /* type PARROT_FUNCTION_OP, */
+    "unless_null",
+    "unless_null_p_ic",
+    "Parrot_unless_null_p_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 1 }
+  },
+  { /* 324 */
+    /* type PARROT_FUNCTION_OP, */
+    "unless_null",
+    "unless_null_s_ic",
+    "Parrot_unless_null_s_ic",
+    /* "",  body */
+    PARROT_JUMP_RELATIVE,
+    3,
+    { PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 1 }
+  },
+  { /* 325 */
+    /* type PARROT_INLINE_OP, */
+    "cmp",
+    "cmp_i_i_i",
+    "Parrot_cmp_i_i_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 326 */
+    /* type PARROT_INLINE_OP, */
+    "cmp",
+    "cmp_i_ic_i",
+    "Parrot_cmp_i_ic_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 327 */
+    /* type PARROT_INLINE_OP, */
+    "cmp",
+    "cmp_i_i_ic",
+    "Parrot_cmp_i_i_ic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 328 */
+    /* type PARROT_INLINE_OP, */
+    "cmp",
+    "cmp_i_n_n",
+    "Parrot_cmp_i_n_n",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 329 */
+    /* type PARROT_INLINE_OP, */
+    "cmp",
+    "cmp_i_nc_n",
+    "Parrot_cmp_i_nc_n",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_NC, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 330 */
+    /* type PARROT_INLINE_OP, */
+    "cmp",
+    "cmp_i_n_nc",
+    "Parrot_cmp_i_n_nc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_N, PARROT_ARG_NC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 331 */
+    /* type PARROT_INLINE_OP, */
+    "cmp",
+    "cmp_i_s_s",
+    "Parrot_cmp_i_s_s",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 332 */
+    /* type PARROT_INLINE_OP, */
+    "cmp",
+    "cmp_i_sc_s",
+    "Parrot_cmp_i_sc_s",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 333 */
+    /* type PARROT_INLINE_OP, */
+    "cmp",
+    "cmp_i_s_sc",
+    "Parrot_cmp_i_s_sc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 334 */
+    /* type PARROT_INLINE_OP, */
+    "cmp",
+    "cmp_i_p_p",
+    "Parrot_cmp_i_p_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 335 */
+    /* type PARROT_INLINE_OP, */
+    "cmp",
+    "cmp_i_p_i",
+    "Parrot_cmp_i_p_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 336 */
+    /* type PARROT_INLINE_OP, */
+    "cmp",
+    "cmp_i_p_ic",
+    "Parrot_cmp_i_p_ic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 337 */
+    /* type PARROT_INLINE_OP, */
+    "cmp",
+    "cmp_i_p_n",
+    "Parrot_cmp_i_p_n",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 338 */
+    /* type PARROT_INLINE_OP, */
+    "cmp",
+    "cmp_i_p_nc",
+    "Parrot_cmp_i_p_nc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_NC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 339 */
+    /* type PARROT_INLINE_OP, */
+    "cmp",
+    "cmp_i_p_s",
+    "Parrot_cmp_i_p_s",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 340 */
+    /* type PARROT_INLINE_OP, */
+    "cmp",
+    "cmp_i_p_sc",
+    "Parrot_cmp_i_p_sc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 341 */
+    /* type PARROT_INLINE_OP, */
+    "cmp_str",
+    "cmp_str_i_p_p",
+    "Parrot_cmp_str_i_p_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 342 */
+    /* type PARROT_INLINE_OP, */
+    "cmp_num",
+    "cmp_num_i_p_p",
+    "Parrot_cmp_num_i_p_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 343 */
+    /* type PARROT_INLINE_OP, */
+    "cmp_pmc",
+    "cmp_pmc_p_p_p",
+    "Parrot_cmp_pmc_p_p_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 344 */
+    /* type PARROT_INLINE_OP, */
+    "issame",
+    "issame_i_p_p",
+    "Parrot_issame_i_p_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 345 */
+    /* type PARROT_INLINE_OP, */
+    "issame",
+    "issame_i_s_s",
+    "Parrot_issame_i_s_s",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 346 */
+    /* type PARROT_INLINE_OP, */
+    "issame",
+    "issame_i_sc_s",
+    "Parrot_issame_i_sc_s",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 347 */
+    /* type PARROT_INLINE_OP, */
+    "issame",
+    "issame_i_s_sc",
+    "Parrot_issame_i_s_sc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 348 */
+    /* type PARROT_INLINE_OP, */
+    "issame",
+    "issame_i_sc_sc",
+    "Parrot_issame_i_sc_sc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 349 */
+    /* type PARROT_INLINE_OP, */
+    "isntsame",
+    "isntsame_i_p_p",
+    "Parrot_isntsame_i_p_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 350 */
+    /* type PARROT_INLINE_OP, */
+    "isntsame",
+    "isntsame_i_s_s",
+    "Parrot_isntsame_i_s_s",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 351 */
+    /* type PARROT_INLINE_OP, */
+    "isntsame",
+    "isntsame_i_sc_s",
+    "Parrot_isntsame_i_sc_s",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 352 */
+    /* type PARROT_INLINE_OP, */
+    "isntsame",
+    "isntsame_i_s_sc",
+    "Parrot_isntsame_i_s_sc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 353 */
+    /* type PARROT_INLINE_OP, */
+    "isntsame",
+    "isntsame_i_sc_sc",
+    "Parrot_isntsame_i_sc_sc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 354 */
+    /* type PARROT_INLINE_OP, */
+    "istrue",
+    "istrue_i_p",
+    "Parrot_istrue_i_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 355 */
+    /* type PARROT_INLINE_OP, */
+    "isfalse",
+    "isfalse_i_p",
+    "Parrot_isfalse_i_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 356 */
+    /* type PARROT_INLINE_OP, */
+    "isnull",
+    "isnull_i_p",
+    "Parrot_isnull_i_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 357 */
+    /* type PARROT_INLINE_OP, */
+    "isnull",
+    "isnull_i_pc",
+    "Parrot_isnull_i_pc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_PC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 358 */
+    /* type PARROT_INLINE_OP, */
+    "isnull",
+    "isnull_i_s",
+    "Parrot_isnull_i_s",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 359 */
+    /* type PARROT_INLINE_OP, */
+    "isnull",
+    "isnull_i_sc",
+    "Parrot_isnull_i_sc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 360 */
+    /* type PARROT_INLINE_OP, */
+    "isgt",
+    "isgt_i_p_p",
+    "Parrot_isgt_i_p_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 361 */
+    /* type PARROT_INLINE_OP, */
+    "isge",
+    "isge_i_p_p",
+    "Parrot_isge_i_p_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 362 */
+    /* type PARROT_INLINE_OP, */
+    "isle",
+    "isle_i_i_i",
+    "Parrot_isle_i_i_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 363 */
+    /* type PARROT_INLINE_OP, */
+    "isle",
+    "isle_i_ic_i",
+    "Parrot_isle_i_ic_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 364 */
+    /* type PARROT_INLINE_OP, */
+    "isle",
+    "isle_i_i_ic",
+    "Parrot_isle_i_i_ic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 365 */
+    /* type PARROT_INLINE_OP, */
+    "isle",
+    "isle_i_n_n",
+    "Parrot_isle_i_n_n",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 366 */
+    /* type PARROT_INLINE_OP, */
+    "isle",
+    "isle_i_nc_n",
+    "Parrot_isle_i_nc_n",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_NC, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 367 */
+    /* type PARROT_INLINE_OP, */
+    "isle",
+    "isle_i_n_nc",
+    "Parrot_isle_i_n_nc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_N, PARROT_ARG_NC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 368 */
+    /* type PARROT_INLINE_OP, */
+    "isle",
+    "isle_i_s_s",
+    "Parrot_isle_i_s_s",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 369 */
+    /* type PARROT_INLINE_OP, */
+    "isle",
+    "isle_i_sc_s",
+    "Parrot_isle_i_sc_s",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 370 */
+    /* type PARROT_INLINE_OP, */
+    "isle",
+    "isle_i_s_sc",
+    "Parrot_isle_i_s_sc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 371 */
+    /* type PARROT_INLINE_OP, */
+    "isle",
+    "isle_i_p_p",
+    "Parrot_isle_i_p_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 372 */
+    /* type PARROT_INLINE_OP, */
+    "islt",
+    "islt_i_i_i",
+    "Parrot_islt_i_i_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 373 */
+    /* type PARROT_INLINE_OP, */
+    "islt",
+    "islt_i_ic_i",
+    "Parrot_islt_i_ic_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 374 */
+    /* type PARROT_INLINE_OP, */
+    "islt",
+    "islt_i_i_ic",
+    "Parrot_islt_i_i_ic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 375 */
+    /* type PARROT_INLINE_OP, */
+    "islt",
+    "islt_i_n_n",
+    "Parrot_islt_i_n_n",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 376 */
+    /* type PARROT_INLINE_OP, */
+    "islt",
+    "islt_i_nc_n",
+    "Parrot_islt_i_nc_n",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_NC, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 377 */
+    /* type PARROT_INLINE_OP, */
+    "islt",
+    "islt_i_n_nc",
+    "Parrot_islt_i_n_nc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_N, PARROT_ARG_NC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 378 */
+    /* type PARROT_INLINE_OP, */
+    "islt",
+    "islt_i_s_s",
+    "Parrot_islt_i_s_s",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 379 */
+    /* type PARROT_INLINE_OP, */
+    "islt",
+    "islt_i_sc_s",
+    "Parrot_islt_i_sc_s",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 380 */
+    /* type PARROT_INLINE_OP, */
+    "islt",
+    "islt_i_s_sc",
+    "Parrot_islt_i_s_sc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 381 */
+    /* type PARROT_INLINE_OP, */
+    "islt",
+    "islt_i_p_p",
+    "Parrot_islt_i_p_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 382 */
+    /* type PARROT_INLINE_OP, */
+    "iseq",
+    "iseq_i_i_i",
+    "Parrot_iseq_i_i_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 383 */
+    /* type PARROT_INLINE_OP, */
+    "iseq",
+    "iseq_i_ic_i",
+    "Parrot_iseq_i_ic_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 384 */
+    /* type PARROT_INLINE_OP, */
+    "iseq",
+    "iseq_i_i_ic",
+    "Parrot_iseq_i_i_ic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 385 */
+    /* type PARROT_INLINE_OP, */
+    "iseq",
+    "iseq_i_n_n",
+    "Parrot_iseq_i_n_n",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 386 */
+    /* type PARROT_INLINE_OP, */
+    "iseq",
+    "iseq_i_nc_n",
+    "Parrot_iseq_i_nc_n",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_NC, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 387 */
+    /* type PARROT_INLINE_OP, */
+    "iseq",
+    "iseq_i_n_nc",
+    "Parrot_iseq_i_n_nc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_N, PARROT_ARG_NC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 388 */
+    /* type PARROT_INLINE_OP, */
+    "iseq",
+    "iseq_i_s_s",
+    "Parrot_iseq_i_s_s",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 389 */
+    /* type PARROT_INLINE_OP, */
+    "iseq",
+    "iseq_i_sc_s",
+    "Parrot_iseq_i_sc_s",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 390 */
+    /* type PARROT_INLINE_OP, */
+    "iseq",
+    "iseq_i_s_sc",
+    "Parrot_iseq_i_s_sc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 391 */
+    /* type PARROT_INLINE_OP, */
+    "iseq",
+    "iseq_i_p_p",
+    "Parrot_iseq_i_p_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 392 */
+    /* type PARROT_INLINE_OP, */
+    "isne",
+    "isne_i_i_i",
+    "Parrot_isne_i_i_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 393 */
+    /* type PARROT_INLINE_OP, */
+    "isne",
+    "isne_i_ic_i",
+    "Parrot_isne_i_ic_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 394 */
+    /* type PARROT_INLINE_OP, */
+    "isne",
+    "isne_i_i_ic",
+    "Parrot_isne_i_i_ic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 395 */
+    /* type PARROT_INLINE_OP, */
+    "isne",
+    "isne_i_n_n",
+    "Parrot_isne_i_n_n",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 396 */
+    /* type PARROT_INLINE_OP, */
+    "isne",
+    "isne_i_nc_n",
+    "Parrot_isne_i_nc_n",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_NC, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 397 */
+    /* type PARROT_INLINE_OP, */
+    "isne",
+    "isne_i_n_nc",
+    "Parrot_isne_i_n_nc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_N, PARROT_ARG_NC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 398 */
+    /* type PARROT_INLINE_OP, */
+    "isne",
+    "isne_i_s_s",
+    "Parrot_isne_i_s_s",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 399 */
+    /* type PARROT_INLINE_OP, */
+    "isne",
+    "isne_i_sc_s",
+    "Parrot_isne_i_sc_s",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 400 */
+    /* type PARROT_INLINE_OP, */
+    "isne",
+    "isne_i_s_sc",
+    "Parrot_isne_i_s_sc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 401 */
+    /* type PARROT_INLINE_OP, */
+    "isne",
+    "isne_i_p_p",
+    "Parrot_isne_i_p_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 402 */
+    /* type PARROT_INLINE_OP, */
+    "and",
+    "and_i_i_i",
+    "Parrot_and_i_i_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 403 */
+    /* type PARROT_INLINE_OP, */
+    "and",
+    "and_i_ic_i",
+    "Parrot_and_i_ic_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 404 */
+    /* type PARROT_INLINE_OP, */
+    "and",
+    "and_i_i_ic",
+    "Parrot_and_i_i_ic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 405 */
+    /* type PARROT_INLINE_OP, */
+    "and",
+    "and_p_p_p",
+    "Parrot_and_p_p_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 406 */
+    /* type PARROT_INLINE_OP, */
+    "not",
+    "not_i",
+    "Parrot_not_i",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_I },
+    { PARROT_ARGDIR_INOUT },
+    { 0 }
+  },
+  { /* 407 */
+    /* type PARROT_INLINE_OP, */
+    "not",
+    "not_i_i",
+    "Parrot_not_i_i",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 408 */
+    /* type PARROT_INLINE_OP, */
+    "not",
+    "not_p",
+    "Parrot_not_p",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_P },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 409 */
+    /* type PARROT_INLINE_OP, */
+    "not",
+    "not_p_p",
+    "Parrot_not_p_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 410 */
+    /* type PARROT_INLINE_OP, */
+    "or",
+    "or_i_i_i",
+    "Parrot_or_i_i_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 411 */
+    /* type PARROT_INLINE_OP, */
+    "or",
+    "or_i_ic_i",
+    "Parrot_or_i_ic_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 412 */
+    /* type PARROT_INLINE_OP, */
+    "or",
+    "or_i_i_ic",
+    "Parrot_or_i_i_ic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 413 */
+    /* type PARROT_INLINE_OP, */
+    "or",
+    "or_p_p_p",
+    "Parrot_or_p_p_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 414 */
+    /* type PARROT_INLINE_OP, */
+    "xor",
+    "xor_i_i_i",
+    "Parrot_xor_i_i_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 415 */
+    /* type PARROT_INLINE_OP, */
+    "xor",
+    "xor_i_ic_i",
+    "Parrot_xor_i_ic_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 416 */
+    /* type PARROT_INLINE_OP, */
+    "xor",
+    "xor_i_i_ic",
+    "Parrot_xor_i_i_ic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 417 */
+    /* type PARROT_INLINE_OP, */
+    "xor",
+    "xor_p_p_p",
+    "Parrot_xor_p_p_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 418 */
+    /* type PARROT_FUNCTION_OP, */
+    "debug_init",
+    "debug_init",
+    "Parrot_debug_init",
+    /* "",  body */
+    0,
+    1,
+    { (arg_type_t) 0 },
+    { (arg_dir_t) 0 },
+    { 0 }
+  },
+  { /* 419 */
+    /* type PARROT_FUNCTION_OP, */
+    "debug_load",
+    "debug_load_sc",
+    "Parrot_debug_load_sc",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_SC },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 420 */
+    /* type PARROT_FUNCTION_OP, */
+    "debug_break",
+    "debug_break",
+    "Parrot_debug_break",
+    /* "",  body */
+    0,
+    1,
+    { (arg_type_t) 0 },
+    { (arg_dir_t) 0 },
+    { 0 }
+  },
+  { /* 421 */
+    /* type PARROT_FUNCTION_OP, */
+    "debug_print",
+    "debug_print",
+    "Parrot_debug_print",
+    /* "",  body */
+    0,
+    1,
+    { (arg_type_t) 0 },
+    { (arg_dir_t) 0 },
+    { 0 }
+  },
+  { /* 422 */
+    /* type PARROT_FUNCTION_OP, */
+    "backtrace",
+    "backtrace",
+    "Parrot_backtrace",
+    /* "",  body */
+    0,
+    1,
+    { (arg_type_t) 0 },
+    { (arg_dir_t) 0 },
+    { 0 }
+  },
+  { /* 423 */
+    /* type PARROT_INLINE_OP, */
+    "getline",
+    "getline_i",
+    "Parrot_getline_i",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT },
+    { 0 }
+  },
+  { /* 424 */
+    /* type PARROT_INLINE_OP, */
+    "getfile",
+    "getfile_s",
+    "Parrot_getfile_s",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT },
+    { 0 }
+  },
+  { /* 425 */
+    /* type PARROT_INLINE_OP, */
+    "close",
+    "close_p",
+    "Parrot_close_p",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_P },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 426 */
+    /* type PARROT_INLINE_OP, */
+    "fdopen",
+    "fdopen_p_i_s",
+    "Parrot_fdopen_p_i_s",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 427 */
+    /* type PARROT_INLINE_OP, */
+    "fdopen",
+    "fdopen_p_ic_s",
+    "Parrot_fdopen_p_ic_s",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 428 */
+    /* type PARROT_INLINE_OP, */
+    "fdopen",
+    "fdopen_p_i_sc",
+    "Parrot_fdopen_p_i_sc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 429 */
+    /* type PARROT_INLINE_OP, */
+    "fdopen",
+    "fdopen_p_ic_sc",
+    "Parrot_fdopen_p_ic_sc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 430 */
+    /* type PARROT_INLINE_OP, */
+    "getstdin",
+    "getstdin_p",
+    "Parrot_getstdin_p",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT },
+    { 0 }
+  },
+  { /* 431 */
+    /* type PARROT_INLINE_OP, */
+    "getstdout",
+    "getstdout_p",
+    "Parrot_getstdout_p",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT },
+    { 0 }
+  },
+  { /* 432 */
+    /* type PARROT_INLINE_OP, */
+    "getstderr",
+    "getstderr_p",
+    "Parrot_getstderr_p",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT },
+    { 0 }
+  },
+  { /* 433 */
+    /* type PARROT_INLINE_OP, */
+    "setstdin",
+    "setstdin_p",
+    "Parrot_setstdin_p",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_P },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 434 */
+    /* type PARROT_INLINE_OP, */
+    "setstdout",
+    "setstdout_p",
+    "Parrot_setstdout_p",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_P },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 435 */
+    /* type PARROT_INLINE_OP, */
+    "setstderr",
+    "setstderr_p",
+    "Parrot_setstderr_p",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_P },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 436 */
+    /* type PARROT_INLINE_OP, */
+    "open",
+    "open_p_s_s",
+    "Parrot_open_p_s_s",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 437 */
+    /* type PARROT_INLINE_OP, */
+    "open",
+    "open_p_sc_s",
+    "Parrot_open_p_sc_s",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 438 */
+    /* type PARROT_INLINE_OP, */
+    "open",
+    "open_p_s_sc",
+    "Parrot_open_p_s_sc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 439 */
+    /* type PARROT_INLINE_OP, */
+    "open",
+    "open_p_sc_sc",
+    "Parrot_open_p_sc_sc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 440 */
+    /* type PARROT_INLINE_OP, */
+    "open",
+    "open_p_s",
+    "Parrot_open_p_s",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 441 */
+    /* type PARROT_INLINE_OP, */
+    "open",
+    "open_p_sc",
+    "Parrot_open_p_sc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 442 */
+    /* type PARROT_INLINE_OP, */
+    "print",
+    "print_i",
+    "Parrot_print_i",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_I },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 443 */
+    /* type PARROT_INLINE_OP, */
+    "print",
+    "print_ic",
+    "Parrot_print_ic",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 444 */
+    /* type PARROT_INLINE_OP, */
+    "print",
+    "print_n",
+    "Parrot_print_n",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_N },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 445 */
+    /* type PARROT_INLINE_OP, */
+    "print",
+    "print_nc",
+    "Parrot_print_nc",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_NC },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 446 */
+    /* type PARROT_FUNCTION_OP, */
+    "print",
+    "print_s",
+    "Parrot_print_s",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_S },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 447 */
+    /* type PARROT_FUNCTION_OP, */
+    "print",
+    "print_sc",
+    "Parrot_print_sc",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_SC },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 448 */
+    /* type PARROT_FUNCTION_OP, */
+    "print",
+    "print_p",
+    "Parrot_print_p",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_P },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 449 */
+    /* type PARROT_INLINE_OP, */
+    "say",
+    "say_i",
+    "Parrot_say_i",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_I },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 450 */
+    /* type PARROT_INLINE_OP, */
+    "say",
+    "say_ic",
+    "Parrot_say_ic",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 451 */
+    /* type PARROT_INLINE_OP, */
+    "say",
+    "say_n",
+    "Parrot_say_n",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_N },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 452 */
+    /* type PARROT_INLINE_OP, */
+    "say",
+    "say_nc",
+    "Parrot_say_nc",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_NC },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 453 */
+    /* type PARROT_FUNCTION_OP, */
+    "say",
+    "say_s",
+    "Parrot_say_s",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_S },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 454 */
+    /* type PARROT_FUNCTION_OP, */
+    "say",
+    "say_sc",
+    "Parrot_say_sc",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_SC },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 455 */
+    /* type PARROT_FUNCTION_OP, */
+    "say",
+    "say_p",
+    "Parrot_say_p",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_P },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 456 */
+    /* type PARROT_FUNCTION_OP, */
+    "printerr",
+    "printerr_i",
+    "Parrot_printerr_i",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_I },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 457 */
+    /* type PARROT_FUNCTION_OP, */
+    "printerr",
+    "printerr_ic",
+    "Parrot_printerr_ic",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 458 */
+    /* type PARROT_FUNCTION_OP, */
+    "printerr",
+    "printerr_n",
+    "Parrot_printerr_n",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_N },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 459 */
+    /* type PARROT_FUNCTION_OP, */
+    "printerr",
+    "printerr_nc",
+    "Parrot_printerr_nc",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_NC },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 460 */
+    /* type PARROT_FUNCTION_OP, */
+    "printerr",
+    "printerr_s",
+    "Parrot_printerr_s",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_S },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 461 */
+    /* type PARROT_FUNCTION_OP, */
+    "printerr",
+    "printerr_sc",
+    "Parrot_printerr_sc",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_SC },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 462 */
+    /* type PARROT_FUNCTION_OP, */
+    "printerr",
+    "printerr_p",
+    "Parrot_printerr_p",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_P },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 463 */
+    /* type PARROT_FUNCTION_OP, */
+    "print",
+    "print_p_i",
+    "Parrot_print_p_i",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_I },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 464 */
+    /* type PARROT_FUNCTION_OP, */
+    "print",
+    "print_p_ic",
+    "Parrot_print_p_ic",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 465 */
+    /* type PARROT_FUNCTION_OP, */
+    "print",
+    "print_p_n",
+    "Parrot_print_p_n",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_N },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 466 */
+    /* type PARROT_FUNCTION_OP, */
+    "print",
+    "print_p_nc",
+    "Parrot_print_p_nc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_NC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 467 */
+    /* type PARROT_FUNCTION_OP, */
+    "print",
+    "print_p_s",
+    "Parrot_print_p_s",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 468 */
+    /* type PARROT_FUNCTION_OP, */
+    "print",
+    "print_p_sc",
+    "Parrot_print_p_sc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 469 */
+    /* type PARROT_FUNCTION_OP, */
+    "print",
+    "print_p_p",
+    "Parrot_print_p_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 470 */
+    /* type PARROT_FUNCTION_OP, */
+    "read",
+    "read_s_i",
+    "Parrot_read_s_i",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_S, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 471 */
+    /* type PARROT_FUNCTION_OP, */
+    "read",
+    "read_s_ic",
+    "Parrot_read_s_ic",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 472 */
+    /* type PARROT_FUNCTION_OP, */
+    "read",
+    "read_s_p_i",
+    "Parrot_read_s_p_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_S, PARROT_ARG_P, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 473 */
+    /* type PARROT_FUNCTION_OP, */
+    "read",
+    "read_s_p_ic",
+    "Parrot_read_s_p_ic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_S, PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 474 */
+    /* type PARROT_INLINE_OP, */
+    "readline",
+    "readline_s_p",
+    "Parrot_readline_s_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_S, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 475 */
+    /* type PARROT_FUNCTION_OP, */
+    "peek",
+    "peek_s",
+    "Parrot_peek_s",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT },
+    { 0 }
+  },
+  { /* 476 */
+    /* type PARROT_FUNCTION_OP, */
+    "peek",
+    "peek_s_p",
+    "Parrot_peek_s_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_S, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 477 */
+    /* type PARROT_FUNCTION_OP, */
+    "stat",
+    "stat_i_s_i",
+    "Parrot_stat_i_s_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 478 */
+    /* type PARROT_FUNCTION_OP, */
+    "stat",
+    "stat_i_sc_i",
+    "Parrot_stat_i_sc_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 479 */
+    /* type PARROT_FUNCTION_OP, */
+    "stat",
+    "stat_i_s_ic",
+    "Parrot_stat_i_s_ic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 480 */
+    /* type PARROT_FUNCTION_OP, */
+    "stat",
+    "stat_i_sc_ic",
+    "Parrot_stat_i_sc_ic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 481 */
+    /* type PARROT_FUNCTION_OP, */
+    "stat",
+    "stat_i_i_i",
+    "Parrot_stat_i_i_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 482 */
+    /* type PARROT_FUNCTION_OP, */
+    "stat",
+    "stat_i_ic_i",
+    "Parrot_stat_i_ic_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 483 */
+    /* type PARROT_FUNCTION_OP, */
+    "stat",
+    "stat_i_i_ic",
+    "Parrot_stat_i_i_ic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 484 */
+    /* type PARROT_FUNCTION_OP, */
+    "stat",
+    "stat_i_ic_ic",
+    "Parrot_stat_i_ic_ic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 485 */
+    /* type PARROT_FUNCTION_OP, */
+    "seek",
+    "seek_p_i_i",
+    "Parrot_seek_p_i_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 486 */
+    /* type PARROT_FUNCTION_OP, */
+    "seek",
+    "seek_p_ic_i",
+    "Parrot_seek_p_ic_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_I },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 487 */
+    /* type PARROT_FUNCTION_OP, */
+    "seek",
+    "seek_p_i_ic",
+    "Parrot_seek_p_i_ic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 488 */
+    /* type PARROT_FUNCTION_OP, */
+    "seek",
+    "seek_p_ic_ic",
+    "Parrot_seek_p_ic_ic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 489 */
+    /* type PARROT_FUNCTION_OP, */
+    "seek",
+    "seek_p_i_i_i",
+    "Parrot_seek_p_i_i_i",
+    /* "",  body */
+    0,
+    5,
+    { PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
+  },
+  { /* 490 */
+    /* type PARROT_FUNCTION_OP, */
+    "seek",
+    "seek_p_ic_i_i",
+    "Parrot_seek_p_ic_i_i",
+    /* "",  body */
+    0,
+    5,
+    { PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
+  },
+  { /* 491 */
+    /* type PARROT_FUNCTION_OP, */
+    "seek",
+    "seek_p_i_ic_i",
+    "Parrot_seek_p_i_ic_i",
+    /* "",  body */
+    0,
+    5,
+    { PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
+  },
+  { /* 492 */
+    /* type PARROT_FUNCTION_OP, */
+    "seek",
+    "seek_p_ic_ic_i",
+    "Parrot_seek_p_ic_ic_i",
+    /* "",  body */
+    0,
+    5,
+    { PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_IC, PARROT_ARG_I },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
+  },
+  { /* 493 */
+    /* type PARROT_FUNCTION_OP, */
+    "seek",
+    "seek_p_i_i_ic",
+    "Parrot_seek_p_i_i_ic",
+    /* "",  body */
+    0,
+    5,
+    { PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
+  },
+  { /* 494 */
+    /* type PARROT_FUNCTION_OP, */
+    "seek",
+    "seek_p_ic_i_ic",
+    "Parrot_seek_p_ic_i_ic",
+    /* "",  body */
+    0,
+    5,
+    { PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
+  },
+  { /* 495 */
+    /* type PARROT_FUNCTION_OP, */
+    "seek",
+    "seek_p_i_ic_ic",
+    "Parrot_seek_p_i_ic_ic",
+    /* "",  body */
+    0,
+    5,
+    { PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
+  },
+  { /* 496 */
+    /* type PARROT_FUNCTION_OP, */
+    "seek",
+    "seek_p_ic_ic_ic",
+    "Parrot_seek_p_ic_ic_ic",
+    /* "",  body */
+    0,
+    5,
+    { PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_IC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0, 0 }
+  },
+  { /* 497 */
+    /* type PARROT_FUNCTION_OP, */
+    "tell",
+    "tell_i_p",
+    "Parrot_tell_i_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 498 */
+    /* type PARROT_FUNCTION_OP, */
+    "tell",
+    "tell_i_i_p",
+    "Parrot_tell_i_i_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 499 */
+    /* type PARROT_INLINE_OP, */
+    "abs",
+    "abs_i",
+    "Parrot_abs_i",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_I },
+    { PARROT_ARGDIR_INOUT },
+    { 0 }
+  },
+  { /* 500 */
+    /* type PARROT_INLINE_OP, */
+    "abs",
+    "abs_n",
+    "Parrot_abs_n",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_N },
+    { PARROT_ARGDIR_INOUT },
+    { 0 }
+  },
+  { /* 501 */
+    /* type PARROT_INLINE_OP, */
+    "abs",
+    "abs_i_i",
+    "Parrot_abs_i_i",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 502 */
+    /* type PARROT_INLINE_OP, */
+    "abs",
+    "abs_n_n",
+    "Parrot_abs_n_n",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 503 */
+    /* type PARROT_INLINE_OP, */
+    "abs",
+    "abs_p",
+    "Parrot_abs_p",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_P },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 504 */
+    /* type PARROT_INLINE_OP, */
+    "abs",
+    "abs_p_p",
+    "Parrot_abs_p_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 505 */
+    /* type PARROT_INLINE_OP, */
+    "add",
+    "add_i_i",
+    "Parrot_add_i_i",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 506 */
+    /* type PARROT_INLINE_OP, */
+    "add",
+    "add_i_ic",
+    "Parrot_add_i_ic",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 507 */
+    /* type PARROT_INLINE_OP, */
+    "add",
+    "add_n_n",
+    "Parrot_add_n_n",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 508 */
+    /* type PARROT_INLINE_OP, */
+    "add",
+    "add_n_nc",
+    "Parrot_add_n_nc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_N, PARROT_ARG_NC },
+    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 509 */
+    /* type PARROT_INLINE_OP, */
+    "add",
+    "add_p_p",
+    "Parrot_add_p_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 510 */
+    /* type PARROT_INLINE_OP, */
+    "add",
+    "add_p_i",
+    "Parrot_add_p_i",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_I },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 511 */
+    /* type PARROT_INLINE_OP, */
+    "add",
+    "add_p_ic",
+    "Parrot_add_p_ic",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 512 */
+    /* type PARROT_INLINE_OP, */
+    "add",
+    "add_p_n",
+    "Parrot_add_p_n",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_N },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 513 */
+    /* type PARROT_INLINE_OP, */
+    "add",
+    "add_p_nc",
+    "Parrot_add_p_nc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_NC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 514 */
+    /* type PARROT_INLINE_OP, */
+    "add",
+    "add_i_i_i",
+    "Parrot_add_i_i_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 515 */
+    /* type PARROT_INLINE_OP, */
+    "add",
+    "add_i_ic_i",
+    "Parrot_add_i_ic_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 516 */
+    /* type PARROT_INLINE_OP, */
+    "add",
+    "add_i_i_ic",
+    "Parrot_add_i_i_ic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 517 */
+    /* type PARROT_INLINE_OP, */
+    "add",
+    "add_n_n_n",
+    "Parrot_add_n_n_n",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 518 */
+    /* type PARROT_INLINE_OP, */
+    "add",
+    "add_n_nc_n",
+    "Parrot_add_n_nc_n",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 519 */
+    /* type PARROT_INLINE_OP, */
+    "add",
+    "add_n_n_nc",
+    "Parrot_add_n_n_nc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_NC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 520 */
+    /* type PARROT_INLINE_OP, */
+    "add",
+    "add_p_p_p",
+    "Parrot_add_p_p_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 521 */
+    /* type PARROT_INLINE_OP, */
+    "add",
+    "add_p_p_i",
+    "Parrot_add_p_p_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 522 */
+    /* type PARROT_INLINE_OP, */
+    "add",
+    "add_p_p_ic",
+    "Parrot_add_p_p_ic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 523 */
+    /* type PARROT_INLINE_OP, */
+    "add",
+    "add_p_p_n",
+    "Parrot_add_p_p_n",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_N },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 524 */
+    /* type PARROT_INLINE_OP, */
+    "add",
+    "add_p_p_nc",
+    "Parrot_add_p_p_nc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_NC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 525 */
+    /* type PARROT_INLINE_OP, */
+    "cmod",
+    "cmod_i_i_i",
+    "Parrot_cmod_i_i_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 526 */
+    /* type PARROT_INLINE_OP, */
+    "cmod",
+    "cmod_i_ic_i",
+    "Parrot_cmod_i_ic_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 527 */
+    /* type PARROT_INLINE_OP, */
+    "cmod",
+    "cmod_i_i_ic",
+    "Parrot_cmod_i_i_ic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 528 */
+    /* type PARROT_INLINE_OP, */
+    "cmod",
+    "cmod_p_p_i",
+    "Parrot_cmod_p_p_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 529 */
+    /* type PARROT_INLINE_OP, */
+    "cmod",
+    "cmod_p_p_ic",
+    "Parrot_cmod_p_p_ic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 530 */
+    /* type PARROT_INLINE_OP, */
+    "cmod",
+    "cmod_p_p_p",
+    "Parrot_cmod_p_p_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 531 */
+    /* type PARROT_INLINE_OP, */
+    "cmod",
+    "cmod_n_n_n",
+    "Parrot_cmod_n_n_n",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 532 */
+    /* type PARROT_INLINE_OP, */
+    "cmod",
+    "cmod_n_nc_n",
+    "Parrot_cmod_n_nc_n",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 533 */
+    /* type PARROT_INLINE_OP, */
+    "cmod",
+    "cmod_n_n_nc",
+    "Parrot_cmod_n_n_nc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_NC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 534 */
+    /* type PARROT_INLINE_OP, */
+    "cmod",
+    "cmod_p_p_n",
+    "Parrot_cmod_p_p_n",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_N },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 535 */
+    /* type PARROT_INLINE_OP, */
+    "cmod",
+    "cmod_p_p_nc",
+    "Parrot_cmod_p_p_nc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_NC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 536 */
+    /* type PARROT_INLINE_OP, */
+    "dec",
+    "dec_i",
+    "Parrot_dec_i",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_I },
+    { PARROT_ARGDIR_INOUT },
+    { 0 }
+  },
+  { /* 537 */
+    /* type PARROT_INLINE_OP, */
+    "dec",
+    "dec_n",
+    "Parrot_dec_n",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_N },
+    { PARROT_ARGDIR_INOUT },
+    { 0 }
+  },
+  { /* 538 */
+    /* type PARROT_INLINE_OP, */
+    "dec",
+    "dec_p",
+    "Parrot_dec_p",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_P },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 539 */
+    /* type PARROT_INLINE_OP, */
+    "div",
+    "div_i_i",
+    "Parrot_div_i_i",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 540 */
+    /* type PARROT_INLINE_OP, */
+    "div",
+    "div_i_ic",
+    "Parrot_div_i_ic",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 541 */
+    /* type PARROT_INLINE_OP, */
+    "div",
+    "div_n_n",
+    "Parrot_div_n_n",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 542 */
+    /* type PARROT_INLINE_OP, */
+    "div",
+    "div_n_nc",
+    "Parrot_div_n_nc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_N, PARROT_ARG_NC },
+    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 543 */
+    /* type PARROT_INLINE_OP, */
+    "div",
+    "div_p_p",
+    "Parrot_div_p_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 544 */
+    /* type PARROT_INLINE_OP, */
+    "div",
+    "div_p_i",
+    "Parrot_div_p_i",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_I },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 545 */
+    /* type PARROT_INLINE_OP, */
+    "div",
+    "div_p_ic",
+    "Parrot_div_p_ic",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 546 */
+    /* type PARROT_INLINE_OP, */
+    "div",
+    "div_p_n",
+    "Parrot_div_p_n",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_N },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 547 */
+    /* type PARROT_INLINE_OP, */
+    "div",
+    "div_p_nc",
+    "Parrot_div_p_nc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_NC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 548 */
+    /* type PARROT_INLINE_OP, */
+    "div",
+    "div_i_i_i",
+    "Parrot_div_i_i_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 549 */
+    /* type PARROT_INLINE_OP, */
+    "div",
+    "div_i_ic_i",
+    "Parrot_div_i_ic_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 550 */
+    /* type PARROT_INLINE_OP, */
+    "div",
+    "div_i_i_ic",
+    "Parrot_div_i_i_ic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 551 */
+    /* type PARROT_INLINE_OP, */
+    "div",
+    "div_i_ic_ic",
+    "Parrot_div_i_ic_ic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 552 */
+    /* type PARROT_INLINE_OP, */
+    "div",
+    "div_n_n_n",
+    "Parrot_div_n_n_n",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 553 */
+    /* type PARROT_INLINE_OP, */
+    "div",
+    "div_n_nc_n",
+    "Parrot_div_n_nc_n",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 554 */
+    /* type PARROT_INLINE_OP, */
+    "div",
+    "div_n_n_nc",
+    "Parrot_div_n_n_nc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_NC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 555 */
+    /* type PARROT_INLINE_OP, */
+    "div",
+    "div_n_nc_nc",
+    "Parrot_div_n_nc_nc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_NC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 556 */
+    /* type PARROT_INLINE_OP, */
+    "div",
+    "div_p_p_p",
+    "Parrot_div_p_p_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 557 */
+    /* type PARROT_INLINE_OP, */
+    "div",
+    "div_p_p_i",
+    "Parrot_div_p_p_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 558 */
+    /* type PARROT_INLINE_OP, */
+    "div",
+    "div_p_p_ic",
+    "Parrot_div_p_p_ic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 559 */
+    /* type PARROT_INLINE_OP, */
+    "div",
+    "div_p_p_n",
+    "Parrot_div_p_p_n",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_N },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 560 */
+    /* type PARROT_INLINE_OP, */
+    "div",
+    "div_p_p_nc",
+    "Parrot_div_p_p_nc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_NC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 561 */
+    /* type PARROT_INLINE_OP, */
+    "fdiv",
+    "fdiv_i_i",
+    "Parrot_fdiv_i_i",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 562 */
+    /* type PARROT_INLINE_OP, */
+    "fdiv",
+    "fdiv_i_ic",
+    "Parrot_fdiv_i_ic",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 563 */
+    /* type PARROT_INLINE_OP, */
+    "fdiv",
+    "fdiv_n_n",
+    "Parrot_fdiv_n_n",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 564 */
+    /* type PARROT_INLINE_OP, */
+    "fdiv",
+    "fdiv_n_nc",
+    "Parrot_fdiv_n_nc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_N, PARROT_ARG_NC },
+    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 565 */
+    /* type PARROT_INLINE_OP, */
+    "fdiv",
+    "fdiv_p_p",
+    "Parrot_fdiv_p_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 566 */
+    /* type PARROT_INLINE_OP, */
+    "fdiv",
+    "fdiv_p_i",
+    "Parrot_fdiv_p_i",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_I },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 567 */
+    /* type PARROT_INLINE_OP, */
+    "fdiv",
+    "fdiv_p_ic",
+    "Parrot_fdiv_p_ic",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 568 */
+    /* type PARROT_INLINE_OP, */
+    "fdiv",
+    "fdiv_p_n",
+    "Parrot_fdiv_p_n",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_N },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 569 */
+    /* type PARROT_INLINE_OP, */
+    "fdiv",
+    "fdiv_p_nc",
+    "Parrot_fdiv_p_nc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_NC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 570 */
+    /* type PARROT_INLINE_OP, */
+    "fdiv",
+    "fdiv_i_i_i",
+    "Parrot_fdiv_i_i_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 571 */
+    /* type PARROT_INLINE_OP, */
+    "fdiv",
+    "fdiv_i_ic_i",
+    "Parrot_fdiv_i_ic_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 572 */
+    /* type PARROT_INLINE_OP, */
+    "fdiv",
+    "fdiv_i_i_ic",
+    "Parrot_fdiv_i_i_ic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 573 */
+    /* type PARROT_INLINE_OP, */
+    "fdiv",
+    "fdiv_n_n_n",
+    "Parrot_fdiv_n_n_n",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 574 */
+    /* type PARROT_INLINE_OP, */
+    "fdiv",
+    "fdiv_n_nc_n",
+    "Parrot_fdiv_n_nc_n",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 575 */
+    /* type PARROT_INLINE_OP, */
+    "fdiv",
+    "fdiv_n_n_nc",
+    "Parrot_fdiv_n_n_nc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_NC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 576 */
+    /* type PARROT_INLINE_OP, */
+    "fdiv",
+    "fdiv_p_p_p",
+    "Parrot_fdiv_p_p_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 577 */
+    /* type PARROT_INLINE_OP, */
+    "fdiv",
+    "fdiv_p_p_i",
+    "Parrot_fdiv_p_p_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 578 */
+    /* type PARROT_INLINE_OP, */
+    "fdiv",
+    "fdiv_p_p_ic",
+    "Parrot_fdiv_p_p_ic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 579 */
+    /* type PARROT_INLINE_OP, */
+    "fdiv",
+    "fdiv_p_p_n",
+    "Parrot_fdiv_p_p_n",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_N },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 580 */
+    /* type PARROT_INLINE_OP, */
+    "fdiv",
+    "fdiv_p_p_nc",
+    "Parrot_fdiv_p_p_nc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_NC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 581 */
+    /* type PARROT_INLINE_OP, */
+    "ceil",
+    "ceil_n",
+    "Parrot_ceil_n",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_N },
+    { PARROT_ARGDIR_INOUT },
+    { 0 }
+  },
+  { /* 582 */
+    /* type PARROT_INLINE_OP, */
+    "ceil",
+    "ceil_i_n",
+    "Parrot_ceil_i_n",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 583 */
+    /* type PARROT_INLINE_OP, */
+    "ceil",
+    "ceil_n_n",
+    "Parrot_ceil_n_n",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 584 */
+    /* type PARROT_INLINE_OP, */
+    "floor",
+    "floor_n",
+    "Parrot_floor_n",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_N },
+    { PARROT_ARGDIR_INOUT },
+    { 0 }
+  },
+  { /* 585 */
+    /* type PARROT_INLINE_OP, */
+    "floor",
+    "floor_i_n",
+    "Parrot_floor_i_n",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 586 */
+    /* type PARROT_INLINE_OP, */
+    "floor",
+    "floor_n_n",
+    "Parrot_floor_n_n",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 587 */
+    /* type PARROT_INLINE_OP, */
+    "inc",
+    "inc_i",
+    "Parrot_inc_i",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_I },
+    { PARROT_ARGDIR_INOUT },
+    { 0 }
+  },
+  { /* 588 */
+    /* type PARROT_INLINE_OP, */
+    "inc",
+    "inc_n",
+    "Parrot_inc_n",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_N },
+    { PARROT_ARGDIR_INOUT },
+    { 0 }
+  },
+  { /* 589 */
+    /* type PARROT_INLINE_OP, */
+    "inc",
+    "inc_p",
+    "Parrot_inc_p",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_P },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 590 */
+    /* type PARROT_FUNCTION_OP, */
+    "mod",
+    "mod_i_i",
+    "Parrot_mod_i_i",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 591 */
+    /* type PARROT_FUNCTION_OP, */
+    "mod",
+    "mod_i_ic",
+    "Parrot_mod_i_ic",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 592 */
+    /* type PARROT_FUNCTION_OP, */
+    "mod",
+    "mod_n_n",
+    "Parrot_mod_n_n",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 593 */
+    /* type PARROT_FUNCTION_OP, */
+    "mod",
+    "mod_n_nc",
+    "Parrot_mod_n_nc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_N, PARROT_ARG_NC },
+    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 594 */
+    /* type PARROT_INLINE_OP, */
+    "mod",
+    "mod_p_p",
+    "Parrot_mod_p_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 595 */
+    /* type PARROT_INLINE_OP, */
+    "mod",
+    "mod_p_i",
+    "Parrot_mod_p_i",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_I },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 596 */
+    /* type PARROT_INLINE_OP, */
+    "mod",
+    "mod_p_ic",
+    "Parrot_mod_p_ic",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 597 */
+    /* type PARROT_INLINE_OP, */
+    "mod",
+    "mod_p_n",
+    "Parrot_mod_p_n",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_N },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 598 */
+    /* type PARROT_INLINE_OP, */
+    "mod",
+    "mod_p_nc",
+    "Parrot_mod_p_nc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_NC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 599 */
+    /* type PARROT_FUNCTION_OP, */
+    "mod",
+    "mod_i_i_i",
+    "Parrot_mod_i_i_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 600 */
+    /* type PARROT_FUNCTION_OP, */
+    "mod",
+    "mod_i_ic_i",
+    "Parrot_mod_i_ic_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 601 */
+    /* type PARROT_FUNCTION_OP, */
+    "mod",
+    "mod_i_i_ic",
+    "Parrot_mod_i_i_ic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 602 */
+    /* type PARROT_FUNCTION_OP, */
+    "mod",
+    "mod_n_n_n",
+    "Parrot_mod_n_n_n",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 603 */
+    /* type PARROT_FUNCTION_OP, */
+    "mod",
+    "mod_n_nc_n",
+    "Parrot_mod_n_nc_n",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 604 */
+    /* type PARROT_FUNCTION_OP, */
+    "mod",
+    "mod_n_n_nc",
+    "Parrot_mod_n_n_nc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_NC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 605 */
+    /* type PARROT_INLINE_OP, */
+    "mod",
+    "mod_p_p_p",
+    "Parrot_mod_p_p_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 606 */
+    /* type PARROT_INLINE_OP, */
+    "mod",
+    "mod_p_p_i",
+    "Parrot_mod_p_p_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 607 */
+    /* type PARROT_INLINE_OP, */
+    "mod",
+    "mod_p_p_ic",
+    "Parrot_mod_p_p_ic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 608 */
+    /* type PARROT_INLINE_OP, */
+    "mod",
+    "mod_p_p_n",
+    "Parrot_mod_p_p_n",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_N },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 609 */
+    /* type PARROT_INLINE_OP, */
+    "mod",
+    "mod_p_p_nc",
+    "Parrot_mod_p_p_nc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_NC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 610 */
+    /* type PARROT_INLINE_OP, */
+    "mul",
+    "mul_i_i",
+    "Parrot_mul_i_i",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 611 */
+    /* type PARROT_INLINE_OP, */
+    "mul",
+    "mul_i_ic",
+    "Parrot_mul_i_ic",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 612 */
+    /* type PARROT_INLINE_OP, */
+    "mul",
+    "mul_n_n",
+    "Parrot_mul_n_n",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 613 */
+    /* type PARROT_INLINE_OP, */
+    "mul",
+    "mul_n_nc",
+    "Parrot_mul_n_nc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_N, PARROT_ARG_NC },
+    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 614 */
+    /* type PARROT_INLINE_OP, */
+    "mul",
+    "mul_p_p",
+    "Parrot_mul_p_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 615 */
+    /* type PARROT_INLINE_OP, */
+    "mul",
+    "mul_p_i",
+    "Parrot_mul_p_i",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_I },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 616 */
+    /* type PARROT_INLINE_OP, */
+    "mul",
+    "mul_p_ic",
+    "Parrot_mul_p_ic",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 617 */
+    /* type PARROT_INLINE_OP, */
+    "mul",
+    "mul_p_n",
+    "Parrot_mul_p_n",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_N },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 618 */
+    /* type PARROT_INLINE_OP, */
+    "mul",
+    "mul_p_nc",
+    "Parrot_mul_p_nc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_NC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 619 */
+    /* type PARROT_INLINE_OP, */
+    "mul",
+    "mul_i_i_i",
+    "Parrot_mul_i_i_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 620 */
+    /* type PARROT_INLINE_OP, */
+    "mul",
+    "mul_i_ic_i",
+    "Parrot_mul_i_ic_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 621 */
+    /* type PARROT_INLINE_OP, */
+    "mul",
+    "mul_i_i_ic",
+    "Parrot_mul_i_i_ic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 622 */
+    /* type PARROT_INLINE_OP, */
+    "mul",
+    "mul_n_n_n",
+    "Parrot_mul_n_n_n",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 623 */
+    /* type PARROT_INLINE_OP, */
+    "mul",
+    "mul_n_nc_n",
+    "Parrot_mul_n_nc_n",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 624 */
+    /* type PARROT_INLINE_OP, */
+    "mul",
+    "mul_n_n_nc",
+    "Parrot_mul_n_n_nc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_NC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 625 */
+    /* type PARROT_INLINE_OP, */
+    "mul",
+    "mul_p_p_p",
+    "Parrot_mul_p_p_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 626 */
+    /* type PARROT_INLINE_OP, */
+    "mul",
+    "mul_p_p_i",
+    "Parrot_mul_p_p_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 627 */
+    /* type PARROT_INLINE_OP, */
+    "mul",
+    "mul_p_p_ic",
+    "Parrot_mul_p_p_ic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 628 */
+    /* type PARROT_INLINE_OP, */
+    "mul",
+    "mul_p_p_n",
+    "Parrot_mul_p_p_n",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_N },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 629 */
+    /* type PARROT_INLINE_OP, */
+    "mul",
+    "mul_p_p_nc",
+    "Parrot_mul_p_p_nc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_NC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 630 */
+    /* type PARROT_INLINE_OP, */
+    "neg",
+    "neg_i",
+    "Parrot_neg_i",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_I },
+    { PARROT_ARGDIR_INOUT },
+    { 0 }
+  },
+  { /* 631 */
+    /* type PARROT_INLINE_OP, */
+    "neg",
+    "neg_n",
+    "Parrot_neg_n",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_N },
+    { PARROT_ARGDIR_INOUT },
+    { 0 }
+  },
+  { /* 632 */
+    /* type PARROT_INLINE_OP, */
+    "neg",
+    "neg_p",
+    "Parrot_neg_p",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_P },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 633 */
+    /* type PARROT_INLINE_OP, */
+    "neg",
+    "neg_i_i",
+    "Parrot_neg_i_i",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 634 */
+    /* type PARROT_INLINE_OP, */
+    "neg",
+    "neg_n_n",
+    "Parrot_neg_n_n",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 635 */
+    /* type PARROT_INLINE_OP, */
+    "neg",
+    "neg_p_p",
+    "Parrot_neg_p_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 636 */
+    /* type PARROT_INLINE_OP, */
+    "pow",
+    "pow_n_n_n",
+    "Parrot_pow_n_n_n",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 637 */
+    /* type PARROT_INLINE_OP, */
+    "pow",
+    "pow_n_nc_n",
+    "Parrot_pow_n_nc_n",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 638 */
+    /* type PARROT_INLINE_OP, */
+    "pow",
+    "pow_n_n_nc",
+    "Parrot_pow_n_n_nc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_NC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 639 */
+    /* type PARROT_INLINE_OP, */
+    "pow",
+    "pow_p_p_p",
+    "Parrot_pow_p_p_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 640 */
+    /* type PARROT_INLINE_OP, */
+    "pow",
+    "pow_p_p_i",
+    "Parrot_pow_p_p_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 641 */
+    /* type PARROT_INLINE_OP, */
+    "pow",
+    "pow_p_p_ic",
+    "Parrot_pow_p_p_ic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 642 */
+    /* type PARROT_INLINE_OP, */
+    "pow",
+    "pow_p_p_n",
+    "Parrot_pow_p_p_n",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_N },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 643 */
+    /* type PARROT_INLINE_OP, */
+    "pow",
+    "pow_p_p_nc",
+    "Parrot_pow_p_p_nc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_NC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 644 */
+    /* type PARROT_INLINE_OP, */
+    "pow",
+    "pow_n_n_i",
+    "Parrot_pow_n_n_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 645 */
+    /* type PARROT_INLINE_OP, */
+    "pow",
+    "pow_n_nc_i",
+    "Parrot_pow_n_nc_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 646 */
+    /* type PARROT_INLINE_OP, */
+    "pow",
+    "pow_n_n_ic",
+    "Parrot_pow_n_n_ic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 647 */
+    /* type PARROT_INLINE_OP, */
+    "pow",
+    "pow_n_nc_ic",
+    "Parrot_pow_n_nc_ic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 648 */
+    /* type PARROT_INLINE_OP, */
+    "sub",
+    "sub_i_i",
+    "Parrot_sub_i_i",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 649 */
+    /* type PARROT_INLINE_OP, */
+    "sub",
+    "sub_i_ic",
+    "Parrot_sub_i_ic",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 650 */
+    /* type PARROT_INLINE_OP, */
+    "sub",
+    "sub_n_n",
+    "Parrot_sub_n_n",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 651 */
+    /* type PARROT_INLINE_OP, */
+    "sub",
+    "sub_n_nc",
+    "Parrot_sub_n_nc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_N, PARROT_ARG_NC },
+    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 652 */
+    /* type PARROT_INLINE_OP, */
+    "sub",
+    "sub_p_p",
+    "Parrot_sub_p_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 653 */
+    /* type PARROT_INLINE_OP, */
+    "sub",
+    "sub_p_i",
+    "Parrot_sub_p_i",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_I },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 654 */
+    /* type PARROT_INLINE_OP, */
+    "sub",
+    "sub_p_ic",
+    "Parrot_sub_p_ic",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 655 */
+    /* type PARROT_INLINE_OP, */
+    "sub",
+    "sub_p_n",
+    "Parrot_sub_p_n",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_N },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 656 */
+    /* type PARROT_INLINE_OP, */
+    "sub",
+    "sub_p_nc",
+    "Parrot_sub_p_nc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_NC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 657 */
+    /* type PARROT_INLINE_OP, */
+    "sub",
+    "sub_i_i_i",
+    "Parrot_sub_i_i_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 658 */
+    /* type PARROT_INLINE_OP, */
+    "sub",
+    "sub_i_ic_i",
+    "Parrot_sub_i_ic_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 659 */
+    /* type PARROT_INLINE_OP, */
+    "sub",
+    "sub_i_i_ic",
+    "Parrot_sub_i_i_ic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 660 */
+    /* type PARROT_INLINE_OP, */
+    "sub",
+    "sub_n_n_n",
+    "Parrot_sub_n_n_n",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 661 */
+    /* type PARROT_INLINE_OP, */
+    "sub",
+    "sub_n_nc_n",
+    "Parrot_sub_n_nc_n",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 662 */
+    /* type PARROT_INLINE_OP, */
+    "sub",
+    "sub_n_n_nc",
+    "Parrot_sub_n_n_nc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_NC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 663 */
+    /* type PARROT_INLINE_OP, */
+    "sub",
+    "sub_p_p_p",
+    "Parrot_sub_p_p_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 664 */
+    /* type PARROT_INLINE_OP, */
+    "sub",
+    "sub_p_p_i",
+    "Parrot_sub_p_p_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 665 */
+    /* type PARROT_INLINE_OP, */
+    "sub",
+    "sub_p_p_ic",
+    "Parrot_sub_p_p_ic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 666 */
+    /* type PARROT_INLINE_OP, */
+    "sub",
+    "sub_p_p_n",
+    "Parrot_sub_p_p_n",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_N },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 667 */
+    /* type PARROT_INLINE_OP, */
+    "sub",
+    "sub_p_p_nc",
+    "Parrot_sub_p_p_nc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_NC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 668 */
+    /* type PARROT_INLINE_OP, */
+    "sqrt",
+    "sqrt_n_n",
+    "Parrot_sqrt_n_n",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 669 */
+    /* type PARROT_INLINE_OP, */
+    "acos",
+    "acos_n_n",
+    "Parrot_acos_n_n",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 670 */
+    /* type PARROT_INLINE_OP, */
+    "asec",
+    "asec_n_n",
+    "Parrot_asec_n_n",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 671 */
+    /* type PARROT_INLINE_OP, */
+    "asin",
+    "asin_n_n",
+    "Parrot_asin_n_n",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 672 */
+    /* type PARROT_INLINE_OP, */
+    "atan",
+    "atan_n_n",
+    "Parrot_atan_n_n",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 673 */
+    /* type PARROT_INLINE_OP, */
+    "atan",
+    "atan_n_n_n",
+    "Parrot_atan_n_n_n",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 674 */
+    /* type PARROT_INLINE_OP, */
+    "atan",
+    "atan_n_nc_n",
+    "Parrot_atan_n_nc_n",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 675 */
+    /* type PARROT_INLINE_OP, */
+    "atan",
+    "atan_n_n_nc",
+    "Parrot_atan_n_n_nc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_NC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 676 */
+    /* type PARROT_INLINE_OP, */
+    "cos",
+    "cos_n_n",
+    "Parrot_cos_n_n",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 677 */
+    /* type PARROT_INLINE_OP, */
+    "cosh",
+    "cosh_n_n",
+    "Parrot_cosh_n_n",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 678 */
+    /* type PARROT_INLINE_OP, */
+    "exp",
+    "exp_n_n",
+    "Parrot_exp_n_n",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 679 */
+    /* type PARROT_INLINE_OP, */
+    "ln",
+    "ln_n_n",
+    "Parrot_ln_n_n",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 680 */
+    /* type PARROT_INLINE_OP, */
+    "log10",
+    "log10_n_n",
+    "Parrot_log10_n_n",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 681 */
+    /* type PARROT_FUNCTION_OP, */
+    "log2",
+    "log2_n_n",
+    "Parrot_log2_n_n",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 682 */
+    /* type PARROT_INLINE_OP, */
+    "sec",
+    "sec_n_n",
+    "Parrot_sec_n_n",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 683 */
+    /* type PARROT_INLINE_OP, */
+    "sech",
+    "sech_n_n",
+    "Parrot_sech_n_n",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 684 */
+    /* type PARROT_INLINE_OP, */
+    "sin",
+    "sin_n_n",
+    "Parrot_sin_n_n",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 685 */
+    /* type PARROT_INLINE_OP, */
+    "sinh",
+    "sinh_n_n",
+    "Parrot_sinh_n_n",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 686 */
+    /* type PARROT_INLINE_OP, */
+    "tan",
+    "tan_n_n",
+    "Parrot_tan_n_n",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 687 */
+    /* type PARROT_INLINE_OP, */
+    "tanh",
+    "tanh_n_n",
+    "Parrot_tanh_n_n",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 688 */
+    /* type PARROT_FUNCTION_OP, */
+    "callmethodcc",
+    "callmethodcc_p_s",
+    "Parrot_callmethodcc_p_s",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 689 */
+    /* type PARROT_FUNCTION_OP, */
+    "callmethodcc",
+    "callmethodcc_p_sc",
+    "Parrot_callmethodcc_p_sc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 690 */
+    /* type PARROT_FUNCTION_OP, */
+    "callmethodcc",
+    "callmethodcc_p_p",
+    "Parrot_callmethodcc_p_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 691 */
+    /* type PARROT_FUNCTION_OP, */
+    "callmethod",
+    "callmethod_p_s_p",
+    "Parrot_callmethod_p_s_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 692 */
+    /* type PARROT_FUNCTION_OP, */
+    "callmethod",
+    "callmethod_p_sc_p",
+    "Parrot_callmethod_p_sc_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 693 */
+    /* type PARROT_FUNCTION_OP, */
+    "callmethod",
+    "callmethod_p_p_p",
+    "Parrot_callmethod_p_p_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 694 */
+    /* type PARROT_FUNCTION_OP, */
+    "tailcallmethod",
+    "tailcallmethod_p_s",
+    "Parrot_tailcallmethod_p_s",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 695 */
+    /* type PARROT_FUNCTION_OP, */
+    "tailcallmethod",
+    "tailcallmethod_p_sc",
+    "Parrot_tailcallmethod_p_sc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 696 */
+    /* type PARROT_FUNCTION_OP, */
+    "tailcallmethod",
+    "tailcallmethod_p_p",
+    "Parrot_tailcallmethod_p_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 697 */
+    /* type PARROT_INLINE_OP, */
+    "addmethod",
+    "addmethod_p_s_p",
+    "Parrot_addmethod_p_s_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 698 */
+    /* type PARROT_INLINE_OP, */
+    "addmethod",
+    "addmethod_p_sc_p",
+    "Parrot_addmethod_p_sc_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 699 */
+    /* type PARROT_INLINE_OP, */
+    "can",
+    "can_i_p_s",
+    "Parrot_can_i_p_s",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 700 */
+    /* type PARROT_INLINE_OP, */
+    "can",
+    "can_i_p_sc",
+    "Parrot_can_i_p_sc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 701 */
+    /* type PARROT_INLINE_OP, */
+    "does",
+    "does_i_p_s",
+    "Parrot_does_i_p_s",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 702 */
+    /* type PARROT_INLINE_OP, */
+    "does",
+    "does_i_p_sc",
+    "Parrot_does_i_p_sc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 703 */
+    /* type PARROT_INLINE_OP, */
+    "does",
+    "does_i_p_p",
+    "Parrot_does_i_p_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 704 */
+    /* type PARROT_INLINE_OP, */
+    "does",
+    "does_i_p_pc",
+    "Parrot_does_i_p_pc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_PC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 705 */
+    /* type PARROT_INLINE_OP, */
+    "isa",
+    "isa_i_p_s",
+    "Parrot_isa_i_p_s",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 706 */
+    /* type PARROT_INLINE_OP, */
+    "isa",
+    "isa_i_p_sc",
+    "Parrot_isa_i_p_sc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 707 */
+    /* type PARROT_INLINE_OP, */
+    "isa",
+    "isa_i_p_p",
+    "Parrot_isa_i_p_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 708 */
+    /* type PARROT_INLINE_OP, */
+    "isa",
+    "isa_i_p_pc",
+    "Parrot_isa_i_p_pc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_PC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 709 */
+    /* type PARROT_INLINE_OP, */
+    "newclass",
+    "newclass_p_s",
+    "Parrot_newclass_p_s",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 710 */
+    /* type PARROT_INLINE_OP, */
+    "newclass",
+    "newclass_p_sc",
+    "Parrot_newclass_p_sc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 711 */
+    /* type PARROT_INLINE_OP, */
+    "newclass",
+    "newclass_p_p",
+    "Parrot_newclass_p_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 712 */
+    /* type PARROT_INLINE_OP, */
+    "newclass",
+    "newclass_p_pc",
+    "Parrot_newclass_p_pc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_PC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 713 */
+    /* type PARROT_INLINE_OP, */
+    "subclass",
+    "subclass_p_p",
+    "Parrot_subclass_p_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 714 */
+    /* type PARROT_INLINE_OP, */
+    "subclass",
+    "subclass_p_pc",
+    "Parrot_subclass_p_pc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_PC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 715 */
+    /* type PARROT_INLINE_OP, */
+    "subclass",
+    "subclass_p_p_s",
+    "Parrot_subclass_p_p_s",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 716 */
+    /* type PARROT_INLINE_OP, */
+    "subclass",
+    "subclass_p_pc_s",
+    "Parrot_subclass_p_pc_s",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 717 */
+    /* type PARROT_INLINE_OP, */
+    "subclass",
+    "subclass_p_p_sc",
+    "Parrot_subclass_p_p_sc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 718 */
+    /* type PARROT_INLINE_OP, */
+    "subclass",
+    "subclass_p_pc_sc",
+    "Parrot_subclass_p_pc_sc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 719 */
+    /* type PARROT_INLINE_OP, */
+    "subclass",
+    "subclass_p_p_p",
+    "Parrot_subclass_p_p_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 720 */
+    /* type PARROT_INLINE_OP, */
+    "subclass",
+    "subclass_p_pc_p",
+    "Parrot_subclass_p_pc_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 721 */
+    /* type PARROT_INLINE_OP, */
+    "subclass",
+    "subclass_p_p_pc",
+    "Parrot_subclass_p_p_pc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_PC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 722 */
+    /* type PARROT_INLINE_OP, */
+    "subclass",
+    "subclass_p_pc_pc",
+    "Parrot_subclass_p_pc_pc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_PC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 723 */
+    /* type PARROT_FUNCTION_OP, */
+    "subclass",
+    "subclass_p_s",
+    "Parrot_subclass_p_s",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 724 */
+    /* type PARROT_FUNCTION_OP, */
+    "subclass",
+    "subclass_p_sc",
+    "Parrot_subclass_p_sc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 725 */
+    /* type PARROT_FUNCTION_OP, */
+    "subclass",
+    "subclass_p_s_s",
+    "Parrot_subclass_p_s_s",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 726 */
+    /* type PARROT_FUNCTION_OP, */
+    "subclass",
+    "subclass_p_sc_s",
+    "Parrot_subclass_p_sc_s",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 727 */
+    /* type PARROT_FUNCTION_OP, */
+    "subclass",
+    "subclass_p_s_sc",
+    "Parrot_subclass_p_s_sc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 728 */
+    /* type PARROT_FUNCTION_OP, */
+    "subclass",
+    "subclass_p_sc_sc",
+    "Parrot_subclass_p_sc_sc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 729 */
+    /* type PARROT_FUNCTION_OP, */
+    "subclass",
+    "subclass_p_s_p",
+    "Parrot_subclass_p_s_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 730 */
+    /* type PARROT_FUNCTION_OP, */
+    "subclass",
+    "subclass_p_sc_p",
+    "Parrot_subclass_p_sc_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 731 */
+    /* type PARROT_FUNCTION_OP, */
+    "subclass",
+    "subclass_p_s_pc",
+    "Parrot_subclass_p_s_pc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_PC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 732 */
+    /* type PARROT_FUNCTION_OP, */
+    "subclass",
+    "subclass_p_sc_pc",
+    "Parrot_subclass_p_sc_pc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_PC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 733 */
+    /* type PARROT_INLINE_OP, */
+    "get_class",
+    "get_class_p_s",
+    "Parrot_get_class_p_s",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 734 */
+    /* type PARROT_INLINE_OP, */
+    "get_class",
+    "get_class_p_sc",
+    "Parrot_get_class_p_sc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 735 */
+    /* type PARROT_INLINE_OP, */
+    "get_class",
+    "get_class_p_p",
+    "Parrot_get_class_p_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 736 */
+    /* type PARROT_INLINE_OP, */
+    "get_class",
+    "get_class_p_pc",
+    "Parrot_get_class_p_pc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_PC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 737 */
+    /* type PARROT_INLINE_OP, */
+    "class",
+    "class_p_p",
+    "Parrot_class_p_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 738 */
+    /* type PARROT_INLINE_OP, */
+    "addparent",
+    "addparent_p_p",
+    "Parrot_addparent_p_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 739 */
+    /* type PARROT_INLINE_OP, */
+    "removeparent",
+    "removeparent_p_p",
+    "Parrot_removeparent_p_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 740 */
+    /* type PARROT_INLINE_OP, */
+    "addrole",
+    "addrole_p_p",
+    "Parrot_addrole_p_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 741 */
+    /* type PARROT_INLINE_OP, */
+    "addattribute",
+    "addattribute_p_s",
+    "Parrot_addattribute_p_s",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 742 */
+    /* type PARROT_INLINE_OP, */
+    "addattribute",
+    "addattribute_p_sc",
+    "Parrot_addattribute_p_sc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 743 */
+    /* type PARROT_FUNCTION_OP, */
+    "removeattribute",
+    "removeattribute_p_s",
+    "Parrot_removeattribute_p_s",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 744 */
+    /* type PARROT_FUNCTION_OP, */
+    "removeattribute",
+    "removeattribute_p_sc",
+    "Parrot_removeattribute_p_sc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 745 */
+    /* type PARROT_INLINE_OP, */
+    "getattribute",
+    "getattribute_p_p_s",
+    "Parrot_getattribute_p_p_s",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 746 */
+    /* type PARROT_INLINE_OP, */
+    "getattribute",
+    "getattribute_p_p_sc",
+    "Parrot_getattribute_p_p_sc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 747 */
+    /* type PARROT_INLINE_OP, */
+    "getattribute",
+    "getattribute_p_p_p_s",
+    "Parrot_getattribute_p_p_p_s",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 748 */
+    /* type PARROT_INLINE_OP, */
+    "getattribute",
+    "getattribute_p_p_pc_s",
+    "Parrot_getattribute_p_p_pc_s",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 749 */
+    /* type PARROT_INLINE_OP, */
+    "getattribute",
+    "getattribute_p_p_p_sc",
+    "Parrot_getattribute_p_p_p_sc",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 750 */
+    /* type PARROT_INLINE_OP, */
+    "getattribute",
+    "getattribute_p_p_pc_sc",
+    "Parrot_getattribute_p_p_pc_sc",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 751 */
+    /* type PARROT_INLINE_OP, */
+    "setattribute",
+    "setattribute_p_s_p",
+    "Parrot_setattribute_p_s_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 752 */
+    /* type PARROT_INLINE_OP, */
+    "setattribute",
+    "setattribute_p_sc_p",
+    "Parrot_setattribute_p_sc_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 753 */
+    /* type PARROT_INLINE_OP, */
+    "setattribute",
+    "setattribute_p_p_s_p",
+    "Parrot_setattribute_p_p_s_p",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 754 */
+    /* type PARROT_INLINE_OP, */
+    "setattribute",
+    "setattribute_p_pc_s_p",
+    "Parrot_setattribute_p_pc_s_p",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 755 */
+    /* type PARROT_INLINE_OP, */
+    "setattribute",
+    "setattribute_p_p_sc_p",
+    "Parrot_setattribute_p_p_sc_p",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 756 */
+    /* type PARROT_INLINE_OP, */
+    "setattribute",
+    "setattribute_p_pc_sc_p",
+    "Parrot_setattribute_p_pc_sc_p",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 757 */
+    /* type PARROT_INLINE_OP, */
+    "inspect",
+    "inspect_p_p",
+    "Parrot_inspect_p_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 758 */
+    /* type PARROT_INLINE_OP, */
+    "inspect",
+    "inspect_p_pc",
+    "Parrot_inspect_p_pc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_PC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 759 */
+    /* type PARROT_INLINE_OP, */
+    "inspect",
+    "inspect_p_p_s",
+    "Parrot_inspect_p_p_s",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 760 */
+    /* type PARROT_INLINE_OP, */
+    "inspect",
+    "inspect_p_pc_s",
+    "Parrot_inspect_p_pc_s",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 761 */
+    /* type PARROT_INLINE_OP, */
+    "inspect",
+    "inspect_p_p_sc",
+    "Parrot_inspect_p_p_sc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 762 */
+    /* type PARROT_INLINE_OP, */
+    "inspect",
+    "inspect_p_pc_sc",
+    "Parrot_inspect_p_pc_sc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 763 */
+    /* type PARROT_FUNCTION_OP, */
+    "new",
+    "new_p_s",
+    "Parrot_new_p_s",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 764 */
+    /* type PARROT_FUNCTION_OP, */
+    "new",
+    "new_p_sc",
+    "Parrot_new_p_sc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 765 */
+    /* type PARROT_FUNCTION_OP, */
+    "new",
+    "new_p_s_p",
+    "Parrot_new_p_s_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 766 */
+    /* type PARROT_FUNCTION_OP, */
+    "new",
+    "new_p_sc_p",
+    "Parrot_new_p_sc_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 767 */
+    /* type PARROT_FUNCTION_OP, */
+    "new",
+    "new_p_s_pc",
+    "Parrot_new_p_s_pc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_PC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 768 */
+    /* type PARROT_FUNCTION_OP, */
+    "new",
+    "new_p_sc_pc",
+    "Parrot_new_p_sc_pc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_PC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 769 */
+    /* type PARROT_INLINE_OP, */
+    "new",
+    "new_p_p",
+    "Parrot_new_p_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 770 */
+    /* type PARROT_INLINE_OP, */
+    "new",
+    "new_p_pc",
+    "Parrot_new_p_pc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_PC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 771 */
+    /* type PARROT_FUNCTION_OP, */
+    "new",
+    "new_p_p_p",
+    "Parrot_new_p_p_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 772 */
+    /* type PARROT_FUNCTION_OP, */
+    "new",
+    "new_p_pc_p",
+    "Parrot_new_p_pc_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 773 */
+    /* type PARROT_FUNCTION_OP, */
+    "new",
+    "new_p_p_pc",
+    "Parrot_new_p_p_pc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_PC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 774 */
+    /* type PARROT_FUNCTION_OP, */
+    "new",
+    "new_p_pc_pc",
+    "Parrot_new_p_pc_pc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_PC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 775 */
+    /* type PARROT_FUNCTION_OP, */
+    "root_new",
+    "root_new_p_p",
+    "Parrot_root_new_p_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 776 */
+    /* type PARROT_FUNCTION_OP, */
+    "root_new",
+    "root_new_p_pc",
+    "Parrot_root_new_p_pc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_PC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 777 */
+    /* type PARROT_FUNCTION_OP, */
+    "root_new",
+    "root_new_p_p_p",
+    "Parrot_root_new_p_p_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 778 */
+    /* type PARROT_FUNCTION_OP, */
+    "root_new",
+    "root_new_p_pc_p",
+    "Parrot_root_new_p_pc_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 779 */
+    /* type PARROT_FUNCTION_OP, */
+    "root_new",
+    "root_new_p_p_pc",
+    "Parrot_root_new_p_p_pc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_PC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 780 */
+    /* type PARROT_FUNCTION_OP, */
+    "root_new",
+    "root_new_p_pc_pc",
+    "Parrot_root_new_p_pc_pc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_PC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 781 */
+    /* type PARROT_INLINE_OP, */
+    "typeof",
+    "typeof_s_p",
+    "Parrot_typeof_s_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_S, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 782 */
+    /* type PARROT_INLINE_OP, */
+    "typeof",
+    "typeof_p_p",
+    "Parrot_typeof_p_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 783 */
+    /* type PARROT_FUNCTION_OP, */
+    "get_repr",
+    "get_repr_s_p",
+    "Parrot_get_repr_s_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_S, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 784 */
+    /* type PARROT_FUNCTION_OP, */
+    "find_method",
+    "find_method_p_p_s",
+    "Parrot_find_method_p_p_s",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 785 */
+    /* type PARROT_FUNCTION_OP, */
+    "find_method",
+    "find_method_p_p_sc",
+    "Parrot_find_method_p_p_sc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 786 */
+    /* type PARROT_INLINE_OP, */
+    "defined",
+    "defined_i_p",
+    "Parrot_defined_i_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 787 */
+    /* type PARROT_INLINE_OP, */
+    "defined",
+    "defined_i_p_ki",
+    "Parrot_defined_i_p_ki",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_KI },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 788 */
+    /* type PARROT_INLINE_OP, */
+    "defined",
+    "defined_i_p_kic",
+    "Parrot_defined_i_p_kic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_KIC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 789 */
+    /* type PARROT_INLINE_OP, */
+    "defined",
+    "defined_i_p_k",
+    "Parrot_defined_i_p_k",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_K },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 790 */
+    /* type PARROT_INLINE_OP, */
+    "defined",
+    "defined_i_p_kc",
+    "Parrot_defined_i_p_kc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_KC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 791 */
+    /* type PARROT_INLINE_OP, */
+    "exists",
+    "exists_i_p_ki",
+    "Parrot_exists_i_p_ki",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_KI },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 792 */
+    /* type PARROT_INLINE_OP, */
+    "exists",
+    "exists_i_p_kic",
+    "Parrot_exists_i_p_kic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_KIC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 793 */
+    /* type PARROT_INLINE_OP, */
+    "exists",
+    "exists_i_p_k",
+    "Parrot_exists_i_p_k",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_K },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 794 */
+    /* type PARROT_INLINE_OP, */
+    "exists",
+    "exists_i_p_kc",
+    "Parrot_exists_i_p_kc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_KC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 795 */
+    /* type PARROT_INLINE_OP, */
+    "delete",
+    "delete_p_k",
+    "Parrot_delete_p_k",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_K },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 796 */
+    /* type PARROT_INLINE_OP, */
+    "delete",
+    "delete_p_kc",
+    "Parrot_delete_p_kc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_KC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 797 */
+    /* type PARROT_INLINE_OP, */
+    "delete",
+    "delete_p_ki",
+    "Parrot_delete_p_ki",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_KI },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 798 */
+    /* type PARROT_INLINE_OP, */
+    "delete",
+    "delete_p_kic",
+    "Parrot_delete_p_kic",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_KIC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 799 */
+    /* type PARROT_INLINE_OP, */
+    "elements",
+    "elements_i_p",
+    "Parrot_elements_i_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 800 */
+    /* type PARROT_INLINE_OP, */
+    "push",
+    "push_p_i",
+    "Parrot_push_p_i",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_I },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 801 */
+    /* type PARROT_INLINE_OP, */
+    "push",
+    "push_p_ic",
+    "Parrot_push_p_ic",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 802 */
+    /* type PARROT_INLINE_OP, */
+    "push",
+    "push_p_n",
+    "Parrot_push_p_n",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_N },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 803 */
+    /* type PARROT_INLINE_OP, */
+    "push",
+    "push_p_nc",
+    "Parrot_push_p_nc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_NC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 804 */
+    /* type PARROT_INLINE_OP, */
+    "push",
+    "push_p_s",
+    "Parrot_push_p_s",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 805 */
+    /* type PARROT_INLINE_OP, */
+    "push",
+    "push_p_sc",
+    "Parrot_push_p_sc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 806 */
+    /* type PARROT_INLINE_OP, */
+    "push",
+    "push_p_p",
+    "Parrot_push_p_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 807 */
+    /* type PARROT_INLINE_OP, */
+    "pop",
+    "pop_i_p",
+    "Parrot_pop_i_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 808 */
+    /* type PARROT_INLINE_OP, */
+    "pop",
+    "pop_n_p",
+    "Parrot_pop_n_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_N, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 809 */
+    /* type PARROT_INLINE_OP, */
+    "pop",
+    "pop_s_p",
+    "Parrot_pop_s_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_S, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 810 */
+    /* type PARROT_INLINE_OP, */
+    "pop",
+    "pop_p_p",
+    "Parrot_pop_p_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 811 */
+    /* type PARROT_INLINE_OP, */
+    "unshift",
+    "unshift_p_i",
+    "Parrot_unshift_p_i",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_I },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 812 */
+    /* type PARROT_INLINE_OP, */
+    "unshift",
+    "unshift_p_ic",
+    "Parrot_unshift_p_ic",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 813 */
+    /* type PARROT_INLINE_OP, */
+    "unshift",
+    "unshift_p_n",
+    "Parrot_unshift_p_n",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_N },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 814 */
+    /* type PARROT_INLINE_OP, */
+    "unshift",
+    "unshift_p_nc",
+    "Parrot_unshift_p_nc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_NC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 815 */
+    /* type PARROT_INLINE_OP, */
+    "unshift",
+    "unshift_p_s",
+    "Parrot_unshift_p_s",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 816 */
+    /* type PARROT_INLINE_OP, */
+    "unshift",
+    "unshift_p_sc",
+    "Parrot_unshift_p_sc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 817 */
+    /* type PARROT_INLINE_OP, */
+    "unshift",
+    "unshift_p_p",
+    "Parrot_unshift_p_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 818 */
+    /* type PARROT_INLINE_OP, */
+    "shift",
+    "shift_i_p",
+    "Parrot_shift_i_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 819 */
+    /* type PARROT_INLINE_OP, */
+    "shift",
+    "shift_n_p",
+    "Parrot_shift_n_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_N, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 820 */
+    /* type PARROT_INLINE_OP, */
+    "shift",
+    "shift_s_p",
+    "Parrot_shift_s_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_S, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 821 */
+    /* type PARROT_INLINE_OP, */
+    "shift",
+    "shift_p_p",
+    "Parrot_shift_p_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 822 */
+    /* type PARROT_INLINE_OP, */
+    "splice",
+    "splice_p_p_i_i",
+    "Parrot_splice_p_p_i_i",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 823 */
+    /* type PARROT_INLINE_OP, */
+    "splice",
+    "splice_p_p_ic_i",
+    "Parrot_splice_p_p_ic_i",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 824 */
+    /* type PARROT_INLINE_OP, */
+    "splice",
+    "splice_p_p_i_ic",
+    "Parrot_splice_p_p_i_ic",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 825 */
+    /* type PARROT_INLINE_OP, */
+    "splice",
+    "splice_p_p_ic_ic",
+    "Parrot_splice_p_p_ic_ic",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 826 */
+    /* type PARROT_FUNCTION_OP, */
+    "setprop",
+    "setprop_p_s_p",
+    "Parrot_setprop_p_s_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 827 */
+    /* type PARROT_FUNCTION_OP, */
+    "setprop",
+    "setprop_p_sc_p",
+    "Parrot_setprop_p_sc_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 828 */
+    /* type PARROT_FUNCTION_OP, */
+    "getprop",
+    "getprop_p_s_p",
+    "Parrot_getprop_p_s_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 829 */
+    /* type PARROT_FUNCTION_OP, */
+    "getprop",
+    "getprop_p_sc_p",
+    "Parrot_getprop_p_sc_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 830 */
+    /* type PARROT_FUNCTION_OP, */
+    "delprop",
+    "delprop_p_s",
+    "Parrot_delprop_p_s",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 831 */
+    /* type PARROT_FUNCTION_OP, */
+    "delprop",
+    "delprop_p_sc",
+    "Parrot_delprop_p_sc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 832 */
+    /* type PARROT_FUNCTION_OP, */
+    "prophash",
+    "prophash_p_p",
+    "Parrot_prophash_p_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 833 */
+    /* type PARROT_FUNCTION_OP, */
+    "freeze",
+    "freeze_s_p",
+    "Parrot_freeze_s_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_S, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 834 */
+    /* type PARROT_FUNCTION_OP, */
+    "thaw",
+    "thaw_p_s",
+    "Parrot_thaw_p_s",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 835 */
+    /* type PARROT_FUNCTION_OP, */
+    "thaw",
+    "thaw_p_sc",
+    "Parrot_thaw_p_sc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 836 */
+    /* type PARROT_INLINE_OP, */
+    "add_multi",
+    "add_multi_s_s_p",
+    "Parrot_add_multi_s_s_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 837 */
+    /* type PARROT_INLINE_OP, */
+    "add_multi",
+    "add_multi_sc_s_p",
+    "Parrot_add_multi_sc_s_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_SC, PARROT_ARG_S, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 838 */
+    /* type PARROT_INLINE_OP, */
+    "add_multi",
+    "add_multi_s_sc_p",
+    "Parrot_add_multi_s_sc_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 839 */
+    /* type PARROT_INLINE_OP, */
+    "add_multi",
+    "add_multi_sc_sc_p",
+    "Parrot_add_multi_sc_sc_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_SC, PARROT_ARG_SC, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 840 */
+    /* type PARROT_INLINE_OP, */
+    "find_multi",
+    "find_multi_p_s_s",
+    "Parrot_find_multi_p_s_s",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 841 */
+    /* type PARROT_INLINE_OP, */
+    "find_multi",
+    "find_multi_p_sc_s",
+    "Parrot_find_multi_p_sc_s",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 842 */
+    /* type PARROT_INLINE_OP, */
+    "find_multi",
+    "find_multi_p_s_sc",
+    "Parrot_find_multi_p_s_sc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 843 */
+    /* type PARROT_INLINE_OP, */
+    "find_multi",
+    "find_multi_p_sc_sc",
+    "Parrot_find_multi_p_sc_sc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 844 */
+    /* type PARROT_FUNCTION_OP, */
+    "register",
+    "register_p",
+    "Parrot_register_p",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_P },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 845 */
+    /* type PARROT_FUNCTION_OP, */
+    "unregister",
+    "unregister_p",
+    "Parrot_unregister_p",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_P },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 846 */
+    /* type PARROT_FUNCTION_OP, */
+    "box",
+    "box_p_i",
+    "Parrot_box_p_i",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 847 */
+    /* type PARROT_FUNCTION_OP, */
+    "box",
+    "box_p_ic",
+    "Parrot_box_p_ic",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 848 */
+    /* type PARROT_FUNCTION_OP, */
+    "box",
+    "box_p_n",
+    "Parrot_box_p_n",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 849 */
+    /* type PARROT_FUNCTION_OP, */
+    "box",
+    "box_p_nc",
+    "Parrot_box_p_nc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_NC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 850 */
+    /* type PARROT_FUNCTION_OP, */
+    "box",
+    "box_p_s",
+    "Parrot_box_p_s",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 851 */
+    /* type PARROT_FUNCTION_OP, */
+    "box",
+    "box_p_sc",
+    "Parrot_box_p_sc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 852 */
+    /* type PARROT_INLINE_OP, */
+    "iter",
+    "iter_p_p",
+    "Parrot_iter_p_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 853 */
+    /* type PARROT_INLINE_OP, */
+    "morph",
+    "morph_p_p",
+    "Parrot_morph_p_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 854 */
+    /* type PARROT_INLINE_OP, */
+    "morph",
+    "morph_p_pc",
+    "Parrot_morph_p_pc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_PC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 855 */
+    /* type PARROT_INLINE_OP, */
+    "clone",
+    "clone_s_s",
+    "Parrot_clone_s_s",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_S, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 856 */
+    /* type PARROT_INLINE_OP, */
+    "clone",
+    "clone_s_sc",
+    "Parrot_clone_s_sc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_S, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 857 */
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_i_i",
+    "Parrot_set_i_i",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 858 */
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_i_ic",
+    "Parrot_set_i_ic",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 859 */
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_i_n",
+    "Parrot_set_i_n",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 860 */
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_i_nc",
+    "Parrot_set_i_nc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_NC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 861 */
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_i_s",
+    "Parrot_set_i_s",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 862 */
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_i_sc",
+    "Parrot_set_i_sc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 863 */
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_n_n",
+    "Parrot_set_n_n",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_N, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 864 */
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_n_nc",
+    "Parrot_set_n_nc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_N, PARROT_ARG_NC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 865 */
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_n_i",
+    "Parrot_set_n_i",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_N, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 866 */
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_n_ic",
+    "Parrot_set_n_ic",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_N, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 867 */
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_n_s",
+    "Parrot_set_n_s",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_N, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 868 */
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_n_sc",
+    "Parrot_set_n_sc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_N, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 869 */
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_n_p",
+    "Parrot_set_n_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_N, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 870 */
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_s_p",
+    "Parrot_set_s_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_S, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 871 */
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_s_s",
+    "Parrot_set_s_s",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_S, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 872 */
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_s_sc",
+    "Parrot_set_s_sc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_S, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 873 */
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_s_i",
+    "Parrot_set_s_i",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_S, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 874 */
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_s_ic",
+    "Parrot_set_s_ic",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 875 */
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_s_n",
+    "Parrot_set_s_n",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_S, PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 876 */
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_s_nc",
+    "Parrot_set_s_nc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_S, PARROT_ARG_NC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 877 */
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_p_pc",
+    "Parrot_set_p_pc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_PC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 878 */
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_p_p",
+    "Parrot_set_p_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 879 */
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_p_i",
+    "Parrot_set_p_i",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_I },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 880 */
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_p_ic",
+    "Parrot_set_p_ic",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 881 */
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_p_n",
+    "Parrot_set_p_n",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_N },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 882 */
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_p_nc",
+    "Parrot_set_p_nc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_NC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 883 */
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_p_s",
+    "Parrot_set_p_s",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 884 */
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_p_sc",
+    "Parrot_set_p_sc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 885 */
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_i_p",
+    "Parrot_set_i_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 886 */
+    /* type PARROT_INLINE_OP, */
+    "assign",
+    "assign_p_p",
+    "Parrot_assign_p_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 887 */
+    /* type PARROT_INLINE_OP, */
+    "assign",
+    "assign_p_i",
+    "Parrot_assign_p_i",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_I },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 888 */
+    /* type PARROT_INLINE_OP, */
+    "assign",
+    "assign_p_ic",
+    "Parrot_assign_p_ic",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 889 */
+    /* type PARROT_INLINE_OP, */
+    "assign",
+    "assign_p_n",
+    "Parrot_assign_p_n",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_N },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 890 */
+    /* type PARROT_INLINE_OP, */
+    "assign",
+    "assign_p_nc",
+    "Parrot_assign_p_nc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_NC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 891 */
+    /* type PARROT_INLINE_OP, */
+    "assign",
+    "assign_p_s",
+    "Parrot_assign_p_s",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 892 */
+    /* type PARROT_INLINE_OP, */
+    "assign",
+    "assign_p_sc",
+    "Parrot_assign_p_sc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 893 */
+    /* type PARROT_INLINE_OP, */
+    "assign",
+    "assign_s_s",
+    "Parrot_assign_s_s",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_S, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 894 */
+    /* type PARROT_INLINE_OP, */
+    "assign",
+    "assign_s_sc",
+    "Parrot_assign_s_sc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_S, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 895 */
+    /* type PARROT_INLINE_OP, */
+    "setref",
+    "setref_p_p",
+    "Parrot_setref_p_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 896 */
+    /* type PARROT_INLINE_OP, */
+    "deref",
+    "deref_p_p",
+    "Parrot_deref_p_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 897 */
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_p_ki_i",
+    "Parrot_set_p_ki_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_KI, PARROT_ARG_I },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 898 */
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_p_kic_i",
+    "Parrot_set_p_kic_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_KIC, PARROT_ARG_I },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 899 */
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_p_ki_ic",
+    "Parrot_set_p_ki_ic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_KI, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 900 */
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_p_kic_ic",
+    "Parrot_set_p_kic_ic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_KIC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 901 */
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_p_ki_n",
+    "Parrot_set_p_ki_n",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_KI, PARROT_ARG_N },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 902 */
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_p_kic_n",
+    "Parrot_set_p_kic_n",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_KIC, PARROT_ARG_N },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 903 */
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_p_ki_nc",
+    "Parrot_set_p_ki_nc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_KI, PARROT_ARG_NC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 904 */
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_p_kic_nc",
+    "Parrot_set_p_kic_nc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_KIC, PARROT_ARG_NC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 905 */
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_p_ki_s",
+    "Parrot_set_p_ki_s",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_KI, PARROT_ARG_S },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 906 */
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_p_kic_s",
+    "Parrot_set_p_kic_s",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_KIC, PARROT_ARG_S },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 907 */
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_p_ki_sc",
+    "Parrot_set_p_ki_sc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_KI, PARROT_ARG_SC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 908 */
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_p_kic_sc",
+    "Parrot_set_p_kic_sc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_KIC, PARROT_ARG_SC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 909 */
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_p_ki_p",
+    "Parrot_set_p_ki_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_KI, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 910 */
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_p_kic_p",
+    "Parrot_set_p_kic_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_KIC, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 911 */
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_i_p_ki",
+    "Parrot_set_i_p_ki",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_KI },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 912 */
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_i_p_kic",
+    "Parrot_set_i_p_kic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_KIC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 913 */
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_n_p_ki",
+    "Parrot_set_n_p_ki",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_N, PARROT_ARG_P, PARROT_ARG_KI },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 914 */
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_n_p_kic",
+    "Parrot_set_n_p_kic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_N, PARROT_ARG_P, PARROT_ARG_KIC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 915 */
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_s_p_ki",
+    "Parrot_set_s_p_ki",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_S, PARROT_ARG_P, PARROT_ARG_KI },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 916 */
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_s_p_kic",
+    "Parrot_set_s_p_kic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_S, PARROT_ARG_P, PARROT_ARG_KIC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 917 */
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_p_p_ki",
+    "Parrot_set_p_p_ki",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_KI },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 918 */
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_p_p_kic",
+    "Parrot_set_p_p_kic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_KIC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 919 */
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_p_k_i",
+    "Parrot_set_p_k_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_K, PARROT_ARG_I },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 920 */
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_p_kc_i",
+    "Parrot_set_p_kc_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_KC, PARROT_ARG_I },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 921 */
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_p_k_ic",
+    "Parrot_set_p_k_ic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_K, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 922 */
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_p_kc_ic",
+    "Parrot_set_p_kc_ic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_KC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 923 */
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_p_k_n",
+    "Parrot_set_p_k_n",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_K, PARROT_ARG_N },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 924 */
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_p_kc_n",
+    "Parrot_set_p_kc_n",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_KC, PARROT_ARG_N },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 925 */
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_p_k_nc",
+    "Parrot_set_p_k_nc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_K, PARROT_ARG_NC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 926 */
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_p_kc_nc",
+    "Parrot_set_p_kc_nc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_KC, PARROT_ARG_NC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 927 */
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_p_k_s",
+    "Parrot_set_p_k_s",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_K, PARROT_ARG_S },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 928 */
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_p_kc_s",
+    "Parrot_set_p_kc_s",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_KC, PARROT_ARG_S },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 929 */
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_p_k_sc",
+    "Parrot_set_p_k_sc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_K, PARROT_ARG_SC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 930 */
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_p_kc_sc",
+    "Parrot_set_p_kc_sc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_KC, PARROT_ARG_SC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 931 */
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_p_k_p",
+    "Parrot_set_p_k_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_K, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 932 */
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_p_kc_p",
+    "Parrot_set_p_kc_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_KC, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 933 */
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_i_p_k",
+    "Parrot_set_i_p_k",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_K },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 934 */
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_i_p_kc",
+    "Parrot_set_i_p_kc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_KC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 935 */
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_n_p_k",
+    "Parrot_set_n_p_k",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_N, PARROT_ARG_P, PARROT_ARG_K },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 936 */
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_n_p_kc",
+    "Parrot_set_n_p_kc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_N, PARROT_ARG_P, PARROT_ARG_KC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 937 */
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_s_p_k",
+    "Parrot_set_s_p_k",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_S, PARROT_ARG_P, PARROT_ARG_K },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 938 */
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_s_p_kc",
+    "Parrot_set_s_p_kc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_S, PARROT_ARG_P, PARROT_ARG_KC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 939 */
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_p_p_k",
+    "Parrot_set_p_p_k",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_K },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 940 */
+    /* type PARROT_INLINE_OP, */
+    "set",
+    "set_p_p_kc",
+    "Parrot_set_p_p_kc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_KC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 941 */
+    /* type PARROT_INLINE_OP, */
+    "clone",
+    "clone_p_p",
+    "Parrot_clone_p_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 942 */
+    /* type PARROT_INLINE_OP, */
+    "clone",
+    "clone_p_p_p",
+    "Parrot_clone_p_p_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 943 */
+    /* type PARROT_INLINE_OP, */
+    "clone",
+    "clone_p_p_pc",
+    "Parrot_clone_p_p_pc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_PC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 944 */
+    /* type PARROT_INLINE_OP, */
+    "copy",
+    "copy_p_p",
+    "Parrot_copy_p_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 945 */
+    /* type PARROT_INLINE_OP, */
+    "null",
+    "null_s",
+    "Parrot_null_s",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT },
+    { 0 }
+  },
+  { /* 946 */
+    /* type PARROT_INLINE_OP, */
+    "null",
+    "null_i",
+    "Parrot_null_i",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT },
+    { 0 }
+  },
+  { /* 947 */
+    /* type PARROT_INLINE_OP, */
+    "null",
+    "null_p",
+    "Parrot_null_p",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT },
+    { 0 }
+  },
+  { /* 948 */
+    /* type PARROT_INLINE_OP, */
+    "null",
+    "null_n",
+    "Parrot_null_n",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT },
+    { 0 }
+  },
+  { /* 949 */
+    /* type PARROT_INLINE_OP, */
+    "ord",
+    "ord_i_s",
+    "Parrot_ord_i_s",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 950 */
+    /* type PARROT_INLINE_OP, */
+    "ord",
+    "ord_i_sc",
+    "Parrot_ord_i_sc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 951 */
+    /* type PARROT_INLINE_OP, */
+    "ord",
+    "ord_i_s_i",
+    "Parrot_ord_i_s_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 952 */
+    /* type PARROT_INLINE_OP, */
+    "ord",
+    "ord_i_sc_i",
+    "Parrot_ord_i_sc_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 953 */
+    /* type PARROT_INLINE_OP, */
+    "ord",
+    "ord_i_s_ic",
+    "Parrot_ord_i_s_ic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 954 */
+    /* type PARROT_INLINE_OP, */
+    "ord",
+    "ord_i_sc_ic",
+    "Parrot_ord_i_sc_ic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 955 */
+    /* type PARROT_INLINE_OP, */
+    "chr",
+    "chr_s_i",
+    "Parrot_chr_s_i",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_S, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 956 */
+    /* type PARROT_INLINE_OP, */
+    "chr",
+    "chr_s_ic",
+    "Parrot_chr_s_ic",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 957 */
+    /* type PARROT_INLINE_OP, */
+    "chopn",
+    "chopn_s_s_i",
+    "Parrot_chopn_s_s_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 958 */
+    /* type PARROT_INLINE_OP, */
+    "chopn",
+    "chopn_s_sc_i",
+    "Parrot_chopn_s_sc_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 959 */
+    /* type PARROT_INLINE_OP, */
+    "chopn",
+    "chopn_s_s_ic",
+    "Parrot_chopn_s_s_ic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 960 */
+    /* type PARROT_INLINE_OP, */
+    "chopn",
+    "chopn_s_sc_ic",
+    "Parrot_chopn_s_sc_ic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 961 */
+    /* type PARROT_INLINE_OP, */
+    "concat",
+    "concat_s_s",
+    "Parrot_concat_s_s",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_S, PARROT_ARG_S },
+    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 962 */
+    /* type PARROT_INLINE_OP, */
+    "concat",
+    "concat_s_sc",
+    "Parrot_concat_s_sc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_S, PARROT_ARG_SC },
+    { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 963 */
+    /* type PARROT_INLINE_OP, */
+    "concat",
+    "concat_p_p",
+    "Parrot_concat_p_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 964 */
+    /* type PARROT_INLINE_OP, */
+    "concat",
+    "concat_p_s",
+    "Parrot_concat_p_s",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 965 */
+    /* type PARROT_INLINE_OP, */
+    "concat",
+    "concat_p_sc",
+    "Parrot_concat_p_sc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 966 */
+    /* type PARROT_INLINE_OP, */
+    "concat",
+    "concat_s_s_s",
+    "Parrot_concat_s_s_s",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 967 */
+    /* type PARROT_INLINE_OP, */
+    "concat",
+    "concat_s_sc_s",
+    "Parrot_concat_s_sc_s",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 968 */
+    /* type PARROT_INLINE_OP, */
+    "concat",
+    "concat_s_s_sc",
+    "Parrot_concat_s_s_sc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 969 */
+    /* type PARROT_INLINE_OP, */
+    "concat",
+    "concat_p_p_s",
+    "Parrot_concat_p_p_s",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 970 */
+    /* type PARROT_INLINE_OP, */
+    "concat",
+    "concat_p_p_sc",
+    "Parrot_concat_p_p_sc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 971 */
+    /* type PARROT_INLINE_OP, */
+    "concat",
+    "concat_p_p_p",
+    "Parrot_concat_p_p_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 972 */
+    /* type PARROT_INLINE_OP, */
+    "repeat",
+    "repeat_s_s_i",
+    "Parrot_repeat_s_s_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 973 */
+    /* type PARROT_INLINE_OP, */
+    "repeat",
+    "repeat_s_sc_i",
+    "Parrot_repeat_s_sc_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 974 */
+    /* type PARROT_INLINE_OP, */
+    "repeat",
+    "repeat_s_s_ic",
+    "Parrot_repeat_s_s_ic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 975 */
+    /* type PARROT_INLINE_OP, */
+    "repeat",
+    "repeat_s_sc_ic",
+    "Parrot_repeat_s_sc_ic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 976 */
+    /* type PARROT_INLINE_OP, */
+    "repeat",
+    "repeat_p_p_i",
+    "Parrot_repeat_p_p_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 977 */
+    /* type PARROT_INLINE_OP, */
+    "repeat",
+    "repeat_p_p_ic",
+    "Parrot_repeat_p_p_ic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 978 */
+    /* type PARROT_INLINE_OP, */
+    "repeat",
+    "repeat_p_p_p",
+    "Parrot_repeat_p_p_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 979 */
+    /* type PARROT_INLINE_OP, */
+    "repeat",
+    "repeat_p_i",
+    "Parrot_repeat_p_i",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_I },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 980 */
+    /* type PARROT_INLINE_OP, */
+    "repeat",
+    "repeat_p_ic",
+    "Parrot_repeat_p_ic",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 981 */
+    /* type PARROT_INLINE_OP, */
+    "repeat",
+    "repeat_p_p",
+    "Parrot_repeat_p_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 982 */
+    /* type PARROT_INLINE_OP, */
+    "length",
+    "length_i_s",
+    "Parrot_length_i_s",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 983 */
+    /* type PARROT_INLINE_OP, */
+    "length",
+    "length_i_sc",
+    "Parrot_length_i_sc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 984 */
+    /* type PARROT_INLINE_OP, */
+    "bytelength",
+    "bytelength_i_s",
+    "Parrot_bytelength_i_s",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 985 */
+    /* type PARROT_INLINE_OP, */
+    "bytelength",
+    "bytelength_i_sc",
+    "Parrot_bytelength_i_sc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 986 */
+    /* type PARROT_FUNCTION_OP, */
+    "pin",
+    "pin_s",
+    "Parrot_pin_s",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_S },
+    { PARROT_ARGDIR_INOUT },
+    { 0 }
+  },
+  { /* 987 */
+    /* type PARROT_FUNCTION_OP, */
+    "unpin",
+    "unpin_s",
+    "Parrot_unpin_s",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_S },
+    { PARROT_ARGDIR_INOUT },
+    { 0 }
+  },
+  { /* 988 */
+    /* type PARROT_INLINE_OP, */
+    "substr",
+    "substr_s_s_i",
+    "Parrot_substr_s_s_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 989 */
+    /* type PARROT_INLINE_OP, */
+    "substr",
+    "substr_s_sc_i",
+    "Parrot_substr_s_sc_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 990 */
+    /* type PARROT_INLINE_OP, */
+    "substr",
+    "substr_s_s_ic",
+    "Parrot_substr_s_s_ic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 991 */
+    /* type PARROT_INLINE_OP, */
+    "substr",
+    "substr_s_sc_ic",
+    "Parrot_substr_s_sc_ic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 992 */
+    /* type PARROT_INLINE_OP, */
+    "substr",
+    "substr_s_s_i_i",
+    "Parrot_substr_s_s_i_i",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 993 */
+    /* type PARROT_INLINE_OP, */
+    "substr",
+    "substr_s_sc_i_i",
+    "Parrot_substr_s_sc_i_i",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 994 */
+    /* type PARROT_INLINE_OP, */
+    "substr",
+    "substr_s_s_ic_i",
+    "Parrot_substr_s_s_ic_i",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 995 */
+    /* type PARROT_INLINE_OP, */
+    "substr",
+    "substr_s_sc_ic_i",
+    "Parrot_substr_s_sc_ic_i",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 996 */
+    /* type PARROT_INLINE_OP, */
+    "substr",
+    "substr_s_s_i_ic",
+    "Parrot_substr_s_s_i_ic",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 997 */
+    /* type PARROT_INLINE_OP, */
+    "substr",
+    "substr_s_sc_i_ic",
+    "Parrot_substr_s_sc_i_ic",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 998 */
+    /* type PARROT_INLINE_OP, */
+    "substr",
+    "substr_s_s_ic_ic",
+    "Parrot_substr_s_s_ic_ic",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 999 */
+    /* type PARROT_INLINE_OP, */
+    "substr",
+    "substr_s_sc_ic_ic",
+    "Parrot_substr_s_sc_ic_ic",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1000 */
+    /* type PARROT_INLINE_OP, */
+    "substr",
+    "substr_s_p_i_i",
+    "Parrot_substr_s_p_i_i",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1001 */
+    /* type PARROT_INLINE_OP, */
+    "substr",
+    "substr_s_p_ic_i",
+    "Parrot_substr_s_p_ic_i",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1002 */
+    /* type PARROT_INLINE_OP, */
+    "substr",
+    "substr_s_p_i_ic",
+    "Parrot_substr_s_p_i_ic",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1003 */
+    /* type PARROT_INLINE_OP, */
+    "substr",
+    "substr_s_p_ic_ic",
+    "Parrot_substr_s_p_ic_ic",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1004 */
+    /* type PARROT_INLINE_OP, */
+    "replace",
+    "replace_s_s_i_i_s",
+    "Parrot_replace_s_s_i_i_s",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1005 */
+    /* type PARROT_INLINE_OP, */
+    "replace",
+    "replace_s_sc_i_i_s",
+    "Parrot_replace_s_sc_i_i_s",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1006 */
+    /* type PARROT_INLINE_OP, */
+    "replace",
+    "replace_s_s_ic_i_s",
+    "Parrot_replace_s_s_ic_i_s",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1007 */
+    /* type PARROT_INLINE_OP, */
+    "replace",
+    "replace_s_sc_ic_i_s",
+    "Parrot_replace_s_sc_ic_i_s",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1008 */
+    /* type PARROT_INLINE_OP, */
+    "replace",
+    "replace_s_s_i_ic_s",
+    "Parrot_replace_s_s_i_ic_s",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1009 */
+    /* type PARROT_INLINE_OP, */
+    "replace",
+    "replace_s_sc_i_ic_s",
+    "Parrot_replace_s_sc_i_ic_s",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1010 */
+    /* type PARROT_INLINE_OP, */
+    "replace",
+    "replace_s_s_ic_ic_s",
+    "Parrot_replace_s_s_ic_ic_s",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1011 */
+    /* type PARROT_INLINE_OP, */
+    "replace",
+    "replace_s_sc_ic_ic_s",
+    "Parrot_replace_s_sc_ic_ic_s",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1012 */
+    /* type PARROT_INLINE_OP, */
+    "replace",
+    "replace_s_s_i_i_sc",
+    "Parrot_replace_s_s_i_i_sc",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1013 */
+    /* type PARROT_INLINE_OP, */
+    "replace",
+    "replace_s_sc_i_i_sc",
+    "Parrot_replace_s_sc_i_i_sc",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1014 */
+    /* type PARROT_INLINE_OP, */
+    "replace",
+    "replace_s_s_ic_i_sc",
+    "Parrot_replace_s_s_ic_i_sc",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1015 */
+    /* type PARROT_INLINE_OP, */
+    "replace",
+    "replace_s_sc_ic_i_sc",
+    "Parrot_replace_s_sc_ic_i_sc",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1016 */
+    /* type PARROT_INLINE_OP, */
+    "replace",
+    "replace_s_s_i_ic_sc",
+    "Parrot_replace_s_s_i_ic_sc",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1017 */
+    /* type PARROT_INLINE_OP, */
+    "replace",
+    "replace_s_sc_i_ic_sc",
+    "Parrot_replace_s_sc_i_ic_sc",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1018 */
+    /* type PARROT_INLINE_OP, */
+    "replace",
+    "replace_s_s_ic_ic_sc",
+    "Parrot_replace_s_s_ic_ic_sc",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1019 */
+    /* type PARROT_INLINE_OP, */
+    "replace",
+    "replace_s_sc_ic_ic_sc",
+    "Parrot_replace_s_sc_ic_ic_sc",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1020 */
+    /* type PARROT_INLINE_OP, */
+    "index",
+    "index_i_s_s",
+    "Parrot_index_i_s_s",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 1021 */
+    /* type PARROT_INLINE_OP, */
+    "index",
+    "index_i_sc_s",
+    "Parrot_index_i_sc_s",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 1022 */
+    /* type PARROT_INLINE_OP, */
+    "index",
+    "index_i_s_sc",
+    "Parrot_index_i_s_sc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 1023 */
+    /* type PARROT_INLINE_OP, */
+    "index",
+    "index_i_sc_sc",
+    "Parrot_index_i_sc_sc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 1024 */
+    /* type PARROT_INLINE_OP, */
+    "index",
+    "index_i_s_s_i",
+    "Parrot_index_i_s_s_i",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1025 */
+    /* type PARROT_INLINE_OP, */
+    "index",
+    "index_i_sc_s_i",
+    "Parrot_index_i_sc_s_i",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1026 */
+    /* type PARROT_INLINE_OP, */
+    "index",
+    "index_i_s_sc_i",
+    "Parrot_index_i_s_sc_i",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1027 */
+    /* type PARROT_INLINE_OP, */
+    "index",
+    "index_i_sc_sc_i",
+    "Parrot_index_i_sc_sc_i",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1028 */
+    /* type PARROT_INLINE_OP, */
+    "index",
+    "index_i_s_s_ic",
+    "Parrot_index_i_s_s_ic",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1029 */
+    /* type PARROT_INLINE_OP, */
+    "index",
+    "index_i_sc_s_ic",
+    "Parrot_index_i_sc_s_ic",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1030 */
+    /* type PARROT_INLINE_OP, */
+    "index",
+    "index_i_s_sc_ic",
+    "Parrot_index_i_s_sc_ic",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1031 */
+    /* type PARROT_INLINE_OP, */
+    "index",
+    "index_i_sc_sc_ic",
+    "Parrot_index_i_sc_sc_ic",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1032 */
+    /* type PARROT_INLINE_OP, */
+    "sprintf",
+    "sprintf_s_s_p",
+    "Parrot_sprintf_s_s_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 1033 */
+    /* type PARROT_INLINE_OP, */
+    "sprintf",
+    "sprintf_s_sc_p",
+    "Parrot_sprintf_s_sc_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 1034 */
+    /* type PARROT_INLINE_OP, */
+    "sprintf",
+    "sprintf_p_p_p",
+    "Parrot_sprintf_p_p_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 1035 */
+    /* type PARROT_INLINE_OP, */
+    "new",
+    "new_s",
+    "Parrot_new_s",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT },
+    { 0 }
+  },
+  { /* 1036 */
+    /* type PARROT_INLINE_OP, */
+    "new",
+    "new_s_i",
+    "Parrot_new_s_i",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_S, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1037 */
+    /* type PARROT_INLINE_OP, */
+    "new",
+    "new_s_ic",
+    "Parrot_new_s_ic",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1038 */
+    /* type PARROT_INLINE_OP, */
+    "stringinfo",
+    "stringinfo_i_s_i",
+    "Parrot_stringinfo_i_s_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 1039 */
+    /* type PARROT_INLINE_OP, */
+    "stringinfo",
+    "stringinfo_i_sc_i",
+    "Parrot_stringinfo_i_sc_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 1040 */
+    /* type PARROT_INLINE_OP, */
+    "stringinfo",
+    "stringinfo_i_s_ic",
+    "Parrot_stringinfo_i_s_ic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 1041 */
+    /* type PARROT_INLINE_OP, */
+    "stringinfo",
+    "stringinfo_i_sc_ic",
+    "Parrot_stringinfo_i_sc_ic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 1042 */
+    /* type PARROT_INLINE_OP, */
+    "upcase",
+    "upcase_s_s",
+    "Parrot_upcase_s_s",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_S, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1043 */
+    /* type PARROT_INLINE_OP, */
+    "upcase",
+    "upcase_s_sc",
+    "Parrot_upcase_s_sc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_S, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1044 */
+    /* type PARROT_INLINE_OP, */
+    "downcase",
+    "downcase_s_s",
+    "Parrot_downcase_s_s",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_S, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1045 */
+    /* type PARROT_INLINE_OP, */
+    "downcase",
+    "downcase_s_sc",
+    "Parrot_downcase_s_sc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_S, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1046 */
+    /* type PARROT_INLINE_OP, */
+    "titlecase",
+    "titlecase_s_s",
+    "Parrot_titlecase_s_s",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_S, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1047 */
+    /* type PARROT_INLINE_OP, */
+    "titlecase",
+    "titlecase_s_sc",
+    "Parrot_titlecase_s_sc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_S, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1048 */
+    /* type PARROT_FUNCTION_OP, */
+    "join",
+    "join_s_s_p",
+    "Parrot_join_s_s_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 1049 */
+    /* type PARROT_FUNCTION_OP, */
+    "join",
+    "join_s_sc_p",
+    "Parrot_join_s_sc_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 1050 */
+    /* type PARROT_FUNCTION_OP, */
+    "split",
+    "split_p_s_s",
+    "Parrot_split_p_s_s",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 1051 */
+    /* type PARROT_FUNCTION_OP, */
+    "split",
+    "split_p_sc_s",
+    "Parrot_split_p_sc_s",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 1052 */
+    /* type PARROT_FUNCTION_OP, */
+    "split",
+    "split_p_s_sc",
+    "Parrot_split_p_s_sc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 1053 */
+    /* type PARROT_FUNCTION_OP, */
+    "split",
+    "split_p_sc_sc",
+    "Parrot_split_p_sc_sc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 1054 */
+    /* type PARROT_FUNCTION_OP, */
+    "charset",
+    "charset_i_s",
+    "Parrot_charset_i_s",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1055 */
+    /* type PARROT_FUNCTION_OP, */
+    "charset",
+    "charset_i_sc",
+    "Parrot_charset_i_sc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1056 */
+    /* type PARROT_FUNCTION_OP, */
+    "charsetname",
+    "charsetname_s_i",
+    "Parrot_charsetname_s_i",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_S, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1057 */
+    /* type PARROT_FUNCTION_OP, */
+    "charsetname",
+    "charsetname_s_ic",
+    "Parrot_charsetname_s_ic",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1058 */
+    /* type PARROT_FUNCTION_OP, */
+    "find_charset",
+    "find_charset_i_s",
+    "Parrot_find_charset_i_s",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1059 */
+    /* type PARROT_FUNCTION_OP, */
+    "find_charset",
+    "find_charset_i_sc",
+    "Parrot_find_charset_i_sc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1060 */
+    /* type PARROT_FUNCTION_OP, */
+    "trans_charset",
+    "trans_charset_s_s_i",
+    "Parrot_trans_charset_s_s_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 1061 */
+    /* type PARROT_FUNCTION_OP, */
+    "trans_charset",
+    "trans_charset_s_sc_i",
+    "Parrot_trans_charset_s_sc_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 1062 */
+    /* type PARROT_FUNCTION_OP, */
+    "trans_charset",
+    "trans_charset_s_s_ic",
+    "Parrot_trans_charset_s_s_ic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 1063 */
+    /* type PARROT_FUNCTION_OP, */
+    "trans_charset",
+    "trans_charset_s_sc_ic",
+    "Parrot_trans_charset_s_sc_ic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 1064 */
+    /* type PARROT_FUNCTION_OP, */
+    "encoding",
+    "encoding_i_s",
+    "Parrot_encoding_i_s",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1065 */
+    /* type PARROT_FUNCTION_OP, */
+    "encoding",
+    "encoding_i_sc",
+    "Parrot_encoding_i_sc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1066 */
+    /* type PARROT_FUNCTION_OP, */
+    "encodingname",
+    "encodingname_s_i",
+    "Parrot_encodingname_s_i",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_S, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1067 */
+    /* type PARROT_FUNCTION_OP, */
+    "encodingname",
+    "encodingname_s_ic",
+    "Parrot_encodingname_s_ic",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1068 */
+    /* type PARROT_FUNCTION_OP, */
+    "find_encoding",
+    "find_encoding_i_s",
+    "Parrot_find_encoding_i_s",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1069 */
+    /* type PARROT_FUNCTION_OP, */
+    "find_encoding",
+    "find_encoding_i_sc",
+    "Parrot_find_encoding_i_sc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1070 */
+    /* type PARROT_FUNCTION_OP, */
+    "trans_encoding",
+    "trans_encoding_s_s_i",
+    "Parrot_trans_encoding_s_s_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 1071 */
+    /* type PARROT_FUNCTION_OP, */
+    "trans_encoding",
+    "trans_encoding_s_sc_i",
+    "Parrot_trans_encoding_s_sc_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 1072 */
+    /* type PARROT_FUNCTION_OP, */
+    "trans_encoding",
+    "trans_encoding_s_s_ic",
+    "Parrot_trans_encoding_s_s_ic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 1073 */
+    /* type PARROT_FUNCTION_OP, */
+    "trans_encoding",
+    "trans_encoding_s_sc_ic",
+    "Parrot_trans_encoding_s_sc_ic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 1074 */
+    /* type PARROT_INLINE_OP, */
+    "is_cclass",
+    "is_cclass_i_i_s_i",
+    "Parrot_is_cclass_i_i_s_i",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1075 */
+    /* type PARROT_INLINE_OP, */
+    "is_cclass",
+    "is_cclass_i_ic_s_i",
+    "Parrot_is_cclass_i_ic_s_i",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1076 */
+    /* type PARROT_INLINE_OP, */
+    "is_cclass",
+    "is_cclass_i_i_sc_i",
+    "Parrot_is_cclass_i_i_sc_i",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1077 */
+    /* type PARROT_INLINE_OP, */
+    "is_cclass",
+    "is_cclass_i_ic_sc_i",
+    "Parrot_is_cclass_i_ic_sc_i",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1078 */
+    /* type PARROT_INLINE_OP, */
+    "is_cclass",
+    "is_cclass_i_i_s_ic",
+    "Parrot_is_cclass_i_i_s_ic",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1079 */
+    /* type PARROT_INLINE_OP, */
+    "is_cclass",
+    "is_cclass_i_ic_s_ic",
+    "Parrot_is_cclass_i_ic_s_ic",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1080 */
+    /* type PARROT_INLINE_OP, */
+    "is_cclass",
+    "is_cclass_i_i_sc_ic",
+    "Parrot_is_cclass_i_i_sc_ic",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1081 */
+    /* type PARROT_INLINE_OP, */
+    "is_cclass",
+    "is_cclass_i_ic_sc_ic",
+    "Parrot_is_cclass_i_ic_sc_ic",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1082 */
+    /* type PARROT_INLINE_OP, */
+    "find_cclass",
+    "find_cclass_i_i_s_i_i",
+    "Parrot_find_cclass_i_i_s_i_i",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1083 */
+    /* type PARROT_INLINE_OP, */
+    "find_cclass",
+    "find_cclass_i_ic_s_i_i",
+    "Parrot_find_cclass_i_ic_s_i_i",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1084 */
+    /* type PARROT_INLINE_OP, */
+    "find_cclass",
+    "find_cclass_i_i_sc_i_i",
+    "Parrot_find_cclass_i_i_sc_i_i",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1085 */
+    /* type PARROT_INLINE_OP, */
+    "find_cclass",
+    "find_cclass_i_ic_sc_i_i",
+    "Parrot_find_cclass_i_ic_sc_i_i",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1086 */
+    /* type PARROT_INLINE_OP, */
+    "find_cclass",
+    "find_cclass_i_i_s_ic_i",
+    "Parrot_find_cclass_i_i_s_ic_i",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1087 */
+    /* type PARROT_INLINE_OP, */
+    "find_cclass",
+    "find_cclass_i_ic_s_ic_i",
+    "Parrot_find_cclass_i_ic_s_ic_i",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1088 */
+    /* type PARROT_INLINE_OP, */
+    "find_cclass",
+    "find_cclass_i_i_sc_ic_i",
+    "Parrot_find_cclass_i_i_sc_ic_i",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1089 */
+    /* type PARROT_INLINE_OP, */
+    "find_cclass",
+    "find_cclass_i_ic_sc_ic_i",
+    "Parrot_find_cclass_i_ic_sc_ic_i",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1090 */
+    /* type PARROT_INLINE_OP, */
+    "find_cclass",
+    "find_cclass_i_i_s_i_ic",
+    "Parrot_find_cclass_i_i_s_i_ic",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1091 */
+    /* type PARROT_INLINE_OP, */
+    "find_cclass",
+    "find_cclass_i_ic_s_i_ic",
+    "Parrot_find_cclass_i_ic_s_i_ic",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1092 */
+    /* type PARROT_INLINE_OP, */
+    "find_cclass",
+    "find_cclass_i_i_sc_i_ic",
+    "Parrot_find_cclass_i_i_sc_i_ic",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1093 */
+    /* type PARROT_INLINE_OP, */
+    "find_cclass",
+    "find_cclass_i_ic_sc_i_ic",
+    "Parrot_find_cclass_i_ic_sc_i_ic",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1094 */
+    /* type PARROT_INLINE_OP, */
+    "find_cclass",
+    "find_cclass_i_i_s_ic_ic",
+    "Parrot_find_cclass_i_i_s_ic_ic",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1095 */
+    /* type PARROT_INLINE_OP, */
+    "find_cclass",
+    "find_cclass_i_ic_s_ic_ic",
+    "Parrot_find_cclass_i_ic_s_ic_ic",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1096 */
+    /* type PARROT_INLINE_OP, */
+    "find_cclass",
+    "find_cclass_i_i_sc_ic_ic",
+    "Parrot_find_cclass_i_i_sc_ic_ic",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1097 */
+    /* type PARROT_INLINE_OP, */
+    "find_cclass",
+    "find_cclass_i_ic_sc_ic_ic",
+    "Parrot_find_cclass_i_ic_sc_ic_ic",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1098 */
+    /* type PARROT_INLINE_OP, */
+    "find_not_cclass",
+    "find_not_cclass_i_i_s_i_i",
+    "Parrot_find_not_cclass_i_i_s_i_i",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1099 */
+    /* type PARROT_INLINE_OP, */
+    "find_not_cclass",
+    "find_not_cclass_i_ic_s_i_i",
+    "Parrot_find_not_cclass_i_ic_s_i_i",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1100 */
+    /* type PARROT_INLINE_OP, */
+    "find_not_cclass",
+    "find_not_cclass_i_i_sc_i_i",
+    "Parrot_find_not_cclass_i_i_sc_i_i",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1101 */
+    /* type PARROT_INLINE_OP, */
+    "find_not_cclass",
+    "find_not_cclass_i_ic_sc_i_i",
+    "Parrot_find_not_cclass_i_ic_sc_i_i",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1102 */
+    /* type PARROT_INLINE_OP, */
+    "find_not_cclass",
+    "find_not_cclass_i_i_s_ic_i",
+    "Parrot_find_not_cclass_i_i_s_ic_i",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1103 */
+    /* type PARROT_INLINE_OP, */
+    "find_not_cclass",
+    "find_not_cclass_i_ic_s_ic_i",
+    "Parrot_find_not_cclass_i_ic_s_ic_i",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1104 */
+    /* type PARROT_INLINE_OP, */
+    "find_not_cclass",
+    "find_not_cclass_i_i_sc_ic_i",
+    "Parrot_find_not_cclass_i_i_sc_ic_i",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1105 */
+    /* type PARROT_INLINE_OP, */
+    "find_not_cclass",
+    "find_not_cclass_i_ic_sc_ic_i",
+    "Parrot_find_not_cclass_i_ic_sc_ic_i",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1106 */
+    /* type PARROT_INLINE_OP, */
+    "find_not_cclass",
+    "find_not_cclass_i_i_s_i_ic",
+    "Parrot_find_not_cclass_i_i_s_i_ic",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1107 */
+    /* type PARROT_INLINE_OP, */
+    "find_not_cclass",
+    "find_not_cclass_i_ic_s_i_ic",
+    "Parrot_find_not_cclass_i_ic_s_i_ic",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1108 */
+    /* type PARROT_INLINE_OP, */
+    "find_not_cclass",
+    "find_not_cclass_i_i_sc_i_ic",
+    "Parrot_find_not_cclass_i_i_sc_i_ic",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1109 */
+    /* type PARROT_INLINE_OP, */
+    "find_not_cclass",
+    "find_not_cclass_i_ic_sc_i_ic",
+    "Parrot_find_not_cclass_i_ic_sc_i_ic",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1110 */
+    /* type PARROT_INLINE_OP, */
+    "find_not_cclass",
+    "find_not_cclass_i_i_s_ic_ic",
+    "Parrot_find_not_cclass_i_i_s_ic_ic",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1111 */
+    /* type PARROT_INLINE_OP, */
+    "find_not_cclass",
+    "find_not_cclass_i_ic_s_ic_ic",
+    "Parrot_find_not_cclass_i_ic_s_ic_ic",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1112 */
+    /* type PARROT_INLINE_OP, */
+    "find_not_cclass",
+    "find_not_cclass_i_i_sc_ic_ic",
+    "Parrot_find_not_cclass_i_i_sc_ic_ic",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1113 */
+    /* type PARROT_INLINE_OP, */
+    "find_not_cclass",
+    "find_not_cclass_i_ic_sc_ic_ic",
+    "Parrot_find_not_cclass_i_ic_sc_ic_ic",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1114 */
+    /* type PARROT_FUNCTION_OP, */
+    "escape",
+    "escape_s_s",
+    "Parrot_escape_s_s",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_S, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1115 */
+    /* type PARROT_FUNCTION_OP, */
+    "compose",
+    "compose_s_s",
+    "Parrot_compose_s_s",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_S, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1116 */
+    /* type PARROT_FUNCTION_OP, */
+    "compose",
+    "compose_s_sc",
+    "Parrot_compose_s_sc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_S, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1117 */
+    /* type PARROT_INLINE_OP, */
+    "spawnw",
+    "spawnw_i_s",
+    "Parrot_spawnw_i_s",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1118 */
+    /* type PARROT_INLINE_OP, */
+    "spawnw",
+    "spawnw_i_sc",
+    "Parrot_spawnw_i_sc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1119 */
+    /* type PARROT_INLINE_OP, */
+    "spawnw",
+    "spawnw_i_p",
+    "Parrot_spawnw_i_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1120 */
+    /* type PARROT_INLINE_OP, */
+    "err",
+    "err_i",
+    "Parrot_err_i",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT },
+    { 0 }
+  },
+  { /* 1121 */
+    /* type PARROT_FUNCTION_OP, */
+    "err",
+    "err_s",
+    "Parrot_err_s",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT },
+    { 0 }
+  },
+  { /* 1122 */
+    /* type PARROT_FUNCTION_OP, */
+    "err",
+    "err_s_i",
+    "Parrot_err_s_i",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_S, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1123 */
+    /* type PARROT_FUNCTION_OP, */
+    "err",
+    "err_s_ic",
+    "Parrot_err_s_ic",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1124 */
+    /* type PARROT_INLINE_OP, */
+    "time",
+    "time_i",
+    "Parrot_time_i",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT },
+    { 0 }
+  },
+  { /* 1125 */
+    /* type PARROT_INLINE_OP, */
+    "time",
+    "time_n",
+    "Parrot_time_n",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_N },
+    { PARROT_ARGDIR_OUT },
+    { 0 }
+  },
+  { /* 1126 */
+    /* type PARROT_FUNCTION_OP, */
+    "gmtime",
+    "gmtime_s_i",
+    "Parrot_gmtime_s_i",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_S, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1127 */
+    /* type PARROT_FUNCTION_OP, */
+    "gmtime",
+    "gmtime_s_ic",
+    "Parrot_gmtime_s_ic",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1128 */
+    /* type PARROT_FUNCTION_OP, */
+    "localtime",
+    "localtime_s_i",
+    "Parrot_localtime_s_i",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_S, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1129 */
+    /* type PARROT_FUNCTION_OP, */
+    "localtime",
+    "localtime_s_ic",
+    "Parrot_localtime_s_ic",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1130 */
+    /* type PARROT_FUNCTION_OP, */
+    "decodetime",
+    "decodetime_p_i",
+    "Parrot_decodetime_p_i",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1131 */
+    /* type PARROT_FUNCTION_OP, */
+    "decodetime",
+    "decodetime_p_ic",
+    "Parrot_decodetime_p_ic",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1132 */
+    /* type PARROT_FUNCTION_OP, */
+    "decodelocaltime",
+    "decodelocaltime_p_i",
+    "Parrot_decodelocaltime_p_i",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1133 */
+    /* type PARROT_FUNCTION_OP, */
+    "decodelocaltime",
+    "decodelocaltime_p_ic",
+    "Parrot_decodelocaltime_p_ic",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1134 */
+    /* type PARROT_INLINE_OP, */
+    "sysinfo",
+    "sysinfo_s_i",
+    "Parrot_sysinfo_s_i",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_S, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1135 */
+    /* type PARROT_INLINE_OP, */
+    "sysinfo",
+    "sysinfo_s_ic",
+    "Parrot_sysinfo_s_ic",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1136 */
+    /* type PARROT_INLINE_OP, */
+    "sysinfo",
+    "sysinfo_i_i",
+    "Parrot_sysinfo_i_i",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1137 */
+    /* type PARROT_INLINE_OP, */
+    "sysinfo",
+    "sysinfo_i_ic",
+    "Parrot_sysinfo_i_ic",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1138 */
+    /* type PARROT_INLINE_OP, */
+    "sleep",
+    "sleep_i",
+    "Parrot_sleep_i",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_I },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 1139 */
+    /* type PARROT_INLINE_OP, */
+    "sleep",
+    "sleep_ic",
+    "Parrot_sleep_ic",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 1140 */
+    /* type PARROT_INLINE_OP, */
+    "sleep",
+    "sleep_n",
+    "Parrot_sleep_n",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_N },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 1141 */
+    /* type PARROT_INLINE_OP, */
+    "sleep",
+    "sleep_nc",
+    "Parrot_sleep_nc",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_NC },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 1142 */
+    /* type PARROT_FUNCTION_OP, */
+    "store_lex",
+    "store_lex_s_p",
+    "Parrot_store_lex_s_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_S, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1143 */
+    /* type PARROT_FUNCTION_OP, */
+    "store_lex",
+    "store_lex_sc_p",
+    "Parrot_store_lex_sc_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_SC, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1144 */
+    /* type PARROT_FUNCTION_OP, */
+    "store_dynamic_lex",
+    "store_dynamic_lex_s_p",
+    "Parrot_store_dynamic_lex_s_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_S, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1145 */
+    /* type PARROT_FUNCTION_OP, */
+    "store_dynamic_lex",
+    "store_dynamic_lex_sc_p",
+    "Parrot_store_dynamic_lex_sc_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_SC, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1146 */
+    /* type PARROT_FUNCTION_OP, */
+    "find_lex",
+    "find_lex_p_s",
+    "Parrot_find_lex_p_s",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1147 */
+    /* type PARROT_FUNCTION_OP, */
+    "find_lex",
+    "find_lex_p_sc",
+    "Parrot_find_lex_p_sc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1148 */
+    /* type PARROT_FUNCTION_OP, */
+    "find_dynamic_lex",
+    "find_dynamic_lex_p_s",
+    "Parrot_find_dynamic_lex_p_s",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1149 */
+    /* type PARROT_FUNCTION_OP, */
+    "find_dynamic_lex",
+    "find_dynamic_lex_p_sc",
+    "Parrot_find_dynamic_lex_p_sc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1150 */
+    /* type PARROT_FUNCTION_OP, */
+    "find_caller_lex",
+    "find_caller_lex_p_s",
+    "Parrot_find_caller_lex_p_s",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1151 */
+    /* type PARROT_FUNCTION_OP, */
+    "find_caller_lex",
+    "find_caller_lex_p_sc",
+    "Parrot_find_caller_lex_p_sc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1152 */
+    /* type PARROT_FUNCTION_OP, */
+    "get_namespace",
+    "get_namespace_p",
+    "Parrot_get_namespace_p",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT },
+    { 0 }
+  },
+  { /* 1153 */
+    /* type PARROT_FUNCTION_OP, */
+    "get_namespace",
+    "get_namespace_p_p",
+    "Parrot_get_namespace_p_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1154 */
+    /* type PARROT_FUNCTION_OP, */
+    "get_namespace",
+    "get_namespace_p_pc",
+    "Parrot_get_namespace_p_pc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_PC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1155 */
+    /* type PARROT_FUNCTION_OP, */
+    "get_hll_namespace",
+    "get_hll_namespace_p",
+    "Parrot_get_hll_namespace_p",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT },
+    { 0 }
+  },
+  { /* 1156 */
+    /* type PARROT_FUNCTION_OP, */
+    "get_hll_namespace",
+    "get_hll_namespace_p_p",
+    "Parrot_get_hll_namespace_p_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1157 */
+    /* type PARROT_FUNCTION_OP, */
+    "get_hll_namespace",
+    "get_hll_namespace_p_pc",
+    "Parrot_get_hll_namespace_p_pc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_PC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1158 */
+    /* type PARROT_FUNCTION_OP, */
+    "get_root_namespace",
+    "get_root_namespace_p",
+    "Parrot_get_root_namespace_p",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT },
+    { 0 }
+  },
+  { /* 1159 */
+    /* type PARROT_FUNCTION_OP, */
+    "get_root_namespace",
+    "get_root_namespace_p_p",
+    "Parrot_get_root_namespace_p_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1160 */
+    /* type PARROT_FUNCTION_OP, */
+    "get_root_namespace",
+    "get_root_namespace_p_pc",
+    "Parrot_get_root_namespace_p_pc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_PC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1161 */
+    /* type PARROT_FUNCTION_OP, */
+    "get_global",
+    "get_global_p_s",
+    "Parrot_get_global_p_s",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1162 */
+    /* type PARROT_FUNCTION_OP, */
+    "get_global",
+    "get_global_p_sc",
+    "Parrot_get_global_p_sc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1163 */
+    /* type PARROT_FUNCTION_OP, */
+    "get_global",
+    "get_global_p_p_s",
+    "Parrot_get_global_p_p_s",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 1164 */
+    /* type PARROT_FUNCTION_OP, */
+    "get_global",
+    "get_global_p_pc_s",
+    "Parrot_get_global_p_pc_s",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 1165 */
+    /* type PARROT_FUNCTION_OP, */
+    "get_global",
+    "get_global_p_p_sc",
+    "Parrot_get_global_p_p_sc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 1166 */
+    /* type PARROT_FUNCTION_OP, */
+    "get_global",
+    "get_global_p_pc_sc",
+    "Parrot_get_global_p_pc_sc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 1167 */
+    /* type PARROT_FUNCTION_OP, */
+    "get_hll_global",
+    "get_hll_global_p_s",
+    "Parrot_get_hll_global_p_s",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1168 */
+    /* type PARROT_FUNCTION_OP, */
+    "get_hll_global",
+    "get_hll_global_p_sc",
+    "Parrot_get_hll_global_p_sc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1169 */
+    /* type PARROT_FUNCTION_OP, */
+    "get_hll_global",
+    "get_hll_global_p_p_s",
+    "Parrot_get_hll_global_p_p_s",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 1170 */
+    /* type PARROT_FUNCTION_OP, */
+    "get_hll_global",
+    "get_hll_global_p_pc_s",
+    "Parrot_get_hll_global_p_pc_s",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 1171 */
+    /* type PARROT_FUNCTION_OP, */
+    "get_hll_global",
+    "get_hll_global_p_p_sc",
+    "Parrot_get_hll_global_p_p_sc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 1172 */
+    /* type PARROT_FUNCTION_OP, */
+    "get_hll_global",
+    "get_hll_global_p_pc_sc",
+    "Parrot_get_hll_global_p_pc_sc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 1173 */
+    /* type PARROT_FUNCTION_OP, */
+    "get_root_global",
+    "get_root_global_p_s",
+    "Parrot_get_root_global_p_s",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1174 */
+    /* type PARROT_FUNCTION_OP, */
+    "get_root_global",
+    "get_root_global_p_sc",
+    "Parrot_get_root_global_p_sc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1175 */
+    /* type PARROT_FUNCTION_OP, */
+    "get_root_global",
+    "get_root_global_p_p_s",
+    "Parrot_get_root_global_p_p_s",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 1176 */
+    /* type PARROT_FUNCTION_OP, */
+    "get_root_global",
+    "get_root_global_p_pc_s",
+    "Parrot_get_root_global_p_pc_s",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 1177 */
+    /* type PARROT_FUNCTION_OP, */
+    "get_root_global",
+    "get_root_global_p_p_sc",
+    "Parrot_get_root_global_p_p_sc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 1178 */
+    /* type PARROT_FUNCTION_OP, */
+    "get_root_global",
+    "get_root_global_p_pc_sc",
+    "Parrot_get_root_global_p_pc_sc",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 1179 */
+    /* type PARROT_FUNCTION_OP, */
+    "set_global",
+    "set_global_s_p",
+    "Parrot_set_global_s_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_S, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1180 */
+    /* type PARROT_FUNCTION_OP, */
+    "set_global",
+    "set_global_sc_p",
+    "Parrot_set_global_sc_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_SC, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1181 */
+    /* type PARROT_FUNCTION_OP, */
+    "set_global",
+    "set_global_p_s_p",
+    "Parrot_set_global_p_s_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 1182 */
+    /* type PARROT_FUNCTION_OP, */
+    "set_global",
+    "set_global_pc_s_p",
+    "Parrot_set_global_pc_s_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_PC, PARROT_ARG_S, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 1183 */
+    /* type PARROT_FUNCTION_OP, */
+    "set_global",
+    "set_global_p_sc_p",
+    "Parrot_set_global_p_sc_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 1184 */
+    /* type PARROT_FUNCTION_OP, */
+    "set_global",
+    "set_global_pc_sc_p",
+    "Parrot_set_global_pc_sc_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_PC, PARROT_ARG_SC, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 1185 */
+    /* type PARROT_FUNCTION_OP, */
+    "set_hll_global",
+    "set_hll_global_s_p",
+    "Parrot_set_hll_global_s_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_S, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1186 */
+    /* type PARROT_FUNCTION_OP, */
+    "set_hll_global",
+    "set_hll_global_sc_p",
+    "Parrot_set_hll_global_sc_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_SC, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1187 */
+    /* type PARROT_FUNCTION_OP, */
+    "set_hll_global",
+    "set_hll_global_p_s_p",
+    "Parrot_set_hll_global_p_s_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 1188 */
+    /* type PARROT_FUNCTION_OP, */
+    "set_hll_global",
+    "set_hll_global_pc_s_p",
+    "Parrot_set_hll_global_pc_s_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_PC, PARROT_ARG_S, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 1189 */
+    /* type PARROT_FUNCTION_OP, */
+    "set_hll_global",
+    "set_hll_global_p_sc_p",
+    "Parrot_set_hll_global_p_sc_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 1190 */
+    /* type PARROT_FUNCTION_OP, */
+    "set_hll_global",
+    "set_hll_global_pc_sc_p",
+    "Parrot_set_hll_global_pc_sc_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_PC, PARROT_ARG_SC, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 1191 */
+    /* type PARROT_FUNCTION_OP, */
+    "set_root_global",
+    "set_root_global_s_p",
+    "Parrot_set_root_global_s_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_S, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1192 */
+    /* type PARROT_FUNCTION_OP, */
+    "set_root_global",
+    "set_root_global_sc_p",
+    "Parrot_set_root_global_sc_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_SC, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1193 */
+    /* type PARROT_FUNCTION_OP, */
+    "set_root_global",
+    "set_root_global_p_s_p",
+    "Parrot_set_root_global_p_s_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 1194 */
+    /* type PARROT_FUNCTION_OP, */
+    "set_root_global",
+    "set_root_global_pc_s_p",
+    "Parrot_set_root_global_pc_s_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_PC, PARROT_ARG_S, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 1195 */
+    /* type PARROT_FUNCTION_OP, */
+    "set_root_global",
+    "set_root_global_p_sc_p",
+    "Parrot_set_root_global_p_sc_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 1196 */
+    /* type PARROT_FUNCTION_OP, */
+    "set_root_global",
+    "set_root_global_pc_sc_p",
+    "Parrot_set_root_global_pc_sc_p",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_PC, PARROT_ARG_SC, PARROT_ARG_P },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 1197 */
+    /* type PARROT_FUNCTION_OP, */
+    "find_name",
+    "find_name_p_s",
+    "Parrot_find_name_p_s",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1198 */
+    /* type PARROT_FUNCTION_OP, */
+    "find_name",
+    "find_name_p_sc",
+    "Parrot_find_name_p_sc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1199 */
+    /* type PARROT_INLINE_OP, */
+    "find_sub_not_null",
+    "find_sub_not_null_p_s",
+    "Parrot_find_sub_not_null_p_s",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1200 */
+    /* type PARROT_INLINE_OP, */
+    "find_sub_not_null",
+    "find_sub_not_null_p_sc",
+    "Parrot_find_sub_not_null_p_sc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1201 */
+    /* type PARROT_FUNCTION_OP, */
+    "trap",
+    "trap",
+    "Parrot_trap",
+    /* "",  body */
+    0,
+    1,
+    { (arg_type_t) 0 },
+    { (arg_dir_t) 0 },
+    { 0 }
+  },
+  { /* 1202 */
+    /* type PARROT_INLINE_OP, */
+    "set_label",
+    "set_label_p_ic",
+    "Parrot_set_label_p_ic",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 1 }
+  },
+  { /* 1203 */
+    /* type PARROT_INLINE_OP, */
+    "get_label",
+    "get_label_i_p",
+    "Parrot_get_label_i_p",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_P },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1204 */
+    /* type PARROT_INLINE_OP, */
+    "fetch",
+    "fetch_p_p_p_p",
+    "Parrot_fetch_p_p_p_p",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1205 */
+    /* type PARROT_INLINE_OP, */
+    "fetch",
+    "fetch_p_pc_p_p",
+    "Parrot_fetch_p_pc_p_p",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1206 */
+    /* type PARROT_INLINE_OP, */
+    "fetch",
+    "fetch_p_p_pc_p",
+    "Parrot_fetch_p_p_pc_p",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1207 */
+    /* type PARROT_INLINE_OP, */
+    "fetch",
+    "fetch_p_pc_pc_p",
+    "Parrot_fetch_p_pc_pc_p",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1208 */
+    /* type PARROT_INLINE_OP, */
+    "fetch",
+    "fetch_p_p_p_pc",
+    "Parrot_fetch_p_p_p_pc",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1209 */
+    /* type PARROT_INLINE_OP, */
+    "fetch",
+    "fetch_p_pc_p_pc",
+    "Parrot_fetch_p_pc_p_pc",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1210 */
+    /* type PARROT_INLINE_OP, */
+    "fetch",
+    "fetch_p_p_pc_pc",
+    "Parrot_fetch_p_p_pc_pc",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1211 */
+    /* type PARROT_INLINE_OP, */
+    "fetch",
+    "fetch_p_pc_pc_pc",
+    "Parrot_fetch_p_pc_pc_pc",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1212 */
+    /* type PARROT_INLINE_OP, */
+    "fetch",
+    "fetch_p_p_i_p",
+    "Parrot_fetch_p_p_i_p",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1213 */
+    /* type PARROT_INLINE_OP, */
+    "fetch",
+    "fetch_p_pc_i_p",
+    "Parrot_fetch_p_pc_i_p",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1214 */
+    /* type PARROT_INLINE_OP, */
+    "fetch",
+    "fetch_p_p_ic_p",
+    "Parrot_fetch_p_p_ic_p",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1215 */
+    /* type PARROT_INLINE_OP, */
+    "fetch",
+    "fetch_p_pc_ic_p",
+    "Parrot_fetch_p_pc_ic_p",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1216 */
+    /* type PARROT_INLINE_OP, */
+    "fetch",
+    "fetch_p_p_i_pc",
+    "Parrot_fetch_p_p_i_pc",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1217 */
+    /* type PARROT_INLINE_OP, */
+    "fetch",
+    "fetch_p_pc_i_pc",
+    "Parrot_fetch_p_pc_i_pc",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1218 */
+    /* type PARROT_INLINE_OP, */
+    "fetch",
+    "fetch_p_p_ic_pc",
+    "Parrot_fetch_p_p_ic_pc",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1219 */
+    /* type PARROT_INLINE_OP, */
+    "fetch",
+    "fetch_p_pc_ic_pc",
+    "Parrot_fetch_p_pc_ic_pc",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1220 */
+    /* type PARROT_INLINE_OP, */
+    "fetch",
+    "fetch_p_p_s_p",
+    "Parrot_fetch_p_p_s_p",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1221 */
+    /* type PARROT_INLINE_OP, */
+    "fetch",
+    "fetch_p_pc_s_p",
+    "Parrot_fetch_p_pc_s_p",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1222 */
+    /* type PARROT_INLINE_OP, */
+    "fetch",
+    "fetch_p_p_sc_p",
+    "Parrot_fetch_p_p_sc_p",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1223 */
+    /* type PARROT_INLINE_OP, */
+    "fetch",
+    "fetch_p_pc_sc_p",
+    "Parrot_fetch_p_pc_sc_p",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1224 */
+    /* type PARROT_INLINE_OP, */
+    "fetch",
+    "fetch_p_p_s_pc",
+    "Parrot_fetch_p_p_s_pc",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1225 */
+    /* type PARROT_INLINE_OP, */
+    "fetch",
+    "fetch_p_pc_s_pc",
+    "Parrot_fetch_p_pc_s_pc",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1226 */
+    /* type PARROT_INLINE_OP, */
+    "fetch",
+    "fetch_p_p_sc_pc",
+    "Parrot_fetch_p_p_sc_pc",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1227 */
+    /* type PARROT_INLINE_OP, */
+    "fetch",
+    "fetch_p_pc_sc_pc",
+    "Parrot_fetch_p_pc_sc_pc",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1228 */
+    /* type PARROT_INLINE_OP, */
+    "vivify",
+    "vivify_p_p_p_p",
+    "Parrot_vivify_p_p_p_p",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1229 */
+    /* type PARROT_INLINE_OP, */
+    "vivify",
+    "vivify_p_pc_p_p",
+    "Parrot_vivify_p_pc_p_p",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1230 */
+    /* type PARROT_INLINE_OP, */
+    "vivify",
+    "vivify_p_p_pc_p",
+    "Parrot_vivify_p_p_pc_p",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1231 */
+    /* type PARROT_INLINE_OP, */
+    "vivify",
+    "vivify_p_pc_pc_p",
+    "Parrot_vivify_p_pc_pc_p",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1232 */
+    /* type PARROT_INLINE_OP, */
+    "vivify",
+    "vivify_p_p_p_pc",
+    "Parrot_vivify_p_p_p_pc",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1233 */
+    /* type PARROT_INLINE_OP, */
+    "vivify",
+    "vivify_p_pc_p_pc",
+    "Parrot_vivify_p_pc_p_pc",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1234 */
+    /* type PARROT_INLINE_OP, */
+    "vivify",
+    "vivify_p_p_pc_pc",
+    "Parrot_vivify_p_p_pc_pc",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1235 */
+    /* type PARROT_INLINE_OP, */
+    "vivify",
+    "vivify_p_pc_pc_pc",
+    "Parrot_vivify_p_pc_pc_pc",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1236 */
+    /* type PARROT_INLINE_OP, */
+    "vivify",
+    "vivify_p_p_i_p",
+    "Parrot_vivify_p_p_i_p",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1237 */
+    /* type PARROT_INLINE_OP, */
+    "vivify",
+    "vivify_p_pc_i_p",
+    "Parrot_vivify_p_pc_i_p",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1238 */
+    /* type PARROT_INLINE_OP, */
+    "vivify",
+    "vivify_p_p_ic_p",
+    "Parrot_vivify_p_p_ic_p",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1239 */
+    /* type PARROT_INLINE_OP, */
+    "vivify",
+    "vivify_p_pc_ic_p",
+    "Parrot_vivify_p_pc_ic_p",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1240 */
+    /* type PARROT_INLINE_OP, */
+    "vivify",
+    "vivify_p_p_i_pc",
+    "Parrot_vivify_p_p_i_pc",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1241 */
+    /* type PARROT_INLINE_OP, */
+    "vivify",
+    "vivify_p_pc_i_pc",
+    "Parrot_vivify_p_pc_i_pc",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1242 */
+    /* type PARROT_INLINE_OP, */
+    "vivify",
+    "vivify_p_p_ic_pc",
+    "Parrot_vivify_p_p_ic_pc",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1243 */
+    /* type PARROT_INLINE_OP, */
+    "vivify",
+    "vivify_p_pc_ic_pc",
+    "Parrot_vivify_p_pc_ic_pc",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1244 */
+    /* type PARROT_INLINE_OP, */
+    "vivify",
+    "vivify_p_p_s_p",
+    "Parrot_vivify_p_p_s_p",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1245 */
+    /* type PARROT_INLINE_OP, */
+    "vivify",
+    "vivify_p_pc_s_p",
+    "Parrot_vivify_p_pc_s_p",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1246 */
+    /* type PARROT_INLINE_OP, */
+    "vivify",
+    "vivify_p_p_sc_p",
+    "Parrot_vivify_p_p_sc_p",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1247 */
+    /* type PARROT_INLINE_OP, */
+    "vivify",
+    "vivify_p_pc_sc_p",
+    "Parrot_vivify_p_pc_sc_p",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1248 */
+    /* type PARROT_INLINE_OP, */
+    "vivify",
+    "vivify_p_p_s_pc",
+    "Parrot_vivify_p_p_s_pc",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1249 */
+    /* type PARROT_INLINE_OP, */
+    "vivify",
+    "vivify_p_pc_s_pc",
+    "Parrot_vivify_p_pc_s_pc",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1250 */
+    /* type PARROT_INLINE_OP, */
+    "vivify",
+    "vivify_p_p_sc_pc",
+    "Parrot_vivify_p_p_sc_pc",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1251 */
+    /* type PARROT_INLINE_OP, */
+    "vivify",
+    "vivify_p_pc_sc_pc",
+    "Parrot_vivify_p_pc_sc_pc",
+    /* "",  body */
+    0,
+    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 }
+  },
+  { /* 1252 */
+    /* type PARROT_FUNCTION_OP, */
+    "new",
+    "new_p_s_i",
+    "Parrot_new_p_s_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 1253 */
+    /* type PARROT_FUNCTION_OP, */
+    "new",
+    "new_p_sc_i",
+    "Parrot_new_p_sc_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 1254 */
+    /* type PARROT_FUNCTION_OP, */
+    "new",
+    "new_p_s_ic",
+    "Parrot_new_p_s_ic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 1255 */
+    /* type PARROT_FUNCTION_OP, */
+    "new",
+    "new_p_sc_ic",
+    "Parrot_new_p_sc_ic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 1256 */
+    /* type PARROT_FUNCTION_OP, */
+    "new",
+    "new_p_p_i",
+    "Parrot_new_p_p_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 1257 */
+    /* type PARROT_FUNCTION_OP, */
+    "new",
+    "new_p_pc_i",
+    "Parrot_new_p_pc_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 1258 */
+    /* type PARROT_FUNCTION_OP, */
+    "new",
+    "new_p_p_ic",
+    "Parrot_new_p_p_ic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 1259 */
+    /* type PARROT_FUNCTION_OP, */
+    "new",
+    "new_p_pc_ic",
+    "Parrot_new_p_pc_ic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 1260 */
+    /* type PARROT_FUNCTION_OP, */
+    "root_new",
+    "root_new_p_p_i",
+    "Parrot_root_new_p_p_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 1261 */
+    /* type PARROT_FUNCTION_OP, */
+    "root_new",
+    "root_new_p_pc_i",
+    "Parrot_root_new_p_pc_i",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_I },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 1262 */
+    /* type PARROT_FUNCTION_OP, */
+    "root_new",
+    "root_new_p_p_ic",
+    "Parrot_root_new_p_p_ic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 1263 */
+    /* type PARROT_FUNCTION_OP, */
+    "root_new",
+    "root_new_p_pc_ic",
+    "Parrot_root_new_p_pc_ic",
+    /* "",  body */
+    0,
+    4,
+    { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_IC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+    { 0, 0, 0 }
+  },
+  { /* 1264 */
+    /* type PARROT_FUNCTION_OP, */
+    "find_codepoint",
+    "find_codepoint_i_s",
+    "Parrot_find_codepoint_i_s",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_S },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1265 */
+    /* type PARROT_FUNCTION_OP, */
+    "find_codepoint",
+    "find_codepoint_i_sc",
+    "Parrot_find_codepoint_i_sc",
+    /* "",  body */
+    0,
+    3,
+    { PARROT_ARG_I, PARROT_ARG_SC },
+    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+    { 0, 0 }
+  },
+  { /* 1266 */
+    /* type PARROT_FUNCTION_OP, */
+    "unroll",
+    "unroll_p",
+    "Parrot_unroll_p",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_P },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+  { /* 1267 */
+    /* type PARROT_FUNCTION_OP, */
+    "unroll",
+    "unroll_pc",
+    "Parrot_unroll_pc",
+    /* "",  body */
+    0,
+    2,
+    { PARROT_ARG_PC },
+    { PARROT_ARGDIR_IN },
+    { 0 }
+  },
+
+};
+
+
+/*
+** Op Function Definitions:
+*/
+
+opcode_t *
+Parrot_end(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);return (opcode_t *)0;
+}
+
+opcode_t *
+Parrot_noop(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+
+return (opcode_t *)cur_opcode + 1;}
+
+opcode_t *
+Parrot_check_events(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    opcode_t * const next = cur_opcode + 1;
+    Parrot_cx_check_tasks(interp, interp->scheduler);
+    return (opcode_t *)next;   /* force this being a branch op */
+}
+
+opcode_t *
+Parrot_check_events__(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    opcode_t * const _this = CUR_OPCODE;
+    /* Restore op_func_table. */
+    disable_event_checking(interp);
+    Parrot_cx_handle_tasks(interp, interp->scheduler);
+    return (opcode_t *)_this;   /* force this being a branch op */
+}
+
+opcode_t *
+Parrot_wrapper__(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    opcode_t *pc = CUR_OPCODE;
+    DO_OP(pc, interp);
+    return (opcode_t *)pc;
+}
+
+opcode_t *
+Parrot_load_bytecode_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    Parrot_load_bytecode(interp, SREG(1));
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_load_bytecode_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    Parrot_load_bytecode(interp, CONST(1)->u.string);
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_load_language_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    Parrot_load_language(interp, SREG(1));
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_load_language_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    Parrot_load_language(interp, CONST(1)->u.string);
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_branch_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);return (opcode_t *)cur_opcode + IREG(1);
+}
+
+opcode_t *
+Parrot_branch_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);return (opcode_t *)cur_opcode + cur_opcode[1];
+}
+
+opcode_t *
+Parrot_local_branch_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    INTVAL return_addr;
+    opcode_t * const dest = cur_opcode + 3;
+
+    if (PMC_IS_NULL(PREG(1)) || PREG(1)->vtable->base_type != enum_class_ResizableIntegerArray) {
+        opcode_t * const handler = Parrot_ex_throw_from_op_args(interp, dest,
+            EXCEPTION_INVALID_OPERATION,
+            "Must pass a valid integer array to 'local_branch'");
+        return (opcode_t *)handler;
+    }
+
+    return_addr = PTR2INTVAL(dest);
+    VTABLE_push_integer(interp, PREG(1), return_addr);
+
+    return (opcode_t *)cur_opcode + IREG(2);
+}
+
+opcode_t *
+Parrot_local_branch_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    INTVAL return_addr;
+    opcode_t * const dest = cur_opcode + 3;
+
+    if (PMC_IS_NULL(PREG(1)) || PREG(1)->vtable->base_type != enum_class_ResizableIntegerArray) {
+        opcode_t * const handler = Parrot_ex_throw_from_op_args(interp, dest,
+            EXCEPTION_INVALID_OPERATION,
+            "Must pass a valid integer array to 'local_branch'");
+        return (opcode_t *)handler;
+    }
+
+    return_addr = PTR2INTVAL(dest);
+    VTABLE_push_integer(interp, PREG(1), return_addr);
+
+    return (opcode_t *)cur_opcode + cur_opcode[2];
+}
+
+opcode_t *
+Parrot_local_return_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    INTVAL return_addr;
+    opcode_t *next;
+    opcode_t * const dest = cur_opcode + 2;
+
+    if (PMC_IS_NULL(PREG(1)) || PREG(1)->vtable->base_type != enum_class_ResizableIntegerArray) {
+        opcode_t * const handler = Parrot_ex_throw_from_op_args(interp, dest,
+            EXCEPTION_INVALID_OPERATION,
+            "Must pass a valid integer array to 'local_return'");
+        return (opcode_t *)handler;
+    }
+
+    return_addr = VTABLE_pop_integer(interp, PREG(1));
+    next = INTVAL2PTR(opcode_t *, return_addr);
+
+    /* The return address must be within the current code segment. */
+    if (! (next >= interp->code->base.data
+           && next < (interp->code->base.data + interp->code->base.size))) {
+        opcode_t * const handler = Parrot_ex_throw_from_op_args(interp, dest,
+            EXCEPTION_INVALID_OPERATION,
+            "Address for 'local_return' must be within the current code segment");
+        return (opcode_t *)handler;
+    }
+
+    return (opcode_t *)next;
+}
+
+opcode_t *
+Parrot_jump_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    opcode_t * const loc = INTVAL2PTR(opcode_t *, IREG(1));
+    return (opcode_t *)loc;
+}
+
+opcode_t *
+Parrot_jump_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    opcode_t * const loc = INTVAL2PTR(opcode_t *, cur_opcode[1]);
+    return (opcode_t *)loc;
+}
+
+opcode_t *
+Parrot_enternative(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    opcode_t * const addr = run_native(interp, CUR_OPCODE,
+            interp->code->base.data);
+    return (opcode_t *)addr;
+}
+
+opcode_t *
+Parrot_if_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (IREG(1) != 0)
+        return (opcode_t *)cur_opcode + cur_opcode[2];
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_if_n_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (!FLOAT_IS_ZERO(NREG(1)))
+        return (opcode_t *)cur_opcode + cur_opcode[2];
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_if_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (Parrot_str_boolean(interp, SREG(1)))
+        return (opcode_t *)cur_opcode + cur_opcode[2];
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_if_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (VTABLE_get_bool(interp, PREG(1)))
+        return (opcode_t *)cur_opcode + cur_opcode[2];
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_unless_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (IREG(1) == 0)
+        return (opcode_t *)cur_opcode + cur_opcode[2];
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_unless_n_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (FLOAT_IS_ZERO(NREG(1)))
+        return (opcode_t *)cur_opcode + cur_opcode[2];
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_unless_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (!Parrot_str_boolean(interp, SREG(1)))
+        return (opcode_t *)cur_opcode + cur_opcode[2];
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_unless_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (!VTABLE_get_bool(interp, PREG(1)))
+        return (opcode_t *)cur_opcode + cur_opcode[2];
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_invokecc_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC      * const p     = PREG(1);
+    opcode_t *dest         = cur_opcode + 2;
+    PMC      * const signature = Parrot_pcc_get_signature(interp,
+                                    CURRENT_CONTEXT(interp));
+
+    if (!PMC_IS_NULL(signature))
+        Parrot_pcc_set_object(interp, signature, NULL);
+    interp->current_cont   = NEED_CONTINUATION;
+    dest                   = VTABLE_invoke(interp, p, dest);
+
+    return (opcode_t *)dest;
+}
+
+opcode_t *
+Parrot_invoke_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    opcode_t   *dest       = cur_opcode + 3;
+    PMC * const p          = PREG(1);
+    PMC * const signature  = Parrot_pcc_get_signature(interp,
+                                    CURRENT_CONTEXT(interp));
+
+    if (!PMC_IS_NULL(signature))
+        Parrot_pcc_set_object(interp, signature, NULL);
+    interp->current_cont   = PREG(2);
+
+    dest = VTABLE_invoke(interp, p, dest);
+    return (opcode_t *)dest;
+}
+
+opcode_t *
+Parrot_yield(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    opcode_t   *dest = cur_opcode + 1;
+    PMC * const p    = Parrot_pcc_get_sub(interp, CURRENT_CONTEXT(interp));
+
+    VTABLE_increment(interp, p);
+    dest = VTABLE_invoke(interp, p, dest);
+
+    return (opcode_t *)dest;
+}
+
+opcode_t *
+Parrot_tailcall_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const p               = PREG(1);
+    opcode_t   *dest            = cur_opcode + 2;
+    PMC * const ctx             = CURRENT_CONTEXT(interp);
+    PMC * const parent_ctx      = Parrot_pcc_get_caller_ctx(interp, ctx);
+    PMC * const this_call_sig   = Parrot_pcc_get_signature(interp, ctx);
+    PMC * const parent_call_sig = Parrot_pcc_get_signature(interp, parent_ctx);
+    interp->current_cont        = Parrot_pcc_get_continuation(interp, ctx);
+
+    Parrot_pcc_merge_signature_for_tailcall(interp, parent_call_sig, this_call_sig);
+
+    SUB_FLAG_TAILCALL_SET(interp->current_cont);
+    dest = VTABLE_invoke(interp, p, dest);
+    return (opcode_t *)dest;
+}
+
+opcode_t *
+Parrot_returncc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const p = Parrot_pcc_get_continuation(interp, CURRENT_CONTEXT(interp));
+    opcode_t * const dest = VTABLE_invoke(interp, p, cur_opcode + 1);
+    return (opcode_t *)dest;
+}
+
+opcode_t *
+Parrot_capture_lex_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    Parrot_capture_lex(interp, PREG(1));
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_newclosure_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = parrot_new_closure(interp, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_args_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    opcode_t * const raw_args = CUR_OPCODE;
+    PMC * const signature = CONST(1)->u.key;
+    PMC * const call_sig = Parrot_pcc_build_sig_object_from_op(interp,
+            PMCNULL, signature, raw_args);
+    const INTVAL argc = VTABLE_elements(interp, signature);
+    Parrot_pcc_set_signature(interp, CURRENT_CONTEXT(interp), call_sig);
+    return (opcode_t *)cur_opcode + argc + 2;
+}
+
+opcode_t *
+Parrot_get_params_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    opcode_t * const raw_params  = CUR_OPCODE;
+    PMC      * const signature   = CONST(1)->u.key;
+    PMC      * const ctx         = CURRENT_CONTEXT(interp);
+    PMC      * const ccont       = Parrot_pcc_get_continuation(interp, ctx);
+    PMC      * const caller_ctx  = Parrot_pcc_get_caller_ctx(interp, ctx);
+    PMC      * const call_object = Parrot_pcc_get_signature(interp, caller_ctx);
+    INTVAL argc;
+
+    Parrot_pcc_fill_params_from_op(interp, call_object, signature, raw_params,
+            PARROT_ERRORS_PARAM_COUNT_FLAG);
+
+    /* TODO Factor out with Sub.invoke */
+    if (PObj_get_FLAGS(ccont) & SUB_FLAG_TAILCALL) {
+        PObj_get_FLAGS(ccont) &= ~SUB_FLAG_TAILCALL;
+        Parrot_pcc_dec_recursion_depth(interp, ctx);
+        Parrot_pcc_set_caller_ctx(interp, ctx, Parrot_pcc_get_caller_ctx(interp, caller_ctx));
+    }
+    argc = VTABLE_elements(interp, signature);
+    return (opcode_t *)cur_opcode + argc + 2;
+}
+
+opcode_t *
+Parrot_set_returns_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    opcode_t * const raw_args  = CUR_OPCODE;
+    PMC      * const signature = CONST(1)->u.key;
+    PMC      * const call_sig  = Parrot_pcc_build_sig_object_from_op(interp,
+                Parrot_pcc_get_signature(interp,
+                Parrot_pcc_get_caller_ctx(interp, CURRENT_CONTEXT(interp))),
+                    signature, raw_args);
+    INTVAL argc;
+
+    Parrot_pcc_set_signature(interp, CURRENT_CONTEXT(interp), call_sig);
+
+    argc = VTABLE_elements(interp, signature);
+    return (opcode_t *)cur_opcode + argc + 2;
+}
+
+opcode_t *
+Parrot_get_results_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    opcode_t * const raw_params  = CUR_OPCODE;
+    PMC      * const signature   = CONST(1)->u.key;
+    PMC             *ctx         = CURRENT_CONTEXT(interp);
+    PMC             *ccont       = Parrot_pcc_get_continuation(interp, ctx);
+    PMC             *call_object = Parrot_pcc_get_signature(interp, ctx);
+
+    INTVAL argc;
+
+    Parrot_pcc_fill_params_from_op(interp, call_object, signature, raw_params,
+            PARROT_ERRORS_RESULT_COUNT_FLAG);
+
+    argc = VTABLE_elements(interp, signature);
+    return (opcode_t *)cur_opcode + argc + 2;
+}
+
+opcode_t *
+Parrot_set_result_info_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const ctx = CURRENT_CONTEXT(interp);
+
+    VTABLE_set_attr_str(interp, ctx,
+            Parrot_str_new_constant(interp, "return_flags"),
+            PREG(1));
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_set_result_info_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const ctx = CURRENT_CONTEXT(interp);
+
+    VTABLE_set_attr_str(interp, ctx,
+            Parrot_str_new_constant(interp, "return_flags"),
+            CONST(1)->u.key);
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_result_info_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const caller_ctx = Parrot_pcc_get_caller_ctx(interp, CURRENT_CONTEXT(interp));
+    PMC * const sig        = VTABLE_get_attr_str(interp, caller_ctx,
+            Parrot_str_new_constant(interp, "return_flags"));
+
+    /* If no elements, hand back empty array; otherwise PMC. */
+    if (!sig)
+        PREG(1) = Parrot_pmc_new(interp, enum_class_FixedIntegerArray);
+    else
+        PREG(1) = sig;
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_set_addr_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = PTR2INTVAL(CUR_OPCODE + cur_opcode[2]);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_addr_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_set_pointer(interp, PREG(1), (CUR_OPCODE + cur_opcode[2]));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_addr_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_set_pointer(interp, PREG(1), (void*)IREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_get_addr_i_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    void *ptr = VTABLE_get_pointer(interp, PREG(2));
+    IREG(1)        = (INTVAL)ptr;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_schedule_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    Parrot_cx_schedule_task(interp, PREG(1));
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_addhandler_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    Parrot_cx_add_handler(interp, PREG(1));
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_push_eh_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const eh = Parrot_pmc_new(interp, enum_class_ExceptionHandler);
+    VTABLE_set_pointer(interp, eh, CUR_OPCODE + cur_opcode[1]);
+    Parrot_cx_add_handler_local(interp, eh);
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_push_eh_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    Parrot_cx_add_handler_local(interp, PREG(1));
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_pop_eh(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    Parrot_cx_delete_handler_local(interp,
+            Parrot_str_new_constant(interp, "exception"));
+
+return (opcode_t *)cur_opcode + 1;}
+
+opcode_t *
+Parrot_throw_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * except = PREG(1);
+    opcode_t *dest;
+    opcode_t * const ret    = cur_opcode + 2;
+    PMC      * const resume = pmc_new(interp, enum_class_Continuation);
+
+    VTABLE_set_pointer(interp, resume, ret);
+
+    if (PMC_IS_NULL(except) || except->vtable->base_type != enum_class_Exception)
+        except = Parrot_ex_build_exception(interp, EXCEPT_fatal,
+                EXCEPTION_UNIMPLEMENTED,
+                Parrot_str_new_constant(interp, "Not a throwable object"));
+
+    VTABLE_set_attr_str(interp, except, Parrot_str_new_constant(interp, "resume"), resume);
+    dest = Parrot_ex_throw_from_op(interp, except, ret);
+    return (opcode_t *)dest;
+}
+
+opcode_t *
+Parrot_throw_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    opcode_t * dest;
+    PMC * except = PREG(1);
+    if (PMC_IS_NULL(except) || except->vtable->base_type != enum_class_Exception)
+        except = Parrot_ex_build_exception(interp, EXCEPT_fatal,
+                EXCEPTION_UNIMPLEMENTED,
+                Parrot_str_new_constant(interp, "Not a throwable object"));
+    dest = Parrot_ex_throw_from_op(interp, PREG(1),
+                                VTABLE_get_pointer(interp, PREG(2)));
+    return (opcode_t *)dest;
+}
+
+opcode_t *
+Parrot_rethrow_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    opcode_t * dest;
+    if (PMC_IS_NULL(PREG(1)) || PREG(1)->vtable->base_type != enum_class_Exception) {
+        opcode_t * const ret    = cur_opcode + 2;
+        PMC      * const except = Parrot_ex_build_exception(interp, EXCEPT_fatal,
+                EXCEPTION_UNIMPLEMENTED,
+                Parrot_str_new_constant(interp, "Not a throwable object"));
+        dest = Parrot_ex_throw_from_op(interp, except, ret);
+        return (opcode_t *)dest;
+    }
+    dest = Parrot_ex_rethrow_from_op(interp, PREG(1));
+    return (opcode_t *)dest;
+}
+
+opcode_t *
+Parrot_count_eh_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = Parrot_cx_count_handlers_local(interp,
+            Parrot_str_new_constant(interp, "exception"));
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_die_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    opcode_t        *dest;
+    opcode_t * const ret       = cur_opcode + 2;
+    PMC      * const resume    = pmc_new(interp, enum_class_Continuation);
+    PMC      * const exception = Parrot_ex_build_exception(interp, EXCEPT_error,
+                                    CONTROL_ERROR, SREG(1));
+
+    VTABLE_set_pointer(interp, resume, ret);
+
+    VTABLE_set_attr_str(interp, exception,
+                        Parrot_str_new_constant(interp, "resume"), resume);
+    dest = Parrot_ex_throw_from_op(interp, exception, ret);
+    return (opcode_t *)dest;
+}
+
+opcode_t *
+Parrot_die_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    opcode_t        *dest;
+    opcode_t * const ret       = cur_opcode + 2;
+    PMC      * const resume    = pmc_new(interp, enum_class_Continuation);
+    PMC      * const exception = Parrot_ex_build_exception(interp, EXCEPT_error,
+                                    CONTROL_ERROR, CONST(1)->u.string);
+
+    VTABLE_set_pointer(interp, resume, ret);
+
+    VTABLE_set_attr_str(interp, exception,
+                        Parrot_str_new_constant(interp, "resume"), resume);
+    dest = Parrot_ex_throw_from_op(interp, exception, ret);
+    return (opcode_t *)dest;
+}
+
+opcode_t *
+Parrot_die_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    opcode_t        *dest;
+    opcode_t * const ret       = cur_opcode + 2;
+    PMC      * const resume    = pmc_new(interp, enum_class_Continuation);
+    STRING   * const msg       = PMC_IS_NULL(PREG(1)) ? NULL : VTABLE_get_string(interp, PREG(1));
+    PMC      * const exception =
+        Parrot_ex_build_exception(interp, EXCEPT_error, CONTROL_ERROR, msg);
+
+    VTABLE_set_pointer(interp, resume, ret);
+
+    VTABLE_set_attr_str(interp, exception,
+                        Parrot_str_new_constant(interp, "resume"), resume);
+    dest = Parrot_ex_throw_from_op(interp, exception, ret);
+    return (opcode_t *)dest;
+}
+
+opcode_t *
+Parrot_die_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    opcode_t        *dest;
+    opcode_t * const ret       = cur_opcode + 2;
+    PMC      * const resume    = pmc_new(interp, enum_class_Continuation);
+    STRING   * const msg       = PMC_IS_NULL(CONST(1)->u.key) ? NULL : VTABLE_get_string(interp, CONST(1)->u.key);
+    PMC      * const exception =
+        Parrot_ex_build_exception(interp, EXCEPT_error, CONTROL_ERROR, msg);
+
+    VTABLE_set_pointer(interp, resume, ret);
+
+    VTABLE_set_attr_str(interp, exception,
+                        Parrot_str_new_constant(interp, "resume"), resume);
+    dest = Parrot_ex_throw_from_op(interp, exception, ret);
+    return (opcode_t *)dest;
+}
+
+opcode_t *
+Parrot_die_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (IREG(1) == EXCEPT_doomed)
+        _exit(IREG(2));
+    else {
+        opcode_t * const ret       = cur_opcode + 3;
+        PMC      * const exception = Parrot_ex_build_exception(interp, IREG(1), IREG(2), NULL);
+        opcode_t * const dest      = Parrot_ex_throw_from_op(interp, exception, ret);
+
+        return (opcode_t *)dest;
+    }
+}
+
+opcode_t *
+Parrot_die_ic_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (cur_opcode[1] == EXCEPT_doomed)
+        _exit(IREG(2));
+    else {
+        opcode_t * const ret       = cur_opcode + 3;
+        PMC      * const exception = Parrot_ex_build_exception(interp, cur_opcode[1], IREG(2), NULL);
+        opcode_t * const dest      = Parrot_ex_throw_from_op(interp, exception, ret);
+
+        return (opcode_t *)dest;
+    }
+}
+
+opcode_t *
+Parrot_die_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (IREG(1) == EXCEPT_doomed)
+        _exit(cur_opcode[2]);
+    else {
+        opcode_t * const ret       = cur_opcode + 3;
+        PMC      * const exception = Parrot_ex_build_exception(interp, IREG(1), cur_opcode[2], NULL);
+        opcode_t * const dest      = Parrot_ex_throw_from_op(interp, exception, ret);
+
+        return (opcode_t *)dest;
+    }
+}
+
+opcode_t *
+Parrot_die_ic_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (cur_opcode[1] == EXCEPT_doomed)
+        _exit(cur_opcode[2]);
+    else {
+        opcode_t * const ret       = cur_opcode + 3;
+        PMC      * const exception = Parrot_ex_build_exception(interp, cur_opcode[1], cur_opcode[2], NULL);
+        opcode_t * const dest      = Parrot_ex_throw_from_op(interp, exception, ret);
+
+        return (opcode_t *)dest;
+    }
+}
+
+opcode_t *
+Parrot_exit_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    opcode_t        *dest;
+    opcode_t * const ret       = cur_opcode + 2;
+    PMC      * const resume    = pmc_new(interp, enum_class_Continuation);
+    PMC      * const exception = Parrot_ex_build_exception(interp, EXCEPT_exit, IREG(1), NULL);
+
+    VTABLE_set_pointer(interp, resume, ret);
+
+    VTABLE_set_attr_str(interp, exception,
+                        Parrot_str_new_constant(interp, "resume"), resume);
+    VTABLE_set_integer_keyed_str(interp, exception,
+        Parrot_str_new_constant(interp, "exit_code"), IREG(1));
+    dest = Parrot_ex_throw_from_op(interp, exception, ret);
+    return (opcode_t *)dest;
+}
+
+opcode_t *
+Parrot_exit_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    opcode_t        *dest;
+    opcode_t * const ret       = cur_opcode + 2;
+    PMC      * const resume    = pmc_new(interp, enum_class_Continuation);
+    PMC      * const exception = Parrot_ex_build_exception(interp, EXCEPT_exit, cur_opcode[1], NULL);
+
+    VTABLE_set_pointer(interp, resume, ret);
+
+    VTABLE_set_attr_str(interp, exception,
+                        Parrot_str_new_constant(interp, "resume"), resume);
+    VTABLE_set_integer_keyed_str(interp, exception,
+        Parrot_str_new_constant(interp, "exit_code"), cur_opcode[1]);
+    dest = Parrot_ex_throw_from_op(interp, exception, ret);
+    return (opcode_t *)dest;
+}
+
+opcode_t *
+Parrot_debug_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (IREG(1) != 0) { Interp_debug_SET(interp,   IREG(1)); }
+    else         { Interp_debug_CLEAR(interp, PARROT_ALL_DEBUG_FLAGS); }
+    interp->resume_offset = REL_PC + 2; interp->resume_flag = 1;return (opcode_t *)0;
+}
+
+opcode_t *
+Parrot_debug_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (cur_opcode[1] != 0) { Interp_debug_SET(interp,   cur_opcode[1]); }
+    else         { Interp_debug_CLEAR(interp, PARROT_ALL_DEBUG_FLAGS); }
+    interp->resume_offset = REL_PC + 2; interp->resume_flag = 1;return (opcode_t *)0;
+}
+
+opcode_t *
+Parrot_bounds_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (IREG(1) != 0) { Parrot_set_flag(interp,   PARROT_BOUNDS_FLAG); }
+    else         { Interp_flags_CLEAR(interp, PARROT_BOUNDS_FLAG); }
+    interp->resume_offset = REL_PC + 2; interp->resume_flag = 1;return (opcode_t *)0;
+}
+
+opcode_t *
+Parrot_bounds_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (cur_opcode[1] != 0) { Parrot_set_flag(interp,   PARROT_BOUNDS_FLAG); }
+    else         { Interp_flags_CLEAR(interp, PARROT_BOUNDS_FLAG); }
+    interp->resume_offset = REL_PC + 2; interp->resume_flag = 1;return (opcode_t *)0;
+}
+
+opcode_t *
+Parrot_profile_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (IREG(1) != 0) { Parrot_set_flag(interp,   PARROT_PROFILE_FLAG); }
+    else         { Interp_flags_CLEAR(interp, PARROT_PROFILE_FLAG); }
+    interp->resume_offset = REL_PC + 2; interp->resume_flag = 1;return (opcode_t *)0;
+}
+
+opcode_t *
+Parrot_profile_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (cur_opcode[1] != 0) { Parrot_set_flag(interp,   PARROT_PROFILE_FLAG); }
+    else         { Interp_flags_CLEAR(interp, PARROT_PROFILE_FLAG); }
+    interp->resume_offset = REL_PC + 2; interp->resume_flag = 1;return (opcode_t *)0;
+}
+
+opcode_t *
+Parrot_trace_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (IREG(1) != 0) { Parrot_set_trace(interp,   IREG(1)); }
+    else         { Parrot_clear_trace(interp, PARROT_ALL_TRACE_FLAGS); }
+    interp->resume_offset = REL_PC + 2; interp->resume_flag = 1;return (opcode_t *)0;
+}
+
+opcode_t *
+Parrot_trace_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (cur_opcode[1] != 0) { Parrot_set_trace(interp,   cur_opcode[1]); }
+    else         { Parrot_clear_trace(interp, PARROT_ALL_TRACE_FLAGS); }
+    interp->resume_offset = REL_PC + 2; interp->resume_flag = 1;return (opcode_t *)0;
+}
+
+opcode_t *
+Parrot_gc_debug_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (IREG(1) != 0) { Interp_flags_SET(interp,   PARROT_GC_DEBUG_FLAG); }
+    else         { Interp_flags_CLEAR(interp, PARROT_GC_DEBUG_FLAG); }
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_gc_debug_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (cur_opcode[1] != 0) { Interp_flags_SET(interp,   PARROT_GC_DEBUG_FLAG); }
+    else         { Interp_flags_CLEAR(interp, PARROT_GC_DEBUG_FLAG); }
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_interpinfo_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = interpinfo(interp, IREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_interpinfo_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = interpinfo(interp, cur_opcode[2]);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_interpinfo_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = interpinfo_p(interp, IREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_interpinfo_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = interpinfo_p(interp, cur_opcode[2]);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_interpinfo_s_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    STRING * const s = interpinfo_s(interp, IREG(2));
+    SREG(1) = s;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_interpinfo_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    STRING * const s = interpinfo_s(interp, cur_opcode[2]);
+    SREG(1) = s;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_warningson_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PARROT_WARNINGS_on(interp, IREG(1));
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_warningson_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PARROT_WARNINGS_on(interp, cur_opcode[1]);
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_warningsoff_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PARROT_WARNINGS_off(interp, IREG(1));
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_warningsoff_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PARROT_WARNINGS_off(interp, cur_opcode[1]);
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_errorson_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PARROT_ERRORS_on(interp, IREG(1));
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_errorson_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PARROT_ERRORS_on(interp, cur_opcode[1]);
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_errorsoff_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PARROT_ERRORS_off(interp, IREG(1));
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_errorsoff_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PARROT_ERRORS_off(interp, cur_opcode[1]);
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_runinterp_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    Interp * const new_interp = (Interp *)VTABLE_get_pointer(interp, PREG(1));
+    Interp_flags_SET(new_interp, PARROT_EXTERN_CODE_FLAG);
+    Parrot_switch_to_cs(new_interp, interp->code, 1);
+    runops(new_interp, REL_PC + IREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_runinterp_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    Interp * const new_interp = (Interp *)VTABLE_get_pointer(interp, PREG(1));
+    Interp_flags_SET(new_interp, PARROT_EXTERN_CODE_FLAG);
+    Parrot_switch_to_cs(new_interp, interp->code, 1);
+    runops(new_interp, REL_PC + cur_opcode[2]);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_getinterp_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_get_pmc_keyed_int(interp, interp->iglobals,
+           IGLOBALS_INTERPRETER);
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_sweep_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (cur_opcode[1])
+        Parrot_gc_mark_and_sweep(interp, 0);
+    else
+        if (Parrot_gc_impatient_pmcs(interp))
+            Parrot_gc_mark_and_sweep(interp, GC_lazy_FLAG);
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_collect(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    Parrot_gc_compact_memory_pool(interp);
+
+return (opcode_t *)cur_opcode + 1;}
+
+opcode_t *
+Parrot_sweepoff(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    Parrot_block_GC_mark(interp);
+
+return (opcode_t *)cur_opcode + 1;}
+
+opcode_t *
+Parrot_sweepon(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    Parrot_unblock_GC_mark(interp);
+
+return (opcode_t *)cur_opcode + 1;}
+
+opcode_t *
+Parrot_collectoff(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    Parrot_block_GC_sweep(interp);
+
+return (opcode_t *)cur_opcode + 1;}
+
+opcode_t *
+Parrot_collecton(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    Parrot_unblock_GC_sweep(interp);
+
+return (opcode_t *)cur_opcode + 1;}
+
+opcode_t *
+Parrot_needs_destroy_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    Parrot_gc_pmc_needs_early_collection(interp, PREG(1));
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_loadlib_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = Parrot_load_lib(interp, SREG(2), NULL);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_loadlib_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = Parrot_load_lib(interp, CONST(2)->u.string, NULL);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_loadlib_p_s_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = Parrot_load_lib(interp, SREG(2), PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_loadlib_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = Parrot_load_lib(interp, CONST(2)->u.string, PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_loadlib_p_s_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = Parrot_load_lib(interp, SREG(2), CONST(3)->u.key);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_loadlib_p_sc_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = Parrot_load_lib(interp, CONST(2)->u.string, CONST(3)->u.key);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_dlfunc_p_p_s_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    char * const  name      = Parrot_str_to_cstring(interp, (SREG(3)));
+    void         *dl_handle = NULL;
+    void         *ptr       = NULL;
+    funcptr_t     p;
+
+    if (!PMC_IS_NULL(PREG(2))
+    && PREG(2)->vtable->base_type == enum_class_ParrotLibrary
+    && VTABLE_defined(interp, PREG(2))) {
+        dl_handle = ((Parrot_ParrotLibrary_attributes*)PMC_data(PREG(2)))->dl_handle;
+    }
+
+    ptr = Parrot_dlsym(dl_handle, name);
+    p = D2FPTR(ptr);
+
+    if (p == NULLfunc) {
+        const char * err = Parrot_dlerror();
+        Parrot_warn(interp, PARROT_WARNINGS_UNDEF_FLAG,
+                "Symbol '%s' not found: %s\n", name, err ? err : "unknown reason");
+        PREG(1) = Parrot_pmc_new(interp, enum_class_Undef);
+    }
+    else {
+        PREG(1) = Parrot_pmc_new(interp, enum_class_NCI);
+        VTABLE_set_pointer_keyed_str(interp, PREG(1), SREG(4), F2DPTR(p));
+    }
+    Parrot_str_free_cstring(name);
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_dlfunc_p_p_sc_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    char * const  name      = Parrot_str_to_cstring(interp, (CONST(3)->u.string));
+    void         *dl_handle = NULL;
+    void         *ptr       = NULL;
+    funcptr_t     p;
+
+    if (!PMC_IS_NULL(PREG(2))
+    && PREG(2)->vtable->base_type == enum_class_ParrotLibrary
+    && VTABLE_defined(interp, PREG(2))) {
+        dl_handle = ((Parrot_ParrotLibrary_attributes*)PMC_data(PREG(2)))->dl_handle;
+    }
+
+    ptr = Parrot_dlsym(dl_handle, name);
+    p = D2FPTR(ptr);
+
+    if (p == NULLfunc) {
+        const char * err = Parrot_dlerror();
+        Parrot_warn(interp, PARROT_WARNINGS_UNDEF_FLAG,
+                "Symbol '%s' not found: %s\n", name, err ? err : "unknown reason");
+        PREG(1) = Parrot_pmc_new(interp, enum_class_Undef);
+    }
+    else {
+        PREG(1) = Parrot_pmc_new(interp, enum_class_NCI);
+        VTABLE_set_pointer_keyed_str(interp, PREG(1), SREG(4), F2DPTR(p));
+    }
+    Parrot_str_free_cstring(name);
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_dlfunc_p_p_s_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    char * const  name      = Parrot_str_to_cstring(interp, (SREG(3)));
+    void         *dl_handle = NULL;
+    void         *ptr       = NULL;
+    funcptr_t     p;
+
+    if (!PMC_IS_NULL(PREG(2))
+    && PREG(2)->vtable->base_type == enum_class_ParrotLibrary
+    && VTABLE_defined(interp, PREG(2))) {
+        dl_handle = ((Parrot_ParrotLibrary_attributes*)PMC_data(PREG(2)))->dl_handle;
+    }
+
+    ptr = Parrot_dlsym(dl_handle, name);
+    p = D2FPTR(ptr);
+
+    if (p == NULLfunc) {
+        const char * err = Parrot_dlerror();
+        Parrot_warn(interp, PARROT_WARNINGS_UNDEF_FLAG,
+                "Symbol '%s' not found: %s\n", name, err ? err : "unknown reason");
+        PREG(1) = Parrot_pmc_new(interp, enum_class_Undef);
+    }
+    else {
+        PREG(1) = Parrot_pmc_new(interp, enum_class_NCI);
+        VTABLE_set_pointer_keyed_str(interp, PREG(1), CONST(4)->u.string, F2DPTR(p));
+    }
+    Parrot_str_free_cstring(name);
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_dlfunc_p_p_sc_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    char * const  name      = Parrot_str_to_cstring(interp, (CONST(3)->u.string));
+    void         *dl_handle = NULL;
+    void         *ptr       = NULL;
+    funcptr_t     p;
+
+    if (!PMC_IS_NULL(PREG(2))
+    && PREG(2)->vtable->base_type == enum_class_ParrotLibrary
+    && VTABLE_defined(interp, PREG(2))) {
+        dl_handle = ((Parrot_ParrotLibrary_attributes*)PMC_data(PREG(2)))->dl_handle;
+    }
+
+    ptr = Parrot_dlsym(dl_handle, name);
+    p = D2FPTR(ptr);
+
+    if (p == NULLfunc) {
+        const char * err = Parrot_dlerror();
+        Parrot_warn(interp, PARROT_WARNINGS_UNDEF_FLAG,
+                "Symbol '%s' not found: %s\n", name, err ? err : "unknown reason");
+        PREG(1) = Parrot_pmc_new(interp, enum_class_Undef);
+    }
+    else {
+        PREG(1) = Parrot_pmc_new(interp, enum_class_NCI);
+        VTABLE_set_pointer_keyed_str(interp, PREG(1), CONST(4)->u.string, F2DPTR(p));
+    }
+    Parrot_str_free_cstring(name);
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_dlvar_p_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    char * const  name      = Parrot_str_to_cstring(interp, (SREG(3)));
+    void *        dl_handle = NULL;
+    void *        p         = NULL;
+
+    if (!PMC_IS_NULL(PREG(2))
+    && PREG(2)->vtable->base_type == enum_class_ParrotLibrary
+    && VTABLE_defined(interp, PREG(2))) {
+        dl_handle = ((Parrot_ParrotLibrary_attributes*)PMC_data(PREG(2)))->dl_handle;
+    }
+
+    p = Parrot_dlsym(dl_handle, name);
+
+    if (p == NULL) {
+        const char * const err = Parrot_dlerror();
+        Parrot_warn(interp, PARROT_WARNINGS_UNDEF_FLAG,
+                "Symbol '%s' not found: %s\n", name, err ? err : "unknown reason");
+        PREG(1) = Parrot_pmc_new(interp, enum_class_Undef);
+    }
+    else {
+        /* At this point we have the symbol's address. We just need to build
+           a PMC with it so we can get and set the value */
+        PREG(1) = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+        VTABLE_set_pointer(interp, PREG(1), p);
+    }
+    Parrot_str_free_cstring(name);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_dlvar_p_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    char * const  name      = Parrot_str_to_cstring(interp, (CONST(3)->u.string));
+    void *        dl_handle = NULL;
+    void *        p         = NULL;
+
+    if (!PMC_IS_NULL(PREG(2))
+    && PREG(2)->vtable->base_type == enum_class_ParrotLibrary
+    && VTABLE_defined(interp, PREG(2))) {
+        dl_handle = ((Parrot_ParrotLibrary_attributes*)PMC_data(PREG(2)))->dl_handle;
+    }
+
+    p = Parrot_dlsym(dl_handle, name);
+
+    if (p == NULL) {
+        const char * const err = Parrot_dlerror();
+        Parrot_warn(interp, PARROT_WARNINGS_UNDEF_FLAG,
+                "Symbol '%s' not found: %s\n", name, err ? err : "unknown reason");
+        PREG(1) = Parrot_pmc_new(interp, enum_class_Undef);
+    }
+    else {
+        /* At this point we have the symbol's address. We just need to build
+           a PMC with it so we can get and set the value */
+        PREG(1) = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+        VTABLE_set_pointer(interp, PREG(1), p);
+    }
+    Parrot_str_free_cstring(name);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_compreg_s_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const compreg_hash = VTABLE_get_pmc_keyed_int(interp,
+            interp->iglobals, IGLOBALS_COMPREG_HASH);
+    VTABLE_set_pmc_keyed_str(interp, compreg_hash, SREG(1), PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_compreg_sc_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const compreg_hash = VTABLE_get_pmc_keyed_int(interp,
+            interp->iglobals, IGLOBALS_COMPREG_HASH);
+    VTABLE_set_pmc_keyed_str(interp, compreg_hash, CONST(1)->u.string, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_compreg_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const compreg_hash = VTABLE_get_pmc_keyed_int(interp,
+            interp->iglobals, IGLOBALS_COMPREG_HASH);
+    PREG(1) = VTABLE_get_pmc_keyed_str(interp, compreg_hash, SREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_compreg_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const compreg_hash = VTABLE_get_pmc_keyed_int(interp,
+            interp->iglobals, IGLOBALS_COMPREG_HASH);
+    PREG(1) = VTABLE_get_pmc_keyed_str(interp, compreg_hash, CONST(2)->u.string);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_new_callback_p_p_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = Parrot_make_cb(interp, PREG(2), PREG(3), SREG(4));
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_new_callback_p_p_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = Parrot_make_cb(interp, PREG(2), PREG(3), CONST(4)->u.string);
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_annotations_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (interp->code->annotations) {
+        const opcode_t cur_pos = (cur_opcode + 2) - interp->code->base.data;
+        PREG(1) = PackFile_Annotations_lookup(interp, interp->code->annotations,
+                cur_pos, NULL);
+    }
+    else {
+        PREG(1) = Parrot_pmc_new(interp, enum_class_Hash);
+    }
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_annotations_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (interp->code->annotations) {
+        const opcode_t cur_pos = (cur_opcode + 3) - interp->code->base.data;
+        PREG(1) = PackFile_Annotations_lookup(interp, interp->code->annotations,
+                cur_pos, SREG(2));
+    }
+    else {
+        PREG(1) = PMCNULL;
+    }
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_annotations_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (interp->code->annotations) {
+        const opcode_t cur_pos = (cur_opcode + 3) - interp->code->base.data;
+        PREG(1) = PackFile_Annotations_lookup(interp, interp->code->annotations,
+                cur_pos, CONST(2)->u.string);
+    }
+    else {
+        PREG(1) = PMCNULL;
+    }
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_band_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) &= IREG(2);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_band_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) &= cur_opcode[2];
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_band_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    const INTVAL a = VTABLE_get_integer(interp, PREG(1));
+    const INTVAL b = a & IREG(2);
+    VTABLE_set_integer_native(interp, PREG(1), b);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_band_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    const INTVAL a = VTABLE_get_integer(interp, PREG(1));
+    const INTVAL b = a & cur_opcode[2];
+    VTABLE_set_integer_native(interp, PREG(1), b);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_band_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    const INTVAL a = VTABLE_get_integer(interp, PREG(1));
+    const INTVAL b = VTABLE_get_integer(interp, PREG(2));
+    VTABLE_set_integer_native(interp, PREG(1), a & b);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_band_i_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = IREG(2) & IREG(3);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_band_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = cur_opcode[2] & IREG(3);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_band_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = IREG(2) & cur_opcode[3];
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_band_p_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    const INTVAL a = VTABLE_get_integer(interp, PREG(2));
+    VTABLE_set_integer_native(interp, PREG(1), a & IREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_band_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    const INTVAL a = VTABLE_get_integer(interp, PREG(2));
+    VTABLE_set_integer_native(interp, PREG(1), a & cur_opcode[3]);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_band_p_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    const INTVAL a = VTABLE_get_integer(interp, PREG(2));
+    const INTVAL b = VTABLE_get_integer(interp, PREG(3));
+    VTABLE_set_integer_native(interp, PREG(1), a & b);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_bands_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    STRING * const a = VTABLE_get_string(interp, PREG(1));
+    STRING * const b = Parrot_str_bitwise_and(interp, a, SREG(2));
+    VTABLE_set_string_native(interp, PREG(1), b);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_bands_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    STRING * const a = VTABLE_get_string(interp, PREG(1));
+    STRING * const b = Parrot_str_bitwise_and(interp, a, CONST(2)->u.string);
+    VTABLE_set_string_native(interp, PREG(1), b);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_bands_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    STRING * a = VTABLE_get_string(interp, PREG(1));
+    STRING * const b = VTABLE_get_string(interp, PREG(2));
+    a = Parrot_str_bitwise_and(interp, a, b);
+    VTABLE_set_string_native(interp, PREG(1), a);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_bands_s_s_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_str_bitwise_and(interp, SREG(2), SREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_bands_s_sc_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_str_bitwise_and(interp, CONST(2)->u.string, SREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_bands_s_s_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_str_bitwise_and(interp, SREG(2), CONST(3)->u.string);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_bands_p_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    STRING * const a = VTABLE_get_string(interp, PREG(2));
+    STRING * const b = Parrot_str_bitwise_and(interp, a, SREG(3));
+    VTABLE_set_string_native(interp, PREG(1), b);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_bands_p_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    STRING * const a = VTABLE_get_string(interp, PREG(2));
+    STRING * const b = Parrot_str_bitwise_and(interp, a, CONST(3)->u.string);
+    VTABLE_set_string_native(interp, PREG(1), b);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_bands_p_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    STRING * const a = VTABLE_get_string(interp, PREG(2));
+    STRING * const b = VTABLE_get_string(interp, PREG(3));
+    STRING * const c = Parrot_str_bitwise_and(interp, a, b);
+    VTABLE_set_string_native(interp, PREG(1), c);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_bnot_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = ~ IREG(1);
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_bnot_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = ~ IREG(2);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_bnot_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    const INTVAL a = VTABLE_get_integer(interp, PREG(1));
+    VTABLE_set_integer_native(interp, PREG(1), ~a);
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_bnot_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    const INTVAL a = VTABLE_get_integer(interp, PREG(2));
+    PMC * const b = Parrot_pmc_new(interp, VTABLE_type(interp, PREG(2)));
+    VTABLE_set_integer_native(interp, b, ~a);
+    PREG(1) = b;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_bnots_s_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_str_bitwise_not(interp, SREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_bnots_s_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_str_bitwise_not(interp, CONST(2)->u.string);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_bnots_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    STRING * const a = VTABLE_get_string(interp, PREG(1));
+    STRING * const b = Parrot_str_bitwise_not(interp, a);
+    VTABLE_set_string_native(interp, PREG(1), b);
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_bnots_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    STRING * const a = VTABLE_get_string(interp, PREG(2));
+    STRING * const b = Parrot_str_bitwise_not(interp, a);
+    VTABLE_set_string_native(interp, PREG(1), b);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_bor_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) |= IREG(2);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_bor_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) |= cur_opcode[2];
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_bor_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    const INTVAL a = VTABLE_get_integer(interp, PREG(1));
+    VTABLE_set_integer_native(interp, PREG(1), a | IREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_bor_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    const INTVAL a = VTABLE_get_integer(interp, PREG(1));
+    VTABLE_set_integer_native(interp, PREG(1), a | cur_opcode[2]);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_bor_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    const INTVAL a = VTABLE_get_integer(interp, PREG(1));
+    const INTVAL b = VTABLE_get_integer(interp, PREG(2));
+    VTABLE_set_integer_native(interp, PREG(1), a | b);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_bor_i_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = IREG(2) | IREG(3);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_bor_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = cur_opcode[2] | IREG(3);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_bor_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = IREG(2) | cur_opcode[3];
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_bor_p_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    const INTVAL a = VTABLE_get_integer(interp, PREG(2));
+    VTABLE_set_integer_native(interp, PREG(1), a | IREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_bor_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    const INTVAL a = VTABLE_get_integer(interp, PREG(2));
+    VTABLE_set_integer_native(interp, PREG(1), a | cur_opcode[3]);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_bor_p_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    const INTVAL a = VTABLE_get_integer(interp, PREG(2));
+    const INTVAL b = VTABLE_get_integer(interp, PREG(3));
+    VTABLE_set_integer_native(interp, PREG(1), a | b);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_bors_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    STRING * const a = VTABLE_get_string(interp, PREG(1));
+    STRING * const b = Parrot_str_bitwise_or(interp, a, SREG(2));
+    VTABLE_set_string_native(interp, PREG(1), b);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_bors_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    STRING * const a = VTABLE_get_string(interp, PREG(1));
+    STRING * const b = Parrot_str_bitwise_or(interp, a, CONST(2)->u.string);
+    VTABLE_set_string_native(interp, PREG(1), b);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_bors_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    STRING * const a = VTABLE_get_string(interp, PREG(1));
+    STRING * const b = VTABLE_get_string(interp, PREG(2));
+    STRING * const c = Parrot_str_bitwise_or(interp, a, b);
+    VTABLE_set_string_native(interp, PREG(1), c);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_bors_s_s_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_str_bitwise_or(interp, SREG(2), SREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_bors_s_sc_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_str_bitwise_or(interp, CONST(2)->u.string, SREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_bors_s_s_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_str_bitwise_or(interp, SREG(2), CONST(3)->u.string);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_bors_p_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    STRING * const b = VTABLE_get_string(interp, PREG(2));
+    STRING * const c = Parrot_str_bitwise_or(interp, b, SREG(3));
+    VTABLE_set_string_native(interp, PREG(1), c);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_bors_p_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    STRING * const b = VTABLE_get_string(interp, PREG(2));
+    STRING * const c = Parrot_str_bitwise_or(interp, b, CONST(3)->u.string);
+    VTABLE_set_string_native(interp, PREG(1), c);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_bors_p_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    STRING * const a = VTABLE_get_string(interp, PREG(2));
+    STRING * const b = VTABLE_get_string(interp, PREG(3));
+    STRING * const c = Parrot_str_bitwise_or(interp, a, b);
+    VTABLE_set_string_native(interp, PREG(1), c);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_shl_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = bit_shift_left(IREG(1), IREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_shl_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = bit_shift_left(IREG(1), cur_opcode[2]);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_shl_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    const INTVAL a = VTABLE_get_integer(interp, PREG(1));
+    const INTVAL b = bit_shift_left(a, IREG(2));
+    VTABLE_set_integer_native(interp, PREG(1), b);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_shl_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    const INTVAL a = VTABLE_get_integer(interp, PREG(1));
+    const INTVAL b = bit_shift_left(a, cur_opcode[2]);
+    VTABLE_set_integer_native(interp, PREG(1), b);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_shl_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    const INTVAL a = VTABLE_get_integer(interp, PREG(1));
+    const INTVAL b = VTABLE_get_integer(interp, PREG(2));
+    const INTVAL c = bit_shift_left(a, b);
+    VTABLE_set_integer_native(interp, PREG(1), c);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_shl_i_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = bit_shift_left(IREG(2), IREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_shl_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = bit_shift_left(cur_opcode[2], IREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_shl_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = bit_shift_left(IREG(2), cur_opcode[3]);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_shl_p_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    const INTVAL a = VTABLE_get_integer(interp, PREG(2));
+    const INTVAL b = bit_shift_left(a, IREG(3));
+    VTABLE_set_integer_native(interp, PREG(1), b);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_shl_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    const INTVAL a = VTABLE_get_integer(interp, PREG(2));
+    const INTVAL b = bit_shift_left(a, cur_opcode[3]);
+    VTABLE_set_integer_native(interp, PREG(1), b);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_shl_p_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    const INTVAL a = VTABLE_get_integer(interp, PREG(2));
+    const INTVAL b = VTABLE_get_integer(interp, PREG(3));
+    const INTVAL c = bit_shift_left(a, b);
+    VTABLE_set_integer_native(interp, PREG(1), c);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_shr_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    const INTVAL signed_shift = -IREG(2);
+    IREG(1) = bit_shift_left(IREG(1), signed_shift);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_shr_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    const INTVAL signed_shift = -cur_opcode[2];
+    IREG(1) = bit_shift_left(IREG(1), signed_shift);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_shr_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    const INTVAL a = VTABLE_get_integer(interp, PREG(1));
+    const INTVAL b = bit_shift_left(a, -IREG(2));
+    VTABLE_set_integer_native(interp, PREG(1), b);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_shr_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    const INTVAL a = VTABLE_get_integer(interp, PREG(1));
+    const INTVAL b = bit_shift_left(a, -cur_opcode[2]);
+    VTABLE_set_integer_native(interp, PREG(1), b);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_shr_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    const INTVAL a = VTABLE_get_integer(interp, PREG(1));
+    const INTVAL b = VTABLE_get_integer(interp, PREG(2));
+    const INTVAL c = bit_shift_left(a, -b);
+    VTABLE_set_integer_native(interp, PREG(1), c);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_shr_i_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    const INTVAL signed_shift = -IREG(3);
+    IREG(1) = bit_shift_left(IREG(2), signed_shift);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_shr_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    const INTVAL signed_shift = -IREG(3);
+    IREG(1) = bit_shift_left(cur_opcode[2], signed_shift);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_shr_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    const INTVAL signed_shift = -cur_opcode[3];
+    IREG(1) = bit_shift_left(IREG(2), signed_shift);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_shr_p_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    const INTVAL a = VTABLE_get_integer(interp, PREG(2));
+    const INTVAL c = bit_shift_left(a, -IREG(3));
+    VTABLE_set_integer_native(interp, PREG(1), c);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_shr_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    const INTVAL a = VTABLE_get_integer(interp, PREG(2));
+    const INTVAL c = bit_shift_left(a, -cur_opcode[3]);
+    VTABLE_set_integer_native(interp, PREG(1), c);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_shr_p_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    const INTVAL a = VTABLE_get_integer(interp, PREG(2));
+    const INTVAL b = VTABLE_get_integer(interp, PREG(3));
+    const INTVAL c = bit_shift_left(a, -b);
+    VTABLE_set_integer_native(interp, PREG(1), c);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_lsr_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    const UINTVAL a = (UINTVAL)IREG(1);
+    const UINTVAL b = a >> IREG(2);
+    IREG(1) = (INTVAL)b;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_lsr_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    const UINTVAL a = (UINTVAL)IREG(1);
+    const UINTVAL b = a >> cur_opcode[2];
+    IREG(1) = (INTVAL)b;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_lsr_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, PREG(1));
+    const UINTVAL b = a >> IREG(2);
+    VTABLE_set_integer_native(interp, PREG(1), (INTVAL)b);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_lsr_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, PREG(1));
+    const UINTVAL b = a >> cur_opcode[2];
+    VTABLE_set_integer_native(interp, PREG(1), (INTVAL)b);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_lsr_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, PREG(1));
+    const UINTVAL b = (UINTVAL)VTABLE_get_integer(interp, PREG(2));
+    const UINTVAL c = a >> b;
+    VTABLE_set_integer_native(interp, PREG(1), (INTVAL)c);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_lsr_i_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = (INTVAL)((UINTVAL)IREG(2) >> IREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_lsr_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = (INTVAL)((UINTVAL)cur_opcode[2] >> IREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_lsr_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = (INTVAL)((UINTVAL)IREG(2) >> cur_opcode[3]);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_lsr_p_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, PREG(2));
+    const UINTVAL b = (UINTVAL)IREG(3);
+    const UINTVAL c = a >> b;
+    VTABLE_set_integer_native(interp, PREG(1), (INTVAL)c);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_lsr_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, PREG(2));
+    const UINTVAL b = (UINTVAL)cur_opcode[3];
+    const UINTVAL c = a >> b;
+    VTABLE_set_integer_native(interp, PREG(1), (INTVAL)c);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_lsr_p_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, PREG(2));
+    const UINTVAL b = (UINTVAL)VTABLE_get_integer(interp, PREG(3));
+    const UINTVAL c = a >> b;
+    VTABLE_set_integer_native(interp, PREG(3), (INTVAL)c);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_rot_i_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    const INTVAL r = IREG(2);
+    INTVAL s = IREG(3);
+    const INTVAL w = cur_opcode[4];
+    INTVAL d, t;
+    if (s < 0)
+        s += w;
+    d = r << s;
+    t = w - s;
+    t = (INTVAL)((UINTVAL)r >> t);
+    d |= t;
+    IREG(1) = d;
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_rot_i_ic_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    const INTVAL r = cur_opcode[2];
+    INTVAL s = IREG(3);
+    const INTVAL w = cur_opcode[4];
+    INTVAL d, t;
+    if (s < 0)
+        s += w;
+    d = r << s;
+    t = w - s;
+    t = (INTVAL)((UINTVAL)r >> t);
+    d |= t;
+    IREG(1) = d;
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_rot_i_i_ic_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    const INTVAL r = IREG(2);
+    INTVAL s = cur_opcode[3];
+    const INTVAL w = cur_opcode[4];
+    INTVAL d, t;
+    if (s < 0)
+        s += w;
+    d = r << s;
+    t = w - s;
+    t = (INTVAL)((UINTVAL)r >> t);
+    d |= t;
+    IREG(1) = d;
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_bxor_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) ^= IREG(2);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_bxor_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) ^= cur_opcode[2];
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_bxor_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, PREG(1));
+    const UINTVAL b = a ^ IREG(2);
+    VTABLE_set_integer_native(interp, PREG(1), (INTVAL)b);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_bxor_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, PREG(1));
+    const UINTVAL b = a ^ cur_opcode[2];
+    VTABLE_set_integer_native(interp, PREG(1), (INTVAL)b);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_bxor_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, PREG(1));
+    const UINTVAL b = (UINTVAL)VTABLE_get_integer(interp, PREG(2));
+    const UINTVAL c = a ^ b;
+    VTABLE_set_integer_native(interp, PREG(1), (INTVAL)c);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_bxor_i_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = IREG(2) ^ IREG(3);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_bxor_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = cur_opcode[2] ^ IREG(3);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_bxor_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = IREG(2) ^ cur_opcode[3];
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_bxor_p_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, PREG(2));
+    const UINTVAL b = a ^ IREG(3);
+    VTABLE_set_integer_native(interp, PREG(1), (INTVAL)b);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_bxor_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, PREG(2));
+    const UINTVAL b = a ^ cur_opcode[3];
+    VTABLE_set_integer_native(interp, PREG(1), (INTVAL)b);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_bxor_p_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, PREG(2));
+    const UINTVAL b = (UINTVAL)VTABLE_get_integer(interp, PREG(3));
+    const UINTVAL c = a ^ b;
+    VTABLE_set_integer_native(interp, PREG(1), (INTVAL)c);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_bxors_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    STRING * const a = VTABLE_get_string(interp, PREG(1));
+    STRING * const b = Parrot_str_bitwise_xor(interp, a, SREG(2));
+    VTABLE_set_string_native(interp, PREG(1), b);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_bxors_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    STRING * const a = VTABLE_get_string(interp, PREG(1));
+    STRING * const b = Parrot_str_bitwise_xor(interp, a, CONST(2)->u.string);
+    VTABLE_set_string_native(interp, PREG(1), b);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_bxors_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    STRING * const a = VTABLE_get_string(interp, PREG(1));
+    STRING * const b = VTABLE_get_string(interp, PREG(2));
+    STRING * const c = Parrot_str_bitwise_xor(interp, a, b);
+    VTABLE_set_string_native(interp, PREG(1), c);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_bxors_s_s_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_str_bitwise_xor(interp, SREG(2), SREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_bxors_s_sc_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_str_bitwise_xor(interp, CONST(2)->u.string, SREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_bxors_s_s_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_str_bitwise_xor(interp, SREG(2), CONST(3)->u.string);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_bxors_p_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    STRING * const a = VTABLE_get_string(interp, PREG(2));
+    STRING * const b = Parrot_str_bitwise_xor(interp, a, SREG(3));
+    VTABLE_set_string_native(interp, PREG(1), b);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_bxors_p_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    STRING * const a = VTABLE_get_string(interp, PREG(2));
+    STRING * const b = Parrot_str_bitwise_xor(interp, a, CONST(3)->u.string);
+    VTABLE_set_string_native(interp, PREG(1), b);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_bxors_p_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    STRING * const a = VTABLE_get_string(interp, PREG(2));
+    STRING * const b = VTABLE_get_string(interp, PREG(3));
+    STRING * const c = Parrot_str_bitwise_xor(interp, a, b);
+    VTABLE_set_string_native(interp, PREG(1), c);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_eq_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (IREG(1) == IREG(2)) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_eq_ic_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (cur_opcode[1] == IREG(2)) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_eq_i_ic_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (IREG(1) == cur_opcode[2]) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_eq_n_n_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (NREG(1) == NREG(2)) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_eq_nc_n_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (CONST(1)->u.number == NREG(2)) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_eq_n_nc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (NREG(1) == CONST(2)->u.number) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_eq_s_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (Parrot_str_equal(interp, SREG(1), SREG(2))) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_eq_sc_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (Parrot_str_equal(interp, CONST(1)->u.string, SREG(2))) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_eq_s_sc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (Parrot_str_equal(interp, SREG(1), CONST(2)->u.string)) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_eq_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (VTABLE_is_equal(interp, PREG(1), PREG(2))) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_eq_p_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const temp = Parrot_pmc_new_temporary(interp, enum_class_Integer);
+    VTABLE_set_integer_native(interp, temp, IREG(2));
+
+    if (VTABLE_is_equal(interp, PREG(1), temp)) {
+        Parrot_pmc_free_temporary(interp, temp);
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+    Parrot_pmc_free_temporary(interp, temp);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_eq_p_ic_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const temp = Parrot_pmc_new_temporary(interp, enum_class_Integer);
+    VTABLE_set_integer_native(interp, temp, cur_opcode[2]);
+
+    if (VTABLE_is_equal(interp, PREG(1), temp)) {
+        Parrot_pmc_free_temporary(interp, temp);
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+    Parrot_pmc_free_temporary(interp, temp);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_eq_p_n_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    /*
+     * the get_number and get_string should probably
+     * be also replaced with code like above, as
+     * overriding the compare multi subs wouldn't
+     * have any effect with the current code
+     */
+    if (VTABLE_get_number(interp, PREG(1)) == NREG(2)) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_eq_p_nc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    /*
+     * the get_number and get_string should probably
+     * be also replaced with code like above, as
+     * overriding the compare multi subs wouldn't
+     * have any effect with the current code
+     */
+    if (VTABLE_get_number(interp, PREG(1)) == CONST(2)->u.number) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_eq_p_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (Parrot_str_equal(interp, VTABLE_get_string(interp, PREG(1)), SREG(2))) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_eq_p_sc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (Parrot_str_equal(interp, VTABLE_get_string(interp, PREG(1)), CONST(2)->u.string)) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_eq_str_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (VTABLE_is_equal_string(interp, PREG(1), PREG(2))) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_eq_num_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (VTABLE_is_equal_num(interp, PREG(1), PREG(2))) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_eq_addr_s_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (SREG(1) == SREG(2)) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_eq_addr_sc_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (CONST(1)->u.string == SREG(2)) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_eq_addr_s_sc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (SREG(1) == CONST(2)->u.string) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_eq_addr_sc_sc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (CONST(1)->u.string == CONST(2)->u.string) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_eq_addr_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (PREG(1) == PREG(2)) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_ne_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (IREG(1) != IREG(2)) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_ne_ic_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (cur_opcode[1] != IREG(2)) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_ne_i_ic_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (IREG(1) != cur_opcode[2]) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_ne_n_n_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (NREG(1) != NREG(2)) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_ne_nc_n_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (CONST(1)->u.number != NREG(2)) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_ne_n_nc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (NREG(1) != CONST(2)->u.number) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_ne_s_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (Parrot_str_not_equal(interp, SREG(1), SREG(2))) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_ne_sc_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (Parrot_str_not_equal(interp, CONST(1)->u.string, SREG(2))) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_ne_s_sc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (Parrot_str_not_equal(interp, SREG(1), CONST(2)->u.string)) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_ne_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (!VTABLE_is_equal(interp, PREG(1), PREG(2))) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_ne_p_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const temp = Parrot_pmc_new_temporary(interp, enum_class_Integer);
+    VTABLE_set_integer_native(interp, temp, IREG(2));
+
+    if (!VTABLE_is_equal(interp, PREG(1), temp)) {
+        Parrot_pmc_free_temporary(interp, temp);
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+    Parrot_pmc_free_temporary(interp, temp);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_ne_p_ic_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const temp = Parrot_pmc_new_temporary(interp, enum_class_Integer);
+    VTABLE_set_integer_native(interp, temp, cur_opcode[2]);
+
+    if (!VTABLE_is_equal(interp, PREG(1), temp)) {
+        Parrot_pmc_free_temporary(interp, temp);
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+    Parrot_pmc_free_temporary(interp, temp);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_ne_p_n_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (VTABLE_get_number(interp, PREG(1)) != NREG(2)) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_ne_p_nc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (VTABLE_get_number(interp, PREG(1)) != CONST(2)->u.number) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_ne_p_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (Parrot_str_not_equal(interp, VTABLE_get_string(interp, PREG(1)), SREG(2))) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_ne_p_sc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (Parrot_str_not_equal(interp, VTABLE_get_string(interp, PREG(1)), CONST(2)->u.string)) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_ne_str_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (VTABLE_cmp_string(interp, PREG(1), PREG(2)) != 0) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_ne_num_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (VTABLE_cmp_num(interp, PREG(1), PREG(2)) != 0) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_ne_addr_s_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (SREG(1) != SREG(2)) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_ne_addr_sc_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (CONST(1)->u.string != SREG(2)) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_ne_addr_s_sc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (SREG(1) != CONST(2)->u.string) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_ne_addr_sc_sc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (CONST(1)->u.string != CONST(2)->u.string) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_ne_addr_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (PREG(1) != PREG(2)) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_lt_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (IREG(1) < IREG(2)) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_lt_ic_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (cur_opcode[1] < IREG(2)) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_lt_i_ic_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (IREG(1) < cur_opcode[2]) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_lt_n_n_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (NREG(1) < NREG(2)) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_lt_nc_n_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (CONST(1)->u.number < NREG(2)) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_lt_n_nc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (NREG(1) < CONST(2)->u.number) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_lt_s_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (Parrot_str_compare(interp, SREG(1), SREG(2)) < 0) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_lt_sc_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (Parrot_str_compare(interp, CONST(1)->u.string, SREG(2)) < 0) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_lt_s_sc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (Parrot_str_compare(interp, SREG(1), CONST(2)->u.string) < 0) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_lt_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (VTABLE_cmp(interp, PREG(1), PREG(2)) < 0) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_lt_p_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const temp = Parrot_pmc_new_temporary(interp, enum_class_Integer);
+    VTABLE_set_integer_native(interp, temp, IREG(2));
+
+    if (VTABLE_cmp(interp, PREG(1), temp) < 0) {
+        Parrot_pmc_free_temporary(interp, temp);
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+    Parrot_pmc_free_temporary(interp, temp);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_lt_p_ic_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const temp = Parrot_pmc_new_temporary(interp, enum_class_Integer);
+    VTABLE_set_integer_native(interp, temp, cur_opcode[2]);
+
+    if (VTABLE_cmp(interp, PREG(1), temp) < 0) {
+        Parrot_pmc_free_temporary(interp, temp);
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+    Parrot_pmc_free_temporary(interp, temp);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_lt_p_n_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (VTABLE_get_number(interp, PREG(1)) < NREG(2)) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_lt_p_nc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (VTABLE_get_number(interp, PREG(1)) < CONST(2)->u.number) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_lt_p_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (Parrot_str_compare(interp, VTABLE_get_string(interp, PREG(1)), SREG(2)) < 0) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_lt_p_sc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (Parrot_str_compare(interp, VTABLE_get_string(interp, PREG(1)), CONST(2)->u.string) < 0) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_lt_str_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (VTABLE_cmp_string(interp, PREG(1), PREG(2)) < 0) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_lt_num_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (VTABLE_cmp_num(interp, PREG(1), PREG(2)) < 0) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_le_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (IREG(1) <= IREG(2)) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_le_ic_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (cur_opcode[1] <= IREG(2)) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_le_i_ic_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (IREG(1) <= cur_opcode[2]) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_le_n_n_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (NREG(1) <= NREG(2)) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_le_nc_n_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (CONST(1)->u.number <= NREG(2)) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_le_n_nc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (NREG(1) <= CONST(2)->u.number) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_le_s_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (Parrot_str_compare(interp, SREG(1), SREG(2)) <= 0) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_le_sc_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (Parrot_str_compare(interp, CONST(1)->u.string, SREG(2)) <= 0) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_le_s_sc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (Parrot_str_compare(interp, SREG(1), CONST(2)->u.string) <= 0) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_le_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (VTABLE_cmp(interp, PREG(1), PREG(2)) <= 0) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_le_p_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const temp = Parrot_pmc_new_temporary(interp, enum_class_Integer);
+    VTABLE_set_integer_native(interp, temp, IREG(2));
+
+    if (VTABLE_cmp(interp, PREG(1), temp) <= 0) {
+        Parrot_pmc_free_temporary(interp, temp);
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+    Parrot_pmc_free_temporary(interp, temp);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_le_p_ic_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const temp = Parrot_pmc_new_temporary(interp, enum_class_Integer);
+    VTABLE_set_integer_native(interp, temp, cur_opcode[2]);
+
+    if (VTABLE_cmp(interp, PREG(1), temp) <= 0) {
+        Parrot_pmc_free_temporary(interp, temp);
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+    Parrot_pmc_free_temporary(interp, temp);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_le_p_n_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (VTABLE_get_number(interp, PREG(1)) <= NREG(2)) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_le_p_nc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (VTABLE_get_number(interp, PREG(1)) <= CONST(2)->u.number) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_le_p_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (Parrot_str_compare(interp, VTABLE_get_string(interp, PREG(1)), SREG(2)) <= 0) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_le_p_sc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (Parrot_str_compare(interp, VTABLE_get_string(interp, PREG(1)), CONST(2)->u.string) <= 0) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_le_str_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (VTABLE_cmp_string(interp, PREG(1), PREG(2)) <= 0) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_le_num_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (VTABLE_cmp_num(interp, PREG(1), PREG(2)) <= 0) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_gt_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (VTABLE_cmp(interp, PREG(1), PREG(2)) > 0) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_gt_p_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const temp = Parrot_pmc_new_temporary(interp, enum_class_Integer);
+    VTABLE_set_integer_native(interp, temp, IREG(2));
+
+    if (VTABLE_cmp(interp, PREG(1), temp) > 0) {
+        Parrot_pmc_free_temporary(interp, temp);
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+    Parrot_pmc_free_temporary(interp, temp);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_gt_p_ic_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const temp = Parrot_pmc_new_temporary(interp, enum_class_Integer);
+    VTABLE_set_integer_native(interp, temp, cur_opcode[2]);
+
+    if (VTABLE_cmp(interp, PREG(1), temp) > 0) {
+        Parrot_pmc_free_temporary(interp, temp);
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+    Parrot_pmc_free_temporary(interp, temp);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_gt_p_n_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (VTABLE_get_number(interp, PREG(1)) > NREG(2)) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_gt_p_nc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (VTABLE_get_number(interp, PREG(1)) > CONST(2)->u.number) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_gt_p_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (Parrot_str_compare(interp, VTABLE_get_string(interp, PREG(1)), SREG(2)) > 0) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_gt_p_sc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (Parrot_str_compare(interp, VTABLE_get_string(interp, PREG(1)), CONST(2)->u.string) > 0) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_gt_str_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (VTABLE_cmp_string(interp, PREG(1), PREG(2)) > 0) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_gt_num_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (VTABLE_cmp_num(interp, PREG(1), PREG(2)) > 0) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_ge_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (VTABLE_cmp(interp, PREG(1), PREG(2)) >= 0) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_ge_p_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const temp = Parrot_pmc_new_temporary(interp, enum_class_Integer);
+    VTABLE_set_integer_native(interp, temp, IREG(2));
+
+    if (VTABLE_cmp(interp, PREG(1), temp) >= 0) {
+        Parrot_pmc_free_temporary(interp, temp);
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+    Parrot_pmc_free_temporary(interp, temp);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_ge_p_ic_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const temp = Parrot_pmc_new_temporary(interp, enum_class_Integer);
+    VTABLE_set_integer_native(interp, temp, cur_opcode[2]);
+
+    if (VTABLE_cmp(interp, PREG(1), temp) >= 0) {
+        Parrot_pmc_free_temporary(interp, temp);
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+    Parrot_pmc_free_temporary(interp, temp);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_ge_p_n_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (VTABLE_get_number(interp, PREG(1)) >= NREG(2)) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_ge_p_nc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (VTABLE_get_number(interp, PREG(1)) >= CONST(2)->u.number) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_ge_p_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (Parrot_str_compare(interp, VTABLE_get_string(interp, PREG(1)), SREG(2)) >= 0) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_ge_p_sc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (Parrot_str_compare(interp, VTABLE_get_string(interp, PREG(1)), CONST(2)->u.string) >= 0) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_ge_str_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (VTABLE_cmp_string(interp, PREG(1), PREG(2)) >= 0) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_ge_num_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (VTABLE_cmp_num(interp, PREG(1), PREG(2)) >= 0) {
+        return (opcode_t *)cur_opcode + cur_opcode[3];
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_if_null_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (PMC_IS_NULL(PREG(1))) {
+        return (opcode_t *)cur_opcode + cur_opcode[2];
+    }
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_if_null_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (STRING_IS_NULL(SREG(1))) {
+        return (opcode_t *)cur_opcode + cur_opcode[2];
+    }
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_unless_null_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (!PMC_IS_NULL(PREG(1))) {
+        return (opcode_t *)cur_opcode + cur_opcode[2];
+    }
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_unless_null_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (!STRING_IS_NULL(SREG(1))) {
+        return (opcode_t *)cur_opcode + cur_opcode[2];
+    }
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_cmp_i_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = IREG(2) < IREG(3) ? -1 :
+         IREG(2) > IREG(3) ? +1 :
+         0;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_cmp_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = cur_opcode[2] < IREG(3) ? -1 :
+         cur_opcode[2] > IREG(3) ? +1 :
+         0;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_cmp_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = IREG(2) < cur_opcode[3] ? -1 :
+         IREG(2) > cur_opcode[3] ? +1 :
+         0;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_cmp_i_n_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = NREG(2) < NREG(3) ? -1 :
+         NREG(2) > NREG(3) ? +1 :
+         0;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_cmp_i_nc_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = CONST(2)->u.number < NREG(3) ? -1 :
+         CONST(2)->u.number > NREG(3) ? +1 :
+         0;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_cmp_i_n_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = NREG(2) < CONST(3)->u.number ? -1 :
+         NREG(2) > CONST(3)->u.number ? +1 :
+         0;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_cmp_i_s_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = Parrot_str_compare(interp, SREG(2), SREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_cmp_i_sc_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = Parrot_str_compare(interp, CONST(2)->u.string, SREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_cmp_i_s_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = Parrot_str_compare(interp, SREG(2), CONST(3)->u.string);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_cmp_i_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = VTABLE_cmp(interp, PREG(2), PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_cmp_i_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    const INTVAL l = VTABLE_get_integer(interp, PREG(2));
+    IREG(1) = l < IREG(3) ? -1 :
+         l > IREG(3) ? +1 :
+         0;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_cmp_i_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    const INTVAL l = VTABLE_get_integer(interp, PREG(2));
+    IREG(1) = l < cur_opcode[3] ? -1 :
+         l > cur_opcode[3] ? +1 :
+         0;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_cmp_i_p_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    const FLOATVAL l = VTABLE_get_number(interp, PREG(2));
+    IREG(1) = l < NREG(3) ? -1 :
+         l > NREG(3) ? +1 :
+         0;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_cmp_i_p_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    const FLOATVAL l = VTABLE_get_number(interp, PREG(2));
+    IREG(1) = l < CONST(3)->u.number ? -1 :
+         l > CONST(3)->u.number ? +1 :
+         0;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_cmp_i_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    STRING* const l = VTABLE_get_string(interp, PREG(2));
+    IREG(1) = Parrot_str_compare(interp, l, SREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_cmp_i_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    STRING* const l = VTABLE_get_string(interp, PREG(2));
+    IREG(1) = Parrot_str_compare(interp, l, CONST(3)->u.string);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_cmp_str_i_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = VTABLE_cmp_string(interp, PREG(2), PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_cmp_num_i_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = VTABLE_cmp_num(interp, PREG(2), PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_cmp_pmc_p_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_cmp_pmc(interp, PREG(2), PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_issame_i_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (PREG(2) == PREG(3))
+        IREG(1) = 1;
+    else
+        IREG(1) = VTABLE_is_same(interp, PREG(2), PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_issame_i_s_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = SREG(2) == SREG(3);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_issame_i_sc_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = CONST(2)->u.string == SREG(3);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_issame_i_s_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = SREG(2) == CONST(3)->u.string;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_issame_i_sc_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = CONST(2)->u.string == CONST(3)->u.string;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_isntsame_i_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (PREG(2) == PREG(3))
+        IREG(1) = 0;
+    else
+        IREG(1) = !VTABLE_is_same(interp, PREG(2), PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_isntsame_i_s_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = SREG(2) != SREG(3);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_isntsame_i_sc_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = CONST(2)->u.string != SREG(3);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_isntsame_i_s_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = SREG(2) != CONST(3)->u.string;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_isntsame_i_sc_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = CONST(2)->u.string != CONST(3)->u.string;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_istrue_i_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = VTABLE_get_bool(interp, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_isfalse_i_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = !VTABLE_get_bool(interp, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_isnull_i_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = PMC_IS_NULL(PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_isnull_i_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = PMC_IS_NULL(CONST(2)->u.key);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_isnull_i_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = STRING_IS_NULL(SREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_isnull_i_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = STRING_IS_NULL(CONST(2)->u.string);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_isgt_i_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = (VTABLE_cmp(interp, PREG(2), PREG(3)) > 0);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_isge_i_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = (VTABLE_cmp(interp, PREG(2), PREG(3)) >= 0);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_isle_i_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = IREG(2) <= IREG(3);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_isle_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = cur_opcode[2] <= IREG(3);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_isle_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = IREG(2) <= cur_opcode[3];
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_isle_i_n_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = NREG(2) <= NREG(3);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_isle_i_nc_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = CONST(2)->u.number <= NREG(3);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_isle_i_n_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = NREG(2) <= CONST(3)->u.number;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_isle_i_s_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = Parrot_str_compare(interp, SREG(2), SREG(3)) <= 0;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_isle_i_sc_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = Parrot_str_compare(interp, CONST(2)->u.string, SREG(3)) <= 0;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_isle_i_s_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = Parrot_str_compare(interp, SREG(2), CONST(3)->u.string) <= 0;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_isle_i_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = (VTABLE_cmp(interp, PREG(2), PREG(3)) <= 0);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_islt_i_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = (IREG(2) < IREG(3)) ? 1 : 0;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_islt_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = (cur_opcode[2] < IREG(3)) ? 1 : 0;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_islt_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = (IREG(2) < cur_opcode[3]) ? 1 : 0;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_islt_i_n_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = NREG(2) < NREG(3);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_islt_i_nc_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = CONST(2)->u.number < NREG(3);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_islt_i_n_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = NREG(2) < CONST(3)->u.number;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_islt_i_s_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = Parrot_str_compare(interp, SREG(2), SREG(3)) < 0;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_islt_i_sc_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = Parrot_str_compare(interp, CONST(2)->u.string, SREG(3)) < 0;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_islt_i_s_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = Parrot_str_compare(interp, SREG(2), CONST(3)->u.string) < 0;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_islt_i_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = (VTABLE_cmp(interp, PREG(2), PREG(3)) < 0);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_iseq_i_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = (IREG(2) == IREG(3)) ? 1 : 0;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_iseq_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = (cur_opcode[2] == IREG(3)) ? 1 : 0;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_iseq_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = (IREG(2) == cur_opcode[3]) ? 1 : 0;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_iseq_i_n_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = NREG(2) == NREG(3);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_iseq_i_nc_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = CONST(2)->u.number == NREG(3);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_iseq_i_n_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = NREG(2) == CONST(3)->u.number;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_iseq_i_s_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = (Parrot_str_equal(interp, SREG(2), SREG(3)) ? 1 : 0);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_iseq_i_sc_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = (Parrot_str_equal(interp, CONST(2)->u.string, SREG(3)) ? 1 : 0);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_iseq_i_s_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = (Parrot_str_equal(interp, SREG(2), CONST(3)->u.string) ? 1 : 0);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_iseq_i_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (&PREG(2) == &PREG(3))
+        IREG(1) = 1;
+    else
+        IREG(1) = VTABLE_is_equal(interp, PREG(2), PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_isne_i_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = (IREG(2) == IREG(3)) ? 0 : 1;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_isne_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = (cur_opcode[2] == IREG(3)) ? 0 : 1;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_isne_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = (IREG(2) == cur_opcode[3]) ? 0 : 1;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_isne_i_n_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = NREG(2) != NREG(3);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_isne_i_nc_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = CONST(2)->u.number != NREG(3);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_isne_i_n_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = NREG(2) != CONST(3)->u.number;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_isne_i_s_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = (Parrot_str_not_equal(interp, SREG(2), SREG(3)) ? 1 : 0);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_isne_i_sc_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = (Parrot_str_not_equal(interp, CONST(2)->u.string, SREG(3)) ? 1 : 0);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_isne_i_s_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = (Parrot_str_not_equal(interp, SREG(2), CONST(3)->u.string) ? 1 : 0);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_isne_i_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (&PREG(2) == &PREG(3))
+        IREG(1) = 0;
+    else
+        IREG(1) = !VTABLE_is_equal(interp, PREG(2), PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_and_i_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = IREG(2) ? IREG(3) : IREG(2);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_and_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = cur_opcode[2] ? IREG(3) : cur_opcode[2];
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_and_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = IREG(2) ? cur_opcode[3] : IREG(2);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_and_p_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_logical_and(interp, PREG(2), PREG(3), PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_not_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = ! IREG(1);
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_not_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = ! IREG(2);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_not_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_i_logical_not(interp, PREG(1));
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_not_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_logical_not(interp, PREG(2), PREG(1));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_or_i_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = IREG(2) ? IREG(2) : IREG(3);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_or_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = cur_opcode[2] ? cur_opcode[2] : IREG(3);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_or_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = IREG(2) ? IREG(2) : cur_opcode[3];
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_or_p_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_logical_or(interp, PREG(2), PREG(3), PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_xor_i_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = (IREG(2) && ! IREG(3)) ? IREG(2) : (IREG(3) && ! IREG(2)) ? IREG(3) : 0;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_xor_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = (cur_opcode[2] && ! IREG(3)) ? cur_opcode[2] : (IREG(3) && ! cur_opcode[2]) ? IREG(3) : 0;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_xor_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = (IREG(2) && ! cur_opcode[3]) ? IREG(2) : (cur_opcode[3] && ! IREG(2)) ? cur_opcode[3] : 0;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_xor_p_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_logical_xor(interp, PREG(2), PREG(3), PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_debug_init(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    Parrot_debugger_init(interp);
+
+return (opcode_t *)cur_opcode + 1;}
+
+opcode_t *
+Parrot_debug_load_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    Parrot_debugger_load(interp, CONST(1)->u.string);
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_debug_break(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    Parrot_debugger_break(interp, cur_opcode);
+
+return (opcode_t *)cur_opcode + 1;}
+
+opcode_t *
+Parrot_debug_print(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (!interp->pdb) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 1,
+            EXCEPTION_INVALID_OPERATION,
+            "Initialize debugger with debug_init before using debug_print");
+        return (opcode_t *)handler;
+    }
+
+    if (!(interp->pdb->state & PDB_BREAK)) {
+        PDB_print(interp, "I");
+        PDB_print(interp, "N");
+        PDB_print(interp, "S");
+        PDB_print(interp, "P");
+    }
+
+return (opcode_t *)cur_opcode + 1;}
+
+opcode_t *
+Parrot_backtrace(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PDB_backtrace(interp);
+
+return (opcode_t *)cur_opcode + 1;}
+
+opcode_t *
+Parrot_getline_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    Parrot_Context_info info;
+    Parrot_Context_get_info(interp, CURRENT_CONTEXT(interp), &info);
+    IREG(1) = info.line;
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_getfile_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    Parrot_Context_info info;
+    Parrot_Context_get_info(interp, CURRENT_CONTEXT(interp), &info);
+    SREG(1) = info.file;
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_close_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    Parrot_io_close(interp, PREG(1));
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_fdopen_p_i_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = Parrot_io_fdopen(interp, PMCNULL, (PIOHANDLE)IREG(2), SREG(3));
+    if (!PREG(1))
+        PREG(1) = Parrot_pmc_new(interp, enum_class_Undef);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_fdopen_p_ic_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = Parrot_io_fdopen(interp, PMCNULL, (PIOHANDLE)cur_opcode[2], SREG(3));
+    if (!PREG(1))
+        PREG(1) = Parrot_pmc_new(interp, enum_class_Undef);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_fdopen_p_i_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = Parrot_io_fdopen(interp, PMCNULL, (PIOHANDLE)IREG(2), CONST(3)->u.string);
+    if (!PREG(1))
+        PREG(1) = Parrot_pmc_new(interp, enum_class_Undef);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_fdopen_p_ic_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = Parrot_io_fdopen(interp, PMCNULL, (PIOHANDLE)cur_opcode[2], CONST(3)->u.string);
+    if (!PREG(1))
+        PREG(1) = Parrot_pmc_new(interp, enum_class_Undef);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_getstdin_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = _PIO_STDIN(interp);
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_getstdout_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = _PIO_STDOUT(interp);
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_getstderr_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = _PIO_STDERR(interp);
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_setstdin_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    _PIO_STDIN(interp) = PREG(1);
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_setstdout_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    _PIO_STDOUT(interp) = PREG(1);
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_setstderr_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    _PIO_STDERR(interp) = PREG(1);
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_open_p_s_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (STRING_IS_NULL(SREG(2)) || STRING_IS_NULL(SREG(3))) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
+            EXCEPTION_UNEXPECTED_NULL, "Invalid open");
+        return (opcode_t *)handler;
+    }
+    else {
+        PREG(1) = Parrot_io_open(interp, PMCNULL, SREG(2), SREG(3));
+        PARROT_ASSERT(! PMC_IS_NULL(PREG(1)));
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_open_p_sc_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (STRING_IS_NULL(CONST(2)->u.string) || STRING_IS_NULL(SREG(3))) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
+            EXCEPTION_UNEXPECTED_NULL, "Invalid open");
+        return (opcode_t *)handler;
+    }
+    else {
+        PREG(1) = Parrot_io_open(interp, PMCNULL, CONST(2)->u.string, SREG(3));
+        PARROT_ASSERT(! PMC_IS_NULL(PREG(1)));
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_open_p_s_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (STRING_IS_NULL(SREG(2)) || STRING_IS_NULL(CONST(3)->u.string)) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
+            EXCEPTION_UNEXPECTED_NULL, "Invalid open");
+        return (opcode_t *)handler;
+    }
+    else {
+        PREG(1) = Parrot_io_open(interp, PMCNULL, SREG(2), CONST(3)->u.string);
+        PARROT_ASSERT(! PMC_IS_NULL(PREG(1)));
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_open_p_sc_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (STRING_IS_NULL(CONST(2)->u.string) || STRING_IS_NULL(CONST(3)->u.string)) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
+            EXCEPTION_UNEXPECTED_NULL, "Invalid open");
+        return (opcode_t *)handler;
+    }
+    else {
+        PREG(1) = Parrot_io_open(interp, PMCNULL, CONST(2)->u.string, CONST(3)->u.string);
+        PARROT_ASSERT(! PMC_IS_NULL(PREG(1)));
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_open_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (STRING_IS_NULL(SREG(2))) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 3,
+            EXCEPTION_UNEXPECTED_NULL, "Invalid open");
+        return (opcode_t *)handler;
+    }
+    else {
+        PREG(1) = Parrot_io_open(interp, PMCNULL, SREG(2), NULL);
+        PARROT_ASSERT(! PMC_IS_NULL(PREG(1)));
+    }
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_open_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (STRING_IS_NULL(CONST(2)->u.string)) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 3,
+            EXCEPTION_UNEXPECTED_NULL, "Invalid open");
+        return (opcode_t *)handler;
+    }
+    else {
+        PREG(1) = Parrot_io_open(interp, PMCNULL, CONST(2)->u.string, NULL);
+        PARROT_ASSERT(! PMC_IS_NULL(PREG(1)));
+    }
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_print_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    Parrot_io_printf(interp, INTVAL_FMT, (INTVAL)IREG(1));
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_print_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    Parrot_io_printf(interp, INTVAL_FMT, (INTVAL)cur_opcode[1]);
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_print_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+#ifdef PARROT_HAS_NEGATIVE_ZERO
+    Parrot_io_printf(interp, FLOATVAL_FMT, NREG(1));
+#else
+    /* Workaround for older msvcrt and openbsd. TT #313 */
+    if (Parrot_is_nzero(NREG(1))) {
+        Parrot_io_printf(interp, "-0");
+    }
+    else {
+        Parrot_io_printf(interp, FLOATVAL_FMT, NREG(1));
+    }
+#endif
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_print_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+#ifdef PARROT_HAS_NEGATIVE_ZERO
+    Parrot_io_printf(interp, FLOATVAL_FMT, CONST(1)->u.number);
+#else
+    /* Workaround for older msvcrt and openbsd. TT #313 */
+    if (Parrot_is_nzero(CONST(1)->u.number)) {
+        Parrot_io_printf(interp, "-0");
+    }
+    else {
+        Parrot_io_printf(interp, FLOATVAL_FMT, CONST(1)->u.number);
+    }
+#endif
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_print_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    STRING * const s = SREG(1);
+    if (s && Parrot_str_byte_length(interp, s))
+        Parrot_io_putps(interp, _PIO_STDOUT(interp), s);
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_print_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    STRING * const s = CONST(1)->u.string;
+    if (s && Parrot_str_byte_length(interp, s))
+        Parrot_io_putps(interp, _PIO_STDOUT(interp), s);
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_print_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const p = PREG(1);
+    STRING * const s = (VTABLE_get_string(interp, p));
+    if (s)
+        Parrot_io_putps(interp, _PIO_STDOUT(interp), s);
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_say_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    Parrot_io_printf(interp, INTVAL_FMT "\n", (INTVAL)IREG(1));
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_say_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    Parrot_io_printf(interp, INTVAL_FMT "\n", (INTVAL)cur_opcode[1]);
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_say_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+#ifdef PARROT_HAS_NEGATIVE_ZERO
+    Parrot_io_printf(interp, FLOATVAL_FMT "\n", NREG(1));
+#else
+    /* Workaround for older msvcrt and openbsd. TT #313 */
+    if (Parrot_is_nzero(NREG(1))) {
+        Parrot_io_printf(interp, "-0\n");
+    }
+    else {
+        Parrot_io_printf(interp, FLOATVAL_FMT "\n", NREG(1));
+    }
+#endif
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_say_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+#ifdef PARROT_HAS_NEGATIVE_ZERO
+    Parrot_io_printf(interp, FLOATVAL_FMT "\n", CONST(1)->u.number);
+#else
+    /* Workaround for older msvcrt and openbsd. TT #313 */
+    if (Parrot_is_nzero(CONST(1)->u.number)) {
+        Parrot_io_printf(interp, "-0\n");
+    }
+    else {
+        Parrot_io_printf(interp, FLOATVAL_FMT "\n", CONST(1)->u.number);
+    }
+#endif
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_say_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    STRING * const s = SREG(1);
+    if (s && Parrot_str_byte_length(interp, s))
+        Parrot_io_putps(interp, _PIO_STDOUT(interp), s);
+    Parrot_io_putps(interp, _PIO_STDOUT(interp), Parrot_str_new_constant(interp, "\n"));
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_say_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    STRING * const s = CONST(1)->u.string;
+    if (s && Parrot_str_byte_length(interp, s))
+        Parrot_io_putps(interp, _PIO_STDOUT(interp), s);
+    Parrot_io_putps(interp, _PIO_STDOUT(interp), Parrot_str_new_constant(interp, "\n"));
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_say_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const p = PREG(1);
+
+    if (PMC_IS_NULL(p)) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 2,
+             EXCEPTION_UNEXPECTED_NULL,
+            "Null PMC in say");
+        return (opcode_t *)handler;
+    }
+    else {
+        STRING * const s = VTABLE_get_string(interp, p);
+        if (s)
+            Parrot_io_putps(interp, _PIO_STDOUT(interp), s);
+        Parrot_io_putps(interp, _PIO_STDOUT(interp), Parrot_str_new_constant(interp, "\n"));
+    }
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_printerr_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    Parrot_io_eprintf(interp, INTVAL_FMT, IREG(1));
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_printerr_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    Parrot_io_eprintf(interp, INTVAL_FMT, cur_opcode[1]);
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_printerr_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    Parrot_io_eprintf(interp, FLOATVAL_FMT, NREG(1));
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_printerr_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    Parrot_io_eprintf(interp, FLOATVAL_FMT, CONST(1)->u.number);
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_printerr_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    STRING * const s = SREG(1);
+    if (s && Parrot_str_byte_length(interp, s))
+        Parrot_io_putps(interp, _PIO_STDERR(interp), s);
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_printerr_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    STRING * const s = CONST(1)->u.string;
+    if (s && Parrot_str_byte_length(interp, s))
+        Parrot_io_putps(interp, _PIO_STDERR(interp), s);
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_printerr_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const p = PREG(1);
+    STRING * const s = (VTABLE_get_string(interp, p));
+    if (s)
+        Parrot_io_putps(interp, _PIO_STDERR(interp), s);
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_print_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (PREG(1)) {
+        STRING * const s = Parrot_str_from_int(interp, IREG(2));
+        Parrot_io_putps(interp, PREG(1), s);
+    }
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_print_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (PREG(1)) {
+        STRING * const s = Parrot_str_from_int(interp, cur_opcode[2]);
+        Parrot_io_putps(interp, PREG(1), s);
+    }
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_print_p_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (PREG(1)) {
+        STRING * const s = Parrot_sprintf_c(interp, FLOATVAL_FMT, NREG(2));
+        Parrot_io_putps(interp, PREG(1), s);
+    }
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_print_p_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (PREG(1)) {
+        STRING * const s = Parrot_sprintf_c(interp, FLOATVAL_FMT, CONST(2)->u.number);
+        Parrot_io_putps(interp, PREG(1), s);
+    }
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_print_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (SREG(2) && PREG(1)) {
+        Parrot_io_putps(interp, PREG(1), SREG(2));
+    }
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_print_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (CONST(2)->u.string && PREG(1)) {
+        Parrot_io_putps(interp, PREG(1), CONST(2)->u.string);
+    }
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_print_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (PREG(2) && PREG(1)) {
+        STRING * const s = VTABLE_get_string(interp, PREG(2));
+        Parrot_io_putps(interp, PREG(1), s);
+    }
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_read_s_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_io_reads(interp, _PIO_STDIN(interp), (size_t)IREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_read_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_io_reads(interp, _PIO_STDIN(interp), (size_t)cur_opcode[2]);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_read_s_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_io_reads(interp, PREG(2), (size_t)IREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_read_s_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_io_reads(interp, PREG(2), (size_t)cur_opcode[3]);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_readline_s_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_io_readline(interp, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_peek_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    STRING ** const s = &SREG(1);
+
+    *s = NULL;
+    if (Parrot_io_peek(interp, _PIO_STDIN(interp), s) < 0) {
+        SREG(1) = STRINGNULL;
+    }
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_peek_s_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    STRING ** const s = &SREG(1);
+
+    *s = NULL;
+    if (Parrot_io_peek(interp, PREG(2), s) < 0) {
+        SREG(1) = STRINGNULL;
+    }
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_stat_i_s_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = Parrot_stat_info_intval(interp, SREG(2), IREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_stat_i_sc_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = Parrot_stat_info_intval(interp, CONST(2)->u.string, IREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_stat_i_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = Parrot_stat_info_intval(interp, SREG(2), cur_opcode[3]);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_stat_i_sc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = Parrot_stat_info_intval(interp, CONST(2)->u.string, cur_opcode[3]);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_stat_i_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = Parrot_fstat_info_intval(interp, IREG(2), IREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_stat_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = Parrot_fstat_info_intval(interp, cur_opcode[2], IREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_stat_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = Parrot_fstat_info_intval(interp, IREG(2), cur_opcode[3]);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_stat_i_ic_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = Parrot_fstat_info_intval(interp, cur_opcode[2], cur_opcode[3]);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_seek_p_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (PREG(1)) {
+        if (Parrot_io_seek(interp, PREG(1), Parrot_io_make_offset(IREG(2)), IREG(3)) < 0) {
+            opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
+                EXCEPTION_PIO_ERROR,
+                "seek failed (32bit)");
+            return (opcode_t *)handler;
+        }
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_seek_p_ic_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (PREG(1)) {
+        if (Parrot_io_seek(interp, PREG(1), Parrot_io_make_offset(cur_opcode[2]), IREG(3)) < 0) {
+            opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
+                EXCEPTION_PIO_ERROR,
+                "seek failed (32bit)");
+            return (opcode_t *)handler;
+        }
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_seek_p_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (PREG(1)) {
+        if (Parrot_io_seek(interp, PREG(1), Parrot_io_make_offset(IREG(2)), cur_opcode[3]) < 0) {
+            opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
+                EXCEPTION_PIO_ERROR,
+                "seek failed (32bit)");
+            return (opcode_t *)handler;
+        }
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_seek_p_ic_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (PREG(1)) {
+        if (Parrot_io_seek(interp, PREG(1), Parrot_io_make_offset(cur_opcode[2]), cur_opcode[3]) < 0) {
+            opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
+                EXCEPTION_PIO_ERROR,
+                "seek failed (32bit)");
+            return (opcode_t *)handler;
+        }
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_seek_p_i_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (PREG(1)) {
+        if (Parrot_io_seek(interp, PREG(1), Parrot_io_make_offset32(IREG(2), IREG(3)), IREG(4)) < 0) {
+            opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 5,
+                EXCEPTION_PIO_ERROR,
+                "seek failed (64bit)");
+            return (opcode_t *)handler;
+        }
+    }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_seek_p_ic_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (PREG(1)) {
+        if (Parrot_io_seek(interp, PREG(1), Parrot_io_make_offset32(cur_opcode[2], IREG(3)), IREG(4)) < 0) {
+            opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 5,
+                EXCEPTION_PIO_ERROR,
+                "seek failed (64bit)");
+            return (opcode_t *)handler;
+        }
+    }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_seek_p_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (PREG(1)) {
+        if (Parrot_io_seek(interp, PREG(1), Parrot_io_make_offset32(IREG(2), cur_opcode[3]), IREG(4)) < 0) {
+            opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 5,
+                EXCEPTION_PIO_ERROR,
+                "seek failed (64bit)");
+            return (opcode_t *)handler;
+        }
+    }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_seek_p_ic_ic_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (PREG(1)) {
+        if (Parrot_io_seek(interp, PREG(1), Parrot_io_make_offset32(cur_opcode[2], cur_opcode[3]), IREG(4)) < 0) {
+            opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 5,
+                EXCEPTION_PIO_ERROR,
+                "seek failed (64bit)");
+            return (opcode_t *)handler;
+        }
+    }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_seek_p_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (PREG(1)) {
+        if (Parrot_io_seek(interp, PREG(1), Parrot_io_make_offset32(IREG(2), IREG(3)), cur_opcode[4]) < 0) {
+            opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 5,
+                EXCEPTION_PIO_ERROR,
+                "seek failed (64bit)");
+            return (opcode_t *)handler;
+        }
+    }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_seek_p_ic_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (PREG(1)) {
+        if (Parrot_io_seek(interp, PREG(1), Parrot_io_make_offset32(cur_opcode[2], IREG(3)), cur_opcode[4]) < 0) {
+            opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 5,
+                EXCEPTION_PIO_ERROR,
+                "seek failed (64bit)");
+            return (opcode_t *)handler;
+        }
+    }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_seek_p_i_ic_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (PREG(1)) {
+        if (Parrot_io_seek(interp, PREG(1), Parrot_io_make_offset32(IREG(2), cur_opcode[3]), cur_opcode[4]) < 0) {
+            opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 5,
+                EXCEPTION_PIO_ERROR,
+                "seek failed (64bit)");
+            return (opcode_t *)handler;
+        }
+    }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_seek_p_ic_ic_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (PREG(1)) {
+        if (Parrot_io_seek(interp, PREG(1), Parrot_io_make_offset32(cur_opcode[2], cur_opcode[3]), cur_opcode[4]) < 0) {
+            opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 5,
+                EXCEPTION_PIO_ERROR,
+                "seek failed (64bit)");
+            return (opcode_t *)handler;
+        }
+    }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_tell_i_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (PREG(2))
+        IREG(1) = (INTVAL)Parrot_io_tell(interp, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_tell_i_i_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (PREG(3)) {
+        PIOOFF_T pos;
+        pos = Parrot_io_tell(interp, PREG(3));
+        IREG(1) = (INTVAL)(pos >> 31);
+        IREG(2) = (INTVAL)(pos & 0xffffffff);
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_abs_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = abs(IREG(1));
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_abs_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    NREG(1) = fabs(NREG(1));
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_abs_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = abs(IREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_abs_n_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    NREG(1) = fabs(NREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_abs_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_i_absolute(interp, PREG(1));
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_abs_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_absolute(interp, PREG(2), PREG(1));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_add_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) += IREG(2);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_add_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) += cur_opcode[2];
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_add_n_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    NREG(1) += NREG(2);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_add_n_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    NREG(1) += CONST(2)->u.number;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_add_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_i_add(interp, PREG(1), PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_add_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_i_add_int(interp, PREG(1), IREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_add_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_i_add_int(interp, PREG(1), cur_opcode[2]);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_add_p_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_i_add_float(interp, PREG(1), NREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_add_p_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_i_add_float(interp, PREG(1), CONST(2)->u.number);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_add_i_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = IREG(2) + IREG(3);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_add_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = cur_opcode[2] + IREG(3);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_add_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = IREG(2) + cur_opcode[3];
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_add_n_n_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    NREG(1) = NREG(2) + NREG(3);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_add_n_nc_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    NREG(1) = CONST(2)->u.number + NREG(3);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_add_n_n_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    NREG(1) = NREG(2) + CONST(3)->u.number;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_add_p_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_add(interp, PREG(2), PREG(3), PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_add_p_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_add_int(interp, PREG(2), IREG(3), PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_add_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_add_int(interp, PREG(2), cur_opcode[3], PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_add_p_p_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_add_float(interp, PREG(2), NREG(3), PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_add_p_p_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_add_float(interp, PREG(2), CONST(3)->u.number, PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_cmod_i_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    INTVAL den = IREG(3);
+    if (IREG(3) == 0) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
+            EXCEPTION_DIV_BY_ZERO,
+            "Divide by zero");
+        return (opcode_t *)handler;
+    }
+    IREG(1) = IREG(2) % den;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_cmod_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    INTVAL den = IREG(3);
+    if (IREG(3) == 0) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
+            EXCEPTION_DIV_BY_ZERO,
+            "Divide by zero");
+        return (opcode_t *)handler;
+    }
+    IREG(1) = cur_opcode[2] % den;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_cmod_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    INTVAL den = cur_opcode[3];
+    if (cur_opcode[3] == 0) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
+            EXCEPTION_DIV_BY_ZERO,
+            "Divide by zero");
+        return (opcode_t *)handler;
+    }
+    IREG(1) = IREG(2) % den;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_cmod_p_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    INTVAL result;
+
+    if (IREG(3) == 0) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
+            EXCEPTION_DIV_BY_ZERO,
+            "Divide by zero");
+        return (opcode_t *)handler;
+    }
+
+    result = VTABLE_get_integer(interp, PREG(2)) % IREG(3);
+
+    PREG(1) = Parrot_pmc_new(interp, VTABLE_type(interp, PREG(2)));
+    VTABLE_set_integer_native(interp, PREG(1), result);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_cmod_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    INTVAL result;
+
+    if (cur_opcode[3] == 0) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
+            EXCEPTION_DIV_BY_ZERO,
+            "Divide by zero");
+        return (opcode_t *)handler;
+    }
+
+    result = VTABLE_get_integer(interp, PREG(2)) % cur_opcode[3];
+
+    PREG(1) = Parrot_pmc_new(interp, VTABLE_type(interp, PREG(2)));
+    VTABLE_set_integer_native(interp, PREG(1), result);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_cmod_p_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    INTVAL result;
+    INTVAL value = VTABLE_get_integer(interp, PREG(3));
+
+    if (value == 0) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
+            EXCEPTION_DIV_BY_ZERO,
+            "Divide by zero");
+        return (opcode_t *)handler;
+    }
+
+    result = VTABLE_get_integer(interp, PREG(2)) % value;
+
+    PREG(1) = Parrot_pmc_new(interp, VTABLE_type(interp, PREG(2)));
+    VTABLE_set_integer_native(interp, PREG(1), result);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_cmod_n_n_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    FLOATVAL den = NREG(3);
+    if (FLOAT_IS_ZERO(NREG(3))) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
+            EXCEPTION_DIV_BY_ZERO,
+            "Divide by zero");
+        return (opcode_t *)handler;
+    }
+    NREG(1) = fmod(NREG(2), den);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_cmod_n_nc_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    FLOATVAL den = NREG(3);
+    if (FLOAT_IS_ZERO(NREG(3))) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
+            EXCEPTION_DIV_BY_ZERO,
+            "Divide by zero");
+        return (opcode_t *)handler;
+    }
+    NREG(1) = fmod(CONST(2)->u.number, den);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_cmod_n_n_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    FLOATVAL den = CONST(3)->u.number;
+    if (FLOAT_IS_ZERO(CONST(3)->u.number)) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
+            EXCEPTION_DIV_BY_ZERO,
+            "Divide by zero");
+        return (opcode_t *)handler;
+    }
+    NREG(1) = fmod(NREG(2), den);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_cmod_p_p_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    FLOATVAL result;
+    FLOATVAL value = NREG(3);
+
+    if (FLOAT_IS_ZERO(value)) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
+            EXCEPTION_DIV_BY_ZERO,
+            "Divide by zero");
+        return (opcode_t *)handler;
+    }
+
+    result = fmod(VTABLE_get_integer(interp, PREG(2)), value);
+
+    PREG(1) = Parrot_pmc_new(interp, VTABLE_type(interp, PREG(2)));
+    VTABLE_set_integer_native(interp, PREG(1), (INTVAL) result);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_cmod_p_p_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    FLOATVAL result;
+    FLOATVAL value = CONST(3)->u.number;
+
+    if (FLOAT_IS_ZERO(value)) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
+            EXCEPTION_DIV_BY_ZERO,
+            "Divide by zero");
+        return (opcode_t *)handler;
+    }
+
+    result = fmod(VTABLE_get_integer(interp, PREG(2)), value);
+
+    PREG(1) = Parrot_pmc_new(interp, VTABLE_type(interp, PREG(2)));
+    VTABLE_set_integer_native(interp, PREG(1), (INTVAL) result);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_dec_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1)--;
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_dec_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    NREG(1)--;
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_dec_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_decrement(interp, PREG(1));
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_div_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    INTVAL den = IREG(2);
+    if (den == 0) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 3,
+            EXCEPTION_DIV_BY_ZERO,
+            "Divide by zero");
+        return (opcode_t *)handler;
+    }
+    IREG(1) /= den;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_div_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    INTVAL den = cur_opcode[2];
+    if (den == 0) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 3,
+            EXCEPTION_DIV_BY_ZERO,
+            "Divide by zero");
+        return (opcode_t *)handler;
+    }
+    IREG(1) /= den;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_div_n_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    FLOATVAL den = NREG(2);
+    if (FLOAT_IS_ZERO(den)) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 3,
+            EXCEPTION_DIV_BY_ZERO,
+            "Divide by zero");
+        return (opcode_t *)handler;
+    }
+    NREG(1) /= den;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_div_n_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    FLOATVAL den = CONST(2)->u.number;
+    if (FLOAT_IS_ZERO(den)) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 3,
+            EXCEPTION_DIV_BY_ZERO,
+            "Divide by zero");
+        return (opcode_t *)handler;
+    }
+    NREG(1) /= den;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_div_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_i_divide(interp, PREG(1), PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_div_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_i_divide_int(interp, PREG(1), IREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_div_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_i_divide_int(interp, PREG(1), cur_opcode[2]);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_div_p_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_i_divide_float(interp, PREG(1), NREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_div_p_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_i_divide_float(interp, PREG(1), CONST(2)->u.number);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_div_i_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    INTVAL den = IREG(3);
+    if (den == 0) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
+            EXCEPTION_DIV_BY_ZERO,
+            "Divide by zero");
+        return (opcode_t *)handler;
+    }
+    IREG(1) = IREG(2) / den;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_div_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    INTVAL den = IREG(3);
+    if (den == 0) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
+            EXCEPTION_DIV_BY_ZERO,
+            "Divide by zero");
+        return (opcode_t *)handler;
+    }
+    IREG(1) = cur_opcode[2] / den;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_div_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    INTVAL den = cur_opcode[3];
+    if (den == 0) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
+            EXCEPTION_DIV_BY_ZERO,
+            "Divide by zero");
+        return (opcode_t *)handler;
+    }
+    IREG(1) = IREG(2) / den;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_div_i_ic_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    INTVAL den = cur_opcode[3];
+    if (den == 0) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
+            EXCEPTION_DIV_BY_ZERO,
+            "Divide by zero");
+        return (opcode_t *)handler;
+    }
+    IREG(1) = cur_opcode[2] / den;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_div_n_n_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    FLOATVAL den = NREG(3);
+    if (FLOAT_IS_ZERO(den)) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
+            EXCEPTION_DIV_BY_ZERO,
+            "Divide by zero");
+        return (opcode_t *)handler;
+    }
+    NREG(1) = NREG(2) / den;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_div_n_nc_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    FLOATVAL den = NREG(3);
+    if (FLOAT_IS_ZERO(den)) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
+            EXCEPTION_DIV_BY_ZERO,
+            "Divide by zero");
+        return (opcode_t *)handler;
+    }
+    NREG(1) = CONST(2)->u.number / den;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_div_n_n_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    FLOATVAL den = CONST(3)->u.number;
+    if (FLOAT_IS_ZERO(den)) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
+            EXCEPTION_DIV_BY_ZERO,
+            "Divide by zero");
+        return (opcode_t *)handler;
+    }
+    NREG(1) = NREG(2) / den;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_div_n_nc_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    FLOATVAL den = CONST(3)->u.number;
+    if (FLOAT_IS_ZERO(den)) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
+            EXCEPTION_DIV_BY_ZERO,
+            "Divide by zero");
+        return (opcode_t *)handler;
+    }
+    NREG(1) = CONST(2)->u.number / den;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_div_p_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_divide(interp, PREG(2), PREG(3), PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_div_p_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_divide_int(interp, PREG(2), IREG(3), PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_div_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_divide_int(interp, PREG(2), cur_opcode[3], PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_div_p_p_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_divide_float(interp, PREG(2), NREG(3), PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_div_p_p_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_divide_float(interp, PREG(2), CONST(3)->u.number, PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_fdiv_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    INTVAL   den = IREG(2);
+    FLOATVAL f;
+
+    if (den == 0) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 3,
+            EXCEPTION_DIV_BY_ZERO,
+            "Divide by zero");
+        return (opcode_t *)handler;
+    }
+
+    f  = floor(IREG(1) / den);
+    IREG(1) = (INTVAL)f;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_fdiv_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    INTVAL   den = cur_opcode[2];
+    FLOATVAL f;
+
+    if (den == 0) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 3,
+            EXCEPTION_DIV_BY_ZERO,
+            "Divide by zero");
+        return (opcode_t *)handler;
+    }
+
+    f  = floor(IREG(1) / den);
+    IREG(1) = (INTVAL)f;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_fdiv_n_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    FLOATVAL den = NREG(2);
+    if (FLOAT_IS_ZERO(den)) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 3,
+            EXCEPTION_DIV_BY_ZERO,
+            "Divide by zero");
+        return (opcode_t *)handler;
+    }
+    NREG(1) = floor(NREG(1) / den);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_fdiv_n_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    FLOATVAL den = CONST(2)->u.number;
+    if (FLOAT_IS_ZERO(den)) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 3,
+            EXCEPTION_DIV_BY_ZERO,
+            "Divide by zero");
+        return (opcode_t *)handler;
+    }
+    NREG(1) = floor(NREG(1) / den);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_fdiv_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_i_floor_divide(interp, PREG(1), PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_fdiv_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_i_floor_divide_int(interp, PREG(1), IREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_fdiv_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_i_floor_divide_int(interp, PREG(1), cur_opcode[2]);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_fdiv_p_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_i_floor_divide_float(interp, PREG(1), NREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_fdiv_p_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_i_floor_divide_float(interp, PREG(1), CONST(2)->u.number);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_fdiv_i_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    INTVAL   den = IREG(3);
+    FLOATVAL f;
+
+    if (den == 0) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
+            EXCEPTION_DIV_BY_ZERO,
+            "Divide by zero");
+        return (opcode_t *)handler;
+    }
+
+    f  = floor(IREG(2) / den);
+    IREG(1) = (INTVAL)f;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_fdiv_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    INTVAL   den = IREG(3);
+    FLOATVAL f;
+
+    if (den == 0) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
+            EXCEPTION_DIV_BY_ZERO,
+            "Divide by zero");
+        return (opcode_t *)handler;
+    }
+
+    f  = floor(cur_opcode[2] / den);
+    IREG(1) = (INTVAL)f;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_fdiv_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    INTVAL   den = cur_opcode[3];
+    FLOATVAL f;
+
+    if (den == 0) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
+            EXCEPTION_DIV_BY_ZERO,
+            "Divide by zero");
+        return (opcode_t *)handler;
+    }
+
+    f  = floor(IREG(2) / den);
+    IREG(1) = (INTVAL)f;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_fdiv_n_n_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    FLOATVAL den = NREG(3);
+    if (FLOAT_IS_ZERO(den)) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
+            EXCEPTION_DIV_BY_ZERO,
+            "Divide by zero");
+        return (opcode_t *)handler;
+    }
+    NREG(1) = floor(NREG(2) / den);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_fdiv_n_nc_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    FLOATVAL den = NREG(3);
+    if (FLOAT_IS_ZERO(den)) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
+            EXCEPTION_DIV_BY_ZERO,
+            "Divide by zero");
+        return (opcode_t *)handler;
+    }
+    NREG(1) = floor(CONST(2)->u.number / den);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_fdiv_n_n_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    FLOATVAL den = CONST(3)->u.number;
+    if (FLOAT_IS_ZERO(den)) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
+            EXCEPTION_DIV_BY_ZERO,
+            "Divide by zero");
+        return (opcode_t *)handler;
+    }
+    NREG(1) = floor(NREG(2) / den);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_fdiv_p_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_floor_divide(interp, PREG(2), PREG(3), PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_fdiv_p_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_floor_divide_int(interp, PREG(2), IREG(3), PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_fdiv_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_floor_divide_int(interp, PREG(2), cur_opcode[3], PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_fdiv_p_p_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_floor_divide_float(interp, PREG(2), NREG(3), PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_fdiv_p_p_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_floor_divide_float(interp, PREG(2), CONST(3)->u.number, PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_ceil_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    NREG(1) = ceil(NREG(1));
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_ceil_i_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    FLOATVAL f = ceil(NREG(2));
+    IREG(1)         = (INTVAL)f;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_ceil_n_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    NREG(1) = ceil(NREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_floor_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    NREG(1) = floor(NREG(1));
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_floor_i_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    FLOATVAL f = floor(NREG(2));
+    IREG(1)         = (INTVAL)f;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_floor_n_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    NREG(1) = floor(NREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_inc_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1)++;
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_inc_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    NREG(1)++;
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_inc_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_increment(interp, PREG(1));
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_mod_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = intval_mod(IREG(1), IREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_mod_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = intval_mod(IREG(1), cur_opcode[2]);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_mod_n_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    NREG(1) = floatval_mod(NREG(1), NREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_mod_n_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    NREG(1) = floatval_mod(NREG(1), CONST(2)->u.number);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_mod_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_i_modulus(interp, PREG(1), PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_mod_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_i_modulus_int(interp, PREG(1), IREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_mod_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_i_modulus_int(interp, PREG(1), cur_opcode[2]);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_mod_p_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_i_modulus_float(interp, PREG(1), NREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_mod_p_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_i_modulus_float(interp, PREG(1), CONST(2)->u.number);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_mod_i_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = intval_mod(IREG(2), IREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_mod_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = intval_mod(cur_opcode[2], IREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_mod_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = intval_mod(IREG(2), cur_opcode[3]);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_mod_n_n_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    NREG(1) = floatval_mod(NREG(2), NREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_mod_n_nc_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    NREG(1) = floatval_mod(CONST(2)->u.number, NREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_mod_n_n_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    NREG(1) = floatval_mod(NREG(2), CONST(3)->u.number);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_mod_p_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_modulus(interp, PREG(2), PREG(3), PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_mod_p_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_modulus_int(interp, PREG(2), IREG(3), PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_mod_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_modulus_int(interp, PREG(2), cur_opcode[3], PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_mod_p_p_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_modulus_float(interp, PREG(2), NREG(3), PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_mod_p_p_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_modulus_float(interp, PREG(2), CONST(3)->u.number, PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_mul_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) *= IREG(2);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_mul_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) *= cur_opcode[2];
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_mul_n_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    NREG(1) *= NREG(2);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_mul_n_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    NREG(1) *= CONST(2)->u.number;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_mul_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_i_multiply(interp, PREG(1), PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_mul_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_i_multiply_int(interp, PREG(1), IREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_mul_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_i_multiply_int(interp, PREG(1), cur_opcode[2]);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_mul_p_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_i_multiply_float(interp, PREG(1), NREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_mul_p_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_i_multiply_float(interp, PREG(1), CONST(2)->u.number);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_mul_i_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = IREG(2) * IREG(3);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_mul_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = cur_opcode[2] * IREG(3);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_mul_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = IREG(2) * cur_opcode[3];
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_mul_n_n_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    NREG(1) = NREG(2) * NREG(3);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_mul_n_nc_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    NREG(1) = CONST(2)->u.number * NREG(3);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_mul_n_n_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    NREG(1) = NREG(2) * CONST(3)->u.number;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_mul_p_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_multiply(interp, PREG(2), PREG(3), PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_mul_p_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_multiply_int(interp, PREG(2), IREG(3), PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_mul_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_multiply_int(interp, PREG(2), cur_opcode[3], PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_mul_p_p_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_multiply_float(interp, PREG(2), NREG(3), PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_mul_p_p_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_multiply_float(interp, PREG(2), CONST(3)->u.number, PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_neg_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = - IREG(1);
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_neg_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    NREG(1) = - NREG(1);
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_neg_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_i_neg(interp, PREG(1));
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_neg_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = - IREG(2);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_neg_n_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    NREG(1) = - NREG(2);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_neg_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_neg(interp, PREG(2), PREG(1));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_pow_n_n_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    NREG(1) = pow((FLOATVAL)NREG(2), (FLOATVAL)NREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_pow_n_nc_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    NREG(1) = pow((FLOATVAL)CONST(2)->u.number, (FLOATVAL)NREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_pow_n_n_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    NREG(1) = pow((FLOATVAL)NREG(2), (FLOATVAL)CONST(3)->u.number);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_pow_p_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    const FLOATVAL a = VTABLE_get_number(interp, PREG(2));
+    const FLOATVAL b = VTABLE_get_number(interp, PREG(3));
+    const FLOATVAL c = pow(a, b);
+    if (PMC_IS_NULL(PREG(1)))
+        PREG(1) = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_Float));
+    else
+        PREG(1) = Parrot_pmc_new(interp, PREG(1)->vtable->base_type);
+    VTABLE_set_number_native(interp, PREG(1), c);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_pow_p_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    const FLOATVAL a = VTABLE_get_number(interp, PREG(2));
+    const FLOATVAL b = (FLOATVAL)IREG(3);
+    const FLOATVAL c = pow(a, b);
+    if (PMC_IS_NULL(PREG(1)))
+        PREG(1) = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_Float));
+    else
+        PREG(1) = Parrot_pmc_new(interp, PREG(1)->vtable->base_type);
+    VTABLE_set_number_native(interp, PREG(1), c);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_pow_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    const FLOATVAL a = VTABLE_get_number(interp, PREG(2));
+    const FLOATVAL b = (FLOATVAL)cur_opcode[3];
+    const FLOATVAL c = pow(a, b);
+    if (PMC_IS_NULL(PREG(1)))
+        PREG(1) = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_Float));
+    else
+        PREG(1) = Parrot_pmc_new(interp, PREG(1)->vtable->base_type);
+    VTABLE_set_number_native(interp, PREG(1), c);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_pow_p_p_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    const FLOATVAL a = VTABLE_get_number(interp, PREG(2));
+    const FLOATVAL c = pow(a, NREG(3));
+    if (PMC_IS_NULL(PREG(1)))
+        PREG(1) = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_Float));
+    else
+        PREG(1) = Parrot_pmc_new(interp, PREG(1)->vtable->base_type);
+    VTABLE_set_number_native(interp, PREG(1), c);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_pow_p_p_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    const FLOATVAL a = VTABLE_get_number(interp, PREG(2));
+    const FLOATVAL c = pow(a, CONST(3)->u.number);
+    if (PMC_IS_NULL(PREG(1)))
+        PREG(1) = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_Float));
+    else
+        PREG(1) = Parrot_pmc_new(interp, PREG(1)->vtable->base_type);
+    VTABLE_set_number_native(interp, PREG(1), c);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_pow_n_n_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    FLOATVAL n2 = NREG(2);
+    FLOATVAL res = 1.0;
+    INTVAL   e  = IREG(3);
+    int s = 1;
+    if (e != 0) {
+        if (e < 0) {
+            s = -1;
+            e = -e;
+        }
+    }
+    while (e) {
+        if (e & 1) {
+            res *= n2;
+        }
+        n2 *= n2;
+        e >>= 1;
+    }
+    if (s < 0) {
+        res = 1.0/res;
+    }
+    NREG(1) = res;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_pow_n_nc_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    FLOATVAL n2 = CONST(2)->u.number;
+    FLOATVAL res = 1.0;
+    INTVAL   e  = IREG(3);
+    int s = 1;
+    if (e != 0) {
+        if (e < 0) {
+            s = -1;
+            e = -e;
+        }
+    }
+    while (e) {
+        if (e & 1) {
+            res *= n2;
+        }
+        n2 *= n2;
+        e >>= 1;
+    }
+    if (s < 0) {
+        res = 1.0/res;
+    }
+    NREG(1) = res;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_pow_n_n_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    FLOATVAL n2 = NREG(2);
+    FLOATVAL res = 1.0;
+    INTVAL   e  = cur_opcode[3];
+    int s = 1;
+    if (e != 0) {
+        if (e < 0) {
+            s = -1;
+            e = -e;
+        }
+    }
+    while (e) {
+        if (e & 1) {
+            res *= n2;
+        }
+        n2 *= n2;
+        e >>= 1;
+    }
+    if (s < 0) {
+        res = 1.0/res;
+    }
+    NREG(1) = res;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_pow_n_nc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    FLOATVAL n2 = CONST(2)->u.number;
+    FLOATVAL res = 1.0;
+    INTVAL   e  = cur_opcode[3];
+    int s = 1;
+    if (e != 0) {
+        if (e < 0) {
+            s = -1;
+            e = -e;
+        }
+    }
+    while (e) {
+        if (e & 1) {
+            res *= n2;
+        }
+        n2 *= n2;
+        e >>= 1;
+    }
+    if (s < 0) {
+        res = 1.0/res;
+    }
+    NREG(1) = res;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_sub_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) -= IREG(2);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_sub_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) -= cur_opcode[2];
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_sub_n_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    NREG(1) -= NREG(2);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_sub_n_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    NREG(1) -= CONST(2)->u.number;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_sub_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_i_subtract(interp, PREG(1), PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_sub_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_i_subtract_int(interp, PREG(1), IREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_sub_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_i_subtract_int(interp, PREG(1), cur_opcode[2]);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_sub_p_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_i_subtract_float(interp, PREG(1), NREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_sub_p_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_i_subtract_float(interp, PREG(1), CONST(2)->u.number);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_sub_i_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = IREG(2) - IREG(3);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_sub_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = cur_opcode[2] - IREG(3);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_sub_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = IREG(2) - cur_opcode[3];
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_sub_n_n_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    NREG(1) = NREG(2) - NREG(3);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_sub_n_nc_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    NREG(1) = CONST(2)->u.number - NREG(3);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_sub_n_n_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    NREG(1) = NREG(2) - CONST(3)->u.number;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_sub_p_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_subtract(interp, PREG(2), PREG(3), PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_sub_p_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_subtract_int(interp, PREG(2), IREG(3), PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_sub_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_subtract_int(interp, PREG(2), cur_opcode[3], PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_sub_p_p_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_subtract_float(interp, PREG(2), NREG(3), PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_sub_p_p_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_subtract_float(interp, PREG(2), CONST(3)->u.number, PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_sqrt_n_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    NREG(1) = sqrt((FLOATVAL)NREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_acos_n_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    NREG(1) = acos((FLOATVAL)NREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_asec_n_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    NREG(1) = acos(((FLOATVAL)1) / ((FLOATVAL)NREG(2)));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_asin_n_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    NREG(1) = asin((FLOATVAL)NREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_atan_n_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    NREG(1) = atan((FLOATVAL)NREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_atan_n_n_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    NREG(1) = atan2((FLOATVAL)NREG(2), (FLOATVAL)NREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_atan_n_nc_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    NREG(1) = atan2((FLOATVAL)CONST(2)->u.number, (FLOATVAL)NREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_atan_n_n_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    NREG(1) = atan2((FLOATVAL)NREG(2), (FLOATVAL)CONST(3)->u.number);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_cos_n_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    NREG(1) = cos((FLOATVAL)NREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_cosh_n_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    NREG(1) = cosh((FLOATVAL)NREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_exp_n_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    NREG(1) = exp((FLOATVAL)NREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_ln_n_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    NREG(1) = log((FLOATVAL)NREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_log10_n_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    NREG(1) = log10((FLOATVAL)NREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_log2_n_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    FLOATVAL temp = log((FLOATVAL)2.0);
+    NREG(1) = log((FLOATVAL)NREG(2)) / temp;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_sec_n_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    NREG(1) = ((FLOATVAL)1) / cos((FLOATVAL)NREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_sech_n_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    NREG(1) = ((FLOATVAL)1) / cosh((FLOATVAL)NREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_sin_n_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    NREG(1) = sin((FLOATVAL)NREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_sinh_n_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    NREG(1) = sinh((FLOATVAL)NREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_tan_n_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    NREG(1) = tan((FLOATVAL)NREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_tanh_n_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    NREG(1) = tanh((FLOATVAL)NREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_callmethodcc_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC      * const object     = PREG(1);
+    STRING   * const meth       = SREG(2);
+    opcode_t * const next       = cur_opcode + 3;
+
+    PMC      * const method_pmc = VTABLE_find_method(interp, object, meth);
+    opcode_t *dest              = NULL;
+    PMC      * const signature  = Parrot_pcc_get_signature(interp,
+                                    CURRENT_CONTEXT(interp));
+
+    if (PMC_IS_NULL(method_pmc)) {
+        PMC * const _class = VTABLE_get_class(interp, object);
+        if (PMC_IS_NULL(_class)) {
+            dest = Parrot_ex_throw_from_op_args(interp, next,
+                EXCEPTION_METHOD_NOT_FOUND,
+                "Method '%Ss' not found for non-object", meth);
+        }
+        else {
+            dest = Parrot_ex_throw_from_op_args(interp, next,
+                EXCEPTION_METHOD_NOT_FOUND,
+                "Method '%Ss' not found for invocant of class '%Ss'", meth,
+                VTABLE_get_string(interp, _class));
+        }
+    }
+    else {
+        if (!PMC_IS_NULL(signature))
+            Parrot_pcc_set_object(interp, signature, object);
+        interp->current_cont   = NEED_CONTINUATION;
+        dest                   = VTABLE_invoke(interp, method_pmc, next);
+    }
+    return (opcode_t *)dest;
+}
+
+opcode_t *
+Parrot_callmethodcc_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC      * const object     = PREG(1);
+    STRING   * const meth       = CONST(2)->u.string;
+    opcode_t * const next       = cur_opcode + 3;
+
+    PMC      * const method_pmc = VTABLE_find_method(interp, object, meth);
+    opcode_t *dest              = NULL;
+    PMC      * const signature  = Parrot_pcc_get_signature(interp,
+                                    CURRENT_CONTEXT(interp));
+
+    if (PMC_IS_NULL(method_pmc)) {
+        PMC * const _class = VTABLE_get_class(interp, object);
+        if (PMC_IS_NULL(_class)) {
+            dest = Parrot_ex_throw_from_op_args(interp, next,
+                EXCEPTION_METHOD_NOT_FOUND,
+                "Method '%Ss' not found for non-object", meth);
+        }
+        else {
+            dest = Parrot_ex_throw_from_op_args(interp, next,
+                EXCEPTION_METHOD_NOT_FOUND,
+                "Method '%Ss' not found for invocant of class '%Ss'", meth,
+                VTABLE_get_string(interp, _class));
+        }
+    }
+    else {
+        if (!PMC_IS_NULL(signature))
+            Parrot_pcc_set_object(interp, signature, object);
+        interp->current_cont   = NEED_CONTINUATION;
+        dest                   = VTABLE_invoke(interp, method_pmc, next);
+    }
+    return (opcode_t *)dest;
+}
+
+opcode_t *
+Parrot_callmethodcc_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    opcode_t        *dest;
+    opcode_t * const next  = cur_opcode + 3;
+    PMC      *       signature  = Parrot_pcc_get_signature(interp,
+                                    CURRENT_CONTEXT(interp));
+
+    if (!PMC_IS_NULL(signature))
+        Parrot_pcc_set_object(interp, signature, PREG(1));
+    interp->current_cont   = NEED_CONTINUATION;
+    dest                   = VTABLE_invoke(interp, PREG(2), next);
+
+    return (opcode_t *)dest;
+}
+
+opcode_t *
+Parrot_callmethod_p_s_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC      * const object     = PREG(1);
+    STRING   * const meth       = SREG(2);
+    opcode_t * const next       = cur_opcode + 4;
+
+    PMC      * const method_pmc = VTABLE_find_method(interp, object, meth);
+    opcode_t *dest              = NULL;
+    PMC      *       signature  = Parrot_pcc_get_signature(interp,
+                                    CURRENT_CONTEXT(interp));
+
+
+    if (PMC_IS_NULL(method_pmc)) {
+        dest = Parrot_ex_throw_from_op_args(interp, next, EXCEPTION_METHOD_NOT_FOUND,
+            "Method '%Ss' not found for invocant of class '%Ss'", meth,
+            VTABLE_get_string(interp, VTABLE_get_class(interp, object)));
+    }
+    else {
+        if (!PMC_IS_NULL(signature))
+            Parrot_pcc_set_object(interp, signature, object);
+        interp->current_cont = PREG(3);
+        dest = (opcode_t *)VTABLE_invoke(interp, method_pmc, next);
+    }
+    return (opcode_t *)dest;
+}
+
+opcode_t *
+Parrot_callmethod_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC      * const object     = PREG(1);
+    STRING   * const meth       = CONST(2)->u.string;
+    opcode_t * const next       = cur_opcode + 4;
+
+    PMC      * const method_pmc = VTABLE_find_method(interp, object, meth);
+    opcode_t *dest              = NULL;
+    PMC      *       signature  = Parrot_pcc_get_signature(interp,
+                                    CURRENT_CONTEXT(interp));
+
+
+    if (PMC_IS_NULL(method_pmc)) {
+        dest = Parrot_ex_throw_from_op_args(interp, next, EXCEPTION_METHOD_NOT_FOUND,
+            "Method '%Ss' not found for invocant of class '%Ss'", meth,
+            VTABLE_get_string(interp, VTABLE_get_class(interp, object)));
+    }
+    else {
+        if (!PMC_IS_NULL(signature))
+            Parrot_pcc_set_object(interp, signature, object);
+        interp->current_cont = PREG(3);
+        dest = (opcode_t *)VTABLE_invoke(interp, method_pmc, next);
+    }
+    return (opcode_t *)dest;
+}
+
+opcode_t *
+Parrot_callmethod_p_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC      * const object     = PREG(1);
+    PMC      * const method_pmc = PREG(2);
+    opcode_t * const next       = cur_opcode + 4;
+
+    opcode_t *dest;
+    PMC      *       signature  = Parrot_pcc_get_signature(interp,
+                                    CURRENT_CONTEXT(interp));
+
+    if (!PMC_IS_NULL(signature))
+        Parrot_pcc_set_object(interp, signature, object);
+    interp->current_cont = PREG(3);
+    dest = (opcode_t *)VTABLE_invoke(interp, method_pmc, next);
+    return (opcode_t *)dest;
+}
+
+opcode_t *
+Parrot_tailcallmethod_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    opcode_t * const next       = cur_opcode + 3;
+    PMC      * const object     = PREG(1);
+    STRING   * const meth       = SREG(2);
+    PMC      * const method_pmc = VTABLE_find_method(interp, object, meth);
+
+    opcode_t *dest;
+    PMC      *       signature  = Parrot_pcc_get_signature(interp,
+                                    CURRENT_CONTEXT(interp));
+
+    if (PMC_IS_NULL(method_pmc)) {
+        dest = Parrot_ex_throw_from_op_args(interp, next, EXCEPTION_METHOD_NOT_FOUND,
+            "Method '%Ss' not found for invocant of class '%Ss'", meth,
+            VTABLE_get_string(interp, VTABLE_get_class(interp, object)));
+    }
+    else {
+        interp->current_cont = Parrot_pcc_get_continuation(interp, CURRENT_CONTEXT(interp));
+        PObj_get_FLAGS(interp->current_cont) |= SUB_FLAG_TAILCALL;
+        if (!PMC_IS_NULL(signature))
+            Parrot_pcc_set_object(interp, signature, object);
+        dest = (opcode_t *)VTABLE_invoke(interp, method_pmc, next);
+    }
+    return (opcode_t *)dest;
+}
+
+opcode_t *
+Parrot_tailcallmethod_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    opcode_t * const next       = cur_opcode + 3;
+    PMC      * const object     = PREG(1);
+    STRING   * const meth       = CONST(2)->u.string;
+    PMC      * const method_pmc = VTABLE_find_method(interp, object, meth);
+
+    opcode_t *dest;
+    PMC      *       signature  = Parrot_pcc_get_signature(interp,
+                                    CURRENT_CONTEXT(interp));
+
+    if (PMC_IS_NULL(method_pmc)) {
+        dest = Parrot_ex_throw_from_op_args(interp, next, EXCEPTION_METHOD_NOT_FOUND,
+            "Method '%Ss' not found for invocant of class '%Ss'", meth,
+            VTABLE_get_string(interp, VTABLE_get_class(interp, object)));
+    }
+    else {
+        interp->current_cont = Parrot_pcc_get_continuation(interp, CURRENT_CONTEXT(interp));
+        PObj_get_FLAGS(interp->current_cont) |= SUB_FLAG_TAILCALL;
+        if (!PMC_IS_NULL(signature))
+            Parrot_pcc_set_object(interp, signature, object);
+        dest = (opcode_t *)VTABLE_invoke(interp, method_pmc, next);
+    }
+    return (opcode_t *)dest;
+}
+
+opcode_t *
+Parrot_tailcallmethod_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    opcode_t * const next       = cur_opcode + 3;
+    PMC      * const object     = PREG(1);
+    PMC      * const method_pmc = PREG(2);
+
+    opcode_t *dest;
+    PMC      *       signature  = Parrot_pcc_get_signature(interp,
+                                    CURRENT_CONTEXT(interp));
+
+    interp->current_cont = Parrot_pcc_get_continuation(interp, CURRENT_CONTEXT(interp));
+    PObj_get_FLAGS(interp->current_cont) |= SUB_FLAG_TAILCALL;
+
+    if (!PMC_IS_NULL(signature))
+        Parrot_pcc_set_object(interp, signature, object);
+    dest = (opcode_t *)VTABLE_invoke(interp, method_pmc, next);
+    return (opcode_t *)dest;
+}
+
+opcode_t *
+Parrot_addmethod_p_s_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_add_method(interp, PREG(1), SREG(2), PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_addmethod_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_add_method(interp, PREG(1), CONST(2)->u.string, PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_can_i_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = VTABLE_can(interp, PREG(2), SREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_can_i_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = VTABLE_can(interp, PREG(2), CONST(3)->u.string);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_does_i_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = SREG(3) ? VTABLE_does(interp, PREG(2), SREG(3)) : 0;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_does_i_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = CONST(3)->u.string ? VTABLE_does(interp, PREG(2), CONST(3)->u.string) : 0;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_does_i_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = PREG(3) ? VTABLE_does_pmc(interp, PREG(2), PREG(3)) : 0;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_does_i_p_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = CONST(3)->u.key ? VTABLE_does_pmc(interp, PREG(2), CONST(3)->u.key) : 0;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_isa_i_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = SREG(3) ? VTABLE_isa(interp, PREG(2), SREG(3)) : 0;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_isa_i_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = CONST(3)->u.string ? VTABLE_isa(interp, PREG(2), CONST(3)->u.string) : 0;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_isa_i_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = PREG(3) ? VTABLE_isa_pmc(interp, PREG(2), PREG(3)) : 0;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_isa_i_p_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = CONST(3)->u.key ? VTABLE_isa_pmc(interp, PREG(2), CONST(3)->u.key) : 0;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_newclass_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const name = Parrot_pmc_new(interp, enum_class_String);
+    VTABLE_set_string_native(interp, name, SREG(2));
+    PREG(1) = Parrot_pmc_new_init(interp, enum_class_Class, name);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_newclass_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const name = Parrot_pmc_new(interp, enum_class_String);
+    VTABLE_set_string_native(interp, name, CONST(2)->u.string);
+    PREG(1) = Parrot_pmc_new_init(interp, enum_class_Class, name);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_newclass_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = Parrot_pmc_new_init(interp, enum_class_Class, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_newclass_p_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = Parrot_pmc_new_init(interp, enum_class_Class, CONST(2)->u.key);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_subclass_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC      * const parent_class = Parrot_oo_get_class(interp, PREG(2));
+    opcode_t * const next         = cur_opcode + 3;
+
+    if (PMC_IS_NULL(parent_class)) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, next,
+            EXCEPTION_NO_CLASS,
+            "Class '%Ss' doesn't exist", VTABLE_get_string(interp, PREG(2)));
+        return (opcode_t *)handler;
+    }
+    PREG(1) = Parrot_pmc_new(interp, enum_class_Class);
+    VTABLE_add_parent(interp, PREG(1), parent_class);
+    return (opcode_t *)next;
+}
+
+opcode_t *
+Parrot_subclass_p_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC      * const parent_class = Parrot_oo_get_class(interp, CONST(2)->u.key);
+    opcode_t * const next         = cur_opcode + 3;
+
+    if (PMC_IS_NULL(parent_class)) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, next,
+            EXCEPTION_NO_CLASS,
+            "Class '%Ss' doesn't exist", VTABLE_get_string(interp, CONST(2)->u.key));
+        return (opcode_t *)handler;
+    }
+    PREG(1) = Parrot_pmc_new(interp, enum_class_Class);
+    VTABLE_add_parent(interp, PREG(1), parent_class);
+    return (opcode_t *)next;
+}
+
+opcode_t *
+Parrot_subclass_p_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC      * const parent_class = Parrot_oo_get_class(interp, PREG(2));
+    opcode_t * const next         = cur_opcode + 4;
+
+    if (PMC_IS_NULL(parent_class)) {
+        opcode_t * handler = Parrot_ex_throw_from_op_args(interp, next,
+            EXCEPTION_NO_CLASS,
+            "Class '%Ss' doesn't exist", VTABLE_get_string(interp, PREG(2)));
+        return (opcode_t *)handler;
+    }
+    PREG(1) = Parrot_oo_newclass_from_str(interp, SREG(3));
+    VTABLE_add_parent(interp, PREG(1), parent_class);
+    return (opcode_t *)next;
+}
+
+opcode_t *
+Parrot_subclass_p_pc_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC      * const parent_class = Parrot_oo_get_class(interp, CONST(2)->u.key);
+    opcode_t * const next         = cur_opcode + 4;
+
+    if (PMC_IS_NULL(parent_class)) {
+        opcode_t * handler = Parrot_ex_throw_from_op_args(interp, next,
+            EXCEPTION_NO_CLASS,
+            "Class '%Ss' doesn't exist", VTABLE_get_string(interp, CONST(2)->u.key));
+        return (opcode_t *)handler;
+    }
+    PREG(1) = Parrot_oo_newclass_from_str(interp, SREG(3));
+    VTABLE_add_parent(interp, PREG(1), parent_class);
+    return (opcode_t *)next;
+}
+
+opcode_t *
+Parrot_subclass_p_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC      * const parent_class = Parrot_oo_get_class(interp, PREG(2));
+    opcode_t * const next         = cur_opcode + 4;
+
+    if (PMC_IS_NULL(parent_class)) {
+        opcode_t * handler = Parrot_ex_throw_from_op_args(interp, next,
+            EXCEPTION_NO_CLASS,
+            "Class '%Ss' doesn't exist", VTABLE_get_string(interp, PREG(2)));
+        return (opcode_t *)handler;
+    }
+    PREG(1) = Parrot_oo_newclass_from_str(interp, CONST(3)->u.string);
+    VTABLE_add_parent(interp, PREG(1), parent_class);
+    return (opcode_t *)next;
+}
+
+opcode_t *
+Parrot_subclass_p_pc_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC      * const parent_class = Parrot_oo_get_class(interp, CONST(2)->u.key);
+    opcode_t * const next         = cur_opcode + 4;
+
+    if (PMC_IS_NULL(parent_class)) {
+        opcode_t * handler = Parrot_ex_throw_from_op_args(interp, next,
+            EXCEPTION_NO_CLASS,
+            "Class '%Ss' doesn't exist", VTABLE_get_string(interp, CONST(2)->u.key));
+        return (opcode_t *)handler;
+    }
+    PREG(1) = Parrot_oo_newclass_from_str(interp, CONST(3)->u.string);
+    VTABLE_add_parent(interp, PREG(1), parent_class);
+    return (opcode_t *)next;
+}
+
+opcode_t *
+Parrot_subclass_p_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC      * const parent_class = Parrot_oo_get_class(interp, PREG(2));
+    opcode_t * const next         = cur_opcode + 4;
+
+    if (PMC_IS_NULL(parent_class)) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, next,
+            EXCEPTION_NO_CLASS,
+            "Class '%Ss' doesn't exist", VTABLE_get_string(interp, PREG(2)));
+        return (opcode_t *)handler;
+    }
+    PREG(1) = Parrot_pmc_new_init(interp, enum_class_Class, PREG(3));
+    VTABLE_add_parent(interp, PREG(1), parent_class);
+    return (opcode_t *)next;
+}
+
+opcode_t *
+Parrot_subclass_p_pc_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC      * const parent_class = Parrot_oo_get_class(interp, CONST(2)->u.key);
+    opcode_t * const next         = cur_opcode + 4;
+
+    if (PMC_IS_NULL(parent_class)) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, next,
+            EXCEPTION_NO_CLASS,
+            "Class '%Ss' doesn't exist", VTABLE_get_string(interp, CONST(2)->u.key));
+        return (opcode_t *)handler;
+    }
+    PREG(1) = Parrot_pmc_new_init(interp, enum_class_Class, PREG(3));
+    VTABLE_add_parent(interp, PREG(1), parent_class);
+    return (opcode_t *)next;
+}
+
+opcode_t *
+Parrot_subclass_p_p_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC      * const parent_class = Parrot_oo_get_class(interp, PREG(2));
+    opcode_t * const next         = cur_opcode + 4;
+
+    if (PMC_IS_NULL(parent_class)) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, next,
+            EXCEPTION_NO_CLASS,
+            "Class '%Ss' doesn't exist", VTABLE_get_string(interp, PREG(2)));
+        return (opcode_t *)handler;
+    }
+    PREG(1) = Parrot_pmc_new_init(interp, enum_class_Class, CONST(3)->u.key);
+    VTABLE_add_parent(interp, PREG(1), parent_class);
+    return (opcode_t *)next;
+}
+
+opcode_t *
+Parrot_subclass_p_pc_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC      * const parent_class = Parrot_oo_get_class(interp, CONST(2)->u.key);
+    opcode_t * const next         = cur_opcode + 4;
+
+    if (PMC_IS_NULL(parent_class)) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, next,
+            EXCEPTION_NO_CLASS,
+            "Class '%Ss' doesn't exist", VTABLE_get_string(interp, CONST(2)->u.key));
+        return (opcode_t *)handler;
+    }
+    PREG(1) = Parrot_pmc_new_init(interp, enum_class_Class, CONST(3)->u.key);
+    VTABLE_add_parent(interp, PREG(1), parent_class);
+    return (opcode_t *)next;
+}
+
+opcode_t *
+Parrot_subclass_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC      * const parent_class = Parrot_oo_get_class_str(interp, SREG(2));
+    opcode_t * const next         = cur_opcode + 3;
+
+    if (PMC_IS_NULL(parent_class)) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, next,
+            EXCEPTION_NO_CLASS,
+            "Class '%Ss' doesn't exist", SREG(2));
+        return (opcode_t *)handler;
+    }
+
+    PREG(1) = Parrot_pmc_new(interp, enum_class_Class);
+    VTABLE_add_parent(interp, PREG(1), parent_class);
+    return (opcode_t *)next;
+}
+
+opcode_t *
+Parrot_subclass_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC      * const parent_class = Parrot_oo_get_class_str(interp, CONST(2)->u.string);
+    opcode_t * const next         = cur_opcode + 3;
+
+    if (PMC_IS_NULL(parent_class)) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, next,
+            EXCEPTION_NO_CLASS,
+            "Class '%Ss' doesn't exist", CONST(2)->u.string);
+        return (opcode_t *)handler;
+    }
+
+    PREG(1) = Parrot_pmc_new(interp, enum_class_Class);
+    VTABLE_add_parent(interp, PREG(1), parent_class);
+    return (opcode_t *)next;
+}
+
+opcode_t *
+Parrot_subclass_p_s_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC      * const parent_class = Parrot_oo_get_class_str(interp, SREG(2));
+    opcode_t * const next         = cur_opcode + 4;
+
+    if (PMC_IS_NULL(parent_class)) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, next,
+            EXCEPTION_NO_CLASS,
+            "Class '%Ss' doesn't exist", SREG(2));
+        return (opcode_t *)handler;
+    }
+
+    PREG(1)  = Parrot_oo_newclass_from_str(interp, SREG(3));
+    VTABLE_add_parent(interp, PREG(1), parent_class);
+    return (opcode_t *)next;
+}
+
+opcode_t *
+Parrot_subclass_p_sc_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC      * const parent_class = Parrot_oo_get_class_str(interp, CONST(2)->u.string);
+    opcode_t * const next         = cur_opcode + 4;
+
+    if (PMC_IS_NULL(parent_class)) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, next,
+            EXCEPTION_NO_CLASS,
+            "Class '%Ss' doesn't exist", CONST(2)->u.string);
+        return (opcode_t *)handler;
+    }
+
+    PREG(1)  = Parrot_oo_newclass_from_str(interp, SREG(3));
+    VTABLE_add_parent(interp, PREG(1), parent_class);
+    return (opcode_t *)next;
+}
+
+opcode_t *
+Parrot_subclass_p_s_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC      * const parent_class = Parrot_oo_get_class_str(interp, SREG(2));
+    opcode_t * const next         = cur_opcode + 4;
+
+    if (PMC_IS_NULL(parent_class)) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, next,
+            EXCEPTION_NO_CLASS,
+            "Class '%Ss' doesn't exist", SREG(2));
+        return (opcode_t *)handler;
+    }
+
+    PREG(1)  = Parrot_oo_newclass_from_str(interp, CONST(3)->u.string);
+    VTABLE_add_parent(interp, PREG(1), parent_class);
+    return (opcode_t *)next;
+}
+
+opcode_t *
+Parrot_subclass_p_sc_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC      * const parent_class = Parrot_oo_get_class_str(interp, CONST(2)->u.string);
+    opcode_t * const next         = cur_opcode + 4;
+
+    if (PMC_IS_NULL(parent_class)) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, next,
+            EXCEPTION_NO_CLASS,
+            "Class '%Ss' doesn't exist", CONST(2)->u.string);
+        return (opcode_t *)handler;
+    }
+
+    PREG(1)  = Parrot_oo_newclass_from_str(interp, CONST(3)->u.string);
+    VTABLE_add_parent(interp, PREG(1), parent_class);
+    return (opcode_t *)next;
+}
+
+opcode_t *
+Parrot_subclass_p_s_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC      * const parent_class = Parrot_oo_get_class_str(interp, SREG(2));
+    opcode_t * const next         = cur_opcode + 4;
+
+    if (PMC_IS_NULL(parent_class)) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, next,
+            EXCEPTION_NO_CLASS,
+            "Class '%Ss' doesn't exist", SREG(2));
+        return (opcode_t *)handler;
+    }
+
+    PREG(1) = Parrot_pmc_new_init(interp, enum_class_Class, PREG(3));
+    VTABLE_add_parent(interp, PREG(1), parent_class);
+    return (opcode_t *)next;
+}
+
+opcode_t *
+Parrot_subclass_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC      * const parent_class = Parrot_oo_get_class_str(interp, CONST(2)->u.string);
+    opcode_t * const next         = cur_opcode + 4;
+
+    if (PMC_IS_NULL(parent_class)) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, next,
+            EXCEPTION_NO_CLASS,
+            "Class '%Ss' doesn't exist", CONST(2)->u.string);
+        return (opcode_t *)handler;
+    }
+
+    PREG(1) = Parrot_pmc_new_init(interp, enum_class_Class, PREG(3));
+    VTABLE_add_parent(interp, PREG(1), parent_class);
+    return (opcode_t *)next;
+}
+
+opcode_t *
+Parrot_subclass_p_s_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC      * const parent_class = Parrot_oo_get_class_str(interp, SREG(2));
+    opcode_t * const next         = cur_opcode + 4;
+
+    if (PMC_IS_NULL(parent_class)) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, next,
+            EXCEPTION_NO_CLASS,
+            "Class '%Ss' doesn't exist", SREG(2));
+        return (opcode_t *)handler;
+    }
+
+    PREG(1) = Parrot_pmc_new_init(interp, enum_class_Class, CONST(3)->u.key);
+    VTABLE_add_parent(interp, PREG(1), parent_class);
+    return (opcode_t *)next;
+}
+
+opcode_t *
+Parrot_subclass_p_sc_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC      * const parent_class = Parrot_oo_get_class_str(interp, CONST(2)->u.string);
+    opcode_t * const next         = cur_opcode + 4;
+
+    if (PMC_IS_NULL(parent_class)) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, next,
+            EXCEPTION_NO_CLASS,
+            "Class '%Ss' doesn't exist", CONST(2)->u.string);
+        return (opcode_t *)handler;
+    }
+
+    PREG(1) = Parrot_pmc_new_init(interp, enum_class_Class, CONST(3)->u.key);
+    VTABLE_add_parent(interp, PREG(1), parent_class);
+    return (opcode_t *)next;
+}
+
+opcode_t *
+Parrot_get_class_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = Parrot_oo_get_class_str(interp, SREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_get_class_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = Parrot_oo_get_class_str(interp, CONST(2)->u.string);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_get_class_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = Parrot_oo_get_class(interp, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_get_class_p_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = Parrot_oo_get_class(interp, CONST(2)->u.key);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_class_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_get_class(interp, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_addparent_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_add_parent(interp, PREG(1), PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_removeparent_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_remove_parent(interp, PREG(1), PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_addrole_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_add_role(interp, PREG(1), PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_addattribute_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    STRING * const class_name  = string_from_literal(interp, "Class");
+    STRING * const role_name   = string_from_literal(interp, "Role");
+
+    if (VTABLE_isa(interp, PREG(1), class_name) || VTABLE_isa(interp, PREG(1), role_name))
+        VTABLE_add_attribute(interp, PREG(1), SREG(2), PMCNULL);
+    else {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, NULL,
+            EXCEPTION_INVALID_OPERATION,
+            "Cannot add attribute to non-class");
+        return (opcode_t *)handler;
+    }
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_addattribute_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    STRING * const class_name  = string_from_literal(interp, "Class");
+    STRING * const role_name   = string_from_literal(interp, "Role");
+
+    if (VTABLE_isa(interp, PREG(1), class_name) || VTABLE_isa(interp, PREG(1), role_name))
+        VTABLE_add_attribute(interp, PREG(1), CONST(2)->u.string, PMCNULL);
+    else {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, NULL,
+            EXCEPTION_INVALID_OPERATION,
+            "Cannot add attribute to non-class");
+        return (opcode_t *)handler;
+    }
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_removeattribute_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_remove_attribute(interp, PREG(1), SREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_removeattribute_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_remove_attribute(interp, PREG(1), CONST(2)->u.string);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_getattribute_p_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_get_attr_str(interp, PREG(2), SREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_getattribute_p_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_get_attr_str(interp, PREG(2), CONST(3)->u.string);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_getattribute_p_p_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_get_attr_keyed(interp, PREG(2), PREG(3), SREG(4));
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_getattribute_p_p_pc_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_get_attr_keyed(interp, PREG(2), CONST(3)->u.key, SREG(4));
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_getattribute_p_p_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_get_attr_keyed(interp, PREG(2), PREG(3), CONST(4)->u.string);
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_getattribute_p_p_pc_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_get_attr_keyed(interp, PREG(2), CONST(3)->u.key, CONST(4)->u.string);
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_setattribute_p_s_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_set_attr_str(interp, PREG(1), SREG(2), PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_setattribute_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_set_attr_str(interp, PREG(1), CONST(2)->u.string, PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_setattribute_p_p_s_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_set_attr_keyed(interp, PREG(1), PREG(2), SREG(3), PREG(4));
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_setattribute_p_pc_s_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_set_attr_keyed(interp, PREG(1), CONST(2)->u.key, SREG(3), PREG(4));
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_setattribute_p_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_set_attr_keyed(interp, PREG(1), PREG(2), CONST(3)->u.string, PREG(4));
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_setattribute_p_pc_sc_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_set_attr_keyed(interp, PREG(1), CONST(2)->u.key, CONST(3)->u.string, PREG(4));
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_inspect_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_inspect(interp, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_inspect_p_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_inspect(interp, CONST(2)->u.key);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_inspect_p_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_inspect_str(interp, PREG(2), SREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_inspect_p_pc_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_inspect_str(interp, CONST(2)->u.key, SREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_inspect_p_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_inspect_str(interp, PREG(2), CONST(3)->u.string);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_inspect_p_pc_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_inspect_str(interp, CONST(2)->u.key, CONST(3)->u.string);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_new_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    STRING * const name   = SREG(2);
+    PMC    * const _class = Parrot_pcc_get_HLL(interp, CURRENT_CONTEXT(interp))
+                          ? Parrot_oo_get_class_str(interp, name)
+                          : PMCNULL;
+
+    if (!PMC_IS_NULL(_class))
+        PREG(1) = VTABLE_instantiate(interp, _class, PMCNULL);
+    else {
+        const INTVAL type = Parrot_pmc_get_type_str(interp, name);
+        if (type <= 0) {
+            opcode_t * const dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 3,
+                EXCEPTION_NO_CLASS,
+                "Class '%Ss' not found", name);
+            return (opcode_t *)dest;
+        }
+        PREG(1) = Parrot_pmc_new(interp, type);
+    }
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_new_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    STRING * const name   = CONST(2)->u.string;
+    PMC    * const _class = Parrot_pcc_get_HLL(interp, CURRENT_CONTEXT(interp))
+                          ? Parrot_oo_get_class_str(interp, name)
+                          : PMCNULL;
+
+    if (!PMC_IS_NULL(_class))
+        PREG(1) = VTABLE_instantiate(interp, _class, PMCNULL);
+    else {
+        const INTVAL type = Parrot_pmc_get_type_str(interp, name);
+        if (type <= 0) {
+            opcode_t * const dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 3,
+                EXCEPTION_NO_CLASS,
+                "Class '%Ss' not found", name);
+            return (opcode_t *)dest;
+        }
+        PREG(1) = Parrot_pmc_new(interp, type);
+    }
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_new_p_s_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    STRING * const name   = SREG(2);
+    PMC    * const _class = Parrot_pcc_get_HLL(interp, CURRENT_CONTEXT(interp))
+                          ? Parrot_oo_get_class_str(interp, name)
+                          : PMCNULL;
+
+    if (!PMC_IS_NULL(_class))
+        PREG(1) = VTABLE_instantiate(interp, _class, PREG(3));
+    else {
+        const INTVAL type = Parrot_pmc_get_type_str(interp, name);
+        if (type <= 0) {
+            opcode_t * const dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
+                EXCEPTION_NO_CLASS,
+                "Class '%Ss' not found", name);
+            return (opcode_t *)dest;
+        }
+        PREG(1) = Parrot_pmc_new_init(interp, type, PREG(3));
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_new_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    STRING * const name   = CONST(2)->u.string;
+    PMC    * const _class = Parrot_pcc_get_HLL(interp, CURRENT_CONTEXT(interp))
+                          ? Parrot_oo_get_class_str(interp, name)
+                          : PMCNULL;
+
+    if (!PMC_IS_NULL(_class))
+        PREG(1) = VTABLE_instantiate(interp, _class, PREG(3));
+    else {
+        const INTVAL type = Parrot_pmc_get_type_str(interp, name);
+        if (type <= 0) {
+            opcode_t * const dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
+                EXCEPTION_NO_CLASS,
+                "Class '%Ss' not found", name);
+            return (opcode_t *)dest;
+        }
+        PREG(1) = Parrot_pmc_new_init(interp, type, PREG(3));
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_new_p_s_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    STRING * const name   = SREG(2);
+    PMC    * const _class = Parrot_pcc_get_HLL(interp, CURRENT_CONTEXT(interp))
+                          ? Parrot_oo_get_class_str(interp, name)
+                          : PMCNULL;
+
+    if (!PMC_IS_NULL(_class))
+        PREG(1) = VTABLE_instantiate(interp, _class, CONST(3)->u.key);
+    else {
+        const INTVAL type = Parrot_pmc_get_type_str(interp, name);
+        if (type <= 0) {
+            opcode_t * const dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
+                EXCEPTION_NO_CLASS,
+                "Class '%Ss' not found", name);
+            return (opcode_t *)dest;
+        }
+        PREG(1) = Parrot_pmc_new_init(interp, type, CONST(3)->u.key);
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_new_p_sc_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    STRING * const name   = CONST(2)->u.string;
+    PMC    * const _class = Parrot_pcc_get_HLL(interp, CURRENT_CONTEXT(interp))
+                          ? Parrot_oo_get_class_str(interp, name)
+                          : PMCNULL;
+
+    if (!PMC_IS_NULL(_class))
+        PREG(1) = VTABLE_instantiate(interp, _class, CONST(3)->u.key);
+    else {
+        const INTVAL type = Parrot_pmc_get_type_str(interp, name);
+        if (type <= 0) {
+            opcode_t * const dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
+                EXCEPTION_NO_CLASS,
+                "Class '%Ss' not found", name);
+            return (opcode_t *)dest;
+        }
+        PREG(1) = Parrot_pmc_new_init(interp, type, CONST(3)->u.key);
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_new_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const name_key = PREG(2);
+    PMC * const _class   = Parrot_oo_get_class(interp, name_key);
+
+    if (!PMC_IS_NULL(_class))
+        PREG(1) = VTABLE_instantiate(interp, _class, PMCNULL);
+    else {
+        const INTVAL type = Parrot_pmc_get_type(interp, name_key);
+        if (type <= 0) {
+            opcode_t * const dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 3,
+                EXCEPTION_NO_CLASS,
+                "Class '%Ss' not found", VTABLE_get_repr(interp, name_key));
+            return (opcode_t *)dest;
+        }
+        PREG(1) = Parrot_pmc_new(interp, type);
+    }
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_new_p_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const name_key = CONST(2)->u.key;
+    PMC * const _class   = Parrot_oo_get_class(interp, name_key);
+
+    if (!PMC_IS_NULL(_class))
+        PREG(1) = VTABLE_instantiate(interp, _class, PMCNULL);
+    else {
+        const INTVAL type = Parrot_pmc_get_type(interp, name_key);
+        if (type <= 0) {
+            opcode_t * const dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 3,
+                EXCEPTION_NO_CLASS,
+                "Class '%Ss' not found", VTABLE_get_repr(interp, name_key));
+            return (opcode_t *)dest;
+        }
+        PREG(1) = Parrot_pmc_new(interp, type);
+    }
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_new_p_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const name_key = PREG(2);
+    PMC * const _class   = Parrot_oo_get_class(interp, name_key);
+
+    if (!PMC_IS_NULL(_class))
+        PREG(1) = VTABLE_instantiate(interp, _class, PREG(3));
+    else {
+        const INTVAL type = Parrot_pmc_get_type(interp, name_key);
+        if (type <= 0) {
+            opcode_t * const dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
+                EXCEPTION_NO_CLASS,
+                "Class '%Ss' not found", VTABLE_get_repr(interp, name_key));
+            return (opcode_t *)dest;
+        }
+        PREG(1) = Parrot_pmc_new_init(interp, type, PREG(3));
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_new_p_pc_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const name_key = CONST(2)->u.key;
+    PMC * const _class   = Parrot_oo_get_class(interp, name_key);
+
+    if (!PMC_IS_NULL(_class))
+        PREG(1) = VTABLE_instantiate(interp, _class, PREG(3));
+    else {
+        const INTVAL type = Parrot_pmc_get_type(interp, name_key);
+        if (type <= 0) {
+            opcode_t * const dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
+                EXCEPTION_NO_CLASS,
+                "Class '%Ss' not found", VTABLE_get_repr(interp, name_key));
+            return (opcode_t *)dest;
+        }
+        PREG(1) = Parrot_pmc_new_init(interp, type, PREG(3));
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_new_p_p_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const name_key = PREG(2);
+    PMC * const _class   = Parrot_oo_get_class(interp, name_key);
+
+    if (!PMC_IS_NULL(_class))
+        PREG(1) = VTABLE_instantiate(interp, _class, CONST(3)->u.key);
+    else {
+        const INTVAL type = Parrot_pmc_get_type(interp, name_key);
+        if (type <= 0) {
+            opcode_t * const dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
+                EXCEPTION_NO_CLASS,
+                "Class '%Ss' not found", VTABLE_get_repr(interp, name_key));
+            return (opcode_t *)dest;
+        }
+        PREG(1) = Parrot_pmc_new_init(interp, type, CONST(3)->u.key);
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_new_p_pc_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const name_key = CONST(2)->u.key;
+    PMC * const _class   = Parrot_oo_get_class(interp, name_key);
+
+    if (!PMC_IS_NULL(_class))
+        PREG(1) = VTABLE_instantiate(interp, _class, CONST(3)->u.key);
+    else {
+        const INTVAL type = Parrot_pmc_get_type(interp, name_key);
+        if (type <= 0) {
+            opcode_t * const dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
+                EXCEPTION_NO_CLASS,
+                "Class '%Ss' not found", VTABLE_get_repr(interp, name_key));
+            return (opcode_t *)dest;
+        }
+        PREG(1) = Parrot_pmc_new_init(interp, type, CONST(3)->u.key);
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_root_new_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const key      = PREG(2);
+    PMC * const root_ns  = interp->root_namespace;
+    PMC * const ns       = Parrot_get_namespace_keyed(interp, root_ns, key);
+    PMC * classobj       = PMCNULL;
+
+    if (!PMC_IS_NULL(ns))
+        classobj = Parrot_oo_get_class(interp, ns);
+    if (!PMC_IS_NULL(classobj))
+        PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+    else {
+        opcode_t * const dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 3,
+            EXCEPTION_NO_CLASS,
+            "Class '%Ss' not found", VTABLE_get_repr(interp, key));
+        return (opcode_t *)dest;
+    }
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_root_new_p_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const key      = CONST(2)->u.key;
+    PMC * const root_ns  = interp->root_namespace;
+    PMC * const ns       = Parrot_get_namespace_keyed(interp, root_ns, key);
+    PMC * classobj       = PMCNULL;
+
+    if (!PMC_IS_NULL(ns))
+        classobj = Parrot_oo_get_class(interp, ns);
+    if (!PMC_IS_NULL(classobj))
+        PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+    else {
+        opcode_t * const dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 3,
+            EXCEPTION_NO_CLASS,
+            "Class '%Ss' not found", VTABLE_get_repr(interp, key));
+        return (opcode_t *)dest;
+    }
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_root_new_p_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const key      = PREG(2);
+    PMC * const root_ns  = interp->root_namespace;
+    PMC * const ns       = Parrot_get_namespace_keyed(interp, root_ns, key);
+    PMC * classobj       = PMCNULL;
+
+    if (!PMC_IS_NULL(ns))
+        classobj = Parrot_oo_get_class(interp, ns);
+    if (!PMC_IS_NULL(classobj))
+        PREG(1) = VTABLE_instantiate(interp, classobj, PREG(3));
+    else {
+        opcode_t * const dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
+            EXCEPTION_NO_CLASS,
+            "Class '%Ss' not found", VTABLE_get_repr(interp, key));
+        return (opcode_t *)dest;
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_root_new_p_pc_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const key      = CONST(2)->u.key;
+    PMC * const root_ns  = interp->root_namespace;
+    PMC * const ns       = Parrot_get_namespace_keyed(interp, root_ns, key);
+    PMC * classobj       = PMCNULL;
+
+    if (!PMC_IS_NULL(ns))
+        classobj = Parrot_oo_get_class(interp, ns);
+    if (!PMC_IS_NULL(classobj))
+        PREG(1) = VTABLE_instantiate(interp, classobj, PREG(3));
+    else {
+        opcode_t * const dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
+            EXCEPTION_NO_CLASS,
+            "Class '%Ss' not found", VTABLE_get_repr(interp, key));
+        return (opcode_t *)dest;
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_root_new_p_p_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const key      = PREG(2);
+    PMC * const root_ns  = interp->root_namespace;
+    PMC * const ns       = Parrot_get_namespace_keyed(interp, root_ns, key);
+    PMC * classobj       = PMCNULL;
+
+    if (!PMC_IS_NULL(ns))
+        classobj = Parrot_oo_get_class(interp, ns);
+    if (!PMC_IS_NULL(classobj))
+        PREG(1) = VTABLE_instantiate(interp, classobj, CONST(3)->u.key);
+    else {
+        opcode_t * const dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
+            EXCEPTION_NO_CLASS,
+            "Class '%Ss' not found", VTABLE_get_repr(interp, key));
+        return (opcode_t *)dest;
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_root_new_p_pc_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const key      = CONST(2)->u.key;
+    PMC * const root_ns  = interp->root_namespace;
+    PMC * const ns       = Parrot_get_namespace_keyed(interp, root_ns, key);
+    PMC * classobj       = PMCNULL;
+
+    if (!PMC_IS_NULL(ns))
+        classobj = Parrot_oo_get_class(interp, ns);
+    if (!PMC_IS_NULL(classobj))
+        PREG(1) = VTABLE_instantiate(interp, classobj, CONST(3)->u.key);
+    else {
+        opcode_t * const dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
+            EXCEPTION_NO_CLASS,
+            "Class '%Ss' not found", VTABLE_get_repr(interp, key));
+        return (opcode_t *)dest;
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_typeof_s_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = VTABLE_name(interp, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_typeof_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_get_class(interp, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_get_repr_s_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = VTABLE_get_repr(interp, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_find_method_p_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    opcode_t * const resume = cur_opcode + 4;
+    PREG(1) = VTABLE_find_method(interp, PREG(2), SREG(3));
+    if (PMC_IS_NULL(PREG(1)) || !VTABLE_defined(interp, PREG(1))) {
+        opcode_t * const dest = Parrot_ex_throw_from_op_args(interp, resume,
+            EXCEPTION_METHOD_NOT_FOUND,
+            "Method '%Ss' not found for invocant of class '%Ss'", SREG(3),
+            VTABLE_get_string(interp, VTABLE_get_class(interp, PREG(2))));
+        return (opcode_t *)dest;
+    }
+    return (opcode_t *)resume;
+}
+
+opcode_t *
+Parrot_find_method_p_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    opcode_t * const resume = cur_opcode + 4;
+    PREG(1) = VTABLE_find_method(interp, PREG(2), CONST(3)->u.string);
+    if (PMC_IS_NULL(PREG(1)) || !VTABLE_defined(interp, PREG(1))) {
+        opcode_t * const dest = Parrot_ex_throw_from_op_args(interp, resume,
+            EXCEPTION_METHOD_NOT_FOUND,
+            "Method '%Ss' not found for invocant of class '%Ss'", CONST(3)->u.string,
+            VTABLE_get_string(interp, VTABLE_get_class(interp, PREG(2))));
+        return (opcode_t *)dest;
+    }
+    return (opcode_t *)resume;
+}
+
+opcode_t *
+Parrot_defined_i_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = PMC_IS_NULL(PREG(2)) ? 0 : VTABLE_defined(interp, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_defined_i_p_ki(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = PMC_IS_NULL(PREG(2)) ? 0 : VTABLE_defined_keyed_int(interp, PREG(2), IREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_defined_i_p_kic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = PMC_IS_NULL(PREG(2)) ? 0 : VTABLE_defined_keyed_int(interp, PREG(2), cur_opcode[3]);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_defined_i_p_k(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = PMC_IS_NULL(PREG(2)) ? 0 : VTABLE_defined_keyed(interp, PREG(2), PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_defined_i_p_kc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = PMC_IS_NULL(PREG(2)) ? 0 : VTABLE_defined_keyed(interp, PREG(2), CONST(3)->u.key);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_exists_i_p_ki(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = PMC_IS_NULL(PREG(2)) ? 0 : VTABLE_exists_keyed_int(interp, PREG(2), IREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_exists_i_p_kic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = PMC_IS_NULL(PREG(2)) ? 0 : VTABLE_exists_keyed_int(interp, PREG(2), cur_opcode[3]);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_exists_i_p_k(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = PMC_IS_NULL(PREG(2)) ? 0: VTABLE_exists_keyed(interp, PREG(2), PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_exists_i_p_kc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = PMC_IS_NULL(PREG(2)) ? 0: VTABLE_exists_keyed(interp, PREG(2), CONST(3)->u.key);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_delete_p_k(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_delete_keyed(interp, PREG(1), PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_delete_p_kc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_delete_keyed(interp, PREG(1), CONST(2)->u.key);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_delete_p_ki(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_delete_keyed_int(interp, PREG(1), IREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_delete_p_kic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_delete_keyed_int(interp, PREG(1), cur_opcode[2]);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_elements_i_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = VTABLE_elements(interp, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_push_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_push_integer(interp, PREG(1), IREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_push_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_push_integer(interp, PREG(1), cur_opcode[2]);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_push_p_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_push_float(interp, PREG(1), NREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_push_p_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_push_float(interp, PREG(1), CONST(2)->u.number);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_push_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_push_string(interp, PREG(1), SREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_push_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_push_string(interp, PREG(1), CONST(2)->u.string);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_push_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_push_pmc(interp, PREG(1), PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_pop_i_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = VTABLE_pop_integer(interp, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_pop_n_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    NREG(1) = VTABLE_pop_float(interp, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_pop_s_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = VTABLE_pop_string(interp, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_pop_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_pop_pmc(interp, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_unshift_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_unshift_integer(interp, PREG(1), IREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_unshift_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_unshift_integer(interp, PREG(1), cur_opcode[2]);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_unshift_p_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_unshift_float(interp, PREG(1), NREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_unshift_p_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_unshift_float(interp, PREG(1), CONST(2)->u.number);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_unshift_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_unshift_string(interp, PREG(1), SREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_unshift_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_unshift_string(interp, PREG(1), CONST(2)->u.string);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_unshift_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_unshift_pmc(interp, PREG(1), PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_shift_i_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = VTABLE_shift_integer(interp, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_shift_n_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    NREG(1) = VTABLE_shift_float(interp, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_shift_s_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = VTABLE_shift_string(interp, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_shift_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_shift_pmc(interp, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_splice_p_p_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_splice(interp, PREG(1), PREG(2), IREG(3), IREG(4));
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_splice_p_p_ic_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_splice(interp, PREG(1), PREG(2), cur_opcode[3], IREG(4));
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_splice_p_p_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_splice(interp, PREG(1), PREG(2), IREG(3), cur_opcode[4]);
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_splice_p_p_ic_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_splice(interp, PREG(1), PREG(2), cur_opcode[3], cur_opcode[4]);
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_setprop_p_s_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_setprop(interp, PREG(1), SREG(2), PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_setprop_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_setprop(interp, PREG(1), CONST(2)->u.string, PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_getprop_p_s_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_getprop(interp, PREG(3), SREG(2));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_getprop_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_getprop(interp, PREG(3), CONST(2)->u.string);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_delprop_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_delprop(interp, PREG(1), SREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_delprop_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_delprop(interp, PREG(1), CONST(2)->u.string);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_prophash_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_getprops(interp, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_freeze_s_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_freeze(interp, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_thaw_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = Parrot_thaw(interp, SREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_thaw_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = Parrot_thaw(interp, CONST(2)->u.string);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_add_multi_s_s_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    Parrot_mmd_add_multi_from_long_sig(interp, SREG(1), SREG(2), PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_add_multi_sc_s_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    Parrot_mmd_add_multi_from_long_sig(interp, CONST(1)->u.string, SREG(2), PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_add_multi_s_sc_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    Parrot_mmd_add_multi_from_long_sig(interp, SREG(1), CONST(2)->u.string, PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_add_multi_sc_sc_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    Parrot_mmd_add_multi_from_long_sig(interp, CONST(1)->u.string, CONST(2)->u.string, PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_find_multi_p_s_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = Parrot_mmd_find_multi_from_long_sig(interp, SREG(2), SREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_find_multi_p_sc_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = Parrot_mmd_find_multi_from_long_sig(interp, CONST(2)->u.string, SREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_find_multi_p_s_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = Parrot_mmd_find_multi_from_long_sig(interp, SREG(2), CONST(3)->u.string);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_find_multi_p_sc_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = Parrot_mmd_find_multi_from_long_sig(interp, CONST(2)->u.string, CONST(3)->u.string);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_register_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    Parrot_pmc_gc_register(interp, PREG(1));
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_unregister_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    Parrot_pmc_gc_unregister(interp, PREG(1));
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_box_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_Integer));
+    VTABLE_set_integer_native(interp, PREG(1), IREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_box_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_Integer));
+    VTABLE_set_integer_native(interp, PREG(1), cur_opcode[2]);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_box_p_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_Float));
+    VTABLE_set_number_native(interp, PREG(1), NREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_box_p_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_Float));
+    VTABLE_set_number_native(interp, PREG(1), CONST(2)->u.number);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_box_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_String));
+    VTABLE_set_string_native(interp, PREG(1), SREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_box_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_String));
+    VTABLE_set_string_native(interp, PREG(1), CONST(2)->u.string);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_iter_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_get_iter(interp, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_morph_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_morph(interp, PREG(1), PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_morph_p_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_morph(interp, PREG(1), CONST(2)->u.key);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_clone_s_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    /* cloning a NULL STRING produces an empty STRING; TT #964 */
+    SREG(1) = STRING_IS_NULL(SREG(2))
+       ? Parrot_str_new(interp, NULL, 0)
+       : SREG(2);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_clone_s_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    /* cloning a NULL STRING produces an empty STRING; TT #964 */
+    SREG(1) = STRING_IS_NULL(CONST(2)->u.string)
+       ? Parrot_str_new(interp, NULL, 0)
+       : CONST(2)->u.string;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = IREG(2);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = cur_opcode[2];
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_i_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = (INTVAL)(NREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_i_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = (INTVAL)(CONST(2)->u.number);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_i_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = Parrot_str_to_int(interp, SREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_i_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = Parrot_str_to_int(interp, CONST(2)->u.string);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_n_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    NREG(1) = NREG(2);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_n_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    NREG(1) = CONST(2)->u.number;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_n_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    NREG(1) = (FLOATVAL)IREG(2);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_n_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    NREG(1) = (FLOATVAL)cur_opcode[2];
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_n_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    NREG(1) = Parrot_str_to_num(interp, SREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_n_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    NREG(1) = Parrot_str_to_num(interp, CONST(2)->u.string);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_n_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    NREG(1) = VTABLE_get_number(interp, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_s_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = VTABLE_get_string(interp, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_s_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = SREG(2);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_s_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = CONST(2)->u.string;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_s_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_str_from_int(interp, IREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_str_from_int(interp, cur_opcode[2]);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_s_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_str_from_num(interp, NREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_s_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_str_from_num(interp, CONST(2)->u.number);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_p_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = CONST(2)->u.key;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = PREG(2);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_set_integer_native(interp, PREG(1), IREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_set_integer_native(interp, PREG(1), cur_opcode[2]);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_p_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_set_number_native(interp, PREG(1), NREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_p_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_set_number_native(interp, PREG(1), CONST(2)->u.number);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_set_string_native(interp, PREG(1), SREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_set_string_native(interp, PREG(1), CONST(2)->u.string);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_i_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = VTABLE_get_integer(interp, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_assign_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_assign_pmc(interp, PREG(1), PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_assign_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_set_integer_native(interp, PREG(1), IREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_assign_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_set_integer_native(interp, PREG(1), cur_opcode[2]);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_assign_p_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_set_number_native(interp, PREG(1), NREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_assign_p_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_set_number_native(interp, PREG(1), CONST(2)->u.number);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_assign_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_assign_string_native(interp, PREG(1), SREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_assign_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_assign_string_native(interp, PREG(1), CONST(2)->u.string);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_assign_s_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = SREG(2);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_assign_s_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = CONST(2)->u.string;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_setref_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_set_pmc(interp, PREG(1), PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_deref_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_get_pmc(interp, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_p_ki_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_set_integer_keyed_int(interp, PREG(1), IREG(2), IREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_p_kic_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_set_integer_keyed_int(interp, PREG(1), cur_opcode[2], IREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_p_ki_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_set_integer_keyed_int(interp, PREG(1), IREG(2), cur_opcode[3]);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_p_kic_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_set_integer_keyed_int(interp, PREG(1), cur_opcode[2], cur_opcode[3]);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_p_ki_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_set_number_keyed_int(interp, PREG(1), IREG(2), NREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_p_kic_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_set_number_keyed_int(interp, PREG(1), cur_opcode[2], NREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_p_ki_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_set_number_keyed_int(interp, PREG(1), IREG(2), CONST(3)->u.number);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_p_kic_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_set_number_keyed_int(interp, PREG(1), cur_opcode[2], CONST(3)->u.number);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_p_ki_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_set_string_keyed_int(interp, PREG(1), IREG(2), SREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_p_kic_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_set_string_keyed_int(interp, PREG(1), cur_opcode[2], SREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_p_ki_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_set_string_keyed_int(interp, PREG(1), IREG(2), CONST(3)->u.string);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_p_kic_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_set_string_keyed_int(interp, PREG(1), cur_opcode[2], CONST(3)->u.string);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_p_ki_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_set_pmc_keyed_int(interp, PREG(1), IREG(2), PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_p_kic_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_set_pmc_keyed_int(interp, PREG(1), cur_opcode[2], PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_i_p_ki(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = VTABLE_get_integer_keyed_int(interp, PREG(2), IREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_i_p_kic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = VTABLE_get_integer_keyed_int(interp, PREG(2), cur_opcode[3]);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_n_p_ki(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    NREG(1) = VTABLE_get_number_keyed_int(interp, PREG(2), IREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_n_p_kic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    NREG(1) = VTABLE_get_number_keyed_int(interp, PREG(2), cur_opcode[3]);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_s_p_ki(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = VTABLE_get_string_keyed_int(interp, PREG(2), IREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_s_p_kic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = VTABLE_get_string_keyed_int(interp, PREG(2), cur_opcode[3]);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_p_p_ki(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_get_pmc_keyed_int(interp, PREG(2), IREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_p_p_kic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_get_pmc_keyed_int(interp, PREG(2), cur_opcode[3]);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_p_k_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_set_integer_keyed(interp, PREG(1), PREG(2), IREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_p_kc_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_set_integer_keyed(interp, PREG(1), CONST(2)->u.key, IREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_p_k_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_set_integer_keyed(interp, PREG(1), PREG(2), cur_opcode[3]);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_p_kc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_set_integer_keyed(interp, PREG(1), CONST(2)->u.key, cur_opcode[3]);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_p_k_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_set_number_keyed(interp, PREG(1), PREG(2), NREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_p_kc_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_set_number_keyed(interp, PREG(1), CONST(2)->u.key, NREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_p_k_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_set_number_keyed(interp, PREG(1), PREG(2), CONST(3)->u.number);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_p_kc_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_set_number_keyed(interp, PREG(1), CONST(2)->u.key, CONST(3)->u.number);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_p_k_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_set_string_keyed(interp, PREG(1), PREG(2), SREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_p_kc_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_set_string_keyed(interp, PREG(1), CONST(2)->u.key, SREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_p_k_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_set_string_keyed(interp, PREG(1), PREG(2), CONST(3)->u.string);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_p_kc_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_set_string_keyed(interp, PREG(1), CONST(2)->u.key, CONST(3)->u.string);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_p_k_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_set_pmc_keyed(interp, PREG(1), PREG(2), PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_p_kc_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_set_pmc_keyed(interp, PREG(1), CONST(2)->u.key, PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_i_p_k(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = VTABLE_get_integer_keyed(interp, PREG(2), PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_i_p_kc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = VTABLE_get_integer_keyed(interp, PREG(2), CONST(3)->u.key);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_n_p_k(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    NREG(1) = VTABLE_get_number_keyed(interp, PREG(2), PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_n_p_kc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    NREG(1) = VTABLE_get_number_keyed(interp, PREG(2), CONST(3)->u.key);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_s_p_k(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = VTABLE_get_string_keyed(interp, PREG(2), PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_s_p_kc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = VTABLE_get_string_keyed(interp, PREG(2), CONST(3)->u.key);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_p_p_k(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_get_pmc_keyed(interp, PREG(2), PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_p_p_kc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_get_pmc_keyed(interp, PREG(2), CONST(3)->u.key);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_clone_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_clone(interp, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_clone_p_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_clone_pmc(interp, PREG(2), PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_clone_p_p_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_clone_pmc(interp, PREG(2), CONST(3)->u.key);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_copy_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (PMC_IS_NULL(PREG(1))) {
+        opcode_t * const dest = cur_opcode + 3;
+        opcode_t * const handler = Parrot_ex_throw_from_op_args(interp, dest,
+                EXCEPTION_NULL_REG_ACCESS, "Null PMC in copy");
+        return (opcode_t *)handler;
+    }
+    else {
+        PMC   * const clone = VTABLE_clone(interp, PREG(2));
+        /* Preserve the metadata on the destination. */
+        PMC   * const meta  = VTABLE_getprops(interp, PREG(1));
+
+        /* avoid leaks and unreachable memory by destroying the destination PMC */
+        Parrot_pmc_destroy(interp, PREG(1));
+
+        /* the source PMC knows how to clone itself, but we must reuse the
+         * destination header */
+        memmove(PREG(1), clone, sizeof (PMC));
+
+        /* don't let the clone's destruction destroy the destination's data */
+        PObj_custom_destroy_CLEAR(clone);
+        PMC_data(clone)        = NULL;
+        PMC_metadata(clone)    = NULL;
+
+        /* Restore metadata. */
+        if (!PMC_IS_NULL(meta)) {
+            PMC * const iter = VTABLE_get_iter(interp, meta);
+            while (VTABLE_get_bool(interp, iter)) {
+                STRING * const key = VTABLE_shift_string(interp, iter);
+                PMC * const value  = VTABLE_get_pmc_keyed_str(interp, meta, key);
+                VTABLE_setprop(interp, PREG(1), key, value);
+            }
+        }
+    }
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_null_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = STRINGNULL;
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_null_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = 0;
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_null_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = PMCNULL;
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_null_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    NREG(1) = 0;
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_ord_i_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = string_ord(interp, SREG(2), 0);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_ord_i_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = string_ord(interp, CONST(2)->u.string, 0);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_ord_i_s_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = string_ord(interp, SREG(2), IREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_ord_i_sc_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = string_ord(interp, CONST(2)->u.string, IREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_ord_i_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = string_ord(interp, SREG(2), cur_opcode[3]);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_ord_i_sc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = string_ord(interp, CONST(2)->u.string, cur_opcode[3]);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_chr_s_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    STRING * const s = string_chr(interp, (UINTVAL)IREG(2));
+    SREG(1) = s;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_chr_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    STRING * const s = string_chr(interp, (UINTVAL)cur_opcode[2]);
+    SREG(1) = s;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_chopn_s_s_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_str_chopn(interp, SREG(2), IREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_chopn_s_sc_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_str_chopn(interp, CONST(2)->u.string, IREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_chopn_s_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_str_chopn(interp, SREG(2), cur_opcode[3]);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_chopn_s_sc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_str_chopn(interp, CONST(2)->u.string, cur_opcode[3]);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_concat_s_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_str_concat(interp, SREG(1), SREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_concat_s_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_str_concat(interp, SREG(1), CONST(2)->u.string);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_concat_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_i_concatenate(interp, PREG(1), PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_concat_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_i_concatenate_str(interp, PREG(1), SREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_concat_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_i_concatenate_str(interp, PREG(1), CONST(2)->u.string);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_concat_s_s_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_str_concat(interp, SREG(2), SREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_concat_s_sc_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_str_concat(interp, CONST(2)->u.string, SREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_concat_s_s_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_str_concat(interp, SREG(2), CONST(3)->u.string);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_concat_p_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_concatenate_str(interp, PREG(2), SREG(3), PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_concat_p_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_concatenate_str(interp, PREG(2), CONST(3)->u.string, PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_concat_p_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_concatenate(interp, PREG(2), PREG(3), PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_repeat_s_s_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (IREG(3) < 0) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, NULL,
+                EXCEPTION_NEG_REPEAT,
+                "Cannot repeat with negative arg");
+        return (opcode_t *)handler;
+    }
+    SREG(1) = Parrot_str_repeat(interp, SREG(2), (UINTVAL)IREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_repeat_s_sc_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (IREG(3) < 0) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, NULL,
+                EXCEPTION_NEG_REPEAT,
+                "Cannot repeat with negative arg");
+        return (opcode_t *)handler;
+    }
+    SREG(1) = Parrot_str_repeat(interp, CONST(2)->u.string, (UINTVAL)IREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_repeat_s_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (cur_opcode[3] < 0) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, NULL,
+                EXCEPTION_NEG_REPEAT,
+                "Cannot repeat with negative arg");
+        return (opcode_t *)handler;
+    }
+    SREG(1) = Parrot_str_repeat(interp, SREG(2), (UINTVAL)cur_opcode[3]);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_repeat_s_sc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (cur_opcode[3] < 0) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, NULL,
+                EXCEPTION_NEG_REPEAT,
+                "Cannot repeat with negative arg");
+        return (opcode_t *)handler;
+    }
+    SREG(1) = Parrot_str_repeat(interp, CONST(2)->u.string, (UINTVAL)cur_opcode[3]);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_repeat_p_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (IREG(3) < 0) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, NULL,
+                EXCEPTION_NEG_REPEAT,
+                "Cannot repeat with negative arg");
+        return (opcode_t *)handler;
+    }
+    PREG(1) = VTABLE_repeat_int(interp, PREG(2), IREG(3), PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_repeat_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (cur_opcode[3] < 0) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, NULL,
+                EXCEPTION_NEG_REPEAT,
+                "Cannot repeat with negative arg");
+        return (opcode_t *)handler;
+    }
+    PREG(1) = VTABLE_repeat_int(interp, PREG(2), cur_opcode[3], PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_repeat_p_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (VTABLE_get_integer(interp, PREG(3)) < 0) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, NULL,
+                EXCEPTION_NEG_REPEAT,
+                "Cannot repeat with negative arg");
+        return (opcode_t *)handler;
+    }
+    PREG(1) = VTABLE_repeat(interp, PREG(2), PREG(3), PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_repeat_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_i_repeat_int(interp, PREG(1), IREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_repeat_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_i_repeat_int(interp, PREG(1), cur_opcode[2]);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_repeat_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_i_repeat(interp, PREG(1), PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_length_i_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = Parrot_str_length(interp, SREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_length_i_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = Parrot_str_length(interp, CONST(2)->u.string);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_bytelength_i_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = Parrot_str_byte_length(interp, SREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_bytelength_i_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = Parrot_str_byte_length(interp, CONST(2)->u.string);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_pin_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    Parrot_str_pin(interp, SREG(1));
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_unpin_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    Parrot_str_unpin(interp, SREG(1));
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_substr_s_s_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    const INTVAL len = Parrot_str_byte_length(interp, SREG(2));
+    SREG(1) = Parrot_str_substr(interp, SREG(2), IREG(3), len);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_substr_s_sc_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    const INTVAL len = Parrot_str_byte_length(interp, CONST(2)->u.string);
+    SREG(1) = Parrot_str_substr(interp, CONST(2)->u.string, IREG(3), len);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_substr_s_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    const INTVAL len = Parrot_str_byte_length(interp, SREG(2));
+    SREG(1) = Parrot_str_substr(interp, SREG(2), cur_opcode[3], len);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_substr_s_sc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    const INTVAL len = Parrot_str_byte_length(interp, CONST(2)->u.string);
+    SREG(1) = Parrot_str_substr(interp, CONST(2)->u.string, cur_opcode[3], len);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_substr_s_s_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_str_substr(interp, SREG(2), IREG(3), IREG(4));
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_substr_s_sc_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_str_substr(interp, CONST(2)->u.string, IREG(3), IREG(4));
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_substr_s_s_ic_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_str_substr(interp, SREG(2), cur_opcode[3], IREG(4));
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_substr_s_sc_ic_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_str_substr(interp, CONST(2)->u.string, cur_opcode[3], IREG(4));
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_substr_s_s_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_str_substr(interp, SREG(2), IREG(3), cur_opcode[4]);
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_substr_s_sc_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_str_substr(interp, CONST(2)->u.string, IREG(3), cur_opcode[4]);
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_substr_s_s_ic_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_str_substr(interp, SREG(2), cur_opcode[3], cur_opcode[4]);
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_substr_s_sc_ic_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_str_substr(interp, CONST(2)->u.string, cur_opcode[3], cur_opcode[4]);
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_substr_s_p_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = VTABLE_substr_str(interp, PREG(2), IREG(3), IREG(4));
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_substr_s_p_ic_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = VTABLE_substr_str(interp, PREG(2), cur_opcode[3], IREG(4));
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_substr_s_p_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = VTABLE_substr_str(interp, PREG(2), IREG(3), cur_opcode[4]);
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_substr_s_p_ic_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = VTABLE_substr_str(interp, PREG(2), cur_opcode[3], cur_opcode[4]);
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_replace_s_s_i_i_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_str_replace(interp, SREG(2), IREG(3), IREG(4), SREG(5));
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_replace_s_sc_i_i_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_str_replace(interp, CONST(2)->u.string, IREG(3), IREG(4), SREG(5));
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_replace_s_s_ic_i_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_str_replace(interp, SREG(2), cur_opcode[3], IREG(4), SREG(5));
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_replace_s_sc_ic_i_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_str_replace(interp, CONST(2)->u.string, cur_opcode[3], IREG(4), SREG(5));
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_replace_s_s_i_ic_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_str_replace(interp, SREG(2), IREG(3), cur_opcode[4], SREG(5));
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_replace_s_sc_i_ic_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_str_replace(interp, CONST(2)->u.string, IREG(3), cur_opcode[4], SREG(5));
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_replace_s_s_ic_ic_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_str_replace(interp, SREG(2), cur_opcode[3], cur_opcode[4], SREG(5));
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_replace_s_sc_ic_ic_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_str_replace(interp, CONST(2)->u.string, cur_opcode[3], cur_opcode[4], SREG(5));
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_replace_s_s_i_i_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_str_replace(interp, SREG(2), IREG(3), IREG(4), CONST(5)->u.string);
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_replace_s_sc_i_i_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_str_replace(interp, CONST(2)->u.string, IREG(3), IREG(4), CONST(5)->u.string);
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_replace_s_s_ic_i_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_str_replace(interp, SREG(2), cur_opcode[3], IREG(4), CONST(5)->u.string);
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_replace_s_sc_ic_i_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_str_replace(interp, CONST(2)->u.string, cur_opcode[3], IREG(4), CONST(5)->u.string);
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_replace_s_s_i_ic_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_str_replace(interp, SREG(2), IREG(3), cur_opcode[4], CONST(5)->u.string);
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_replace_s_sc_i_ic_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_str_replace(interp, CONST(2)->u.string, IREG(3), cur_opcode[4], CONST(5)->u.string);
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_replace_s_s_ic_ic_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_str_replace(interp, SREG(2), cur_opcode[3], cur_opcode[4], CONST(5)->u.string);
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_replace_s_sc_ic_ic_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_str_replace(interp, CONST(2)->u.string, cur_opcode[3], cur_opcode[4], CONST(5)->u.string);
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_index_i_s_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = (SREG(2) && SREG(3)) ? Parrot_str_find_index(interp, SREG(2), SREG(3), 0) : -1;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_index_i_sc_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = (CONST(2)->u.string && SREG(3)) ? Parrot_str_find_index(interp, CONST(2)->u.string, SREG(3), 0) : -1;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_index_i_s_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = (SREG(2) && CONST(3)->u.string) ? Parrot_str_find_index(interp, SREG(2), CONST(3)->u.string, 0) : -1;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_index_i_sc_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = (CONST(2)->u.string && CONST(3)->u.string) ? Parrot_str_find_index(interp, CONST(2)->u.string, CONST(3)->u.string, 0) : -1;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_index_i_s_s_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = (SREG(2) && SREG(3)) ? Parrot_str_find_index(interp, SREG(2), SREG(3), IREG(4)) : -1;
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_index_i_sc_s_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = (CONST(2)->u.string && SREG(3)) ? Parrot_str_find_index(interp, CONST(2)->u.string, SREG(3), IREG(4)) : -1;
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_index_i_s_sc_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = (SREG(2) && CONST(3)->u.string) ? Parrot_str_find_index(interp, SREG(2), CONST(3)->u.string, IREG(4)) : -1;
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_index_i_sc_sc_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = (CONST(2)->u.string && CONST(3)->u.string) ? Parrot_str_find_index(interp, CONST(2)->u.string, CONST(3)->u.string, IREG(4)) : -1;
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_index_i_s_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = (SREG(2) && SREG(3)) ? Parrot_str_find_index(interp, SREG(2), SREG(3), cur_opcode[4]) : -1;
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_index_i_sc_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = (CONST(2)->u.string && SREG(3)) ? Parrot_str_find_index(interp, CONST(2)->u.string, SREG(3), cur_opcode[4]) : -1;
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_index_i_s_sc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = (SREG(2) && CONST(3)->u.string) ? Parrot_str_find_index(interp, SREG(2), CONST(3)->u.string, cur_opcode[4]) : -1;
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_index_i_sc_sc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = (CONST(2)->u.string && CONST(3)->u.string) ? Parrot_str_find_index(interp, CONST(2)->u.string, CONST(3)->u.string, cur_opcode[4]) : -1;
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_sprintf_s_s_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1)=Parrot_psprintf(interp, SREG(2), PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_sprintf_s_sc_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1)=Parrot_psprintf(interp, CONST(2)->u.string, PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_sprintf_p_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_set_string_native(interp, PREG(1),
+        Parrot_psprintf(interp, VTABLE_get_string(interp, PREG(2)), PREG(3)));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_new_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_str_new_noinit(interp, enum_stringrep_one, 0);
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_new_s_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_str_new_noinit(interp, enum_stringrep_one, IREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_new_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_str_new_noinit(interp, enum_stringrep_one, cur_opcode[2]);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_stringinfo_i_s_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (SREG(2) == NULL)
+        IREG(1) = 0;
+    else {
+        switch (IREG(3)) {
+          case STRINGINFO_HEADER:
+            IREG(1) = PTR2UINTVAL(SREG(2));
+            break;
+          case STRINGINFO_STRSTART:
+            IREG(1) = PTR2UINTVAL(SREG(2)->strstart);
+            break;
+          case STRINGINFO_BUFLEN:
+            IREG(1) = Buffer_buflen(SREG(2));
+            break;
+          case STRINGINFO_FLAGS:
+            IREG(1) = PObj_get_FLAGS(SREG(2));
+            break;
+          case STRINGINFO_BUFUSED:
+            IREG(1) = SREG(2)->bufused;
+            break;
+          case STRINGINFO_STRLEN:
+            IREG(1) = SREG(2)->strlen;
+            break;
+          default:
+            {
+                opcode_t *handler = Parrot_ex_throw_from_op_args(interp, NULL,
+                    EXCEPTION_INVALID_OPERATION,
+                    "stringinfo: unknown info type: %d", IREG(3));
+                return (opcode_t *)handler;
+            }
+        }
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_stringinfo_i_sc_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (CONST(2)->u.string == NULL)
+        IREG(1) = 0;
+    else {
+        switch (IREG(3)) {
+          case STRINGINFO_HEADER:
+            IREG(1) = PTR2UINTVAL(CONST(2)->u.string);
+            break;
+          case STRINGINFO_STRSTART:
+            IREG(1) = PTR2UINTVAL(CONST(2)->u.string->strstart);
+            break;
+          case STRINGINFO_BUFLEN:
+            IREG(1) = Buffer_buflen(CONST(2)->u.string);
+            break;
+          case STRINGINFO_FLAGS:
+            IREG(1) = PObj_get_FLAGS(CONST(2)->u.string);
+            break;
+          case STRINGINFO_BUFUSED:
+            IREG(1) = CONST(2)->u.string->bufused;
+            break;
+          case STRINGINFO_STRLEN:
+            IREG(1) = CONST(2)->u.string->strlen;
+            break;
+          default:
+            {
+                opcode_t *handler = Parrot_ex_throw_from_op_args(interp, NULL,
+                    EXCEPTION_INVALID_OPERATION,
+                    "stringinfo: unknown info type: %d", IREG(3));
+                return (opcode_t *)handler;
+            }
+        }
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_stringinfo_i_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (SREG(2) == NULL)
+        IREG(1) = 0;
+    else {
+        switch (cur_opcode[3]) {
+          case STRINGINFO_HEADER:
+            IREG(1) = PTR2UINTVAL(SREG(2));
+            break;
+          case STRINGINFO_STRSTART:
+            IREG(1) = PTR2UINTVAL(SREG(2)->strstart);
+            break;
+          case STRINGINFO_BUFLEN:
+            IREG(1) = Buffer_buflen(SREG(2));
+            break;
+          case STRINGINFO_FLAGS:
+            IREG(1) = PObj_get_FLAGS(SREG(2));
+            break;
+          case STRINGINFO_BUFUSED:
+            IREG(1) = SREG(2)->bufused;
+            break;
+          case STRINGINFO_STRLEN:
+            IREG(1) = SREG(2)->strlen;
+            break;
+          default:
+            {
+                opcode_t *handler = Parrot_ex_throw_from_op_args(interp, NULL,
+                    EXCEPTION_INVALID_OPERATION,
+                    "stringinfo: unknown info type: %d", cur_opcode[3]);
+                return (opcode_t *)handler;
+            }
+        }
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_stringinfo_i_sc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (CONST(2)->u.string == NULL)
+        IREG(1) = 0;
+    else {
+        switch (cur_opcode[3]) {
+          case STRINGINFO_HEADER:
+            IREG(1) = PTR2UINTVAL(CONST(2)->u.string);
+            break;
+          case STRINGINFO_STRSTART:
+            IREG(1) = PTR2UINTVAL(CONST(2)->u.string->strstart);
+            break;
+          case STRINGINFO_BUFLEN:
+            IREG(1) = Buffer_buflen(CONST(2)->u.string);
+            break;
+          case STRINGINFO_FLAGS:
+            IREG(1) = PObj_get_FLAGS(CONST(2)->u.string);
+            break;
+          case STRINGINFO_BUFUSED:
+            IREG(1) = CONST(2)->u.string->bufused;
+            break;
+          case STRINGINFO_STRLEN:
+            IREG(1) = CONST(2)->u.string->strlen;
+            break;
+          default:
+            {
+                opcode_t *handler = Parrot_ex_throw_from_op_args(interp, NULL,
+                    EXCEPTION_INVALID_OPERATION,
+                    "stringinfo: unknown info type: %d", cur_opcode[3]);
+                return (opcode_t *)handler;
+            }
+        }
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_upcase_s_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_str_upcase(interp, SREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_upcase_s_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_str_upcase(interp, CONST(2)->u.string);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_downcase_s_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_str_downcase(interp, SREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_downcase_s_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_str_downcase(interp, CONST(2)->u.string);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_titlecase_s_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_str_titlecase(interp, SREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_titlecase_s_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_str_titlecase(interp, CONST(2)->u.string);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_join_s_s_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_str_join(interp, SREG(2), PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_join_s_sc_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_str_join(interp, CONST(2)->u.string, PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_split_p_s_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = Parrot_str_split(interp, SREG(2), SREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_split_p_sc_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = Parrot_str_split(interp, CONST(2)->u.string, SREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_split_p_s_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = Parrot_str_split(interp, SREG(2), CONST(3)->u.string);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_split_p_sc_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = Parrot_str_split(interp, CONST(2)->u.string, CONST(3)->u.string);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_charset_i_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = Parrot_charset_number_of_str(interp, SREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_charset_i_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = Parrot_charset_number_of_str(interp, CONST(2)->u.string);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_charsetname_s_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_charset_name(interp, IREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_charsetname_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_charset_name(interp, cur_opcode[2]);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_find_charset_i_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    const INTVAL n = Parrot_charset_number(interp, SREG(2));
+    if (n < 0) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, NULL,
+                EXCEPTION_INVALID_CHARTYPE,
+                "charset '%Ss' not found", SREG(2));
+        return (opcode_t *)handler;
+    }
+    IREG(1) = n;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_find_charset_i_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    const INTVAL n = Parrot_charset_number(interp, CONST(2)->u.string);
+    if (n < 0) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, NULL,
+                EXCEPTION_INVALID_CHARTYPE,
+                "charset '%Ss' not found", CONST(2)->u.string);
+        return (opcode_t *)handler;
+    }
+    IREG(1) = n;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_trans_charset_s_s_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_str_change_charset(interp, SREG(2), IREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_trans_charset_s_sc_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_str_change_charset(interp, CONST(2)->u.string, IREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_trans_charset_s_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_str_change_charset(interp, SREG(2), cur_opcode[3]);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_trans_charset_s_sc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_str_change_charset(interp, CONST(2)->u.string, cur_opcode[3]);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_encoding_i_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = Parrot_encoding_number_of_str(interp, SREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_encoding_i_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = Parrot_encoding_number_of_str(interp, CONST(2)->u.string);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_encodingname_s_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_encoding_name(interp, IREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_encodingname_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_encoding_name(interp, cur_opcode[2]);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_find_encoding_i_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    const INTVAL n = Parrot_encoding_number(interp, SREG(2));
+    if (n < 0) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, NULL,
+                EXCEPTION_INVALID_ENCODING,
+                "encoding '%Ss' not found", SREG(2));
+        return (opcode_t *)handler;
+    }
+    IREG(1) = n;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_find_encoding_i_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    const INTVAL n = Parrot_encoding_number(interp, CONST(2)->u.string);
+    if (n < 0) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, NULL,
+                EXCEPTION_INVALID_ENCODING,
+                "encoding '%Ss' not found", CONST(2)->u.string);
+        return (opcode_t *)handler;
+    }
+    IREG(1) = n;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_trans_encoding_s_s_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_str_change_encoding(interp, SREG(2), IREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_trans_encoding_s_sc_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_str_change_encoding(interp, CONST(2)->u.string, IREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_trans_encoding_s_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_str_change_encoding(interp, SREG(2), cur_opcode[3]);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_trans_encoding_s_sc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_str_change_encoding(interp, CONST(2)->u.string, cur_opcode[3]);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_is_cclass_i_i_s_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = Parrot_str_is_cclass(interp, IREG(2), SREG(3), IREG(4));
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_is_cclass_i_ic_s_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = Parrot_str_is_cclass(interp, cur_opcode[2], SREG(3), IREG(4));
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_is_cclass_i_i_sc_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = Parrot_str_is_cclass(interp, IREG(2), CONST(3)->u.string, IREG(4));
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_is_cclass_i_ic_sc_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = Parrot_str_is_cclass(interp, cur_opcode[2], CONST(3)->u.string, IREG(4));
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_is_cclass_i_i_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = Parrot_str_is_cclass(interp, IREG(2), SREG(3), cur_opcode[4]);
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_is_cclass_i_ic_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = Parrot_str_is_cclass(interp, cur_opcode[2], SREG(3), cur_opcode[4]);
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_is_cclass_i_i_sc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = Parrot_str_is_cclass(interp, IREG(2), CONST(3)->u.string, cur_opcode[4]);
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_is_cclass_i_ic_sc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = Parrot_str_is_cclass(interp, cur_opcode[2], CONST(3)->u.string, cur_opcode[4]);
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_find_cclass_i_i_s_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = Parrot_str_find_cclass(interp, IREG(2), SREG(3), IREG(4), IREG(5));
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_find_cclass_i_ic_s_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = Parrot_str_find_cclass(interp, cur_opcode[2], SREG(3), IREG(4), IREG(5));
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_find_cclass_i_i_sc_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = Parrot_str_find_cclass(interp, IREG(2), CONST(3)->u.string, IREG(4), IREG(5));
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_find_cclass_i_ic_sc_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = Parrot_str_find_cclass(interp, cur_opcode[2], CONST(3)->u.string, IREG(4), IREG(5));
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_find_cclass_i_i_s_ic_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = Parrot_str_find_cclass(interp, IREG(2), SREG(3), cur_opcode[4], IREG(5));
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_find_cclass_i_ic_s_ic_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = Parrot_str_find_cclass(interp, cur_opcode[2], SREG(3), cur_opcode[4], IREG(5));
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_find_cclass_i_i_sc_ic_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = Parrot_str_find_cclass(interp, IREG(2), CONST(3)->u.string, cur_opcode[4], IREG(5));
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_find_cclass_i_ic_sc_ic_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = Parrot_str_find_cclass(interp, cur_opcode[2], CONST(3)->u.string, cur_opcode[4], IREG(5));
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_find_cclass_i_i_s_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = Parrot_str_find_cclass(interp, IREG(2), SREG(3), IREG(4), cur_opcode[5]);
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_find_cclass_i_ic_s_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = Parrot_str_find_cclass(interp, cur_opcode[2], SREG(3), IREG(4), cur_opcode[5]);
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_find_cclass_i_i_sc_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = Parrot_str_find_cclass(interp, IREG(2), CONST(3)->u.string, IREG(4), cur_opcode[5]);
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_find_cclass_i_ic_sc_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = Parrot_str_find_cclass(interp, cur_opcode[2], CONST(3)->u.string, IREG(4), cur_opcode[5]);
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_find_cclass_i_i_s_ic_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = Parrot_str_find_cclass(interp, IREG(2), SREG(3), cur_opcode[4], cur_opcode[5]);
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_find_cclass_i_ic_s_ic_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = Parrot_str_find_cclass(interp, cur_opcode[2], SREG(3), cur_opcode[4], cur_opcode[5]);
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_find_cclass_i_i_sc_ic_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = Parrot_str_find_cclass(interp, IREG(2), CONST(3)->u.string, cur_opcode[4], cur_opcode[5]);
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_find_cclass_i_ic_sc_ic_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = Parrot_str_find_cclass(interp, cur_opcode[2], CONST(3)->u.string, cur_opcode[4], cur_opcode[5]);
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_find_not_cclass_i_i_s_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = Parrot_str_find_not_cclass(interp, IREG(2), SREG(3), IREG(4), IREG(5));
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_find_not_cclass_i_ic_s_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = Parrot_str_find_not_cclass(interp, cur_opcode[2], SREG(3), IREG(4), IREG(5));
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_find_not_cclass_i_i_sc_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = Parrot_str_find_not_cclass(interp, IREG(2), CONST(3)->u.string, IREG(4), IREG(5));
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_find_not_cclass_i_ic_sc_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = Parrot_str_find_not_cclass(interp, cur_opcode[2], CONST(3)->u.string, IREG(4), IREG(5));
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_find_not_cclass_i_i_s_ic_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = Parrot_str_find_not_cclass(interp, IREG(2), SREG(3), cur_opcode[4], IREG(5));
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_find_not_cclass_i_ic_s_ic_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = Parrot_str_find_not_cclass(interp, cur_opcode[2], SREG(3), cur_opcode[4], IREG(5));
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_find_not_cclass_i_i_sc_ic_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = Parrot_str_find_not_cclass(interp, IREG(2), CONST(3)->u.string, cur_opcode[4], IREG(5));
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_find_not_cclass_i_ic_sc_ic_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = Parrot_str_find_not_cclass(interp, cur_opcode[2], CONST(3)->u.string, cur_opcode[4], IREG(5));
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_find_not_cclass_i_i_s_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = Parrot_str_find_not_cclass(interp, IREG(2), SREG(3), IREG(4), cur_opcode[5]);
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_find_not_cclass_i_ic_s_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = Parrot_str_find_not_cclass(interp, cur_opcode[2], SREG(3), IREG(4), cur_opcode[5]);
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_find_not_cclass_i_i_sc_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = Parrot_str_find_not_cclass(interp, IREG(2), CONST(3)->u.string, IREG(4), cur_opcode[5]);
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_find_not_cclass_i_ic_sc_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = Parrot_str_find_not_cclass(interp, cur_opcode[2], CONST(3)->u.string, IREG(4), cur_opcode[5]);
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_find_not_cclass_i_i_s_ic_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = Parrot_str_find_not_cclass(interp, IREG(2), SREG(3), cur_opcode[4], cur_opcode[5]);
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_find_not_cclass_i_ic_s_ic_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = Parrot_str_find_not_cclass(interp, cur_opcode[2], SREG(3), cur_opcode[4], cur_opcode[5]);
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_find_not_cclass_i_i_sc_ic_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = Parrot_str_find_not_cclass(interp, IREG(2), CONST(3)->u.string, cur_opcode[4], cur_opcode[5]);
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_find_not_cclass_i_ic_sc_ic_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = Parrot_str_find_not_cclass(interp, cur_opcode[2], CONST(3)->u.string, cur_opcode[4], cur_opcode[5]);
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_escape_s_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_str_escape(interp, SREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_compose_s_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_str_compose(interp, SREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_compose_s_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = Parrot_str_compose(interp, CONST(2)->u.string);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_spawnw_i_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = Parrot_Run_OS_Command(interp, SREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_spawnw_i_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = Parrot_Run_OS_Command(interp, CONST(2)->u.string);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_spawnw_i_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = Parrot_Run_OS_Command_Argv(interp, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_err_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = errno;
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_err_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    const char * const tmp = strerror(errno);
+    SREG(1) = string_make(interp, tmp, strlen(tmp), "ascii", 0);
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_err_s_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    const char * const tmp = strerror(IREG(2));
+    SREG(1) = string_make(interp, tmp, strlen(tmp), "ascii", 0);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_err_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    const char * const tmp = strerror(cur_opcode[2]);
+    SREG(1) = string_make(interp, tmp, strlen(tmp), "ascii", 0);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_time_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = Parrot_intval_time();
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_time_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    NREG(1) = Parrot_floatval_time();
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_gmtime_s_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    struct tm tm;
+    const time_t t = (time_t) IREG(2);
+    char resultbuffer[26];
+    Parrot_gmtime_r(&t, &tm);
+    Parrot_asctime_r(&tm, resultbuffer);
+    SREG(1) = Parrot_str_new(interp, resultbuffer, 25);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_gmtime_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    struct tm tm;
+    const time_t t = (time_t) cur_opcode[2];
+    char resultbuffer[26];
+    Parrot_gmtime_r(&t, &tm);
+    Parrot_asctime_r(&tm, resultbuffer);
+    SREG(1) = Parrot_str_new(interp, resultbuffer, 25);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_localtime_s_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    struct tm tm;
+    const time_t t = (time_t) IREG(2);
+    char resultbuffer[26];
+    Parrot_localtime_r(&t, &tm);
+    Parrot_asctime_r(&tm, resultbuffer);
+    SREG(1) = Parrot_str_new(interp, resultbuffer, 25);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_localtime_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    struct tm tm;
+    const time_t t = (time_t) cur_opcode[2];
+    char resultbuffer[26];
+    Parrot_localtime_r(&t, &tm);
+    Parrot_asctime_r(&tm, resultbuffer);
+    SREG(1) = Parrot_str_new(interp, resultbuffer, 25);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_decodetime_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    struct tm tm;
+    const time_t t = (time_t) IREG(2);
+    Parrot_gmtime_r(&t, &tm);
+    PREG(1) = tm_to_array(interp, &tm);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_decodetime_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    struct tm tm;
+    const time_t t = (time_t) cur_opcode[2];
+    Parrot_gmtime_r(&t, &tm);
+    PREG(1) = tm_to_array(interp, &tm);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_decodelocaltime_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    struct tm tm;
+    const time_t t = (time_t) IREG(2);
+    Parrot_localtime_r(&t, &tm);
+    PREG(1) = tm_to_array(interp, &tm);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_decodelocaltime_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    struct tm tm;
+    const time_t t = (time_t) cur_opcode[2];
+    Parrot_localtime_r(&t, &tm);
+    PREG(1) = tm_to_array(interp, &tm);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_sysinfo_s_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = sysinfo_s(interp, IREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_sysinfo_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    SREG(1) = sysinfo_s(interp, cur_opcode[2]);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_sysinfo_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = sysinfo_i(interp, IREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_sysinfo_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    IREG(1) = sysinfo_i(interp, cur_opcode[2]);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_sleep_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    opcode_t *next = cur_opcode + 2;
+    if (IREG(1) < 0) {
+        opcode_t * const handler = Parrot_ex_throw_from_op_args(interp, next,
+            EXCEPTION_NEG_SLEEP,
+            "Cannot go back in time");
+        return (opcode_t *)handler;
+    }
+    next = (opcode_t *)Parrot_cx_schedule_sleep(interp, (FLOATVAL) IREG(1), next);
+    return (opcode_t *)next;
+}
+
+opcode_t *
+Parrot_sleep_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    opcode_t *next = cur_opcode + 2;
+    if (cur_opcode[1] < 0) {
+        opcode_t * const handler = Parrot_ex_throw_from_op_args(interp, next,
+            EXCEPTION_NEG_SLEEP,
+            "Cannot go back in time");
+        return (opcode_t *)handler;
+    }
+    next = (opcode_t *)Parrot_cx_schedule_sleep(interp, (FLOATVAL) cur_opcode[1], next);
+    return (opcode_t *)next;
+}
+
+opcode_t *
+Parrot_sleep_n(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    opcode_t *next = cur_opcode + 2;
+    if (NREG(1) < 0.0) {
+        opcode_t * const handler = Parrot_ex_throw_from_op_args(interp, next,
+            EXCEPTION_NEG_SLEEP,
+            "Cannot go back in time");
+        return (opcode_t *)handler;
+    }
+    next = (opcode_t *)Parrot_cx_schedule_sleep(interp, NREG(1), next);
+    return (opcode_t *)next;
+}
+
+opcode_t *
+Parrot_sleep_nc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    opcode_t *next = cur_opcode + 2;
+    if (CONST(1)->u.number < 0.0) {
+        opcode_t * const handler = Parrot_ex_throw_from_op_args(interp, next,
+            EXCEPTION_NEG_SLEEP,
+            "Cannot go back in time");
+        return (opcode_t *)handler;
+    }
+    next = (opcode_t *)Parrot_cx_schedule_sleep(interp, CONST(1)->u.number, next);
+    return (opcode_t *)next;
+}
+
+opcode_t *
+Parrot_store_lex_s_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC     * const ctx      = CURRENT_CONTEXT(interp);
+    STRING  * const lex_name = SREG(1);
+    PMC     * const lex_pad  = Parrot_find_pad(interp, lex_name, ctx);
+
+    if (PMC_IS_NULL(lex_pad)) {
+        opcode_t * const handler = Parrot_ex_throw_from_op_args(interp, NULL,
+                EXCEPTION_LEX_NOT_FOUND,
+                "Lexical '%Ss' not found", lex_name);
+        return (opcode_t *)handler;
+    }
+    VTABLE_set_pmc_keyed_str(interp, lex_pad, lex_name, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_store_lex_sc_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC     * const ctx      = CURRENT_CONTEXT(interp);
+    STRING  * const lex_name = CONST(1)->u.string;
+    PMC     * const lex_pad  = Parrot_find_pad(interp, lex_name, ctx);
+
+    if (PMC_IS_NULL(lex_pad)) {
+        opcode_t * const handler = Parrot_ex_throw_from_op_args(interp, NULL,
+                EXCEPTION_LEX_NOT_FOUND,
+                "Lexical '%Ss' not found", lex_name);
+        return (opcode_t *)handler;
+    }
+    VTABLE_set_pmc_keyed_str(interp, lex_pad, lex_name, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_store_dynamic_lex_s_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    STRING  * const lex_name = SREG(1);
+    PMC     * const ctx      =
+        Parrot_pcc_get_caller_ctx(interp, CURRENT_CONTEXT(interp));
+    PMC     * const lex_pad  =
+        PMC_IS_NULL(ctx)
+            ? PMCNULL
+            : Parrot_find_dynamic_pad(interp, lex_name, ctx);
+
+    if (PMC_IS_NULL(lex_pad)) {
+        opcode_t * const handler = Parrot_ex_throw_from_op_args(interp, NULL,
+                EXCEPTION_LEX_NOT_FOUND,
+                "Lexical '%Ss' not found in dynamic scope", lex_name);
+        return (opcode_t *)handler;
+    }
+    VTABLE_set_pmc_keyed_str(interp, lex_pad, lex_name, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_store_dynamic_lex_sc_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    STRING  * const lex_name = CONST(1)->u.string;
+    PMC     * const ctx      =
+        Parrot_pcc_get_caller_ctx(interp, CURRENT_CONTEXT(interp));
+    PMC     * const lex_pad  =
+        PMC_IS_NULL(ctx)
+            ? PMCNULL
+            : Parrot_find_dynamic_pad(interp, lex_name, ctx);
+
+    if (PMC_IS_NULL(lex_pad)) {
+        opcode_t * const handler = Parrot_ex_throw_from_op_args(interp, NULL,
+                EXCEPTION_LEX_NOT_FOUND,
+                "Lexical '%Ss' not found in dynamic scope", lex_name);
+        return (opcode_t *)handler;
+    }
+    VTABLE_set_pmc_keyed_str(interp, lex_pad, lex_name, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_find_lex_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC     * const ctx      = CURRENT_CONTEXT(interp);
+    STRING  * const lex_name = SREG(2);
+    PMC     * const lex_pad  = Parrot_find_pad(interp, lex_name, ctx);
+
+    PMC * const result =
+        PMC_IS_NULL(lex_pad)
+            ? NULL
+            : VTABLE_get_pmc_keyed_str(interp, lex_pad, lex_name);
+    if (!result) {
+        opcode_t * const handler = Parrot_ex_throw_from_op_args(interp, NULL,
+                EXCEPTION_LEX_NOT_FOUND,
+                "Lexical '%Ss' not found", lex_name);
+        return (opcode_t *)handler;
+    }
+    PREG(1) = result;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_find_lex_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC     * const ctx      = CURRENT_CONTEXT(interp);
+    STRING  * const lex_name = CONST(2)->u.string;
+    PMC     * const lex_pad  = Parrot_find_pad(interp, lex_name, ctx);
+
+    PMC * const result =
+        PMC_IS_NULL(lex_pad)
+            ? NULL
+            : VTABLE_get_pmc_keyed_str(interp, lex_pad, lex_name);
+    if (!result) {
+        opcode_t * const handler = Parrot_ex_throw_from_op_args(interp, NULL,
+                EXCEPTION_LEX_NOT_FOUND,
+                "Lexical '%Ss' not found", lex_name);
+        return (opcode_t *)handler;
+    }
+    PREG(1) = result;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_find_dynamic_lex_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    STRING  * const lex_name = SREG(2);
+    PMC     * const ctx      =
+        Parrot_pcc_get_caller_ctx(interp, CURRENT_CONTEXT(interp));
+    PMC     * const lex_pad  =
+        PMC_IS_NULL(ctx)
+            ? PMCNULL
+            : Parrot_find_dynamic_pad(interp, lex_name, ctx);
+    PMC     * const result =
+        PMC_IS_NULL(lex_pad)
+            ? PMCNULL
+            : VTABLE_get_pmc_keyed_str(interp, lex_pad, lex_name);
+    PREG(1) = result;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_find_dynamic_lex_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    STRING  * const lex_name = CONST(2)->u.string;
+    PMC     * const ctx      =
+        Parrot_pcc_get_caller_ctx(interp, CURRENT_CONTEXT(interp));
+    PMC     * const lex_pad  =
+        PMC_IS_NULL(ctx)
+            ? PMCNULL
+            : Parrot_find_dynamic_pad(interp, lex_name, ctx);
+    PMC     * const result =
+        PMC_IS_NULL(lex_pad)
+            ? PMCNULL
+            : VTABLE_get_pmc_keyed_str(interp, lex_pad, lex_name);
+    PREG(1) = result;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_find_caller_lex_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    STRING  * const lex_name = SREG(2);
+    PMC     * ctx            = CURRENT_CONTEXT(interp);
+    PMC     * result         = PMCNULL;
+
+    for (ctx = Parrot_pcc_get_caller_ctx(interp, ctx);
+            !PMC_IS_NULL(ctx) && PMC_IS_NULL(result);
+            ctx = Parrot_pcc_get_caller_ctx(interp, ctx))
+    {
+        PMC * const lex_pad = Parrot_find_pad(interp, lex_name, ctx);
+        if (!PMC_IS_NULL(lex_pad)) {
+            result = VTABLE_get_pmc_keyed_str(interp, lex_pad, lex_name);
+        }
+        if (!result) result = PMCNULL;
+    }
+    PREG(1) = result;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_find_caller_lex_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    STRING  * const lex_name = CONST(2)->u.string;
+    PMC     * ctx            = CURRENT_CONTEXT(interp);
+    PMC     * result         = PMCNULL;
+
+    for (ctx = Parrot_pcc_get_caller_ctx(interp, ctx);
+            !PMC_IS_NULL(ctx) && PMC_IS_NULL(result);
+            ctx = Parrot_pcc_get_caller_ctx(interp, ctx))
+    {
+        PMC * const lex_pad = Parrot_find_pad(interp, lex_name, ctx);
+        if (!PMC_IS_NULL(lex_pad)) {
+            result = VTABLE_get_pmc_keyed_str(interp, lex_pad, lex_name);
+        }
+        if (!result) result = PMCNULL;
+    }
+    PREG(1) = result;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_get_namespace_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const cur_ns = Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp));
+    PREG(1) = cur_ns;
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_get_namespace_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const cur_ns = Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp));
+    PMC * const ns     = Parrot_get_namespace_keyed(interp, cur_ns, PREG(2));
+
+    PREG(1) = PMC_IS_NULL(ns) ? PMCNULL : ns;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_get_namespace_p_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const cur_ns = Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp));
+    PMC * const ns     = Parrot_get_namespace_keyed(interp, cur_ns, CONST(2)->u.key);
+
+    PREG(1) = PMC_IS_NULL(ns) ? PMCNULL : ns;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_get_hll_namespace_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const hll_ns = Parrot_get_ctx_HLL_namespace(interp);
+    PREG(1) = hll_ns;
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_get_hll_namespace_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const hll_ns = Parrot_get_ctx_HLL_namespace(interp);
+    if (PMC_IS_NULL(hll_ns))
+        PREG(1) = PMCNULL;
+    else {
+        PMC * const ns = Parrot_get_namespace_keyed(interp, hll_ns, PREG(2));
+        PREG(1) = ns;
+    }
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_get_hll_namespace_p_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const hll_ns = Parrot_get_ctx_HLL_namespace(interp);
+    if (PMC_IS_NULL(hll_ns))
+        PREG(1) = PMCNULL;
+    else {
+        PMC * const ns = Parrot_get_namespace_keyed(interp, hll_ns, CONST(2)->u.key);
+        PREG(1) = ns;
+    }
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_get_root_namespace_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const root_ns = interp->root_namespace;
+    PREG(1) = root_ns;
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_get_root_namespace_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const root_ns = interp->root_namespace;
+    if (PMC_IS_NULL(root_ns))
+        PREG(1) = PMCNULL;
+    else {
+        PMC * const ns = Parrot_get_namespace_keyed(interp, root_ns, PREG(2));
+        PREG(1) = ns;
+    }
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_get_root_namespace_p_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const root_ns = interp->root_namespace;
+    if (PMC_IS_NULL(root_ns))
+        PREG(1) = PMCNULL;
+    else {
+        PMC * const ns = Parrot_get_namespace_keyed(interp, root_ns, CONST(2)->u.key);
+        PREG(1) = ns;
+    }
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_get_global_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const cur_ns = Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp));
+    PREG(1) = Parrot_find_global_op(interp, cur_ns, SREG(2), cur_opcode + 3);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_get_global_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const cur_ns = Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp));
+    PREG(1) = Parrot_find_global_op(interp, cur_ns, CONST(2)->u.string, cur_opcode + 3);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_get_global_p_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const cur_ns = Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp));
+    if (PMC_IS_NULL(cur_ns)) {
+        PREG(1) = PMCNULL;
+    }
+    else {
+        PMC * const ns = Parrot_get_namespace_keyed(interp, cur_ns, PREG(2));
+        if (PMC_IS_NULL(ns))
+            PREG(1) = PMCNULL;
+        else
+            PREG(1) = Parrot_find_global_op(interp, ns, SREG(3), cur_opcode + 4);
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_get_global_p_pc_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const cur_ns = Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp));
+    if (PMC_IS_NULL(cur_ns)) {
+        PREG(1) = PMCNULL;
+    }
+    else {
+        PMC * const ns = Parrot_get_namespace_keyed(interp, cur_ns, CONST(2)->u.key);
+        if (PMC_IS_NULL(ns))
+            PREG(1) = PMCNULL;
+        else
+            PREG(1) = Parrot_find_global_op(interp, ns, SREG(3), cur_opcode + 4);
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_get_global_p_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const cur_ns = Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp));
+    if (PMC_IS_NULL(cur_ns)) {
+        PREG(1) = PMCNULL;
+    }
+    else {
+        PMC * const ns = Parrot_get_namespace_keyed(interp, cur_ns, PREG(2));
+        if (PMC_IS_NULL(ns))
+            PREG(1) = PMCNULL;
+        else
+            PREG(1) = Parrot_find_global_op(interp, ns, CONST(3)->u.string, cur_opcode + 4);
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_get_global_p_pc_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const cur_ns = Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp));
+    if (PMC_IS_NULL(cur_ns)) {
+        PREG(1) = PMCNULL;
+    }
+    else {
+        PMC * const ns = Parrot_get_namespace_keyed(interp, cur_ns, CONST(2)->u.key);
+        if (PMC_IS_NULL(ns))
+            PREG(1) = PMCNULL;
+        else
+            PREG(1) = Parrot_find_global_op(interp, ns, CONST(3)->u.string, cur_opcode + 4);
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_get_hll_global_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const hll_ns = Parrot_get_ctx_HLL_namespace(interp);
+    PREG(1) = Parrot_find_global_op(interp, hll_ns, SREG(2), cur_opcode + 3);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_get_hll_global_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const hll_ns = Parrot_get_ctx_HLL_namespace(interp);
+    PREG(1) = Parrot_find_global_op(interp, hll_ns, CONST(2)->u.string, cur_opcode + 3);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_get_hll_global_p_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const hll_ns = Parrot_get_ctx_HLL_namespace(interp);
+    if (PMC_IS_NULL(hll_ns)) {
+        PREG(1) = hll_ns;
+    }
+    else {
+        PMC * const ns = Parrot_get_namespace_keyed(interp, hll_ns, PREG(2));
+        if (PMC_IS_NULL(ns))
+            PREG(1) = PMCNULL;
+        else
+            PREG(1) = Parrot_find_global_op(interp, ns, SREG(3), cur_opcode + 4);
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_get_hll_global_p_pc_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const hll_ns = Parrot_get_ctx_HLL_namespace(interp);
+    if (PMC_IS_NULL(hll_ns)) {
+        PREG(1) = hll_ns;
+    }
+    else {
+        PMC * const ns = Parrot_get_namespace_keyed(interp, hll_ns, CONST(2)->u.key);
+        if (PMC_IS_NULL(ns))
+            PREG(1) = PMCNULL;
+        else
+            PREG(1) = Parrot_find_global_op(interp, ns, SREG(3), cur_opcode + 4);
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_get_hll_global_p_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const hll_ns = Parrot_get_ctx_HLL_namespace(interp);
+    if (PMC_IS_NULL(hll_ns)) {
+        PREG(1) = hll_ns;
+    }
+    else {
+        PMC * const ns = Parrot_get_namespace_keyed(interp, hll_ns, PREG(2));
+        if (PMC_IS_NULL(ns))
+            PREG(1) = PMCNULL;
+        else
+            PREG(1) = Parrot_find_global_op(interp, ns, CONST(3)->u.string, cur_opcode + 4);
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_get_hll_global_p_pc_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const hll_ns = Parrot_get_ctx_HLL_namespace(interp);
+    if (PMC_IS_NULL(hll_ns)) {
+        PREG(1) = hll_ns;
+    }
+    else {
+        PMC * const ns = Parrot_get_namespace_keyed(interp, hll_ns, CONST(2)->u.key);
+        if (PMC_IS_NULL(ns))
+            PREG(1) = PMCNULL;
+        else
+            PREG(1) = Parrot_find_global_op(interp, ns, CONST(3)->u.string, cur_opcode + 4);
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_get_root_global_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const root_ns = interp->root_namespace;
+    PREG(1) = Parrot_find_global_op(interp, root_ns, SREG(2), cur_opcode + 3);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_get_root_global_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const root_ns = interp->root_namespace;
+    PREG(1) = Parrot_find_global_op(interp, root_ns, CONST(2)->u.string, cur_opcode + 3);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_get_root_global_p_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const root_ns = interp->root_namespace;
+    if (PMC_IS_NULL(root_ns))
+        PREG(1) = PMCNULL;
+    else {
+        PMC * const ns = Parrot_get_namespace_keyed(interp, root_ns, PREG(2));
+        if (PMC_IS_NULL(ns))
+            PREG(1) = PMCNULL;
+        else
+            PREG(1) = Parrot_find_global_op(interp, ns, SREG(3), cur_opcode + 4);
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_get_root_global_p_pc_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const root_ns = interp->root_namespace;
+    if (PMC_IS_NULL(root_ns))
+        PREG(1) = PMCNULL;
+    else {
+        PMC * const ns = Parrot_get_namespace_keyed(interp, root_ns, CONST(2)->u.key);
+        if (PMC_IS_NULL(ns))
+            PREG(1) = PMCNULL;
+        else
+            PREG(1) = Parrot_find_global_op(interp, ns, SREG(3), cur_opcode + 4);
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_get_root_global_p_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const root_ns = interp->root_namespace;
+    if (PMC_IS_NULL(root_ns))
+        PREG(1) = PMCNULL;
+    else {
+        PMC * const ns = Parrot_get_namespace_keyed(interp, root_ns, PREG(2));
+        if (PMC_IS_NULL(ns))
+            PREG(1) = PMCNULL;
+        else
+            PREG(1) = Parrot_find_global_op(interp, ns, CONST(3)->u.string, cur_opcode + 4);
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_get_root_global_p_pc_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const root_ns = interp->root_namespace;
+    if (PMC_IS_NULL(root_ns))
+        PREG(1) = PMCNULL;
+    else {
+        PMC * const ns = Parrot_get_namespace_keyed(interp, root_ns, CONST(2)->u.key);
+        if (PMC_IS_NULL(ns))
+            PREG(1) = PMCNULL;
+        else
+            PREG(1) = Parrot_find_global_op(interp, ns, CONST(3)->u.string, cur_opcode + 4);
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_global_s_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const cur_ns = Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp));
+    Parrot_set_global(interp, cur_ns, SREG(1), PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_global_sc_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const cur_ns = Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp));
+    Parrot_set_global(interp, cur_ns, CONST(1)->u.string, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_global_p_s_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const cur_ns = Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp));
+    PMC * const ns     = Parrot_make_namespace_keyed(interp, cur_ns, PREG(1));
+
+    Parrot_set_global(interp, ns, SREG(2), PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_global_pc_s_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const cur_ns = Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp));
+    PMC * const ns     = Parrot_make_namespace_keyed(interp, cur_ns, CONST(1)->u.key);
+
+    Parrot_set_global(interp, ns, SREG(2), PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_global_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const cur_ns = Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp));
+    PMC * const ns     = Parrot_make_namespace_keyed(interp, cur_ns, PREG(1));
+
+    Parrot_set_global(interp, ns, CONST(2)->u.string, PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_global_pc_sc_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const cur_ns = Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp));
+    PMC * const ns     = Parrot_make_namespace_keyed(interp, cur_ns, CONST(1)->u.key);
+
+    Parrot_set_global(interp, ns, CONST(2)->u.string, PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_hll_global_s_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const hll_ns = Parrot_get_ctx_HLL_namespace(interp);
+    Parrot_set_global(interp, hll_ns, SREG(1), PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_hll_global_sc_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const hll_ns = Parrot_get_ctx_HLL_namespace(interp);
+    Parrot_set_global(interp, hll_ns, CONST(1)->u.string, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_hll_global_p_s_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const hll_ns = Parrot_get_ctx_HLL_namespace(interp);
+    PMC * const ns     = Parrot_make_namespace_keyed(interp, hll_ns, PREG(1));
+
+    Parrot_set_global(interp, ns, SREG(2), PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_hll_global_pc_s_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const hll_ns = Parrot_get_ctx_HLL_namespace(interp);
+    PMC * const ns     = Parrot_make_namespace_keyed(interp, hll_ns, CONST(1)->u.key);
+
+    Parrot_set_global(interp, ns, SREG(2), PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_hll_global_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const hll_ns = Parrot_get_ctx_HLL_namespace(interp);
+    PMC * const ns     = Parrot_make_namespace_keyed(interp, hll_ns, PREG(1));
+
+    Parrot_set_global(interp, ns, CONST(2)->u.string, PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_hll_global_pc_sc_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const hll_ns = Parrot_get_ctx_HLL_namespace(interp);
+    PMC * const ns     = Parrot_make_namespace_keyed(interp, hll_ns, CONST(1)->u.key);
+
+    Parrot_set_global(interp, ns, CONST(2)->u.string, PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_root_global_s_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const root_ns = interp->root_namespace;
+    Parrot_set_global(interp, root_ns, SREG(1), PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_root_global_sc_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const root_ns = interp->root_namespace;
+    Parrot_set_global(interp, root_ns, CONST(1)->u.string, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_root_global_p_s_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const root_ns = interp->root_namespace;
+    PMC * const ns      = Parrot_make_namespace_keyed(interp, root_ns, PREG(1));
+
+    Parrot_set_global(interp, ns, SREG(2), PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_root_global_pc_s_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const root_ns = interp->root_namespace;
+    PMC * const ns      = Parrot_make_namespace_keyed(interp, root_ns, CONST(1)->u.key);
+
+    Parrot_set_global(interp, ns, SREG(2), PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_root_global_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const root_ns = interp->root_namespace;
+    PMC * const ns      = Parrot_make_namespace_keyed(interp, root_ns, PREG(1));
+
+    Parrot_set_global(interp, ns, CONST(2)->u.string, PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_root_global_pc_sc_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const root_ns = interp->root_namespace;
+    PMC * const ns      = Parrot_make_namespace_keyed(interp, root_ns, CONST(1)->u.key);
+
+    Parrot_set_global(interp, ns, CONST(2)->u.string, PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_find_name_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (!SREG(2)) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, NULL,
+                EXCEPTION_INVALID_OPERATION,
+                "Tried to find null name");
+        return (opcode_t *)handler;
+    }
+
+    PREG(1) = Parrot_find_name_op(interp, SREG(2), cur_opcode + 3);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_find_name_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    if (!CONST(2)->u.string) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, NULL,
+                EXCEPTION_INVALID_OPERATION,
+                "Tried to find null name");
+        return (opcode_t *)handler;
+    }
+
+    PREG(1) = Parrot_find_name_op(interp, CONST(2)->u.string, cur_opcode + 3);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_find_sub_not_null_p_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    opcode_t *dest = cur_opcode + 3;
+    PMC *sub = Parrot_find_name_op(interp, SREG(2), dest);
+
+    if (PMC_IS_NULL(sub)) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, dest,
+                       EXCEPTION_GLOBAL_NOT_FOUND,
+                       "Could not find sub %Ss", SREG(2));
+        return (opcode_t *)handler;
+    }
+
+    PREG(1) = sub;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_find_sub_not_null_p_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    opcode_t *dest = cur_opcode + 3;
+    PMC *sub = Parrot_find_name_op(interp, CONST(2)->u.string, dest);
+
+    if (PMC_IS_NULL(sub)) {
+        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, dest,
+                       EXCEPTION_GLOBAL_NOT_FOUND,
+                       "Could not find sub %Ss", CONST(2)->u.string);
+        return (opcode_t *)handler;
+    }
+
+    PREG(1) = sub;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_trap(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+#if defined(__GNUC__) && defined(i386)
+    __asm__("int3");       /* opcode 0xcc */
+#endif
+#if defined(__GNUC__) && defined(PPC)
+    __asm__("trap");       /* opcode tr 31, 0, 0 */
+#endif
+
+return (opcode_t *)cur_opcode + 1;}
+
+opcode_t *
+Parrot_set_label_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    VTABLE_set_pointer(interp, PREG(1), (CUR_OPCODE + cur_opcode[2]));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_get_label_i_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    void * const ptr = VTABLE_get_pointer(interp, PREG(2));
+    IREG(1) =  PTR2INTVAL(ptr);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_fetch_p_p_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_get_pmc_keyed(interp, PREG(2), PREG(3));
+    if (PMC_IS_NULL(PREG(1))) {
+        PMC * const classobj = Parrot_oo_get_class(interp, PREG(4));
+        if (!PMC_IS_NULL(classobj))
+            PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+        else {
+            const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
+            if (type <= 0) {
+                opcode_t *dest = Parrot_ex_throw_from_op_args(
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    "Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));
+                return (opcode_t *)dest;
+            }
+
+            PREG(1) = Parrot_pmc_new(interp, type);
+        }
+    }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_fetch_p_pc_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_get_pmc_keyed(interp, CONST(2)->u.key, PREG(3));
+    if (PMC_IS_NULL(PREG(1))) {
+        PMC * const classobj = Parrot_oo_get_class(interp, PREG(4));
+        if (!PMC_IS_NULL(classobj))
+            PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+        else {
+            const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
+            if (type <= 0) {
+                opcode_t *dest = Parrot_ex_throw_from_op_args(
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    "Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));
+                return (opcode_t *)dest;
+            }
+
+            PREG(1) = Parrot_pmc_new(interp, type);
+        }
+    }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_fetch_p_p_pc_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_get_pmc_keyed(interp, PREG(2), CONST(3)->u.key);
+    if (PMC_IS_NULL(PREG(1))) {
+        PMC * const classobj = Parrot_oo_get_class(interp, PREG(4));
+        if (!PMC_IS_NULL(classobj))
+            PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+        else {
+            const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
+            if (type <= 0) {
+                opcode_t *dest = Parrot_ex_throw_from_op_args(
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    "Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));
+                return (opcode_t *)dest;
+            }
+
+            PREG(1) = Parrot_pmc_new(interp, type);
+        }
+    }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_fetch_p_pc_pc_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_get_pmc_keyed(interp, CONST(2)->u.key, CONST(3)->u.key);
+    if (PMC_IS_NULL(PREG(1))) {
+        PMC * const classobj = Parrot_oo_get_class(interp, PREG(4));
+        if (!PMC_IS_NULL(classobj))
+            PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+        else {
+            const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
+            if (type <= 0) {
+                opcode_t *dest = Parrot_ex_throw_from_op_args(
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    "Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));
+                return (opcode_t *)dest;
+            }
+
+            PREG(1) = Parrot_pmc_new(interp, type);
+        }
+    }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_fetch_p_p_p_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_get_pmc_keyed(interp, PREG(2), PREG(3));
+    if (PMC_IS_NULL(PREG(1))) {
+        PMC * const classobj = Parrot_oo_get_class(interp, CONST(4)->u.key);
+        if (!PMC_IS_NULL(classobj))
+            PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+        else {
+            const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
+            if (type <= 0) {
+                opcode_t *dest = Parrot_ex_throw_from_op_args(
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));
+                return (opcode_t *)dest;
+            }
+
+            PREG(1) = Parrot_pmc_new(interp, type);
+        }
+    }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_fetch_p_pc_p_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_get_pmc_keyed(interp, CONST(2)->u.key, PREG(3));
+    if (PMC_IS_NULL(PREG(1))) {
+        PMC * const classobj = Parrot_oo_get_class(interp, CONST(4)->u.key);
+        if (!PMC_IS_NULL(classobj))
+            PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+        else {
+            const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
+            if (type <= 0) {
+                opcode_t *dest = Parrot_ex_throw_from_op_args(
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));
+                return (opcode_t *)dest;
+            }
+
+            PREG(1) = Parrot_pmc_new(interp, type);
+        }
+    }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_fetch_p_p_pc_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_get_pmc_keyed(interp, PREG(2), CONST(3)->u.key);
+    if (PMC_IS_NULL(PREG(1))) {
+        PMC * const classobj = Parrot_oo_get_class(interp, CONST(4)->u.key);
+        if (!PMC_IS_NULL(classobj))
+            PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+        else {
+            const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
+            if (type <= 0) {
+                opcode_t *dest = Parrot_ex_throw_from_op_args(
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));
+                return (opcode_t *)dest;
+            }
+
+            PREG(1) = Parrot_pmc_new(interp, type);
+        }
+    }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_fetch_p_pc_pc_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_get_pmc_keyed(interp, CONST(2)->u.key, CONST(3)->u.key);
+    if (PMC_IS_NULL(PREG(1))) {
+        PMC * const classobj = Parrot_oo_get_class(interp, CONST(4)->u.key);
+        if (!PMC_IS_NULL(classobj))
+            PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+        else {
+            const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
+            if (type <= 0) {
+                opcode_t *dest = Parrot_ex_throw_from_op_args(
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));
+                return (opcode_t *)dest;
+            }
+
+            PREG(1) = Parrot_pmc_new(interp, type);
+        }
+    }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_fetch_p_p_i_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_get_pmc_keyed_int(interp, PREG(2), IREG(3));
+    if (PMC_IS_NULL(PREG(1))) {
+        PMC * const classobj = Parrot_oo_get_class(interp, PREG(4));
+        if (!PMC_IS_NULL(classobj))
+            PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+        else {
+            const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
+            if (type <= 0) {
+                opcode_t *dest = Parrot_ex_throw_from_op_args(
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    "Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));
+                return (opcode_t *)dest;
+            }
+
+            PREG(1) = Parrot_pmc_new(interp, type);
+        }
+    }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_fetch_p_pc_i_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_get_pmc_keyed_int(interp, CONST(2)->u.key, IREG(3));
+    if (PMC_IS_NULL(PREG(1))) {
+        PMC * const classobj = Parrot_oo_get_class(interp, PREG(4));
+        if (!PMC_IS_NULL(classobj))
+            PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+        else {
+            const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
+            if (type <= 0) {
+                opcode_t *dest = Parrot_ex_throw_from_op_args(
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    "Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));
+                return (opcode_t *)dest;
+            }
+
+            PREG(1) = Parrot_pmc_new(interp, type);
+        }
+    }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_fetch_p_p_ic_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_get_pmc_keyed_int(interp, PREG(2), cur_opcode[3]);
+    if (PMC_IS_NULL(PREG(1))) {
+        PMC * const classobj = Parrot_oo_get_class(interp, PREG(4));
+        if (!PMC_IS_NULL(classobj))
+            PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+        else {
+            const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
+            if (type <= 0) {
+                opcode_t *dest = Parrot_ex_throw_from_op_args(
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    "Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));
+                return (opcode_t *)dest;
+            }
+
+            PREG(1) = Parrot_pmc_new(interp, type);
+        }
+    }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_fetch_p_pc_ic_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_get_pmc_keyed_int(interp, CONST(2)->u.key, cur_opcode[3]);
+    if (PMC_IS_NULL(PREG(1))) {
+        PMC * const classobj = Parrot_oo_get_class(interp, PREG(4));
+        if (!PMC_IS_NULL(classobj))
+            PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+        else {
+            const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
+            if (type <= 0) {
+                opcode_t *dest = Parrot_ex_throw_from_op_args(
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    "Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));
+                return (opcode_t *)dest;
+            }
+
+            PREG(1) = Parrot_pmc_new(interp, type);
+        }
+    }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_fetch_p_p_i_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_get_pmc_keyed_int(interp, PREG(2), IREG(3));
+    if (PMC_IS_NULL(PREG(1))) {
+        PMC * const classobj = Parrot_oo_get_class(interp, CONST(4)->u.key);
+        if (!PMC_IS_NULL(classobj))
+            PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+        else {
+            const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
+            if (type <= 0) {
+                opcode_t *dest = Parrot_ex_throw_from_op_args(
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));
+                return (opcode_t *)dest;
+            }
+
+            PREG(1) = Parrot_pmc_new(interp, type);
+        }
+    }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_fetch_p_pc_i_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_get_pmc_keyed_int(interp, CONST(2)->u.key, IREG(3));
+    if (PMC_IS_NULL(PREG(1))) {
+        PMC * const classobj = Parrot_oo_get_class(interp, CONST(4)->u.key);
+        if (!PMC_IS_NULL(classobj))
+            PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+        else {
+            const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
+            if (type <= 0) {
+                opcode_t *dest = Parrot_ex_throw_from_op_args(
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));
+                return (opcode_t *)dest;
+            }
+
+            PREG(1) = Parrot_pmc_new(interp, type);
+        }
+    }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_fetch_p_p_ic_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_get_pmc_keyed_int(interp, PREG(2), cur_opcode[3]);
+    if (PMC_IS_NULL(PREG(1))) {
+        PMC * const classobj = Parrot_oo_get_class(interp, CONST(4)->u.key);
+        if (!PMC_IS_NULL(classobj))
+            PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+        else {
+            const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
+            if (type <= 0) {
+                opcode_t *dest = Parrot_ex_throw_from_op_args(
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));
+                return (opcode_t *)dest;
+            }
+
+            PREG(1) = Parrot_pmc_new(interp, type);
+        }
+    }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_fetch_p_pc_ic_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_get_pmc_keyed_int(interp, CONST(2)->u.key, cur_opcode[3]);
+    if (PMC_IS_NULL(PREG(1))) {
+        PMC * const classobj = Parrot_oo_get_class(interp, CONST(4)->u.key);
+        if (!PMC_IS_NULL(classobj))
+            PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+        else {
+            const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
+            if (type <= 0) {
+                opcode_t *dest = Parrot_ex_throw_from_op_args(
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));
+                return (opcode_t *)dest;
+            }
+
+            PREG(1) = Parrot_pmc_new(interp, type);
+        }
+    }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_fetch_p_p_s_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_get_pmc_keyed_str(interp, PREG(2), SREG(3));
+    if (PMC_IS_NULL(PREG(1))) {
+        PMC * const classobj = Parrot_oo_get_class(interp, PREG(4));
+        if (!PMC_IS_NULL(classobj))
+            PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+        else {
+            const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
+            if (type <= 0) {
+                opcode_t *dest = Parrot_ex_throw_from_op_args(
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    "Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));
+                return (opcode_t *)dest;
+            }
+
+            PREG(1) = Parrot_pmc_new(interp, type);
+        }
+    }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_fetch_p_pc_s_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_get_pmc_keyed_str(interp, CONST(2)->u.key, SREG(3));
+    if (PMC_IS_NULL(PREG(1))) {
+        PMC * const classobj = Parrot_oo_get_class(interp, PREG(4));
+        if (!PMC_IS_NULL(classobj))
+            PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+        else {
+            const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
+            if (type <= 0) {
+                opcode_t *dest = Parrot_ex_throw_from_op_args(
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    "Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));
+                return (opcode_t *)dest;
+            }
+
+            PREG(1) = Parrot_pmc_new(interp, type);
+        }
+    }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_fetch_p_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_get_pmc_keyed_str(interp, PREG(2), CONST(3)->u.string);
+    if (PMC_IS_NULL(PREG(1))) {
+        PMC * const classobj = Parrot_oo_get_class(interp, PREG(4));
+        if (!PMC_IS_NULL(classobj))
+            PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+        else {
+            const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
+            if (type <= 0) {
+                opcode_t *dest = Parrot_ex_throw_from_op_args(
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    "Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));
+                return (opcode_t *)dest;
+            }
+
+            PREG(1) = Parrot_pmc_new(interp, type);
+        }
+    }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_fetch_p_pc_sc_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_get_pmc_keyed_str(interp, CONST(2)->u.key, CONST(3)->u.string);
+    if (PMC_IS_NULL(PREG(1))) {
+        PMC * const classobj = Parrot_oo_get_class(interp, PREG(4));
+        if (!PMC_IS_NULL(classobj))
+            PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+        else {
+            const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
+            if (type <= 0) {
+                opcode_t *dest = Parrot_ex_throw_from_op_args(
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    "Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));
+                return (opcode_t *)dest;
+            }
+
+            PREG(1) = Parrot_pmc_new(interp, type);
+        }
+    }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_fetch_p_p_s_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_get_pmc_keyed_str(interp, PREG(2), SREG(3));
+    if (PMC_IS_NULL(PREG(1))) {
+        PMC * const classobj = Parrot_oo_get_class(interp, CONST(4)->u.key);
+        if (!PMC_IS_NULL(classobj))
+            PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+        else {
+            const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
+            if (type <= 0) {
+                opcode_t *dest = Parrot_ex_throw_from_op_args(
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));
+                return (opcode_t *)dest;
+            }
+
+            PREG(1) = Parrot_pmc_new(interp, type);
+        }
+    }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_fetch_p_pc_s_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_get_pmc_keyed_str(interp, CONST(2)->u.key, SREG(3));
+    if (PMC_IS_NULL(PREG(1))) {
+        PMC * const classobj = Parrot_oo_get_class(interp, CONST(4)->u.key);
+        if (!PMC_IS_NULL(classobj))
+            PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+        else {
+            const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
+            if (type <= 0) {
+                opcode_t *dest = Parrot_ex_throw_from_op_args(
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));
+                return (opcode_t *)dest;
+            }
+
+            PREG(1) = Parrot_pmc_new(interp, type);
+        }
+    }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_fetch_p_p_sc_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_get_pmc_keyed_str(interp, PREG(2), CONST(3)->u.string);
+    if (PMC_IS_NULL(PREG(1))) {
+        PMC * const classobj = Parrot_oo_get_class(interp, CONST(4)->u.key);
+        if (!PMC_IS_NULL(classobj))
+            PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+        else {
+            const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
+            if (type <= 0) {
+                opcode_t *dest = Parrot_ex_throw_from_op_args(
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));
+                return (opcode_t *)dest;
+            }
+
+            PREG(1) = Parrot_pmc_new(interp, type);
+        }
+    }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_fetch_p_pc_sc_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_get_pmc_keyed_str(interp, CONST(2)->u.key, CONST(3)->u.string);
+    if (PMC_IS_NULL(PREG(1))) {
+        PMC * const classobj = Parrot_oo_get_class(interp, CONST(4)->u.key);
+        if (!PMC_IS_NULL(classobj))
+            PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+        else {
+            const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
+            if (type <= 0) {
+                opcode_t *dest = Parrot_ex_throw_from_op_args(
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));
+                return (opcode_t *)dest;
+            }
+
+            PREG(1) = Parrot_pmc_new(interp, type);
+        }
+    }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_vivify_p_p_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_get_pmc_keyed(interp, PREG(2), PREG(3));
+
+    if (PMC_IS_NULL(PREG(1))) {
+        PMC * const classobj = Parrot_oo_get_class(interp, PREG(4));
+
+        if (!PMC_IS_NULL(classobj))
+            PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+        else {
+            const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
+            if (type <= 0) {
+                opcode_t *dest = Parrot_ex_throw_from_op_args(
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    "Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));
+                return (opcode_t *)dest;
+            }
+
+            PREG(1) = Parrot_pmc_new(interp, type);
+        }
+        VTABLE_set_pmc_keyed(interp, PREG(2), PREG(3), PREG(1));
+    }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_vivify_p_pc_p_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_get_pmc_keyed(interp, CONST(2)->u.key, PREG(3));
+
+    if (PMC_IS_NULL(PREG(1))) {
+        PMC * const classobj = Parrot_oo_get_class(interp, PREG(4));
+
+        if (!PMC_IS_NULL(classobj))
+            PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+        else {
+            const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
+            if (type <= 0) {
+                opcode_t *dest = Parrot_ex_throw_from_op_args(
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    "Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));
+                return (opcode_t *)dest;
+            }
+
+            PREG(1) = Parrot_pmc_new(interp, type);
+        }
+        VTABLE_set_pmc_keyed(interp, CONST(2)->u.key, PREG(3), PREG(1));
+    }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_vivify_p_p_pc_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_get_pmc_keyed(interp, PREG(2), CONST(3)->u.key);
+
+    if (PMC_IS_NULL(PREG(1))) {
+        PMC * const classobj = Parrot_oo_get_class(interp, PREG(4));
+
+        if (!PMC_IS_NULL(classobj))
+            PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+        else {
+            const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
+            if (type <= 0) {
+                opcode_t *dest = Parrot_ex_throw_from_op_args(
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    "Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));
+                return (opcode_t *)dest;
+            }
+
+            PREG(1) = Parrot_pmc_new(interp, type);
+        }
+        VTABLE_set_pmc_keyed(interp, PREG(2), CONST(3)->u.key, PREG(1));
+    }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_vivify_p_pc_pc_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_get_pmc_keyed(interp, CONST(2)->u.key, CONST(3)->u.key);
+
+    if (PMC_IS_NULL(PREG(1))) {
+        PMC * const classobj = Parrot_oo_get_class(interp, PREG(4));
+
+        if (!PMC_IS_NULL(classobj))
+            PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+        else {
+            const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
+            if (type <= 0) {
+                opcode_t *dest = Parrot_ex_throw_from_op_args(
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    "Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));
+                return (opcode_t *)dest;
+            }
+
+            PREG(1) = Parrot_pmc_new(interp, type);
+        }
+        VTABLE_set_pmc_keyed(interp, CONST(2)->u.key, CONST(3)->u.key, PREG(1));
+    }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_vivify_p_p_p_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_get_pmc_keyed(interp, PREG(2), PREG(3));
+
+    if (PMC_IS_NULL(PREG(1))) {
+        PMC * const classobj = Parrot_oo_get_class(interp, CONST(4)->u.key);
+
+        if (!PMC_IS_NULL(classobj))
+            PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+        else {
+            const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
+            if (type <= 0) {
+                opcode_t *dest = Parrot_ex_throw_from_op_args(
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));
+                return (opcode_t *)dest;
+            }
+
+            PREG(1) = Parrot_pmc_new(interp, type);
+        }
+        VTABLE_set_pmc_keyed(interp, PREG(2), PREG(3), PREG(1));
+    }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_vivify_p_pc_p_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_get_pmc_keyed(interp, CONST(2)->u.key, PREG(3));
+
+    if (PMC_IS_NULL(PREG(1))) {
+        PMC * const classobj = Parrot_oo_get_class(interp, CONST(4)->u.key);
+
+        if (!PMC_IS_NULL(classobj))
+            PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+        else {
+            const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
+            if (type <= 0) {
+                opcode_t *dest = Parrot_ex_throw_from_op_args(
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));
+                return (opcode_t *)dest;
+            }
+
+            PREG(1) = Parrot_pmc_new(interp, type);
+        }
+        VTABLE_set_pmc_keyed(interp, CONST(2)->u.key, PREG(3), PREG(1));
+    }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_vivify_p_p_pc_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_get_pmc_keyed(interp, PREG(2), CONST(3)->u.key);
+
+    if (PMC_IS_NULL(PREG(1))) {
+        PMC * const classobj = Parrot_oo_get_class(interp, CONST(4)->u.key);
+
+        if (!PMC_IS_NULL(classobj))
+            PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+        else {
+            const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
+            if (type <= 0) {
+                opcode_t *dest = Parrot_ex_throw_from_op_args(
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));
+                return (opcode_t *)dest;
+            }
+
+            PREG(1) = Parrot_pmc_new(interp, type);
+        }
+        VTABLE_set_pmc_keyed(interp, PREG(2), CONST(3)->u.key, PREG(1));
+    }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_vivify_p_pc_pc_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_get_pmc_keyed(interp, CONST(2)->u.key, CONST(3)->u.key);
+
+    if (PMC_IS_NULL(PREG(1))) {
+        PMC * const classobj = Parrot_oo_get_class(interp, CONST(4)->u.key);
+
+        if (!PMC_IS_NULL(classobj))
+            PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+        else {
+            const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
+            if (type <= 0) {
+                opcode_t *dest = Parrot_ex_throw_from_op_args(
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));
+                return (opcode_t *)dest;
+            }
+
+            PREG(1) = Parrot_pmc_new(interp, type);
+        }
+        VTABLE_set_pmc_keyed(interp, CONST(2)->u.key, CONST(3)->u.key, PREG(1));
+    }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_vivify_p_p_i_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_get_pmc_keyed_int(interp, PREG(2), IREG(3));
+
+    if (PMC_IS_NULL(PREG(1))) {
+        PMC * const classobj = Parrot_oo_get_class(interp, PREG(4));
+        if (!PMC_IS_NULL(classobj))
+            PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+        else {
+            const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
+            if (type <= 0) {
+                opcode_t *dest = Parrot_ex_throw_from_op_args(
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    "Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));
+                return (opcode_t *)dest;
+            }
+
+            PREG(1) = Parrot_pmc_new(interp, type);
+        }
+
+        VTABLE_set_pmc_keyed_int(interp, PREG(2), IREG(3), PREG(1));
+    }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_vivify_p_pc_i_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_get_pmc_keyed_int(interp, CONST(2)->u.key, IREG(3));
+
+    if (PMC_IS_NULL(PREG(1))) {
+        PMC * const classobj = Parrot_oo_get_class(interp, PREG(4));
+        if (!PMC_IS_NULL(classobj))
+            PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+        else {
+            const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
+            if (type <= 0) {
+                opcode_t *dest = Parrot_ex_throw_from_op_args(
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    "Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));
+                return (opcode_t *)dest;
+            }
+
+            PREG(1) = Parrot_pmc_new(interp, type);
+        }
+
+        VTABLE_set_pmc_keyed_int(interp, CONST(2)->u.key, IREG(3), PREG(1));
+    }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_vivify_p_p_ic_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_get_pmc_keyed_int(interp, PREG(2), cur_opcode[3]);
+
+    if (PMC_IS_NULL(PREG(1))) {
+        PMC * const classobj = Parrot_oo_get_class(interp, PREG(4));
+        if (!PMC_IS_NULL(classobj))
+            PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+        else {
+            const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
+            if (type <= 0) {
+                opcode_t *dest = Parrot_ex_throw_from_op_args(
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    "Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));
+                return (opcode_t *)dest;
+            }
+
+            PREG(1) = Parrot_pmc_new(interp, type);
+        }
+
+        VTABLE_set_pmc_keyed_int(interp, PREG(2), cur_opcode[3], PREG(1));
+    }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_vivify_p_pc_ic_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_get_pmc_keyed_int(interp, CONST(2)->u.key, cur_opcode[3]);
+
+    if (PMC_IS_NULL(PREG(1))) {
+        PMC * const classobj = Parrot_oo_get_class(interp, PREG(4));
+        if (!PMC_IS_NULL(classobj))
+            PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+        else {
+            const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
+            if (type <= 0) {
+                opcode_t *dest = Parrot_ex_throw_from_op_args(
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    "Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));
+                return (opcode_t *)dest;
+            }
+
+            PREG(1) = Parrot_pmc_new(interp, type);
+        }
+
+        VTABLE_set_pmc_keyed_int(interp, CONST(2)->u.key, cur_opcode[3], PREG(1));
+    }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_vivify_p_p_i_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_get_pmc_keyed_int(interp, PREG(2), IREG(3));
+
+    if (PMC_IS_NULL(PREG(1))) {
+        PMC * const classobj = Parrot_oo_get_class(interp, CONST(4)->u.key);
+        if (!PMC_IS_NULL(classobj))
+            PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+        else {
+            const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
+            if (type <= 0) {
+                opcode_t *dest = Parrot_ex_throw_from_op_args(
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));
+                return (opcode_t *)dest;
+            }
+
+            PREG(1) = Parrot_pmc_new(interp, type);
+        }
+
+        VTABLE_set_pmc_keyed_int(interp, PREG(2), IREG(3), PREG(1));
+    }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_vivify_p_pc_i_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_get_pmc_keyed_int(interp, CONST(2)->u.key, IREG(3));
+
+    if (PMC_IS_NULL(PREG(1))) {
+        PMC * const classobj = Parrot_oo_get_class(interp, CONST(4)->u.key);
+        if (!PMC_IS_NULL(classobj))
+            PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+        else {
+            const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
+            if (type <= 0) {
+                opcode_t *dest = Parrot_ex_throw_from_op_args(
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));
+                return (opcode_t *)dest;
+            }
+
+            PREG(1) = Parrot_pmc_new(interp, type);
+        }
+
+        VTABLE_set_pmc_keyed_int(interp, CONST(2)->u.key, IREG(3), PREG(1));
+    }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_vivify_p_p_ic_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_get_pmc_keyed_int(interp, PREG(2), cur_opcode[3]);
+
+    if (PMC_IS_NULL(PREG(1))) {
+        PMC * const classobj = Parrot_oo_get_class(interp, CONST(4)->u.key);
+        if (!PMC_IS_NULL(classobj))
+            PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+        else {
+            const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
+            if (type <= 0) {
+                opcode_t *dest = Parrot_ex_throw_from_op_args(
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));
+                return (opcode_t *)dest;
+            }
+
+            PREG(1) = Parrot_pmc_new(interp, type);
+        }
+
+        VTABLE_set_pmc_keyed_int(interp, PREG(2), cur_opcode[3], PREG(1));
+    }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_vivify_p_pc_ic_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_get_pmc_keyed_int(interp, CONST(2)->u.key, cur_opcode[3]);
+
+    if (PMC_IS_NULL(PREG(1))) {
+        PMC * const classobj = Parrot_oo_get_class(interp, CONST(4)->u.key);
+        if (!PMC_IS_NULL(classobj))
+            PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+        else {
+            const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
+            if (type <= 0) {
+                opcode_t *dest = Parrot_ex_throw_from_op_args(
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));
+                return (opcode_t *)dest;
+            }
+
+            PREG(1) = Parrot_pmc_new(interp, type);
+        }
+
+        VTABLE_set_pmc_keyed_int(interp, CONST(2)->u.key, cur_opcode[3], PREG(1));
+    }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_vivify_p_p_s_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_get_pmc_keyed_str(interp, PREG(2), SREG(3));
+
+    if (PMC_IS_NULL(PREG(1))) {
+        PMC * const classobj = Parrot_oo_get_class(interp, PREG(4));
+        if (!PMC_IS_NULL(classobj))
+            PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+        else {
+            const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
+            if (type <= 0) {
+                opcode_t *dest = Parrot_ex_throw_from_op_args(
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    "Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));
+                return (opcode_t *)dest;
+            }
+
+            PREG(1) = Parrot_pmc_new(interp, type);
+        }
+
+        VTABLE_set_pmc_keyed_str(interp, PREG(2), SREG(3), PREG(1));
+    }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_vivify_p_pc_s_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_get_pmc_keyed_str(interp, CONST(2)->u.key, SREG(3));
+
+    if (PMC_IS_NULL(PREG(1))) {
+        PMC * const classobj = Parrot_oo_get_class(interp, PREG(4));
+        if (!PMC_IS_NULL(classobj))
+            PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+        else {
+            const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
+            if (type <= 0) {
+                opcode_t *dest = Parrot_ex_throw_from_op_args(
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    "Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));
+                return (opcode_t *)dest;
+            }
+
+            PREG(1) = Parrot_pmc_new(interp, type);
+        }
+
+        VTABLE_set_pmc_keyed_str(interp, CONST(2)->u.key, SREG(3), PREG(1));
+    }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_vivify_p_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_get_pmc_keyed_str(interp, PREG(2), CONST(3)->u.string);
+
+    if (PMC_IS_NULL(PREG(1))) {
+        PMC * const classobj = Parrot_oo_get_class(interp, PREG(4));
+        if (!PMC_IS_NULL(classobj))
+            PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+        else {
+            const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
+            if (type <= 0) {
+                opcode_t *dest = Parrot_ex_throw_from_op_args(
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    "Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));
+                return (opcode_t *)dest;
+            }
+
+            PREG(1) = Parrot_pmc_new(interp, type);
+        }
+
+        VTABLE_set_pmc_keyed_str(interp, PREG(2), CONST(3)->u.string, PREG(1));
+    }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_vivify_p_pc_sc_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_get_pmc_keyed_str(interp, CONST(2)->u.key, CONST(3)->u.string);
+
+    if (PMC_IS_NULL(PREG(1))) {
+        PMC * const classobj = Parrot_oo_get_class(interp, PREG(4));
+        if (!PMC_IS_NULL(classobj))
+            PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+        else {
+            const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
+            if (type <= 0) {
+                opcode_t *dest = Parrot_ex_throw_from_op_args(
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    "Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));
+                return (opcode_t *)dest;
+            }
+
+            PREG(1) = Parrot_pmc_new(interp, type);
+        }
+
+        VTABLE_set_pmc_keyed_str(interp, CONST(2)->u.key, CONST(3)->u.string, PREG(1));
+    }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_vivify_p_p_s_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_get_pmc_keyed_str(interp, PREG(2), SREG(3));
+
+    if (PMC_IS_NULL(PREG(1))) {
+        PMC * const classobj = Parrot_oo_get_class(interp, CONST(4)->u.key);
+        if (!PMC_IS_NULL(classobj))
+            PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+        else {
+            const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
+            if (type <= 0) {
+                opcode_t *dest = Parrot_ex_throw_from_op_args(
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));
+                return (opcode_t *)dest;
+            }
+
+            PREG(1) = Parrot_pmc_new(interp, type);
+        }
+
+        VTABLE_set_pmc_keyed_str(interp, PREG(2), SREG(3), PREG(1));
+    }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_vivify_p_pc_s_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_get_pmc_keyed_str(interp, CONST(2)->u.key, SREG(3));
+
+    if (PMC_IS_NULL(PREG(1))) {
+        PMC * const classobj = Parrot_oo_get_class(interp, CONST(4)->u.key);
+        if (!PMC_IS_NULL(classobj))
+            PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+        else {
+            const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
+            if (type <= 0) {
+                opcode_t *dest = Parrot_ex_throw_from_op_args(
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));
+                return (opcode_t *)dest;
+            }
+
+            PREG(1) = Parrot_pmc_new(interp, type);
+        }
+
+        VTABLE_set_pmc_keyed_str(interp, CONST(2)->u.key, SREG(3), PREG(1));
+    }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_vivify_p_p_sc_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_get_pmc_keyed_str(interp, PREG(2), CONST(3)->u.string);
+
+    if (PMC_IS_NULL(PREG(1))) {
+        PMC * const classobj = Parrot_oo_get_class(interp, CONST(4)->u.key);
+        if (!PMC_IS_NULL(classobj))
+            PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+        else {
+            const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
+            if (type <= 0) {
+                opcode_t *dest = Parrot_ex_throw_from_op_args(
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));
+                return (opcode_t *)dest;
+            }
+
+            PREG(1) = Parrot_pmc_new(interp, type);
+        }
+
+        VTABLE_set_pmc_keyed_str(interp, PREG(2), CONST(3)->u.string, PREG(1));
+    }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_vivify_p_pc_sc_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PREG(1) = VTABLE_get_pmc_keyed_str(interp, CONST(2)->u.key, CONST(3)->u.string);
+
+    if (PMC_IS_NULL(PREG(1))) {
+        PMC * const classobj = Parrot_oo_get_class(interp, CONST(4)->u.key);
+        if (!PMC_IS_NULL(classobj))
+            PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+        else {
+            const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
+            if (type <= 0) {
+                opcode_t *dest = Parrot_ex_throw_from_op_args(
+                    interp, cur_opcode + 5, EXCEPTION_NO_CLASS,
+                    "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));
+                return (opcode_t *)dest;
+            }
+
+            PREG(1) = Parrot_pmc_new(interp, type);
+        }
+
+        VTABLE_set_pmc_keyed_str(interp, CONST(2)->u.key, CONST(3)->u.string, PREG(1));
+    }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_new_p_s_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    STRING * const name   = SREG(2);
+    PMC    * const _class = Parrot_pcc_get_HLL(interp, CURRENT_CONTEXT(interp))
+                          ? Parrot_oo_get_class_str(interp, name)
+                          : PMCNULL;
+
+    if (!PMC_IS_NULL(_class)) {
+        PMC *initial = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_Integer));
+        VTABLE_set_integer_native(interp, initial, IREG(3));
+        PREG(1) = VTABLE_instantiate(interp, _class, initial);
+    }
+    else {
+        const INTVAL type = Parrot_pmc_get_type_str(interp, name);
+        if (type <= 0) {
+            opcode_t *dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
+                EXCEPTION_NO_CLASS,
+                "Class '%Ss' not found", name);
+            return (opcode_t *)dest;
+        }
+        PREG(1) = Parrot_pmc_new_init_int(interp, type, IREG(3));
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_new_p_sc_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    STRING * const name   = CONST(2)->u.string;
+    PMC    * const _class = Parrot_pcc_get_HLL(interp, CURRENT_CONTEXT(interp))
+                          ? Parrot_oo_get_class_str(interp, name)
+                          : PMCNULL;
+
+    if (!PMC_IS_NULL(_class)) {
+        PMC *initial = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_Integer));
+        VTABLE_set_integer_native(interp, initial, IREG(3));
+        PREG(1) = VTABLE_instantiate(interp, _class, initial);
+    }
+    else {
+        const INTVAL type = Parrot_pmc_get_type_str(interp, name);
+        if (type <= 0) {
+            opcode_t *dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
+                EXCEPTION_NO_CLASS,
+                "Class '%Ss' not found", name);
+            return (opcode_t *)dest;
+        }
+        PREG(1) = Parrot_pmc_new_init_int(interp, type, IREG(3));
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_new_p_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    STRING * const name   = SREG(2);
+    PMC    * const _class = Parrot_pcc_get_HLL(interp, CURRENT_CONTEXT(interp))
+                          ? Parrot_oo_get_class_str(interp, name)
+                          : PMCNULL;
+
+    if (!PMC_IS_NULL(_class)) {
+        PMC *initial = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_Integer));
+        VTABLE_set_integer_native(interp, initial, cur_opcode[3]);
+        PREG(1) = VTABLE_instantiate(interp, _class, initial);
+    }
+    else {
+        const INTVAL type = Parrot_pmc_get_type_str(interp, name);
+        if (type <= 0) {
+            opcode_t *dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
+                EXCEPTION_NO_CLASS,
+                "Class '%Ss' not found", name);
+            return (opcode_t *)dest;
+        }
+        PREG(1) = Parrot_pmc_new_init_int(interp, type, cur_opcode[3]);
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_new_p_sc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    STRING * const name   = CONST(2)->u.string;
+    PMC    * const _class = Parrot_pcc_get_HLL(interp, CURRENT_CONTEXT(interp))
+                          ? Parrot_oo_get_class_str(interp, name)
+                          : PMCNULL;
+
+    if (!PMC_IS_NULL(_class)) {
+        PMC *initial = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_Integer));
+        VTABLE_set_integer_native(interp, initial, cur_opcode[3]);
+        PREG(1) = VTABLE_instantiate(interp, _class, initial);
+    }
+    else {
+        const INTVAL type = Parrot_pmc_get_type_str(interp, name);
+        if (type <= 0) {
+            opcode_t *dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
+                EXCEPTION_NO_CLASS,
+                "Class '%Ss' not found", name);
+            return (opcode_t *)dest;
+        }
+        PREG(1) = Parrot_pmc_new_init_int(interp, type, cur_opcode[3]);
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_new_p_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const  name_key = PREG(2);
+
+    /* get_class() returns a PMCProxy for core types, so check for core PMCs */
+    const INTVAL type = Parrot_pmc_get_type(interp, name_key);
+
+    /* if it's clearly a PIR-level PMC */
+    if (type > enum_class_core_max) {
+        PMC * const _class = Parrot_oo_get_class(interp, name_key);
+        if (!PMC_IS_NULL(_class)) {
+            PMC *initial = Parrot_pmc_new(interp,
+                Parrot_get_ctx_HLL_type(interp, enum_class_Integer));
+            VTABLE_set_integer_native(interp, initial, IREG(3));
+            PREG(1) = VTABLE_instantiate(interp, _class, initial);
+        }
+    }
+
+    /* if it's a core PMC */
+    else if (type > enum_class_default)
+        PREG(1) = Parrot_pmc_new_init_int(interp, type, IREG(3));
+
+    /* it's a typo */
+    else {
+        opcode_t *dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
+            EXCEPTION_NO_CLASS,
+            "Class '%Ss' not found", VTABLE_get_repr(interp, name_key));
+        return (opcode_t *)dest;
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_new_p_pc_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const  name_key = CONST(2)->u.key;
+
+    /* get_class() returns a PMCProxy for core types, so check for core PMCs */
+    const INTVAL type = Parrot_pmc_get_type(interp, name_key);
+
+    /* if it's clearly a PIR-level PMC */
+    if (type > enum_class_core_max) {
+        PMC * const _class = Parrot_oo_get_class(interp, name_key);
+        if (!PMC_IS_NULL(_class)) {
+            PMC *initial = Parrot_pmc_new(interp,
+                Parrot_get_ctx_HLL_type(interp, enum_class_Integer));
+            VTABLE_set_integer_native(interp, initial, IREG(3));
+            PREG(1) = VTABLE_instantiate(interp, _class, initial);
+        }
+    }
+
+    /* if it's a core PMC */
+    else if (type > enum_class_default)
+        PREG(1) = Parrot_pmc_new_init_int(interp, type, IREG(3));
+
+    /* it's a typo */
+    else {
+        opcode_t *dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
+            EXCEPTION_NO_CLASS,
+            "Class '%Ss' not found", VTABLE_get_repr(interp, name_key));
+        return (opcode_t *)dest;
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_new_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const  name_key = PREG(2);
+
+    /* get_class() returns a PMCProxy for core types, so check for core PMCs */
+    const INTVAL type = Parrot_pmc_get_type(interp, name_key);
+
+    /* if it's clearly a PIR-level PMC */
+    if (type > enum_class_core_max) {
+        PMC * const _class = Parrot_oo_get_class(interp, name_key);
+        if (!PMC_IS_NULL(_class)) {
+            PMC *initial = Parrot_pmc_new(interp,
+                Parrot_get_ctx_HLL_type(interp, enum_class_Integer));
+            VTABLE_set_integer_native(interp, initial, cur_opcode[3]);
+            PREG(1) = VTABLE_instantiate(interp, _class, initial);
+        }
+    }
+
+    /* if it's a core PMC */
+    else if (type > enum_class_default)
+        PREG(1) = Parrot_pmc_new_init_int(interp, type, cur_opcode[3]);
+
+    /* it's a typo */
+    else {
+        opcode_t *dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
+            EXCEPTION_NO_CLASS,
+            "Class '%Ss' not found", VTABLE_get_repr(interp, name_key));
+        return (opcode_t *)dest;
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_new_p_pc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const  name_key = CONST(2)->u.key;
+
+    /* get_class() returns a PMCProxy for core types, so check for core PMCs */
+    const INTVAL type = Parrot_pmc_get_type(interp, name_key);
+
+    /* if it's clearly a PIR-level PMC */
+    if (type > enum_class_core_max) {
+        PMC * const _class = Parrot_oo_get_class(interp, name_key);
+        if (!PMC_IS_NULL(_class)) {
+            PMC *initial = Parrot_pmc_new(interp,
+                Parrot_get_ctx_HLL_type(interp, enum_class_Integer));
+            VTABLE_set_integer_native(interp, initial, cur_opcode[3]);
+            PREG(1) = VTABLE_instantiate(interp, _class, initial);
+        }
+    }
+
+    /* if it's a core PMC */
+    else if (type > enum_class_default)
+        PREG(1) = Parrot_pmc_new_init_int(interp, type, cur_opcode[3]);
+
+    /* it's a typo */
+    else {
+        opcode_t *dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
+            EXCEPTION_NO_CLASS,
+            "Class '%Ss' not found", VTABLE_get_repr(interp, name_key));
+        return (opcode_t *)dest;
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_root_new_p_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const  name_key = PREG(2);
+
+    /* get_class() returns a PMCProxy for core types, so check for core PMCs */
+    const INTVAL type = Parrot_pmc_get_type(interp, name_key);
+
+    /* if it's clearly a PIR-level PMC */
+    if (type > enum_class_core_max) {
+        PMC * const root_ns  = interp->root_namespace;
+        PMC * const ns       = Parrot_get_namespace_keyed(interp, root_ns, name_key);
+        PMC * const _class   = Parrot_oo_get_class(interp, ns);
+        if (!PMC_IS_NULL(_class)) {
+            PMC *initial = Parrot_pmc_new(interp,
+                Parrot_get_ctx_HLL_type(interp, enum_class_Integer));
+            VTABLE_set_integer_native(interp, initial, IREG(3));
+            PREG(1) = VTABLE_instantiate(interp, _class, initial);
+        }
+    }
+
+    /* if it's a core PMC */
+    else if (type > enum_class_default)
+        PREG(1) = Parrot_pmc_new_init_int(interp, type, IREG(3));
+
+    /* it's a typo */
+    else {
+        opcode_t *dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
+            EXCEPTION_NO_CLASS,
+            "Class '%Ss' not found", VTABLE_get_repr(interp, name_key));
+        return (opcode_t *)dest;
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_root_new_p_pc_i(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const  name_key = CONST(2)->u.key;
+
+    /* get_class() returns a PMCProxy for core types, so check for core PMCs */
+    const INTVAL type = Parrot_pmc_get_type(interp, name_key);
+
+    /* if it's clearly a PIR-level PMC */
+    if (type > enum_class_core_max) {
+        PMC * const root_ns  = interp->root_namespace;
+        PMC * const ns       = Parrot_get_namespace_keyed(interp, root_ns, name_key);
+        PMC * const _class   = Parrot_oo_get_class(interp, ns);
+        if (!PMC_IS_NULL(_class)) {
+            PMC *initial = Parrot_pmc_new(interp,
+                Parrot_get_ctx_HLL_type(interp, enum_class_Integer));
+            VTABLE_set_integer_native(interp, initial, IREG(3));
+            PREG(1) = VTABLE_instantiate(interp, _class, initial);
+        }
+    }
+
+    /* if it's a core PMC */
+    else if (type > enum_class_default)
+        PREG(1) = Parrot_pmc_new_init_int(interp, type, IREG(3));
+
+    /* it's a typo */
+    else {
+        opcode_t *dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
+            EXCEPTION_NO_CLASS,
+            "Class '%Ss' not found", VTABLE_get_repr(interp, name_key));
+        return (opcode_t *)dest;
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_root_new_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const  name_key = PREG(2);
+
+    /* get_class() returns a PMCProxy for core types, so check for core PMCs */
+    const INTVAL type = Parrot_pmc_get_type(interp, name_key);
+
+    /* if it's clearly a PIR-level PMC */
+    if (type > enum_class_core_max) {
+        PMC * const root_ns  = interp->root_namespace;
+        PMC * const ns       = Parrot_get_namespace_keyed(interp, root_ns, name_key);
+        PMC * const _class   = Parrot_oo_get_class(interp, ns);
+        if (!PMC_IS_NULL(_class)) {
+            PMC *initial = Parrot_pmc_new(interp,
+                Parrot_get_ctx_HLL_type(interp, enum_class_Integer));
+            VTABLE_set_integer_native(interp, initial, cur_opcode[3]);
+            PREG(1) = VTABLE_instantiate(interp, _class, initial);
+        }
+    }
+
+    /* if it's a core PMC */
+    else if (type > enum_class_default)
+        PREG(1) = Parrot_pmc_new_init_int(interp, type, cur_opcode[3]);
+
+    /* it's a typo */
+    else {
+        opcode_t *dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
+            EXCEPTION_NO_CLASS,
+            "Class '%Ss' not found", VTABLE_get_repr(interp, name_key));
+        return (opcode_t *)dest;
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_root_new_p_pc_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    PMC * const  name_key = CONST(2)->u.key;
+
+    /* get_class() returns a PMCProxy for core types, so check for core PMCs */
+    const INTVAL type = Parrot_pmc_get_type(interp, name_key);
+
+    /* if it's clearly a PIR-level PMC */
+    if (type > enum_class_core_max) {
+        PMC * const root_ns  = interp->root_namespace;
+        PMC * const ns       = Parrot_get_namespace_keyed(interp, root_ns, name_key);
+        PMC * const _class   = Parrot_oo_get_class(interp, ns);
+        if (!PMC_IS_NULL(_class)) {
+            PMC *initial = Parrot_pmc_new(interp,
+                Parrot_get_ctx_HLL_type(interp, enum_class_Integer));
+            VTABLE_set_integer_native(interp, initial, cur_opcode[3]);
+            PREG(1) = VTABLE_instantiate(interp, _class, initial);
+        }
+    }
+
+    /* if it's a core PMC */
+    else if (type > enum_class_default)
+        PREG(1) = Parrot_pmc_new_init_int(interp, type, cur_opcode[3]);
+
+    /* it's a typo */
+    else {
+        opcode_t *dest = Parrot_ex_throw_from_op_args(interp, cur_opcode + 4,
+            EXCEPTION_NO_CLASS,
+            "Class '%Ss' not found", VTABLE_get_repr(interp, name_key));
+        return (opcode_t *)dest;
+    }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_find_codepoint_i_s(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+#if PARROT_HAS_ICU
+    UErrorCode   err       = U_ZERO_ERROR;
+    char * const cstr      = Parrot_str_to_cstring(interp, SREG(2));
+    UChar32      codepoint = u_charFromName(U_EXTENDED_CHAR_NAME, cstr, &err);
+    Parrot_str_free_cstring(cstr);
+    IREG(1) = U_SUCCESS(err) ? (INTVAL) codepoint : -1;
+#else
+    opcode_t * const dest = cur_opcode + 3;
+    Parrot_ex_throw_from_op_args(interp, dest, EXCEPTION_LIBRARY_ERROR,
+        "no ICU lib loaded");
+#endif
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_find_codepoint_i_sc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+#if PARROT_HAS_ICU
+    UErrorCode   err       = U_ZERO_ERROR;
+    char * const cstr      = Parrot_str_to_cstring(interp, CONST(2)->u.string);
+    UChar32      codepoint = u_charFromName(U_EXTENDED_CHAR_NAME, cstr, &err);
+    Parrot_str_free_cstring(cstr);
+    IREG(1) = U_SUCCESS(err) ? (INTVAL) codepoint : -1;
+#else
+    opcode_t * const dest = cur_opcode + 3;
+    Parrot_ex_throw_from_op_args(interp, dest, EXCEPTION_LIBRARY_ERROR,
+        "no ICU lib loaded");
+#endif
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_unroll_p(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    /* Go to the next op after loop unrolling */
+    opcode_t * const dest = cur_opcode + 2;
+    PMC *eh = PMCNULL;
+    if (!PMC_IS_NULL(PREG(1))) {
+        /* If isa ExceptionHandler, use it. If isa Exception, get its active handler */
+        if (VTABLE_isa(interp, PREG(1), Parrot_str_new_constant(interp, "ExceptionHandler")))
+            eh = PREG(1);
+        else if (VTABLE_isa(interp, PREG(1), Parrot_str_new_constant(interp, "Exception"))) {
+            PMC *iter = VTABLE_get_attr_str(interp,
+                                            PREG(1), Parrot_str_new_constant(interp, "handler_iter"));
+            if (!PMC_IS_NULL(iter))
+                eh = VTABLE_get_pmc_keyed_int(interp, iter, -1);
+        }
+    }
+    if (!PMC_IS_NULL(eh)) {
+        /* Get the runloop_id from the continuation and jump to it. */
+        Parrot_runloop *rl = interp->current_runloop;
+        INTVAL rid;
+        Parrot_pcc_invoke_method_from_c_args(interp,
+                                             eh, Parrot_str_new_constant(interp, "rid"),
+                                             "->I", &rid);
+        while (rl && rl->id != rid)
+            rl = rl->prev;
+        if (rl) {
+            if (rl != interp->current_runloop) {
+                rl->handler_start = dest;
+                longjmp(rl->resume, 3);
+            }
+        }
+        else
+            Parrot_ex_throw_from_c_args(interp, NULL,
+                    EXCEPTION_INVALID_OPERATION, "missing runloop");
+    }
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_unroll_pc(opcode_t *cur_opcode, PARROT_INTERP)  {
+    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+    /* Go to the next op after loop unrolling */
+    opcode_t * const dest = cur_opcode + 2;
+    PMC *eh = PMCNULL;
+    if (!PMC_IS_NULL(CONST(1)->u.key)) {
+        /* If isa ExceptionHandler, use it. If isa Exception, get its active handler */
+        if (VTABLE_isa(interp, CONST(1)->u.key, Parrot_str_new_constant(interp, "ExceptionHandler")))
+            eh = CONST(1)->u.key;
+        else if (VTABLE_isa(interp, CONST(1)->u.key, Parrot_str_new_constant(interp, "Exception"))) {
+            PMC *iter = VTABLE_get_attr_str(interp,
+                                            CONST(1)->u.key, Parrot_str_new_constant(interp, "handler_iter"));
+            if (!PMC_IS_NULL(iter))
+                eh = VTABLE_get_pmc_keyed_int(interp, iter, -1);
+        }
+    }
+    if (!PMC_IS_NULL(eh)) {
+        /* Get the runloop_id from the continuation and jump to it. */
+        Parrot_runloop *rl = interp->current_runloop;
+        INTVAL rid;
+        Parrot_pcc_invoke_method_from_c_args(interp,
+                                             eh, Parrot_str_new_constant(interp, "rid"),
+                                             "->I", &rid);
+        while (rl && rl->id != rid)
+            rl = rl->prev;
+        if (rl) {
+            if (rl != interp->current_runloop) {
+                rl->handler_start = dest;
+                longjmp(rl->resume, 3);
+            }
+        }
+        else
+            Parrot_ex_throw_from_c_args(interp, NULL,
+                    EXCEPTION_INVALID_OPERATION, "missing runloop");
+    }
+
+return (opcode_t *)cur_opcode + 2;}
+
+
+/*
+** op lib descriptor:
+*/
+
+static op_lib_t core_op_lib = {
+  "core",               /* name */
+  "",             /* suffix */
+  PARROT_FUNCTION_CORE,                       /* core_type = PARROT_XX_CORE */
+  0,                                /* flags */
+  2,    /* major_version */
+  4,    /* minor_version */
+  0,    /* patch_version */
+  1268,             /* op_count */
+  core_op_info_table,       /* op_info_table */
+  core_op_func_table,       /* op_func_table */
+  get_op          /* op_code() */ 
+};
+
+/*
+** Op lookup function:
+*/
+
+#define OP_HASH_SIZE 3041
+
+/* we could calculate a prime somewhat bigger than
+ * n of fullnames + n of names
+ * for now this should be ok
+ *
+ * look up an op_code: at first call to op_code() a hash
+ * of short and full opcode names is created
+ * hash functions are from imcc, thanks to Melvin.
+ */
+
+
+typedef struct hop {
+    op_info_t * info;
+    struct hop *next;
+} HOP;
+static HOP **hop;
+
+static void hop_init(PARROT_INTERP);
+static size_t hash_str(const char *str);
+static void store_op(PARROT_INTERP, op_info_t *info, int full);
+
+/* XXX on changing interpreters, this should be called,
+   through a hook */
+
+static void hop_deinit(PARROT_INTERP);
+
+/*
+ * find a short or full opcode
+ * usage:
+ *
+ * interp->op_lib->op_code("set", 0)
+ * interp->op_lib->op_code("set_i_i", 1)
+ *
+ * returns >= 0 (found idx into info_table), -1 if not
+ */
+
+static size_t hash_str(const char *str) {
+    size_t      key = 0;
+    const char *s   = str;
+
+    while (*s) {
+        key *= 65599;
+        key += *s++;
+    }
+
+    return key;
+}
+
+static void store_op(PARROT_INTERP, op_info_t *info, int full) {
+    HOP * const p     = mem_gc_allocate_zeroed_typed(interp, HOP);
+    const size_t hidx =
+        hash_str(full ? info->full_name : info->name) % OP_HASH_SIZE;
+
+    p->info   = info;
+    p->next   = hop[hidx];
+    hop[hidx] = p;
+}
+static int get_op(PARROT_INTERP, const char * name, int full) {
+    const HOP * p;
+    const size_t hidx = hash_str(name) % OP_HASH_SIZE;
+    if (!hop) {
+        hop = mem_gc_allocate_n_zeroed_typed(interp, OP_HASH_SIZE,HOP *);
+        hop_init(interp);
+    }
+    for (p = hop[hidx]; p; p = p->next) {
+        if(STREQ(name, full ? p->info->full_name : p->info->name))
+            return p->info - core_op_lib.op_info_table;
+    }
+    return -1;
+}
+static void hop_init(PARROT_INTERP) {
+    size_t i;
+    op_info_t * const info = core_op_lib.op_info_table;
+    /* store full names */
+    for (i = 0; i < core_op_lib.op_count; i++)
+        store_op(interp, info + i, 1);
+    /* plus one short name */
+    for (i = 0; i < core_op_lib.op_count; i++)
+        if (get_op(interp, info[i].name, 0) == -1)
+            store_op(interp, info + i, 0);
+}
+static void hop_deinit(PARROT_INTERP)
+{
+    if (hop) {
+        size_t i;
+        for (i = 0; i < OP_HASH_SIZE; i++) {
+            HOP *p = hop[i];
+            while (p) {
+                HOP * const next = p->next;
+                mem_gc_free(interp, p);
+                p = next;
+            }
+        }
+        mem_sys_free(hop);
+        hop = NULL;
+    }
+}
+op_lib_t *
+Parrot_DynOp_core_2_4_0(PARROT_INTERP, long init) {
+    /* initialize and return op_lib ptr */
+    if (init == 1) {
+
+        return &core_op_lib;
+    }
+    /* set op_lib to the passed ptr (in init) */
+    else if (init) {
+
+    }
+    /* deinit - free resources */
+    else {
+        hop_deinit(interp);
+    }
+    return NULL;
+}
+
+
+/*
+ * dynamic lib load function - called once
+ */
+ PMC*
+Parrot_lib_core_ops_load(PARROT_INTERP);
+
+ PMC*
+Parrot_lib_core_ops_load(PARROT_INTERP)
+
+{
+    PMC *const lib = Parrot_pmc_new(interp, enum_class_ParrotLibrary);
+    ((Parrot_ParrotLibrary_attributes*)PMC_data(lib))->oplib_init = (void *) Parrot_DynOp_core_2_4_0;
+    dynop_register(interp, lib);
+    return lib;
+}
+
+
+/*
+ * Local variables:
+ *   c-file-style: "parrot"
+ *   buffer-read-only: t
+ * End:
+ * vim: expandtab shiftwidth=4:
+ */

Modified: branches/ucs4_encoding/src/ops/var.ops
==============================================================================
--- branches/ucs4_encoding/src/ops/var.ops	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/src/ops/var.ops	Mon May 24 21:18:41 2010	(r46974)
@@ -496,7 +496,7 @@
 
 =head1 COPYRIGHT
 
-Copyright (C) 2001-2009, Parrot Foundation.
+Copyright (C) 2001-2010, Parrot Foundation.
 
 =head1 LICENSE
 

Modified: branches/ucs4_encoding/src/packfile/pf_items.c
==============================================================================
--- branches/ucs4_encoding/src/packfile/pf_items.c	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/src/packfile/pf_items.c	Mon May 24 21:18:41 2010	(r46974)
@@ -1370,7 +1370,8 @@
 
 */
 
-PARROT_PURE_FUNCTION
+PARROT_CONST_FUNCTION
+PARROT_WARN_UNUSED_RESULT
 size_t
 PF_size_strlen(const UINTVAL len)
 {

Modified: branches/ucs4_encoding/src/parrot_debugger.c
==============================================================================
--- branches/ucs4_encoding/src/parrot_debugger.c	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/src/parrot_debugger.c	Mon May 24 21:18:41 2010	(r46974)
@@ -140,8 +140,7 @@
 #include <stdlib.h>
 #include <string.h>
 #include <ctype.h>
-#include "../compilers/imcc/imc.h"
-#include "../compilers/imcc/parser.h"
+#include "parrot/parrot.h"
 #include "parrot/embed.h"
 #include "parrot/debugger.h"
 #include "parrot/runcore_api.h"
@@ -206,34 +205,13 @@
             PackFile_fixup_subs(interp, PBC_MAIN, NULL);
         }
         else {
-            void            *yyscanner;
-            Parrot_PackFile  pf        = PackFile_new(interp, 0);
-            int              pasm_file = 0;
-
-            do_yylex_init(interp, &yyscanner);
+            STRING          *errmsg = NULL;
+            Parrot_PackFile  pf     = PackFile_new(interp, 0);
 
             Parrot_pbc_load(interp, pf);
-
-            IMCC_push_parser_state(interp);
-            IMCC_INFO(interp)->state->file = mem_sys_strdup(filename);
-
-            if (!(imc_yyin_set(fopen(filename, "r"), yyscanner)))    {
-                IMCC_fatal_standalone(interp, EXCEPTION_PIO_ERROR,
-                        "Error reading source file %s.\n",
-                        filename);
-            }
-
-            if (ext && STREQ(ext, ".pasm"))
-                pasm_file = 1;
-
-            emit_open(interp, 1, NULL);
-            IMCC_INFO(interp)->state->pasm_file = pasm_file;
-            yyparse(yyscanner, interp);
-            imc_compile_all_units(interp);
-
-            imc_cleanup(interp, yyscanner);
-
-            fclose(imc_yyin_get(yyscanner));
+            Parrot_compile_file(interp, filename, &errmsg);
+            if (errmsg)
+                Parrot_ex_throw_from_c_args(interp, NULL, 1, "%S", errmsg);
             PackFile_fixup_subs(interp, PBC_POSTCOMP, NULL);
 
             /* load the source for debugger list */

Modified: branches/ucs4_encoding/src/pmc.c
==============================================================================
--- branches/ucs4_encoding/src/pmc.c	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/src/pmc.c	Mon May 24 21:18:41 2010	(r46974)
@@ -80,6 +80,7 @@
 */
 
 PARROT_EXPORT
+PARROT_PURE_FUNCTION
 PARROT_WARN_UNUSED_RESULT
 PARROT_HOT
 INTVAL
@@ -187,8 +188,7 @@
 PARROT_CANNOT_RETURN_NULL
 PARROT_IGNORABLE_RESULT
 PMC *
-Parrot_pmc_reuse(PARROT_INTERP, ARGIN(PMC *pmc), INTVAL new_type,
-    SHIM(UINTVAL flags))
+Parrot_pmc_reuse(PARROT_INTERP, ARGIN(PMC *pmc), INTVAL new_type, SHIM(UINTVAL flags))
 {
     ASSERT_ARGS(Parrot_pmc_reuse)
     pmc = Parrot_pmc_reuse_noinit(interp, pmc, new_type);
@@ -292,8 +292,7 @@
 PARROT_CANNOT_RETURN_NULL
 PARROT_IGNORABLE_RESULT
 PMC *
-Parrot_pmc_reuse_by_class(PARROT_INTERP, ARGMOD(PMC *pmc), ARGIN(PMC *class_),
-    UINTVAL flags)
+Parrot_pmc_reuse_by_class(PARROT_INTERP, ARGMOD(PMC *pmc), ARGIN(PMC *class_), UINTVAL flags)
 {
     ASSERT_ARGS(Parrot_pmc_reuse_by_class)
     const INTVAL   new_type   = PARROT_CLASS(class_)->id;
@@ -495,6 +494,7 @@
 
 PARROT_EXPORT
 PARROT_CANNOT_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
 PMC *
 Parrot_pmc_new_constant_noinit(PARROT_INTERP, INTVAL base_type)
 {

Modified: branches/ucs4_encoding/src/pmc/nci.pmc
==============================================================================
--- branches/ucs4_encoding/src/pmc/nci.pmc	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/src/pmc/nci.pmc	Mon May 24 21:18:41 2010	(r46974)
@@ -169,6 +169,7 @@
 
 pmclass NCI auto_attrs provides invokable {
     /* NCI thunk handling attributes */
+    /* NCI thunk handling attributes */
     ATTR STRING    *signature;              /* The signature. */
     ATTR void      *func;                   /* Function pointer to call. */
     ATTR PMC       *fb_info;                /* Frame-builder info */

Modified: branches/ucs4_encoding/src/runcore/trace.c
==============================================================================
--- branches/ucs4_encoding/src/runcore/trace.c	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/src/runcore/trace.c	Mon May 24 21:18:41 2010	(r46974)
@@ -34,12 +34,18 @@
 /* HEADERIZER BEGIN: static */
 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
 
+PARROT_CANNOT_RETURN_NULL
+static Interp * debugger_or_interp(PARROT_INTERP)
+        __attribute__nonnull__(1);
+
 PARROT_WARN_UNUSED_RESULT
 PARROT_CANNOT_RETURN_NULL
 static STRING* trace_class_name(PARROT_INTERP, ARGIN(const PMC* pmc))
         __attribute__nonnull__(1)
         __attribute__nonnull__(2);
 
+#define ASSERT_ARGS_debugger_or_interp __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
 #define ASSERT_ARGS_trace_class_name __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
     , PARROT_ASSERT_ARG(pmc))
@@ -48,15 +54,17 @@
 
 /*
 
-=item C<Interp * debugger_or_interp(PARROT_INTERP)>
+=item C<static Interp * debugger_or_interp(PARROT_INTERP)>
 
 Get debugger if available
 
 =cut
 */
+
 PARROT_CANNOT_RETURN_NULL
-Interp *
-debugger_or_interp(PARROT_INTERP) {
+static Interp *
+debugger_or_interp(PARROT_INTERP)
+{
     ASSERT_ARGS(debugger_or_interp)
 
     return interp->pdb && interp->pdb->debugger
@@ -231,15 +239,18 @@
             break;
           case KEY_string_FLAG|KEY_register_FLAG:
             {
-            const STRING * const s = REG_STR(interp,
-                 VTABLE_get_integer(interp, key));
-            STRING * const escaped = Parrot_str_escape_truncate(interp, s, 20);
-            if (escaped)
-                len += Parrot_io_eprintf(debugger, "S%vd=\"%Ss\"",
-                    VTABLE_get_integer(interp, key), escaped);
+            const INTVAL keynum = VTABLE_get_integer(interp, key);
+            if (keynum < Parrot_pcc_get_regs_used(interp, CURRENT_CONTEXT(interp), REGNO_STR)) {
+                const STRING * const s = REG_STR(interp, keynum);
+                STRING * const escaped = Parrot_str_escape_truncate(interp, s, 20);
+                if (escaped)
+                    len += Parrot_io_eprintf(debugger, "S%vd=\"%Ss\"",
+                            keynum, escaped);
+                else
+                    len += Parrot_io_eprintf(debugger, "S%vd=\"(null)\"", keynum);
+            }
             else
-                len += Parrot_io_eprintf(debugger, "S%vd=\"(null)\"",
-                        VTABLE_get_integer(interp, key));
+                len += Parrot_io_eprintf(debugger, "**WRONG KEY STRING REG %d**", keynum);
             }
             break;
           case KEY_pmc_FLAG|KEY_register_FLAG:

Modified: branches/ucs4_encoding/src/string/api.c
==============================================================================
--- branches/ucs4_encoding/src/string/api.c	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/src/string/api.c	Mon May 24 21:18:41 2010	(r46974)
@@ -981,6 +981,7 @@
 */
 
 PARROT_EXPORT
+PARROT_PURE_FUNCTION
 PARROT_WARN_UNUSED_RESULT
 INTVAL
 Parrot_str_length(SHIM_INTERP, ARGIN_NULLOK(const STRING *s))

Modified: branches/ucs4_encoding/src/string/charset.c
==============================================================================
--- branches/ucs4_encoding/src/string/charset.c	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/src/string/charset.c	Mon May 24 21:18:41 2010	(r46974)
@@ -150,6 +150,7 @@
 */
 
 PARROT_EXPORT
+PARROT_PURE_FUNCTION
 PARROT_CAN_RETURN_NULL
 PARROT_WARN_UNUSED_RESULT
 const CHARSET *
@@ -228,6 +229,7 @@
 */
 
 PARROT_EXPORT
+PARROT_PURE_FUNCTION
 PARROT_WARN_UNUSED_RESULT
 INTVAL
 Parrot_charset_number_of_str(SHIM_INTERP, ARGIN(const STRING *src))
@@ -255,6 +257,7 @@
 */
 
 PARROT_EXPORT
+PARROT_PURE_FUNCTION
 PARROT_CAN_RETURN_NULL
 PARROT_WARN_UNUSED_RESULT
 STRING *
@@ -278,6 +281,7 @@
 */
 
 PARROT_EXPORT
+PARROT_PURE_FUNCTION
 PARROT_CAN_RETURN_NULL
 PARROT_WARN_UNUSED_RESULT
 const CHARSET *
@@ -302,6 +306,7 @@
 */
 
 PARROT_EXPORT
+PARROT_PURE_FUNCTION
 PARROT_CAN_RETURN_NULL
 PARROT_WARN_UNUSED_RESULT
 const char *
@@ -541,6 +546,7 @@
 */
 
 PARROT_EXPORT
+PARROT_PURE_FUNCTION
 PARROT_WARN_UNUSED_RESULT
 PARROT_CAN_RETURN_NULL
 const CHARSET *
@@ -562,6 +568,7 @@
 */
 
 PARROT_EXPORT
+PARROT_PURE_FUNCTION
 PARROT_WARN_UNUSED_RESULT
 PARROT_CAN_RETURN_NULL
 charset_converter_t
@@ -574,7 +581,7 @@
 
     for (i = 0; i < n; ++i) {
         if (lhs == all_charsets->set[i].charset) {
-            One_charset * const left = all_charsets->set + i;
+            const One_charset * const left = all_charsets->set + i;
             const int nc = left->n_converters;
             int j;
 

Modified: branches/ucs4_encoding/t/codingstd/linelength.t
==============================================================================
--- branches/ucs4_encoding/t/codingstd/linelength.t	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/t/codingstd/linelength.t	Mon May 24 21:18:41 2010	(r46974)
@@ -125,6 +125,8 @@
 compilers/pirc/macro/macroparser.h
 compilers/pirc/src/hdocprep.l
 compilers/pirc/src/hdocprep.c
+# generated files
+src/ops/core_ops.c
 # generated by tools/dev/nci_thunk_gen.pir
 src/nci/core_thunks.c
 src/nci/extra_thunks.c

Modified: branches/ucs4_encoding/t/codingstd/perlcritic.t
==============================================================================
--- branches/ucs4_encoding/t/codingstd/perlcritic.t	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/t/codingstd/perlcritic.t	Mon May 24 21:18:41 2010	(r46974)
@@ -1,5 +1,5 @@
 #! perl
-# Copyright (C) 2008-2009, Parrot Foundation.
+# Copyright (C) 2008-2010, Parrot Foundation.
 # $Id$
 
 =head1 NAME
@@ -85,6 +85,7 @@
     @files = grep {! m/$filter_languages/}
              map  { $_->path }
              grep { $_->read !~ m/use v6;/ }
+             grep { $_->read !~ m/#! nqp/ }
              $dist->get_perl_language_files();
 }
 else {

Modified: branches/ucs4_encoding/t/compilers/imcc/syn/regressions.t
==============================================================================
--- branches/ucs4_encoding/t/compilers/imcc/syn/regressions.t	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/t/compilers/imcc/syn/regressions.t	Mon May 24 21:18:41 2010	(r46974)
@@ -6,7 +6,7 @@
 use warnings;
 use lib qw( . lib ../lib ../../lib );
 use Test::More;
-use Parrot::Test tests => 21;
+use Parrot::Test tests => 22;
 
 pir_error_output_like( <<'CODE', <<'OUT', 'invalid get_results syntax');
 .sub main :main
@@ -37,6 +37,33 @@
 ok 2 - caught div_n_nc_nc exception
 OUT
 
+pir_output_is( <<'CODE', <<'OUT', 'fold symbolic constants (TT #1652)');
+.sub main :main
+    .const int SECONDS_PER_MINUTE = 60
+    $I0 = 30 * SECONDS_PER_MINUTE
+    say $I0
+
+    .const num DAYS_PER_YEAR = 365.24e0
+    $N0 = DAYS_PER_YEAR * 2.96460137564761618e-03
+    'printf'("%f\n", $N0)
+
+    .const string HI = "Hello "
+    $S0 = concat HI, "World!"
+    say $S0
+.end
+
+.sub 'printf'
+    .param string fmt
+    .param pmc data :slurpy
+    $S0 = sprintf fmt, data
+    print $S0
+.end
+CODE
+1800
+1.082791
+Hello World!
+OUT
+
 pir_output_is( <<'CODE', <<'OUT', 'comments before .param(TT #1035)');
 .sub main :main
   comments(1,2)

Copied: branches/ucs4_encoding/t/compilers/opsc/01-parse.t (from r46972, trunk/t/compilers/opsc/01-parse.t)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/ucs4_encoding/t/compilers/opsc/01-parse.t	Mon May 24 21:18:41 2010	(r46974, copy of r46972, trunk/t/compilers/opsc/01-parse.t)
@@ -0,0 +1,205 @@
+#! parrot
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+.include 't/compilers/opsc/common.pir'
+
+.sub 'main' :main
+
+    .include 'test_more.pir'
+    load_bytecode 'opsc.pbc'
+
+    plan(12)
+
+    test_parse_basic_op()
+    test_parse_many_ops()
+    test_parse_header()
+    test_parse_params()
+    test_parse_flags()
+.end
+
+.sub "test_parse_basic_op"
+    .local string buf
+    .local pmc res
+
+    buf = <<"END"
+inline op noop() {
+}
+END
+
+    "_parse_buffer"(buf)
+    is(1, 1, "Simple noop parsed")
+
+    buf = <<"END"
+inline op noop() {
+    foo
+}
+END
+
+    "_parse_buffer"(buf)
+    is(1, 1, "noop body parsed")
+
+    buf = <<"END"
+inline op noop() {
+    foo {
+        bar{};
+    }
+}
+END
+
+    "_parse_buffer"(buf)
+    is(1, 1, "noop nested body parsed")
+
+
+.end
+
+.sub "test_parse_many_ops"
+    .local string buf
+    .local pmc res
+
+    buf = <<"END"
+
+
+=item noop
+
+asdfs
+
+=cut
+
+inline op noop() {
+}
+
+=item halt
+
+asdsad
+
+=cut
+
+inline op halt() {
+}
+
+=head2
+
+ads
+
+=cut
+
+inline op rule_the_world() {
+}
+
+
+END
+
+    res = "_parse_buffer"(buf)
+    is(1, 1, "Multiple ops parsed")
+
+    $I0 = res['body';'op']
+    is($I0, 3, "...and we have 3 ops")
+
+.end
+
+# test parsing ops file header.
+.sub "test_parse_header"
+    .local string buf
+    .local pmc res
+
+    buf = <<"END"
+/*
+ * $Id$
+** core.ops
+*/
+
+BEGIN_OPS_PREAMBLE
+
+#include "parrot/dynext.h"
+#include "parrot/embed.h"
+#include "parrot/runcore_api.h"
+#include "../pmc/pmc_continuation.h"
+#include "../pmc/pmc_parrotlibrary.h"
+
+END_OPS_PREAMBLE
+
+=head1 NAME
+
+core.ops - Core Opcodes
+
+=cut
+
+=head1 DESCRIPTION
+
+Parrot's core library of ops.
+
+Core operations are primarily flow control and interpreter
+introspection.
+
+=cut
+
+inline op noop() {
+}
+
+END
+
+    res = "_parse_buffer"(buf)
+    is(1, 1, "Header parsed")
+
+    $I0 = res['body';'op']
+    is($I0, 1, "...and we have our op")
+
+.end
+
+.sub "test_parse_params"
+    .local string buf
+    .local pmc res
+
+    buf = <<"END"
+
+inline op reserved(inconst INT) {
+    /* reserve 1 entries */
+}
+
+END
+
+    "_parse_buffer"(buf)
+    is(1, 1, "Op with single param parsed")
+
+    buf = <<"END"
+
+inline op add(out INT, inconst INT, inconst INT) {
+}
+
+END
+
+    "_parse_buffer"(buf)
+    is(1, 1, "Op with multiple param parsed")
+
+.end
+
+.sub "test_parse_flags"
+    .local string buf
+    .local pmc res
+
+    buf = <<"END"
+
+inline op hcf() :flow :deprecated {
+}
+
+END
+
+    res = "_parse_buffer"(buf)
+    is(1, 1, "Op with flags parsed")
+
+    .local pmc op
+    op = res['body';'op';0;'op_flag']
+    $S0 = op[0]
+    is($S0, ":flow ", "First flag parsed")
+    $S0 = op[1]
+    is($S0, ":deprecated ", "Second flag parsed")
+.end
+
+# Don't forget to update plan!
+
+# Local Variables:
+#   mode: pir
+#   fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:

Copied: branches/ucs4_encoding/t/compilers/opsc/02-parse-all-ops.t (from r46972, trunk/t/compilers/opsc/02-parse-all-ops.t)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/ucs4_encoding/t/compilers/opsc/02-parse-all-ops.t	Mon May 24 21:18:41 2010	(r46974, copy of r46972, trunk/t/compilers/opsc/02-parse-all-ops.t)
@@ -0,0 +1,90 @@
+#! parrot
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+.include 't/compilers/opsc/common.pir'
+
+.sub 'main' :main
+    .include 'test_more.pir'
+    load_bytecode 'opsc.pbc'
+
+    .local int total
+    .local pmc os, all_files, ops_files, dynops_files
+
+    all_files    = new ['ResizablePMCArray']
+    ops_files    = get_ops_from_dir('./src/ops/')
+    dynops_files = get_ops_from_dir('./src/dynoplibs/')
+
+    #prepend the arrays to all_files
+    splice all_files, ops_files, 0, 0
+    splice all_files, dynops_files, 0, 0
+
+    total = elements all_files
+    all_files.'sort'()
+
+    plan(total)
+    test_parse(all_files)
+.end
+
+.sub get_ops_from_dir
+    .param string dir
+    .local pmc files, filtered_files, os, it
+
+    $P0            = loadlib 'os'
+    os             = new ['OS']
+    files          = os.'readdir'(dir)
+    filtered_files = new ['ResizablePMCArray']
+
+    .local int len, is_pmc, total
+    .local string filename, filename_end
+
+    #filter out anything that doesn't end in .ops
+    it = iter files
+  iter_start:
+    unless it goto iter_done
+    filename = shift it
+
+    len = length filename
+    unless len > 4 goto iter_start
+
+    filename_end = substr filename, -4
+    is_pmc = iseq filename_end, ".ops"
+    unless is_pmc goto iter_start
+
+    filename = dir . filename
+    push filtered_files, filename
+    goto iter_start
+
+  iter_done:
+    .return (filtered_files)
+.end
+
+.sub 'test_parse'
+    .param pmc list
+    .local int i
+    .local pmc it
+
+    it = iter list
+  iter_start:
+    unless it goto iter_done
+    $S0 = shift it
+    push_eh fail
+    _parse_one_file($S0)
+    pop_eh
+    ok(1, $S0)
+    goto iter_start
+  fail:
+    ok(0, $S0)
+    goto iter_start
+
+  iter_done:
+
+.end
+
+# Don't forget to update plan!
+
+# Local Variables:
+#   mode: pir
+#   fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:

Copied: branches/ucs4_encoding/t/compilers/opsc/03-past.t (from r46972, trunk/t/compilers/opsc/03-past.t)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/ucs4_encoding/t/compilers/opsc/03-past.t	Mon May 24 21:18:41 2010	(r46974, copy of r46972, trunk/t/compilers/opsc/03-past.t)
@@ -0,0 +1,110 @@
+#! ./parrot-nqp
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+
+# "Comprehensive" test for creating PAST for op.
+# Parse single op and check various aspects of created PAST.
+
+pir::load_bytecode('opsc.pbc');
+pir::load_bytecode('dumper.pbc');
+
+plan(26);
+
+my $buf := q|
+BEGIN_OPS_PREAMBLE
+/*
+THE HEADER
+*/
+END_OPS_PREAMBLE
+
+op bar() {
+    # Nothing here
+}
+
+inline op foo(out INT, in PMC, inconst NUM) :flow :deprecated {
+    foo # We don't handle anything in C<body> during parse/past.
+}
+
+|;
+my $compiler := pir::compreg__Ps('Ops');
+
+my $past := $compiler.compile($buf, target => 'past');
+
+ok(1, "PAST::Node created");
+
+my $preambles := $past<preamble>;
+
+ok(~$preambles[0] ~~ /HEADER/, 'Header parsed');
+
+my @ops := @($past<ops>);
+# One "bar" and two "foo"
+ok(+ at ops ==  3, 'We have 3 ops');
+
+my $op := @ops[1];
+ok($op.name == 'foo', "Name parsed");
+
+my %flags := $op<flags>;
+ok(%flags<flow>, ':flow flag parsed');
+ok(%flags<deprecated>, ':deprecated flag parsed');
+ok(%flags == 2, "And there are only 2 flags");
+
+# Check op params
+my @args := $op<args>;
+ok(+ at args == 3, "Got 3 parameters");
+
+my $arg;
+
+$arg := @args[0];
+ok($arg<direction> eq 'out', 'First direction is correct');
+ok($arg<type> eq 'INT', 'First type is correct');
+
+$arg := @args[1];
+ok($arg<direction> eq 'in', 'Second direction is correct');
+ok($arg<type> eq 'PMC', 'Second type is correct');
+
+$arg := @args[2];
+ok($arg<direction> eq 'inconst', 'Third direction is correct');
+ok($arg<type> eq 'NUM', 'Third type is correct');
+
+# Check normalization
+ at args := $op<normalized_args>;
+$arg := @args[0];
+ok($arg<direction> eq 'o', 'First direction is correct');
+ok($arg<type> eq 'i', 'First type is correct');
+ok(!($arg<variant>), 'First arg without variant');
+
+$arg := @args[1];
+ok($arg<direction> eq 'i', 'Second direction is correct');
+ok($arg<type> eq 'p', 'Second type is correct');
+ok($arg<variant> eq 'pc', 'Second variant is correct');
+
+$arg := @args[2];
+ok($arg<direction> eq 'i', 'Third direction is correct');
+ok($arg<type> eq 'nc', 'Third type is correct');
+ok(!($arg<variant>), 'Third arg without variant');
+
+ok( ($op.arg_types).join('_') eq 'i_p_nc', "First variant correct");
+
+
+# Second created op should have _pc_
+$op := @ops[2];
+ok( $op.arg_types.join('_') eq 'i_pc_nc', "Second variant correct");
+
+# Check body munching.
+$op := @ops[0];
+my $goto_offset := 0;
+for @($op) {
+    $goto_offset := $goto_offset || $_<name> eq 'goto_offset';
+}
+ok( $goto_offset, "goto NEXT appended for non :flow ops");
+
+
+# Don't forget to update plan!
+
+# Local Variables:
+#   mode: cperl
+#   cperl-indent-level: 4
+#   fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=perl6:

Copied: branches/ucs4_encoding/t/compilers/opsc/04-op.t (from r46972, trunk/t/compilers/opsc/04-op.t)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/ucs4_encoding/t/compilers/opsc/04-op.t	Mon May 24 21:18:41 2010	(r46974, copy of r46972, trunk/t/compilers/opsc/04-op.t)
@@ -0,0 +1,36 @@
+#!./parrot-nqp
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+# Checking Ops::Op
+
+pir::load_bytecode("opsc.pbc");
+
+plan(7);
+
+my $op := Ops::Op.new(
+    code => 42,
+    name => 'set',
+    type => 'inline',
+    args => <foo bar baz>,
+    flags => hash(),
+    arg_types => <i i ic>,
+);
+
+ok( 1, "Op created");
+
+ok( $op.code == 42,         "... with proper code");
+ok( $op.name eq 'set',      "... with proper name");
+ok( $op.type eq 'inline',   "... with proper type");
+ok( +$op.arg_types == 3,    "... with proper arg_types");
+say('# ' ~ $op.arg_types);
+
+ok( $op.full_name eq 'set_i_i_ic', "full_name is correct");
+
+$op := Ops::Op.new(
+    name => 'set',
+    type => 'inline',
+);
+ok( $op.full_name eq 'set', "Argless op's full_name is correct");
+
+# vim: expandtab shiftwidth=4 ft=perl6:

Copied: branches/ucs4_encoding/t/compilers/opsc/05-oplib.t (from r46972, trunk/t/compilers/opsc/05-oplib.t)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/ucs4_encoding/t/compilers/opsc/05-oplib.t	Mon May 24 21:18:41 2010	(r46974, copy of r46972, trunk/t/compilers/opsc/05-oplib.t)
@@ -0,0 +1,28 @@
+#!./parrot-nqp
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+# Checking for OpLib num and skip files parsing.
+
+pir::load_bytecode("opsc.pbc");
+
+plan(5);
+
+my $lib := Ops::OpLib.new(
+    :num_file('src/ops/ops.num'),
+    :skip_file('src/ops/ops.skip'),
+);
+
+# It's 1200 currently. But testing for exact match isn't nessary.
+ok( $lib.max_op_num > 1000, "ops.num file parsed");
+say('# ' ~ $lib.max_op_num);
+
+# Check couple random ops.
+ok( $lib.op_num_table<end> == 0, "'end' has code 0");
+ok( $lib.op_num_table<set_addr_p_i> != 42, "'set_addr_p_i' have non 0 code");
+
+ok( $lib.op_skip_table<abs_i_ic>,       "'abs_i_ic' in skiptable");
+ok( $lib.op_skip_table<ne_nc_nc_ic>,    "'ne_nc_nc_ic' in skiptable");
+#_dumper($lib.skiptable);
+
+# vim: expandtab shiftwidth=4 ft=perl6:

Copied: branches/ucs4_encoding/t/compilers/opsc/06-opsfile.t (from r46972, trunk/t/compilers/opsc/06-opsfile.t)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/ucs4_encoding/t/compilers/opsc/06-opsfile.t	Mon May 24 21:18:41 2010	(r46974, copy of r46972, trunk/t/compilers/opsc/06-opsfile.t)
@@ -0,0 +1,45 @@
+#!./parrot-nqp
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+pir::load_bytecode("opsc.pbc");
+pir::load_bytecode("nqp-setting.pbc");
+
+plan(7);
+
+my $oplib := Ops::OpLib.new;
+my @files := <
+    src/ops/core.ops
+    src/ops/math.ops
+>;
+
+my $f := Ops::File.new(:oplib($oplib), |@files, :core(1));
+
+my @ops := $f.ops;
+# 84 core
+# 116 math
+# We can generate more than 1 Ops::Op per op due args expansion.
+say( "# Parsed " ~ + at ops);
+# There is more than 300 ops in this 2 files.
+# Feel free to update number if you change them.
+ok(+ at ops == 306, "Ops parsed correctly");
+say('# ' ~ + at ops);
+
+my $op := @ops[0];
+#_dumper($op);
+# First op should be C<end> and has code 0.
+ok($op.name eq 'end',   "First op is end");
+ok($op<code> == 0,      "... with code 0");
+
+$op := @ops[(+ at ops)-1];
+ok($op.name eq 'tanh',  "Last op is tanh");
+say('# ' ~ $op.name);
+ok($op<code> > 84 + 116,    "... with non zero code");
+
+my $version := join(' ', |$f.version);
+ok( $version ~~ /^\d+ \s \d+ \s \d+$/, "Version parsed");
+say("# $version");
+
+ok( $f.preamble ~~ /pmc_parrotlibrary.h/, "Preamble preserved");
+
+# vim: expandtab shiftwidth=4 ft=perl6:

Copied: branches/ucs4_encoding/t/compilers/opsc/07-emitter.t (from r46972, trunk/t/compilers/opsc/07-emitter.t)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/ucs4_encoding/t/compilers/opsc/07-emitter.t	Mon May 24 21:18:41 2010	(r46974, copy of r46972, trunk/t/compilers/opsc/07-emitter.t)
@@ -0,0 +1,129 @@
+#! ./parrot-nqp
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+pir::load_bytecode("opsc.pbc");
+
+plan(22);
+
+my $trans := Ops::Trans::C.new();
+
+my @files := <
+    src/ops/io.ops
+    src/ops/sys.ops
+    src/ops/cmp.ops
+>;
+
+my $lib := Ops::OpLib.new();
+my $emitter := Ops::Emitter.new(
+    :ops_file(Ops::File.new(
+        :oplib($lib),
+        :core(1),
+        |@files)
+    ),
+    :trans($trans),
+    :script('ops2c'),
+    :flags(
+        hash( dir => 'tmp/', core => 1 )
+    ),
+);
+
+ok( $emitter, "Emitter created");
+ok( $emitter<include> eq 'parrot/oplib/core_ops.h', 'Include is correct');
+say('# ' ~ $emitter<include>);
+ok( $emitter<func_header> ~~ /^tmp/, 'header file in tmp');
+say('# ' ~ $emitter<func_header>);
+
+#$emitter.print_c_header_file();
+
+my $fh := pir::new__Ps('StringHandle');
+$fh.open('header.h', 'w');
+$emitter.emit_c_op_func_header($fh);
+
+$fh.close();
+my $header := $fh.readall();
+
+ok($header ~~ /define \s PARROT_OPLIB_CORE_OPS_H_GUARD/, 'Guard generated');
+ok($header ~~ /endif/, 'Close guard generated');
+ok($header ~~ /DO \s NOT \s EDIT \s THIS \s FILE/, 'Preamble generated');
+ok($header ~~ /Parrot_DynOp_core_ \d+ _ \d+ _ \d+/, '... and contains init_func');
+ok($header ~~ /Parrot_sysinfo_s_i/, 'We have proper names of ops functions');
+
+# Testing C emitting.
+#$emitter.print_c_source_file();
+
+$fh := pir::new__Ps('StringHandle');
+$fh.open('core.c', 'w');
+$emitter.emit_c_source_file($fh);
+
+$fh.close();
+my $source := $fh.readall();
+
+ok($source ~~ /DO \s NOT \s EDIT \s THIS \s FILE/, 'Preamble generated');
+ok($source ~~ /Parrot_pcc_get_constants/, 'defines from Trans::C generated');
+ok($source ~~ /io_private.h/, 'Preamble from io.ops preserved');
+
+ok($source ~~ /static \s int \s get_op/, 'Trans::C preamble generated');
+
+ok($source ~~ /PARROT_FUNCTION_CORE/, 'Trans::C core_type preserved');
+ok($source ~~ /static \s size_t \s hash_str/, 'Trans::C op_lookup preserved');
+
+ok($source ~~ /'PREG(1)'/, 'Trans::C arg translation works');
+ok($source ~! /'OP_SIZE'/, 'Trans::C translates OP_SIZE');
+
+# "eq"
+ok($source ~~ /'0,' \s '0,' \s '1'/, "Labels handled correctly");
+
+my $op_body := '
+inline op do_stuff(invar PMC)
+{
+    restart ADDRESS(234);
+}';
+my $new_body := translate_op_body($trans, $op_body);
+my $restart_addr_ok := $new_body ~~ /'return' \s '(' 'opcode_t' \s '*' ')' \s? '234'/;
+ok($restart_addr_ok, "restart ADDRESS() translated ok");
+
+$op_body := '
+inline op branch(in LABEL) :base_loop :flow {
+    goto OFFSET($1);
+}';
+$new_body := translate_op_body($trans, $op_body);
+$restart_addr_ok := $new_body ~~ /'return (opcode_t *)cur_opcode + IREG(1);'/;
+ok($restart_addr_ok, "goto OFFSET() and \$1 translated ok");
+ok($new_body ~~ /'PARROT_JUMP_RELATIVE'/, "jump flags generated");
+
+$op_body := '
+inline op thingy(in PMC) {
+    opcode * next = expr NEXT();
+}';
+$new_body := translate_op_body($trans, $op_body);
+$restart_addr_ok := $new_body ~~ /'cur_opcode + 2;'/;
+ok($restart_addr_ok, "expr NEXT() translated ok");
+
+$op_body := '
+inline op runinterp(in PMC) {
+}';
+$new_body := translate_op_body($trans, $op_body);
+$restart_addr_ok := $new_body ~~ /'PARROT_JUMP_RELATIVE'/;
+ok($restart_addr_ok, "runinterp has PARROT_JUMP_RELATIVE");
+
+#say($source);
+
+sub translate_op_body($trans, $body) {
+    my $file  := Ops::File.new_str(
+        :oplib($lib), $body);
+    my $emitter := Ops::Emitter.new(
+        :ops_file($file),
+        :trans($trans),
+        :script("opsc"),
+        :flags( hash(core => '1') )
+    );
+
+    my $sh := pir::new__Ps('StringHandle');
+    $sh.open('your_bank_account_information.txt', 'w');
+    $emitter.emit_c_source_file($sh);
+    $sh.close();
+    $sh.readall();
+}
+
+# vim: expandtab shiftwidth=4 ft=perl6:

Copied: branches/ucs4_encoding/t/compilers/opsc/common.pir (from r46972, trunk/t/compilers/opsc/common.pir)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/ucs4_encoding/t/compilers/opsc/common.pir	Mon May 24 21:18:41 2010	(r46974, copy of r46972, trunk/t/compilers/opsc/common.pir)
@@ -0,0 +1,39 @@
+#! parrot
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+=head1 COMMON FUNCTIONS FOR TESTING
+
+=cut
+
+.sub '_parse_buffer'
+    .param string buffer
+
+    .local pmc compiler
+    compiler = compreg 'Ops'
+    .tailcall compiler.'parse'(buffer, 'target'=>'parse')
+.end
+
+.sub '_parse_one_file'
+    .param string filename
+    .local string buf
+
+    buf = '_slurp'(filename)
+    .tailcall '_parse_buffer'(buf)
+.end
+
+
+.sub '_slurp'
+    .param string file
+    .local pmc pio
+    pio  = open file
+    $S0  = pio.'readall'()
+    close pio
+    .return ($S0)
+.end
+
+# Local Variables:
+#   mode: pir
+#   fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:

Modified: branches/ucs4_encoding/t/harness.pir
==============================================================================
--- branches/ucs4_encoding/t/harness.pir	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/t/harness.pir	Mon May 24 21:18:41 2010	(r46974)
@@ -297,7 +297,7 @@
     $I1 = index $S0, '/branches/'
     unless $I1 >= 0 goto L2
     $I1 += 10
-    $I2 = find_not_cclass .CCLASS_WHITESPACE, $S0, $I1, $I0
+    $I2 = find_cclass .CCLASS_WHITESPACE, $S0, $I1, $I0
     $I3 = $I2 - $I1
     $S1 = substr $S0, $I1, $I3
   L2:
@@ -361,10 +361,11 @@
     set $P0, 1
     $P0[0] = 'parrot_test_run.tar.gz'
     push contents, $P0
-    load_bytecode 'LWP.pir'
+    load_bytecode 'LWP/UserAgent.pir'
     .const string url = 'http://smolder.plusthree.com/app/projects/process_add_report/8'
     .local pmc ua, response
     ua = new ['LWP';'UserAgent']
+    ua.'env_proxy'()
     ua.'show_progress'(1)
     response = ua.'post'(url, contents :flat, 'form-data' :named('Content-Type'), 'close' :named('Connection'))
     $I0 = response.'code'()

Modified: branches/ucs4_encoding/t/library/lwp.t
==============================================================================
--- branches/ucs4_encoding/t/library/lwp.t	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/t/library/lwp.t	Mon May 24 21:18:41 2010	(r46974)
@@ -19,16 +19,18 @@
 .sub 'main' :main
     .include 'test_more.pir'
 
-    load_bytecode 'LWP.pir'
+    load_bytecode 'LWP/UserAgent.pir'
     load_bytecode 'osutils.pbc'
 
-    plan(38)
+    plan(48)
     test_new()
     test_unknown_protocol()
     test_bad_request()
     test_file_not_found()
     test_file()
+    test_file_head()
     test_file_post_delete()
+    test_file_proxy()
 .end
 
 .sub 'test_new'
@@ -127,6 +129,28 @@
     ok($I0, "Last-Modified contains GMT")
 .end
 
+.sub 'test_file_head'
+    .local pmc ua, response
+    ua = new ['LWP';'UserAgent']
+    response = ua.'head'('file:t/library/lwp.t')
+    $I0 = isa response, ['HTTP';'Response']
+    ok($I0, "HEAD file:t/library/lwp.t")
+    $I0 = response.'code'()
+    is($I0, 200, "code")
+    $I0 = response.'is_success'()
+    ok($I0, "is success")
+    $S0 = response.'content'()
+    is($S0, '', "no content")
+    $I0 = response.'get_header'('Content-Length')
+    $I0 = $I0 > 2000
+    ok($I0, "Content-Length")
+    $S0 = response.'get_header'('Last-Modified')
+    diag($S0)
+    $I0 = index $S0, 'GMT'
+    $I0 = $I0 > 0
+    ok($I0, "Last-Modified contains GMT")
+.end
+
 .sub 'test_file_post_delete'
     .const string data = "the file contains some text"
     .const string filename = 't/library/file.txt'
@@ -138,7 +162,7 @@
 
     response = ua.'put'(url, data)
     $I0 = isa response, ['HTTP';'Response']
-    ok($I0, "POST file:t/library/file.txt")
+    ok($I0, "PUT file:t/library/file.txt")
     $I0 = response.'code'()
     is($I0, 200, "code")
     $I0 = response.'is_success'()
@@ -165,6 +189,21 @@
     ok($I0, "is error")
 .end
 
+.sub 'test_file_proxy'
+    .local pmc ua, response
+    ua = new ['LWP';'UserAgent']
+    ua.'proxy'('file', 'file://proxy.net')
+    response = ua.'get'('file:t/library/lwp.t')
+    $I0 = isa response, ['HTTP';'Response']
+    ok($I0, "GET file:t/library/lwp.t via a proxy")
+    $I0 = response.'code'()
+    is($I0, 400, "code")
+    $S0 = response.'message'()
+    is($S0, "You can not proxy through the filesystem", "message")
+    $I0 = response.'is_error'()
+    ok($I0, "is error")
+.end
+
 # Local Variables:
 #   mode: pir
 #   fill-column: 100

Modified: branches/ucs4_encoding/t/library/uri.t
==============================================================================
--- branches/ucs4_encoding/t/library/uri.t	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/t/library/uri.t	Mon May 24 21:18:41 2010	(r46974)
@@ -21,7 +21,7 @@
 
     load_bytecode 'URI.pir'
 
-    plan(53)
+    plan(60)
     test_new()
     test_uri()
     test_file()
@@ -158,6 +158,21 @@
     is($S0, '127.0.0.1', 'host')
     $S0 = $P0.'port'()
     is($S0, '8080', 'port')
+
+    $P0 = factory('http://user:passwd@proxy.net:8000/path')
+    ok($P0, "http://user:passwd@proxy.net:8000/path")
+    $I0 = isa $P0, ['URI';'http']
+    ok($I0, "isa ['URI';'http']")
+    $S0 = $P0.'scheme'()
+    is($S0, 'http', "scheme")
+    $S0 = $P0.'authority'()
+    is($S0, 'user:passwd at proxy.net:8000', 'authority')
+    $S0 = $P0.'userinfo'()
+    is($S0, 'user:passwd', 'userinfo')
+    $S0 = $P0.'host'()
+    is($S0, 'proxy.net', 'host')
+    $S0 = $P0.'port'()
+    is($S0, '8000', 'port')
 .end
 
 .sub 'test_https'

Deleted: branches/ucs4_encoding/t/op/01-parse_ops.t
==============================================================================
--- branches/ucs4_encoding/t/op/01-parse_ops.t	Mon May 24 21:18:41 2010	(r46973)
+++ /dev/null	00:00:00 1970	(deleted)
@@ -1,105 +0,0 @@
-#! perl
-# Copyright (C) 2006-2008, Parrot Foundation.
-# $Id$
-
-use strict;
-use warnings;
-use lib qw( . lib ../lib ../../lib );
-use Parrot::Test;
-use Parrot::Op;
-use Parrot::OpLib::core;
-
-=head1 NAME
-
-t/op/01-parse_ops.t - Parse core opcodes
-
-=head1 SYNOPSIS
-
-    % prove t/op/01-parse_ops.t
-
-=head1 DESCRIPTION
-
-Tests that all parrot opcodes are parsed properly.
-
-=cut
-
-my $object_map = {
-    i   => q<I0>,
-    ic  => q<42>,
-    k   => q<P0>,
-    kc  => q<[ 'foo' ; 'bar' ]>,
-    kic => q<[ 1 ]>,
-    ks  => q<P0>,
-    ksc => q<[ 'foo' ; 'bar' ]>,
-    n   => q<N0>,
-    nc  => q<13.013>,
-    p   => q<P0>,
-    pc  => undef,                  ## TT #1158 figure out how to test this type
-    s   => q<S0>,
-    sc  => q<'foo'>,
-};
-
-my %parse_errors = map { $_ => 1 } qw(
-    defined
-    delete
-    eq
-    exists
-    le
-    lt
-    ne
-    set
-    slice
-    yield
-);
-
-my %cmds;
-
-## extract the register types from each opcode
-for my $op (@$Parrot::OpLib::core::ops) {
-    my @regtypes = $op->arg_types;
-
-    ## for now, avoid opcodes with regtypes i do not know how to represent
-    next unless @regtypes == grep { defined $$object_map{$_} } @regtypes;
-
-    ## extract the basename of the opcode
-    my $basename = $op->name;
-
-    ## create the argument list
-    my $args = join ', ' => map $$object_map{$_}, @regtypes;
-
-    ## store the test commands
-    $cmds{$basename}{ $basename . ' ' . $args }++;
-}
-
-$ENV{TEST_PROG_ARGS} ||= '';
-
-plan skip_all => 'IMCC cannot do parse-only with JIT enabled'
-    if $ENV{TEST_PROG_ARGS} =~ /--runcore=jit/;
-
-plan skip_all => 'IMCC cannot do parse-only with switched core'
-    if $ENV{TEST_PROG_ARGS} =~ /--runcore=switch/;
-
-plan tests => scalar keys %cmds;
-
-for my $cmd ( sort keys %cmds ) {
-    my @args = (
-        ## retrieve the test commands, and trick IMCC to parse only
-        join( $/ => 'end', sort( keys %{ $cmds{$cmd} } ), '' ),
-        qr/^(?!error:imcc:syntax error,)/,
-        "parsing: $cmd"
-    );
-
-    if ( $parse_errors{$cmd} ) {
-        pasm_error_output_like(@args);
-    }
-    else {
-        pasm_output_like(@args);
-    }
-}
-
-# Local Variables:
-#   mode: cperl
-#   cperl-indent-level: 4
-#   fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4:

Modified: branches/ucs4_encoding/t/op/stringu.t
==============================================================================
--- branches/ucs4_encoding/t/op/stringu.t	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/t/op/stringu.t	Mon May 24 21:18:41 2010	(r46974)
@@ -6,7 +6,7 @@
 use warnings;
 use lib qw( . lib ../lib ../../lib );
 use Test::More;
-use Parrot::Test tests => 33;
+use Parrot::Test tests => 34;
 use Parrot::Config;
 
 =head1 NAME
@@ -574,8 +574,23 @@
 equal
 OUT
 
+pir_output_is( <<'CODE', <<'OUT', 'join mixed encodings' );
+.sub 'main'
+    new $P0, 'ResizablePMCArray'
+    push $P0, ascii:"a"
+    push $P0, unicode:"\x{e1}" # a acute
+    push $P0, iso-8859-1:"\x{e1}" # a acute
+    join $S0, "", $P0
+    $I0 = length $S0
+    say $I0
+.end
+CODE
+3
+OUT
+
 SKIP: {
     skip( 'no ICU lib', 1 ) unless $PConfig{has_icu};
+
 pir_output_is( <<'CODE', <<'OUT', 'find_codepoint opcode (experimental)');
 .sub 'main'
     $I1 = find_codepoint 'THISISNOTTHENAMEOFNOTHING'

Modified: branches/ucs4_encoding/t/pmc/resizablestringarray.t
==============================================================================
--- branches/ucs4_encoding/t/pmc/resizablestringarray.t	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/t/pmc/resizablestringarray.t	Mon May 24 21:18:41 2010	(r46974)
@@ -23,7 +23,7 @@
     .include 'test_more.pir'
 
     # set a test plan
-    plan(261)
+    plan(263)
 
     'size/resize'()
     'clone'()
@@ -1343,6 +1343,7 @@
     .SpliceMadeEasy({ splice $P1, $P2, 0, 2 }, "ABCDE345", "splice, replace at beginning")
     .SpliceMadeEasy({ splice $P1, $P2, 2, 2 }, "12ABCDE5", "splice, replace in middle")
     .SpliceMadeEasy({ splice $P1, $P2, 3, 2 }, "123ABCDE", "splice, replace at end")
+    .SpliceMadeEasy({ splice $P1, $P2, -3, 2 }, "12ABCDE5", "splice, replace in middle start from end")
     .SpliceMadeEasy({
         $P2 = new ['ResizableStringArray']
         splice $P1, $P2, 2, 2
@@ -1355,6 +1356,20 @@
 
     $P1 = new ['ResizableStringArray']
     $P1[0] = "1"
+    $P2 = new ['ResizableStringArray']
+    $P2[0] = 'A'
+    $I0 = 0
+    push_eh handle_negtoobig
+    splice $P1, $P2, -10, 1
+    goto after_negtoobig
+handle_negtoobig:
+    inc $I0
+after_negtoobig:
+    pop_eh
+    is($I0, 1, 'splice, negative offset too long throws')
+
+    $P1 = new ['ResizableStringArray']
+    $P1[0] = "1"
     $P1[1] = "2"
     $P1[2] = "3"
     $P1[3] = "4"

Modified: branches/ucs4_encoding/tools/build/ops2c.pl
==============================================================================
--- branches/ucs4_encoding/tools/build/ops2c.pl	Mon May 24 21:06:39 2010	(r46973)
+++ branches/ucs4_encoding/tools/build/ops2c.pl	Mon May 24 21:18:41 2010	(r46974)
@@ -1,149 +1,20 @@
 #! perl
-# Copyright (C) 2001-2008, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 
-use warnings;
 use strict;
+use warnings;
+
 use FindBin qw($Bin);
 use lib "$Bin/../lib";    # install location
-use lib "$Bin/../../lib"; # build location
-use Parrot::Ops2c::Auxiliary qw( Usage getoptions );
-use Parrot::Ops2c::Utils ();
-
-my $flagref = getoptions();
-if ( ( not defined $flagref )
-    or $flagref->{help}
-    or ( not @ARGV ) )
-{
-    Usage();
-    exit 1;
-}
-
-my $self = Parrot::Ops2c::Utils->new(
-    {
-        argv   => [@ARGV],
-        flag   => $flagref,
-        script => $0,
-    }
-);
-if ( not defined $self ) {
-    Usage();
-    exit 1;
-}
-
-$self->print_c_header_file();
-
-$self->print_c_source_file();
-
-exit 0;
-
-#################### DOCUMENTATION ####################
-
-=head1 NAME
-
-tools/build/ops2c.pl - Parser for .ops files
-
-=head1 SYNOPSIS
-
-    % perl tools/build/ops2c.pl trans [--help] [--no-lines] [--dynamic]
-                                      [--core | input.ops [input2.ops ...]]
-       trans := C
-
-For example:
-
-    % perl tools/build/ops2c.pl C --core
-
-    % perl tools/build/ops2c.pl C --dynamic myops.ops
-
-=head1 DESCRIPTION
-
-This script uses a supplied transform to create a pair of C header and
-implementation files from the operation definitions found in one or more
-F<*.ops> files.
-
-=head2 Transforms
-
-The first command-line argument is the last package name component of a
-subclass of C<Parrot::OpTrans>. These subclasses all have full names of
-the form C<Parrot::OpTrans::*>. An instance of the class is created and
-later consulted for various bits of information needed to generate the C
-code. Each creates a different type of run loop.
-
-=over
-
-=item C<C>
-
-Create the function-based (slow or fast core) run loop.
-
-=back
-
-=head2 Options
-
-=over 4
-
-=item C<--help>
-
-Print synopsis.
-
-=item C<--dynamic>
-
-Indicate that the opcode library is dynamic.
-
-=item C<--core>
-
-Build the Parrot core opcode library.
-
-=item C<--no-lines>
-
-Do not generate C<#line> directives in the generated C code.
-
-=back
-
-=head1 NOTE
-
-Most of the functionality in F<tools/build/ops2c.pl> has been extracted into
-methods and subroutines found in Parrot::Ops2c::Utils and
-Parrot::Ops2c::Auxiliary.  This refactoring facilitates unit testing and
-coverage analysis of that functionality.  A test suite has been provided in
-F<t/tools/ops2cutils/>.  It is recommended that future refactoring of this
-functionality proceed in a test-driven manner, I<i.e.,> tests should be
-written reflecting any changes to interface or functionality; the code should
-be written which implements the revisions; the code should be tested; and
-coverage analysis should be performed with Devel::Cover to measure the extent
-to which the tests exercise the code.
-
-=head1 AUTHORS
-
-Based on the commit logs, the following members of the Parrot project have
-contributed to this program:
-
-    ambs bernhard boemmels brentdax chip
-    coke dan gregor grunblatt jgoff
-    jkeenan jonathan josh jrieks leo
-    mikescott mrjoltcola nicholas particle paultcochrane
-    petdance rgrjr robert simon
-
-=head1 SEE ALSO
-
-=over 4
-
-=item F<tools/build/ops2pm.pl>
-
-=item C<Parrot::OpsFile>
-
-=item C<Parrot::Op>
-
-=item C<Parrot::OpTrans>
-
-=item C<Parrot::OpTrans::C>
-
-=item C<Parrot::Ops2c::Utils>
-
-=item C<Parrot::Ops2c::Auxiliary>
-
-=back
+use Parrot::Config;
+use File::Spec;
 
-=cut
+warn 'ops2c.pl is deprecated. Use ops2c$(EXE) instead';
+# Ignore "core"
+shift @ARGV;
+my $ops2c = File::Spec->catfile($PConfig{bindir}, 'ops2c');
+exec $ops2c, @ARGV;
 
 # Local Variables:
 #   mode: cperl

Deleted: branches/ucs4_encoding/tools/build/ops2pm.pl
==============================================================================
--- branches/ucs4_encoding/tools/build/ops2pm.pl	Mon May 24 21:18:41 2010	(r46973)
+++ /dev/null	00:00:00 1970	(deleted)
@@ -1,164 +0,0 @@
-#! perl
-# Copyright (C) 2001-2007, Parrot Foundation.
-# $Id$
-
-use strict;
-use warnings;
-
-use lib 'lib';
-use Parrot::Ops2pm;
-use Parrot::Ops2pm::Auxiliary qw( Usage getoptions );
-
-my $flagref = getoptions();
-
-if ( $flagref->{help} or !@ARGV ) {
-    Usage();
-    exit;
-}
-
-my $self = Parrot::Ops2pm->new(
-    {
-        argv    => [@ARGV],
-        nolines => $flagref->{nolines},
-        renum   => $flagref->{renum},
-        moddir  => "lib/Parrot/OpLib",
-        module  => "core.pm",
-        inc_dir => "include/parrot/oplib",
-        inc_f   => "ops.h",
-        script  => "tools/build/ops2pm.pl",
-    }
-);
-
-$self->prepare_ops();
-$self->load_op_map_files();
-$self->sort_ops();
-$self->prepare_real_ops();
-$self->print_module();
-$self->print_h();
-
-exit 0;
-
-################### DOCUMENTATION ####################
-
-=head1 NAME
-
-tools/build/ops2pm.pl - Generate Perl module from operation definitions
-
-=head1 SYNOPSIS
-
- $ perl tools/build/ops2pm.pl [--help] [--no-lines] input.ops [input2.ops ...]
- $ perl tools/build/ops2pm.pl [--renum]  input.ops [input2.ops ...]
-
-=head1 DESCRIPTION
-
-Reads the ops files listed on the command line and outputs a
-F<Parrot::OpLib::core> module containing information about the ops.
-Also outputs F<include/parrot/oplib/ops.h>.  This program is called by Parrot's
-F<make>.
-
-If called with the C<--renum> flag, renumbers the file F<src/ops/ops.num>.
-This is mandatory when adding or removing opcodes.
-
-=head1 OPTIONS
-
-=over 4
-
-=item C<--help>
-
-Print synopsis.
-
-=item C<--no-lines>
-
-Do not generate C<#line> directives in the generated C code.
-
-=item C<--renum>
-
-Renumber opcodes according to existing ops in ops/num and natural
-order in the given ops files. See also F<tools/dev/ops_renum.mak>.
-
-=back
-
-Most of the functionality in this program is now held in Parrot::Ops2pm::Util
-methods and a small number of Parrot::Ops2pm::Auxiliary subroutines.
-See those modules' documentation for discussion of those functions.
-Revisions to the functionality should be made in those packages and tested
-against tests found in F<t/tools/ops2pm/>.
-
-=head1 WARNING
-
-Generating a C<Parrot::OpLib::core> module for a set of ops files that
-you do not later turn into C code (see F<tools/build/ops2c.pl>) with the
-same op content and order is a recipe for disaster. But as long as you
-just run these tools in the standard build process via C<make> there
-shouldn't be a problem.
-
-=head1 TODO
-
-The original design of the ops processing code was intended to be
-a read-only representation of what was in a particular ops file. It was
-not originally intended that it was a mechanism for building a bigger
-virtual ops file from multiple physical ops files.
-
-This code does half of that job (the other half is getting them to
-compile together instead of separately in a F<*_ops.c> file).
-
-You can see evidence of this by the way this code reaches in to the
-internal C<OPS> hash key to do its concatenation, and the way it
-twiddles each op's C<CODE> hash key after that.
-
-If the op and oplib Perl modules are going to be used for modifying
-information read from ops files in addition to reading it, they should
-be changed to make the above operations explicitly supported.
-
-Otherwise, the Parrot build and interpreter start-up logic should be
-modified so that it doesn't need to concatenate separate ops files.
-
-=head1 SEE ALSO
-
-=over 4
-
-=item F<tools/build/ops2c.pl>.
-
-=item F<lib/Parrot/Ops2pm.pm>.
-
-=item F<lib/Parrot/Ops2pm/Auxiliary.pm>.
-
-=item F<tools/dev/ops_renum.mak>.
-
-=back
-
-=head1 AUTHOR
-
-Over the years, F<tools/build/ops2pm.pl> has been worked on by the following Parrot hackers:
-
-  bernhard
-  brentdax
-  chip
-  chromatic
-  coke
-  dan
-  gregor
-  jkeenan
-  leo
-  mikescott
-  particle
-  paultcochrane
-  petdance
-  robert
-  simon
-  tewk
-
-Others who provided code cited in the version control logs include:
-
-  Andy Dougherty
-  Jeff Gof
-  Steve Fink
-
-=cut
-
-# Local Variables:
-#   mode: cperl
-#   cperl-indent-level: 4
-#   fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4:

Deleted: branches/ucs4_encoding/tools/dev/opsrenumber.pl
==============================================================================
--- branches/ucs4_encoding/tools/dev/opsrenumber.pl	Mon May 24 21:18:41 2010	(r46973)
+++ /dev/null	00:00:00 1970	(deleted)
@@ -1,77 +0,0 @@
-#! perl
-# Copyright (C) 2001-2007, Parrot Foundation.
-# $Id$
-
-use strict;
-use warnings;
-
-use lib 'lib';
-use Parrot::OpsRenumber;
-
-my $self = Parrot::OpsRenumber->new(
-    {
-        argv    => [@ARGV],
-        moddir  => "lib/Parrot/OpLib",
-        module  => "core.pm",
-        inc_dir => "include/parrot/oplib",
-        inc_f   => "ops.h",
-        script  => "tools/dev/opsrenumber.pl",
-    }
-);
-
-$self->prepare_ops();
-$self->renum_op_map_file();
-
-exit 0;
-
-################### DOCUMENTATION ####################
-
-=head1 NAME
-
-tools/dev/opsrenumber.pl - Renumber F<src/ops/ops.num>.
-
-=head1 SYNOPSIS
-
-    $ perl tools/dev/opsrenumber.pl input.ops [input2.ops ...]
-
-=head1 DESCRIPTION
-
-This program should be used when adding or removing opcodes.
-
-All opcodes except the first seven are potentially deletable and the opcodes'
-order may be rearranged.  However, in and after Parrot 1.0.0, deletion of
-opcodes should be a rare event.  The program will automatically detect which
-opcodes have been deleted and will renumber the remaining codes appropriately.
-
-The program, however, will B<not> automatically detect new opcodes.   This is
-a feature, not a bug, as it is intended to require someone to think about why
-new opcodes should be added.  Once a decision to add new opcodes has been
-made, those opcodes should be entered manually at the endc of
-F<src/ops/ops.num>, then F<tools/dev/opsrenumber.pl> (or F<make opsrenumber>)
-should be run.
-
-=head1 SEE ALSO
-
-=over 4
-
-=item F<lib/Parrot/Ops2pm/Base.pm>.
-
-=item F<lib/Parrot/OpsRenumber.pm>.
-
-=back
-
-=head1 AUTHOR
-
-This code was refactored out of F<tools/build/ops2pm.pl>.  That file contains
-a list of the contributors to this code over the years.
-
-The refactoring of this file was done by James E Keenan.
-
-=cut
-
-# Local Variables:
-#   mode: cperl
-#   cperl-indent-level: 4
-#   fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4:


More information about the parrot-commits mailing list