19251925 ASSERT_WITHIN_STACK_BOUNDS(__FILE__, __LINE__);
19261926 _PyFrame_SetStackPointer(frame, stack_pointer);
19271927 _PyFrame_StackPointerValidate(frame);
1928- int err = check_periodics (tstate);
1928+ int err = check_periodics_at_end (tstate, frame );
19291929 _PyFrame_StackPointerInvalidate(frame);
19301930 if (err != 0) {
19311931 JUMP_TO_LABEL(error);
24422442 {
24432443 assert(stack_pointer == _PyFrame_GetStackPointer(frame));
24442444 _PyFrame_StackPointerValidate(frame);
2445- int err = check_periodics (tstate);
2445+ int err = check_periodics_at_end (tstate, frame );
24462446 _PyFrame_StackPointerInvalidate(frame);
24472447 if (err != 0) {
24482448 JUMP_TO_LABEL(error);
25352535 {
25362536 assert(stack_pointer == _PyFrame_GetStackPointer(frame));
25372537 _PyFrame_StackPointerValidate(frame);
2538- int err = check_periodics (tstate);
2538+ int err = check_periodics_at_end (tstate, frame );
25392539 _PyFrame_StackPointerInvalidate(frame);
25402540 if (err != 0) {
25412541 JUMP_TO_LABEL(error);
26242624 {
26252625 assert(stack_pointer == _PyFrame_GetStackPointer(frame));
26262626 _PyFrame_StackPointerValidate(frame);
2627- int err = check_periodics (tstate);
2627+ int err = check_periodics_at_end (tstate, frame );
26282628 _PyFrame_StackPointerInvalidate(frame);
26292629 if (err != 0) {
26302630 JUMP_TO_LABEL(error);
27352735 {
27362736 assert(stack_pointer == _PyFrame_GetStackPointer(frame));
27372737 _PyFrame_StackPointerValidate(frame);
2738- int err = check_periodics (tstate);
2738+ int err = check_periodics_at_end (tstate, frame );
27392739 _PyFrame_StackPointerInvalidate(frame);
27402740 if (err != 0) {
27412741 JUMP_TO_LABEL(error);
28492849 ASSERT_WITHIN_STACK_BOUNDS(__FILE__, __LINE__);
28502850 _PyFrame_SetStackPointer(frame, stack_pointer);
28512851 _PyFrame_StackPointerValidate(frame);
2852- int err = check_periodics (tstate);
2852+ int err = check_periodics_at_end (tstate, frame );
28532853 _PyFrame_StackPointerInvalidate(frame);
28542854 if (err != 0) {
28552855 JUMP_TO_LABEL(error);
31773177 ASSERT_WITHIN_STACK_BOUNDS(__FILE__, __LINE__);
31783178 _PyFrame_SetStackPointer(frame, stack_pointer);
31793179 _PyFrame_StackPointerValidate(frame);
3180- int err = check_periodics (tstate);
3180+ int err = check_periodics_at_end (tstate, frame );
31813181 _PyFrame_StackPointerInvalidate(frame);
31823182 if (err != 0) {
31833183 JUMP_TO_LABEL(error);
36863686 ASSERT_WITHIN_STACK_BOUNDS(__FILE__, __LINE__);
36873687 _PyFrame_SetStackPointer(frame, stack_pointer);
36883688 _PyFrame_StackPointerValidate(frame);
3689- int err = check_periodics (tstate);
3689+ int err = check_periodics_at_end (tstate, frame );
36903690 _PyFrame_StackPointerInvalidate(frame);
36913691 if (err != 0) {
36923692 JUMP_TO_LABEL(error);
41024102 {
41034103 assert(stack_pointer == _PyFrame_GetStackPointer(frame));
41044104 _PyFrame_StackPointerValidate(frame);
4105- int err = check_periodics (tstate);
4105+ int err = check_periodics_at_end (tstate, frame );
41064106 _PyFrame_StackPointerInvalidate(frame);
41074107 if (err != 0) {
41084108 JUMP_TO_LABEL(error);
42224222 {
42234223 assert(stack_pointer == _PyFrame_GetStackPointer(frame));
42244224 _PyFrame_StackPointerValidate(frame);
4225- int err = check_periodics (tstate);
4225+ int err = check_periodics_at_end (tstate, frame );
42264226 _PyFrame_StackPointerInvalidate(frame);
42274227 if (err != 0) {
42284228 JUMP_TO_LABEL(error);
43444344 {
43454345 assert(stack_pointer == _PyFrame_GetStackPointer(frame));
43464346 _PyFrame_StackPointerValidate(frame);
4347- int err = check_periodics (tstate);
4347+ int err = check_periodics_at_end (tstate, frame );
43484348 _PyFrame_StackPointerInvalidate(frame);
43494349 if (err != 0) {
43504350 JUMP_TO_LABEL(error);
44794479 {
44804480 assert(stack_pointer == _PyFrame_GetStackPointer(frame));
44814481 _PyFrame_StackPointerValidate(frame);
4482- int err = check_periodics (tstate);
4482+ int err = check_periodics_at_end (tstate, frame );
44834483 _PyFrame_StackPointerInvalidate(frame);
44844484 if (err != 0) {
44854485 JUMP_TO_LABEL(error);
45564556 ASSERT_WITHIN_STACK_BOUNDS(__FILE__, __LINE__);
45574557 _PyFrame_SetStackPointer(frame, stack_pointer);
45584558 _PyFrame_StackPointerValidate(frame);
4559- int err = check_periodics (tstate);
4559+ int err = check_periodics_at_end (tstate, frame );
45604560 _PyFrame_StackPointerInvalidate(frame);
45614561 if (err != 0) {
45624562 JUMP_TO_LABEL(error);
48544854 {
48554855 assert(stack_pointer == _PyFrame_GetStackPointer(frame));
48564856 _PyFrame_StackPointerValidate(frame);
4857- int err = check_periodics (tstate);
4857+ int err = check_periodics_at_end (tstate, frame );
48584858 _PyFrame_StackPointerInvalidate(frame);
48594859 if (err != 0) {
48604860 JUMP_TO_LABEL(error);
49324932 {
49334933 assert(stack_pointer == _PyFrame_GetStackPointer(frame));
49344934 _PyFrame_StackPointerValidate(frame);
4935- int err = check_periodics (tstate);
4935+ int err = check_periodics_at_end (tstate, frame );
49364936 _PyFrame_StackPointerInvalidate(frame);
49374937 if (err != 0) {
49384938 JUMP_TO_LABEL(error);
58805880 DISPATCH();
58815881 }
58825882
5883- TARGET(DELETE_GLOBAL) {
5884- #if _Py_TAIL_CALL_INTERP
5885- int opcode = DELETE_GLOBAL;
5886- (void)(opcode);
5887- #endif
5888- frame->instr_ptr = next_instr;
5889- next_instr += 1;
5890- INSTRUCTION_STATS(DELETE_GLOBAL);
5891- PyObject *name = GETITEM(FRAME_CO_NAMES, oparg);
5892- _PyFrame_SetStackPointer(frame, stack_pointer);
5893- _PyFrame_StackPointerValidate(frame);
5894- int err = PyDict_Pop(GLOBALS(), name, NULL);
5895- _PyFrame_StackPointerInvalidate(frame);
5896- if (err < 0) {
5897- JUMP_TO_LABEL(error);
5898- }
5899- if (err == 0) {
5900- assert(stack_pointer == _PyFrame_GetStackPointer(frame));
5901- _PyFrame_StackPointerValidate(frame);
5902- _PyEval_FormatExcCheckArg(tstate, PyExc_NameError,
5903- NAME_ERROR_MSG, name);
5904- _PyFrame_StackPointerInvalidate(frame);
5905- JUMP_TO_LABEL(error);
5906- }
5907- DISPATCH();
5908- }
5909-
5910- TARGET(DELETE_NAME) {
5911- #if _Py_TAIL_CALL_INTERP
5912- int opcode = DELETE_NAME;
5913- (void)(opcode);
5914- #endif
5915- frame->instr_ptr = next_instr;
5916- next_instr += 1;
5917- INSTRUCTION_STATS(DELETE_NAME);
5918- PyObject *name = GETITEM(FRAME_CO_NAMES, oparg);
5919- PyObject *ns = LOCALS();
5920- int err;
5921- if (ns == NULL) {
5922- _PyFrame_SetStackPointer(frame, stack_pointer);
5923- _PyFrame_StackPointerValidate(frame);
5924- _PyErr_Format(tstate, PyExc_SystemError,
5925- "no locals when deleting %R", name);
5926- _PyFrame_StackPointerInvalidate(frame);
5927- JUMP_TO_LABEL(error);
5928- }
5929- _PyFrame_SetStackPointer(frame, stack_pointer);
5930- _PyFrame_StackPointerValidate(frame);
5931- err = PyObject_DelItem(ns, name);
5932- _PyFrame_StackPointerInvalidate(frame);
5933- if (err != 0) {
5934- assert(stack_pointer == _PyFrame_GetStackPointer(frame));
5935- _PyFrame_StackPointerValidate(frame);
5936- _PyEval_FormatExcCheckArg(tstate, PyExc_NameError,
5937- NAME_ERROR_MSG,
5938- name);
5939- _PyFrame_StackPointerInvalidate(frame);
5940- JUMP_TO_LABEL(error);
5941- }
5942- DISPATCH();
5943- }
5944-
59455883 TARGET(DELETE_SUBSCR) {
59465884 #if _Py_TAIL_CALL_INTERP
59475885 int opcode = DELETE_SUBSCR;
88948832 ASSERT_WITHIN_STACK_BOUNDS(__FILE__, __LINE__);
88958833 _PyFrame_SetStackPointer(frame, stack_pointer);
88968834 _PyFrame_StackPointerValidate(frame);
8897- int err = check_periodics (tstate);
8835+ int err = check_periodics_at_end (tstate, frame );
88988836 _PyFrame_StackPointerInvalidate(frame);
88998837 if (err != 0) {
89008838 JUMP_TO_LABEL(error);
90769014 ASSERT_WITHIN_STACK_BOUNDS(__FILE__, __LINE__);
90779015 _PyFrame_SetStackPointer(frame, stack_pointer);
90789016 _PyFrame_StackPointerValidate(frame);
9079- int err = check_periodics (tstate);
9017+ int err = check_periodics_at_end (tstate, frame );
90809018 _PyFrame_StackPointerInvalidate(frame);
90819019 if (err != 0) {
90829020 JUMP_TO_LABEL(error);
1019210130 (this_instr->op.code == JUMP_BACKWARD_JIT || is_resume)) &&
1019310131 next_instr->op.code != ENTER_EXECUTOR) {
1019410132 _Py_CODEUNIT *insert_exec_at = this_instr;
10195- while (oparg > 255) {
10196- oparg >>= 8;
10133+ for (int tmp = oparg; tmp > 255; tmp >>= 8) {
1019710134 insert_exec_at--;
1019810135 }
1019910136 int succ = _PyJit_TryInitializeTracing(tstate, frame, this_instr, insert_exec_at,
1319313130 (this_instr->op.code == JUMP_BACKWARD_JIT || is_resume)) &&
1319413131 next_instr->op.code != ENTER_EXECUTOR) {
1319513132 _Py_CODEUNIT *insert_exec_at = this_instr;
13196- while (oparg > 255) {
13197- oparg >>= 8;
13133+ for (int tmp = oparg; tmp > 255; tmp >>= 8) {
1319813134 insert_exec_at--;
1319913135 }
1320013136 int succ = _PyJit_TryInitializeTracing(tstate, frame, this_instr, insert_exec_at,
@@ -14187,17 +14123,36 @@
1418714123 _PyStackRef v;
1418814124 v = stack_pointer[-1];
1418914125 PyObject *name = GETITEM(FRAME_CO_NAMES, oparg);
14190- _PyFrame_SetStackPointer(frame, stack_pointer);
14191- _PyFrame_StackPointerValidate(frame);
14192- int err = PyDict_SetItem(GLOBALS(), name, PyStackRef_AsPyObjectBorrow(v));
14193- _PyFrame_StackPointerInvalidate(frame);
14194- stack_pointer += -1;
14195- ASSERT_WITHIN_STACK_BOUNDS(__FILE__, __LINE__);
14196- _PyFrame_SetStackPointer(frame, stack_pointer);
14197- _PyFrame_StackPointerValidate(frame);
14198- PyStackRef_CLOSE(v);
14199- _PyFrame_StackPointerInvalidate(frame);
14200- if (err) {
14126+ int err;
14127+ if (PyStackRef_IsNull(v)) {
14128+ stack_pointer += -1;
14129+ ASSERT_WITHIN_STACK_BOUNDS(__FILE__, __LINE__);
14130+ _PyFrame_SetStackPointer(frame, stack_pointer);
14131+ _PyFrame_StackPointerValidate(frame);
14132+ err = PyDict_Pop(GLOBALS(), name, NULL);
14133+ _PyFrame_StackPointerInvalidate(frame);
14134+ if (err == 0) {
14135+ err = -1;
14136+ assert(stack_pointer == _PyFrame_GetStackPointer(frame));
14137+ _PyFrame_StackPointerValidate(frame);
14138+ _PyEval_FormatExcCheckArg(tstate, PyExc_NameError,
14139+ NAME_ERROR_MSG, name);
14140+ _PyFrame_StackPointerInvalidate(frame);
14141+ }
14142+ }
14143+ else {
14144+ _PyFrame_SetStackPointer(frame, stack_pointer);
14145+ _PyFrame_StackPointerValidate(frame);
14146+ err = PyDict_SetItem(GLOBALS(), name, PyStackRef_AsPyObjectBorrow(v));
14147+ _PyFrame_StackPointerInvalidate(frame);
14148+ stack_pointer += -1;
14149+ ASSERT_WITHIN_STACK_BOUNDS(__FILE__, __LINE__);
14150+ _PyFrame_SetStackPointer(frame, stack_pointer);
14151+ _PyFrame_StackPointerValidate(frame);
14152+ PyStackRef_CLOSE(v);
14153+ _PyFrame_StackPointerInvalidate(frame);
14154+ }
14155+ if (err < 0) {
1420114156 JUMP_TO_LABEL(error);
1420214157 }
1420314158 DISPATCH();
@@ -14215,42 +14170,26 @@
1421514170 v = stack_pointer[-1];
1421614171 PyObject *name = GETITEM(FRAME_CO_NAMES, oparg);
1421714172 PyObject *ns = LOCALS();
14218- int err ;
14219- if (ns == NULL) {
14220- _PyFrame_SetStackPointer(frame, stack_pointer );
14221- _PyFrame_StackPointerValidate (frame);
14222- _PyErr_Format(tstate, PyExc_SystemError,
14223- "no locals found when storing %R", name);
14224- _PyFrame_StackPointerInvalidate(frame);
14173+ _PyFrame_SetStackPointer(frame, stack_pointer) ;
14174+ _PyFrame_StackPointerValidate(frame);
14175+ int error = _PyEval_StoreName(tstate, v, name, ns );
14176+ _PyFrame_StackPointerInvalidate (frame);
14177+ if (PyStackRef_IsNull(v)) {
14178+ }
14179+ else {
1422514180 stack_pointer += -1;
1422614181 ASSERT_WITHIN_STACK_BOUNDS(__FILE__, __LINE__);
1422714182 _PyFrame_SetStackPointer(frame, stack_pointer);
1422814183 _PyFrame_StackPointerValidate(frame);
1422914184 PyStackRef_CLOSE(v);
1423014185 _PyFrame_StackPointerInvalidate(frame);
14231- JUMP_TO_LABEL(error);
14232- }
14233- if (PyDict_CheckExact(ns)) {
14234- _PyFrame_SetStackPointer(frame, stack_pointer);
14235- _PyFrame_StackPointerValidate(frame);
14236- err = PyDict_SetItem(ns, name, PyStackRef_AsPyObjectBorrow(v));
14237- _PyFrame_StackPointerInvalidate(frame);
14186+ stack_pointer += 1;
1423814187 }
14239- else {
14240- _PyFrame_SetStackPointer(frame, stack_pointer);
14241- _PyFrame_StackPointerValidate(frame);
14242- err = PyObject_SetItem(ns, name, PyStackRef_AsPyObjectBorrow(v));
14243- _PyFrame_StackPointerInvalidate(frame);
14188+ if (error) {
14189+ JUMP_TO_LABEL(pop_1_error);
1424414190 }
1424514191 stack_pointer += -1;
1424614192 ASSERT_WITHIN_STACK_BOUNDS(__FILE__, __LINE__);
14247- _PyFrame_SetStackPointer(frame, stack_pointer);
14248- _PyFrame_StackPointerValidate(frame);
14249- PyStackRef_CLOSE(v);
14250- _PyFrame_StackPointerInvalidate(frame);
14251- if (err) {
14252- JUMP_TO_LABEL(error);
14253- }
1425414193 DISPATCH();
1425514194 }
1425614195
0 commit comments