From d855944bab372a01277cb652cf738b0c1e128ce6 Mon Sep 17 00:00:00 2001 From: Donghee Na Date: Fri, 15 Aug 2025 14:52:22 +0900 Subject: [PATCH] gh-133171: Re-enable JUMP_BACKWARD to free-threading build --- Python/bytecodes.c | 5 +++-- Python/generated_cases.c.h | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/Python/bytecodes.c b/Python/bytecodes.c index cdc0a785c6d72e..70b6bb940841ac 100644 --- a/Python/bytecodes.c +++ b/Python/bytecodes.c @@ -2935,9 +2935,10 @@ dummy_func( }; tier1 op(_SPECIALIZE_JUMP_BACKWARD, (--)) { - #if ENABLE_SPECIALIZATION + #if ENABLE_SPECIALIZATION_FT if (this_instr->op.code == JUMP_BACKWARD) { - this_instr->op.code = tstate->interp->jit ? JUMP_BACKWARD_JIT : JUMP_BACKWARD_NO_JIT; + uint8_t desired = tstate->interp->jit ? JUMP_BACKWARD_JIT : JUMP_BACKWARD_NO_JIT; + FT_ATOMIC_STORE_UINT8_RELAXED(this_instr->op.code, desired); // Need to re-dispatch so the warmup counter isn't off by one: next_instr = this_instr; DISPATCH_SAME_OPARG(); diff --git a/Python/generated_cases.c.h b/Python/generated_cases.c.h index b83ab941ed2b70..eada299315034e 100644 --- a/Python/generated_cases.c.h +++ b/Python/generated_cases.c.h @@ -7711,9 +7711,10 @@ /* Skip 1 cache entry */ // _SPECIALIZE_JUMP_BACKWARD { - #if ENABLE_SPECIALIZATION + #if ENABLE_SPECIALIZATION_FT if (this_instr->op.code == JUMP_BACKWARD) { - this_instr->op.code = tstate->interp->jit ? JUMP_BACKWARD_JIT : JUMP_BACKWARD_NO_JIT; + uint8_t desired = tstate->interp->jit ? JUMP_BACKWARD_JIT : JUMP_BACKWARD_NO_JIT; + FT_ATOMIC_STORE_UINT8_RELAXED(this_instr->op.code, desired); next_instr = this_instr; DISPATCH_SAME_OPARG(); }