mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 05:31:20 +00:00 
			
		
		
		
	gh-106701: Move the hand-written Tier 2 uops to bytecodes.c (#106702)
This moves EXIT_TRACE, SAVE_IP, JUMP_TO_TOP, and
_POP_JUMP_IF_{FALSE,TRUE} from ceval.c to bytecodes.c.
They are no less special than before, but this way
they are discoverable o the copy-and-patch tooling.
			
			
This commit is contained in:
		
							parent
							
								
									2f3ee02c22
								
							
						
					
					
						commit
						e6e0ea0113
					
				
					 5 changed files with 124 additions and 94 deletions
				
			
		|  | @ -3654,6 +3654,36 @@ dummy_func( | |||
|             Py_UNREACHABLE(); | ||||
|         } | ||||
| 
 | ||||
|         ///////// Tier-2 only opcodes /////////
 | ||||
| 
 | ||||
|         op(_POP_JUMP_IF_FALSE, (flag -- )) { | ||||
|             if (Py_IsFalse(flag)) { | ||||
|                 pc = oparg; | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         op(_POP_JUMP_IF_TRUE, (flag -- )) { | ||||
|             if (Py_IsTrue(flag)) { | ||||
|                 pc = oparg; | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         op(JUMP_TO_TOP, (--)) { | ||||
|             pc = 0; | ||||
|             CHECK_EVAL_BREAKER(); | ||||
|         } | ||||
| 
 | ||||
|         op(SAVE_IP, (--)) { | ||||
|             frame->prev_instr = ip_offset + oparg; | ||||
|         } | ||||
| 
 | ||||
|         op(EXIT_TRACE, (--)) { | ||||
|             frame->prev_instr--;  // Back up to just before destination
 | ||||
|             _PyFrame_SetStackPointer(frame, stack_pointer); | ||||
|             Py_DECREF(self); | ||||
|             return frame; | ||||
|         } | ||||
| 
 | ||||
| 
 | ||||
| // END BYTECODES //
 | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Guido van Rossum
						Guido van Rossum