diff options
author | Mark Shannon <mark@hotpy.org> | 2024-01-10 15:44:34 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-01-10 15:44:34 (GMT) |
commit | a0c9cf9456c2ee7a89d9bd859c07afac8cf5e893 (patch) | |
tree | d89d0bcbd8850e29b68a262c9427c6e5288d65f7 /Python/bytecodes.c | |
parent | 93930eaf0acd64dc0d08d58321d2682cb019bc1a (diff) | |
download | cpython-a0c9cf9456c2ee7a89d9bd859c07afac8cf5e893.zip cpython-a0c9cf9456c2ee7a89d9bd859c07afac8cf5e893.tar.gz cpython-a0c9cf9456c2ee7a89d9bd859c07afac8cf5e893.tar.bz2 |
GH-113860: All executors are now defined in terms of micro ops. Convert counter executor to use uops. (GH-113864)
Diffstat (limited to 'Python/bytecodes.c')
-rw-r--r-- | Python/bytecodes.c | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/Python/bytecodes.c b/Python/bytecodes.c index e1a6a25..f53ddae 100644 --- a/Python/bytecodes.c +++ b/Python/bytecodes.c @@ -2366,16 +2366,8 @@ dummy_func( _PyExecutorObject *executor = (_PyExecutorObject *)code->co_executors->executors[oparg&255]; if (executor->vm_data.valid) { Py_INCREF(executor); - if (executor->execute == _PyUOpExecute) { - current_executor = (_PyUOpExecutorObject *)executor; - GOTO_TIER_TWO(); - } - next_instr = executor->execute(executor, frame, stack_pointer); - frame = tstate->current_frame; - if (next_instr == NULL) { - goto resume_with_error; - } - stack_pointer = _PyFrame_GetStackPointer(frame); + current_executor = (_PyUOpExecutorObject *)executor; + GOTO_TIER_TWO(); } else { code->co_executors->executors[oparg & 255] = NULL; @@ -4066,6 +4058,16 @@ dummy_func( DEOPT_IF(!current_executor->base.vm_data.valid); } + op(_LOAD_CONST_INLINE_BORROW, (ptr/4 -- value)) { + value = ptr; + } + + /* Internal -- for testing executors */ + op(_INTERNAL_INCREMENT_OPT_COUNTER, (opt --)) { + _PyCounterOptimizerObject *exe = (_PyCounterOptimizerObject *)opt; + exe->count++; + } + // END BYTECODES // |