| 1 | /* -*- buffer-read-only: t -*-
|
|---|
| 2 | *
|
|---|
| 3 | * Copyright (c) 1996-1999 Malcolm Beattie
|
|---|
| 4 | *
|
|---|
| 5 | * You may distribute under the terms of either the GNU General Public
|
|---|
| 6 | * License or the Artistic License, as specified in the README file.
|
|---|
| 7 | *
|
|---|
| 8 | */
|
|---|
| 9 | /*
|
|---|
| 10 | * This file is autogenerated from bytecode.pl. Changes made here will be lost.
|
|---|
| 11 | */
|
|---|
| 12 |
|
|---|
| 13 | #define PERL_NO_GET_CONTEXT
|
|---|
| 14 | #include "EXTERN.h"
|
|---|
| 15 | #include "perl.h"
|
|---|
| 16 | #define NO_XSLOCKS
|
|---|
| 17 | #include "XSUB.h"
|
|---|
| 18 |
|
|---|
| 19 | #include "byterun.h"
|
|---|
| 20 | #include "bytecode.h"
|
|---|
| 21 |
|
|---|
| 22 |
|
|---|
| 23 | static const int optype_size[] = {
|
|---|
| 24 | sizeof(OP),
|
|---|
| 25 | sizeof(UNOP),
|
|---|
| 26 | sizeof(BINOP),
|
|---|
| 27 | sizeof(LOGOP),
|
|---|
| 28 | sizeof(LISTOP),
|
|---|
| 29 | sizeof(PMOP),
|
|---|
| 30 | sizeof(SVOP),
|
|---|
| 31 | sizeof(PADOP),
|
|---|
| 32 | sizeof(PVOP),
|
|---|
| 33 | sizeof(LOOP),
|
|---|
| 34 | sizeof(COP)
|
|---|
| 35 | };
|
|---|
| 36 |
|
|---|
| 37 | void *
|
|---|
| 38 | bset_obj_store(pTHX_ struct byteloader_state *bstate, void *obj, I32 ix)
|
|---|
| 39 | {
|
|---|
| 40 | if (ix > bstate->bs_obj_list_fill) {
|
|---|
| 41 | Renew(bstate->bs_obj_list, ix + 32, void*);
|
|---|
| 42 | bstate->bs_obj_list_fill = ix + 31;
|
|---|
| 43 | }
|
|---|
| 44 | bstate->bs_obj_list[ix] = obj;
|
|---|
| 45 | return obj;
|
|---|
| 46 | }
|
|---|
| 47 |
|
|---|
| 48 | int
|
|---|
| 49 | byterun(pTHX_ register struct byteloader_state *bstate)
|
|---|
| 50 | {
|
|---|
| 51 | register int insn;
|
|---|
| 52 | U32 ix;
|
|---|
| 53 | SV *specialsv_list[6];
|
|---|
| 54 |
|
|---|
| 55 | BYTECODE_HEADER_CHECK; /* croak if incorrect platform */
|
|---|
| 56 | Newx(bstate->bs_obj_list, 32, void*); /* set op objlist */
|
|---|
| 57 | bstate->bs_obj_list_fill = 31;
|
|---|
| 58 | bstate->bs_obj_list[0] = NULL; /* first is always Null */
|
|---|
| 59 | bstate->bs_ix = 1;
|
|---|
| 60 |
|
|---|
| 61 | specialsv_list[0] = Nullsv;
|
|---|
| 62 | specialsv_list[1] = &PL_sv_undef;
|
|---|
| 63 | specialsv_list[2] = &PL_sv_yes;
|
|---|
| 64 | specialsv_list[3] = &PL_sv_no;
|
|---|
| 65 | specialsv_list[4] = pWARN_ALL;
|
|---|
| 66 | specialsv_list[5] = pWARN_NONE;
|
|---|
| 67 |
|
|---|
| 68 | while ((insn = BGET_FGETC()) != EOF) {
|
|---|
| 69 | switch (insn) {
|
|---|
| 70 | case INSN_COMMENT: /* 35 */
|
|---|
| 71 | {
|
|---|
| 72 | comment_t arg;
|
|---|
| 73 | BGET_comment_t(arg);
|
|---|
| 74 | arg = arg;
|
|---|
| 75 | break;
|
|---|
| 76 | }
|
|---|
| 77 | case INSN_NOP: /* 10 */
|
|---|
| 78 | {
|
|---|
| 79 | break;
|
|---|
| 80 | }
|
|---|
| 81 | case INSN_RET: /* 0 */
|
|---|
| 82 | {
|
|---|
| 83 | BSET_ret(none);
|
|---|
| 84 | break;
|
|---|
| 85 | }
|
|---|
| 86 | case INSN_LDSV: /* 1 */
|
|---|
| 87 | {
|
|---|
| 88 | svindex arg;
|
|---|
| 89 | BGET_svindex(arg);
|
|---|
| 90 | bstate->bs_sv = arg;
|
|---|
| 91 | break;
|
|---|
| 92 | }
|
|---|
| 93 | case INSN_LDOP: /* 2 */
|
|---|
| 94 | {
|
|---|
| 95 | opindex arg;
|
|---|
| 96 | BGET_opindex(arg);
|
|---|
| 97 | PL_op = arg;
|
|---|
| 98 | break;
|
|---|
| 99 | }
|
|---|
| 100 | case INSN_STSV: /* 3 */
|
|---|
| 101 | {
|
|---|
| 102 | U32 arg;
|
|---|
| 103 | BGET_U32(arg);
|
|---|
| 104 | BSET_OBJ_STORE(bstate->bs_sv, arg);
|
|---|
| 105 | break;
|
|---|
| 106 | }
|
|---|
| 107 | case INSN_STOP: /* 4 */
|
|---|
| 108 | {
|
|---|
| 109 | U32 arg;
|
|---|
| 110 | BGET_U32(arg);
|
|---|
| 111 | BSET_OBJ_STORE(PL_op, arg);
|
|---|
| 112 | break;
|
|---|
| 113 | }
|
|---|
| 114 | case INSN_STPV: /* 5 */
|
|---|
| 115 | {
|
|---|
| 116 | U32 arg;
|
|---|
| 117 | BGET_U32(arg);
|
|---|
| 118 | BSET_stpv(bstate->bs_pv.xpv_pv, arg);
|
|---|
| 119 | break;
|
|---|
| 120 | }
|
|---|
| 121 | case INSN_LDSPECSV: /* 6 */
|
|---|
| 122 | {
|
|---|
| 123 | U8 arg;
|
|---|
| 124 | BGET_U8(arg);
|
|---|
| 125 | BSET_ldspecsv(bstate->bs_sv, arg);
|
|---|
| 126 | break;
|
|---|
| 127 | }
|
|---|
| 128 | case INSN_LDSPECSVX: /* 7 */
|
|---|
| 129 | {
|
|---|
| 130 | U8 arg;
|
|---|
| 131 | BGET_U8(arg);
|
|---|
| 132 | BSET_ldspecsvx(bstate->bs_sv, arg);
|
|---|
| 133 | break;
|
|---|
| 134 | }
|
|---|
| 135 | case INSN_NEWSV: /* 8 */
|
|---|
| 136 | {
|
|---|
| 137 | U8 arg;
|
|---|
| 138 | BGET_U8(arg);
|
|---|
| 139 | BSET_newsv(bstate->bs_sv, arg);
|
|---|
| 140 | break;
|
|---|
| 141 | }
|
|---|
| 142 | case INSN_NEWSVX: /* 9 */
|
|---|
| 143 | {
|
|---|
| 144 | U32 arg;
|
|---|
| 145 | BGET_U32(arg);
|
|---|
| 146 | BSET_newsvx(bstate->bs_sv, arg);
|
|---|
| 147 | break;
|
|---|
| 148 | }
|
|---|
| 149 | case INSN_NEWOP: /* 11 */
|
|---|
| 150 | {
|
|---|
| 151 | U8 arg;
|
|---|
| 152 | BGET_U8(arg);
|
|---|
| 153 | BSET_newop(PL_op, arg);
|
|---|
| 154 | break;
|
|---|
| 155 | }
|
|---|
| 156 | case INSN_NEWOPX: /* 12 */
|
|---|
| 157 | {
|
|---|
| 158 | U16 arg;
|
|---|
| 159 | BGET_U16(arg);
|
|---|
| 160 | BSET_newopx(PL_op, arg);
|
|---|
| 161 | break;
|
|---|
| 162 | }
|
|---|
| 163 | case INSN_NEWOPN: /* 13 */
|
|---|
| 164 | {
|
|---|
| 165 | U8 arg;
|
|---|
| 166 | BGET_U8(arg);
|
|---|
| 167 | BSET_newopn(PL_op, arg);
|
|---|
| 168 | break;
|
|---|
| 169 | }
|
|---|
| 170 | case INSN_NEWPV: /* 14 */
|
|---|
| 171 | {
|
|---|
| 172 | PV arg;
|
|---|
| 173 | BGET_PV(arg);
|
|---|
| 174 | break;
|
|---|
| 175 | }
|
|---|
| 176 | case INSN_PV_CUR: /* 15 */
|
|---|
| 177 | {
|
|---|
| 178 | STRLEN arg;
|
|---|
| 179 | BGET_PADOFFSET(arg);
|
|---|
| 180 | bstate->bs_pv.xpv_cur = arg;
|
|---|
| 181 | break;
|
|---|
| 182 | }
|
|---|
| 183 | case INSN_PV_FREE: /* 16 */
|
|---|
| 184 | {
|
|---|
| 185 | BSET_pv_free(bstate->bs_pv);
|
|---|
| 186 | break;
|
|---|
| 187 | }
|
|---|
| 188 | case INSN_SV_UPGRADE: /* 17 */
|
|---|
| 189 | {
|
|---|
| 190 | U8 arg;
|
|---|
| 191 | BGET_U8(arg);
|
|---|
| 192 | BSET_sv_upgrade(bstate->bs_sv, arg);
|
|---|
| 193 | break;
|
|---|
| 194 | }
|
|---|
| 195 | case INSN_SV_REFCNT: /* 18 */
|
|---|
| 196 | {
|
|---|
| 197 | U32 arg;
|
|---|
| 198 | BGET_U32(arg);
|
|---|
| 199 | SvREFCNT(bstate->bs_sv) = arg;
|
|---|
| 200 | break;
|
|---|
| 201 | }
|
|---|
| 202 | case INSN_SV_REFCNT_ADD: /* 19 */
|
|---|
| 203 | {
|
|---|
| 204 | I32 arg;
|
|---|
| 205 | BGET_I32(arg);
|
|---|
| 206 | BSET_sv_refcnt_add(SvREFCNT(bstate->bs_sv), arg);
|
|---|
| 207 | break;
|
|---|
| 208 | }
|
|---|
| 209 | case INSN_SV_FLAGS: /* 20 */
|
|---|
| 210 | {
|
|---|
| 211 | U32 arg;
|
|---|
| 212 | BGET_U32(arg);
|
|---|
| 213 | SvFLAGS(bstate->bs_sv) = arg;
|
|---|
| 214 | break;
|
|---|
| 215 | }
|
|---|
| 216 | case INSN_XRV: /* 21 */
|
|---|
| 217 | {
|
|---|
| 218 | svindex arg;
|
|---|
| 219 | BGET_svindex(arg);
|
|---|
| 220 | BSET_xrv(bstate->bs_sv, arg);
|
|---|
| 221 | break;
|
|---|
| 222 | }
|
|---|
| 223 | case INSN_XPV: /* 22 */
|
|---|
| 224 | {
|
|---|
| 225 | BSET_xpv(bstate->bs_sv);
|
|---|
| 226 | break;
|
|---|
| 227 | }
|
|---|
| 228 | case INSN_XPV_CUR: /* 23 */
|
|---|
| 229 | {
|
|---|
| 230 | STRLEN arg;
|
|---|
| 231 | BGET_PADOFFSET(arg);
|
|---|
| 232 | BSET_xpv_cur(bstate->bs_sv, arg);
|
|---|
| 233 | break;
|
|---|
| 234 | }
|
|---|
| 235 | case INSN_XPV_LEN: /* 24 */
|
|---|
| 236 | {
|
|---|
| 237 | STRLEN arg;
|
|---|
| 238 | BGET_PADOFFSET(arg);
|
|---|
| 239 | BSET_xpv_len(bstate->bs_sv, arg);
|
|---|
| 240 | break;
|
|---|
| 241 | }
|
|---|
| 242 | case INSN_XIV: /* 25 */
|
|---|
| 243 | {
|
|---|
| 244 | IV arg;
|
|---|
| 245 | BGET_IV(arg);
|
|---|
| 246 | BSET_xiv(bstate->bs_sv, arg);
|
|---|
| 247 | break;
|
|---|
| 248 | }
|
|---|
| 249 | case INSN_XNV: /* 26 */
|
|---|
| 250 | {
|
|---|
| 251 | NV arg;
|
|---|
| 252 | BGET_NV(arg);
|
|---|
| 253 | BSET_xnv(bstate->bs_sv, arg);
|
|---|
| 254 | break;
|
|---|
| 255 | }
|
|---|
| 256 | case INSN_XLV_TARGOFF: /* 27 */
|
|---|
| 257 | {
|
|---|
| 258 | STRLEN arg;
|
|---|
| 259 | BGET_PADOFFSET(arg);
|
|---|
| 260 | LvTARGOFF(bstate->bs_sv) = arg;
|
|---|
| 261 | break;
|
|---|
| 262 | }
|
|---|
| 263 | case INSN_XLV_TARGLEN: /* 28 */
|
|---|
| 264 | {
|
|---|
| 265 | STRLEN arg;
|
|---|
| 266 | BGET_PADOFFSET(arg);
|
|---|
| 267 | LvTARGLEN(bstate->bs_sv) = arg;
|
|---|
| 268 | break;
|
|---|
| 269 | }
|
|---|
| 270 | case INSN_XLV_TARG: /* 29 */
|
|---|
| 271 | {
|
|---|
| 272 | svindex arg;
|
|---|
| 273 | BGET_svindex(arg);
|
|---|
| 274 | LvTARG(bstate->bs_sv) = arg;
|
|---|
| 275 | break;
|
|---|
| 276 | }
|
|---|
| 277 | case INSN_XLV_TYPE: /* 30 */
|
|---|
| 278 | {
|
|---|
| 279 | char arg;
|
|---|
| 280 | BGET_U8(arg);
|
|---|
| 281 | LvTYPE(bstate->bs_sv) = arg;
|
|---|
| 282 | break;
|
|---|
| 283 | }
|
|---|
| 284 | case INSN_XBM_USEFUL: /* 31 */
|
|---|
| 285 | {
|
|---|
| 286 | I32 arg;
|
|---|
| 287 | BGET_I32(arg);
|
|---|
| 288 | BmUSEFUL(bstate->bs_sv) = arg;
|
|---|
| 289 | break;
|
|---|
| 290 | }
|
|---|
| 291 | case INSN_XBM_PREVIOUS: /* 32 */
|
|---|
| 292 | {
|
|---|
| 293 | U16 arg;
|
|---|
| 294 | BGET_U16(arg);
|
|---|
| 295 | BmPREVIOUS(bstate->bs_sv) = arg;
|
|---|
| 296 | break;
|
|---|
| 297 | }
|
|---|
| 298 | case INSN_XBM_RARE: /* 33 */
|
|---|
| 299 | {
|
|---|
| 300 | U8 arg;
|
|---|
| 301 | BGET_U8(arg);
|
|---|
| 302 | BmRARE(bstate->bs_sv) = arg;
|
|---|
| 303 | break;
|
|---|
| 304 | }
|
|---|
| 305 | case INSN_XFM_LINES: /* 34 */
|
|---|
| 306 | {
|
|---|
| 307 | IV arg;
|
|---|
| 308 | BGET_IV(arg);
|
|---|
| 309 | FmLINES(bstate->bs_sv) = arg;
|
|---|
| 310 | break;
|
|---|
| 311 | }
|
|---|
| 312 | case INSN_XIO_LINES: /* 36 */
|
|---|
| 313 | {
|
|---|
| 314 | IV arg;
|
|---|
| 315 | BGET_IV(arg);
|
|---|
| 316 | IoLINES(bstate->bs_sv) = arg;
|
|---|
| 317 | break;
|
|---|
| 318 | }
|
|---|
| 319 | case INSN_XIO_PAGE: /* 37 */
|
|---|
| 320 | {
|
|---|
| 321 | IV arg;
|
|---|
| 322 | BGET_IV(arg);
|
|---|
| 323 | IoPAGE(bstate->bs_sv) = arg;
|
|---|
| 324 | break;
|
|---|
| 325 | }
|
|---|
| 326 | case INSN_XIO_PAGE_LEN: /* 38 */
|
|---|
| 327 | {
|
|---|
| 328 | IV arg;
|
|---|
| 329 | BGET_IV(arg);
|
|---|
| 330 | IoPAGE_LEN(bstate->bs_sv) = arg;
|
|---|
| 331 | break;
|
|---|
| 332 | }
|
|---|
| 333 | case INSN_XIO_LINES_LEFT: /* 39 */
|
|---|
| 334 | {
|
|---|
| 335 | IV arg;
|
|---|
| 336 | BGET_IV(arg);
|
|---|
| 337 | IoLINES_LEFT(bstate->bs_sv) = arg;
|
|---|
| 338 | break;
|
|---|
| 339 | }
|
|---|
| 340 | case INSN_XIO_TOP_NAME: /* 40 */
|
|---|
| 341 | {
|
|---|
| 342 | pvindex arg;
|
|---|
| 343 | BGET_pvindex(arg);
|
|---|
| 344 | IoTOP_NAME(bstate->bs_sv) = arg;
|
|---|
| 345 | break;
|
|---|
| 346 | }
|
|---|
| 347 | case INSN_XIO_TOP_GV: /* 41 */
|
|---|
| 348 | {
|
|---|
| 349 | svindex arg;
|
|---|
| 350 | BGET_svindex(arg);
|
|---|
| 351 | *(SV**)&IoTOP_GV(bstate->bs_sv) = arg;
|
|---|
| 352 | break;
|
|---|
| 353 | }
|
|---|
| 354 | case INSN_XIO_FMT_NAME: /* 42 */
|
|---|
| 355 | {
|
|---|
| 356 | pvindex arg;
|
|---|
| 357 | BGET_pvindex(arg);
|
|---|
| 358 | IoFMT_NAME(bstate->bs_sv) = arg;
|
|---|
| 359 | break;
|
|---|
| 360 | }
|
|---|
| 361 | case INSN_XIO_FMT_GV: /* 43 */
|
|---|
| 362 | {
|
|---|
| 363 | svindex arg;
|
|---|
| 364 | BGET_svindex(arg);
|
|---|
| 365 | *(SV**)&IoFMT_GV(bstate->bs_sv) = arg;
|
|---|
| 366 | break;
|
|---|
| 367 | }
|
|---|
| 368 | case INSN_XIO_BOTTOM_NAME: /* 44 */
|
|---|
| 369 | {
|
|---|
| 370 | pvindex arg;
|
|---|
| 371 | BGET_pvindex(arg);
|
|---|
| 372 | IoBOTTOM_NAME(bstate->bs_sv) = arg;
|
|---|
| 373 | break;
|
|---|
| 374 | }
|
|---|
| 375 | case INSN_XIO_BOTTOM_GV: /* 45 */
|
|---|
| 376 | {
|
|---|
| 377 | svindex arg;
|
|---|
| 378 | BGET_svindex(arg);
|
|---|
| 379 | *(SV**)&IoBOTTOM_GV(bstate->bs_sv) = arg;
|
|---|
| 380 | break;
|
|---|
| 381 | }
|
|---|
| 382 | case INSN_XIO_SUBPROCESS: /* 46 */
|
|---|
| 383 | {
|
|---|
| 384 | short arg;
|
|---|
| 385 | BGET_U16(arg);
|
|---|
| 386 | IoSUBPROCESS(bstate->bs_sv) = arg;
|
|---|
| 387 | break;
|
|---|
| 388 | }
|
|---|
| 389 | case INSN_XIO_TYPE: /* 47 */
|
|---|
| 390 | {
|
|---|
| 391 | char arg;
|
|---|
| 392 | BGET_U8(arg);
|
|---|
| 393 | IoTYPE(bstate->bs_sv) = arg;
|
|---|
| 394 | break;
|
|---|
| 395 | }
|
|---|
| 396 | case INSN_XIO_FLAGS: /* 48 */
|
|---|
| 397 | {
|
|---|
| 398 | char arg;
|
|---|
| 399 | BGET_U8(arg);
|
|---|
| 400 | IoFLAGS(bstate->bs_sv) = arg;
|
|---|
| 401 | break;
|
|---|
| 402 | }
|
|---|
| 403 | case INSN_XCV_XSUBANY: /* 49 */
|
|---|
| 404 | {
|
|---|
| 405 | svindex arg;
|
|---|
| 406 | BGET_svindex(arg);
|
|---|
| 407 | *(SV**)&CvXSUBANY(bstate->bs_sv).any_ptr = arg;
|
|---|
| 408 | break;
|
|---|
| 409 | }
|
|---|
| 410 | case INSN_XCV_STASH: /* 50 */
|
|---|
| 411 | {
|
|---|
| 412 | svindex arg;
|
|---|
| 413 | BGET_svindex(arg);
|
|---|
| 414 | *(SV**)&CvSTASH(bstate->bs_sv) = arg;
|
|---|
| 415 | break;
|
|---|
| 416 | }
|
|---|
| 417 | case INSN_XCV_START: /* 51 */
|
|---|
| 418 | {
|
|---|
| 419 | opindex arg;
|
|---|
| 420 | BGET_opindex(arg);
|
|---|
| 421 | CvSTART(bstate->bs_sv) = arg;
|
|---|
| 422 | break;
|
|---|
| 423 | }
|
|---|
| 424 | case INSN_XCV_ROOT: /* 52 */
|
|---|
| 425 | {
|
|---|
| 426 | opindex arg;
|
|---|
| 427 | BGET_opindex(arg);
|
|---|
| 428 | CvROOT(bstate->bs_sv) = arg;
|
|---|
| 429 | break;
|
|---|
| 430 | }
|
|---|
| 431 | case INSN_XCV_GV: /* 53 */
|
|---|
| 432 | {
|
|---|
| 433 | svindex arg;
|
|---|
| 434 | BGET_svindex(arg);
|
|---|
| 435 | *(SV**)&CvGV(bstate->bs_sv) = arg;
|
|---|
| 436 | break;
|
|---|
| 437 | }
|
|---|
| 438 | case INSN_XCV_FILE: /* 54 */
|
|---|
| 439 | {
|
|---|
| 440 | pvindex arg;
|
|---|
| 441 | BGET_pvindex(arg);
|
|---|
| 442 | CvFILE(bstate->bs_sv) = arg;
|
|---|
| 443 | break;
|
|---|
| 444 | }
|
|---|
| 445 | case INSN_XCV_DEPTH: /* 55 */
|
|---|
| 446 | {
|
|---|
| 447 | long arg;
|
|---|
| 448 | BGET_long(arg);
|
|---|
| 449 | CvDEPTH(bstate->bs_sv) = arg;
|
|---|
| 450 | break;
|
|---|
| 451 | }
|
|---|
| 452 | case INSN_XCV_PADLIST: /* 56 */
|
|---|
| 453 | {
|
|---|
| 454 | svindex arg;
|
|---|
| 455 | BGET_svindex(arg);
|
|---|
| 456 | *(SV**)&CvPADLIST(bstate->bs_sv) = arg;
|
|---|
| 457 | break;
|
|---|
| 458 | }
|
|---|
| 459 | case INSN_XCV_OUTSIDE: /* 57 */
|
|---|
| 460 | {
|
|---|
| 461 | svindex arg;
|
|---|
| 462 | BGET_svindex(arg);
|
|---|
| 463 | *(SV**)&CvOUTSIDE(bstate->bs_sv) = arg;
|
|---|
| 464 | break;
|
|---|
| 465 | }
|
|---|
| 466 | case INSN_XCV_OUTSIDE_SEQ: /* 58 */
|
|---|
| 467 | {
|
|---|
| 468 | U32 arg;
|
|---|
| 469 | BGET_U32(arg);
|
|---|
| 470 | CvOUTSIDE_SEQ(bstate->bs_sv) = arg;
|
|---|
| 471 | break;
|
|---|
| 472 | }
|
|---|
| 473 | case INSN_XCV_FLAGS: /* 59 */
|
|---|
| 474 | {
|
|---|
| 475 | U16 arg;
|
|---|
| 476 | BGET_U16(arg);
|
|---|
| 477 | CvFLAGS(bstate->bs_sv) = arg;
|
|---|
| 478 | break;
|
|---|
| 479 | }
|
|---|
| 480 | case INSN_AV_EXTEND: /* 60 */
|
|---|
| 481 | {
|
|---|
| 482 | SSize_t arg;
|
|---|
| 483 | BGET_PADOFFSET(arg);
|
|---|
| 484 | BSET_av_extend(bstate->bs_sv, arg);
|
|---|
| 485 | break;
|
|---|
| 486 | }
|
|---|
| 487 | case INSN_AV_PUSHX: /* 61 */
|
|---|
| 488 | {
|
|---|
| 489 | svindex arg;
|
|---|
| 490 | BGET_svindex(arg);
|
|---|
| 491 | BSET_av_pushx(bstate->bs_sv, arg);
|
|---|
| 492 | break;
|
|---|
| 493 | }
|
|---|
| 494 | case INSN_AV_PUSH: /* 62 */
|
|---|
| 495 | {
|
|---|
| 496 | svindex arg;
|
|---|
| 497 | BGET_svindex(arg);
|
|---|
| 498 | BSET_av_push(bstate->bs_sv, arg);
|
|---|
| 499 | break;
|
|---|
| 500 | }
|
|---|
| 501 | case INSN_XAV_FILL: /* 63 */
|
|---|
| 502 | {
|
|---|
| 503 | SSize_t arg;
|
|---|
| 504 | BGET_PADOFFSET(arg);
|
|---|
| 505 | AvFILLp(bstate->bs_sv) = arg;
|
|---|
| 506 | break;
|
|---|
| 507 | }
|
|---|
| 508 | case INSN_XAV_MAX: /* 64 */
|
|---|
| 509 | {
|
|---|
| 510 | SSize_t arg;
|
|---|
| 511 | BGET_PADOFFSET(arg);
|
|---|
| 512 | AvMAX(bstate->bs_sv) = arg;
|
|---|
| 513 | break;
|
|---|
| 514 | }
|
|---|
| 515 | case INSN_XAV_FLAGS: /* 65 */
|
|---|
| 516 | {
|
|---|
| 517 | U8 arg;
|
|---|
| 518 | BGET_U8(arg);
|
|---|
| 519 | AvFLAGS(bstate->bs_sv) = arg;
|
|---|
| 520 | break;
|
|---|
| 521 | }
|
|---|
| 522 | case INSN_XHV_RITER: /* 66 */
|
|---|
| 523 | {
|
|---|
| 524 | I32 arg;
|
|---|
| 525 | BGET_I32(arg);
|
|---|
| 526 | HvRITER(bstate->bs_sv) = arg;
|
|---|
| 527 | break;
|
|---|
| 528 | }
|
|---|
| 529 | case INSN_XHV_NAME: /* 67 */
|
|---|
| 530 | {
|
|---|
| 531 | pvindex arg;
|
|---|
| 532 | BGET_pvindex(arg);
|
|---|
| 533 | BSET_xhv_name(bstate->bs_sv, arg);
|
|---|
| 534 | break;
|
|---|
| 535 | }
|
|---|
| 536 | case INSN_XHV_PMROOT: /* 68 */
|
|---|
| 537 | {
|
|---|
| 538 | opindex arg;
|
|---|
| 539 | BGET_opindex(arg);
|
|---|
| 540 | *(OP**)&HvPMROOT(bstate->bs_sv) = arg;
|
|---|
| 541 | break;
|
|---|
| 542 | }
|
|---|
| 543 | case INSN_HV_STORE: /* 69 */
|
|---|
| 544 | {
|
|---|
| 545 | svindex arg;
|
|---|
| 546 | BGET_svindex(arg);
|
|---|
| 547 | BSET_hv_store(bstate->bs_sv, arg);
|
|---|
| 548 | break;
|
|---|
| 549 | }
|
|---|
| 550 | case INSN_SV_MAGIC: /* 70 */
|
|---|
| 551 | {
|
|---|
| 552 | char arg;
|
|---|
| 553 | BGET_U8(arg);
|
|---|
| 554 | BSET_sv_magic(bstate->bs_sv, arg);
|
|---|
| 555 | break;
|
|---|
| 556 | }
|
|---|
| 557 | case INSN_MG_OBJ: /* 71 */
|
|---|
| 558 | {
|
|---|
| 559 | svindex arg;
|
|---|
| 560 | BGET_svindex(arg);
|
|---|
| 561 | SvMAGIC(bstate->bs_sv)->mg_obj = arg;
|
|---|
| 562 | break;
|
|---|
| 563 | }
|
|---|
| 564 | case INSN_MG_PRIVATE: /* 72 */
|
|---|
| 565 | {
|
|---|
| 566 | U16 arg;
|
|---|
| 567 | BGET_U16(arg);
|
|---|
| 568 | SvMAGIC(bstate->bs_sv)->mg_private = arg;
|
|---|
| 569 | break;
|
|---|
| 570 | }
|
|---|
| 571 | case INSN_MG_FLAGS: /* 73 */
|
|---|
| 572 | {
|
|---|
| 573 | U8 arg;
|
|---|
| 574 | BGET_U8(arg);
|
|---|
| 575 | SvMAGIC(bstate->bs_sv)->mg_flags = arg;
|
|---|
| 576 | break;
|
|---|
| 577 | }
|
|---|
| 578 | case INSN_MG_NAME: /* 74 */
|
|---|
| 579 | {
|
|---|
| 580 | pvcontents arg;
|
|---|
| 581 | BGET_pvcontents(arg);
|
|---|
| 582 | BSET_mg_name(SvMAGIC(bstate->bs_sv), arg);
|
|---|
| 583 | break;
|
|---|
| 584 | }
|
|---|
| 585 | case INSN_MG_NAMEX: /* 75 */
|
|---|
| 586 | {
|
|---|
| 587 | svindex arg;
|
|---|
| 588 | BGET_svindex(arg);
|
|---|
| 589 | BSET_mg_namex(SvMAGIC(bstate->bs_sv), arg);
|
|---|
| 590 | break;
|
|---|
| 591 | }
|
|---|
| 592 | case INSN_XMG_STASH: /* 76 */
|
|---|
| 593 | {
|
|---|
| 594 | svindex arg;
|
|---|
| 595 | BGET_svindex(arg);
|
|---|
| 596 | BSET_xmg_stash(bstate->bs_sv, arg);
|
|---|
| 597 | break;
|
|---|
| 598 | }
|
|---|
| 599 | case INSN_GV_FETCHPV: /* 77 */
|
|---|
| 600 | {
|
|---|
| 601 | strconst arg;
|
|---|
| 602 | BGET_strconst(arg);
|
|---|
| 603 | BSET_gv_fetchpv(bstate->bs_sv, arg);
|
|---|
| 604 | break;
|
|---|
| 605 | }
|
|---|
| 606 | case INSN_GV_FETCHPVX: /* 78 */
|
|---|
| 607 | {
|
|---|
| 608 | strconst arg;
|
|---|
| 609 | BGET_strconst(arg);
|
|---|
| 610 | BSET_gv_fetchpvx(bstate->bs_sv, arg);
|
|---|
| 611 | break;
|
|---|
| 612 | }
|
|---|
| 613 | case INSN_GV_STASHPV: /* 79 */
|
|---|
| 614 | {
|
|---|
| 615 | strconst arg;
|
|---|
| 616 | BGET_strconst(arg);
|
|---|
| 617 | BSET_gv_stashpv(bstate->bs_sv, arg);
|
|---|
| 618 | break;
|
|---|
| 619 | }
|
|---|
| 620 | case INSN_GV_STASHPVX: /* 80 */
|
|---|
| 621 | {
|
|---|
| 622 | strconst arg;
|
|---|
| 623 | BGET_strconst(arg);
|
|---|
| 624 | BSET_gv_stashpvx(bstate->bs_sv, arg);
|
|---|
| 625 | break;
|
|---|
| 626 | }
|
|---|
| 627 | case INSN_GP_SV: /* 81 */
|
|---|
| 628 | {
|
|---|
| 629 | svindex arg;
|
|---|
| 630 | BGET_svindex(arg);
|
|---|
| 631 | GvSV(bstate->bs_sv) = arg;
|
|---|
| 632 | break;
|
|---|
| 633 | }
|
|---|
| 634 | case INSN_GP_REFCNT: /* 82 */
|
|---|
| 635 | {
|
|---|
| 636 | U32 arg;
|
|---|
| 637 | BGET_U32(arg);
|
|---|
| 638 | GvREFCNT(bstate->bs_sv) = arg;
|
|---|
| 639 | break;
|
|---|
| 640 | }
|
|---|
| 641 | case INSN_GP_REFCNT_ADD: /* 83 */
|
|---|
| 642 | {
|
|---|
| 643 | I32 arg;
|
|---|
| 644 | BGET_I32(arg);
|
|---|
| 645 | BSET_gp_refcnt_add(GvREFCNT(bstate->bs_sv), arg);
|
|---|
| 646 | break;
|
|---|
| 647 | }
|
|---|
| 648 | case INSN_GP_AV: /* 84 */
|
|---|
| 649 | {
|
|---|
| 650 | svindex arg;
|
|---|
| 651 | BGET_svindex(arg);
|
|---|
| 652 | *(SV**)&GvAV(bstate->bs_sv) = arg;
|
|---|
| 653 | break;
|
|---|
| 654 | }
|
|---|
| 655 | case INSN_GP_HV: /* 85 */
|
|---|
| 656 | {
|
|---|
| 657 | svindex arg;
|
|---|
| 658 | BGET_svindex(arg);
|
|---|
| 659 | *(SV**)&GvHV(bstate->bs_sv) = arg;
|
|---|
| 660 | break;
|
|---|
| 661 | }
|
|---|
| 662 | case INSN_GP_CV: /* 86 */
|
|---|
| 663 | {
|
|---|
| 664 | svindex arg;
|
|---|
| 665 | BGET_svindex(arg);
|
|---|
| 666 | *(SV**)&GvCV(bstate->bs_sv) = arg;
|
|---|
| 667 | break;
|
|---|
| 668 | }
|
|---|
| 669 | case INSN_GP_FILE: /* 87 */
|
|---|
| 670 | {
|
|---|
| 671 | pvindex arg;
|
|---|
| 672 | BGET_pvindex(arg);
|
|---|
| 673 | GvFILE(bstate->bs_sv) = arg;
|
|---|
| 674 | break;
|
|---|
| 675 | }
|
|---|
| 676 | case INSN_GP_IO: /* 88 */
|
|---|
| 677 | {
|
|---|
| 678 | svindex arg;
|
|---|
| 679 | BGET_svindex(arg);
|
|---|
| 680 | *(SV**)&GvIOp(bstate->bs_sv) = arg;
|
|---|
| 681 | break;
|
|---|
| 682 | }
|
|---|
| 683 | case INSN_GP_FORM: /* 89 */
|
|---|
| 684 | {
|
|---|
| 685 | svindex arg;
|
|---|
| 686 | BGET_svindex(arg);
|
|---|
| 687 | *(SV**)&GvFORM(bstate->bs_sv) = arg;
|
|---|
| 688 | break;
|
|---|
| 689 | }
|
|---|
| 690 | case INSN_GP_CVGEN: /* 90 */
|
|---|
| 691 | {
|
|---|
| 692 | U32 arg;
|
|---|
| 693 | BGET_U32(arg);
|
|---|
| 694 | GvCVGEN(bstate->bs_sv) = arg;
|
|---|
| 695 | break;
|
|---|
| 696 | }
|
|---|
| 697 | case INSN_GP_LINE: /* 91 */
|
|---|
| 698 | {
|
|---|
| 699 | line_t arg;
|
|---|
| 700 | BGET_U32(arg);
|
|---|
| 701 | GvLINE(bstate->bs_sv) = arg;
|
|---|
| 702 | break;
|
|---|
| 703 | }
|
|---|
| 704 | case INSN_GP_SHARE: /* 92 */
|
|---|
| 705 | {
|
|---|
| 706 | svindex arg;
|
|---|
| 707 | BGET_svindex(arg);
|
|---|
| 708 | BSET_gp_share(bstate->bs_sv, arg);
|
|---|
| 709 | break;
|
|---|
| 710 | }
|
|---|
| 711 | case INSN_XGV_FLAGS: /* 93 */
|
|---|
| 712 | {
|
|---|
| 713 | U8 arg;
|
|---|
| 714 | BGET_U8(arg);
|
|---|
| 715 | GvFLAGS(bstate->bs_sv) = arg;
|
|---|
| 716 | break;
|
|---|
| 717 | }
|
|---|
| 718 | case INSN_OP_NEXT: /* 94 */
|
|---|
| 719 | {
|
|---|
| 720 | opindex arg;
|
|---|
| 721 | BGET_opindex(arg);
|
|---|
| 722 | PL_op->op_next = arg;
|
|---|
| 723 | break;
|
|---|
| 724 | }
|
|---|
| 725 | case INSN_OP_SIBLING: /* 95 */
|
|---|
| 726 | {
|
|---|
| 727 | opindex arg;
|
|---|
| 728 | BGET_opindex(arg);
|
|---|
| 729 | PL_op->op_sibling = arg;
|
|---|
| 730 | break;
|
|---|
| 731 | }
|
|---|
| 732 | case INSN_OP_PPADDR: /* 96 */
|
|---|
| 733 | {
|
|---|
| 734 | strconst arg;
|
|---|
| 735 | BGET_strconst(arg);
|
|---|
| 736 | BSET_op_ppaddr(PL_op->op_ppaddr, arg);
|
|---|
| 737 | break;
|
|---|
| 738 | }
|
|---|
| 739 | case INSN_OP_TARG: /* 97 */
|
|---|
| 740 | {
|
|---|
| 741 | PADOFFSET arg;
|
|---|
| 742 | BGET_PADOFFSET(arg);
|
|---|
| 743 | PL_op->op_targ = arg;
|
|---|
| 744 | break;
|
|---|
| 745 | }
|
|---|
| 746 | case INSN_OP_TYPE: /* 98 */
|
|---|
| 747 | {
|
|---|
| 748 | OPCODE arg;
|
|---|
| 749 | BGET_U16(arg);
|
|---|
| 750 | BSET_op_type(PL_op, arg);
|
|---|
| 751 | break;
|
|---|
| 752 | }
|
|---|
| 753 | case INSN_OP_SEQ: /* 99 */
|
|---|
| 754 | {
|
|---|
| 755 | U16 arg;
|
|---|
| 756 | BGET_U16(arg);
|
|---|
| 757 | PL_op->op_seq = arg;
|
|---|
| 758 | break;
|
|---|
| 759 | }
|
|---|
| 760 | case INSN_OP_FLAGS: /* 100 */
|
|---|
| 761 | {
|
|---|
| 762 | U8 arg;
|
|---|
| 763 | BGET_U8(arg);
|
|---|
| 764 | PL_op->op_flags = arg;
|
|---|
| 765 | break;
|
|---|
| 766 | }
|
|---|
| 767 | case INSN_OP_PRIVATE: /* 101 */
|
|---|
| 768 | {
|
|---|
| 769 | U8 arg;
|
|---|
| 770 | BGET_U8(arg);
|
|---|
| 771 | PL_op->op_private = arg;
|
|---|
| 772 | break;
|
|---|
| 773 | }
|
|---|
| 774 | case INSN_OP_FIRST: /* 102 */
|
|---|
| 775 | {
|
|---|
| 776 | opindex arg;
|
|---|
| 777 | BGET_opindex(arg);
|
|---|
| 778 | cUNOP->op_first = arg;
|
|---|
| 779 | break;
|
|---|
| 780 | }
|
|---|
| 781 | case INSN_OP_LAST: /* 103 */
|
|---|
| 782 | {
|
|---|
| 783 | opindex arg;
|
|---|
| 784 | BGET_opindex(arg);
|
|---|
| 785 | cBINOP->op_last = arg;
|
|---|
| 786 | break;
|
|---|
| 787 | }
|
|---|
| 788 | case INSN_OP_OTHER: /* 104 */
|
|---|
| 789 | {
|
|---|
| 790 | opindex arg;
|
|---|
| 791 | BGET_opindex(arg);
|
|---|
| 792 | cLOGOP->op_other = arg;
|
|---|
| 793 | break;
|
|---|
| 794 | }
|
|---|
| 795 | case INSN_OP_PMREPLROOT: /* 105 */
|
|---|
| 796 | {
|
|---|
| 797 | opindex arg;
|
|---|
| 798 | BGET_opindex(arg);
|
|---|
| 799 | cPMOP->op_pmreplroot = arg;
|
|---|
| 800 | break;
|
|---|
| 801 | }
|
|---|
| 802 | case INSN_OP_PMREPLSTART: /* 106 */
|
|---|
| 803 | {
|
|---|
| 804 | opindex arg;
|
|---|
| 805 | BGET_opindex(arg);
|
|---|
| 806 | cPMOP->op_pmreplstart = arg;
|
|---|
| 807 | break;
|
|---|
| 808 | }
|
|---|
| 809 | case INSN_OP_PMNEXT: /* 107 */
|
|---|
| 810 | {
|
|---|
| 811 | opindex arg;
|
|---|
| 812 | BGET_opindex(arg);
|
|---|
| 813 | *(OP**)&cPMOP->op_pmnext = arg;
|
|---|
| 814 | break;
|
|---|
| 815 | }
|
|---|
| 816 | #ifdef USE_ITHREADS
|
|---|
| 817 | case INSN_OP_PMSTASHPV: /* 108 */
|
|---|
| 818 | {
|
|---|
| 819 | pvindex arg;
|
|---|
| 820 | BGET_pvindex(arg);
|
|---|
| 821 | BSET_op_pmstashpv(cPMOP, arg);
|
|---|
| 822 | break;
|
|---|
| 823 | }
|
|---|
| 824 | case INSN_OP_PMREPLROOTPO: /* 109 */
|
|---|
| 825 | {
|
|---|
| 826 | PADOFFSET arg;
|
|---|
| 827 | BGET_PADOFFSET(arg);
|
|---|
| 828 | cPMOP->op_pmreplroot = (OP*)arg;
|
|---|
| 829 | break;
|
|---|
| 830 | }
|
|---|
| 831 | #else
|
|---|
| 832 | case INSN_OP_PMSTASH: /* 110 */
|
|---|
| 833 | {
|
|---|
| 834 | svindex arg;
|
|---|
| 835 | BGET_svindex(arg);
|
|---|
| 836 | *(SV**)&cPMOP->op_pmstash = arg;
|
|---|
| 837 | break;
|
|---|
| 838 | }
|
|---|
| 839 | case INSN_OP_PMREPLROOTGV: /* 111 */
|
|---|
| 840 | {
|
|---|
| 841 | svindex arg;
|
|---|
| 842 | BGET_svindex(arg);
|
|---|
| 843 | *(SV**)&cPMOP->op_pmreplroot = arg;
|
|---|
| 844 | break;
|
|---|
| 845 | }
|
|---|
| 846 | #endif
|
|---|
| 847 | case INSN_PREGCOMP: /* 112 */
|
|---|
| 848 | {
|
|---|
| 849 | pvcontents arg;
|
|---|
| 850 | BGET_pvcontents(arg);
|
|---|
| 851 | BSET_pregcomp(PL_op, arg);
|
|---|
| 852 | break;
|
|---|
| 853 | }
|
|---|
| 854 | case INSN_OP_PMFLAGS: /* 113 */
|
|---|
| 855 | {
|
|---|
| 856 | U16 arg;
|
|---|
| 857 | BGET_U16(arg);
|
|---|
| 858 | cPMOP->op_pmflags = arg;
|
|---|
| 859 | break;
|
|---|
| 860 | }
|
|---|
| 861 | case INSN_OP_PMPERMFLAGS: /* 114 */
|
|---|
| 862 | {
|
|---|
| 863 | U16 arg;
|
|---|
| 864 | BGET_U16(arg);
|
|---|
| 865 | cPMOP->op_pmpermflags = arg;
|
|---|
| 866 | break;
|
|---|
| 867 | }
|
|---|
| 868 | case INSN_OP_PMDYNFLAGS: /* 115 */
|
|---|
| 869 | {
|
|---|
| 870 | U8 arg;
|
|---|
| 871 | BGET_U8(arg);
|
|---|
| 872 | cPMOP->op_pmdynflags = arg;
|
|---|
| 873 | break;
|
|---|
| 874 | }
|
|---|
| 875 | case INSN_OP_SV: /* 116 */
|
|---|
| 876 | {
|
|---|
| 877 | svindex arg;
|
|---|
| 878 | BGET_svindex(arg);
|
|---|
| 879 | cSVOP->op_sv = arg;
|
|---|
| 880 | break;
|
|---|
| 881 | }
|
|---|
| 882 | case INSN_OP_PADIX: /* 117 */
|
|---|
| 883 | {
|
|---|
| 884 | PADOFFSET arg;
|
|---|
| 885 | BGET_PADOFFSET(arg);
|
|---|
| 886 | cPADOP->op_padix = arg;
|
|---|
| 887 | break;
|
|---|
| 888 | }
|
|---|
| 889 | case INSN_OP_PV: /* 118 */
|
|---|
| 890 | {
|
|---|
| 891 | pvcontents arg;
|
|---|
| 892 | BGET_pvcontents(arg);
|
|---|
| 893 | cPVOP->op_pv = arg;
|
|---|
| 894 | break;
|
|---|
| 895 | }
|
|---|
| 896 | case INSN_OP_PV_TR: /* 119 */
|
|---|
| 897 | {
|
|---|
| 898 | op_tr_array arg;
|
|---|
| 899 | BGET_op_tr_array(arg);
|
|---|
| 900 | cPVOP->op_pv = arg;
|
|---|
| 901 | break;
|
|---|
| 902 | }
|
|---|
| 903 | case INSN_OP_REDOOP: /* 120 */
|
|---|
| 904 | {
|
|---|
| 905 | opindex arg;
|
|---|
| 906 | BGET_opindex(arg);
|
|---|
| 907 | cLOOP->op_redoop = arg;
|
|---|
| 908 | break;
|
|---|
| 909 | }
|
|---|
| 910 | case INSN_OP_NEXTOP: /* 121 */
|
|---|
| 911 | {
|
|---|
| 912 | opindex arg;
|
|---|
| 913 | BGET_opindex(arg);
|
|---|
| 914 | cLOOP->op_nextop = arg;
|
|---|
| 915 | break;
|
|---|
| 916 | }
|
|---|
| 917 | case INSN_OP_LASTOP: /* 122 */
|
|---|
| 918 | {
|
|---|
| 919 | opindex arg;
|
|---|
| 920 | BGET_opindex(arg);
|
|---|
| 921 | cLOOP->op_lastop = arg;
|
|---|
| 922 | break;
|
|---|
| 923 | }
|
|---|
| 924 | case INSN_COP_LABEL: /* 123 */
|
|---|
| 925 | {
|
|---|
| 926 | pvindex arg;
|
|---|
| 927 | BGET_pvindex(arg);
|
|---|
| 928 | cCOP->cop_label = arg;
|
|---|
| 929 | break;
|
|---|
| 930 | }
|
|---|
| 931 | #ifdef USE_ITHREADS
|
|---|
| 932 | case INSN_COP_STASHPV: /* 124 */
|
|---|
| 933 | {
|
|---|
| 934 | pvindex arg;
|
|---|
| 935 | BGET_pvindex(arg);
|
|---|
| 936 | BSET_cop_stashpv(cCOP, arg);
|
|---|
| 937 | break;
|
|---|
| 938 | }
|
|---|
| 939 | case INSN_COP_FILE: /* 125 */
|
|---|
| 940 | {
|
|---|
| 941 | pvindex arg;
|
|---|
| 942 | BGET_pvindex(arg);
|
|---|
| 943 | BSET_cop_file(cCOP, arg);
|
|---|
| 944 | break;
|
|---|
| 945 | }
|
|---|
| 946 | #else
|
|---|
| 947 | case INSN_COP_STASH: /* 126 */
|
|---|
| 948 | {
|
|---|
| 949 | svindex arg;
|
|---|
| 950 | BGET_svindex(arg);
|
|---|
| 951 | BSET_cop_stash(cCOP, arg);
|
|---|
| 952 | break;
|
|---|
| 953 | }
|
|---|
| 954 | case INSN_COP_FILEGV: /* 127 */
|
|---|
| 955 | {
|
|---|
| 956 | svindex arg;
|
|---|
| 957 | BGET_svindex(arg);
|
|---|
| 958 | BSET_cop_filegv(cCOP, arg);
|
|---|
| 959 | break;
|
|---|
| 960 | }
|
|---|
| 961 | #endif
|
|---|
| 962 | case INSN_COP_SEQ: /* 128 */
|
|---|
| 963 | {
|
|---|
| 964 | U32 arg;
|
|---|
| 965 | BGET_U32(arg);
|
|---|
| 966 | cCOP->cop_seq = arg;
|
|---|
| 967 | break;
|
|---|
| 968 | }
|
|---|
| 969 | case INSN_COP_ARYBASE: /* 129 */
|
|---|
| 970 | {
|
|---|
| 971 | I32 arg;
|
|---|
| 972 | BGET_I32(arg);
|
|---|
| 973 | cCOP->cop_arybase = arg;
|
|---|
| 974 | break;
|
|---|
| 975 | }
|
|---|
| 976 | case INSN_COP_LINE: /* 130 */
|
|---|
| 977 | {
|
|---|
| 978 | line_t arg;
|
|---|
| 979 | BGET_U32(arg);
|
|---|
| 980 | cCOP->cop_line = arg;
|
|---|
| 981 | break;
|
|---|
| 982 | }
|
|---|
| 983 | case INSN_COP_IO: /* 131 */
|
|---|
| 984 | {
|
|---|
| 985 | svindex arg;
|
|---|
| 986 | BGET_svindex(arg);
|
|---|
| 987 | cCOP->cop_io = arg;
|
|---|
| 988 | break;
|
|---|
| 989 | }
|
|---|
| 990 | case INSN_COP_WARNINGS: /* 132 */
|
|---|
| 991 | {
|
|---|
| 992 | svindex arg;
|
|---|
| 993 | BGET_svindex(arg);
|
|---|
| 994 | cCOP->cop_warnings = arg;
|
|---|
| 995 | break;
|
|---|
| 996 | }
|
|---|
| 997 | case INSN_MAIN_START: /* 133 */
|
|---|
| 998 | {
|
|---|
| 999 | opindex arg;
|
|---|
| 1000 | BGET_opindex(arg);
|
|---|
| 1001 | PL_main_start = arg;
|
|---|
| 1002 | break;
|
|---|
| 1003 | }
|
|---|
| 1004 | case INSN_MAIN_ROOT: /* 134 */
|
|---|
| 1005 | {
|
|---|
| 1006 | opindex arg;
|
|---|
| 1007 | BGET_opindex(arg);
|
|---|
| 1008 | PL_main_root = arg;
|
|---|
| 1009 | break;
|
|---|
| 1010 | }
|
|---|
| 1011 | case INSN_MAIN_CV: /* 135 */
|
|---|
| 1012 | {
|
|---|
| 1013 | svindex arg;
|
|---|
| 1014 | BGET_svindex(arg);
|
|---|
| 1015 | *(SV**)&PL_main_cv = arg;
|
|---|
| 1016 | break;
|
|---|
| 1017 | }
|
|---|
| 1018 | case INSN_CURPAD: /* 136 */
|
|---|
| 1019 | {
|
|---|
| 1020 | svindex arg;
|
|---|
| 1021 | BGET_svindex(arg);
|
|---|
| 1022 | BSET_curpad(PL_curpad, arg);
|
|---|
| 1023 | break;
|
|---|
| 1024 | }
|
|---|
| 1025 | case INSN_PUSH_BEGIN: /* 137 */
|
|---|
| 1026 | {
|
|---|
| 1027 | svindex arg;
|
|---|
| 1028 | BGET_svindex(arg);
|
|---|
| 1029 | BSET_push_begin(PL_beginav, arg);
|
|---|
| 1030 | break;
|
|---|
| 1031 | }
|
|---|
| 1032 | case INSN_PUSH_INIT: /* 138 */
|
|---|
| 1033 | {
|
|---|
| 1034 | svindex arg;
|
|---|
| 1035 | BGET_svindex(arg);
|
|---|
| 1036 | BSET_push_init(PL_initav, arg);
|
|---|
| 1037 | break;
|
|---|
| 1038 | }
|
|---|
| 1039 | case INSN_PUSH_END: /* 139 */
|
|---|
| 1040 | {
|
|---|
| 1041 | svindex arg;
|
|---|
| 1042 | BGET_svindex(arg);
|
|---|
| 1043 | BSET_push_end(PL_endav, arg);
|
|---|
| 1044 | break;
|
|---|
| 1045 | }
|
|---|
| 1046 | case INSN_CURSTASH: /* 140 */
|
|---|
| 1047 | {
|
|---|
| 1048 | svindex arg;
|
|---|
| 1049 | BGET_svindex(arg);
|
|---|
| 1050 | *(SV**)&PL_curstash = arg;
|
|---|
| 1051 | break;
|
|---|
| 1052 | }
|
|---|
| 1053 | case INSN_DEFSTASH: /* 141 */
|
|---|
| 1054 | {
|
|---|
| 1055 | svindex arg;
|
|---|
| 1056 | BGET_svindex(arg);
|
|---|
| 1057 | *(SV**)&PL_defstash = arg;
|
|---|
| 1058 | break;
|
|---|
| 1059 | }
|
|---|
| 1060 | case INSN_DATA: /* 142 */
|
|---|
| 1061 | {
|
|---|
| 1062 | U8 arg;
|
|---|
| 1063 | BGET_U8(arg);
|
|---|
| 1064 | BSET_data(none, arg);
|
|---|
| 1065 | break;
|
|---|
| 1066 | }
|
|---|
| 1067 | case INSN_INCAV: /* 143 */
|
|---|
| 1068 | {
|
|---|
| 1069 | svindex arg;
|
|---|
| 1070 | BGET_svindex(arg);
|
|---|
| 1071 | *(SV**)&GvAV(PL_incgv) = arg;
|
|---|
| 1072 | break;
|
|---|
| 1073 | }
|
|---|
| 1074 | case INSN_LOAD_GLOB: /* 144 */
|
|---|
| 1075 | {
|
|---|
| 1076 | svindex arg;
|
|---|
| 1077 | BGET_svindex(arg);
|
|---|
| 1078 | BSET_load_glob(none, arg);
|
|---|
| 1079 | break;
|
|---|
| 1080 | }
|
|---|
| 1081 | #ifdef USE_ITHREADS
|
|---|
| 1082 | case INSN_REGEX_PADAV: /* 145 */
|
|---|
| 1083 | {
|
|---|
| 1084 | svindex arg;
|
|---|
| 1085 | BGET_svindex(arg);
|
|---|
| 1086 | *(SV**)&PL_regex_padav = arg;
|
|---|
| 1087 | break;
|
|---|
| 1088 | }
|
|---|
| 1089 | #endif
|
|---|
| 1090 | case INSN_DOWARN: /* 146 */
|
|---|
| 1091 | {
|
|---|
| 1092 | U8 arg;
|
|---|
| 1093 | BGET_U8(arg);
|
|---|
| 1094 | PL_dowarn = arg;
|
|---|
| 1095 | break;
|
|---|
| 1096 | }
|
|---|
| 1097 | case INSN_COMPPAD_NAME: /* 147 */
|
|---|
| 1098 | {
|
|---|
| 1099 | svindex arg;
|
|---|
| 1100 | BGET_svindex(arg);
|
|---|
| 1101 | *(SV**)&PL_comppad_name = arg;
|
|---|
| 1102 | break;
|
|---|
| 1103 | }
|
|---|
| 1104 | case INSN_XGV_STASH: /* 148 */
|
|---|
| 1105 | {
|
|---|
| 1106 | svindex arg;
|
|---|
| 1107 | BGET_svindex(arg);
|
|---|
| 1108 | *(SV**)&GvSTASH(bstate->bs_sv) = arg;
|
|---|
| 1109 | break;
|
|---|
| 1110 | }
|
|---|
| 1111 | case INSN_SIGNAL: /* 149 */
|
|---|
| 1112 | {
|
|---|
| 1113 | strconst arg;
|
|---|
| 1114 | BGET_strconst(arg);
|
|---|
| 1115 | BSET_signal(bstate->bs_sv, arg);
|
|---|
| 1116 | break;
|
|---|
| 1117 | }
|
|---|
| 1118 | case INSN_FORMFEED: /* 150 */
|
|---|
| 1119 | {
|
|---|
| 1120 | svindex arg;
|
|---|
| 1121 | BGET_svindex(arg);
|
|---|
| 1122 | PL_formfeed = arg;
|
|---|
| 1123 | break;
|
|---|
| 1124 | }
|
|---|
| 1125 | default:
|
|---|
| 1126 | Perl_croak(aTHX_ "Illegal bytecode instruction %d\n", insn);
|
|---|
| 1127 | /* NOTREACHED */
|
|---|
| 1128 | }
|
|---|
| 1129 | }
|
|---|
| 1130 | return 0;
|
|---|
| 1131 | }
|
|---|
| 1132 |
|
|---|
| 1133 | /* ex: set ro: */
|
|---|