@@ -73,24 +73,24 @@ static const int8_t EVENT_FOR_OPCODE[256] = {
7373 [INSTRUMENTED_YIELD_VALUE ] = PY_MONITORING_EVENT_PY_YIELD ,
7474 [JUMP_FORWARD ] = PY_MONITORING_EVENT_JUMP ,
7575 [JUMP_BACKWARD ] = PY_MONITORING_EVENT_JUMP ,
76- [POP_JUMP_IF_FALSE ] = PY_MONITORING_EVENT_BRANCH_TAKEN ,
77- [POP_JUMP_IF_TRUE ] = PY_MONITORING_EVENT_BRANCH_TAKEN ,
78- [POP_JUMP_IF_NONE ] = PY_MONITORING_EVENT_BRANCH_TAKEN ,
79- [POP_JUMP_IF_NOT_NONE ] = PY_MONITORING_EVENT_BRANCH_TAKEN ,
76+ [POP_JUMP_IF_FALSE ] = PY_MONITORING_EVENT_BRANCH_RIGHT ,
77+ [POP_JUMP_IF_TRUE ] = PY_MONITORING_EVENT_BRANCH_RIGHT ,
78+ [POP_JUMP_IF_NONE ] = PY_MONITORING_EVENT_BRANCH_RIGHT ,
79+ [POP_JUMP_IF_NOT_NONE ] = PY_MONITORING_EVENT_BRANCH_RIGHT ,
8080 [INSTRUMENTED_JUMP_FORWARD ] = PY_MONITORING_EVENT_JUMP ,
8181 [INSTRUMENTED_JUMP_BACKWARD ] = PY_MONITORING_EVENT_JUMP ,
82- [INSTRUMENTED_POP_JUMP_IF_FALSE ] = PY_MONITORING_EVENT_BRANCH_TAKEN ,
83- [INSTRUMENTED_POP_JUMP_IF_TRUE ] = PY_MONITORING_EVENT_BRANCH_TAKEN ,
84- [INSTRUMENTED_POP_JUMP_IF_NONE ] = PY_MONITORING_EVENT_BRANCH_TAKEN ,
85- [INSTRUMENTED_POP_JUMP_IF_NOT_NONE ] = PY_MONITORING_EVENT_BRANCH_TAKEN ,
86- [FOR_ITER ] = PY_MONITORING_EVENT_BRANCH_TAKEN ,
87- [INSTRUMENTED_FOR_ITER ] = PY_MONITORING_EVENT_BRANCH_TAKEN ,
82+ [INSTRUMENTED_POP_JUMP_IF_FALSE ] = PY_MONITORING_EVENT_BRANCH_RIGHT ,
83+ [INSTRUMENTED_POP_JUMP_IF_TRUE ] = PY_MONITORING_EVENT_BRANCH_RIGHT ,
84+ [INSTRUMENTED_POP_JUMP_IF_NONE ] = PY_MONITORING_EVENT_BRANCH_RIGHT ,
85+ [INSTRUMENTED_POP_JUMP_IF_NOT_NONE ] = PY_MONITORING_EVENT_BRANCH_RIGHT ,
86+ [FOR_ITER ] = PY_MONITORING_EVENT_BRANCH_RIGHT ,
87+ [INSTRUMENTED_FOR_ITER ] = PY_MONITORING_EVENT_BRANCH_RIGHT ,
8888 [END_FOR ] = PY_MONITORING_EVENT_STOP_ITERATION ,
8989 [INSTRUMENTED_END_FOR ] = PY_MONITORING_EVENT_STOP_ITERATION ,
9090 [END_SEND ] = PY_MONITORING_EVENT_STOP_ITERATION ,
9191 [INSTRUMENTED_END_SEND ] = PY_MONITORING_EVENT_STOP_ITERATION ,
92- [NOT_TAKEN ] = PY_MONITORING_EVENT_BRANCH_NOT_TAKEN ,
93- [INSTRUMENTED_NOT_TAKEN ] = PY_MONITORING_EVENT_BRANCH_NOT_TAKEN ,
92+ [NOT_TAKEN ] = PY_MONITORING_EVENT_BRANCH_LEFT ,
93+ [INSTRUMENTED_NOT_TAKEN ] = PY_MONITORING_EVENT_BRANCH_LEFT ,
9494};
9595
9696static const uint8_t DE_INSTRUMENT [256 ] = {
@@ -1048,8 +1048,8 @@ static const char *const event_names [] = {
10481048 [PY_MONITORING_EVENT_INSTRUCTION ] = "INSTRUCTION" ,
10491049 [PY_MONITORING_EVENT_JUMP ] = "JUMP" ,
10501050 [PY_MONITORING_EVENT_BRANCH ] = "BRANCH" ,
1051- [PY_MONITORING_EVENT_BRANCH_TAKEN ] = "BRANCH_TAKEN " ,
1052- [PY_MONITORING_EVENT_BRANCH_NOT_TAKEN ] = "BRANCH_NOT_TAKEN " ,
1051+ [PY_MONITORING_EVENT_BRANCH_RIGHT ] = "BRANCH_RIGHT " ,
1052+ [PY_MONITORING_EVENT_BRANCH_LEFT ] = "BRANCH_LEFT " ,
10531053 [PY_MONITORING_EVENT_C_RETURN ] = "C_RETURN" ,
10541054 [PY_MONITORING_EVENT_PY_THROW ] = "PY_THROW" ,
10551055 [PY_MONITORING_EVENT_RAISE ] = "RAISE" ,
@@ -1077,8 +1077,8 @@ call_instrumentation_vector(
10771077 /* Offset visible to user should be the offset in bytes, as that is the
10781078 * convention for APIs involving code offsets. */
10791079 int bytes_offset = offset * (int )sizeof (_Py_CODEUNIT );
1080- if (event == PY_MONITORING_EVENT_BRANCH_NOT_TAKEN ) {
1081- assert (EVENT_FOR_OPCODE [_Py_GetBaseCodeUnit (code , offset - 2 ).op .code ] == PY_MONITORING_EVENT_BRANCH_TAKEN );
1080+ if (event == PY_MONITORING_EVENT_BRANCH_LEFT ) {
1081+ assert (EVENT_FOR_OPCODE [_Py_GetBaseCodeUnit (code , offset - 2 ).op .code ] == PY_MONITORING_EVENT_BRANCH_RIGHT );
10821082 bytes_offset -= 4 ;
10831083 }
10841084 PyObject * offset_obj = PyLong_FromLong (bytes_offset );
@@ -1161,8 +1161,8 @@ _Py_call_instrumentation_jump(
11611161 _PyInterpreterFrame * frame , _Py_CODEUNIT * instr , _Py_CODEUNIT * target )
11621162{
11631163 assert (event == PY_MONITORING_EVENT_JUMP ||
1164- event == PY_MONITORING_EVENT_BRANCH_TAKEN ||
1165- event == PY_MONITORING_EVENT_BRANCH_NOT_TAKEN );
1164+ event == PY_MONITORING_EVENT_BRANCH_RIGHT ||
1165+ event == PY_MONITORING_EVENT_BRANCH_LEFT );
11661166 // Set the instruction pointer to the source of the jump
11671167 frame -> instr_ptr = instr ;
11681168 PyCodeObject * code = _PyFrame_GetCode (frame );
@@ -2190,7 +2190,7 @@ monitoring_set_events_impl(PyObject *module, int tool_id, int event_set)
21902190 event_set &= ~C_RETURN_EVENTS ;
21912191 if (event_set & (1 << PY_MONITORING_EVENT_BRANCH )) {
21922192 event_set &= ~(1 << PY_MONITORING_EVENT_BRANCH );
2193- event_set |= (1 << PY_MONITORING_EVENT_BRANCH_TAKEN ) | (1 << PY_MONITORING_EVENT_BRANCH_NOT_TAKEN );
2193+ event_set |= (1 << PY_MONITORING_EVENT_BRANCH_RIGHT ) | (1 << PY_MONITORING_EVENT_BRANCH_LEFT );
21942194 }
21952195 if (_PyMonitoring_SetEvents (tool_id , event_set )) {
21962196 return NULL ;
@@ -2266,7 +2266,7 @@ monitoring_set_local_events_impl(PyObject *module, int tool_id,
22662266 event_set &= ~C_RETURN_EVENTS ;
22672267 if (event_set & (1 << PY_MONITORING_EVENT_BRANCH )) {
22682268 event_set &= ~(1 << PY_MONITORING_EVENT_BRANCH );
2269- event_set |= (1 << PY_MONITORING_EVENT_BRANCH_TAKEN ) | (1 << PY_MONITORING_EVENT_BRANCH_NOT_TAKEN );
2269+ event_set |= (1 << PY_MONITORING_EVENT_BRANCH_RIGHT ) | (1 << PY_MONITORING_EVENT_BRANCH_LEFT );
22702270 }
22712271 if (event_set < 0 || event_set >= (1 << _PY_MONITORING_LOCAL_EVENTS )) {
22722272 PyErr_Format (PyExc_ValueError , "invalid local event set 0x%x" , event_set );
@@ -2403,6 +2403,13 @@ PyObject *_Py_CreateMonitoringObject(void)
24032403 goto error ;
24042404 }
24052405 }
2406+ /* TO DO -- Remove these pseudonyms */
2407+ if (add_power2_constant (events , "BRANCH_TAKEN" , PY_MONITORING_EVENT_BRANCH_RIGHT )) {
2408+ goto error ;
2409+ }
2410+ if (add_power2_constant (events , "BRANCH_NOT_TAKEN" , PY_MONITORING_EVENT_BRANCH_LEFT )) {
2411+ goto error ;
2412+ }
24062413 err = PyObject_SetAttrString (events , "NO_EVENTS" , _PyLong_GetZero ());
24072414 if (err ) goto error ;
24082415 PyObject * val = PyLong_FromLong (PY_MONITORING_DEBUGGER_ID );
@@ -2594,7 +2601,7 @@ _PyMonitoring_FireBranchEvent(PyMonitoringState *state, PyObject *codelike, int3
25942601 assert (state -> active );
25952602 PyObject * args [4 ] = { NULL , NULL , NULL , target_offset };
25962603 return capi_call_instrumentation (state , codelike , offset , args , 3 ,
2597- PY_MONITORING_EVENT_BRANCH_TAKEN );
2604+ PY_MONITORING_EVENT_BRANCH_RIGHT );
25982605}
25992606
26002607int
@@ -2604,7 +2611,7 @@ _PyMonitoring_FireBranchTakenEvent(PyMonitoringState *state, PyObject *codelike,
26042611 assert (state -> active );
26052612 PyObject * args [4 ] = { NULL , NULL , NULL , target_offset };
26062613 return capi_call_instrumentation (state , codelike , offset , args , 3 ,
2607- PY_MONITORING_EVENT_BRANCH_TAKEN );
2614+ PY_MONITORING_EVENT_BRANCH_RIGHT );
26082615}
26092616
26102617int
@@ -2614,7 +2621,7 @@ _PyMonitoring_FireBranchNotTakenEvent(PyMonitoringState *state, PyObject *codeli
26142621 assert (state -> active );
26152622 PyObject * args [4 ] = { NULL , NULL , NULL , target_offset };
26162623 return capi_call_instrumentation (state , codelike , offset , args , 3 ,
2617- PY_MONITORING_EVENT_BRANCH_NOT_TAKEN );
2624+ PY_MONITORING_EVENT_BRANCH_LEFT );
26182625}
26192626
26202627int
@@ -2812,7 +2819,7 @@ branch_handler(
28122819 return res ;
28132820 }
28142821 int other_event = self -> taken ?
2815- PY_MONITORING_EVENT_BRANCH_NOT_TAKEN : PY_MONITORING_EVENT_BRANCH_TAKEN ;
2822+ PY_MONITORING_EVENT_BRANCH_LEFT : PY_MONITORING_EVENT_BRANCH_RIGHT ;
28162823 LOCK_CODE (code );
28172824 remove_tools (code , offset , other_event , 1 << self -> tool_id );
28182825 UNLOCK_CODE ();
@@ -2864,8 +2871,8 @@ _PyMonitoring_RegisterCallback(int tool_id, int event_id, PyObject *obj)
28642871 return NULL ;
28652872 }
28662873 }
2867- Py_XDECREF (exchange_callables (tool_id , PY_MONITORING_EVENT_BRANCH_TAKEN , taken ));
2868- res = exchange_callables (tool_id , PY_MONITORING_EVENT_BRANCH_NOT_TAKEN , not_taken );
2874+ Py_XDECREF (exchange_callables (tool_id , PY_MONITORING_EVENT_BRANCH_RIGHT , taken ));
2875+ res = exchange_callables (tool_id , PY_MONITORING_EVENT_BRANCH_LEFT , not_taken );
28692876 }
28702877 else {
28712878 res = exchange_callables (tool_id , event_id , Py_XNewRef (obj ));
@@ -2919,7 +2926,7 @@ branchesiter_next(branchesiterator *bi)
29192926 _Py_CODEUNIT inst = _Py_GetBaseCodeUnit (bi -> bi_code , offset );
29202927 int next_offset = offset + _PyInstruction_GetLength (bi -> bi_code , offset );
29212928 int event = EVENT_FOR_OPCODE [inst .op .code ];
2922- if (event == PY_MONITORING_EVENT_BRANCH_TAKEN ) {
2929+ if (event == PY_MONITORING_EVENT_BRANCH_RIGHT ) {
29232930 /* Skip NOT_TAKEN */
29242931 int not_taken = next_offset + 1 ;
29252932 bi -> bi_offset = not_taken ;
0 commit comments