/* This file contains code shared by the compiler and the peepholeoptimizer.*/#ifdef WORDS_BIGENDIAN# define PACKOPARG(opcode, oparg) ((_Py_CODEUNIT)(((opcode) << 8) | (oparg)))#else# define PACKOPARG(opcode, oparg) ((_Py_CODEUNIT)(((oparg) << 8) | (opcode)))#endif/* Minimum number of code units necessary to encode instruction withEXTENDED_ARGs */static intinstrsize(unsigned int oparg){return oparg <= 0xff ? 1 :oparg <= 0xffff ? 2 :oparg <= 0xffffff ? 3 :4;}/* Spits out op/oparg pair using ilen bytes. codestr should be pointed at thedesired location of the first EXTENDED_ARG */static voidwrite_op_arg(_Py_CODEUNIT *codestr, unsigned char opcode,unsigned int oparg, int ilen){switch (ilen) {case 4:*codestr++ = PACKOPARG(EXTENDED_ARG, (oparg >> 24) & 0xff);/* fall through */case 3:*codestr++ = PACKOPARG(EXTENDED_ARG, (oparg >> 16) & 0xff);/* fall through */case 2:*codestr++ = PACKOPARG(EXTENDED_ARG, (oparg >> 8) & 0xff);/* fall through */case 1:*codestr++ = PACKOPARG(opcode, oparg & 0xff);break;default:Py_UNREACHABLE();}}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。