@@ -80,13 +80,21 @@ class Bytecodes(object):
80
80
jump_on_false_top_nil = jump_on_true_top_nil + 1
81
81
jump_on_true_pop = jump_on_false_top_nil + 1
82
82
jump_on_false_pop = jump_on_true_pop + 1
83
- jump_backward = jump_on_false_pop + 1
83
+ jump_on_not_nil_top_top = jump_on_false_pop + 1
84
+ jump_on_nil_top_top = jump_on_not_nil_top_top + 1
85
+ jump_on_not_nil_pop = jump_on_nil_top_top + 1
86
+ jump_on_nil_pop = jump_on_not_nil_pop + 1
87
+ jump_backward = jump_on_nil_pop + 1
84
88
jump2 = jump_backward + 1
85
89
jump2_on_true_top_nil = jump2 + 1
86
90
jump2_on_false_top_nil = jump2_on_true_top_nil + 1
87
91
jump2_on_true_pop = jump2_on_false_top_nil + 1
88
92
jump2_on_false_pop = jump2_on_true_pop + 1
89
- jump2_backward = jump2_on_false_pop + 1
93
+ jump2_on_not_nil_top_top = jump2_on_false_pop + 1
94
+ jump2_on_nil_top_top = jump2_on_not_nil_top_top + 1
95
+ jump2_on_not_nil_pop = jump2_on_nil_top_top + 1
96
+ jump2_on_nil_pop = jump2_on_not_nil_pop + 1
97
+ jump2_backward = jump2_on_nil_pop + 1
90
98
91
99
q_super_send_1 = jump2_backward + 1
92
100
q_super_send_2 = q_super_send_1 + 1
@@ -154,12 +162,20 @@ def is_one_of(bytecode, candidates):
154
162
Bytecodes .jump_on_true_pop ,
155
163
Bytecodes .jump_on_false_pop ,
156
164
Bytecodes .jump_on_false_top_nil ,
165
+ Bytecodes .jump_on_not_nil_top_top ,
166
+ Bytecodes .jump_on_nil_top_top ,
167
+ Bytecodes .jump_on_not_nil_pop ,
168
+ Bytecodes .jump_on_nil_pop ,
157
169
Bytecodes .jump_backward ,
158
170
Bytecodes .jump2 ,
159
171
Bytecodes .jump2_on_true_top_nil ,
160
172
Bytecodes .jump2_on_true_pop ,
161
173
Bytecodes .jump2_on_false_pop ,
162
174
Bytecodes .jump2_on_false_top_nil ,
175
+ Bytecodes .jump2_on_not_nil_top_top ,
176
+ Bytecodes .jump2_on_nil_top_top ,
177
+ Bytecodes .jump2_on_not_nil_pop ,
178
+ Bytecodes .jump2_on_nil_pop ,
163
179
Bytecodes .jump2_backward ,
164
180
]
165
181
@@ -258,12 +274,20 @@ def is_one_of(bytecode, candidates):
258
274
LEN_TWO_ARGS , # jump_on_false_top_nil
259
275
LEN_TWO_ARGS , # jump_on_true_pop
260
276
LEN_TWO_ARGS , # jump_on_false_pop
277
+ LEN_TWO_ARGS , # jump_on_not_nil_top_top,
278
+ LEN_TWO_ARGS , # jump_on_nil_top_top,
279
+ LEN_TWO_ARGS , # jump_on_not_nil_pop,
280
+ LEN_TWO_ARGS , # jump_on_nil_pop,
261
281
LEN_TWO_ARGS , # jump_backward
262
282
LEN_TWO_ARGS , # jump2
263
283
LEN_TWO_ARGS , # jump2_on_true_top_nil
264
284
LEN_TWO_ARGS , # jump2_on_false_top_nil
265
285
LEN_TWO_ARGS , # jump2_on_true_pop
266
286
LEN_TWO_ARGS , # jump2_on_false_pop
287
+ LEN_TWO_ARGS , # jump2_on_not_nil_top_top,
288
+ LEN_TWO_ARGS , # jump2_on_nil_top_top,
289
+ LEN_TWO_ARGS , # jump2_on_not_nil_pop,
290
+ LEN_TWO_ARGS , # jump2_on_nil_pop,
267
291
LEN_TWO_ARGS , # jump2_backward
268
292
LEN_ONE_ARG , # q_super_send_1
269
293
LEN_ONE_ARG , # q_super_send_2
0 commit comments