tier2 op(_ERROR_POP_N, (target/2 --)) {
assert(oparg == 0);
- _Py_CODEUNIT *current_instr = _PyFrame_GetBytecode(frame) + target;
- _Py_CODEUNIT *next_instr = current_instr + 1 + _PyOpcode_Caches[_PyOpcode_Deopt[current_instr->op.code]];
- // gh-140104: The exception handler expects frame->instr_ptr to be pointing to next_instr, not this_instr!
- frame->instr_ptr = next_instr;
+ frame->instr_ptr = _PyFrame_GetBytecode(frame) + target;
SYNC_SP();
GOTO_TIER_ONE(NULL);
}
oparg = CURRENT_OPARG();
uint32_t target = (uint32_t)CURRENT_OPERAND0();
assert(oparg == 0);
- _Py_CODEUNIT *current_instr = _PyFrame_GetBytecode(frame) + target;
- _Py_CODEUNIT *next_instr = current_instr + 1 + _PyOpcode_Caches[_PyOpcode_Deopt[current_instr->op.code]];
- frame->instr_ptr = next_instr;
+ frame->instr_ptr = _PyFrame_GetBytecode(frame) + target;
GOTO_TIER_ONE(NULL);
break;
}
assert(length <= UOP_MAX_TRACE_LENGTH);
// Check executor coldness
- PyThreadState *tstate = PyThreadState_Get();
// It's okay if this ends up going negative.
if (--tstate->interp->executor_creation_counter == 0) {
_Py_set_eval_breaker_bit(tstate, _PY_EVAL_JIT_INVALIDATE_COLD_BIT);