summaryrefslogtreecommitdiffstats
path: root/Python/optimizer_bytecodes.c
diff options
context:
space:
mode:
Diffstat (limited to 'Python/optimizer_bytecodes.c')
-rw-r--r--Python/optimizer_bytecodes.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/Python/optimizer_bytecodes.c b/Python/optimizer_bytecodes.c
index ea7c39b..cfa0a73 100644
--- a/Python/optimizer_bytecodes.c
+++ b/Python/optimizer_bytecodes.c
@@ -546,10 +546,14 @@ dummy_func(void) {
}
}
- op (_PUSH_NULL_CONDITIONAL, ( -- null if (oparg & 1))) {
- int opcode = (oparg & 1) ? _PUSH_NULL : _NOP;
- REPLACE_OP(this_instr, opcode, 0, 0);
- null = sym_new_null(ctx);
+ op (_PUSH_NULL_CONDITIONAL, ( -- null[oparg & 1])) {
+ if (oparg & 1) {
+ REPLACE_OP(this_instr, _PUSH_NULL, 0, 0);
+ null[0] = sym_new_null(ctx);
+ }
+ else {
+ REPLACE_OP(this_instr, _NOP, 0, 0);
+ }
}
op(_LOAD_ATTR, (owner -- attr, self_or_null[oparg&1])) {
@@ -765,7 +769,7 @@ dummy_func(void) {
Py_UNREACHABLE();
}
- op(_PUSH_FRAME, (new_frame: _Py_UOpsAbstractFrame * -- unused if (0))) {
+ op(_PUSH_FRAME, (new_frame: _Py_UOpsAbstractFrame * -- )) {
SYNC_SP();
ctx->frame->stack_pointer = stack_pointer;
ctx->frame = new_frame;