this repo has no description
1# Copyright (c) Facebook, Inc. and its affiliates. (http://www.facebook.com)
2from .opcode37 import opcode as opcode37
3from .opcodebase import Opcode
4
5opcode: Opcode = opcode37.copy()
6opcode.def_op("INVOKE_METHOD", 162)
7opcode.hasconst.add(162)
8opcode.def_op("INVOKE_METHOD_CACHED", 163)
9opcode.def_op("LOAD_FIELD", 164)
10opcode.hasconst.add(164)
11opcode.def_op("STORE_FIELD", 165)
12opcode.hasconst.add(165)
13opcode.name_op("RAISE_IF_NONE", 166)
14opcode.def_op("CAST", 167)
15opcode.hasconst.add(167)
16opcode.def_op("LOAD_LOCAL", 168)
17opcode.hasconst.add(168)
18opcode.def_op("STORE_LOCAL", 169)
19opcode.hasconst.add(169)
20opcode.def_op("INT_LOAD_CONST", 170)
21opcode.def_op("INT_BOX", 171)
22opcode.def_op("CHECK_ARGS", 172)
23opcode.hasconst.add(172)
24opcode.jabs_op("POP_JUMP_IF_ZERO", 180)
25opcode.jabs_op("POP_JUMP_IF_NONZERO", 181)
26opcode.def_op("INT_UNBOX", 182)
27opcode.def_op("INT_BINARY_OP", 191)
28opcode.def_op("INT_UNARY_OP", 192)
29opcode.def_op("INT_COMPARE_OP", 193)
30opcode.def_op("LOAD_ITERABLE_ARG", 194)
31opcode.def_op("LOAD_MAPPING_ARG", 195)
32opcode.def_op("INVOKE_FUNCTION", 196)
33opcode.def_op("FAST_LEN", 197)
34opcode.def_op("CONVERT_PRIMITIVE", 198)
35# facebook begin t39538061
36opcode.jabs_op("JUMP_IF_ZERO_OR_POP", 184)
37opcode.jabs_op("JUMP_IF_NONZERO_OR_POP", 185)
38opcode.def_op("ARRAY_GET", 186)
39opcode.def_op("ARRAY_SET", 187)
40# facebook end t39538061
41
42opcode.stack_effects.update(
43 # Static opcodes
44 ARRAY_GET=-1,
45 ARRAY_SET=-3,
46 CAST=0,
47 CHECK_ARGS=0,
48 CONVERT_PRIMITIVE=0,
49 INT_BINARY_OP=lambda oparg, jmp: -1,
50 INT_BOX=0,
51 INT_COMPARE_OP=lambda oparg, jmp: -1,
52 INT_DUP_TOP_TWO=2,
53 INT_LOAD_CONST=1,
54 INT_UNARY_OP=lambda oparg, jmp: 0,
55 INT_UNBOX=0,
56 INVOKE_METHOD=lambda oparg, jmp: -oparg[1],
57 JUMP_IF_NONZERO_OR_POP=lambda oparg, jmp=0: 0 if jmp else -1,
58 JUMP_IF_ZERO_OR_POP=lambda oparg, jmp=0: 0 if jmp else -1,
59 LOAD_FIELD=0,
60 LOAD_LOCAL=1,
61 POP_JUMP_IF_NONZERO=-1,
62 POP_JUMP_IF_ZERO=-1,
63 RAISE_IF_NONE=0,
64 STORE_FIELD=-2,
65 STORE_LOCAL=-1,
66)