File tree Expand file tree Collapse file tree 1 file changed +6
-2
lines changed Expand file tree Collapse file tree 1 file changed +6
-2
lines changed Original file line number Diff line number Diff line change @@ -615,8 +615,6 @@ _PyJIT_translate_single_bytecode_to_trace(
615615        // If we haven't guarded the IP, then it's untraceable. 
616616        (frame  !=  tstate -> interp -> jit_state .jit_tracer_current_frame  &&  !needs_guard_ip ) || 
617617        (oparg  >  0xFFFF ) || 
618-         // TODO handle BINARY_OP_INPLACE_ADD_UNICODE 
619-         opcode  ==  BINARY_OP_INPLACE_ADD_UNICODE  || 
620618        // TODO (gh-140277): The constituent uops are invalid. 
621619        opcode  ==  BINARY_OP_SUBSCR_GETITEM  || 
622620        // Exception stuff, could be handled in the future maybe? 
@@ -838,6 +836,12 @@ _PyJIT_translate_single_bytecode_to_trace(
838836                        operand  =  0 ;
839837                    }
840838                }
839+                 if  (uop  ==  _BINARY_OP_INPLACE_ADD_UNICODE ) {
840+                     assert (i  +  1  ==  nuops );
841+                     _Py_CODEUNIT  * next_instr  =  target_instr  +  1  +  _PyOpcode_Caches [_PyOpcode_Deopt [opcode ]];
842+                     assert (next_instr -> op .code  ==  STORE_FAST );
843+                     operand  =  next_instr -> op .arg ;
844+                 }
841845                // All other instructions 
842846                ADD_TO_TRACE (uop , oparg , operand , target );
843847            }
 
 
   
 
     
   
   
          
    
    
     
    
      
     
     
    You can’t perform that action at this time.
  
 
    
  
    
      
        
     
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments