⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 byterun.c

📁 UNIX下perl实现代码
💻 C
📖 第 1 页 / 共 2 页
字号:
		AvFILLp(bstate->bs_sv) = arg;		break;	    }	  case INSN_XAV_MAX:		/* 57 */	    {		SSize_t arg;		BGET_I32(arg);		AvMAX(bstate->bs_sv) = arg;		break;	    }	  case INSN_XAV_FLAGS:		/* 58 */	    {		U8 arg;		BGET_U8(arg);		AvFLAGS(bstate->bs_sv) = arg;		break;	    }	  case INSN_XHV_RITER:		/* 59 */	    {		I32 arg;		BGET_I32(arg);		HvRITER(bstate->bs_sv) = arg;		break;	    }	  case INSN_XHV_NAME:		/* 60 */	    {		pvcontents arg;		BGET_pvcontents(arg);		HvNAME(bstate->bs_sv) = arg;		break;	    }	  case INSN_HV_STORE:		/* 61 */	    {		svindex arg;		BGET_svindex(arg);		BSET_hv_store(bstate->bs_sv, arg);		break;	    }	  case INSN_SV_MAGIC:		/* 62 */	    {		char arg;		BGET_U8(arg);		BSET_sv_magic(bstate->bs_sv, arg);		break;	    }	  case INSN_MG_OBJ:		/* 63 */	    {		svindex arg;		BGET_svindex(arg);		SvMAGIC(bstate->bs_sv)->mg_obj = arg;		break;	    }	  case INSN_MG_PRIVATE:		/* 64 */	    {		U16 arg;		BGET_U16(arg);		SvMAGIC(bstate->bs_sv)->mg_private = arg;		break;	    }	  case INSN_MG_FLAGS:		/* 65 */	    {		U8 arg;		BGET_U8(arg);		SvMAGIC(bstate->bs_sv)->mg_flags = arg;		break;	    }	  case INSN_MG_PV:		/* 66 */	    {		pvcontents arg;		BGET_pvcontents(arg);		BSET_mg_pv(SvMAGIC(bstate->bs_sv), arg);		break;	    }	  case INSN_XMG_STASH:		/* 67 */	    {		svindex arg;		BGET_svindex(arg);		*(SV**)&SvSTASH(bstate->bs_sv) = arg;		break;	    }	  case INSN_GV_FETCHPV:		/* 68 */	    {		strconst arg;		BGET_strconst(arg);		BSET_gv_fetchpv(bstate->bs_sv, arg);		break;	    }	  case INSN_GV_STASHPV:		/* 69 */	    {		strconst arg;		BGET_strconst(arg);		BSET_gv_stashpv(bstate->bs_sv, arg);		break;	    }	  case INSN_GP_SV:		/* 70 */	    {		svindex arg;		BGET_svindex(arg);		GvSV(bstate->bs_sv) = arg;		break;	    }	  case INSN_GP_REFCNT:		/* 71 */	    {		U32 arg;		BGET_U32(arg);		GvREFCNT(bstate->bs_sv) = arg;		break;	    }	  case INSN_GP_REFCNT_ADD:		/* 72 */	    {		I32 arg;		BGET_I32(arg);		BSET_gp_refcnt_add(GvREFCNT(bstate->bs_sv), arg);		break;	    }	  case INSN_GP_AV:		/* 73 */	    {		svindex arg;		BGET_svindex(arg);		*(SV**)&GvAV(bstate->bs_sv) = arg;		break;	    }	  case INSN_GP_HV:		/* 74 */	    {		svindex arg;		BGET_svindex(arg);		*(SV**)&GvHV(bstate->bs_sv) = arg;		break;	    }	  case INSN_GP_CV:		/* 75 */	    {		svindex arg;		BGET_svindex(arg);		*(SV**)&GvCV(bstate->bs_sv) = arg;		break;	    }	  case INSN_GP_FILE:		/* 76 */	    {		pvindex arg;		BGET_pvindex(arg);		GvFILE(bstate->bs_sv) = arg;		break;	    }	  case INSN_GP_IO:		/* 77 */	    {		svindex arg;		BGET_svindex(arg);		*(SV**)&GvIOp(bstate->bs_sv) = arg;		break;	    }	  case INSN_GP_FORM:		/* 78 */	    {		svindex arg;		BGET_svindex(arg);		*(SV**)&GvFORM(bstate->bs_sv) = arg;		break;	    }	  case INSN_GP_CVGEN:		/* 79 */	    {		U32 arg;		BGET_U32(arg);		GvCVGEN(bstate->bs_sv) = arg;		break;	    }	  case INSN_GP_LINE:		/* 80 */	    {		line_t arg;		BGET_U16(arg);		GvLINE(bstate->bs_sv) = arg;		break;	    }	  case INSN_GP_SHARE:		/* 81 */	    {		svindex arg;		BGET_svindex(arg);		BSET_gp_share(bstate->bs_sv, arg);		break;	    }	  case INSN_XGV_FLAGS:		/* 82 */	    {		U8 arg;		BGET_U8(arg);		GvFLAGS(bstate->bs_sv) = arg;		break;	    }	  case INSN_OP_NEXT:		/* 83 */	    {		opindex arg;		BGET_opindex(arg);		PL_op->op_next = arg;		break;	    }	  case INSN_OP_SIBLING:		/* 84 */	    {		opindex arg;		BGET_opindex(arg);		PL_op->op_sibling = arg;		break;	    }	  case INSN_OP_PPADDR:		/* 85 */	    {		strconst arg;		BGET_strconst(arg);		BSET_op_ppaddr(PL_op->op_ppaddr, arg);		break;	    }	  case INSN_OP_TARG:		/* 86 */	    {		PADOFFSET arg;		BGET_U32(arg);		PL_op->op_targ = arg;		break;	    }	  case INSN_OP_TYPE:		/* 87 */	    {		OPCODE arg;		BGET_U16(arg);		BSET_op_type(PL_op, arg);		break;	    }	  case INSN_OP_SEQ:		/* 88 */	    {		U16 arg;		BGET_U16(arg);		PL_op->op_seq = arg;		break;	    }	  case INSN_OP_FLAGS:		/* 89 */	    {		U8 arg;		BGET_U8(arg);		PL_op->op_flags = arg;		break;	    }	  case INSN_OP_PRIVATE:		/* 90 */	    {		U8 arg;		BGET_U8(arg);		PL_op->op_private = arg;		break;	    }	  case INSN_OP_FIRST:		/* 91 */	    {		opindex arg;		BGET_opindex(arg);		cUNOP->op_first = arg;		break;	    }	  case INSN_OP_LAST:		/* 92 */	    {		opindex arg;		BGET_opindex(arg);		cBINOP->op_last = arg;		break;	    }	  case INSN_OP_OTHER:		/* 93 */	    {		opindex arg;		BGET_opindex(arg);		cLOGOP->op_other = arg;		break;	    }	  case INSN_OP_PMREPLROOT:		/* 94 */	    {		opindex arg;		BGET_opindex(arg);		cPMOP->op_pmreplroot = arg;		break;	    }	  case INSN_OP_PMREPLROOTGV:		/* 95 */	    {		svindex arg;		BGET_svindex(arg);		*(SV**)&cPMOP->op_pmreplroot = arg;		break;	    }	  case INSN_OP_PMREPLSTART:		/* 96 */	    {		opindex arg;		BGET_opindex(arg);		cPMOP->op_pmreplstart = arg;		break;	    }	  case INSN_OP_PMNEXT:		/* 97 */	    {		opindex arg;		BGET_opindex(arg);		*(OP**)&cPMOP->op_pmnext = arg;		break;	    }	  case INSN_PREGCOMP:		/* 98 */	    {		pvcontents arg;		BGET_pvcontents(arg);		BSET_pregcomp(PL_op, arg);		break;	    }	  case INSN_OP_PMFLAGS:		/* 99 */	    {		U16 arg;		BGET_U16(arg);		cPMOP->op_pmflags = arg;		break;	    }	  case INSN_OP_PMPERMFLAGS:		/* 100 */	    {		U16 arg;		BGET_U16(arg);		cPMOP->op_pmpermflags = arg;		break;	    }	  case INSN_OP_SV:		/* 101 */	    {		svindex arg;		BGET_svindex(arg);		cSVOP->op_sv = arg;		break;	    }	  case INSN_OP_PADIX:		/* 102 */	    {		PADOFFSET arg;		BGET_U32(arg);		cPADOP->op_padix = arg;		break;	    }	  case INSN_OP_PV:		/* 103 */	    {		pvcontents arg;		BGET_pvcontents(arg);		cPVOP->op_pv = arg;		break;	    }	  case INSN_OP_PV_TR:		/* 104 */	    {		op_tr_array arg;		BGET_op_tr_array(arg);		cPVOP->op_pv = arg;		break;	    }	  case INSN_OP_REDOOP:		/* 105 */	    {		opindex arg;		BGET_opindex(arg);		cLOOP->op_redoop = arg;		break;	    }	  case INSN_OP_NEXTOP:		/* 106 */	    {		opindex arg;		BGET_opindex(arg);		cLOOP->op_nextop = arg;		break;	    }	  case INSN_OP_LASTOP:		/* 107 */	    {		opindex arg;		BGET_opindex(arg);		cLOOP->op_lastop = arg;		break;	    }	  case INSN_COP_LABEL:		/* 108 */	    {		pvindex arg;		BGET_pvindex(arg);		cCOP->cop_label = arg;		break;	    }	  case INSN_COP_STASHPV:		/* 109 */	    {		pvindex arg;		BGET_pvindex(arg);		BSET_cop_stashpv(cCOP, arg);		break;	    }	  case INSN_COP_FILE:		/* 110 */	    {		pvindex arg;		BGET_pvindex(arg);		BSET_cop_file(cCOP, arg);		break;	    }	  case INSN_COP_SEQ:		/* 111 */	    {		U32 arg;		BGET_U32(arg);		cCOP->cop_seq = arg;		break;	    }	  case INSN_COP_ARYBASE:		/* 112 */	    {		I32 arg;		BGET_I32(arg);		cCOP->cop_arybase = arg;		break;	    }	  case INSN_COP_LINE:		/* 113 */	    {		line_t arg;		BGET_U16(arg);		BSET_cop_line(cCOP, arg);		break;	    }	  case INSN_COP_WARNINGS:		/* 114 */	    {		svindex arg;		BGET_svindex(arg);		cCOP->cop_warnings = arg;		break;	    }	  case INSN_MAIN_START:		/* 115 */	    {		opindex arg;		BGET_opindex(arg);		PL_main_start = arg;		break;	    }	  case INSN_MAIN_ROOT:		/* 116 */	    {		opindex arg;		BGET_opindex(arg);		PL_main_root = arg;		break;	    }	  case INSN_CURPAD:		/* 117 */	    {		svindex arg;		BGET_svindex(arg);		BSET_curpad(PL_curpad, arg);		break;	    }	  case INSN_PUSH_BEGIN:		/* 118 */	    {		svindex arg;		BGET_svindex(arg);		BSET_push_begin(PL_beginav, arg);		break;	    }	  case INSN_PUSH_INIT:		/* 119 */	    {		svindex arg;		BGET_svindex(arg);		BSET_push_init(PL_initav, arg);		break;	    }	  case INSN_PUSH_END:		/* 120 */	    {		svindex arg;		BGET_svindex(arg);		BSET_push_end(PL_endav, arg);		break;	    }	  default:	    Perl_croak(aTHX_ "Illegal bytecode instruction %d\n", insn);	    /* NOTREACHED */	}    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -