library/compiler/opcode38static.py (77 lines of code) (raw):
# Copyright (c) Facebook, Inc. and its affiliates. (http://www.facebook.com)
from .opcode38cinder import opcode as opcode38cinder
from .opcodebase import Opcode
opcode: Opcode = opcode38cinder.copy()
opcode.def_op("INVOKE_METHOD", 164)
opcode.hasconst.add(164)
opcode.def_op("LOAD_FIELD", 165)
opcode.hasconst.add(165)
opcode.def_op("STORE_FIELD", 166)
opcode.hasconst.add(166)
opcode.def_op("SEQUENCE_REPEAT", 167)
opcode.def_op("CAST", 170)
opcode.hasconst.add(170)
opcode.def_op("LOAD_LOCAL", 171)
opcode.hasconst.add(171)
opcode.def_op("STORE_LOCAL", 172)
opcode.hasconst.add(172)
opcode.def_op("INT_LOAD_CONST_OLD", 173)
opcode.def_op("PRIMITIVE_BOX", 174)
opcode.jabs_op("POP_JUMP_IF_ZERO", 175)
opcode.jabs_op("POP_JUMP_IF_NONZERO", 176)
opcode.def_op("PRIMITIVE_UNBOX", 177)
opcode.def_op("PRIMITIVE_BINARY_OP", 178)
opcode.def_op("PRIMITIVE_UNARY_OP", 179)
opcode.def_op("INT_COMPARE_OP", 180)
opcode.def_op("LOAD_ITERABLE_ARG", 181)
opcode.def_op("LOAD_MAPPING_ARG", 182)
opcode.def_op("INVOKE_FUNCTION", 183)
opcode.hasconst.add(183)
opcode.jabs_op("JUMP_IF_ZERO_OR_POP", 184)
opcode.jabs_op("JUMP_IF_NONZERO_OR_POP", 185)
opcode.def_op("FAST_LEN", 186)
opcode.def_op("CONVERT_PRIMITIVE", 187)
opcode.def_op("CHECK_ARGS", 188)
opcode.hasconst.add(188)
opcode.def_op("BUILD_CHECKED_MAP", 191)
opcode.hasconst.add(191)
opcode.def_op("SEQUENCE_GET", 192)
opcode.def_op("SEQUENCE_SET", 193)
opcode.def_op("LIST_DEL", 194)
opcode.def_op("REFINE_TYPE", 195)
opcode.hasconst.add(195)
opcode.def_op("PRIMITIVE_LOAD_CONST", 196)
opcode.hasconst.add(196)
opcode.def_op("RETURN_INT", 197)
opcode.stack_effects.update( # noqa: C408
# Static opcodes
BUILD_CHECKED_MAP=lambda oparg, jmp: 1 - 2 * oparg[1],
CAST=0,
CHECK_ARGS=0,
CONVERT_PRIMITIVE=0,
FAST_LEN=0,
PRIMITIVE_BINARY_OP=lambda oparg, jmp: -1,
PRIMITIVE_BOX=0,
INT_COMPARE_OP=lambda oparg, jmp: -1,
INT_DUP_TOP_TWO=2,
PRIMITIVE_LOAD_CONST=1,
INT_LOAD_CONST_OLD=1,
PRIMITIVE_UNARY_OP=lambda oparg, jmp: 0,
PRIMITIVE_UNBOX=0,
INVOKE_FUNCTION=lambda oparg, jmp=0: (-oparg[1]) + 1,
INVOKE_METHOD=lambda oparg, jmp: -oparg[1],
JUMP_IF_NONZERO_OR_POP=lambda oparg, jmp=0: 0 if jmp else -1,
JUMP_IF_ZERO_OR_POP=lambda oparg, jmp=0: 0 if jmp else -1,
LIST_DEL=-2,
SEQUENCE_GET=-1,
SEQUENCE_SET=-3,
LOAD_FIELD=0,
LOAD_ITERABLE_ARG=1,
LOAD_LOCAL=1,
LOAD_MAPPING_ARG=lambda oparg, jmp=0: -1 if oparg == 2 else 1,
POP_JUMP_IF_NONZERO=-1,
POP_JUMP_IF_ZERO=-1,
STORE_FIELD=-2,
STORE_LOCAL=-1,
SEQUENCE_REPEAT=-1,
REFINE_TYPE=0,
RETURN_INT=-1,
)