Goodbye AvFLAGS
[p5sagit/p5-mst-13.2.git] / ext / ByteLoader / byterun.h
index f074f2d..215cf35 100644 (file)
@@ -1,4 +1,5 @@
-/*
+/* -*- buffer-read-only: t -*-
+ *
  *      Copyright (c) 1996-1999 Malcolm Beattie
  *
  *      You may distribute under the terms of either the GNU General Public
@@ -19,13 +20,14 @@ struct byteloader_state {
     SV                         *bs_sv;
     void                       **bs_obj_list;
     int                                bs_obj_list_fill;
+    int                                bs_ix;
     XPV                                bs_pv;
     int                                bs_iv_overflows;
 };
 
 int bl_getc(struct byteloader_fdata *);
 int bl_read(struct byteloader_fdata *, char *, size_t, size_t);
-extern void byterun(pTHXo_ struct byteloader_state *);
+extern int byterun(pTHX_ struct byteloader_state *);
 
 enum {
     INSN_RET,                  /* 0 */
@@ -35,121 +37,151 @@ enum {
     INSN_STOP,                 /* 4 */
     INSN_STPV,                 /* 5 */
     INSN_LDSPECSV,                     /* 6 */
-    INSN_NEWSV,                        /* 7 */
-    INSN_NEWOP,                        /* 8 */
-    INSN_NEWOPN,                       /* 9 */
+    INSN_LDSPECSVX,                    /* 7 */
+    INSN_NEWSV,                        /* 8 */
+    INSN_NEWSVX,                       /* 9 */
     INSN_NOP,                  /* 10 */
-    INSN_NEWPV,                        /* 11 */
-    INSN_PV_CUR,                       /* 12 */
-    INSN_PV_FREE,                      /* 13 */
-    INSN_SV_UPGRADE,                   /* 14 */
-    INSN_SV_REFCNT,                    /* 15 */
-    INSN_SV_REFCNT_ADD,                        /* 16 */
-    INSN_SV_FLAGS,                     /* 17 */
-    INSN_XRV,                  /* 18 */
-    INSN_XPV,                  /* 19 */
-    INSN_XIV32,                        /* 20 */
-    INSN_XIV64,                        /* 21 */
-    INSN_XNV,                  /* 22 */
-    INSN_XLV_TARGOFF,                  /* 23 */
-    INSN_XLV_TARGLEN,                  /* 24 */
-    INSN_XLV_TARG,                     /* 25 */
-    INSN_XLV_TYPE,                     /* 26 */
-    INSN_XBM_USEFUL,                   /* 27 */
-    INSN_XBM_PREVIOUS,                 /* 28 */
-    INSN_XBM_RARE,                     /* 29 */
-    INSN_XFM_LINES,                    /* 30 */
-    INSN_XIO_LINES,                    /* 31 */
-    INSN_XIO_PAGE,                     /* 32 */
-    INSN_XIO_PAGE_LEN,                 /* 33 */
-    INSN_XIO_LINES_LEFT,                       /* 34 */
+    INSN_NEWOP,                        /* 11 */
+    INSN_NEWOPX,                       /* 12 */
+    INSN_NEWOPN,                       /* 13 */
+    INSN_NEWPV,                        /* 14 */
+    INSN_PV_CUR,                       /* 15 */
+    INSN_PV_FREE,                      /* 16 */
+    INSN_SV_UPGRADE,                   /* 17 */
+    INSN_SV_REFCNT,                    /* 18 */
+    INSN_SV_REFCNT_ADD,                        /* 19 */
+    INSN_SV_FLAGS,                     /* 20 */
+    INSN_XRV,                  /* 21 */
+    INSN_XPV,                  /* 22 */
+    INSN_XPV_CUR,                      /* 23 */
+    INSN_XPV_LEN,                      /* 24 */
+    INSN_XIV,                  /* 25 */
+    INSN_XNV,                  /* 26 */
+    INSN_XLV_TARGOFF,                  /* 27 */
+    INSN_XLV_TARGLEN,                  /* 28 */
+    INSN_XLV_TARG,                     /* 29 */
+    INSN_XLV_TYPE,                     /* 30 */
+    INSN_XBM_USEFUL,                   /* 31 */
+    INSN_XBM_PREVIOUS,                 /* 32 */
+    INSN_XBM_RARE,                     /* 33 */
+    INSN_XFM_LINES,                    /* 34 */
     INSN_COMMENT,                      /* 35 */
-    INSN_XIO_TOP_NAME,                 /* 36 */
-    INSN_XIO_TOP_GV,                   /* 37 */
-    INSN_XIO_FMT_NAME,                 /* 38 */
-    INSN_XIO_FMT_GV,                   /* 39 */
-    INSN_XIO_BOTTOM_NAME,                      /* 40 */
-    INSN_XIO_BOTTOM_GV,                        /* 41 */
-    INSN_XIO_SUBPROCESS,                       /* 42 */
-    INSN_XIO_TYPE,                     /* 43 */
-    INSN_XIO_FLAGS,                    /* 44 */
-    INSN_XCV_STASH,                    /* 45 */
-    INSN_XCV_START,                    /* 46 */
-    INSN_XCV_ROOT,                     /* 47 */
-    INSN_XCV_GV,                       /* 48 */
-    INSN_XCV_FILE,                     /* 49 */
-    INSN_XCV_DEPTH,                    /* 50 */
-    INSN_XCV_PADLIST,                  /* 51 */
-    INSN_XCV_OUTSIDE,                  /* 52 */
-    INSN_XCV_FLAGS,                    /* 53 */
-    INSN_AV_EXTEND,                    /* 54 */
-    INSN_AV_PUSH,                      /* 55 */
-    INSN_XAV_FILL,                     /* 56 */
-    INSN_XAV_MAX,                      /* 57 */
-    INSN_XAV_FLAGS,                    /* 58 */
-    INSN_XHV_RITER,                    /* 59 */
-    INSN_XHV_NAME,                     /* 60 */
-    INSN_HV_STORE,                     /* 61 */
-    INSN_SV_MAGIC,                     /* 62 */
-    INSN_MG_OBJ,                       /* 63 */
-    INSN_MG_PRIVATE,                   /* 64 */
-    INSN_MG_FLAGS,                     /* 65 */
-    INSN_MG_PV,                        /* 66 */
-    INSN_XMG_STASH,                    /* 67 */
-    INSN_GV_FETCHPV,                   /* 68 */
-    INSN_GV_STASHPV,                   /* 69 */
-    INSN_GP_SV,                        /* 70 */
-    INSN_GP_REFCNT,                    /* 71 */
-    INSN_GP_REFCNT_ADD,                        /* 72 */
-    INSN_GP_AV,                        /* 73 */
-    INSN_GP_HV,                        /* 74 */
-    INSN_GP_CV,                        /* 75 */
-    INSN_GP_FILE,                      /* 76 */
-    INSN_GP_IO,                        /* 77 */
-    INSN_GP_FORM,                      /* 78 */
-    INSN_GP_CVGEN,                     /* 79 */
-    INSN_GP_LINE,                      /* 80 */
-    INSN_GP_SHARE,                     /* 81 */
-    INSN_XGV_FLAGS,                    /* 82 */
-    INSN_OP_NEXT,                      /* 83 */
-    INSN_OP_SIBLING,                   /* 84 */
-    INSN_OP_PPADDR,                    /* 85 */
-    INSN_OP_TARG,                      /* 86 */
-    INSN_OP_TYPE,                      /* 87 */
-    INSN_OP_SEQ,                       /* 88 */
-    INSN_OP_FLAGS,                     /* 89 */
-    INSN_OP_PRIVATE,                   /* 90 */
-    INSN_OP_FIRST,                     /* 91 */
-    INSN_OP_LAST,                      /* 92 */
-    INSN_OP_OTHER,                     /* 93 */
-    INSN_OP_PMREPLROOT,                        /* 94 */
-    INSN_OP_PMREPLROOTGV,                      /* 95 */
-    INSN_OP_PMREPLSTART,                       /* 96 */
-    INSN_OP_PMNEXT,                    /* 97 */
-    INSN_PREGCOMP,                     /* 98 */
-    INSN_OP_PMFLAGS,                   /* 99 */
-    INSN_OP_PMPERMFLAGS,                       /* 100 */
-    INSN_OP_SV,                        /* 101 */
-    INSN_OP_PADIX,                     /* 102 */
-    INSN_OP_PV,                        /* 103 */
-    INSN_OP_PV_TR,                     /* 104 */
-    INSN_OP_REDOOP,                    /* 105 */
-    INSN_OP_NEXTOP,                    /* 106 */
-    INSN_OP_LASTOP,                    /* 107 */
-    INSN_COP_LABEL,                    /* 108 */
-    INSN_COP_STASHPV,                  /* 109 */
-    INSN_COP_FILE,                     /* 110 */
-    INSN_COP_SEQ,                      /* 111 */
-    INSN_COP_ARYBASE,                  /* 112 */
-    INSN_COP_LINE,                     /* 113 */
-    INSN_COP_WARNINGS,                 /* 114 */
-    INSN_MAIN_START,                   /* 115 */
-    INSN_MAIN_ROOT,                    /* 116 */
-    INSN_CURPAD,                       /* 117 */
-    INSN_PUSH_BEGIN,                   /* 118 */
-    INSN_PUSH_INIT,                    /* 119 */
-    INSN_PUSH_END,                     /* 120 */
-    MAX_INSN = 120
+    INSN_XIO_LINES,                    /* 36 */
+    INSN_XIO_PAGE,                     /* 37 */
+    INSN_XIO_PAGE_LEN,                 /* 38 */
+    INSN_XIO_LINES_LEFT,                       /* 39 */
+    INSN_XIO_TOP_NAME,                 /* 40 */
+    INSN_XIO_TOP_GV,                   /* 41 */
+    INSN_XIO_FMT_NAME,                 /* 42 */
+    INSN_XIO_FMT_GV,                   /* 43 */
+    INSN_XIO_BOTTOM_NAME,                      /* 44 */
+    INSN_XIO_BOTTOM_GV,                        /* 45 */
+    INSN_XIO_SUBPROCESS,                       /* 46 */
+    INSN_XIO_TYPE,                     /* 47 */
+    INSN_XIO_FLAGS,                    /* 48 */
+    INSN_XCV_XSUBANY,                  /* 49 */
+    INSN_XCV_STASH,                    /* 50 */
+    INSN_XCV_START,                    /* 51 */
+    INSN_XCV_ROOT,                     /* 52 */
+    INSN_XCV_GV,                       /* 53 */
+    INSN_XCV_FILE,                     /* 54 */
+    INSN_XCV_DEPTH,                    /* 55 */
+    INSN_XCV_PADLIST,                  /* 56 */
+    INSN_XCV_OUTSIDE,                  /* 57 */
+    INSN_XCV_OUTSIDE_SEQ,                      /* 58 */
+    INSN_XCV_FLAGS,                    /* 59 */
+    INSN_AV_EXTEND,                    /* 60 */
+    INSN_AV_PUSHX,                     /* 61 */
+    INSN_AV_PUSH,                      /* 62 */
+    INSN_XAV_FILL,                     /* 63 */
+    INSN_XAV_MAX,                      /* 64 */
+    INSN_XHV_RITER,                    /* 65 */
+    INSN_XHV_NAME,                     /* 66 */
+    INSN_XHV_PMROOT,                   /* 67 */
+    INSN_HV_STORE,                     /* 68 */
+    INSN_SV_MAGIC,                     /* 69 */
+    INSN_MG_OBJ,                       /* 70 */
+    INSN_MG_PRIVATE,                   /* 71 */
+    INSN_MG_FLAGS,                     /* 72 */
+    INSN_MG_NAME,                      /* 73 */
+    INSN_MG_NAMEX,                     /* 74 */
+    INSN_XMG_STASH,                    /* 75 */
+    INSN_GV_FETCHPV,                   /* 76 */
+    INSN_GV_FETCHPVX,                  /* 77 */
+    INSN_GV_STASHPV,                   /* 78 */
+    INSN_GV_STASHPVX,                  /* 79 */
+    INSN_GP_SV,                        /* 80 */
+    INSN_GP_REFCNT,                    /* 81 */
+    INSN_GP_REFCNT_ADD,                        /* 82 */
+    INSN_GP_AV,                        /* 83 */
+    INSN_GP_HV,                        /* 84 */
+    INSN_GP_CV,                        /* 85 */
+    INSN_GP_FILE,                      /* 86 */
+    INSN_GP_IO,                        /* 87 */
+    INSN_GP_FORM,                      /* 88 */
+    INSN_GP_CVGEN,                     /* 89 */
+    INSN_GP_LINE,                      /* 90 */
+    INSN_GP_SHARE,                     /* 91 */
+    INSN_XGV_FLAGS,                    /* 92 */
+    INSN_OP_NEXT,                      /* 93 */
+    INSN_OP_SIBLING,                   /* 94 */
+    INSN_OP_PPADDR,                    /* 95 */
+    INSN_OP_TARG,                      /* 96 */
+    INSN_OP_TYPE,                      /* 97 */
+    INSN_OP_OPT,                       /* 98 */
+    INSN_OP_STATIC,                    /* 99 */
+    INSN_OP_FLAGS,                     /* 100 */
+    INSN_OP_PRIVATE,                   /* 101 */
+    INSN_OP_FIRST,                     /* 102 */
+    INSN_OP_LAST,                      /* 103 */
+    INSN_OP_OTHER,                     /* 104 */
+    INSN_OP_PMREPLROOT,                        /* 105 */
+    INSN_OP_PMREPLSTART,                       /* 106 */
+    INSN_OP_PMNEXT,                    /* 107 */
+    INSN_OP_PMSTASHPV,                 /* 108 */
+    INSN_OP_PMREPLROOTPO,                      /* 109 */
+    INSN_OP_PMSTASH,                   /* 110 */
+    INSN_OP_PMREPLROOTGV,                      /* 111 */
+    INSN_PREGCOMP,                     /* 112 */
+    INSN_OP_PMFLAGS,                   /* 113 */
+    INSN_OP_PMPERMFLAGS,                       /* 114 */
+    INSN_OP_PMDYNFLAGS,                        /* 115 */
+    INSN_OP_SV,                        /* 116 */
+    INSN_OP_PADIX,                     /* 117 */
+    INSN_OP_PV,                        /* 118 */
+    INSN_OP_PV_TR,                     /* 119 */
+    INSN_OP_REDOOP,                    /* 120 */
+    INSN_OP_NEXTOP,                    /* 121 */
+    INSN_OP_LASTOP,                    /* 122 */
+    INSN_COP_LABEL,                    /* 123 */
+    INSN_COP_STASHPV,                  /* 124 */
+    INSN_COP_FILE,                     /* 125 */
+    INSN_COP_STASH,                    /* 126 */
+    INSN_COP_FILEGV,                   /* 127 */
+    INSN_COP_SEQ,                      /* 128 */
+    INSN_COP_ARYBASE,                  /* 129 */
+    INSN_COP_LINE,                     /* 130 */
+    INSN_COP_IO,                       /* 131 */
+    INSN_COP_WARNINGS,                 /* 132 */
+    INSN_MAIN_START,                   /* 133 */
+    INSN_MAIN_ROOT,                    /* 134 */
+    INSN_MAIN_CV,                      /* 135 */
+    INSN_CURPAD,                       /* 136 */
+    INSN_PUSH_BEGIN,                   /* 137 */
+    INSN_PUSH_INIT,                    /* 138 */
+    INSN_PUSH_END,                     /* 139 */
+    INSN_CURSTASH,                     /* 140 */
+    INSN_DEFSTASH,                     /* 141 */
+    INSN_DATA,                 /* 142 */
+    INSN_INCAV,                        /* 143 */
+    INSN_LOAD_GLOB,                    /* 144 */
+    INSN_REGEX_PADAV,                  /* 145 */
+    INSN_DOWARN,                       /* 146 */
+    INSN_COMPPAD_NAME,                 /* 147 */
+    INSN_XGV_STASH,                    /* 148 */
+    INSN_SIGNAL,                       /* 149 */
+    INSN_FORMFEED,                     /* 150 */
+    MAX_INSN = 150
 };
 
 enum {
@@ -166,3 +198,4 @@ enum {
     OPt_COP            /* 10 */
 };
 
+/* ex: set ro: */