From 42d12b75c0cdf7fd169be7ffbbd355bee3ec6978 Mon Sep 17 00:00:00 2001 From: Pieter Eendebak Date: Sun, 22 Mar 2026 20:53:29 +0100 Subject: [PATCH 01/11] gh-146306: Optimize float arithmetic in JIT by mutating uniquely-referenced operands in place When the tier 2 optimizer can prove that an operand to a float operation is uniquely referenced (refcount 1), mutate it in place instead of allocating a new PyFloatObject. New tier 2 micro-ops: - _BINARY_OP_{ADD,SUBTRACT,MULTIPLY}_FLOAT_INPLACE (unique LHS) - _BINARY_OP_{ADD,SUBTRACT,MULTIPLY}_FLOAT_INPLACE_RIGHT (unique RHS) - _UNARY_NEGATIVE_FLOAT_INPLACE (unique operand) Speeds up the pyperformance nbody benchmark by ~19%. Co-Authored-By: Claude Opus 4.6 (1M context) --- Include/internal/pycore_uop_ids.h | 2446 +++++++++-------- Include/internal/pycore_uop_metadata.h | 133 + Lib/test/test_capi/test_opt.py | 165 ++ ...-03-22-12-00-00.gh-issue-146306.870ef4.rst | 3 + Python/bytecodes.c | 105 + Python/executor_cases.c.h | 615 +++++ Python/optimizer_bytecodes.c | 61 +- Python/optimizer_cases.c.h | 170 +- 8 files changed, 2469 insertions(+), 1229 deletions(-) create mode 100644 Misc/NEWS.d/next/Core_and_Builtins/2026-03-22-12-00-00.gh-issue-146306.870ef4.rst diff --git a/Include/internal/pycore_uop_ids.h b/Include/internal/pycore_uop_ids.h index f378c756654df7..64507b87d81711 100644 --- a/Include/internal/pycore_uop_ids.h +++ b/Include/internal/pycore_uop_ids.h @@ -13,23 +13,29 @@ extern "C" { #define _SET_IP 301 #define _BINARY_OP 302 #define _BINARY_OP_ADD_FLOAT 303 -#define _BINARY_OP_ADD_INT 304 -#define _BINARY_OP_ADD_UNICODE 305 -#define _BINARY_OP_EXTEND 306 -#define _BINARY_OP_INPLACE_ADD_UNICODE 307 -#define _BINARY_OP_MULTIPLY_FLOAT 308 -#define _BINARY_OP_MULTIPLY_INT 309 -#define _BINARY_OP_SUBSCR_CHECK_FUNC 310 -#define _BINARY_OP_SUBSCR_DICT 311 -#define _BINARY_OP_SUBSCR_INIT_CALL 312 -#define _BINARY_OP_SUBSCR_LIST_INT 313 -#define _BINARY_OP_SUBSCR_LIST_SLICE 314 -#define _BINARY_OP_SUBSCR_STR_INT 315 -#define _BINARY_OP_SUBSCR_TUPLE_INT 316 -#define _BINARY_OP_SUBSCR_USTR_INT 317 -#define _BINARY_OP_SUBTRACT_FLOAT 318 -#define _BINARY_OP_SUBTRACT_INT 319 -#define _BINARY_SLICE 320 +#define _BINARY_OP_ADD_FLOAT_INPLACE 304 +#define _BINARY_OP_ADD_FLOAT_INPLACE_RIGHT 305 +#define _BINARY_OP_ADD_INT 306 +#define _BINARY_OP_ADD_UNICODE 307 +#define _BINARY_OP_EXTEND 308 +#define _BINARY_OP_INPLACE_ADD_UNICODE 309 +#define _BINARY_OP_MULTIPLY_FLOAT 310 +#define _BINARY_OP_MULTIPLY_FLOAT_INPLACE 311 +#define _BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT 312 +#define _BINARY_OP_MULTIPLY_INT 313 +#define _BINARY_OP_SUBSCR_CHECK_FUNC 314 +#define _BINARY_OP_SUBSCR_DICT 315 +#define _BINARY_OP_SUBSCR_INIT_CALL 316 +#define _BINARY_OP_SUBSCR_LIST_INT 317 +#define _BINARY_OP_SUBSCR_LIST_SLICE 318 +#define _BINARY_OP_SUBSCR_STR_INT 319 +#define _BINARY_OP_SUBSCR_TUPLE_INT 320 +#define _BINARY_OP_SUBSCR_USTR_INT 321 +#define _BINARY_OP_SUBTRACT_FLOAT 322 +#define _BINARY_OP_SUBTRACT_FLOAT_INPLACE 323 +#define _BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT 324 +#define _BINARY_OP_SUBTRACT_INT 325 +#define _BINARY_SLICE 326 #define _BUILD_INTERPOLATION BUILD_INTERPOLATION #define _BUILD_LIST BUILD_LIST #define _BUILD_MAP BUILD_MAP @@ -38,174 +44,174 @@ extern "C" { #define _BUILD_STRING BUILD_STRING #define _BUILD_TEMPLATE BUILD_TEMPLATE #define _BUILD_TUPLE BUILD_TUPLE -#define _CALL_BUILTIN_CLASS 321 -#define _CALL_BUILTIN_FAST 322 -#define _CALL_BUILTIN_FAST_WITH_KEYWORDS 323 -#define _CALL_BUILTIN_O 324 -#define _CALL_FUNCTION_EX_NON_PY_GENERAL 325 -#define _CALL_INTRINSIC_1 326 +#define _CALL_BUILTIN_CLASS 327 +#define _CALL_BUILTIN_FAST 328 +#define _CALL_BUILTIN_FAST_WITH_KEYWORDS 329 +#define _CALL_BUILTIN_O 330 +#define _CALL_FUNCTION_EX_NON_PY_GENERAL 331 +#define _CALL_INTRINSIC_1 332 #define _CALL_INTRINSIC_2 CALL_INTRINSIC_2 -#define _CALL_ISINSTANCE 327 -#define _CALL_KW_NON_PY 328 -#define _CALL_LEN 329 -#define _CALL_LIST_APPEND 330 -#define _CALL_METHOD_DESCRIPTOR_FAST 331 -#define _CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS 332 -#define _CALL_METHOD_DESCRIPTOR_NOARGS 333 -#define _CALL_METHOD_DESCRIPTOR_O 334 -#define _CALL_NON_PY_GENERAL 335 -#define _CALL_STR_1 336 -#define _CALL_TUPLE_1 337 -#define _CALL_TYPE_1 338 -#define _CHECK_AND_ALLOCATE_OBJECT 339 -#define _CHECK_ATTR_CLASS 340 -#define _CHECK_ATTR_METHOD_LAZY_DICT 341 -#define _CHECK_CALL_BOUND_METHOD_EXACT_ARGS 342 +#define _CALL_ISINSTANCE 333 +#define _CALL_KW_NON_PY 334 +#define _CALL_LEN 335 +#define _CALL_LIST_APPEND 336 +#define _CALL_METHOD_DESCRIPTOR_FAST 337 +#define _CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS 338 +#define _CALL_METHOD_DESCRIPTOR_NOARGS 339 +#define _CALL_METHOD_DESCRIPTOR_O 340 +#define _CALL_NON_PY_GENERAL 341 +#define _CALL_STR_1 342 +#define _CALL_TUPLE_1 343 +#define _CALL_TYPE_1 344 +#define _CHECK_AND_ALLOCATE_OBJECT 345 +#define _CHECK_ATTR_CLASS 346 +#define _CHECK_ATTR_METHOD_LAZY_DICT 347 +#define _CHECK_CALL_BOUND_METHOD_EXACT_ARGS 348 #define _CHECK_EG_MATCH CHECK_EG_MATCH #define _CHECK_EXC_MATCH CHECK_EXC_MATCH -#define _CHECK_FUNCTION_EXACT_ARGS 343 -#define _CHECK_FUNCTION_VERSION 344 -#define _CHECK_FUNCTION_VERSION_INLINE 345 -#define _CHECK_FUNCTION_VERSION_KW 346 -#define _CHECK_IS_NOT_PY_CALLABLE 347 -#define _CHECK_IS_NOT_PY_CALLABLE_EX 348 -#define _CHECK_IS_NOT_PY_CALLABLE_KW 349 -#define _CHECK_IS_PY_CALLABLE_EX 350 -#define _CHECK_MANAGED_OBJECT_HAS_VALUES 351 -#define _CHECK_METHOD_VERSION 352 -#define _CHECK_METHOD_VERSION_KW 353 -#define _CHECK_PEP_523 354 -#define _CHECK_PERIODIC 355 -#define _CHECK_PERIODIC_AT_END 356 -#define _CHECK_PERIODIC_IF_NOT_YIELD_FROM 357 -#define _CHECK_RECURSION_REMAINING 358 -#define _CHECK_STACK_SPACE 359 -#define _CHECK_STACK_SPACE_OPERAND 360 -#define _CHECK_VALIDITY 361 -#define _COLD_DYNAMIC_EXIT 362 -#define _COLD_EXIT 363 -#define _COMPARE_OP 364 -#define _COMPARE_OP_FLOAT 365 -#define _COMPARE_OP_INT 366 -#define _COMPARE_OP_STR 367 -#define _CONTAINS_OP 368 -#define _CONTAINS_OP_DICT 369 -#define _CONTAINS_OP_SET 370 +#define _CHECK_FUNCTION_EXACT_ARGS 349 +#define _CHECK_FUNCTION_VERSION 350 +#define _CHECK_FUNCTION_VERSION_INLINE 351 +#define _CHECK_FUNCTION_VERSION_KW 352 +#define _CHECK_IS_NOT_PY_CALLABLE 353 +#define _CHECK_IS_NOT_PY_CALLABLE_EX 354 +#define _CHECK_IS_NOT_PY_CALLABLE_KW 355 +#define _CHECK_IS_PY_CALLABLE_EX 356 +#define _CHECK_MANAGED_OBJECT_HAS_VALUES 357 +#define _CHECK_METHOD_VERSION 358 +#define _CHECK_METHOD_VERSION_KW 359 +#define _CHECK_PEP_523 360 +#define _CHECK_PERIODIC 361 +#define _CHECK_PERIODIC_AT_END 362 +#define _CHECK_PERIODIC_IF_NOT_YIELD_FROM 363 +#define _CHECK_RECURSION_REMAINING 364 +#define _CHECK_STACK_SPACE 365 +#define _CHECK_STACK_SPACE_OPERAND 366 +#define _CHECK_VALIDITY 367 +#define _COLD_DYNAMIC_EXIT 368 +#define _COLD_EXIT 369 +#define _COMPARE_OP 370 +#define _COMPARE_OP_FLOAT 371 +#define _COMPARE_OP_INT 372 +#define _COMPARE_OP_STR 373 +#define _CONTAINS_OP 374 +#define _CONTAINS_OP_DICT 375 +#define _CONTAINS_OP_SET 376 #define _CONVERT_VALUE CONVERT_VALUE -#define _COPY 371 -#define _COPY_1 372 -#define _COPY_2 373 -#define _COPY_3 374 +#define _COPY 377 +#define _COPY_1 378 +#define _COPY_2 379 +#define _COPY_3 380 #define _COPY_FREE_VARS COPY_FREE_VARS -#define _CREATE_INIT_FRAME 375 +#define _CREATE_INIT_FRAME 381 #define _DELETE_ATTR DELETE_ATTR #define _DELETE_DEREF DELETE_DEREF #define _DELETE_FAST DELETE_FAST #define _DELETE_GLOBAL DELETE_GLOBAL #define _DELETE_NAME DELETE_NAME #define _DELETE_SUBSCR DELETE_SUBSCR -#define _DEOPT 376 +#define _DEOPT 382 #define _DICT_MERGE DICT_MERGE #define _DICT_UPDATE DICT_UPDATE -#define _DO_CALL 377 -#define _DO_CALL_FUNCTION_EX 378 -#define _DO_CALL_KW 379 -#define _DYNAMIC_EXIT 380 +#define _DO_CALL 383 +#define _DO_CALL_FUNCTION_EX 384 +#define _DO_CALL_KW 385 +#define _DYNAMIC_EXIT 386 #define _END_FOR END_FOR #define _END_SEND END_SEND -#define _ERROR_POP_N 381 +#define _ERROR_POP_N 387 #define _EXIT_INIT_CHECK EXIT_INIT_CHECK -#define _EXPAND_METHOD 382 -#define _EXPAND_METHOD_KW 383 -#define _FATAL_ERROR 384 +#define _EXPAND_METHOD 388 +#define _EXPAND_METHOD_KW 389 +#define _FATAL_ERROR 390 #define _FORMAT_SIMPLE FORMAT_SIMPLE #define _FORMAT_WITH_SPEC FORMAT_WITH_SPEC -#define _FOR_ITER 385 -#define _FOR_ITER_GEN_FRAME 386 -#define _FOR_ITER_TIER_TWO 387 +#define _FOR_ITER 391 +#define _FOR_ITER_GEN_FRAME 392 +#define _FOR_ITER_TIER_TWO 393 #define _GET_AITER GET_AITER #define _GET_ANEXT GET_ANEXT #define _GET_AWAITABLE GET_AWAITABLE #define _GET_ITER GET_ITER #define _GET_LEN GET_LEN -#define _GUARD_BINARY_OP_EXTEND 388 -#define _GUARD_BINARY_OP_SUBSCR_TUPLE_INT_BOUNDS 389 -#define _GUARD_BIT_IS_SET_POP 390 -#define _GUARD_BIT_IS_SET_POP_4 391 -#define _GUARD_BIT_IS_SET_POP_5 392 -#define _GUARD_BIT_IS_SET_POP_6 393 -#define _GUARD_BIT_IS_SET_POP_7 394 -#define _GUARD_BIT_IS_UNSET_POP 395 -#define _GUARD_BIT_IS_UNSET_POP_4 396 -#define _GUARD_BIT_IS_UNSET_POP_5 397 -#define _GUARD_BIT_IS_UNSET_POP_6 398 -#define _GUARD_BIT_IS_UNSET_POP_7 399 -#define _GUARD_CALLABLE_ISINSTANCE 400 -#define _GUARD_CALLABLE_LEN 401 -#define _GUARD_CALLABLE_LIST_APPEND 402 -#define _GUARD_CALLABLE_STR_1 403 -#define _GUARD_CALLABLE_TUPLE_1 404 -#define _GUARD_CALLABLE_TYPE_1 405 -#define _GUARD_CODE_VERSION_RETURN_GENERATOR 406 -#define _GUARD_CODE_VERSION_RETURN_VALUE 407 -#define _GUARD_CODE_VERSION_YIELD_VALUE 408 -#define _GUARD_CODE_VERSION__PUSH_FRAME 409 -#define _GUARD_DORV_NO_DICT 410 -#define _GUARD_DORV_VALUES_INST_ATTR_FROM_DICT 411 -#define _GUARD_GLOBALS_VERSION 412 -#define _GUARD_IP_RETURN_GENERATOR 413 -#define _GUARD_IP_RETURN_VALUE 414 -#define _GUARD_IP_YIELD_VALUE 415 -#define _GUARD_IP__PUSH_FRAME 416 -#define _GUARD_IS_FALSE_POP 417 -#define _GUARD_IS_NONE_POP 418 -#define _GUARD_IS_NOT_NONE_POP 419 -#define _GUARD_IS_TRUE_POP 420 -#define _GUARD_KEYS_VERSION 421 -#define _GUARD_NOS_ANY_DICT 422 -#define _GUARD_NOS_COMPACT_ASCII 423 -#define _GUARD_NOS_DICT 424 -#define _GUARD_NOS_FLOAT 425 -#define _GUARD_NOS_INT 426 -#define _GUARD_NOS_LIST 427 -#define _GUARD_NOS_NOT_NULL 428 -#define _GUARD_NOS_NULL 429 -#define _GUARD_NOS_OVERFLOWED 430 -#define _GUARD_NOS_TUPLE 431 -#define _GUARD_NOS_UNICODE 432 -#define _GUARD_NOT_EXHAUSTED_LIST 433 -#define _GUARD_NOT_EXHAUSTED_RANGE 434 -#define _GUARD_NOT_EXHAUSTED_TUPLE 435 -#define _GUARD_THIRD_NULL 436 -#define _GUARD_TOS_ANY_DICT 437 -#define _GUARD_TOS_ANY_SET 438 -#define _GUARD_TOS_DICT 439 -#define _GUARD_TOS_FLOAT 440 -#define _GUARD_TOS_FROZENDICT 441 -#define _GUARD_TOS_FROZENSET 442 -#define _GUARD_TOS_INT 443 -#define _GUARD_TOS_LIST 444 -#define _GUARD_TOS_OVERFLOWED 445 -#define _GUARD_TOS_SET 446 -#define _GUARD_TOS_SLICE 447 -#define _GUARD_TOS_TUPLE 448 -#define _GUARD_TOS_UNICODE 449 -#define _GUARD_TYPE_VERSION 450 -#define _GUARD_TYPE_VERSION_LOCKED 451 -#define _HANDLE_PENDING_AND_DEOPT 452 +#define _GUARD_BINARY_OP_EXTEND 394 +#define _GUARD_BINARY_OP_SUBSCR_TUPLE_INT_BOUNDS 395 +#define _GUARD_BIT_IS_SET_POP 396 +#define _GUARD_BIT_IS_SET_POP_4 397 +#define _GUARD_BIT_IS_SET_POP_5 398 +#define _GUARD_BIT_IS_SET_POP_6 399 +#define _GUARD_BIT_IS_SET_POP_7 400 +#define _GUARD_BIT_IS_UNSET_POP 401 +#define _GUARD_BIT_IS_UNSET_POP_4 402 +#define _GUARD_BIT_IS_UNSET_POP_5 403 +#define _GUARD_BIT_IS_UNSET_POP_6 404 +#define _GUARD_BIT_IS_UNSET_POP_7 405 +#define _GUARD_CALLABLE_ISINSTANCE 406 +#define _GUARD_CALLABLE_LEN 407 +#define _GUARD_CALLABLE_LIST_APPEND 408 +#define _GUARD_CALLABLE_STR_1 409 +#define _GUARD_CALLABLE_TUPLE_1 410 +#define _GUARD_CALLABLE_TYPE_1 411 +#define _GUARD_CODE_VERSION_RETURN_GENERATOR 412 +#define _GUARD_CODE_VERSION_RETURN_VALUE 413 +#define _GUARD_CODE_VERSION_YIELD_VALUE 414 +#define _GUARD_CODE_VERSION__PUSH_FRAME 415 +#define _GUARD_DORV_NO_DICT 416 +#define _GUARD_DORV_VALUES_INST_ATTR_FROM_DICT 417 +#define _GUARD_GLOBALS_VERSION 418 +#define _GUARD_IP_RETURN_GENERATOR 419 +#define _GUARD_IP_RETURN_VALUE 420 +#define _GUARD_IP_YIELD_VALUE 421 +#define _GUARD_IP__PUSH_FRAME 422 +#define _GUARD_IS_FALSE_POP 423 +#define _GUARD_IS_NONE_POP 424 +#define _GUARD_IS_NOT_NONE_POP 425 +#define _GUARD_IS_TRUE_POP 426 +#define _GUARD_KEYS_VERSION 427 +#define _GUARD_NOS_ANY_DICT 428 +#define _GUARD_NOS_COMPACT_ASCII 429 +#define _GUARD_NOS_DICT 430 +#define _GUARD_NOS_FLOAT 431 +#define _GUARD_NOS_INT 432 +#define _GUARD_NOS_LIST 433 +#define _GUARD_NOS_NOT_NULL 434 +#define _GUARD_NOS_NULL 435 +#define _GUARD_NOS_OVERFLOWED 436 +#define _GUARD_NOS_TUPLE 437 +#define _GUARD_NOS_UNICODE 438 +#define _GUARD_NOT_EXHAUSTED_LIST 439 +#define _GUARD_NOT_EXHAUSTED_RANGE 440 +#define _GUARD_NOT_EXHAUSTED_TUPLE 441 +#define _GUARD_THIRD_NULL 442 +#define _GUARD_TOS_ANY_DICT 443 +#define _GUARD_TOS_ANY_SET 444 +#define _GUARD_TOS_DICT 445 +#define _GUARD_TOS_FLOAT 446 +#define _GUARD_TOS_FROZENDICT 447 +#define _GUARD_TOS_FROZENSET 448 +#define _GUARD_TOS_INT 449 +#define _GUARD_TOS_LIST 450 +#define _GUARD_TOS_OVERFLOWED 451 +#define _GUARD_TOS_SET 452 +#define _GUARD_TOS_SLICE 453 +#define _GUARD_TOS_TUPLE 454 +#define _GUARD_TOS_UNICODE 455 +#define _GUARD_TYPE_VERSION 456 +#define _GUARD_TYPE_VERSION_LOCKED 457 +#define _HANDLE_PENDING_AND_DEOPT 458 #define _IMPORT_FROM IMPORT_FROM #define _IMPORT_NAME IMPORT_NAME -#define _INIT_CALL_BOUND_METHOD_EXACT_ARGS 453 -#define _INIT_CALL_PY_EXACT_ARGS 454 -#define _INIT_CALL_PY_EXACT_ARGS_0 455 -#define _INIT_CALL_PY_EXACT_ARGS_1 456 -#define _INIT_CALL_PY_EXACT_ARGS_2 457 -#define _INIT_CALL_PY_EXACT_ARGS_3 458 -#define _INIT_CALL_PY_EXACT_ARGS_4 459 -#define _INSERT_1_LOAD_CONST_INLINE 460 -#define _INSERT_1_LOAD_CONST_INLINE_BORROW 461 -#define _INSERT_2_LOAD_CONST_INLINE_BORROW 462 -#define _INSERT_NULL 463 +#define _INIT_CALL_BOUND_METHOD_EXACT_ARGS 459 +#define _INIT_CALL_PY_EXACT_ARGS 460 +#define _INIT_CALL_PY_EXACT_ARGS_0 461 +#define _INIT_CALL_PY_EXACT_ARGS_1 462 +#define _INIT_CALL_PY_EXACT_ARGS_2 463 +#define _INIT_CALL_PY_EXACT_ARGS_3 464 +#define _INIT_CALL_PY_EXACT_ARGS_4 465 +#define _INSERT_1_LOAD_CONST_INLINE 466 +#define _INSERT_1_LOAD_CONST_INLINE_BORROW 467 +#define _INSERT_2_LOAD_CONST_INLINE_BORROW 468 +#define _INSERT_NULL 469 #define _INSTRUMENTED_FOR_ITER INSTRUMENTED_FOR_ITER #define _INSTRUMENTED_INSTRUCTION INSTRUMENTED_INSTRUCTION #define _INSTRUMENTED_JUMP_FORWARD INSTRUMENTED_JUMP_FORWARD @@ -215,1096 +221,1118 @@ extern "C" { #define _INSTRUMENTED_POP_JUMP_IF_NONE INSTRUMENTED_POP_JUMP_IF_NONE #define _INSTRUMENTED_POP_JUMP_IF_NOT_NONE INSTRUMENTED_POP_JUMP_IF_NOT_NONE #define _INSTRUMENTED_POP_JUMP_IF_TRUE INSTRUMENTED_POP_JUMP_IF_TRUE -#define _IS_NONE 464 -#define _IS_OP 465 -#define _ITER_CHECK_LIST 466 -#define _ITER_CHECK_RANGE 467 -#define _ITER_CHECK_TUPLE 468 -#define _ITER_JUMP_LIST 469 -#define _ITER_JUMP_RANGE 470 -#define _ITER_JUMP_TUPLE 471 -#define _ITER_NEXT_LIST 472 -#define _ITER_NEXT_LIST_TIER_TWO 473 -#define _ITER_NEXT_RANGE 474 -#define _ITER_NEXT_TUPLE 475 +#define _IS_NONE 470 +#define _IS_OP 471 +#define _ITER_CHECK_LIST 472 +#define _ITER_CHECK_RANGE 473 +#define _ITER_CHECK_TUPLE 474 +#define _ITER_JUMP_LIST 475 +#define _ITER_JUMP_RANGE 476 +#define _ITER_JUMP_TUPLE 477 +#define _ITER_NEXT_LIST 478 +#define _ITER_NEXT_LIST_TIER_TWO 479 +#define _ITER_NEXT_RANGE 480 +#define _ITER_NEXT_TUPLE 481 #define _JUMP_BACKWARD_NO_INTERRUPT JUMP_BACKWARD_NO_INTERRUPT -#define _JUMP_TO_TOP 476 +#define _JUMP_TO_TOP 482 #define _LIST_APPEND LIST_APPEND #define _LIST_EXTEND LIST_EXTEND -#define _LOAD_ATTR 477 -#define _LOAD_ATTR_CLASS 478 +#define _LOAD_ATTR 483 +#define _LOAD_ATTR_CLASS 484 #define _LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN -#define _LOAD_ATTR_INSTANCE_VALUE 479 -#define _LOAD_ATTR_METHOD_LAZY_DICT 480 -#define _LOAD_ATTR_METHOD_NO_DICT 481 -#define _LOAD_ATTR_METHOD_WITH_VALUES 482 -#define _LOAD_ATTR_MODULE 483 -#define _LOAD_ATTR_NONDESCRIPTOR_NO_DICT 484 -#define _LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES 485 -#define _LOAD_ATTR_PROPERTY_FRAME 486 -#define _LOAD_ATTR_SLOT 487 -#define _LOAD_ATTR_WITH_HINT 488 +#define _LOAD_ATTR_INSTANCE_VALUE 485 +#define _LOAD_ATTR_METHOD_LAZY_DICT 486 +#define _LOAD_ATTR_METHOD_NO_DICT 487 +#define _LOAD_ATTR_METHOD_WITH_VALUES 488 +#define _LOAD_ATTR_MODULE 489 +#define _LOAD_ATTR_NONDESCRIPTOR_NO_DICT 490 +#define _LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES 491 +#define _LOAD_ATTR_PROPERTY_FRAME 492 +#define _LOAD_ATTR_SLOT 493 +#define _LOAD_ATTR_WITH_HINT 494 #define _LOAD_BUILD_CLASS LOAD_BUILD_CLASS -#define _LOAD_BYTECODE 489 +#define _LOAD_BYTECODE 495 #define _LOAD_COMMON_CONSTANT LOAD_COMMON_CONSTANT #define _LOAD_CONST LOAD_CONST -#define _LOAD_CONST_INLINE 490 -#define _LOAD_CONST_INLINE_BORROW 491 -#define _LOAD_CONST_UNDER_INLINE 492 -#define _LOAD_CONST_UNDER_INLINE_BORROW 493 +#define _LOAD_CONST_INLINE 496 +#define _LOAD_CONST_INLINE_BORROW 497 +#define _LOAD_CONST_UNDER_INLINE 498 +#define _LOAD_CONST_UNDER_INLINE_BORROW 499 #define _LOAD_DEREF LOAD_DEREF -#define _LOAD_FAST 494 -#define _LOAD_FAST_0 495 -#define _LOAD_FAST_1 496 -#define _LOAD_FAST_2 497 -#define _LOAD_FAST_3 498 -#define _LOAD_FAST_4 499 -#define _LOAD_FAST_5 500 -#define _LOAD_FAST_6 501 -#define _LOAD_FAST_7 502 +#define _LOAD_FAST 500 +#define _LOAD_FAST_0 501 +#define _LOAD_FAST_1 502 +#define _LOAD_FAST_2 503 +#define _LOAD_FAST_3 504 +#define _LOAD_FAST_4 505 +#define _LOAD_FAST_5 506 +#define _LOAD_FAST_6 507 +#define _LOAD_FAST_7 508 #define _LOAD_FAST_AND_CLEAR LOAD_FAST_AND_CLEAR -#define _LOAD_FAST_BORROW 503 -#define _LOAD_FAST_BORROW_0 504 -#define _LOAD_FAST_BORROW_1 505 -#define _LOAD_FAST_BORROW_2 506 -#define _LOAD_FAST_BORROW_3 507 -#define _LOAD_FAST_BORROW_4 508 -#define _LOAD_FAST_BORROW_5 509 -#define _LOAD_FAST_BORROW_6 510 -#define _LOAD_FAST_BORROW_7 511 +#define _LOAD_FAST_BORROW 509 +#define _LOAD_FAST_BORROW_0 510 +#define _LOAD_FAST_BORROW_1 511 +#define _LOAD_FAST_BORROW_2 512 +#define _LOAD_FAST_BORROW_3 513 +#define _LOAD_FAST_BORROW_4 514 +#define _LOAD_FAST_BORROW_5 515 +#define _LOAD_FAST_BORROW_6 516 +#define _LOAD_FAST_BORROW_7 517 #define _LOAD_FAST_CHECK LOAD_FAST_CHECK #define _LOAD_FROM_DICT_OR_DEREF LOAD_FROM_DICT_OR_DEREF #define _LOAD_FROM_DICT_OR_GLOBALS LOAD_FROM_DICT_OR_GLOBALS -#define _LOAD_GLOBAL 512 -#define _LOAD_GLOBAL_BUILTINS 513 -#define _LOAD_GLOBAL_MODULE 514 +#define _LOAD_GLOBAL 518 +#define _LOAD_GLOBAL_BUILTINS 519 +#define _LOAD_GLOBAL_MODULE 520 #define _LOAD_LOCALS LOAD_LOCALS #define _LOAD_NAME LOAD_NAME -#define _LOAD_SMALL_INT 515 -#define _LOAD_SMALL_INT_0 516 -#define _LOAD_SMALL_INT_1 517 -#define _LOAD_SMALL_INT_2 518 -#define _LOAD_SMALL_INT_3 519 -#define _LOAD_SPECIAL 520 +#define _LOAD_SMALL_INT 521 +#define _LOAD_SMALL_INT_0 522 +#define _LOAD_SMALL_INT_1 523 +#define _LOAD_SMALL_INT_2 524 +#define _LOAD_SMALL_INT_3 525 +#define _LOAD_SPECIAL 526 #define _LOAD_SUPER_ATTR_ATTR LOAD_SUPER_ATTR_ATTR #define _LOAD_SUPER_ATTR_METHOD LOAD_SUPER_ATTR_METHOD -#define _LOCK_OBJECT 521 -#define _MAKE_CALLARGS_A_TUPLE 522 +#define _LOCK_OBJECT 527 +#define _MAKE_CALLARGS_A_TUPLE 528 #define _MAKE_CELL MAKE_CELL #define _MAKE_FUNCTION MAKE_FUNCTION -#define _MAKE_HEAP_SAFE 523 -#define _MAKE_WARM 524 +#define _MAKE_HEAP_SAFE 529 +#define _MAKE_WARM 530 #define _MAP_ADD MAP_ADD -#define _MATCH_CLASS 525 +#define _MATCH_CLASS 531 #define _MATCH_KEYS MATCH_KEYS #define _MATCH_MAPPING MATCH_MAPPING #define _MATCH_SEQUENCE MATCH_SEQUENCE -#define _MAYBE_EXPAND_METHOD 526 -#define _MAYBE_EXPAND_METHOD_KW 527 -#define _MONITOR_CALL 528 -#define _MONITOR_CALL_KW 529 -#define _MONITOR_JUMP_BACKWARD 530 -#define _MONITOR_RESUME 531 +#define _MAYBE_EXPAND_METHOD 532 +#define _MAYBE_EXPAND_METHOD_KW 533 +#define _MONITOR_CALL 534 +#define _MONITOR_CALL_KW 535 +#define _MONITOR_JUMP_BACKWARD 536 +#define _MONITOR_RESUME 537 #define _NOP NOP -#define _POP_CALL 532 -#define _POP_CALL_LOAD_CONST_INLINE_BORROW 533 -#define _POP_CALL_ONE 534 -#define _POP_CALL_ONE_LOAD_CONST_INLINE_BORROW 535 -#define _POP_CALL_TWO 536 -#define _POP_CALL_TWO_LOAD_CONST_INLINE_BORROW 537 +#define _POP_CALL 538 +#define _POP_CALL_LOAD_CONST_INLINE_BORROW 539 +#define _POP_CALL_ONE 540 +#define _POP_CALL_ONE_LOAD_CONST_INLINE_BORROW 541 +#define _POP_CALL_TWO 542 +#define _POP_CALL_TWO_LOAD_CONST_INLINE_BORROW 543 #define _POP_EXCEPT POP_EXCEPT #define _POP_ITER POP_ITER -#define _POP_JUMP_IF_FALSE 538 -#define _POP_JUMP_IF_TRUE 539 +#define _POP_JUMP_IF_FALSE 544 +#define _POP_JUMP_IF_TRUE 545 #define _POP_TOP POP_TOP -#define _POP_TOP_FLOAT 540 -#define _POP_TOP_INT 541 -#define _POP_TOP_LOAD_CONST_INLINE 542 -#define _POP_TOP_LOAD_CONST_INLINE_BORROW 543 -#define _POP_TOP_NOP 544 -#define _POP_TOP_UNICODE 545 -#define _POP_TWO 546 -#define _POP_TWO_LOAD_CONST_INLINE_BORROW 547 +#define _POP_TOP_FLOAT 546 +#define _POP_TOP_INT 547 +#define _POP_TOP_LOAD_CONST_INLINE 548 +#define _POP_TOP_LOAD_CONST_INLINE_BORROW 549 +#define _POP_TOP_NOP 550 +#define _POP_TOP_UNICODE 551 +#define _POP_TWO 552 +#define _POP_TWO_LOAD_CONST_INLINE_BORROW 553 #define _PUSH_EXC_INFO PUSH_EXC_INFO -#define _PUSH_FRAME 548 +#define _PUSH_FRAME 554 #define _PUSH_NULL PUSH_NULL -#define _PUSH_NULL_CONDITIONAL 549 -#define _PY_FRAME_EX 550 -#define _PY_FRAME_GENERAL 551 -#define _PY_FRAME_KW 552 -#define _RECORD_3OS_GEN_FUNC 553 -#define _RECORD_4OS 554 -#define _RECORD_BOUND_METHOD 555 -#define _RECORD_CALLABLE 556 -#define _RECORD_CODE 557 -#define _RECORD_NOS 558 -#define _RECORD_NOS_GEN_FUNC 559 -#define _RECORD_TOS 560 -#define _RECORD_TOS_TYPE 561 -#define _REPLACE_WITH_TRUE 562 -#define _RESUME_CHECK 563 +#define _PUSH_NULL_CONDITIONAL 555 +#define _PY_FRAME_EX 556 +#define _PY_FRAME_GENERAL 557 +#define _PY_FRAME_KW 558 +#define _RECORD_3OS_GEN_FUNC 559 +#define _RECORD_4OS 560 +#define _RECORD_BOUND_METHOD 561 +#define _RECORD_CALLABLE 562 +#define _RECORD_CODE 563 +#define _RECORD_NOS 564 +#define _RECORD_NOS_GEN_FUNC 565 +#define _RECORD_TOS 566 +#define _RECORD_TOS_TYPE 567 +#define _REPLACE_WITH_TRUE 568 +#define _RESUME_CHECK 569 #define _RETURN_GENERATOR RETURN_GENERATOR -#define _RETURN_VALUE 564 -#define _SAVE_RETURN_OFFSET 565 -#define _SEND 566 -#define _SEND_GEN_FRAME 567 +#define _RETURN_VALUE 570 +#define _SAVE_RETURN_OFFSET 571 +#define _SEND 572 +#define _SEND_GEN_FRAME 573 #define _SETUP_ANNOTATIONS SETUP_ANNOTATIONS #define _SET_ADD SET_ADD #define _SET_FUNCTION_ATTRIBUTE SET_FUNCTION_ATTRIBUTE -#define _SET_UPDATE 568 -#define _SHUFFLE_2_LOAD_CONST_INLINE_BORROW 569 -#define _SHUFFLE_3_LOAD_CONST_INLINE_BORROW 570 -#define _SPILL_OR_RELOAD 571 -#define _START_EXECUTOR 572 -#define _STORE_ATTR 573 -#define _STORE_ATTR_INSTANCE_VALUE 574 -#define _STORE_ATTR_SLOT 575 -#define _STORE_ATTR_WITH_HINT 576 +#define _SET_UPDATE 574 +#define _SHUFFLE_2_LOAD_CONST_INLINE_BORROW 575 +#define _SHUFFLE_3_LOAD_CONST_INLINE_BORROW 576 +#define _SPILL_OR_RELOAD 577 +#define _START_EXECUTOR 578 +#define _STORE_ATTR 579 +#define _STORE_ATTR_INSTANCE_VALUE 580 +#define _STORE_ATTR_SLOT 581 +#define _STORE_ATTR_WITH_HINT 582 #define _STORE_DEREF STORE_DEREF #define _STORE_GLOBAL STORE_GLOBAL #define _STORE_NAME STORE_NAME -#define _STORE_SLICE 577 -#define _STORE_SUBSCR 578 -#define _STORE_SUBSCR_DICT 579 -#define _STORE_SUBSCR_LIST_INT 580 -#define _SWAP 581 -#define _SWAP_2 582 -#define _SWAP_3 583 -#define _SWAP_FAST 584 -#define _SWAP_FAST_0 585 -#define _SWAP_FAST_1 586 -#define _SWAP_FAST_2 587 -#define _SWAP_FAST_3 588 -#define _SWAP_FAST_4 589 -#define _SWAP_FAST_5 590 -#define _SWAP_FAST_6 591 -#define _SWAP_FAST_7 592 -#define _TIER2_RESUME_CHECK 593 -#define _TO_BOOL 594 +#define _STORE_SLICE 583 +#define _STORE_SUBSCR 584 +#define _STORE_SUBSCR_DICT 585 +#define _STORE_SUBSCR_LIST_INT 586 +#define _SWAP 587 +#define _SWAP_2 588 +#define _SWAP_3 589 +#define _SWAP_FAST 590 +#define _SWAP_FAST_0 591 +#define _SWAP_FAST_1 592 +#define _SWAP_FAST_2 593 +#define _SWAP_FAST_3 594 +#define _SWAP_FAST_4 595 +#define _SWAP_FAST_5 596 +#define _SWAP_FAST_6 597 +#define _SWAP_FAST_7 598 +#define _TIER2_RESUME_CHECK 599 +#define _TO_BOOL 600 #define _TO_BOOL_BOOL TO_BOOL_BOOL -#define _TO_BOOL_INT 595 -#define _TO_BOOL_LIST 596 +#define _TO_BOOL_INT 601 +#define _TO_BOOL_LIST 602 #define _TO_BOOL_NONE TO_BOOL_NONE -#define _TO_BOOL_STR 597 +#define _TO_BOOL_STR 603 #define _TRACE_RECORD TRACE_RECORD -#define _UNARY_INVERT 598 -#define _UNARY_NEGATIVE 599 +#define _UNARY_INVERT 604 +#define _UNARY_NEGATIVE 605 +#define _UNARY_NEGATIVE_FLOAT_INPLACE 606 #define _UNARY_NOT UNARY_NOT #define _UNPACK_EX UNPACK_EX -#define _UNPACK_SEQUENCE 600 -#define _UNPACK_SEQUENCE_LIST 601 -#define _UNPACK_SEQUENCE_TUPLE 602 -#define _UNPACK_SEQUENCE_TWO_TUPLE 603 -#define _UNPACK_SEQUENCE_UNIQUE_THREE_TUPLE 604 -#define _UNPACK_SEQUENCE_UNIQUE_TUPLE 605 -#define _UNPACK_SEQUENCE_UNIQUE_TWO_TUPLE 606 +#define _UNPACK_SEQUENCE 607 +#define _UNPACK_SEQUENCE_LIST 608 +#define _UNPACK_SEQUENCE_TUPLE 609 +#define _UNPACK_SEQUENCE_TWO_TUPLE 610 +#define _UNPACK_SEQUENCE_UNIQUE_THREE_TUPLE 611 +#define _UNPACK_SEQUENCE_UNIQUE_TUPLE 612 +#define _UNPACK_SEQUENCE_UNIQUE_TWO_TUPLE 613 #define _WITH_EXCEPT_START WITH_EXCEPT_START -#define _YIELD_VALUE 607 -#define MAX_UOP_ID 607 -#define _BINARY_OP_r23 608 -#define _BINARY_OP_ADD_FLOAT_r03 609 -#define _BINARY_OP_ADD_FLOAT_r13 610 -#define _BINARY_OP_ADD_FLOAT_r23 611 -#define _BINARY_OP_ADD_INT_r03 612 -#define _BINARY_OP_ADD_INT_r13 613 -#define _BINARY_OP_ADD_INT_r23 614 -#define _BINARY_OP_ADD_UNICODE_r03 615 -#define _BINARY_OP_ADD_UNICODE_r13 616 -#define _BINARY_OP_ADD_UNICODE_r23 617 -#define _BINARY_OP_EXTEND_r23 618 -#define _BINARY_OP_INPLACE_ADD_UNICODE_r21 619 -#define _BINARY_OP_MULTIPLY_FLOAT_r03 620 -#define _BINARY_OP_MULTIPLY_FLOAT_r13 621 -#define _BINARY_OP_MULTIPLY_FLOAT_r23 622 -#define _BINARY_OP_MULTIPLY_INT_r03 623 -#define _BINARY_OP_MULTIPLY_INT_r13 624 -#define _BINARY_OP_MULTIPLY_INT_r23 625 -#define _BINARY_OP_SUBSCR_CHECK_FUNC_r23 626 -#define _BINARY_OP_SUBSCR_DICT_r23 627 -#define _BINARY_OP_SUBSCR_INIT_CALL_r01 628 -#define _BINARY_OP_SUBSCR_INIT_CALL_r11 629 -#define _BINARY_OP_SUBSCR_INIT_CALL_r21 630 -#define _BINARY_OP_SUBSCR_INIT_CALL_r31 631 -#define _BINARY_OP_SUBSCR_LIST_INT_r23 632 -#define _BINARY_OP_SUBSCR_LIST_SLICE_r23 633 -#define _BINARY_OP_SUBSCR_STR_INT_r23 634 -#define _BINARY_OP_SUBSCR_TUPLE_INT_r03 635 -#define _BINARY_OP_SUBSCR_TUPLE_INT_r13 636 -#define _BINARY_OP_SUBSCR_TUPLE_INT_r23 637 -#define _BINARY_OP_SUBSCR_USTR_INT_r23 638 -#define _BINARY_OP_SUBTRACT_FLOAT_r03 639 -#define _BINARY_OP_SUBTRACT_FLOAT_r13 640 -#define _BINARY_OP_SUBTRACT_FLOAT_r23 641 -#define _BINARY_OP_SUBTRACT_INT_r03 642 -#define _BINARY_OP_SUBTRACT_INT_r13 643 -#define _BINARY_OP_SUBTRACT_INT_r23 644 -#define _BINARY_SLICE_r31 645 -#define _BUILD_INTERPOLATION_r01 646 -#define _BUILD_LIST_r01 647 -#define _BUILD_MAP_r01 648 -#define _BUILD_SET_r01 649 -#define _BUILD_SLICE_r01 650 -#define _BUILD_STRING_r01 651 -#define _BUILD_TEMPLATE_r21 652 -#define _BUILD_TUPLE_r01 653 -#define _CALL_BUILTIN_CLASS_r01 654 -#define _CALL_BUILTIN_FAST_r01 655 -#define _CALL_BUILTIN_FAST_WITH_KEYWORDS_r01 656 -#define _CALL_BUILTIN_O_r03 657 -#define _CALL_FUNCTION_EX_NON_PY_GENERAL_r31 658 -#define _CALL_INTRINSIC_1_r12 659 -#define _CALL_INTRINSIC_2_r21 660 -#define _CALL_ISINSTANCE_r31 661 -#define _CALL_KW_NON_PY_r11 662 -#define _CALL_LEN_r33 663 -#define _CALL_LIST_APPEND_r03 664 -#define _CALL_LIST_APPEND_r13 665 -#define _CALL_LIST_APPEND_r23 666 -#define _CALL_LIST_APPEND_r33 667 -#define _CALL_METHOD_DESCRIPTOR_FAST_r01 668 -#define _CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS_r01 669 -#define _CALL_METHOD_DESCRIPTOR_NOARGS_r01 670 -#define _CALL_METHOD_DESCRIPTOR_O_r03 671 -#define _CALL_NON_PY_GENERAL_r01 672 -#define _CALL_STR_1_r32 673 -#define _CALL_TUPLE_1_r32 674 -#define _CALL_TYPE_1_r02 675 -#define _CALL_TYPE_1_r12 676 -#define _CALL_TYPE_1_r22 677 -#define _CALL_TYPE_1_r32 678 -#define _CHECK_AND_ALLOCATE_OBJECT_r00 679 -#define _CHECK_ATTR_CLASS_r01 680 -#define _CHECK_ATTR_CLASS_r11 681 -#define _CHECK_ATTR_CLASS_r22 682 -#define _CHECK_ATTR_CLASS_r33 683 -#define _CHECK_ATTR_METHOD_LAZY_DICT_r01 684 -#define _CHECK_ATTR_METHOD_LAZY_DICT_r11 685 -#define _CHECK_ATTR_METHOD_LAZY_DICT_r22 686 -#define _CHECK_ATTR_METHOD_LAZY_DICT_r33 687 -#define _CHECK_CALL_BOUND_METHOD_EXACT_ARGS_r00 688 -#define _CHECK_EG_MATCH_r22 689 -#define _CHECK_EXC_MATCH_r22 690 -#define _CHECK_FUNCTION_EXACT_ARGS_r00 691 -#define _CHECK_FUNCTION_VERSION_r00 692 -#define _CHECK_FUNCTION_VERSION_INLINE_r00 693 -#define _CHECK_FUNCTION_VERSION_INLINE_r11 694 -#define _CHECK_FUNCTION_VERSION_INLINE_r22 695 -#define _CHECK_FUNCTION_VERSION_INLINE_r33 696 -#define _CHECK_FUNCTION_VERSION_KW_r11 697 -#define _CHECK_IS_NOT_PY_CALLABLE_r00 698 -#define _CHECK_IS_NOT_PY_CALLABLE_EX_r03 699 -#define _CHECK_IS_NOT_PY_CALLABLE_EX_r13 700 -#define _CHECK_IS_NOT_PY_CALLABLE_EX_r23 701 -#define _CHECK_IS_NOT_PY_CALLABLE_EX_r33 702 -#define _CHECK_IS_NOT_PY_CALLABLE_KW_r11 703 -#define _CHECK_IS_PY_CALLABLE_EX_r03 704 -#define _CHECK_IS_PY_CALLABLE_EX_r13 705 -#define _CHECK_IS_PY_CALLABLE_EX_r23 706 -#define _CHECK_IS_PY_CALLABLE_EX_r33 707 -#define _CHECK_MANAGED_OBJECT_HAS_VALUES_r01 708 -#define _CHECK_MANAGED_OBJECT_HAS_VALUES_r11 709 -#define _CHECK_MANAGED_OBJECT_HAS_VALUES_r22 710 -#define _CHECK_MANAGED_OBJECT_HAS_VALUES_r33 711 -#define _CHECK_METHOD_VERSION_r00 712 -#define _CHECK_METHOD_VERSION_KW_r11 713 -#define _CHECK_PEP_523_r00 714 -#define _CHECK_PEP_523_r11 715 -#define _CHECK_PEP_523_r22 716 -#define _CHECK_PEP_523_r33 717 -#define _CHECK_PERIODIC_r00 718 -#define _CHECK_PERIODIC_AT_END_r00 719 -#define _CHECK_PERIODIC_IF_NOT_YIELD_FROM_r00 720 -#define _CHECK_RECURSION_REMAINING_r00 721 -#define _CHECK_RECURSION_REMAINING_r11 722 -#define _CHECK_RECURSION_REMAINING_r22 723 -#define _CHECK_RECURSION_REMAINING_r33 724 -#define _CHECK_STACK_SPACE_r00 725 -#define _CHECK_STACK_SPACE_OPERAND_r00 726 -#define _CHECK_STACK_SPACE_OPERAND_r11 727 -#define _CHECK_STACK_SPACE_OPERAND_r22 728 -#define _CHECK_STACK_SPACE_OPERAND_r33 729 -#define _CHECK_VALIDITY_r00 730 -#define _CHECK_VALIDITY_r11 731 -#define _CHECK_VALIDITY_r22 732 -#define _CHECK_VALIDITY_r33 733 -#define _COLD_DYNAMIC_EXIT_r00 734 -#define _COLD_EXIT_r00 735 -#define _COMPARE_OP_r21 736 -#define _COMPARE_OP_FLOAT_r03 737 -#define _COMPARE_OP_FLOAT_r13 738 -#define _COMPARE_OP_FLOAT_r23 739 -#define _COMPARE_OP_INT_r23 740 -#define _COMPARE_OP_STR_r23 741 -#define _CONTAINS_OP_r23 742 -#define _CONTAINS_OP_DICT_r23 743 -#define _CONTAINS_OP_SET_r23 744 -#define _CONVERT_VALUE_r11 745 -#define _COPY_r01 746 -#define _COPY_1_r02 747 -#define _COPY_1_r12 748 -#define _COPY_1_r23 749 -#define _COPY_2_r03 750 -#define _COPY_2_r13 751 -#define _COPY_2_r23 752 -#define _COPY_3_r03 753 -#define _COPY_3_r13 754 -#define _COPY_3_r23 755 -#define _COPY_3_r33 756 -#define _COPY_FREE_VARS_r00 757 -#define _COPY_FREE_VARS_r11 758 -#define _COPY_FREE_VARS_r22 759 -#define _COPY_FREE_VARS_r33 760 -#define _CREATE_INIT_FRAME_r01 761 -#define _DELETE_ATTR_r10 762 -#define _DELETE_DEREF_r00 763 -#define _DELETE_FAST_r00 764 -#define _DELETE_GLOBAL_r00 765 -#define _DELETE_NAME_r00 766 -#define _DELETE_SUBSCR_r20 767 -#define _DEOPT_r00 768 -#define _DEOPT_r10 769 -#define _DEOPT_r20 770 -#define _DEOPT_r30 771 -#define _DICT_MERGE_r10 772 -#define _DICT_UPDATE_r10 773 -#define _DO_CALL_r01 774 -#define _DO_CALL_FUNCTION_EX_r31 775 -#define _DO_CALL_KW_r11 776 -#define _DYNAMIC_EXIT_r00 777 -#define _DYNAMIC_EXIT_r10 778 -#define _DYNAMIC_EXIT_r20 779 -#define _DYNAMIC_EXIT_r30 780 -#define _END_FOR_r10 781 -#define _END_SEND_r31 782 -#define _ERROR_POP_N_r00 783 -#define _EXIT_INIT_CHECK_r10 784 -#define _EXIT_TRACE_r00 785 -#define _EXIT_TRACE_r10 786 -#define _EXIT_TRACE_r20 787 -#define _EXIT_TRACE_r30 788 -#define _EXPAND_METHOD_r00 789 -#define _EXPAND_METHOD_KW_r11 790 -#define _FATAL_ERROR_r00 791 -#define _FATAL_ERROR_r11 792 -#define _FATAL_ERROR_r22 793 -#define _FATAL_ERROR_r33 794 -#define _FORMAT_SIMPLE_r11 795 -#define _FORMAT_WITH_SPEC_r21 796 -#define _FOR_ITER_r23 797 -#define _FOR_ITER_GEN_FRAME_r03 798 -#define _FOR_ITER_GEN_FRAME_r13 799 -#define _FOR_ITER_GEN_FRAME_r23 800 -#define _FOR_ITER_TIER_TWO_r23 801 -#define _GET_AITER_r11 802 -#define _GET_ANEXT_r12 803 -#define _GET_AWAITABLE_r11 804 -#define _GET_ITER_r12 805 -#define _GET_LEN_r12 806 -#define _GUARD_BINARY_OP_EXTEND_r22 807 -#define _GUARD_BINARY_OP_SUBSCR_TUPLE_INT_BOUNDS_r02 808 -#define _GUARD_BINARY_OP_SUBSCR_TUPLE_INT_BOUNDS_r12 809 -#define _GUARD_BINARY_OP_SUBSCR_TUPLE_INT_BOUNDS_r22 810 -#define _GUARD_BINARY_OP_SUBSCR_TUPLE_INT_BOUNDS_r33 811 -#define _GUARD_BIT_IS_SET_POP_r00 812 -#define _GUARD_BIT_IS_SET_POP_r10 813 -#define _GUARD_BIT_IS_SET_POP_r21 814 -#define _GUARD_BIT_IS_SET_POP_r32 815 -#define _GUARD_BIT_IS_SET_POP_4_r00 816 -#define _GUARD_BIT_IS_SET_POP_4_r10 817 -#define _GUARD_BIT_IS_SET_POP_4_r21 818 -#define _GUARD_BIT_IS_SET_POP_4_r32 819 -#define _GUARD_BIT_IS_SET_POP_5_r00 820 -#define _GUARD_BIT_IS_SET_POP_5_r10 821 -#define _GUARD_BIT_IS_SET_POP_5_r21 822 -#define _GUARD_BIT_IS_SET_POP_5_r32 823 -#define _GUARD_BIT_IS_SET_POP_6_r00 824 -#define _GUARD_BIT_IS_SET_POP_6_r10 825 -#define _GUARD_BIT_IS_SET_POP_6_r21 826 -#define _GUARD_BIT_IS_SET_POP_6_r32 827 -#define _GUARD_BIT_IS_SET_POP_7_r00 828 -#define _GUARD_BIT_IS_SET_POP_7_r10 829 -#define _GUARD_BIT_IS_SET_POP_7_r21 830 -#define _GUARD_BIT_IS_SET_POP_7_r32 831 -#define _GUARD_BIT_IS_UNSET_POP_r00 832 -#define _GUARD_BIT_IS_UNSET_POP_r10 833 -#define _GUARD_BIT_IS_UNSET_POP_r21 834 -#define _GUARD_BIT_IS_UNSET_POP_r32 835 -#define _GUARD_BIT_IS_UNSET_POP_4_r00 836 -#define _GUARD_BIT_IS_UNSET_POP_4_r10 837 -#define _GUARD_BIT_IS_UNSET_POP_4_r21 838 -#define _GUARD_BIT_IS_UNSET_POP_4_r32 839 -#define _GUARD_BIT_IS_UNSET_POP_5_r00 840 -#define _GUARD_BIT_IS_UNSET_POP_5_r10 841 -#define _GUARD_BIT_IS_UNSET_POP_5_r21 842 -#define _GUARD_BIT_IS_UNSET_POP_5_r32 843 -#define _GUARD_BIT_IS_UNSET_POP_6_r00 844 -#define _GUARD_BIT_IS_UNSET_POP_6_r10 845 -#define _GUARD_BIT_IS_UNSET_POP_6_r21 846 -#define _GUARD_BIT_IS_UNSET_POP_6_r32 847 -#define _GUARD_BIT_IS_UNSET_POP_7_r00 848 -#define _GUARD_BIT_IS_UNSET_POP_7_r10 849 -#define _GUARD_BIT_IS_UNSET_POP_7_r21 850 -#define _GUARD_BIT_IS_UNSET_POP_7_r32 851 -#define _GUARD_CALLABLE_ISINSTANCE_r03 852 -#define _GUARD_CALLABLE_ISINSTANCE_r13 853 -#define _GUARD_CALLABLE_ISINSTANCE_r23 854 -#define _GUARD_CALLABLE_ISINSTANCE_r33 855 -#define _GUARD_CALLABLE_LEN_r03 856 -#define _GUARD_CALLABLE_LEN_r13 857 -#define _GUARD_CALLABLE_LEN_r23 858 -#define _GUARD_CALLABLE_LEN_r33 859 -#define _GUARD_CALLABLE_LIST_APPEND_r03 860 -#define _GUARD_CALLABLE_LIST_APPEND_r13 861 -#define _GUARD_CALLABLE_LIST_APPEND_r23 862 -#define _GUARD_CALLABLE_LIST_APPEND_r33 863 -#define _GUARD_CALLABLE_STR_1_r03 864 -#define _GUARD_CALLABLE_STR_1_r13 865 -#define _GUARD_CALLABLE_STR_1_r23 866 -#define _GUARD_CALLABLE_STR_1_r33 867 -#define _GUARD_CALLABLE_TUPLE_1_r03 868 -#define _GUARD_CALLABLE_TUPLE_1_r13 869 -#define _GUARD_CALLABLE_TUPLE_1_r23 870 -#define _GUARD_CALLABLE_TUPLE_1_r33 871 -#define _GUARD_CALLABLE_TYPE_1_r03 872 -#define _GUARD_CALLABLE_TYPE_1_r13 873 -#define _GUARD_CALLABLE_TYPE_1_r23 874 -#define _GUARD_CALLABLE_TYPE_1_r33 875 -#define _GUARD_CODE_VERSION_RETURN_GENERATOR_r00 876 -#define _GUARD_CODE_VERSION_RETURN_GENERATOR_r11 877 -#define _GUARD_CODE_VERSION_RETURN_GENERATOR_r22 878 -#define _GUARD_CODE_VERSION_RETURN_GENERATOR_r33 879 -#define _GUARD_CODE_VERSION_RETURN_VALUE_r00 880 -#define _GUARD_CODE_VERSION_RETURN_VALUE_r11 881 -#define _GUARD_CODE_VERSION_RETURN_VALUE_r22 882 -#define _GUARD_CODE_VERSION_RETURN_VALUE_r33 883 -#define _GUARD_CODE_VERSION_YIELD_VALUE_r00 884 -#define _GUARD_CODE_VERSION_YIELD_VALUE_r11 885 -#define _GUARD_CODE_VERSION_YIELD_VALUE_r22 886 -#define _GUARD_CODE_VERSION_YIELD_VALUE_r33 887 -#define _GUARD_CODE_VERSION__PUSH_FRAME_r00 888 -#define _GUARD_CODE_VERSION__PUSH_FRAME_r11 889 -#define _GUARD_CODE_VERSION__PUSH_FRAME_r22 890 -#define _GUARD_CODE_VERSION__PUSH_FRAME_r33 891 -#define _GUARD_DORV_NO_DICT_r01 892 -#define _GUARD_DORV_NO_DICT_r11 893 -#define _GUARD_DORV_NO_DICT_r22 894 -#define _GUARD_DORV_NO_DICT_r33 895 -#define _GUARD_DORV_VALUES_INST_ATTR_FROM_DICT_r01 896 -#define _GUARD_DORV_VALUES_INST_ATTR_FROM_DICT_r11 897 -#define _GUARD_DORV_VALUES_INST_ATTR_FROM_DICT_r22 898 -#define _GUARD_DORV_VALUES_INST_ATTR_FROM_DICT_r33 899 -#define _GUARD_GLOBALS_VERSION_r00 900 -#define _GUARD_GLOBALS_VERSION_r11 901 -#define _GUARD_GLOBALS_VERSION_r22 902 -#define _GUARD_GLOBALS_VERSION_r33 903 -#define _GUARD_IP_RETURN_GENERATOR_r00 904 -#define _GUARD_IP_RETURN_GENERATOR_r11 905 -#define _GUARD_IP_RETURN_GENERATOR_r22 906 -#define _GUARD_IP_RETURN_GENERATOR_r33 907 -#define _GUARD_IP_RETURN_VALUE_r00 908 -#define _GUARD_IP_RETURN_VALUE_r11 909 -#define _GUARD_IP_RETURN_VALUE_r22 910 -#define _GUARD_IP_RETURN_VALUE_r33 911 -#define _GUARD_IP_YIELD_VALUE_r00 912 -#define _GUARD_IP_YIELD_VALUE_r11 913 -#define _GUARD_IP_YIELD_VALUE_r22 914 -#define _GUARD_IP_YIELD_VALUE_r33 915 -#define _GUARD_IP__PUSH_FRAME_r00 916 -#define _GUARD_IP__PUSH_FRAME_r11 917 -#define _GUARD_IP__PUSH_FRAME_r22 918 -#define _GUARD_IP__PUSH_FRAME_r33 919 -#define _GUARD_IS_FALSE_POP_r00 920 -#define _GUARD_IS_FALSE_POP_r10 921 -#define _GUARD_IS_FALSE_POP_r21 922 -#define _GUARD_IS_FALSE_POP_r32 923 -#define _GUARD_IS_NONE_POP_r00 924 -#define _GUARD_IS_NONE_POP_r10 925 -#define _GUARD_IS_NONE_POP_r21 926 -#define _GUARD_IS_NONE_POP_r32 927 -#define _GUARD_IS_NOT_NONE_POP_r10 928 -#define _GUARD_IS_TRUE_POP_r00 929 -#define _GUARD_IS_TRUE_POP_r10 930 -#define _GUARD_IS_TRUE_POP_r21 931 -#define _GUARD_IS_TRUE_POP_r32 932 -#define _GUARD_KEYS_VERSION_r01 933 -#define _GUARD_KEYS_VERSION_r11 934 -#define _GUARD_KEYS_VERSION_r22 935 -#define _GUARD_KEYS_VERSION_r33 936 -#define _GUARD_NOS_ANY_DICT_r02 937 -#define _GUARD_NOS_ANY_DICT_r12 938 -#define _GUARD_NOS_ANY_DICT_r22 939 -#define _GUARD_NOS_ANY_DICT_r33 940 -#define _GUARD_NOS_COMPACT_ASCII_r02 941 -#define _GUARD_NOS_COMPACT_ASCII_r12 942 -#define _GUARD_NOS_COMPACT_ASCII_r22 943 -#define _GUARD_NOS_COMPACT_ASCII_r33 944 -#define _GUARD_NOS_DICT_r02 945 -#define _GUARD_NOS_DICT_r12 946 -#define _GUARD_NOS_DICT_r22 947 -#define _GUARD_NOS_DICT_r33 948 -#define _GUARD_NOS_FLOAT_r02 949 -#define _GUARD_NOS_FLOAT_r12 950 -#define _GUARD_NOS_FLOAT_r22 951 -#define _GUARD_NOS_FLOAT_r33 952 -#define _GUARD_NOS_INT_r02 953 -#define _GUARD_NOS_INT_r12 954 -#define _GUARD_NOS_INT_r22 955 -#define _GUARD_NOS_INT_r33 956 -#define _GUARD_NOS_LIST_r02 957 -#define _GUARD_NOS_LIST_r12 958 -#define _GUARD_NOS_LIST_r22 959 -#define _GUARD_NOS_LIST_r33 960 -#define _GUARD_NOS_NOT_NULL_r02 961 -#define _GUARD_NOS_NOT_NULL_r12 962 -#define _GUARD_NOS_NOT_NULL_r22 963 -#define _GUARD_NOS_NOT_NULL_r33 964 -#define _GUARD_NOS_NULL_r02 965 -#define _GUARD_NOS_NULL_r12 966 -#define _GUARD_NOS_NULL_r22 967 -#define _GUARD_NOS_NULL_r33 968 -#define _GUARD_NOS_OVERFLOWED_r02 969 -#define _GUARD_NOS_OVERFLOWED_r12 970 -#define _GUARD_NOS_OVERFLOWED_r22 971 -#define _GUARD_NOS_OVERFLOWED_r33 972 -#define _GUARD_NOS_TUPLE_r02 973 -#define _GUARD_NOS_TUPLE_r12 974 -#define _GUARD_NOS_TUPLE_r22 975 -#define _GUARD_NOS_TUPLE_r33 976 -#define _GUARD_NOS_UNICODE_r02 977 -#define _GUARD_NOS_UNICODE_r12 978 -#define _GUARD_NOS_UNICODE_r22 979 -#define _GUARD_NOS_UNICODE_r33 980 -#define _GUARD_NOT_EXHAUSTED_LIST_r02 981 -#define _GUARD_NOT_EXHAUSTED_LIST_r12 982 -#define _GUARD_NOT_EXHAUSTED_LIST_r22 983 -#define _GUARD_NOT_EXHAUSTED_LIST_r33 984 -#define _GUARD_NOT_EXHAUSTED_RANGE_r02 985 -#define _GUARD_NOT_EXHAUSTED_RANGE_r12 986 -#define _GUARD_NOT_EXHAUSTED_RANGE_r22 987 -#define _GUARD_NOT_EXHAUSTED_RANGE_r33 988 -#define _GUARD_NOT_EXHAUSTED_TUPLE_r02 989 -#define _GUARD_NOT_EXHAUSTED_TUPLE_r12 990 -#define _GUARD_NOT_EXHAUSTED_TUPLE_r22 991 -#define _GUARD_NOT_EXHAUSTED_TUPLE_r33 992 -#define _GUARD_THIRD_NULL_r03 993 -#define _GUARD_THIRD_NULL_r13 994 -#define _GUARD_THIRD_NULL_r23 995 -#define _GUARD_THIRD_NULL_r33 996 -#define _GUARD_TOS_ANY_DICT_r01 997 -#define _GUARD_TOS_ANY_DICT_r11 998 -#define _GUARD_TOS_ANY_DICT_r22 999 -#define _GUARD_TOS_ANY_DICT_r33 1000 -#define _GUARD_TOS_ANY_SET_r01 1001 -#define _GUARD_TOS_ANY_SET_r11 1002 -#define _GUARD_TOS_ANY_SET_r22 1003 -#define _GUARD_TOS_ANY_SET_r33 1004 -#define _GUARD_TOS_DICT_r01 1005 -#define _GUARD_TOS_DICT_r11 1006 -#define _GUARD_TOS_DICT_r22 1007 -#define _GUARD_TOS_DICT_r33 1008 -#define _GUARD_TOS_FLOAT_r01 1009 -#define _GUARD_TOS_FLOAT_r11 1010 -#define _GUARD_TOS_FLOAT_r22 1011 -#define _GUARD_TOS_FLOAT_r33 1012 -#define _GUARD_TOS_FROZENDICT_r01 1013 -#define _GUARD_TOS_FROZENDICT_r11 1014 -#define _GUARD_TOS_FROZENDICT_r22 1015 -#define _GUARD_TOS_FROZENDICT_r33 1016 -#define _GUARD_TOS_FROZENSET_r01 1017 -#define _GUARD_TOS_FROZENSET_r11 1018 -#define _GUARD_TOS_FROZENSET_r22 1019 -#define _GUARD_TOS_FROZENSET_r33 1020 -#define _GUARD_TOS_INT_r01 1021 -#define _GUARD_TOS_INT_r11 1022 -#define _GUARD_TOS_INT_r22 1023 -#define _GUARD_TOS_INT_r33 1024 -#define _GUARD_TOS_LIST_r01 1025 -#define _GUARD_TOS_LIST_r11 1026 -#define _GUARD_TOS_LIST_r22 1027 -#define _GUARD_TOS_LIST_r33 1028 -#define _GUARD_TOS_OVERFLOWED_r01 1029 -#define _GUARD_TOS_OVERFLOWED_r11 1030 -#define _GUARD_TOS_OVERFLOWED_r22 1031 -#define _GUARD_TOS_OVERFLOWED_r33 1032 -#define _GUARD_TOS_SET_r01 1033 -#define _GUARD_TOS_SET_r11 1034 -#define _GUARD_TOS_SET_r22 1035 -#define _GUARD_TOS_SET_r33 1036 -#define _GUARD_TOS_SLICE_r01 1037 -#define _GUARD_TOS_SLICE_r11 1038 -#define _GUARD_TOS_SLICE_r22 1039 -#define _GUARD_TOS_SLICE_r33 1040 -#define _GUARD_TOS_TUPLE_r01 1041 -#define _GUARD_TOS_TUPLE_r11 1042 -#define _GUARD_TOS_TUPLE_r22 1043 -#define _GUARD_TOS_TUPLE_r33 1044 -#define _GUARD_TOS_UNICODE_r01 1045 -#define _GUARD_TOS_UNICODE_r11 1046 -#define _GUARD_TOS_UNICODE_r22 1047 -#define _GUARD_TOS_UNICODE_r33 1048 -#define _GUARD_TYPE_VERSION_r01 1049 -#define _GUARD_TYPE_VERSION_r11 1050 -#define _GUARD_TYPE_VERSION_r22 1051 -#define _GUARD_TYPE_VERSION_r33 1052 -#define _GUARD_TYPE_VERSION_LOCKED_r01 1053 -#define _GUARD_TYPE_VERSION_LOCKED_r11 1054 -#define _GUARD_TYPE_VERSION_LOCKED_r22 1055 -#define _GUARD_TYPE_VERSION_LOCKED_r33 1056 -#define _HANDLE_PENDING_AND_DEOPT_r00 1057 -#define _HANDLE_PENDING_AND_DEOPT_r10 1058 -#define _HANDLE_PENDING_AND_DEOPT_r20 1059 -#define _HANDLE_PENDING_AND_DEOPT_r30 1060 -#define _IMPORT_FROM_r12 1061 -#define _IMPORT_NAME_r21 1062 -#define _INIT_CALL_BOUND_METHOD_EXACT_ARGS_r00 1063 -#define _INIT_CALL_PY_EXACT_ARGS_r01 1064 -#define _INIT_CALL_PY_EXACT_ARGS_0_r01 1065 -#define _INIT_CALL_PY_EXACT_ARGS_1_r01 1066 -#define _INIT_CALL_PY_EXACT_ARGS_2_r01 1067 -#define _INIT_CALL_PY_EXACT_ARGS_3_r01 1068 -#define _INIT_CALL_PY_EXACT_ARGS_4_r01 1069 -#define _INSERT_1_LOAD_CONST_INLINE_r02 1070 -#define _INSERT_1_LOAD_CONST_INLINE_r12 1071 -#define _INSERT_1_LOAD_CONST_INLINE_r23 1072 -#define _INSERT_1_LOAD_CONST_INLINE_BORROW_r02 1073 -#define _INSERT_1_LOAD_CONST_INLINE_BORROW_r12 1074 -#define _INSERT_1_LOAD_CONST_INLINE_BORROW_r23 1075 -#define _INSERT_2_LOAD_CONST_INLINE_BORROW_r03 1076 -#define _INSERT_2_LOAD_CONST_INLINE_BORROW_r13 1077 -#define _INSERT_2_LOAD_CONST_INLINE_BORROW_r23 1078 -#define _INSERT_NULL_r10 1079 -#define _INSTRUMENTED_FOR_ITER_r23 1080 -#define _INSTRUMENTED_INSTRUCTION_r00 1081 -#define _INSTRUMENTED_JUMP_FORWARD_r00 1082 -#define _INSTRUMENTED_JUMP_FORWARD_r11 1083 -#define _INSTRUMENTED_JUMP_FORWARD_r22 1084 -#define _INSTRUMENTED_JUMP_FORWARD_r33 1085 -#define _INSTRUMENTED_LINE_r00 1086 -#define _INSTRUMENTED_NOT_TAKEN_r00 1087 -#define _INSTRUMENTED_NOT_TAKEN_r11 1088 -#define _INSTRUMENTED_NOT_TAKEN_r22 1089 -#define _INSTRUMENTED_NOT_TAKEN_r33 1090 -#define _INSTRUMENTED_POP_JUMP_IF_FALSE_r00 1091 -#define _INSTRUMENTED_POP_JUMP_IF_FALSE_r10 1092 -#define _INSTRUMENTED_POP_JUMP_IF_FALSE_r21 1093 -#define _INSTRUMENTED_POP_JUMP_IF_FALSE_r32 1094 -#define _INSTRUMENTED_POP_JUMP_IF_NONE_r10 1095 -#define _INSTRUMENTED_POP_JUMP_IF_NOT_NONE_r10 1096 -#define _INSTRUMENTED_POP_JUMP_IF_TRUE_r00 1097 -#define _INSTRUMENTED_POP_JUMP_IF_TRUE_r10 1098 -#define _INSTRUMENTED_POP_JUMP_IF_TRUE_r21 1099 -#define _INSTRUMENTED_POP_JUMP_IF_TRUE_r32 1100 -#define _IS_NONE_r11 1101 -#define _IS_OP_r03 1102 -#define _IS_OP_r13 1103 -#define _IS_OP_r23 1104 -#define _ITER_CHECK_LIST_r02 1105 -#define _ITER_CHECK_LIST_r12 1106 -#define _ITER_CHECK_LIST_r22 1107 -#define _ITER_CHECK_LIST_r33 1108 -#define _ITER_CHECK_RANGE_r02 1109 -#define _ITER_CHECK_RANGE_r12 1110 -#define _ITER_CHECK_RANGE_r22 1111 -#define _ITER_CHECK_RANGE_r33 1112 -#define _ITER_CHECK_TUPLE_r02 1113 -#define _ITER_CHECK_TUPLE_r12 1114 -#define _ITER_CHECK_TUPLE_r22 1115 -#define _ITER_CHECK_TUPLE_r33 1116 -#define _ITER_JUMP_LIST_r02 1117 -#define _ITER_JUMP_LIST_r12 1118 -#define _ITER_JUMP_LIST_r22 1119 -#define _ITER_JUMP_LIST_r33 1120 -#define _ITER_JUMP_RANGE_r02 1121 -#define _ITER_JUMP_RANGE_r12 1122 -#define _ITER_JUMP_RANGE_r22 1123 -#define _ITER_JUMP_RANGE_r33 1124 -#define _ITER_JUMP_TUPLE_r02 1125 -#define _ITER_JUMP_TUPLE_r12 1126 -#define _ITER_JUMP_TUPLE_r22 1127 -#define _ITER_JUMP_TUPLE_r33 1128 -#define _ITER_NEXT_LIST_r23 1129 -#define _ITER_NEXT_LIST_TIER_TWO_r23 1130 -#define _ITER_NEXT_RANGE_r03 1131 -#define _ITER_NEXT_RANGE_r13 1132 -#define _ITER_NEXT_RANGE_r23 1133 -#define _ITER_NEXT_TUPLE_r03 1134 -#define _ITER_NEXT_TUPLE_r13 1135 -#define _ITER_NEXT_TUPLE_r23 1136 -#define _JUMP_BACKWARD_NO_INTERRUPT_r00 1137 -#define _JUMP_BACKWARD_NO_INTERRUPT_r11 1138 -#define _JUMP_BACKWARD_NO_INTERRUPT_r22 1139 -#define _JUMP_BACKWARD_NO_INTERRUPT_r33 1140 -#define _JUMP_TO_TOP_r00 1141 -#define _LIST_APPEND_r10 1142 -#define _LIST_EXTEND_r10 1143 -#define _LOAD_ATTR_r10 1144 -#define _LOAD_ATTR_CLASS_r11 1145 -#define _LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN_r11 1146 -#define _LOAD_ATTR_INSTANCE_VALUE_r02 1147 -#define _LOAD_ATTR_INSTANCE_VALUE_r12 1148 -#define _LOAD_ATTR_INSTANCE_VALUE_r23 1149 -#define _LOAD_ATTR_METHOD_LAZY_DICT_r02 1150 -#define _LOAD_ATTR_METHOD_LAZY_DICT_r12 1151 -#define _LOAD_ATTR_METHOD_LAZY_DICT_r23 1152 -#define _LOAD_ATTR_METHOD_NO_DICT_r02 1153 -#define _LOAD_ATTR_METHOD_NO_DICT_r12 1154 -#define _LOAD_ATTR_METHOD_NO_DICT_r23 1155 -#define _LOAD_ATTR_METHOD_WITH_VALUES_r02 1156 -#define _LOAD_ATTR_METHOD_WITH_VALUES_r12 1157 -#define _LOAD_ATTR_METHOD_WITH_VALUES_r23 1158 -#define _LOAD_ATTR_MODULE_r12 1159 -#define _LOAD_ATTR_NONDESCRIPTOR_NO_DICT_r11 1160 -#define _LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES_r11 1161 -#define _LOAD_ATTR_PROPERTY_FRAME_r11 1162 -#define _LOAD_ATTR_SLOT_r02 1163 -#define _LOAD_ATTR_SLOT_r12 1164 -#define _LOAD_ATTR_SLOT_r23 1165 -#define _LOAD_ATTR_WITH_HINT_r12 1166 -#define _LOAD_BUILD_CLASS_r01 1167 -#define _LOAD_BYTECODE_r00 1168 -#define _LOAD_COMMON_CONSTANT_r01 1169 -#define _LOAD_COMMON_CONSTANT_r12 1170 -#define _LOAD_COMMON_CONSTANT_r23 1171 -#define _LOAD_CONST_r01 1172 -#define _LOAD_CONST_r12 1173 -#define _LOAD_CONST_r23 1174 -#define _LOAD_CONST_INLINE_r01 1175 -#define _LOAD_CONST_INLINE_r12 1176 -#define _LOAD_CONST_INLINE_r23 1177 -#define _LOAD_CONST_INLINE_BORROW_r01 1178 -#define _LOAD_CONST_INLINE_BORROW_r12 1179 -#define _LOAD_CONST_INLINE_BORROW_r23 1180 -#define _LOAD_CONST_UNDER_INLINE_r02 1181 -#define _LOAD_CONST_UNDER_INLINE_r12 1182 -#define _LOAD_CONST_UNDER_INLINE_r23 1183 -#define _LOAD_CONST_UNDER_INLINE_BORROW_r02 1184 -#define _LOAD_CONST_UNDER_INLINE_BORROW_r12 1185 -#define _LOAD_CONST_UNDER_INLINE_BORROW_r23 1186 -#define _LOAD_DEREF_r01 1187 -#define _LOAD_FAST_r01 1188 -#define _LOAD_FAST_r12 1189 -#define _LOAD_FAST_r23 1190 -#define _LOAD_FAST_0_r01 1191 -#define _LOAD_FAST_0_r12 1192 -#define _LOAD_FAST_0_r23 1193 -#define _LOAD_FAST_1_r01 1194 -#define _LOAD_FAST_1_r12 1195 -#define _LOAD_FAST_1_r23 1196 -#define _LOAD_FAST_2_r01 1197 -#define _LOAD_FAST_2_r12 1198 -#define _LOAD_FAST_2_r23 1199 -#define _LOAD_FAST_3_r01 1200 -#define _LOAD_FAST_3_r12 1201 -#define _LOAD_FAST_3_r23 1202 -#define _LOAD_FAST_4_r01 1203 -#define _LOAD_FAST_4_r12 1204 -#define _LOAD_FAST_4_r23 1205 -#define _LOAD_FAST_5_r01 1206 -#define _LOAD_FAST_5_r12 1207 -#define _LOAD_FAST_5_r23 1208 -#define _LOAD_FAST_6_r01 1209 -#define _LOAD_FAST_6_r12 1210 -#define _LOAD_FAST_6_r23 1211 -#define _LOAD_FAST_7_r01 1212 -#define _LOAD_FAST_7_r12 1213 -#define _LOAD_FAST_7_r23 1214 -#define _LOAD_FAST_AND_CLEAR_r01 1215 -#define _LOAD_FAST_AND_CLEAR_r12 1216 -#define _LOAD_FAST_AND_CLEAR_r23 1217 -#define _LOAD_FAST_BORROW_r01 1218 -#define _LOAD_FAST_BORROW_r12 1219 -#define _LOAD_FAST_BORROW_r23 1220 -#define _LOAD_FAST_BORROW_0_r01 1221 -#define _LOAD_FAST_BORROW_0_r12 1222 -#define _LOAD_FAST_BORROW_0_r23 1223 -#define _LOAD_FAST_BORROW_1_r01 1224 -#define _LOAD_FAST_BORROW_1_r12 1225 -#define _LOAD_FAST_BORROW_1_r23 1226 -#define _LOAD_FAST_BORROW_2_r01 1227 -#define _LOAD_FAST_BORROW_2_r12 1228 -#define _LOAD_FAST_BORROW_2_r23 1229 -#define _LOAD_FAST_BORROW_3_r01 1230 -#define _LOAD_FAST_BORROW_3_r12 1231 -#define _LOAD_FAST_BORROW_3_r23 1232 -#define _LOAD_FAST_BORROW_4_r01 1233 -#define _LOAD_FAST_BORROW_4_r12 1234 -#define _LOAD_FAST_BORROW_4_r23 1235 -#define _LOAD_FAST_BORROW_5_r01 1236 -#define _LOAD_FAST_BORROW_5_r12 1237 -#define _LOAD_FAST_BORROW_5_r23 1238 -#define _LOAD_FAST_BORROW_6_r01 1239 -#define _LOAD_FAST_BORROW_6_r12 1240 -#define _LOAD_FAST_BORROW_6_r23 1241 -#define _LOAD_FAST_BORROW_7_r01 1242 -#define _LOAD_FAST_BORROW_7_r12 1243 -#define _LOAD_FAST_BORROW_7_r23 1244 -#define _LOAD_FAST_BORROW_LOAD_FAST_BORROW_r02 1245 -#define _LOAD_FAST_BORROW_LOAD_FAST_BORROW_r13 1246 -#define _LOAD_FAST_CHECK_r01 1247 -#define _LOAD_FAST_CHECK_r12 1248 -#define _LOAD_FAST_CHECK_r23 1249 -#define _LOAD_FAST_LOAD_FAST_r02 1250 -#define _LOAD_FAST_LOAD_FAST_r13 1251 -#define _LOAD_FROM_DICT_OR_DEREF_r11 1252 -#define _LOAD_FROM_DICT_OR_GLOBALS_r11 1253 -#define _LOAD_GLOBAL_r00 1254 -#define _LOAD_GLOBAL_BUILTINS_r01 1255 -#define _LOAD_GLOBAL_MODULE_r01 1256 -#define _LOAD_LOCALS_r01 1257 -#define _LOAD_LOCALS_r12 1258 -#define _LOAD_LOCALS_r23 1259 -#define _LOAD_NAME_r01 1260 -#define _LOAD_SMALL_INT_r01 1261 -#define _LOAD_SMALL_INT_r12 1262 -#define _LOAD_SMALL_INT_r23 1263 -#define _LOAD_SMALL_INT_0_r01 1264 -#define _LOAD_SMALL_INT_0_r12 1265 -#define _LOAD_SMALL_INT_0_r23 1266 -#define _LOAD_SMALL_INT_1_r01 1267 -#define _LOAD_SMALL_INT_1_r12 1268 -#define _LOAD_SMALL_INT_1_r23 1269 -#define _LOAD_SMALL_INT_2_r01 1270 -#define _LOAD_SMALL_INT_2_r12 1271 -#define _LOAD_SMALL_INT_2_r23 1272 -#define _LOAD_SMALL_INT_3_r01 1273 -#define _LOAD_SMALL_INT_3_r12 1274 -#define _LOAD_SMALL_INT_3_r23 1275 -#define _LOAD_SPECIAL_r00 1276 -#define _LOAD_SUPER_ATTR_ATTR_r31 1277 -#define _LOAD_SUPER_ATTR_METHOD_r32 1278 -#define _LOCK_OBJECT_r01 1279 -#define _LOCK_OBJECT_r11 1280 -#define _LOCK_OBJECT_r22 1281 -#define _LOCK_OBJECT_r33 1282 -#define _MAKE_CALLARGS_A_TUPLE_r33 1283 -#define _MAKE_CELL_r00 1284 -#define _MAKE_FUNCTION_r11 1285 -#define _MAKE_HEAP_SAFE_r01 1286 -#define _MAKE_HEAP_SAFE_r11 1287 -#define _MAKE_HEAP_SAFE_r22 1288 -#define _MAKE_HEAP_SAFE_r33 1289 -#define _MAKE_WARM_r00 1290 -#define _MAKE_WARM_r11 1291 -#define _MAKE_WARM_r22 1292 -#define _MAKE_WARM_r33 1293 -#define _MAP_ADD_r20 1294 -#define _MATCH_CLASS_r33 1295 -#define _MATCH_KEYS_r23 1296 -#define _MATCH_MAPPING_r02 1297 -#define _MATCH_MAPPING_r12 1298 -#define _MATCH_MAPPING_r23 1299 -#define _MATCH_SEQUENCE_r02 1300 -#define _MATCH_SEQUENCE_r12 1301 -#define _MATCH_SEQUENCE_r23 1302 -#define _MAYBE_EXPAND_METHOD_r00 1303 -#define _MAYBE_EXPAND_METHOD_KW_r11 1304 -#define _MONITOR_CALL_r00 1305 -#define _MONITOR_CALL_KW_r11 1306 -#define _MONITOR_JUMP_BACKWARD_r00 1307 -#define _MONITOR_JUMP_BACKWARD_r11 1308 -#define _MONITOR_JUMP_BACKWARD_r22 1309 -#define _MONITOR_JUMP_BACKWARD_r33 1310 -#define _MONITOR_RESUME_r00 1311 -#define _NOP_r00 1312 -#define _NOP_r11 1313 -#define _NOP_r22 1314 -#define _NOP_r33 1315 -#define _POP_CALL_r20 1316 -#define _POP_CALL_LOAD_CONST_INLINE_BORROW_r21 1317 -#define _POP_CALL_ONE_r30 1318 -#define _POP_CALL_ONE_LOAD_CONST_INLINE_BORROW_r31 1319 -#define _POP_CALL_TWO_r30 1320 -#define _POP_CALL_TWO_LOAD_CONST_INLINE_BORROW_r31 1321 -#define _POP_EXCEPT_r10 1322 -#define _POP_ITER_r20 1323 -#define _POP_JUMP_IF_FALSE_r00 1324 -#define _POP_JUMP_IF_FALSE_r10 1325 -#define _POP_JUMP_IF_FALSE_r21 1326 -#define _POP_JUMP_IF_FALSE_r32 1327 -#define _POP_JUMP_IF_TRUE_r00 1328 -#define _POP_JUMP_IF_TRUE_r10 1329 -#define _POP_JUMP_IF_TRUE_r21 1330 -#define _POP_JUMP_IF_TRUE_r32 1331 -#define _POP_TOP_r10 1332 -#define _POP_TOP_FLOAT_r00 1333 -#define _POP_TOP_FLOAT_r10 1334 -#define _POP_TOP_FLOAT_r21 1335 -#define _POP_TOP_FLOAT_r32 1336 -#define _POP_TOP_INT_r00 1337 -#define _POP_TOP_INT_r10 1338 -#define _POP_TOP_INT_r21 1339 -#define _POP_TOP_INT_r32 1340 -#define _POP_TOP_LOAD_CONST_INLINE_r11 1341 -#define _POP_TOP_LOAD_CONST_INLINE_BORROW_r11 1342 -#define _POP_TOP_NOP_r00 1343 -#define _POP_TOP_NOP_r10 1344 -#define _POP_TOP_NOP_r21 1345 -#define _POP_TOP_NOP_r32 1346 -#define _POP_TOP_UNICODE_r00 1347 -#define _POP_TOP_UNICODE_r10 1348 -#define _POP_TOP_UNICODE_r21 1349 -#define _POP_TOP_UNICODE_r32 1350 -#define _POP_TWO_r20 1351 -#define _POP_TWO_LOAD_CONST_INLINE_BORROW_r21 1352 -#define _PUSH_EXC_INFO_r02 1353 -#define _PUSH_EXC_INFO_r12 1354 -#define _PUSH_EXC_INFO_r23 1355 -#define _PUSH_FRAME_r10 1356 -#define _PUSH_NULL_r01 1357 -#define _PUSH_NULL_r12 1358 -#define _PUSH_NULL_r23 1359 -#define _PUSH_NULL_CONDITIONAL_r00 1360 -#define _PY_FRAME_EX_r31 1361 -#define _PY_FRAME_GENERAL_r01 1362 -#define _PY_FRAME_KW_r11 1363 -#define _REPLACE_WITH_TRUE_r02 1364 -#define _REPLACE_WITH_TRUE_r12 1365 -#define _REPLACE_WITH_TRUE_r23 1366 -#define _RESUME_CHECK_r00 1367 -#define _RESUME_CHECK_r11 1368 -#define _RESUME_CHECK_r22 1369 -#define _RESUME_CHECK_r33 1370 -#define _RETURN_GENERATOR_r01 1371 -#define _RETURN_VALUE_r11 1372 -#define _SAVE_RETURN_OFFSET_r00 1373 -#define _SAVE_RETURN_OFFSET_r11 1374 -#define _SAVE_RETURN_OFFSET_r22 1375 -#define _SAVE_RETURN_OFFSET_r33 1376 -#define _SEND_r33 1377 -#define _SEND_GEN_FRAME_r33 1378 -#define _SETUP_ANNOTATIONS_r00 1379 -#define _SET_ADD_r10 1380 -#define _SET_FUNCTION_ATTRIBUTE_r01 1381 -#define _SET_FUNCTION_ATTRIBUTE_r11 1382 -#define _SET_FUNCTION_ATTRIBUTE_r21 1383 -#define _SET_FUNCTION_ATTRIBUTE_r32 1384 -#define _SET_IP_r00 1385 -#define _SET_IP_r11 1386 -#define _SET_IP_r22 1387 -#define _SET_IP_r33 1388 -#define _SET_UPDATE_r11 1389 -#define _SHUFFLE_2_LOAD_CONST_INLINE_BORROW_r02 1390 -#define _SHUFFLE_2_LOAD_CONST_INLINE_BORROW_r12 1391 -#define _SHUFFLE_2_LOAD_CONST_INLINE_BORROW_r22 1392 -#define _SHUFFLE_2_LOAD_CONST_INLINE_BORROW_r32 1393 -#define _SHUFFLE_3_LOAD_CONST_INLINE_BORROW_r03 1394 -#define _SHUFFLE_3_LOAD_CONST_INLINE_BORROW_r13 1395 -#define _SHUFFLE_3_LOAD_CONST_INLINE_BORROW_r23 1396 -#define _SHUFFLE_3_LOAD_CONST_INLINE_BORROW_r33 1397 -#define _SPILL_OR_RELOAD_r01 1398 -#define _SPILL_OR_RELOAD_r02 1399 -#define _SPILL_OR_RELOAD_r03 1400 -#define _SPILL_OR_RELOAD_r10 1401 -#define _SPILL_OR_RELOAD_r12 1402 -#define _SPILL_OR_RELOAD_r13 1403 -#define _SPILL_OR_RELOAD_r20 1404 -#define _SPILL_OR_RELOAD_r21 1405 -#define _SPILL_OR_RELOAD_r23 1406 -#define _SPILL_OR_RELOAD_r30 1407 -#define _SPILL_OR_RELOAD_r31 1408 -#define _SPILL_OR_RELOAD_r32 1409 -#define _START_EXECUTOR_r00 1410 -#define _STORE_ATTR_r20 1411 -#define _STORE_ATTR_INSTANCE_VALUE_r21 1412 -#define _STORE_ATTR_SLOT_r21 1413 -#define _STORE_ATTR_WITH_HINT_r21 1414 -#define _STORE_DEREF_r10 1415 -#define _STORE_FAST_LOAD_FAST_r11 1416 -#define _STORE_FAST_STORE_FAST_r20 1417 -#define _STORE_GLOBAL_r10 1418 -#define _STORE_NAME_r10 1419 -#define _STORE_SLICE_r30 1420 -#define _STORE_SUBSCR_r30 1421 -#define _STORE_SUBSCR_DICT_r31 1422 -#define _STORE_SUBSCR_LIST_INT_r32 1423 -#define _SWAP_r11 1424 -#define _SWAP_2_r02 1425 -#define _SWAP_2_r12 1426 -#define _SWAP_2_r22 1427 -#define _SWAP_2_r33 1428 -#define _SWAP_3_r03 1429 -#define _SWAP_3_r13 1430 -#define _SWAP_3_r23 1431 -#define _SWAP_3_r33 1432 -#define _SWAP_FAST_r01 1433 -#define _SWAP_FAST_r11 1434 -#define _SWAP_FAST_r22 1435 -#define _SWAP_FAST_r33 1436 -#define _SWAP_FAST_0_r01 1437 -#define _SWAP_FAST_0_r11 1438 -#define _SWAP_FAST_0_r22 1439 -#define _SWAP_FAST_0_r33 1440 -#define _SWAP_FAST_1_r01 1441 -#define _SWAP_FAST_1_r11 1442 -#define _SWAP_FAST_1_r22 1443 -#define _SWAP_FAST_1_r33 1444 -#define _SWAP_FAST_2_r01 1445 -#define _SWAP_FAST_2_r11 1446 -#define _SWAP_FAST_2_r22 1447 -#define _SWAP_FAST_2_r33 1448 -#define _SWAP_FAST_3_r01 1449 -#define _SWAP_FAST_3_r11 1450 -#define _SWAP_FAST_3_r22 1451 -#define _SWAP_FAST_3_r33 1452 -#define _SWAP_FAST_4_r01 1453 -#define _SWAP_FAST_4_r11 1454 -#define _SWAP_FAST_4_r22 1455 -#define _SWAP_FAST_4_r33 1456 -#define _SWAP_FAST_5_r01 1457 -#define _SWAP_FAST_5_r11 1458 -#define _SWAP_FAST_5_r22 1459 -#define _SWAP_FAST_5_r33 1460 -#define _SWAP_FAST_6_r01 1461 -#define _SWAP_FAST_6_r11 1462 -#define _SWAP_FAST_6_r22 1463 -#define _SWAP_FAST_6_r33 1464 -#define _SWAP_FAST_7_r01 1465 -#define _SWAP_FAST_7_r11 1466 -#define _SWAP_FAST_7_r22 1467 -#define _SWAP_FAST_7_r33 1468 -#define _TIER2_RESUME_CHECK_r00 1469 -#define _TIER2_RESUME_CHECK_r11 1470 -#define _TIER2_RESUME_CHECK_r22 1471 -#define _TIER2_RESUME_CHECK_r33 1472 -#define _TO_BOOL_r11 1473 -#define _TO_BOOL_BOOL_r01 1474 -#define _TO_BOOL_BOOL_r11 1475 -#define _TO_BOOL_BOOL_r22 1476 -#define _TO_BOOL_BOOL_r33 1477 -#define _TO_BOOL_INT_r02 1478 -#define _TO_BOOL_INT_r12 1479 -#define _TO_BOOL_INT_r23 1480 -#define _TO_BOOL_LIST_r02 1481 -#define _TO_BOOL_LIST_r12 1482 -#define _TO_BOOL_LIST_r23 1483 -#define _TO_BOOL_NONE_r01 1484 -#define _TO_BOOL_NONE_r11 1485 -#define _TO_BOOL_NONE_r22 1486 -#define _TO_BOOL_NONE_r33 1487 -#define _TO_BOOL_STR_r02 1488 -#define _TO_BOOL_STR_r12 1489 -#define _TO_BOOL_STR_r23 1490 -#define _TRACE_RECORD_r00 1491 -#define _UNARY_INVERT_r12 1492 -#define _UNARY_NEGATIVE_r12 1493 -#define _UNARY_NOT_r01 1494 -#define _UNARY_NOT_r11 1495 -#define _UNARY_NOT_r22 1496 -#define _UNARY_NOT_r33 1497 -#define _UNPACK_EX_r10 1498 -#define _UNPACK_SEQUENCE_r10 1499 -#define _UNPACK_SEQUENCE_LIST_r10 1500 -#define _UNPACK_SEQUENCE_TUPLE_r10 1501 -#define _UNPACK_SEQUENCE_TWO_TUPLE_r12 1502 -#define _UNPACK_SEQUENCE_UNIQUE_THREE_TUPLE_r03 1503 -#define _UNPACK_SEQUENCE_UNIQUE_THREE_TUPLE_r13 1504 -#define _UNPACK_SEQUENCE_UNIQUE_TUPLE_r10 1505 -#define _UNPACK_SEQUENCE_UNIQUE_TWO_TUPLE_r02 1506 -#define _UNPACK_SEQUENCE_UNIQUE_TWO_TUPLE_r12 1507 -#define _UNPACK_SEQUENCE_UNIQUE_TWO_TUPLE_r23 1508 -#define _WITH_EXCEPT_START_r33 1509 -#define _YIELD_VALUE_r11 1510 -#define MAX_UOP_REGS_ID 1510 +#define _YIELD_VALUE 614 +#define MAX_UOP_ID 614 +#define _BINARY_OP_r23 615 +#define _BINARY_OP_ADD_FLOAT_r03 616 +#define _BINARY_OP_ADD_FLOAT_r13 617 +#define _BINARY_OP_ADD_FLOAT_r23 618 +#define _BINARY_OP_ADD_FLOAT_INPLACE_r03 619 +#define _BINARY_OP_ADD_FLOAT_INPLACE_r13 620 +#define _BINARY_OP_ADD_FLOAT_INPLACE_r23 621 +#define _BINARY_OP_ADD_FLOAT_INPLACE_RIGHT_r03 622 +#define _BINARY_OP_ADD_FLOAT_INPLACE_RIGHT_r13 623 +#define _BINARY_OP_ADD_FLOAT_INPLACE_RIGHT_r23 624 +#define _BINARY_OP_ADD_INT_r03 625 +#define _BINARY_OP_ADD_INT_r13 626 +#define _BINARY_OP_ADD_INT_r23 627 +#define _BINARY_OP_ADD_UNICODE_r03 628 +#define _BINARY_OP_ADD_UNICODE_r13 629 +#define _BINARY_OP_ADD_UNICODE_r23 630 +#define _BINARY_OP_EXTEND_r23 631 +#define _BINARY_OP_INPLACE_ADD_UNICODE_r21 632 +#define _BINARY_OP_MULTIPLY_FLOAT_r03 633 +#define _BINARY_OP_MULTIPLY_FLOAT_r13 634 +#define _BINARY_OP_MULTIPLY_FLOAT_r23 635 +#define _BINARY_OP_MULTIPLY_FLOAT_INPLACE_r03 636 +#define _BINARY_OP_MULTIPLY_FLOAT_INPLACE_r13 637 +#define _BINARY_OP_MULTIPLY_FLOAT_INPLACE_r23 638 +#define _BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT_r03 639 +#define _BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT_r13 640 +#define _BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT_r23 641 +#define _BINARY_OP_MULTIPLY_INT_r03 642 +#define _BINARY_OP_MULTIPLY_INT_r13 643 +#define _BINARY_OP_MULTIPLY_INT_r23 644 +#define _BINARY_OP_SUBSCR_CHECK_FUNC_r23 645 +#define _BINARY_OP_SUBSCR_DICT_r23 646 +#define _BINARY_OP_SUBSCR_INIT_CALL_r01 647 +#define _BINARY_OP_SUBSCR_INIT_CALL_r11 648 +#define _BINARY_OP_SUBSCR_INIT_CALL_r21 649 +#define _BINARY_OP_SUBSCR_INIT_CALL_r31 650 +#define _BINARY_OP_SUBSCR_LIST_INT_r23 651 +#define _BINARY_OP_SUBSCR_LIST_SLICE_r23 652 +#define _BINARY_OP_SUBSCR_STR_INT_r23 653 +#define _BINARY_OP_SUBSCR_TUPLE_INT_r03 654 +#define _BINARY_OP_SUBSCR_TUPLE_INT_r13 655 +#define _BINARY_OP_SUBSCR_TUPLE_INT_r23 656 +#define _BINARY_OP_SUBSCR_USTR_INT_r23 657 +#define _BINARY_OP_SUBTRACT_FLOAT_r03 658 +#define _BINARY_OP_SUBTRACT_FLOAT_r13 659 +#define _BINARY_OP_SUBTRACT_FLOAT_r23 660 +#define _BINARY_OP_SUBTRACT_FLOAT_INPLACE_r03 661 +#define _BINARY_OP_SUBTRACT_FLOAT_INPLACE_r13 662 +#define _BINARY_OP_SUBTRACT_FLOAT_INPLACE_r23 663 +#define _BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT_r03 664 +#define _BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT_r13 665 +#define _BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT_r23 666 +#define _BINARY_OP_SUBTRACT_INT_r03 667 +#define _BINARY_OP_SUBTRACT_INT_r13 668 +#define _BINARY_OP_SUBTRACT_INT_r23 669 +#define _BINARY_SLICE_r31 670 +#define _BUILD_INTERPOLATION_r01 671 +#define _BUILD_LIST_r01 672 +#define _BUILD_MAP_r01 673 +#define _BUILD_SET_r01 674 +#define _BUILD_SLICE_r01 675 +#define _BUILD_STRING_r01 676 +#define _BUILD_TEMPLATE_r21 677 +#define _BUILD_TUPLE_r01 678 +#define _CALL_BUILTIN_CLASS_r01 679 +#define _CALL_BUILTIN_FAST_r01 680 +#define _CALL_BUILTIN_FAST_WITH_KEYWORDS_r01 681 +#define _CALL_BUILTIN_O_r03 682 +#define _CALL_FUNCTION_EX_NON_PY_GENERAL_r31 683 +#define _CALL_INTRINSIC_1_r12 684 +#define _CALL_INTRINSIC_2_r21 685 +#define _CALL_ISINSTANCE_r31 686 +#define _CALL_KW_NON_PY_r11 687 +#define _CALL_LEN_r33 688 +#define _CALL_LIST_APPEND_r03 689 +#define _CALL_LIST_APPEND_r13 690 +#define _CALL_LIST_APPEND_r23 691 +#define _CALL_LIST_APPEND_r33 692 +#define _CALL_METHOD_DESCRIPTOR_FAST_r01 693 +#define _CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS_r01 694 +#define _CALL_METHOD_DESCRIPTOR_NOARGS_r01 695 +#define _CALL_METHOD_DESCRIPTOR_O_r03 696 +#define _CALL_NON_PY_GENERAL_r01 697 +#define _CALL_STR_1_r32 698 +#define _CALL_TUPLE_1_r32 699 +#define _CALL_TYPE_1_r02 700 +#define _CALL_TYPE_1_r12 701 +#define _CALL_TYPE_1_r22 702 +#define _CALL_TYPE_1_r32 703 +#define _CHECK_AND_ALLOCATE_OBJECT_r00 704 +#define _CHECK_ATTR_CLASS_r01 705 +#define _CHECK_ATTR_CLASS_r11 706 +#define _CHECK_ATTR_CLASS_r22 707 +#define _CHECK_ATTR_CLASS_r33 708 +#define _CHECK_ATTR_METHOD_LAZY_DICT_r01 709 +#define _CHECK_ATTR_METHOD_LAZY_DICT_r11 710 +#define _CHECK_ATTR_METHOD_LAZY_DICT_r22 711 +#define _CHECK_ATTR_METHOD_LAZY_DICT_r33 712 +#define _CHECK_CALL_BOUND_METHOD_EXACT_ARGS_r00 713 +#define _CHECK_EG_MATCH_r22 714 +#define _CHECK_EXC_MATCH_r22 715 +#define _CHECK_FUNCTION_EXACT_ARGS_r00 716 +#define _CHECK_FUNCTION_VERSION_r00 717 +#define _CHECK_FUNCTION_VERSION_INLINE_r00 718 +#define _CHECK_FUNCTION_VERSION_INLINE_r11 719 +#define _CHECK_FUNCTION_VERSION_INLINE_r22 720 +#define _CHECK_FUNCTION_VERSION_INLINE_r33 721 +#define _CHECK_FUNCTION_VERSION_KW_r11 722 +#define _CHECK_IS_NOT_PY_CALLABLE_r00 723 +#define _CHECK_IS_NOT_PY_CALLABLE_EX_r03 724 +#define _CHECK_IS_NOT_PY_CALLABLE_EX_r13 725 +#define _CHECK_IS_NOT_PY_CALLABLE_EX_r23 726 +#define _CHECK_IS_NOT_PY_CALLABLE_EX_r33 727 +#define _CHECK_IS_NOT_PY_CALLABLE_KW_r11 728 +#define _CHECK_IS_PY_CALLABLE_EX_r03 729 +#define _CHECK_IS_PY_CALLABLE_EX_r13 730 +#define _CHECK_IS_PY_CALLABLE_EX_r23 731 +#define _CHECK_IS_PY_CALLABLE_EX_r33 732 +#define _CHECK_MANAGED_OBJECT_HAS_VALUES_r01 733 +#define _CHECK_MANAGED_OBJECT_HAS_VALUES_r11 734 +#define _CHECK_MANAGED_OBJECT_HAS_VALUES_r22 735 +#define _CHECK_MANAGED_OBJECT_HAS_VALUES_r33 736 +#define _CHECK_METHOD_VERSION_r00 737 +#define _CHECK_METHOD_VERSION_KW_r11 738 +#define _CHECK_PEP_523_r00 739 +#define _CHECK_PEP_523_r11 740 +#define _CHECK_PEP_523_r22 741 +#define _CHECK_PEP_523_r33 742 +#define _CHECK_PERIODIC_r00 743 +#define _CHECK_PERIODIC_AT_END_r00 744 +#define _CHECK_PERIODIC_IF_NOT_YIELD_FROM_r00 745 +#define _CHECK_RECURSION_REMAINING_r00 746 +#define _CHECK_RECURSION_REMAINING_r11 747 +#define _CHECK_RECURSION_REMAINING_r22 748 +#define _CHECK_RECURSION_REMAINING_r33 749 +#define _CHECK_STACK_SPACE_r00 750 +#define _CHECK_STACK_SPACE_OPERAND_r00 751 +#define _CHECK_STACK_SPACE_OPERAND_r11 752 +#define _CHECK_STACK_SPACE_OPERAND_r22 753 +#define _CHECK_STACK_SPACE_OPERAND_r33 754 +#define _CHECK_VALIDITY_r00 755 +#define _CHECK_VALIDITY_r11 756 +#define _CHECK_VALIDITY_r22 757 +#define _CHECK_VALIDITY_r33 758 +#define _COLD_DYNAMIC_EXIT_r00 759 +#define _COLD_EXIT_r00 760 +#define _COMPARE_OP_r21 761 +#define _COMPARE_OP_FLOAT_r03 762 +#define _COMPARE_OP_FLOAT_r13 763 +#define _COMPARE_OP_FLOAT_r23 764 +#define _COMPARE_OP_INT_r23 765 +#define _COMPARE_OP_STR_r23 766 +#define _CONTAINS_OP_r23 767 +#define _CONTAINS_OP_DICT_r23 768 +#define _CONTAINS_OP_SET_r23 769 +#define _CONVERT_VALUE_r11 770 +#define _COPY_r01 771 +#define _COPY_1_r02 772 +#define _COPY_1_r12 773 +#define _COPY_1_r23 774 +#define _COPY_2_r03 775 +#define _COPY_2_r13 776 +#define _COPY_2_r23 777 +#define _COPY_3_r03 778 +#define _COPY_3_r13 779 +#define _COPY_3_r23 780 +#define _COPY_3_r33 781 +#define _COPY_FREE_VARS_r00 782 +#define _COPY_FREE_VARS_r11 783 +#define _COPY_FREE_VARS_r22 784 +#define _COPY_FREE_VARS_r33 785 +#define _CREATE_INIT_FRAME_r01 786 +#define _DELETE_ATTR_r10 787 +#define _DELETE_DEREF_r00 788 +#define _DELETE_FAST_r00 789 +#define _DELETE_GLOBAL_r00 790 +#define _DELETE_NAME_r00 791 +#define _DELETE_SUBSCR_r20 792 +#define _DEOPT_r00 793 +#define _DEOPT_r10 794 +#define _DEOPT_r20 795 +#define _DEOPT_r30 796 +#define _DICT_MERGE_r10 797 +#define _DICT_UPDATE_r10 798 +#define _DO_CALL_r01 799 +#define _DO_CALL_FUNCTION_EX_r31 800 +#define _DO_CALL_KW_r11 801 +#define _DYNAMIC_EXIT_r00 802 +#define _DYNAMIC_EXIT_r10 803 +#define _DYNAMIC_EXIT_r20 804 +#define _DYNAMIC_EXIT_r30 805 +#define _END_FOR_r10 806 +#define _END_SEND_r31 807 +#define _ERROR_POP_N_r00 808 +#define _EXIT_INIT_CHECK_r10 809 +#define _EXIT_TRACE_r00 810 +#define _EXIT_TRACE_r10 811 +#define _EXIT_TRACE_r20 812 +#define _EXIT_TRACE_r30 813 +#define _EXPAND_METHOD_r00 814 +#define _EXPAND_METHOD_KW_r11 815 +#define _FATAL_ERROR_r00 816 +#define _FATAL_ERROR_r11 817 +#define _FATAL_ERROR_r22 818 +#define _FATAL_ERROR_r33 819 +#define _FORMAT_SIMPLE_r11 820 +#define _FORMAT_WITH_SPEC_r21 821 +#define _FOR_ITER_r23 822 +#define _FOR_ITER_GEN_FRAME_r03 823 +#define _FOR_ITER_GEN_FRAME_r13 824 +#define _FOR_ITER_GEN_FRAME_r23 825 +#define _FOR_ITER_TIER_TWO_r23 826 +#define _GET_AITER_r11 827 +#define _GET_ANEXT_r12 828 +#define _GET_AWAITABLE_r11 829 +#define _GET_ITER_r12 830 +#define _GET_LEN_r12 831 +#define _GUARD_BINARY_OP_EXTEND_r22 832 +#define _GUARD_BINARY_OP_SUBSCR_TUPLE_INT_BOUNDS_r02 833 +#define _GUARD_BINARY_OP_SUBSCR_TUPLE_INT_BOUNDS_r12 834 +#define _GUARD_BINARY_OP_SUBSCR_TUPLE_INT_BOUNDS_r22 835 +#define _GUARD_BINARY_OP_SUBSCR_TUPLE_INT_BOUNDS_r33 836 +#define _GUARD_BIT_IS_SET_POP_r00 837 +#define _GUARD_BIT_IS_SET_POP_r10 838 +#define _GUARD_BIT_IS_SET_POP_r21 839 +#define _GUARD_BIT_IS_SET_POP_r32 840 +#define _GUARD_BIT_IS_SET_POP_4_r00 841 +#define _GUARD_BIT_IS_SET_POP_4_r10 842 +#define _GUARD_BIT_IS_SET_POP_4_r21 843 +#define _GUARD_BIT_IS_SET_POP_4_r32 844 +#define _GUARD_BIT_IS_SET_POP_5_r00 845 +#define _GUARD_BIT_IS_SET_POP_5_r10 846 +#define _GUARD_BIT_IS_SET_POP_5_r21 847 +#define _GUARD_BIT_IS_SET_POP_5_r32 848 +#define _GUARD_BIT_IS_SET_POP_6_r00 849 +#define _GUARD_BIT_IS_SET_POP_6_r10 850 +#define _GUARD_BIT_IS_SET_POP_6_r21 851 +#define _GUARD_BIT_IS_SET_POP_6_r32 852 +#define _GUARD_BIT_IS_SET_POP_7_r00 853 +#define _GUARD_BIT_IS_SET_POP_7_r10 854 +#define _GUARD_BIT_IS_SET_POP_7_r21 855 +#define _GUARD_BIT_IS_SET_POP_7_r32 856 +#define _GUARD_BIT_IS_UNSET_POP_r00 857 +#define _GUARD_BIT_IS_UNSET_POP_r10 858 +#define _GUARD_BIT_IS_UNSET_POP_r21 859 +#define _GUARD_BIT_IS_UNSET_POP_r32 860 +#define _GUARD_BIT_IS_UNSET_POP_4_r00 861 +#define _GUARD_BIT_IS_UNSET_POP_4_r10 862 +#define _GUARD_BIT_IS_UNSET_POP_4_r21 863 +#define _GUARD_BIT_IS_UNSET_POP_4_r32 864 +#define _GUARD_BIT_IS_UNSET_POP_5_r00 865 +#define _GUARD_BIT_IS_UNSET_POP_5_r10 866 +#define _GUARD_BIT_IS_UNSET_POP_5_r21 867 +#define _GUARD_BIT_IS_UNSET_POP_5_r32 868 +#define _GUARD_BIT_IS_UNSET_POP_6_r00 869 +#define _GUARD_BIT_IS_UNSET_POP_6_r10 870 +#define _GUARD_BIT_IS_UNSET_POP_6_r21 871 +#define _GUARD_BIT_IS_UNSET_POP_6_r32 872 +#define _GUARD_BIT_IS_UNSET_POP_7_r00 873 +#define _GUARD_BIT_IS_UNSET_POP_7_r10 874 +#define _GUARD_BIT_IS_UNSET_POP_7_r21 875 +#define _GUARD_BIT_IS_UNSET_POP_7_r32 876 +#define _GUARD_CALLABLE_ISINSTANCE_r03 877 +#define _GUARD_CALLABLE_ISINSTANCE_r13 878 +#define _GUARD_CALLABLE_ISINSTANCE_r23 879 +#define _GUARD_CALLABLE_ISINSTANCE_r33 880 +#define _GUARD_CALLABLE_LEN_r03 881 +#define _GUARD_CALLABLE_LEN_r13 882 +#define _GUARD_CALLABLE_LEN_r23 883 +#define _GUARD_CALLABLE_LEN_r33 884 +#define _GUARD_CALLABLE_LIST_APPEND_r03 885 +#define _GUARD_CALLABLE_LIST_APPEND_r13 886 +#define _GUARD_CALLABLE_LIST_APPEND_r23 887 +#define _GUARD_CALLABLE_LIST_APPEND_r33 888 +#define _GUARD_CALLABLE_STR_1_r03 889 +#define _GUARD_CALLABLE_STR_1_r13 890 +#define _GUARD_CALLABLE_STR_1_r23 891 +#define _GUARD_CALLABLE_STR_1_r33 892 +#define _GUARD_CALLABLE_TUPLE_1_r03 893 +#define _GUARD_CALLABLE_TUPLE_1_r13 894 +#define _GUARD_CALLABLE_TUPLE_1_r23 895 +#define _GUARD_CALLABLE_TUPLE_1_r33 896 +#define _GUARD_CALLABLE_TYPE_1_r03 897 +#define _GUARD_CALLABLE_TYPE_1_r13 898 +#define _GUARD_CALLABLE_TYPE_1_r23 899 +#define _GUARD_CALLABLE_TYPE_1_r33 900 +#define _GUARD_CODE_VERSION_RETURN_GENERATOR_r00 901 +#define _GUARD_CODE_VERSION_RETURN_GENERATOR_r11 902 +#define _GUARD_CODE_VERSION_RETURN_GENERATOR_r22 903 +#define _GUARD_CODE_VERSION_RETURN_GENERATOR_r33 904 +#define _GUARD_CODE_VERSION_RETURN_VALUE_r00 905 +#define _GUARD_CODE_VERSION_RETURN_VALUE_r11 906 +#define _GUARD_CODE_VERSION_RETURN_VALUE_r22 907 +#define _GUARD_CODE_VERSION_RETURN_VALUE_r33 908 +#define _GUARD_CODE_VERSION_YIELD_VALUE_r00 909 +#define _GUARD_CODE_VERSION_YIELD_VALUE_r11 910 +#define _GUARD_CODE_VERSION_YIELD_VALUE_r22 911 +#define _GUARD_CODE_VERSION_YIELD_VALUE_r33 912 +#define _GUARD_CODE_VERSION__PUSH_FRAME_r00 913 +#define _GUARD_CODE_VERSION__PUSH_FRAME_r11 914 +#define _GUARD_CODE_VERSION__PUSH_FRAME_r22 915 +#define _GUARD_CODE_VERSION__PUSH_FRAME_r33 916 +#define _GUARD_DORV_NO_DICT_r01 917 +#define _GUARD_DORV_NO_DICT_r11 918 +#define _GUARD_DORV_NO_DICT_r22 919 +#define _GUARD_DORV_NO_DICT_r33 920 +#define _GUARD_DORV_VALUES_INST_ATTR_FROM_DICT_r01 921 +#define _GUARD_DORV_VALUES_INST_ATTR_FROM_DICT_r11 922 +#define _GUARD_DORV_VALUES_INST_ATTR_FROM_DICT_r22 923 +#define _GUARD_DORV_VALUES_INST_ATTR_FROM_DICT_r33 924 +#define _GUARD_GLOBALS_VERSION_r00 925 +#define _GUARD_GLOBALS_VERSION_r11 926 +#define _GUARD_GLOBALS_VERSION_r22 927 +#define _GUARD_GLOBALS_VERSION_r33 928 +#define _GUARD_IP_RETURN_GENERATOR_r00 929 +#define _GUARD_IP_RETURN_GENERATOR_r11 930 +#define _GUARD_IP_RETURN_GENERATOR_r22 931 +#define _GUARD_IP_RETURN_GENERATOR_r33 932 +#define _GUARD_IP_RETURN_VALUE_r00 933 +#define _GUARD_IP_RETURN_VALUE_r11 934 +#define _GUARD_IP_RETURN_VALUE_r22 935 +#define _GUARD_IP_RETURN_VALUE_r33 936 +#define _GUARD_IP_YIELD_VALUE_r00 937 +#define _GUARD_IP_YIELD_VALUE_r11 938 +#define _GUARD_IP_YIELD_VALUE_r22 939 +#define _GUARD_IP_YIELD_VALUE_r33 940 +#define _GUARD_IP__PUSH_FRAME_r00 941 +#define _GUARD_IP__PUSH_FRAME_r11 942 +#define _GUARD_IP__PUSH_FRAME_r22 943 +#define _GUARD_IP__PUSH_FRAME_r33 944 +#define _GUARD_IS_FALSE_POP_r00 945 +#define _GUARD_IS_FALSE_POP_r10 946 +#define _GUARD_IS_FALSE_POP_r21 947 +#define _GUARD_IS_FALSE_POP_r32 948 +#define _GUARD_IS_NONE_POP_r00 949 +#define _GUARD_IS_NONE_POP_r10 950 +#define _GUARD_IS_NONE_POP_r21 951 +#define _GUARD_IS_NONE_POP_r32 952 +#define _GUARD_IS_NOT_NONE_POP_r10 953 +#define _GUARD_IS_TRUE_POP_r00 954 +#define _GUARD_IS_TRUE_POP_r10 955 +#define _GUARD_IS_TRUE_POP_r21 956 +#define _GUARD_IS_TRUE_POP_r32 957 +#define _GUARD_KEYS_VERSION_r01 958 +#define _GUARD_KEYS_VERSION_r11 959 +#define _GUARD_KEYS_VERSION_r22 960 +#define _GUARD_KEYS_VERSION_r33 961 +#define _GUARD_NOS_ANY_DICT_r02 962 +#define _GUARD_NOS_ANY_DICT_r12 963 +#define _GUARD_NOS_ANY_DICT_r22 964 +#define _GUARD_NOS_ANY_DICT_r33 965 +#define _GUARD_NOS_COMPACT_ASCII_r02 966 +#define _GUARD_NOS_COMPACT_ASCII_r12 967 +#define _GUARD_NOS_COMPACT_ASCII_r22 968 +#define _GUARD_NOS_COMPACT_ASCII_r33 969 +#define _GUARD_NOS_DICT_r02 970 +#define _GUARD_NOS_DICT_r12 971 +#define _GUARD_NOS_DICT_r22 972 +#define _GUARD_NOS_DICT_r33 973 +#define _GUARD_NOS_FLOAT_r02 974 +#define _GUARD_NOS_FLOAT_r12 975 +#define _GUARD_NOS_FLOAT_r22 976 +#define _GUARD_NOS_FLOAT_r33 977 +#define _GUARD_NOS_INT_r02 978 +#define _GUARD_NOS_INT_r12 979 +#define _GUARD_NOS_INT_r22 980 +#define _GUARD_NOS_INT_r33 981 +#define _GUARD_NOS_LIST_r02 982 +#define _GUARD_NOS_LIST_r12 983 +#define _GUARD_NOS_LIST_r22 984 +#define _GUARD_NOS_LIST_r33 985 +#define _GUARD_NOS_NOT_NULL_r02 986 +#define _GUARD_NOS_NOT_NULL_r12 987 +#define _GUARD_NOS_NOT_NULL_r22 988 +#define _GUARD_NOS_NOT_NULL_r33 989 +#define _GUARD_NOS_NULL_r02 990 +#define _GUARD_NOS_NULL_r12 991 +#define _GUARD_NOS_NULL_r22 992 +#define _GUARD_NOS_NULL_r33 993 +#define _GUARD_NOS_OVERFLOWED_r02 994 +#define _GUARD_NOS_OVERFLOWED_r12 995 +#define _GUARD_NOS_OVERFLOWED_r22 996 +#define _GUARD_NOS_OVERFLOWED_r33 997 +#define _GUARD_NOS_TUPLE_r02 998 +#define _GUARD_NOS_TUPLE_r12 999 +#define _GUARD_NOS_TUPLE_r22 1000 +#define _GUARD_NOS_TUPLE_r33 1001 +#define _GUARD_NOS_UNICODE_r02 1002 +#define _GUARD_NOS_UNICODE_r12 1003 +#define _GUARD_NOS_UNICODE_r22 1004 +#define _GUARD_NOS_UNICODE_r33 1005 +#define _GUARD_NOT_EXHAUSTED_LIST_r02 1006 +#define _GUARD_NOT_EXHAUSTED_LIST_r12 1007 +#define _GUARD_NOT_EXHAUSTED_LIST_r22 1008 +#define _GUARD_NOT_EXHAUSTED_LIST_r33 1009 +#define _GUARD_NOT_EXHAUSTED_RANGE_r02 1010 +#define _GUARD_NOT_EXHAUSTED_RANGE_r12 1011 +#define _GUARD_NOT_EXHAUSTED_RANGE_r22 1012 +#define _GUARD_NOT_EXHAUSTED_RANGE_r33 1013 +#define _GUARD_NOT_EXHAUSTED_TUPLE_r02 1014 +#define _GUARD_NOT_EXHAUSTED_TUPLE_r12 1015 +#define _GUARD_NOT_EXHAUSTED_TUPLE_r22 1016 +#define _GUARD_NOT_EXHAUSTED_TUPLE_r33 1017 +#define _GUARD_THIRD_NULL_r03 1018 +#define _GUARD_THIRD_NULL_r13 1019 +#define _GUARD_THIRD_NULL_r23 1020 +#define _GUARD_THIRD_NULL_r33 1021 +#define _GUARD_TOS_ANY_DICT_r01 1022 +#define _GUARD_TOS_ANY_DICT_r11 1023 +#define _GUARD_TOS_ANY_DICT_r22 1024 +#define _GUARD_TOS_ANY_DICT_r33 1025 +#define _GUARD_TOS_ANY_SET_r01 1026 +#define _GUARD_TOS_ANY_SET_r11 1027 +#define _GUARD_TOS_ANY_SET_r22 1028 +#define _GUARD_TOS_ANY_SET_r33 1029 +#define _GUARD_TOS_DICT_r01 1030 +#define _GUARD_TOS_DICT_r11 1031 +#define _GUARD_TOS_DICT_r22 1032 +#define _GUARD_TOS_DICT_r33 1033 +#define _GUARD_TOS_FLOAT_r01 1034 +#define _GUARD_TOS_FLOAT_r11 1035 +#define _GUARD_TOS_FLOAT_r22 1036 +#define _GUARD_TOS_FLOAT_r33 1037 +#define _GUARD_TOS_FROZENDICT_r01 1038 +#define _GUARD_TOS_FROZENDICT_r11 1039 +#define _GUARD_TOS_FROZENDICT_r22 1040 +#define _GUARD_TOS_FROZENDICT_r33 1041 +#define _GUARD_TOS_FROZENSET_r01 1042 +#define _GUARD_TOS_FROZENSET_r11 1043 +#define _GUARD_TOS_FROZENSET_r22 1044 +#define _GUARD_TOS_FROZENSET_r33 1045 +#define _GUARD_TOS_INT_r01 1046 +#define _GUARD_TOS_INT_r11 1047 +#define _GUARD_TOS_INT_r22 1048 +#define _GUARD_TOS_INT_r33 1049 +#define _GUARD_TOS_LIST_r01 1050 +#define _GUARD_TOS_LIST_r11 1051 +#define _GUARD_TOS_LIST_r22 1052 +#define _GUARD_TOS_LIST_r33 1053 +#define _GUARD_TOS_OVERFLOWED_r01 1054 +#define _GUARD_TOS_OVERFLOWED_r11 1055 +#define _GUARD_TOS_OVERFLOWED_r22 1056 +#define _GUARD_TOS_OVERFLOWED_r33 1057 +#define _GUARD_TOS_SET_r01 1058 +#define _GUARD_TOS_SET_r11 1059 +#define _GUARD_TOS_SET_r22 1060 +#define _GUARD_TOS_SET_r33 1061 +#define _GUARD_TOS_SLICE_r01 1062 +#define _GUARD_TOS_SLICE_r11 1063 +#define _GUARD_TOS_SLICE_r22 1064 +#define _GUARD_TOS_SLICE_r33 1065 +#define _GUARD_TOS_TUPLE_r01 1066 +#define _GUARD_TOS_TUPLE_r11 1067 +#define _GUARD_TOS_TUPLE_r22 1068 +#define _GUARD_TOS_TUPLE_r33 1069 +#define _GUARD_TOS_UNICODE_r01 1070 +#define _GUARD_TOS_UNICODE_r11 1071 +#define _GUARD_TOS_UNICODE_r22 1072 +#define _GUARD_TOS_UNICODE_r33 1073 +#define _GUARD_TYPE_VERSION_r01 1074 +#define _GUARD_TYPE_VERSION_r11 1075 +#define _GUARD_TYPE_VERSION_r22 1076 +#define _GUARD_TYPE_VERSION_r33 1077 +#define _GUARD_TYPE_VERSION_LOCKED_r01 1078 +#define _GUARD_TYPE_VERSION_LOCKED_r11 1079 +#define _GUARD_TYPE_VERSION_LOCKED_r22 1080 +#define _GUARD_TYPE_VERSION_LOCKED_r33 1081 +#define _HANDLE_PENDING_AND_DEOPT_r00 1082 +#define _HANDLE_PENDING_AND_DEOPT_r10 1083 +#define _HANDLE_PENDING_AND_DEOPT_r20 1084 +#define _HANDLE_PENDING_AND_DEOPT_r30 1085 +#define _IMPORT_FROM_r12 1086 +#define _IMPORT_NAME_r21 1087 +#define _INIT_CALL_BOUND_METHOD_EXACT_ARGS_r00 1088 +#define _INIT_CALL_PY_EXACT_ARGS_r01 1089 +#define _INIT_CALL_PY_EXACT_ARGS_0_r01 1090 +#define _INIT_CALL_PY_EXACT_ARGS_1_r01 1091 +#define _INIT_CALL_PY_EXACT_ARGS_2_r01 1092 +#define _INIT_CALL_PY_EXACT_ARGS_3_r01 1093 +#define _INIT_CALL_PY_EXACT_ARGS_4_r01 1094 +#define _INSERT_1_LOAD_CONST_INLINE_r02 1095 +#define _INSERT_1_LOAD_CONST_INLINE_r12 1096 +#define _INSERT_1_LOAD_CONST_INLINE_r23 1097 +#define _INSERT_1_LOAD_CONST_INLINE_BORROW_r02 1098 +#define _INSERT_1_LOAD_CONST_INLINE_BORROW_r12 1099 +#define _INSERT_1_LOAD_CONST_INLINE_BORROW_r23 1100 +#define _INSERT_2_LOAD_CONST_INLINE_BORROW_r03 1101 +#define _INSERT_2_LOAD_CONST_INLINE_BORROW_r13 1102 +#define _INSERT_2_LOAD_CONST_INLINE_BORROW_r23 1103 +#define _INSERT_NULL_r10 1104 +#define _INSTRUMENTED_FOR_ITER_r23 1105 +#define _INSTRUMENTED_INSTRUCTION_r00 1106 +#define _INSTRUMENTED_JUMP_FORWARD_r00 1107 +#define _INSTRUMENTED_JUMP_FORWARD_r11 1108 +#define _INSTRUMENTED_JUMP_FORWARD_r22 1109 +#define _INSTRUMENTED_JUMP_FORWARD_r33 1110 +#define _INSTRUMENTED_LINE_r00 1111 +#define _INSTRUMENTED_NOT_TAKEN_r00 1112 +#define _INSTRUMENTED_NOT_TAKEN_r11 1113 +#define _INSTRUMENTED_NOT_TAKEN_r22 1114 +#define _INSTRUMENTED_NOT_TAKEN_r33 1115 +#define _INSTRUMENTED_POP_JUMP_IF_FALSE_r00 1116 +#define _INSTRUMENTED_POP_JUMP_IF_FALSE_r10 1117 +#define _INSTRUMENTED_POP_JUMP_IF_FALSE_r21 1118 +#define _INSTRUMENTED_POP_JUMP_IF_FALSE_r32 1119 +#define _INSTRUMENTED_POP_JUMP_IF_NONE_r10 1120 +#define _INSTRUMENTED_POP_JUMP_IF_NOT_NONE_r10 1121 +#define _INSTRUMENTED_POP_JUMP_IF_TRUE_r00 1122 +#define _INSTRUMENTED_POP_JUMP_IF_TRUE_r10 1123 +#define _INSTRUMENTED_POP_JUMP_IF_TRUE_r21 1124 +#define _INSTRUMENTED_POP_JUMP_IF_TRUE_r32 1125 +#define _IS_NONE_r11 1126 +#define _IS_OP_r03 1127 +#define _IS_OP_r13 1128 +#define _IS_OP_r23 1129 +#define _ITER_CHECK_LIST_r02 1130 +#define _ITER_CHECK_LIST_r12 1131 +#define _ITER_CHECK_LIST_r22 1132 +#define _ITER_CHECK_LIST_r33 1133 +#define _ITER_CHECK_RANGE_r02 1134 +#define _ITER_CHECK_RANGE_r12 1135 +#define _ITER_CHECK_RANGE_r22 1136 +#define _ITER_CHECK_RANGE_r33 1137 +#define _ITER_CHECK_TUPLE_r02 1138 +#define _ITER_CHECK_TUPLE_r12 1139 +#define _ITER_CHECK_TUPLE_r22 1140 +#define _ITER_CHECK_TUPLE_r33 1141 +#define _ITER_JUMP_LIST_r02 1142 +#define _ITER_JUMP_LIST_r12 1143 +#define _ITER_JUMP_LIST_r22 1144 +#define _ITER_JUMP_LIST_r33 1145 +#define _ITER_JUMP_RANGE_r02 1146 +#define _ITER_JUMP_RANGE_r12 1147 +#define _ITER_JUMP_RANGE_r22 1148 +#define _ITER_JUMP_RANGE_r33 1149 +#define _ITER_JUMP_TUPLE_r02 1150 +#define _ITER_JUMP_TUPLE_r12 1151 +#define _ITER_JUMP_TUPLE_r22 1152 +#define _ITER_JUMP_TUPLE_r33 1153 +#define _ITER_NEXT_LIST_r23 1154 +#define _ITER_NEXT_LIST_TIER_TWO_r23 1155 +#define _ITER_NEXT_RANGE_r03 1156 +#define _ITER_NEXT_RANGE_r13 1157 +#define _ITER_NEXT_RANGE_r23 1158 +#define _ITER_NEXT_TUPLE_r03 1159 +#define _ITER_NEXT_TUPLE_r13 1160 +#define _ITER_NEXT_TUPLE_r23 1161 +#define _JUMP_BACKWARD_NO_INTERRUPT_r00 1162 +#define _JUMP_BACKWARD_NO_INTERRUPT_r11 1163 +#define _JUMP_BACKWARD_NO_INTERRUPT_r22 1164 +#define _JUMP_BACKWARD_NO_INTERRUPT_r33 1165 +#define _JUMP_TO_TOP_r00 1166 +#define _LIST_APPEND_r10 1167 +#define _LIST_EXTEND_r10 1168 +#define _LOAD_ATTR_r10 1169 +#define _LOAD_ATTR_CLASS_r11 1170 +#define _LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN_r11 1171 +#define _LOAD_ATTR_INSTANCE_VALUE_r02 1172 +#define _LOAD_ATTR_INSTANCE_VALUE_r12 1173 +#define _LOAD_ATTR_INSTANCE_VALUE_r23 1174 +#define _LOAD_ATTR_METHOD_LAZY_DICT_r02 1175 +#define _LOAD_ATTR_METHOD_LAZY_DICT_r12 1176 +#define _LOAD_ATTR_METHOD_LAZY_DICT_r23 1177 +#define _LOAD_ATTR_METHOD_NO_DICT_r02 1178 +#define _LOAD_ATTR_METHOD_NO_DICT_r12 1179 +#define _LOAD_ATTR_METHOD_NO_DICT_r23 1180 +#define _LOAD_ATTR_METHOD_WITH_VALUES_r02 1181 +#define _LOAD_ATTR_METHOD_WITH_VALUES_r12 1182 +#define _LOAD_ATTR_METHOD_WITH_VALUES_r23 1183 +#define _LOAD_ATTR_MODULE_r12 1184 +#define _LOAD_ATTR_NONDESCRIPTOR_NO_DICT_r11 1185 +#define _LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES_r11 1186 +#define _LOAD_ATTR_PROPERTY_FRAME_r11 1187 +#define _LOAD_ATTR_SLOT_r02 1188 +#define _LOAD_ATTR_SLOT_r12 1189 +#define _LOAD_ATTR_SLOT_r23 1190 +#define _LOAD_ATTR_WITH_HINT_r12 1191 +#define _LOAD_BUILD_CLASS_r01 1192 +#define _LOAD_BYTECODE_r00 1193 +#define _LOAD_COMMON_CONSTANT_r01 1194 +#define _LOAD_COMMON_CONSTANT_r12 1195 +#define _LOAD_COMMON_CONSTANT_r23 1196 +#define _LOAD_CONST_r01 1197 +#define _LOAD_CONST_r12 1198 +#define _LOAD_CONST_r23 1199 +#define _LOAD_CONST_INLINE_r01 1200 +#define _LOAD_CONST_INLINE_r12 1201 +#define _LOAD_CONST_INLINE_r23 1202 +#define _LOAD_CONST_INLINE_BORROW_r01 1203 +#define _LOAD_CONST_INLINE_BORROW_r12 1204 +#define _LOAD_CONST_INLINE_BORROW_r23 1205 +#define _LOAD_CONST_UNDER_INLINE_r02 1206 +#define _LOAD_CONST_UNDER_INLINE_r12 1207 +#define _LOAD_CONST_UNDER_INLINE_r23 1208 +#define _LOAD_CONST_UNDER_INLINE_BORROW_r02 1209 +#define _LOAD_CONST_UNDER_INLINE_BORROW_r12 1210 +#define _LOAD_CONST_UNDER_INLINE_BORROW_r23 1211 +#define _LOAD_DEREF_r01 1212 +#define _LOAD_FAST_r01 1213 +#define _LOAD_FAST_r12 1214 +#define _LOAD_FAST_r23 1215 +#define _LOAD_FAST_0_r01 1216 +#define _LOAD_FAST_0_r12 1217 +#define _LOAD_FAST_0_r23 1218 +#define _LOAD_FAST_1_r01 1219 +#define _LOAD_FAST_1_r12 1220 +#define _LOAD_FAST_1_r23 1221 +#define _LOAD_FAST_2_r01 1222 +#define _LOAD_FAST_2_r12 1223 +#define _LOAD_FAST_2_r23 1224 +#define _LOAD_FAST_3_r01 1225 +#define _LOAD_FAST_3_r12 1226 +#define _LOAD_FAST_3_r23 1227 +#define _LOAD_FAST_4_r01 1228 +#define _LOAD_FAST_4_r12 1229 +#define _LOAD_FAST_4_r23 1230 +#define _LOAD_FAST_5_r01 1231 +#define _LOAD_FAST_5_r12 1232 +#define _LOAD_FAST_5_r23 1233 +#define _LOAD_FAST_6_r01 1234 +#define _LOAD_FAST_6_r12 1235 +#define _LOAD_FAST_6_r23 1236 +#define _LOAD_FAST_7_r01 1237 +#define _LOAD_FAST_7_r12 1238 +#define _LOAD_FAST_7_r23 1239 +#define _LOAD_FAST_AND_CLEAR_r01 1240 +#define _LOAD_FAST_AND_CLEAR_r12 1241 +#define _LOAD_FAST_AND_CLEAR_r23 1242 +#define _LOAD_FAST_BORROW_r01 1243 +#define _LOAD_FAST_BORROW_r12 1244 +#define _LOAD_FAST_BORROW_r23 1245 +#define _LOAD_FAST_BORROW_0_r01 1246 +#define _LOAD_FAST_BORROW_0_r12 1247 +#define _LOAD_FAST_BORROW_0_r23 1248 +#define _LOAD_FAST_BORROW_1_r01 1249 +#define _LOAD_FAST_BORROW_1_r12 1250 +#define _LOAD_FAST_BORROW_1_r23 1251 +#define _LOAD_FAST_BORROW_2_r01 1252 +#define _LOAD_FAST_BORROW_2_r12 1253 +#define _LOAD_FAST_BORROW_2_r23 1254 +#define _LOAD_FAST_BORROW_3_r01 1255 +#define _LOAD_FAST_BORROW_3_r12 1256 +#define _LOAD_FAST_BORROW_3_r23 1257 +#define _LOAD_FAST_BORROW_4_r01 1258 +#define _LOAD_FAST_BORROW_4_r12 1259 +#define _LOAD_FAST_BORROW_4_r23 1260 +#define _LOAD_FAST_BORROW_5_r01 1261 +#define _LOAD_FAST_BORROW_5_r12 1262 +#define _LOAD_FAST_BORROW_5_r23 1263 +#define _LOAD_FAST_BORROW_6_r01 1264 +#define _LOAD_FAST_BORROW_6_r12 1265 +#define _LOAD_FAST_BORROW_6_r23 1266 +#define _LOAD_FAST_BORROW_7_r01 1267 +#define _LOAD_FAST_BORROW_7_r12 1268 +#define _LOAD_FAST_BORROW_7_r23 1269 +#define _LOAD_FAST_BORROW_LOAD_FAST_BORROW_r02 1270 +#define _LOAD_FAST_BORROW_LOAD_FAST_BORROW_r13 1271 +#define _LOAD_FAST_CHECK_r01 1272 +#define _LOAD_FAST_CHECK_r12 1273 +#define _LOAD_FAST_CHECK_r23 1274 +#define _LOAD_FAST_LOAD_FAST_r02 1275 +#define _LOAD_FAST_LOAD_FAST_r13 1276 +#define _LOAD_FROM_DICT_OR_DEREF_r11 1277 +#define _LOAD_FROM_DICT_OR_GLOBALS_r11 1278 +#define _LOAD_GLOBAL_r00 1279 +#define _LOAD_GLOBAL_BUILTINS_r01 1280 +#define _LOAD_GLOBAL_MODULE_r01 1281 +#define _LOAD_LOCALS_r01 1282 +#define _LOAD_LOCALS_r12 1283 +#define _LOAD_LOCALS_r23 1284 +#define _LOAD_NAME_r01 1285 +#define _LOAD_SMALL_INT_r01 1286 +#define _LOAD_SMALL_INT_r12 1287 +#define _LOAD_SMALL_INT_r23 1288 +#define _LOAD_SMALL_INT_0_r01 1289 +#define _LOAD_SMALL_INT_0_r12 1290 +#define _LOAD_SMALL_INT_0_r23 1291 +#define _LOAD_SMALL_INT_1_r01 1292 +#define _LOAD_SMALL_INT_1_r12 1293 +#define _LOAD_SMALL_INT_1_r23 1294 +#define _LOAD_SMALL_INT_2_r01 1295 +#define _LOAD_SMALL_INT_2_r12 1296 +#define _LOAD_SMALL_INT_2_r23 1297 +#define _LOAD_SMALL_INT_3_r01 1298 +#define _LOAD_SMALL_INT_3_r12 1299 +#define _LOAD_SMALL_INT_3_r23 1300 +#define _LOAD_SPECIAL_r00 1301 +#define _LOAD_SUPER_ATTR_ATTR_r31 1302 +#define _LOAD_SUPER_ATTR_METHOD_r32 1303 +#define _LOCK_OBJECT_r01 1304 +#define _LOCK_OBJECT_r11 1305 +#define _LOCK_OBJECT_r22 1306 +#define _LOCK_OBJECT_r33 1307 +#define _MAKE_CALLARGS_A_TUPLE_r33 1308 +#define _MAKE_CELL_r00 1309 +#define _MAKE_FUNCTION_r11 1310 +#define _MAKE_HEAP_SAFE_r01 1311 +#define _MAKE_HEAP_SAFE_r11 1312 +#define _MAKE_HEAP_SAFE_r22 1313 +#define _MAKE_HEAP_SAFE_r33 1314 +#define _MAKE_WARM_r00 1315 +#define _MAKE_WARM_r11 1316 +#define _MAKE_WARM_r22 1317 +#define _MAKE_WARM_r33 1318 +#define _MAP_ADD_r20 1319 +#define _MATCH_CLASS_r33 1320 +#define _MATCH_KEYS_r23 1321 +#define _MATCH_MAPPING_r02 1322 +#define _MATCH_MAPPING_r12 1323 +#define _MATCH_MAPPING_r23 1324 +#define _MATCH_SEQUENCE_r02 1325 +#define _MATCH_SEQUENCE_r12 1326 +#define _MATCH_SEQUENCE_r23 1327 +#define _MAYBE_EXPAND_METHOD_r00 1328 +#define _MAYBE_EXPAND_METHOD_KW_r11 1329 +#define _MONITOR_CALL_r00 1330 +#define _MONITOR_CALL_KW_r11 1331 +#define _MONITOR_JUMP_BACKWARD_r00 1332 +#define _MONITOR_JUMP_BACKWARD_r11 1333 +#define _MONITOR_JUMP_BACKWARD_r22 1334 +#define _MONITOR_JUMP_BACKWARD_r33 1335 +#define _MONITOR_RESUME_r00 1336 +#define _NOP_r00 1337 +#define _NOP_r11 1338 +#define _NOP_r22 1339 +#define _NOP_r33 1340 +#define _POP_CALL_r20 1341 +#define _POP_CALL_LOAD_CONST_INLINE_BORROW_r21 1342 +#define _POP_CALL_ONE_r30 1343 +#define _POP_CALL_ONE_LOAD_CONST_INLINE_BORROW_r31 1344 +#define _POP_CALL_TWO_r30 1345 +#define _POP_CALL_TWO_LOAD_CONST_INLINE_BORROW_r31 1346 +#define _POP_EXCEPT_r10 1347 +#define _POP_ITER_r20 1348 +#define _POP_JUMP_IF_FALSE_r00 1349 +#define _POP_JUMP_IF_FALSE_r10 1350 +#define _POP_JUMP_IF_FALSE_r21 1351 +#define _POP_JUMP_IF_FALSE_r32 1352 +#define _POP_JUMP_IF_TRUE_r00 1353 +#define _POP_JUMP_IF_TRUE_r10 1354 +#define _POP_JUMP_IF_TRUE_r21 1355 +#define _POP_JUMP_IF_TRUE_r32 1356 +#define _POP_TOP_r10 1357 +#define _POP_TOP_FLOAT_r00 1358 +#define _POP_TOP_FLOAT_r10 1359 +#define _POP_TOP_FLOAT_r21 1360 +#define _POP_TOP_FLOAT_r32 1361 +#define _POP_TOP_INT_r00 1362 +#define _POP_TOP_INT_r10 1363 +#define _POP_TOP_INT_r21 1364 +#define _POP_TOP_INT_r32 1365 +#define _POP_TOP_LOAD_CONST_INLINE_r11 1366 +#define _POP_TOP_LOAD_CONST_INLINE_BORROW_r11 1367 +#define _POP_TOP_NOP_r00 1368 +#define _POP_TOP_NOP_r10 1369 +#define _POP_TOP_NOP_r21 1370 +#define _POP_TOP_NOP_r32 1371 +#define _POP_TOP_UNICODE_r00 1372 +#define _POP_TOP_UNICODE_r10 1373 +#define _POP_TOP_UNICODE_r21 1374 +#define _POP_TOP_UNICODE_r32 1375 +#define _POP_TWO_r20 1376 +#define _POP_TWO_LOAD_CONST_INLINE_BORROW_r21 1377 +#define _PUSH_EXC_INFO_r02 1378 +#define _PUSH_EXC_INFO_r12 1379 +#define _PUSH_EXC_INFO_r23 1380 +#define _PUSH_FRAME_r10 1381 +#define _PUSH_NULL_r01 1382 +#define _PUSH_NULL_r12 1383 +#define _PUSH_NULL_r23 1384 +#define _PUSH_NULL_CONDITIONAL_r00 1385 +#define _PY_FRAME_EX_r31 1386 +#define _PY_FRAME_GENERAL_r01 1387 +#define _PY_FRAME_KW_r11 1388 +#define _REPLACE_WITH_TRUE_r02 1389 +#define _REPLACE_WITH_TRUE_r12 1390 +#define _REPLACE_WITH_TRUE_r23 1391 +#define _RESUME_CHECK_r00 1392 +#define _RESUME_CHECK_r11 1393 +#define _RESUME_CHECK_r22 1394 +#define _RESUME_CHECK_r33 1395 +#define _RETURN_GENERATOR_r01 1396 +#define _RETURN_VALUE_r11 1397 +#define _SAVE_RETURN_OFFSET_r00 1398 +#define _SAVE_RETURN_OFFSET_r11 1399 +#define _SAVE_RETURN_OFFSET_r22 1400 +#define _SAVE_RETURN_OFFSET_r33 1401 +#define _SEND_r33 1402 +#define _SEND_GEN_FRAME_r33 1403 +#define _SETUP_ANNOTATIONS_r00 1404 +#define _SET_ADD_r10 1405 +#define _SET_FUNCTION_ATTRIBUTE_r01 1406 +#define _SET_FUNCTION_ATTRIBUTE_r11 1407 +#define _SET_FUNCTION_ATTRIBUTE_r21 1408 +#define _SET_FUNCTION_ATTRIBUTE_r32 1409 +#define _SET_IP_r00 1410 +#define _SET_IP_r11 1411 +#define _SET_IP_r22 1412 +#define _SET_IP_r33 1413 +#define _SET_UPDATE_r11 1414 +#define _SHUFFLE_2_LOAD_CONST_INLINE_BORROW_r02 1415 +#define _SHUFFLE_2_LOAD_CONST_INLINE_BORROW_r12 1416 +#define _SHUFFLE_2_LOAD_CONST_INLINE_BORROW_r22 1417 +#define _SHUFFLE_2_LOAD_CONST_INLINE_BORROW_r32 1418 +#define _SHUFFLE_3_LOAD_CONST_INLINE_BORROW_r03 1419 +#define _SHUFFLE_3_LOAD_CONST_INLINE_BORROW_r13 1420 +#define _SHUFFLE_3_LOAD_CONST_INLINE_BORROW_r23 1421 +#define _SHUFFLE_3_LOAD_CONST_INLINE_BORROW_r33 1422 +#define _SPILL_OR_RELOAD_r01 1423 +#define _SPILL_OR_RELOAD_r02 1424 +#define _SPILL_OR_RELOAD_r03 1425 +#define _SPILL_OR_RELOAD_r10 1426 +#define _SPILL_OR_RELOAD_r12 1427 +#define _SPILL_OR_RELOAD_r13 1428 +#define _SPILL_OR_RELOAD_r20 1429 +#define _SPILL_OR_RELOAD_r21 1430 +#define _SPILL_OR_RELOAD_r23 1431 +#define _SPILL_OR_RELOAD_r30 1432 +#define _SPILL_OR_RELOAD_r31 1433 +#define _SPILL_OR_RELOAD_r32 1434 +#define _START_EXECUTOR_r00 1435 +#define _STORE_ATTR_r20 1436 +#define _STORE_ATTR_INSTANCE_VALUE_r21 1437 +#define _STORE_ATTR_SLOT_r21 1438 +#define _STORE_ATTR_WITH_HINT_r21 1439 +#define _STORE_DEREF_r10 1440 +#define _STORE_FAST_LOAD_FAST_r11 1441 +#define _STORE_FAST_STORE_FAST_r20 1442 +#define _STORE_GLOBAL_r10 1443 +#define _STORE_NAME_r10 1444 +#define _STORE_SLICE_r30 1445 +#define _STORE_SUBSCR_r30 1446 +#define _STORE_SUBSCR_DICT_r31 1447 +#define _STORE_SUBSCR_LIST_INT_r32 1448 +#define _SWAP_r11 1449 +#define _SWAP_2_r02 1450 +#define _SWAP_2_r12 1451 +#define _SWAP_2_r22 1452 +#define _SWAP_2_r33 1453 +#define _SWAP_3_r03 1454 +#define _SWAP_3_r13 1455 +#define _SWAP_3_r23 1456 +#define _SWAP_3_r33 1457 +#define _SWAP_FAST_r01 1458 +#define _SWAP_FAST_r11 1459 +#define _SWAP_FAST_r22 1460 +#define _SWAP_FAST_r33 1461 +#define _SWAP_FAST_0_r01 1462 +#define _SWAP_FAST_0_r11 1463 +#define _SWAP_FAST_0_r22 1464 +#define _SWAP_FAST_0_r33 1465 +#define _SWAP_FAST_1_r01 1466 +#define _SWAP_FAST_1_r11 1467 +#define _SWAP_FAST_1_r22 1468 +#define _SWAP_FAST_1_r33 1469 +#define _SWAP_FAST_2_r01 1470 +#define _SWAP_FAST_2_r11 1471 +#define _SWAP_FAST_2_r22 1472 +#define _SWAP_FAST_2_r33 1473 +#define _SWAP_FAST_3_r01 1474 +#define _SWAP_FAST_3_r11 1475 +#define _SWAP_FAST_3_r22 1476 +#define _SWAP_FAST_3_r33 1477 +#define _SWAP_FAST_4_r01 1478 +#define _SWAP_FAST_4_r11 1479 +#define _SWAP_FAST_4_r22 1480 +#define _SWAP_FAST_4_r33 1481 +#define _SWAP_FAST_5_r01 1482 +#define _SWAP_FAST_5_r11 1483 +#define _SWAP_FAST_5_r22 1484 +#define _SWAP_FAST_5_r33 1485 +#define _SWAP_FAST_6_r01 1486 +#define _SWAP_FAST_6_r11 1487 +#define _SWAP_FAST_6_r22 1488 +#define _SWAP_FAST_6_r33 1489 +#define _SWAP_FAST_7_r01 1490 +#define _SWAP_FAST_7_r11 1491 +#define _SWAP_FAST_7_r22 1492 +#define _SWAP_FAST_7_r33 1493 +#define _TIER2_RESUME_CHECK_r00 1494 +#define _TIER2_RESUME_CHECK_r11 1495 +#define _TIER2_RESUME_CHECK_r22 1496 +#define _TIER2_RESUME_CHECK_r33 1497 +#define _TO_BOOL_r11 1498 +#define _TO_BOOL_BOOL_r01 1499 +#define _TO_BOOL_BOOL_r11 1500 +#define _TO_BOOL_BOOL_r22 1501 +#define _TO_BOOL_BOOL_r33 1502 +#define _TO_BOOL_INT_r02 1503 +#define _TO_BOOL_INT_r12 1504 +#define _TO_BOOL_INT_r23 1505 +#define _TO_BOOL_LIST_r02 1506 +#define _TO_BOOL_LIST_r12 1507 +#define _TO_BOOL_LIST_r23 1508 +#define _TO_BOOL_NONE_r01 1509 +#define _TO_BOOL_NONE_r11 1510 +#define _TO_BOOL_NONE_r22 1511 +#define _TO_BOOL_NONE_r33 1512 +#define _TO_BOOL_STR_r02 1513 +#define _TO_BOOL_STR_r12 1514 +#define _TO_BOOL_STR_r23 1515 +#define _TRACE_RECORD_r00 1516 +#define _UNARY_INVERT_r12 1517 +#define _UNARY_NEGATIVE_r12 1518 +#define _UNARY_NEGATIVE_FLOAT_INPLACE_r02 1519 +#define _UNARY_NEGATIVE_FLOAT_INPLACE_r12 1520 +#define _UNARY_NEGATIVE_FLOAT_INPLACE_r23 1521 +#define _UNARY_NOT_r01 1522 +#define _UNARY_NOT_r11 1523 +#define _UNARY_NOT_r22 1524 +#define _UNARY_NOT_r33 1525 +#define _UNPACK_EX_r10 1526 +#define _UNPACK_SEQUENCE_r10 1527 +#define _UNPACK_SEQUENCE_LIST_r10 1528 +#define _UNPACK_SEQUENCE_TUPLE_r10 1529 +#define _UNPACK_SEQUENCE_TWO_TUPLE_r12 1530 +#define _UNPACK_SEQUENCE_UNIQUE_THREE_TUPLE_r03 1531 +#define _UNPACK_SEQUENCE_UNIQUE_THREE_TUPLE_r13 1532 +#define _UNPACK_SEQUENCE_UNIQUE_TUPLE_r10 1533 +#define _UNPACK_SEQUENCE_UNIQUE_TWO_TUPLE_r02 1534 +#define _UNPACK_SEQUENCE_UNIQUE_TWO_TUPLE_r12 1535 +#define _UNPACK_SEQUENCE_UNIQUE_TWO_TUPLE_r23 1536 +#define _WITH_EXCEPT_START_r33 1537 +#define _YIELD_VALUE_r11 1538 +#define MAX_UOP_REGS_ID 1538 #ifdef __cplusplus } diff --git a/Include/internal/pycore_uop_metadata.h b/Include/internal/pycore_uop_metadata.h index 46cdda273599c4..1f9759aa032a04 100644 --- a/Include/internal/pycore_uop_metadata.h +++ b/Include/internal/pycore_uop_metadata.h @@ -85,6 +85,7 @@ const uint32_t _PyUop_Flags[MAX_UOP_ID+1] = { [_POP_ITER] = HAS_ESCAPES_FLAG, [_END_SEND] = HAS_ESCAPES_FLAG | HAS_PURE_FLAG, [_UNARY_NEGATIVE] = HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_ESCAPES_FLAG, + [_UNARY_NEGATIVE_FLOAT_INPLACE] = 0, [_UNARY_NOT] = 0, [_TO_BOOL] = HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, [_TO_BOOL_BOOL] = HAS_EXIT_FLAG, @@ -112,6 +113,12 @@ const uint32_t _PyUop_Flags[MAX_UOP_ID+1] = { [_BINARY_OP_MULTIPLY_FLOAT] = HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_PURE_FLAG, [_BINARY_OP_ADD_FLOAT] = HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_PURE_FLAG, [_BINARY_OP_SUBTRACT_FLOAT] = HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_PURE_FLAG, + [_BINARY_OP_ADD_FLOAT_INPLACE] = 0, + [_BINARY_OP_SUBTRACT_FLOAT_INPLACE] = 0, + [_BINARY_OP_MULTIPLY_FLOAT_INPLACE] = 0, + [_BINARY_OP_ADD_FLOAT_INPLACE_RIGHT] = 0, + [_BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT] = 0, + [_BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT] = 0, [_BINARY_OP_ADD_UNICODE] = HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_PURE_FLAG, [_BINARY_OP_INPLACE_ADD_UNICODE] = HAS_LOCAL_FLAG | HAS_EXIT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, [_GUARD_BINARY_OP_EXTEND] = HAS_EXIT_FLAG | HAS_ESCAPES_FLAG, @@ -861,6 +868,15 @@ const _PyUopCachingInfo _PyUop_Caching[MAX_UOP_ID+1] = { { -1, -1, -1 }, }, }, + [_UNARY_NEGATIVE_FLOAT_INPLACE] = { + .best = { 0, 1, 2, 2 }, + .entries = { + { 2, 0, _UNARY_NEGATIVE_FLOAT_INPLACE_r02 }, + { 2, 1, _UNARY_NEGATIVE_FLOAT_INPLACE_r12 }, + { 3, 2, _UNARY_NEGATIVE_FLOAT_INPLACE_r23 }, + { -1, -1, -1 }, + }, + }, [_UNARY_NOT] = { .best = { 0, 1, 2, 3 }, .entries = { @@ -1104,6 +1120,60 @@ const _PyUopCachingInfo _PyUop_Caching[MAX_UOP_ID+1] = { { -1, -1, -1 }, }, }, + [_BINARY_OP_ADD_FLOAT_INPLACE] = { + .best = { 0, 1, 2, 2 }, + .entries = { + { 3, 0, _BINARY_OP_ADD_FLOAT_INPLACE_r03 }, + { 3, 1, _BINARY_OP_ADD_FLOAT_INPLACE_r13 }, + { 3, 2, _BINARY_OP_ADD_FLOAT_INPLACE_r23 }, + { -1, -1, -1 }, + }, + }, + [_BINARY_OP_SUBTRACT_FLOAT_INPLACE] = { + .best = { 0, 1, 2, 2 }, + .entries = { + { 3, 0, _BINARY_OP_SUBTRACT_FLOAT_INPLACE_r03 }, + { 3, 1, _BINARY_OP_SUBTRACT_FLOAT_INPLACE_r13 }, + { 3, 2, _BINARY_OP_SUBTRACT_FLOAT_INPLACE_r23 }, + { -1, -1, -1 }, + }, + }, + [_BINARY_OP_MULTIPLY_FLOAT_INPLACE] = { + .best = { 0, 1, 2, 2 }, + .entries = { + { 3, 0, _BINARY_OP_MULTIPLY_FLOAT_INPLACE_r03 }, + { 3, 1, _BINARY_OP_MULTIPLY_FLOAT_INPLACE_r13 }, + { 3, 2, _BINARY_OP_MULTIPLY_FLOAT_INPLACE_r23 }, + { -1, -1, -1 }, + }, + }, + [_BINARY_OP_ADD_FLOAT_INPLACE_RIGHT] = { + .best = { 0, 1, 2, 2 }, + .entries = { + { 3, 0, _BINARY_OP_ADD_FLOAT_INPLACE_RIGHT_r03 }, + { 3, 1, _BINARY_OP_ADD_FLOAT_INPLACE_RIGHT_r13 }, + { 3, 2, _BINARY_OP_ADD_FLOAT_INPLACE_RIGHT_r23 }, + { -1, -1, -1 }, + }, + }, + [_BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT] = { + .best = { 0, 1, 2, 2 }, + .entries = { + { 3, 0, _BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT_r03 }, + { 3, 1, _BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT_r13 }, + { 3, 2, _BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT_r23 }, + { -1, -1, -1 }, + }, + }, + [_BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT] = { + .best = { 0, 1, 2, 2 }, + .entries = { + { 3, 0, _BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT_r03 }, + { 3, 1, _BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT_r13 }, + { 3, 2, _BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT_r23 }, + { -1, -1, -1 }, + }, + }, [_BINARY_OP_ADD_UNICODE] = { .best = { 0, 1, 2, 2 }, .entries = { @@ -3722,6 +3792,9 @@ const uint16_t _PyUop_Uncached[MAX_UOP_REGS_ID+1] = { [_POP_ITER_r20] = _POP_ITER, [_END_SEND_r31] = _END_SEND, [_UNARY_NEGATIVE_r12] = _UNARY_NEGATIVE, + [_UNARY_NEGATIVE_FLOAT_INPLACE_r02] = _UNARY_NEGATIVE_FLOAT_INPLACE, + [_UNARY_NEGATIVE_FLOAT_INPLACE_r12] = _UNARY_NEGATIVE_FLOAT_INPLACE, + [_UNARY_NEGATIVE_FLOAT_INPLACE_r23] = _UNARY_NEGATIVE_FLOAT_INPLACE, [_UNARY_NOT_r01] = _UNARY_NOT, [_UNARY_NOT_r11] = _UNARY_NOT, [_UNARY_NOT_r22] = _UNARY_NOT, @@ -3814,6 +3887,24 @@ const uint16_t _PyUop_Uncached[MAX_UOP_REGS_ID+1] = { [_BINARY_OP_SUBTRACT_FLOAT_r03] = _BINARY_OP_SUBTRACT_FLOAT, [_BINARY_OP_SUBTRACT_FLOAT_r13] = _BINARY_OP_SUBTRACT_FLOAT, [_BINARY_OP_SUBTRACT_FLOAT_r23] = _BINARY_OP_SUBTRACT_FLOAT, + [_BINARY_OP_ADD_FLOAT_INPLACE_r03] = _BINARY_OP_ADD_FLOAT_INPLACE, + [_BINARY_OP_ADD_FLOAT_INPLACE_r13] = _BINARY_OP_ADD_FLOAT_INPLACE, + [_BINARY_OP_ADD_FLOAT_INPLACE_r23] = _BINARY_OP_ADD_FLOAT_INPLACE, + [_BINARY_OP_SUBTRACT_FLOAT_INPLACE_r03] = _BINARY_OP_SUBTRACT_FLOAT_INPLACE, + [_BINARY_OP_SUBTRACT_FLOAT_INPLACE_r13] = _BINARY_OP_SUBTRACT_FLOAT_INPLACE, + [_BINARY_OP_SUBTRACT_FLOAT_INPLACE_r23] = _BINARY_OP_SUBTRACT_FLOAT_INPLACE, + [_BINARY_OP_MULTIPLY_FLOAT_INPLACE_r03] = _BINARY_OP_MULTIPLY_FLOAT_INPLACE, + [_BINARY_OP_MULTIPLY_FLOAT_INPLACE_r13] = _BINARY_OP_MULTIPLY_FLOAT_INPLACE, + [_BINARY_OP_MULTIPLY_FLOAT_INPLACE_r23] = _BINARY_OP_MULTIPLY_FLOAT_INPLACE, + [_BINARY_OP_ADD_FLOAT_INPLACE_RIGHT_r03] = _BINARY_OP_ADD_FLOAT_INPLACE_RIGHT, + [_BINARY_OP_ADD_FLOAT_INPLACE_RIGHT_r13] = _BINARY_OP_ADD_FLOAT_INPLACE_RIGHT, + [_BINARY_OP_ADD_FLOAT_INPLACE_RIGHT_r23] = _BINARY_OP_ADD_FLOAT_INPLACE_RIGHT, + [_BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT_r03] = _BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT, + [_BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT_r13] = _BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT, + [_BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT_r23] = _BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT, + [_BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT_r03] = _BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT, + [_BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT_r13] = _BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT, + [_BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT_r23] = _BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT, [_BINARY_OP_ADD_UNICODE_r03] = _BINARY_OP_ADD_UNICODE, [_BINARY_OP_ADD_UNICODE_r13] = _BINARY_OP_ADD_UNICODE, [_BINARY_OP_ADD_UNICODE_r23] = _BINARY_OP_ADD_UNICODE, @@ -4431,6 +4522,14 @@ const char *const _PyOpcode_uop_name[MAX_UOP_REGS_ID+1] = { [_BINARY_OP_ADD_FLOAT_r03] = "_BINARY_OP_ADD_FLOAT_r03", [_BINARY_OP_ADD_FLOAT_r13] = "_BINARY_OP_ADD_FLOAT_r13", [_BINARY_OP_ADD_FLOAT_r23] = "_BINARY_OP_ADD_FLOAT_r23", + [_BINARY_OP_ADD_FLOAT_INPLACE] = "_BINARY_OP_ADD_FLOAT_INPLACE", + [_BINARY_OP_ADD_FLOAT_INPLACE_r03] = "_BINARY_OP_ADD_FLOAT_INPLACE_r03", + [_BINARY_OP_ADD_FLOAT_INPLACE_r13] = "_BINARY_OP_ADD_FLOAT_INPLACE_r13", + [_BINARY_OP_ADD_FLOAT_INPLACE_r23] = "_BINARY_OP_ADD_FLOAT_INPLACE_r23", + [_BINARY_OP_ADD_FLOAT_INPLACE_RIGHT] = "_BINARY_OP_ADD_FLOAT_INPLACE_RIGHT", + [_BINARY_OP_ADD_FLOAT_INPLACE_RIGHT_r03] = "_BINARY_OP_ADD_FLOAT_INPLACE_RIGHT_r03", + [_BINARY_OP_ADD_FLOAT_INPLACE_RIGHT_r13] = "_BINARY_OP_ADD_FLOAT_INPLACE_RIGHT_r13", + [_BINARY_OP_ADD_FLOAT_INPLACE_RIGHT_r23] = "_BINARY_OP_ADD_FLOAT_INPLACE_RIGHT_r23", [_BINARY_OP_ADD_INT] = "_BINARY_OP_ADD_INT", [_BINARY_OP_ADD_INT_r03] = "_BINARY_OP_ADD_INT_r03", [_BINARY_OP_ADD_INT_r13] = "_BINARY_OP_ADD_INT_r13", @@ -4447,6 +4546,14 @@ const char *const _PyOpcode_uop_name[MAX_UOP_REGS_ID+1] = { [_BINARY_OP_MULTIPLY_FLOAT_r03] = "_BINARY_OP_MULTIPLY_FLOAT_r03", [_BINARY_OP_MULTIPLY_FLOAT_r13] = "_BINARY_OP_MULTIPLY_FLOAT_r13", [_BINARY_OP_MULTIPLY_FLOAT_r23] = "_BINARY_OP_MULTIPLY_FLOAT_r23", + [_BINARY_OP_MULTIPLY_FLOAT_INPLACE] = "_BINARY_OP_MULTIPLY_FLOAT_INPLACE", + [_BINARY_OP_MULTIPLY_FLOAT_INPLACE_r03] = "_BINARY_OP_MULTIPLY_FLOAT_INPLACE_r03", + [_BINARY_OP_MULTIPLY_FLOAT_INPLACE_r13] = "_BINARY_OP_MULTIPLY_FLOAT_INPLACE_r13", + [_BINARY_OP_MULTIPLY_FLOAT_INPLACE_r23] = "_BINARY_OP_MULTIPLY_FLOAT_INPLACE_r23", + [_BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT] = "_BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT", + [_BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT_r03] = "_BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT_r03", + [_BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT_r13] = "_BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT_r13", + [_BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT_r23] = "_BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT_r23", [_BINARY_OP_MULTIPLY_INT] = "_BINARY_OP_MULTIPLY_INT", [_BINARY_OP_MULTIPLY_INT_r03] = "_BINARY_OP_MULTIPLY_INT_r03", [_BINARY_OP_MULTIPLY_INT_r13] = "_BINARY_OP_MULTIPLY_INT_r13", @@ -4476,6 +4583,14 @@ const char *const _PyOpcode_uop_name[MAX_UOP_REGS_ID+1] = { [_BINARY_OP_SUBTRACT_FLOAT_r03] = "_BINARY_OP_SUBTRACT_FLOAT_r03", [_BINARY_OP_SUBTRACT_FLOAT_r13] = "_BINARY_OP_SUBTRACT_FLOAT_r13", [_BINARY_OP_SUBTRACT_FLOAT_r23] = "_BINARY_OP_SUBTRACT_FLOAT_r23", + [_BINARY_OP_SUBTRACT_FLOAT_INPLACE] = "_BINARY_OP_SUBTRACT_FLOAT_INPLACE", + [_BINARY_OP_SUBTRACT_FLOAT_INPLACE_r03] = "_BINARY_OP_SUBTRACT_FLOAT_INPLACE_r03", + [_BINARY_OP_SUBTRACT_FLOAT_INPLACE_r13] = "_BINARY_OP_SUBTRACT_FLOAT_INPLACE_r13", + [_BINARY_OP_SUBTRACT_FLOAT_INPLACE_r23] = "_BINARY_OP_SUBTRACT_FLOAT_INPLACE_r23", + [_BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT] = "_BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT", + [_BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT_r03] = "_BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT_r03", + [_BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT_r13] = "_BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT_r13", + [_BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT_r23] = "_BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT_r23", [_BINARY_OP_SUBTRACT_INT] = "_BINARY_OP_SUBTRACT_INT", [_BINARY_OP_SUBTRACT_INT_r03] = "_BINARY_OP_SUBTRACT_INT_r03", [_BINARY_OP_SUBTRACT_INT_r13] = "_BINARY_OP_SUBTRACT_INT_r13", @@ -5592,6 +5707,10 @@ const char *const _PyOpcode_uop_name[MAX_UOP_REGS_ID+1] = { [_UNARY_INVERT_r12] = "_UNARY_INVERT_r12", [_UNARY_NEGATIVE] = "_UNARY_NEGATIVE", [_UNARY_NEGATIVE_r12] = "_UNARY_NEGATIVE_r12", + [_UNARY_NEGATIVE_FLOAT_INPLACE] = "_UNARY_NEGATIVE_FLOAT_INPLACE", + [_UNARY_NEGATIVE_FLOAT_INPLACE_r02] = "_UNARY_NEGATIVE_FLOAT_INPLACE_r02", + [_UNARY_NEGATIVE_FLOAT_INPLACE_r12] = "_UNARY_NEGATIVE_FLOAT_INPLACE_r12", + [_UNARY_NEGATIVE_FLOAT_INPLACE_r23] = "_UNARY_NEGATIVE_FLOAT_INPLACE_r23", [_UNARY_NOT] = "_UNARY_NOT", [_UNARY_NOT_r01] = "_UNARY_NOT_r01", [_UNARY_NOT_r11] = "_UNARY_NOT_r11", @@ -5724,6 +5843,8 @@ int _PyUop_num_popped(int opcode, int oparg) return 3; case _UNARY_NEGATIVE: return 1; + case _UNARY_NEGATIVE_FLOAT_INPLACE: + return 1; case _UNARY_NOT: return 1; case _TO_BOOL: @@ -5778,6 +5899,18 @@ int _PyUop_num_popped(int opcode, int oparg) return 2; case _BINARY_OP_SUBTRACT_FLOAT: return 2; + case _BINARY_OP_ADD_FLOAT_INPLACE: + return 2; + case _BINARY_OP_SUBTRACT_FLOAT_INPLACE: + return 2; + case _BINARY_OP_MULTIPLY_FLOAT_INPLACE: + return 2; + case _BINARY_OP_ADD_FLOAT_INPLACE_RIGHT: + return 2; + case _BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT: + return 2; + case _BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT: + return 2; case _BINARY_OP_ADD_UNICODE: return 2; case _BINARY_OP_INPLACE_ADD_UNICODE: diff --git a/Lib/test/test_capi/test_opt.py b/Lib/test/test_capi/test_opt.py index e90998bb1e3b27..07170094e28bfc 100644 --- a/Lib/test/test_capi/test_opt.py +++ b/Lib/test/test_capi/test_opt.py @@ -3072,6 +3072,171 @@ def testfunc(args): uops = get_opnames(ex) self.assertIn("_POP_TOP_NOP", uops) + def test_float_add_inplace_unique_lhs(self): + # a * b produces a unique float; adding c reuses it in place + def testfunc(args): + a, b, c, n = args + total = 0.0 + for _ in range(n): + total += a * b + c + return total + + res, ex = self._run_with_optimizer(testfunc, (2.0, 3.0, 4.0, TIER2_THRESHOLD)) + self.assertAlmostEqual(res, TIER2_THRESHOLD * 10.0) + self.assertIsNotNone(ex) + uops = get_opnames(ex) + self.assertIn("_BINARY_OP_ADD_FLOAT_INPLACE", uops) + + def test_float_add_inplace_unique_rhs(self): + # a * b produces a unique float on the right side of + + def testfunc(args): + a, b, c, n = args + total = 0.0 + for _ in range(n): + total += c + a * b + return total + + res, ex = self._run_with_optimizer(testfunc, (2.0, 3.0, 4.0, TIER2_THRESHOLD)) + self.assertAlmostEqual(res, TIER2_THRESHOLD * 10.0) + self.assertIsNotNone(ex) + uops = get_opnames(ex) + self.assertIn("_BINARY_OP_ADD_FLOAT_INPLACE_RIGHT", uops) + + def test_float_add_no_inplace_non_unique(self): + # Both operands of a + b are locals — neither is unique, + # so the first add is regular. But total += (a+b) has a + # unique RHS, so it uses _INPLACE_RIGHT. + def testfunc(args): + a, b, n = args + total = 0.0 + for _ in range(n): + total += a + b + return total + + res, ex = self._run_with_optimizer(testfunc, (2.0, 3.0, TIER2_THRESHOLD)) + self.assertAlmostEqual(res, TIER2_THRESHOLD * 5.0) + self.assertIsNotNone(ex) + uops = get_opnames(ex) + # a + b: both are locals, no inplace + self.assertIn("_BINARY_OP_ADD_FLOAT", uops) + # total += result: result is unique RHS + self.assertIn("_BINARY_OP_ADD_FLOAT_INPLACE_RIGHT", uops) + # No LHS inplace variant for the first add + self.assertNotIn("_BINARY_OP_ADD_FLOAT_INPLACE", uops) + + def test_float_subtract_inplace_unique_lhs(self): + # a * b produces a unique float; subtracting c reuses it + def testfunc(args): + a, b, c, n = args + total = 0.0 + for _ in range(n): + total += a * b - c + return total + + res, ex = self._run_with_optimizer(testfunc, (2.0, 3.0, 1.0, TIER2_THRESHOLD)) + self.assertAlmostEqual(res, TIER2_THRESHOLD * 5.0) + self.assertIsNotNone(ex) + uops = get_opnames(ex) + self.assertIn("_BINARY_OP_SUBTRACT_FLOAT_INPLACE", uops) + + def test_float_subtract_inplace_unique_rhs(self): + # a * b produces a unique float on the right of -; + # result is c - (a * b), must get the sign correct + def testfunc(args): + a, b, c, n = args + total = 0.0 + for _ in range(n): + total += c - a * b + return total + + res, ex = self._run_with_optimizer(testfunc, (2.0, 3.0, 1.0, TIER2_THRESHOLD)) + self.assertAlmostEqual(res, TIER2_THRESHOLD * -5.0) + self.assertIsNotNone(ex) + uops = get_opnames(ex) + self.assertIn("_BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT", uops) + + def test_float_multiply_inplace_unique_lhs(self): + # (a + b) produces a unique float; multiplying by c reuses it + def testfunc(args): + a, b, c, n = args + total = 0.0 + for _ in range(n): + total += (a + b) * c + return total + + res, ex = self._run_with_optimizer(testfunc, (2.0, 3.0, 4.0, TIER2_THRESHOLD)) + self.assertAlmostEqual(res, TIER2_THRESHOLD * 20.0) + self.assertIsNotNone(ex) + uops = get_opnames(ex) + self.assertIn("_BINARY_OP_MULTIPLY_FLOAT_INPLACE", uops) + + def test_float_multiply_inplace_unique_rhs(self): + # (a + b) produces a unique float on the right side of * + def testfunc(args): + a, b, c, n = args + total = 0.0 + for _ in range(n): + total += c * (a + b) + return total + + res, ex = self._run_with_optimizer(testfunc, (2.0, 3.0, 4.0, TIER2_THRESHOLD)) + self.assertAlmostEqual(res, TIER2_THRESHOLD * 20.0) + self.assertIsNotNone(ex) + uops = get_opnames(ex) + self.assertIn("_BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT", uops) + + def test_float_inplace_chain_propagation(self): + # a * b + c * d: both products are unique, the + reuses one; + # result of + is also unique for the subsequent += + def testfunc(args): + a, b, c, d, n = args + total = 0.0 + for _ in range(n): + total += a * b + c * d + return total + + res, ex = self._run_with_optimizer(testfunc, (2.0, 3.0, 4.0, 5.0, TIER2_THRESHOLD)) + self.assertAlmostEqual(res, TIER2_THRESHOLD * 26.0) + self.assertIsNotNone(ex) + uops = get_opnames(ex) + # The + between the two products should use an inplace variant + inplace_add = ( + "_BINARY_OP_ADD_FLOAT_INPLACE" in uops + or "_BINARY_OP_ADD_FLOAT_INPLACE_RIGHT" in uops + ) + self.assertTrue(inplace_add, + "Expected an inplace add for unique intermediate results") + + def test_float_negate_inplace_unique(self): + # -(a * b): the product is unique, negate it in place + def testfunc(args): + a, b, n = args + total = 0.0 + for _ in range(n): + total += -(a * b) + return total + + res, ex = self._run_with_optimizer(testfunc, (2.0, 3.0, TIER2_THRESHOLD)) + self.assertAlmostEqual(res, TIER2_THRESHOLD * -6.0) + self.assertIsNotNone(ex) + uops = get_opnames(ex) + self.assertIn("_UNARY_NEGATIVE_FLOAT_INPLACE", uops) + + def test_float_negate_no_inplace_non_unique(self): + # -a where a is a local — not unique, no inplace + def testfunc(args): + a, n = args + total = 0.0 + for _ in range(n): + total += -a + return total + + res, ex = self._run_with_optimizer(testfunc, (2.0, TIER2_THRESHOLD)) + self.assertAlmostEqual(res, TIER2_THRESHOLD * -2.0) + self.assertIsNotNone(ex) + uops = get_opnames(ex) + self.assertNotIn("_UNARY_NEGATIVE_FLOAT_INPLACE", uops) + def test_load_attr_instance_value(self): def testfunc(n): class C(): diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-03-22-12-00-00.gh-issue-146306.870ef4.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-03-22-12-00-00.gh-issue-146306.870ef4.rst new file mode 100644 index 00000000000000..de2c3e56ac3319 --- /dev/null +++ b/Misc/NEWS.d/next/Core_and_Builtins/2026-03-22-12-00-00.gh-issue-146306.870ef4.rst @@ -0,0 +1,3 @@ +Optimize float arithmetic in the JIT by mutating uniquely-referenced +operands in place, avoiding allocation of a new float object. Speeds up +the pyperformance ``nbody`` benchmark by ~19%. diff --git a/Python/bytecodes.c b/Python/bytecodes.c index a2c2eb55db9b3b..dfc8b95ed97154 100644 --- a/Python/bytecodes.c +++ b/Python/bytecodes.c @@ -460,6 +460,19 @@ dummy_func( DEAD(value); } + // Inplace negation: negate a uniquely-referenced float in place. + // Tier 2 only. + tier2 op(_UNARY_NEGATIVE_FLOAT_INPLACE, (value -- res, v)) { + PyObject *val_o = PyStackRef_AsPyObjectBorrow(value); + assert(PyFloat_CheckExact(val_o)); + assert(_PyObject_IsUniquelyReferenced(val_o)); + STAT_INC(UNARY_NEGATIVE, hit); + ((PyFloatObject *)val_o)->ob_fval = -((PyFloatObject *)val_o)->ob_fval; + res = value; + v = PyStackRef_NULL; + INPUTS_DEAD(); + } + inst(UNARY_NOT, (value -- res)) { assert(PyStackRef_BoolCheck(value)); res = PyStackRef_IsFalse(value) @@ -771,6 +784,98 @@ dummy_func( macro(BINARY_OP_SUBTRACT_FLOAT) = _GUARD_TOS_FLOAT + _GUARD_NOS_FLOAT + unused/5 + _BINARY_OP_SUBTRACT_FLOAT + _POP_TOP_FLOAT + _POP_TOP_FLOAT; + // Inplace float ops: mutate the uniquely-referenced left operand + // instead of allocating a new float. Tier 2 only. + // The optimizer sets l to null so the following _POP_TOP_FLOAT + // becomes _POP_TOP_NOP. + tier2 op(_BINARY_OP_ADD_FLOAT_INPLACE, (left, right -- res, l, r)) { + PyObject *left_o = PyStackRef_AsPyObjectBorrow(left); + PyObject *right_o = PyStackRef_AsPyObjectBorrow(right); + assert(PyFloat_CheckExact(left_o)); + assert(PyFloat_CheckExact(right_o)); + assert(_PyObject_IsUniquelyReferenced(left_o)); + STAT_INC(BINARY_OP, hit); + ((PyFloatObject *)left_o)->ob_fval += ((PyFloatObject *)right_o)->ob_fval; + res = left; + l = PyStackRef_NULL; + r = right; + INPUTS_DEAD(); + } + + tier2 op(_BINARY_OP_SUBTRACT_FLOAT_INPLACE, (left, right -- res, l, r)) { + PyObject *left_o = PyStackRef_AsPyObjectBorrow(left); + PyObject *right_o = PyStackRef_AsPyObjectBorrow(right); + assert(PyFloat_CheckExact(left_o)); + assert(PyFloat_CheckExact(right_o)); + assert(_PyObject_IsUniquelyReferenced(left_o)); + STAT_INC(BINARY_OP, hit); + ((PyFloatObject *)left_o)->ob_fval -= ((PyFloatObject *)right_o)->ob_fval; + res = left; + l = PyStackRef_NULL; + r = right; + INPUTS_DEAD(); + } + + tier2 op(_BINARY_OP_MULTIPLY_FLOAT_INPLACE, (left, right -- res, l, r)) { + PyObject *left_o = PyStackRef_AsPyObjectBorrow(left); + PyObject *right_o = PyStackRef_AsPyObjectBorrow(right); + assert(PyFloat_CheckExact(left_o)); + assert(PyFloat_CheckExact(right_o)); + assert(_PyObject_IsUniquelyReferenced(left_o)); + STAT_INC(BINARY_OP, hit); + ((PyFloatObject *)left_o)->ob_fval *= ((PyFloatObject *)right_o)->ob_fval; + res = left; + l = PyStackRef_NULL; + r = right; + INPUTS_DEAD(); + } + + // Inplace RIGHT variants for commutative ops (add, multiply). + // Mutate the uniquely-referenced right operand instead. + tier2 op(_BINARY_OP_ADD_FLOAT_INPLACE_RIGHT, (left, right -- res, l, r)) { + PyObject *left_o = PyStackRef_AsPyObjectBorrow(left); + PyObject *right_o = PyStackRef_AsPyObjectBorrow(right); + assert(PyFloat_CheckExact(left_o)); + assert(PyFloat_CheckExact(right_o)); + assert(_PyObject_IsUniquelyReferenced(right_o)); + STAT_INC(BINARY_OP, hit); + ((PyFloatObject *)right_o)->ob_fval += ((PyFloatObject *)left_o)->ob_fval; + res = right; + l = left; + r = PyStackRef_NULL; + INPUTS_DEAD(); + } + + tier2 op(_BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT, (left, right -- res, l, r)) { + PyObject *left_o = PyStackRef_AsPyObjectBorrow(left); + PyObject *right_o = PyStackRef_AsPyObjectBorrow(right); + assert(PyFloat_CheckExact(left_o)); + assert(PyFloat_CheckExact(right_o)); + assert(_PyObject_IsUniquelyReferenced(right_o)); + STAT_INC(BINARY_OP, hit); + ((PyFloatObject *)right_o)->ob_fval *= ((PyFloatObject *)left_o)->ob_fval; + res = right; + l = left; + r = PyStackRef_NULL; + INPUTS_DEAD(); + } + + // Inplace RIGHT variant for subtract (non-commutative): + // right->ob_fval = left->ob_fval - right->ob_fval + tier2 op(_BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT, (left, right -- res, l, r)) { + PyObject *left_o = PyStackRef_AsPyObjectBorrow(left); + PyObject *right_o = PyStackRef_AsPyObjectBorrow(right); + assert(PyFloat_CheckExact(left_o)); + assert(PyFloat_CheckExact(right_o)); + assert(_PyObject_IsUniquelyReferenced(right_o)); + STAT_INC(BINARY_OP, hit); + ((PyFloatObject *)right_o)->ob_fval = ((PyFloatObject *)left_o)->ob_fval - ((PyFloatObject *)right_o)->ob_fval; + res = right; + l = left; + r = PyStackRef_NULL; + INPUTS_DEAD(); + } + pure op(_BINARY_OP_ADD_UNICODE, (left, right -- res, l, r)) { PyObject *left_o = PyStackRef_AsPyObjectBorrow(left); PyObject *right_o = PyStackRef_AsPyObjectBorrow(right); diff --git a/Python/executor_cases.c.h b/Python/executor_cases.c.h index 9de6e2850d773b..ecaaf4d377120d 100644 --- a/Python/executor_cases.c.h +++ b/Python/executor_cases.c.h @@ -2663,6 +2663,75 @@ break; } + case _UNARY_NEGATIVE_FLOAT_INPLACE_r02: { + CHECK_CURRENT_CACHED_VALUES(0); + assert(WITHIN_STACK_BOUNDS_IGNORING_CACHE()); + _PyStackRef value; + _PyStackRef res; + _PyStackRef v; + value = stack_pointer[-1]; + PyObject *val_o = PyStackRef_AsPyObjectBorrow(value); + assert(PyFloat_CheckExact(val_o)); + assert(_PyObject_IsUniquelyReferenced(val_o)); + STAT_INC(UNARY_NEGATIVE, hit); + ((PyFloatObject *)val_o)->ob_fval = -((PyFloatObject *)val_o)->ob_fval; + res = value; + v = PyStackRef_NULL; + _tos_cache1 = v; + _tos_cache0 = res; + SET_CURRENT_CACHED_VALUES(2); + stack_pointer += -1; + ASSERT_WITHIN_STACK_BOUNDS(__FILE__, __LINE__); + assert(WITHIN_STACK_BOUNDS_IGNORING_CACHE()); + break; + } + + case _UNARY_NEGATIVE_FLOAT_INPLACE_r12: { + CHECK_CURRENT_CACHED_VALUES(1); + assert(WITHIN_STACK_BOUNDS_IGNORING_CACHE()); + _PyStackRef value; + _PyStackRef res; + _PyStackRef v; + _PyStackRef _stack_item_0 = _tos_cache0; + value = _stack_item_0; + PyObject *val_o = PyStackRef_AsPyObjectBorrow(value); + assert(PyFloat_CheckExact(val_o)); + assert(_PyObject_IsUniquelyReferenced(val_o)); + STAT_INC(UNARY_NEGATIVE, hit); + ((PyFloatObject *)val_o)->ob_fval = -((PyFloatObject *)val_o)->ob_fval; + res = value; + v = PyStackRef_NULL; + _tos_cache1 = v; + _tos_cache0 = res; + SET_CURRENT_CACHED_VALUES(2); + assert(WITHIN_STACK_BOUNDS_IGNORING_CACHE()); + break; + } + + case _UNARY_NEGATIVE_FLOAT_INPLACE_r23: { + CHECK_CURRENT_CACHED_VALUES(2); + assert(WITHIN_STACK_BOUNDS_IGNORING_CACHE()); + _PyStackRef value; + _PyStackRef res; + _PyStackRef v; + _PyStackRef _stack_item_0 = _tos_cache0; + _PyStackRef _stack_item_1 = _tos_cache1; + value = _stack_item_1; + PyObject *val_o = PyStackRef_AsPyObjectBorrow(value); + assert(PyFloat_CheckExact(val_o)); + assert(_PyObject_IsUniquelyReferenced(val_o)); + STAT_INC(UNARY_NEGATIVE, hit); + ((PyFloatObject *)val_o)->ob_fval = -((PyFloatObject *)val_o)->ob_fval; + res = value; + v = PyStackRef_NULL; + _tos_cache2 = v; + _tos_cache1 = res; + _tos_cache0 = _stack_item_0; + SET_CURRENT_CACHED_VALUES(3); + assert(WITHIN_STACK_BOUNDS_IGNORING_CACHE()); + break; + } + case _UNARY_NOT_r01: { CHECK_CURRENT_CACHED_VALUES(0); assert(WITHIN_STACK_BOUNDS_IGNORING_CACHE()); @@ -4954,6 +5023,552 @@ break; } + case _BINARY_OP_ADD_FLOAT_INPLACE_r03: { + CHECK_CURRENT_CACHED_VALUES(0); + assert(WITHIN_STACK_BOUNDS_IGNORING_CACHE()); + _PyStackRef right; + _PyStackRef left; + _PyStackRef res; + _PyStackRef l; + _PyStackRef r; + right = stack_pointer[-1]; + left = stack_pointer[-2]; + PyObject *left_o = PyStackRef_AsPyObjectBorrow(left); + PyObject *right_o = PyStackRef_AsPyObjectBorrow(right); + assert(PyFloat_CheckExact(left_o)); + assert(PyFloat_CheckExact(right_o)); + assert(_PyObject_IsUniquelyReferenced(left_o)); + STAT_INC(BINARY_OP, hit); + ((PyFloatObject *)left_o)->ob_fval += ((PyFloatObject *)right_o)->ob_fval; + res = left; + l = PyStackRef_NULL; + r = right; + _tos_cache2 = r; + _tos_cache1 = l; + _tos_cache0 = res; + SET_CURRENT_CACHED_VALUES(3); + stack_pointer += -2; + ASSERT_WITHIN_STACK_BOUNDS(__FILE__, __LINE__); + assert(WITHIN_STACK_BOUNDS_IGNORING_CACHE()); + break; + } + + case _BINARY_OP_ADD_FLOAT_INPLACE_r13: { + CHECK_CURRENT_CACHED_VALUES(1); + assert(WITHIN_STACK_BOUNDS_IGNORING_CACHE()); + _PyStackRef right; + _PyStackRef left; + _PyStackRef res; + _PyStackRef l; + _PyStackRef r; + _PyStackRef _stack_item_0 = _tos_cache0; + right = _stack_item_0; + left = stack_pointer[-1]; + PyObject *left_o = PyStackRef_AsPyObjectBorrow(left); + PyObject *right_o = PyStackRef_AsPyObjectBorrow(right); + assert(PyFloat_CheckExact(left_o)); + assert(PyFloat_CheckExact(right_o)); + assert(_PyObject_IsUniquelyReferenced(left_o)); + STAT_INC(BINARY_OP, hit); + ((PyFloatObject *)left_o)->ob_fval += ((PyFloatObject *)right_o)->ob_fval; + res = left; + l = PyStackRef_NULL; + r = right; + _tos_cache2 = r; + _tos_cache1 = l; + _tos_cache0 = res; + SET_CURRENT_CACHED_VALUES(3); + stack_pointer += -1; + ASSERT_WITHIN_STACK_BOUNDS(__FILE__, __LINE__); + assert(WITHIN_STACK_BOUNDS_IGNORING_CACHE()); + break; + } + + case _BINARY_OP_ADD_FLOAT_INPLACE_r23: { + CHECK_CURRENT_CACHED_VALUES(2); + assert(WITHIN_STACK_BOUNDS_IGNORING_CACHE()); + _PyStackRef right; + _PyStackRef left; + _PyStackRef res; + _PyStackRef l; + _PyStackRef r; + _PyStackRef _stack_item_0 = _tos_cache0; + _PyStackRef _stack_item_1 = _tos_cache1; + right = _stack_item_1; + left = _stack_item_0; + PyObject *left_o = PyStackRef_AsPyObjectBorrow(left); + PyObject *right_o = PyStackRef_AsPyObjectBorrow(right); + assert(PyFloat_CheckExact(left_o)); + assert(PyFloat_CheckExact(right_o)); + assert(_PyObject_IsUniquelyReferenced(left_o)); + STAT_INC(BINARY_OP, hit); + ((PyFloatObject *)left_o)->ob_fval += ((PyFloatObject *)right_o)->ob_fval; + res = left; + l = PyStackRef_NULL; + r = right; + _tos_cache2 = r; + _tos_cache1 = l; + _tos_cache0 = res; + SET_CURRENT_CACHED_VALUES(3); + assert(WITHIN_STACK_BOUNDS_IGNORING_CACHE()); + break; + } + + case _BINARY_OP_SUBTRACT_FLOAT_INPLACE_r03: { + CHECK_CURRENT_CACHED_VALUES(0); + assert(WITHIN_STACK_BOUNDS_IGNORING_CACHE()); + _PyStackRef right; + _PyStackRef left; + _PyStackRef res; + _PyStackRef l; + _PyStackRef r; + right = stack_pointer[-1]; + left = stack_pointer[-2]; + PyObject *left_o = PyStackRef_AsPyObjectBorrow(left); + PyObject *right_o = PyStackRef_AsPyObjectBorrow(right); + assert(PyFloat_CheckExact(left_o)); + assert(PyFloat_CheckExact(right_o)); + assert(_PyObject_IsUniquelyReferenced(left_o)); + STAT_INC(BINARY_OP, hit); + ((PyFloatObject *)left_o)->ob_fval -= ((PyFloatObject *)right_o)->ob_fval; + res = left; + l = PyStackRef_NULL; + r = right; + _tos_cache2 = r; + _tos_cache1 = l; + _tos_cache0 = res; + SET_CURRENT_CACHED_VALUES(3); + stack_pointer += -2; + ASSERT_WITHIN_STACK_BOUNDS(__FILE__, __LINE__); + assert(WITHIN_STACK_BOUNDS_IGNORING_CACHE()); + break; + } + + case _BINARY_OP_SUBTRACT_FLOAT_INPLACE_r13: { + CHECK_CURRENT_CACHED_VALUES(1); + assert(WITHIN_STACK_BOUNDS_IGNORING_CACHE()); + _PyStackRef right; + _PyStackRef left; + _PyStackRef res; + _PyStackRef l; + _PyStackRef r; + _PyStackRef _stack_item_0 = _tos_cache0; + right = _stack_item_0; + left = stack_pointer[-1]; + PyObject *left_o = PyStackRef_AsPyObjectBorrow(left); + PyObject *right_o = PyStackRef_AsPyObjectBorrow(right); + assert(PyFloat_CheckExact(left_o)); + assert(PyFloat_CheckExact(right_o)); + assert(_PyObject_IsUniquelyReferenced(left_o)); + STAT_INC(BINARY_OP, hit); + ((PyFloatObject *)left_o)->ob_fval -= ((PyFloatObject *)right_o)->ob_fval; + res = left; + l = PyStackRef_NULL; + r = right; + _tos_cache2 = r; + _tos_cache1 = l; + _tos_cache0 = res; + SET_CURRENT_CACHED_VALUES(3); + stack_pointer += -1; + ASSERT_WITHIN_STACK_BOUNDS(__FILE__, __LINE__); + assert(WITHIN_STACK_BOUNDS_IGNORING_CACHE()); + break; + } + + case _BINARY_OP_SUBTRACT_FLOAT_INPLACE_r23: { + CHECK_CURRENT_CACHED_VALUES(2); + assert(WITHIN_STACK_BOUNDS_IGNORING_CACHE()); + _PyStackRef right; + _PyStackRef left; + _PyStackRef res; + _PyStackRef l; + _PyStackRef r; + _PyStackRef _stack_item_0 = _tos_cache0; + _PyStackRef _stack_item_1 = _tos_cache1; + right = _stack_item_1; + left = _stack_item_0; + PyObject *left_o = PyStackRef_AsPyObjectBorrow(left); + PyObject *right_o = PyStackRef_AsPyObjectBorrow(right); + assert(PyFloat_CheckExact(left_o)); + assert(PyFloat_CheckExact(right_o)); + assert(_PyObject_IsUniquelyReferenced(left_o)); + STAT_INC(BINARY_OP, hit); + ((PyFloatObject *)left_o)->ob_fval -= ((PyFloatObject *)right_o)->ob_fval; + res = left; + l = PyStackRef_NULL; + r = right; + _tos_cache2 = r; + _tos_cache1 = l; + _tos_cache0 = res; + SET_CURRENT_CACHED_VALUES(3); + assert(WITHIN_STACK_BOUNDS_IGNORING_CACHE()); + break; + } + + case _BINARY_OP_MULTIPLY_FLOAT_INPLACE_r03: { + CHECK_CURRENT_CACHED_VALUES(0); + assert(WITHIN_STACK_BOUNDS_IGNORING_CACHE()); + _PyStackRef right; + _PyStackRef left; + _PyStackRef res; + _PyStackRef l; + _PyStackRef r; + right = stack_pointer[-1]; + left = stack_pointer[-2]; + PyObject *left_o = PyStackRef_AsPyObjectBorrow(left); + PyObject *right_o = PyStackRef_AsPyObjectBorrow(right); + assert(PyFloat_CheckExact(left_o)); + assert(PyFloat_CheckExact(right_o)); + assert(_PyObject_IsUniquelyReferenced(left_o)); + STAT_INC(BINARY_OP, hit); + ((PyFloatObject *)left_o)->ob_fval *= ((PyFloatObject *)right_o)->ob_fval; + res = left; + l = PyStackRef_NULL; + r = right; + _tos_cache2 = r; + _tos_cache1 = l; + _tos_cache0 = res; + SET_CURRENT_CACHED_VALUES(3); + stack_pointer += -2; + ASSERT_WITHIN_STACK_BOUNDS(__FILE__, __LINE__); + assert(WITHIN_STACK_BOUNDS_IGNORING_CACHE()); + break; + } + + case _BINARY_OP_MULTIPLY_FLOAT_INPLACE_r13: { + CHECK_CURRENT_CACHED_VALUES(1); + assert(WITHIN_STACK_BOUNDS_IGNORING_CACHE()); + _PyStackRef right; + _PyStackRef left; + _PyStackRef res; + _PyStackRef l; + _PyStackRef r; + _PyStackRef _stack_item_0 = _tos_cache0; + right = _stack_item_0; + left = stack_pointer[-1]; + PyObject *left_o = PyStackRef_AsPyObjectBorrow(left); + PyObject *right_o = PyStackRef_AsPyObjectBorrow(right); + assert(PyFloat_CheckExact(left_o)); + assert(PyFloat_CheckExact(right_o)); + assert(_PyObject_IsUniquelyReferenced(left_o)); + STAT_INC(BINARY_OP, hit); + ((PyFloatObject *)left_o)->ob_fval *= ((PyFloatObject *)right_o)->ob_fval; + res = left; + l = PyStackRef_NULL; + r = right; + _tos_cache2 = r; + _tos_cache1 = l; + _tos_cache0 = res; + SET_CURRENT_CACHED_VALUES(3); + stack_pointer += -1; + ASSERT_WITHIN_STACK_BOUNDS(__FILE__, __LINE__); + assert(WITHIN_STACK_BOUNDS_IGNORING_CACHE()); + break; + } + + case _BINARY_OP_MULTIPLY_FLOAT_INPLACE_r23: { + CHECK_CURRENT_CACHED_VALUES(2); + assert(WITHIN_STACK_BOUNDS_IGNORING_CACHE()); + _PyStackRef right; + _PyStackRef left; + _PyStackRef res; + _PyStackRef l; + _PyStackRef r; + _PyStackRef _stack_item_0 = _tos_cache0; + _PyStackRef _stack_item_1 = _tos_cache1; + right = _stack_item_1; + left = _stack_item_0; + PyObject *left_o = PyStackRef_AsPyObjectBorrow(left); + PyObject *right_o = PyStackRef_AsPyObjectBorrow(right); + assert(PyFloat_CheckExact(left_o)); + assert(PyFloat_CheckExact(right_o)); + assert(_PyObject_IsUniquelyReferenced(left_o)); + STAT_INC(BINARY_OP, hit); + ((PyFloatObject *)left_o)->ob_fval *= ((PyFloatObject *)right_o)->ob_fval; + res = left; + l = PyStackRef_NULL; + r = right; + _tos_cache2 = r; + _tos_cache1 = l; + _tos_cache0 = res; + SET_CURRENT_CACHED_VALUES(3); + assert(WITHIN_STACK_BOUNDS_IGNORING_CACHE()); + break; + } + + case _BINARY_OP_ADD_FLOAT_INPLACE_RIGHT_r03: { + CHECK_CURRENT_CACHED_VALUES(0); + assert(WITHIN_STACK_BOUNDS_IGNORING_CACHE()); + _PyStackRef right; + _PyStackRef left; + _PyStackRef res; + _PyStackRef l; + _PyStackRef r; + right = stack_pointer[-1]; + left = stack_pointer[-2]; + PyObject *left_o = PyStackRef_AsPyObjectBorrow(left); + PyObject *right_o = PyStackRef_AsPyObjectBorrow(right); + assert(PyFloat_CheckExact(left_o)); + assert(PyFloat_CheckExact(right_o)); + assert(_PyObject_IsUniquelyReferenced(right_o)); + STAT_INC(BINARY_OP, hit); + ((PyFloatObject *)right_o)->ob_fval += ((PyFloatObject *)left_o)->ob_fval; + res = right; + l = left; + r = PyStackRef_NULL; + _tos_cache2 = r; + _tos_cache1 = l; + _tos_cache0 = res; + SET_CURRENT_CACHED_VALUES(3); + stack_pointer += -2; + ASSERT_WITHIN_STACK_BOUNDS(__FILE__, __LINE__); + assert(WITHIN_STACK_BOUNDS_IGNORING_CACHE()); + break; + } + + case _BINARY_OP_ADD_FLOAT_INPLACE_RIGHT_r13: { + CHECK_CURRENT_CACHED_VALUES(1); + assert(WITHIN_STACK_BOUNDS_IGNORING_CACHE()); + _PyStackRef right; + _PyStackRef left; + _PyStackRef res; + _PyStackRef l; + _PyStackRef r; + _PyStackRef _stack_item_0 = _tos_cache0; + right = _stack_item_0; + left = stack_pointer[-1]; + PyObject *left_o = PyStackRef_AsPyObjectBorrow(left); + PyObject *right_o = PyStackRef_AsPyObjectBorrow(right); + assert(PyFloat_CheckExact(left_o)); + assert(PyFloat_CheckExact(right_o)); + assert(_PyObject_IsUniquelyReferenced(right_o)); + STAT_INC(BINARY_OP, hit); + ((PyFloatObject *)right_o)->ob_fval += ((PyFloatObject *)left_o)->ob_fval; + res = right; + l = left; + r = PyStackRef_NULL; + _tos_cache2 = r; + _tos_cache1 = l; + _tos_cache0 = res; + SET_CURRENT_CACHED_VALUES(3); + stack_pointer += -1; + ASSERT_WITHIN_STACK_BOUNDS(__FILE__, __LINE__); + assert(WITHIN_STACK_BOUNDS_IGNORING_CACHE()); + break; + } + + case _BINARY_OP_ADD_FLOAT_INPLACE_RIGHT_r23: { + CHECK_CURRENT_CACHED_VALUES(2); + assert(WITHIN_STACK_BOUNDS_IGNORING_CACHE()); + _PyStackRef right; + _PyStackRef left; + _PyStackRef res; + _PyStackRef l; + _PyStackRef r; + _PyStackRef _stack_item_0 = _tos_cache0; + _PyStackRef _stack_item_1 = _tos_cache1; + right = _stack_item_1; + left = _stack_item_0; + PyObject *left_o = PyStackRef_AsPyObjectBorrow(left); + PyObject *right_o = PyStackRef_AsPyObjectBorrow(right); + assert(PyFloat_CheckExact(left_o)); + assert(PyFloat_CheckExact(right_o)); + assert(_PyObject_IsUniquelyReferenced(right_o)); + STAT_INC(BINARY_OP, hit); + ((PyFloatObject *)right_o)->ob_fval += ((PyFloatObject *)left_o)->ob_fval; + res = right; + l = left; + r = PyStackRef_NULL; + _tos_cache2 = r; + _tos_cache1 = l; + _tos_cache0 = res; + SET_CURRENT_CACHED_VALUES(3); + assert(WITHIN_STACK_BOUNDS_IGNORING_CACHE()); + break; + } + + case _BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT_r03: { + CHECK_CURRENT_CACHED_VALUES(0); + assert(WITHIN_STACK_BOUNDS_IGNORING_CACHE()); + _PyStackRef right; + _PyStackRef left; + _PyStackRef res; + _PyStackRef l; + _PyStackRef r; + right = stack_pointer[-1]; + left = stack_pointer[-2]; + PyObject *left_o = PyStackRef_AsPyObjectBorrow(left); + PyObject *right_o = PyStackRef_AsPyObjectBorrow(right); + assert(PyFloat_CheckExact(left_o)); + assert(PyFloat_CheckExact(right_o)); + assert(_PyObject_IsUniquelyReferenced(right_o)); + STAT_INC(BINARY_OP, hit); + ((PyFloatObject *)right_o)->ob_fval *= ((PyFloatObject *)left_o)->ob_fval; + res = right; + l = left; + r = PyStackRef_NULL; + _tos_cache2 = r; + _tos_cache1 = l; + _tos_cache0 = res; + SET_CURRENT_CACHED_VALUES(3); + stack_pointer += -2; + ASSERT_WITHIN_STACK_BOUNDS(__FILE__, __LINE__); + assert(WITHIN_STACK_BOUNDS_IGNORING_CACHE()); + break; + } + + case _BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT_r13: { + CHECK_CURRENT_CACHED_VALUES(1); + assert(WITHIN_STACK_BOUNDS_IGNORING_CACHE()); + _PyStackRef right; + _PyStackRef left; + _PyStackRef res; + _PyStackRef l; + _PyStackRef r; + _PyStackRef _stack_item_0 = _tos_cache0; + right = _stack_item_0; + left = stack_pointer[-1]; + PyObject *left_o = PyStackRef_AsPyObjectBorrow(left); + PyObject *right_o = PyStackRef_AsPyObjectBorrow(right); + assert(PyFloat_CheckExact(left_o)); + assert(PyFloat_CheckExact(right_o)); + assert(_PyObject_IsUniquelyReferenced(right_o)); + STAT_INC(BINARY_OP, hit); + ((PyFloatObject *)right_o)->ob_fval *= ((PyFloatObject *)left_o)->ob_fval; + res = right; + l = left; + r = PyStackRef_NULL; + _tos_cache2 = r; + _tos_cache1 = l; + _tos_cache0 = res; + SET_CURRENT_CACHED_VALUES(3); + stack_pointer += -1; + ASSERT_WITHIN_STACK_BOUNDS(__FILE__, __LINE__); + assert(WITHIN_STACK_BOUNDS_IGNORING_CACHE()); + break; + } + + case _BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT_r23: { + CHECK_CURRENT_CACHED_VALUES(2); + assert(WITHIN_STACK_BOUNDS_IGNORING_CACHE()); + _PyStackRef right; + _PyStackRef left; + _PyStackRef res; + _PyStackRef l; + _PyStackRef r; + _PyStackRef _stack_item_0 = _tos_cache0; + _PyStackRef _stack_item_1 = _tos_cache1; + right = _stack_item_1; + left = _stack_item_0; + PyObject *left_o = PyStackRef_AsPyObjectBorrow(left); + PyObject *right_o = PyStackRef_AsPyObjectBorrow(right); + assert(PyFloat_CheckExact(left_o)); + assert(PyFloat_CheckExact(right_o)); + assert(_PyObject_IsUniquelyReferenced(right_o)); + STAT_INC(BINARY_OP, hit); + ((PyFloatObject *)right_o)->ob_fval *= ((PyFloatObject *)left_o)->ob_fval; + res = right; + l = left; + r = PyStackRef_NULL; + _tos_cache2 = r; + _tos_cache1 = l; + _tos_cache0 = res; + SET_CURRENT_CACHED_VALUES(3); + assert(WITHIN_STACK_BOUNDS_IGNORING_CACHE()); + break; + } + + case _BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT_r03: { + CHECK_CURRENT_CACHED_VALUES(0); + assert(WITHIN_STACK_BOUNDS_IGNORING_CACHE()); + _PyStackRef right; + _PyStackRef left; + _PyStackRef res; + _PyStackRef l; + _PyStackRef r; + right = stack_pointer[-1]; + left = stack_pointer[-2]; + PyObject *left_o = PyStackRef_AsPyObjectBorrow(left); + PyObject *right_o = PyStackRef_AsPyObjectBorrow(right); + assert(PyFloat_CheckExact(left_o)); + assert(PyFloat_CheckExact(right_o)); + assert(_PyObject_IsUniquelyReferenced(right_o)); + STAT_INC(BINARY_OP, hit); + ((PyFloatObject *)right_o)->ob_fval = ((PyFloatObject *)left_o)->ob_fval - ((PyFloatObject *)right_o)->ob_fval; + res = right; + l = left; + r = PyStackRef_NULL; + _tos_cache2 = r; + _tos_cache1 = l; + _tos_cache0 = res; + SET_CURRENT_CACHED_VALUES(3); + stack_pointer += -2; + ASSERT_WITHIN_STACK_BOUNDS(__FILE__, __LINE__); + assert(WITHIN_STACK_BOUNDS_IGNORING_CACHE()); + break; + } + + case _BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT_r13: { + CHECK_CURRENT_CACHED_VALUES(1); + assert(WITHIN_STACK_BOUNDS_IGNORING_CACHE()); + _PyStackRef right; + _PyStackRef left; + _PyStackRef res; + _PyStackRef l; + _PyStackRef r; + _PyStackRef _stack_item_0 = _tos_cache0; + right = _stack_item_0; + left = stack_pointer[-1]; + PyObject *left_o = PyStackRef_AsPyObjectBorrow(left); + PyObject *right_o = PyStackRef_AsPyObjectBorrow(right); + assert(PyFloat_CheckExact(left_o)); + assert(PyFloat_CheckExact(right_o)); + assert(_PyObject_IsUniquelyReferenced(right_o)); + STAT_INC(BINARY_OP, hit); + ((PyFloatObject *)right_o)->ob_fval = ((PyFloatObject *)left_o)->ob_fval - ((PyFloatObject *)right_o)->ob_fval; + res = right; + l = left; + r = PyStackRef_NULL; + _tos_cache2 = r; + _tos_cache1 = l; + _tos_cache0 = res; + SET_CURRENT_CACHED_VALUES(3); + stack_pointer += -1; + ASSERT_WITHIN_STACK_BOUNDS(__FILE__, __LINE__); + assert(WITHIN_STACK_BOUNDS_IGNORING_CACHE()); + break; + } + + case _BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT_r23: { + CHECK_CURRENT_CACHED_VALUES(2); + assert(WITHIN_STACK_BOUNDS_IGNORING_CACHE()); + _PyStackRef right; + _PyStackRef left; + _PyStackRef res; + _PyStackRef l; + _PyStackRef r; + _PyStackRef _stack_item_0 = _tos_cache0; + _PyStackRef _stack_item_1 = _tos_cache1; + right = _stack_item_1; + left = _stack_item_0; + PyObject *left_o = PyStackRef_AsPyObjectBorrow(left); + PyObject *right_o = PyStackRef_AsPyObjectBorrow(right); + assert(PyFloat_CheckExact(left_o)); + assert(PyFloat_CheckExact(right_o)); + assert(_PyObject_IsUniquelyReferenced(right_o)); + STAT_INC(BINARY_OP, hit); + ((PyFloatObject *)right_o)->ob_fval = ((PyFloatObject *)left_o)->ob_fval - ((PyFloatObject *)right_o)->ob_fval; + res = right; + l = left; + r = PyStackRef_NULL; + _tos_cache2 = r; + _tos_cache1 = l; + _tos_cache0 = res; + SET_CURRENT_CACHED_VALUES(3); + assert(WITHIN_STACK_BOUNDS_IGNORING_CACHE()); + break; + } + case _BINARY_OP_ADD_UNICODE_r03: { CHECK_CURRENT_CACHED_VALUES(0); assert(WITHIN_STACK_BOUNDS_IGNORING_CACHE()); diff --git a/Python/optimizer_bytecodes.c b/Python/optimizer_bytecodes.c index 36820e33099e42..1e1607c0179a20 100644 --- a/Python/optimizer_bytecodes.c +++ b/Python/optimizer_bytecodes.c @@ -325,21 +325,57 @@ dummy_func(void) { } op(_BINARY_OP_ADD_FLOAT, (left, right -- res, l, r)) { - res = sym_new_type(ctx, &PyFloat_Type); - l = left; - r = right; + if (PyJitRef_IsUnique(left)) { + ADD_OP(_BINARY_OP_ADD_FLOAT_INPLACE, 0, 0); + l = PyJitRef_Borrow(left); + r = right; + } + else if (PyJitRef_IsUnique(right)) { + ADD_OP(_BINARY_OP_ADD_FLOAT_INPLACE_RIGHT, 0, 0); + l = left; + r = PyJitRef_Borrow(right); + } + else { + l = left; + r = right; + } + res = PyJitRef_MakeUnique(sym_new_type(ctx, &PyFloat_Type)); } op(_BINARY_OP_SUBTRACT_FLOAT, (left, right -- res, l, r)) { - res = sym_new_type(ctx, &PyFloat_Type); - l = left; - r = right; + if (PyJitRef_IsUnique(left)) { + ADD_OP(_BINARY_OP_SUBTRACT_FLOAT_INPLACE, 0, 0); + l = PyJitRef_Borrow(left); + r = right; + } + else if (PyJitRef_IsUnique(right)) { + ADD_OP(_BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT, 0, 0); + l = left; + r = PyJitRef_Borrow(right); + } + else { + l = left; + r = right; + } + res = PyJitRef_MakeUnique(sym_new_type(ctx, &PyFloat_Type)); } op(_BINARY_OP_MULTIPLY_FLOAT, (left, right -- res, l, r)) { - res = sym_new_type(ctx, &PyFloat_Type); - l = left; - r = right; + if (PyJitRef_IsUnique(left)) { + ADD_OP(_BINARY_OP_MULTIPLY_FLOAT_INPLACE, 0, 0); + l = PyJitRef_Borrow(left); + r = right; + } + else if (PyJitRef_IsUnique(right)) { + ADD_OP(_BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT, 0, 0); + l = left; + r = PyJitRef_Borrow(right); + } + else { + l = left; + r = right; + } + res = PyJitRef_MakeUnique(sym_new_type(ctx, &PyFloat_Type)); } op(_BINARY_OP_ADD_UNICODE, (left, right -- res, l, r)) { @@ -531,7 +567,12 @@ dummy_func(void) { op(_UNARY_NEGATIVE, (value -- res, v)) { v = value; REPLACE_OPCODE_IF_EVALUATES_PURE(value, res); - if (sym_is_compact_int(value)) { + if (sym_matches_type(value, &PyFloat_Type) && PyJitRef_IsUnique(value)) { + ADD_OP(_UNARY_NEGATIVE_FLOAT_INPLACE, 0, 0); + v = PyJitRef_Borrow(value); + res = PyJitRef_MakeUnique(sym_new_type(ctx, &PyFloat_Type)); + } + else if (sym_is_compact_int(value)) { res = sym_new_compact_int(ctx); } else { diff --git a/Python/optimizer_cases.c.h b/Python/optimizer_cases.c.h index 38831e4664247a..19123761febe2b 100644 --- a/Python/optimizer_cases.c.h +++ b/Python/optimizer_cases.c.h @@ -257,7 +257,12 @@ ASSERT_WITHIN_STACK_BOUNDS(__FILE__, __LINE__); break; } - if (sym_is_compact_int(value)) { + if (sym_matches_type(value, &PyFloat_Type) && PyJitRef_IsUnique(value)) { + ADD_OP(_UNARY_NEGATIVE_FLOAT_INPLACE, 0, 0); + v = PyJitRef_Borrow(value); + res = PyJitRef_MakeUnique(sym_new_type(ctx, &PyFloat_Type)); + } + else if (sym_is_compact_int(value)) { res = sym_new_compact_int(ctx); } else { @@ -277,6 +282,19 @@ break; } + case _UNARY_NEGATIVE_FLOAT_INPLACE: { + JitOptRef res; + JitOptRef v; + res = sym_new_not_null(ctx); + v = sym_new_not_null(ctx); + CHECK_STACK_BOUNDS(1); + stack_pointer[-1] = res; + stack_pointer[0] = v; + stack_pointer += 1; + ASSERT_WITHIN_STACK_BOUNDS(__FILE__, __LINE__); + break; + } + case _UNARY_NOT: { JitOptRef value; JitOptRef res; @@ -790,9 +808,21 @@ JitOptRef r; right = stack_pointer[-1]; left = stack_pointer[-2]; - res = sym_new_type(ctx, &PyFloat_Type); - l = left; - r = right; + if (PyJitRef_IsUnique(left)) { + ADD_OP(_BINARY_OP_MULTIPLY_FLOAT_INPLACE, 0, 0); + l = PyJitRef_Borrow(left); + r = right; + } + else if (PyJitRef_IsUnique(right)) { + ADD_OP(_BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT, 0, 0); + l = left; + r = PyJitRef_Borrow(right); + } + else { + l = left; + r = right; + } + res = PyJitRef_MakeUnique(sym_new_type(ctx, &PyFloat_Type)); CHECK_STACK_BOUNDS(1); stack_pointer[-2] = res; stack_pointer[-1] = l; @@ -810,9 +840,21 @@ JitOptRef r; right = stack_pointer[-1]; left = stack_pointer[-2]; - res = sym_new_type(ctx, &PyFloat_Type); - l = left; - r = right; + if (PyJitRef_IsUnique(left)) { + ADD_OP(_BINARY_OP_ADD_FLOAT_INPLACE, 0, 0); + l = PyJitRef_Borrow(left); + r = right; + } + else if (PyJitRef_IsUnique(right)) { + ADD_OP(_BINARY_OP_ADD_FLOAT_INPLACE_RIGHT, 0, 0); + l = left; + r = PyJitRef_Borrow(right); + } + else { + l = left; + r = right; + } + res = PyJitRef_MakeUnique(sym_new_type(ctx, &PyFloat_Type)); CHECK_STACK_BOUNDS(1); stack_pointer[-2] = res; stack_pointer[-1] = l; @@ -830,9 +872,117 @@ JitOptRef r; right = stack_pointer[-1]; left = stack_pointer[-2]; - res = sym_new_type(ctx, &PyFloat_Type); - l = left; - r = right; + if (PyJitRef_IsUnique(left)) { + ADD_OP(_BINARY_OP_SUBTRACT_FLOAT_INPLACE, 0, 0); + l = PyJitRef_Borrow(left); + r = right; + } + else if (PyJitRef_IsUnique(right)) { + ADD_OP(_BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT, 0, 0); + l = left; + r = PyJitRef_Borrow(right); + } + else { + l = left; + r = right; + } + res = PyJitRef_MakeUnique(sym_new_type(ctx, &PyFloat_Type)); + CHECK_STACK_BOUNDS(1); + stack_pointer[-2] = res; + stack_pointer[-1] = l; + stack_pointer[0] = r; + stack_pointer += 1; + ASSERT_WITHIN_STACK_BOUNDS(__FILE__, __LINE__); + break; + } + + case _BINARY_OP_ADD_FLOAT_INPLACE: { + JitOptRef res; + JitOptRef l; + JitOptRef r; + res = sym_new_not_null(ctx); + l = sym_new_not_null(ctx); + r = sym_new_not_null(ctx); + CHECK_STACK_BOUNDS(1); + stack_pointer[-2] = res; + stack_pointer[-1] = l; + stack_pointer[0] = r; + stack_pointer += 1; + ASSERT_WITHIN_STACK_BOUNDS(__FILE__, __LINE__); + break; + } + + case _BINARY_OP_SUBTRACT_FLOAT_INPLACE: { + JitOptRef res; + JitOptRef l; + JitOptRef r; + res = sym_new_not_null(ctx); + l = sym_new_not_null(ctx); + r = sym_new_not_null(ctx); + CHECK_STACK_BOUNDS(1); + stack_pointer[-2] = res; + stack_pointer[-1] = l; + stack_pointer[0] = r; + stack_pointer += 1; + ASSERT_WITHIN_STACK_BOUNDS(__FILE__, __LINE__); + break; + } + + case _BINARY_OP_MULTIPLY_FLOAT_INPLACE: { + JitOptRef res; + JitOptRef l; + JitOptRef r; + res = sym_new_not_null(ctx); + l = sym_new_not_null(ctx); + r = sym_new_not_null(ctx); + CHECK_STACK_BOUNDS(1); + stack_pointer[-2] = res; + stack_pointer[-1] = l; + stack_pointer[0] = r; + stack_pointer += 1; + ASSERT_WITHIN_STACK_BOUNDS(__FILE__, __LINE__); + break; + } + + case _BINARY_OP_ADD_FLOAT_INPLACE_RIGHT: { + JitOptRef res; + JitOptRef l; + JitOptRef r; + res = sym_new_not_null(ctx); + l = sym_new_not_null(ctx); + r = sym_new_not_null(ctx); + CHECK_STACK_BOUNDS(1); + stack_pointer[-2] = res; + stack_pointer[-1] = l; + stack_pointer[0] = r; + stack_pointer += 1; + ASSERT_WITHIN_STACK_BOUNDS(__FILE__, __LINE__); + break; + } + + case _BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT: { + JitOptRef res; + JitOptRef l; + JitOptRef r; + res = sym_new_not_null(ctx); + l = sym_new_not_null(ctx); + r = sym_new_not_null(ctx); + CHECK_STACK_BOUNDS(1); + stack_pointer[-2] = res; + stack_pointer[-1] = l; + stack_pointer[0] = r; + stack_pointer += 1; + ASSERT_WITHIN_STACK_BOUNDS(__FILE__, __LINE__); + break; + } + + case _BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT: { + JitOptRef res; + JitOptRef l; + JitOptRef r; + res = sym_new_not_null(ctx); + l = sym_new_not_null(ctx); + r = sym_new_not_null(ctx); CHECK_STACK_BOUNDS(1); stack_pointer[-2] = res; stack_pointer[-1] = l; From 637803c885f332a0fd34606c254f05cefe230c3a Mon Sep 17 00:00:00 2001 From: Pieter Eendebak Date: Sun, 22 Mar 2026 21:10:45 +0100 Subject: [PATCH 02/11] Fix JIT stencil compilation on i686-pc-windows-msvc Avoid compound assignment (+=, -=, *=) directly on ob_fval in inplace float ops. On 32-bit Windows, this generates JIT stencils with _xmm register references that MSVC cannot parse. Instead, read into a local double, compute, and write back. Co-Authored-By: Claude Opus 4.6 (1M context) --- Python/bytecodes.c | 29 +++++++++++------- Python/executor_cases.c.h | 63 ++++++++++++++++++++++++++------------- 2 files changed, 60 insertions(+), 32 deletions(-) diff --git a/Python/bytecodes.c b/Python/bytecodes.c index dfc8b95ed97154..a6049e069a140a 100644 --- a/Python/bytecodes.c +++ b/Python/bytecodes.c @@ -467,7 +467,8 @@ dummy_func( assert(PyFloat_CheckExact(val_o)); assert(_PyObject_IsUniquelyReferenced(val_o)); STAT_INC(UNARY_NEGATIVE, hit); - ((PyFloatObject *)val_o)->ob_fval = -((PyFloatObject *)val_o)->ob_fval; + double dres = -((PyFloatObject *)val_o)->ob_fval; + ((PyFloatObject *)val_o)->ob_fval = dres; res = value; v = PyStackRef_NULL; INPUTS_DEAD(); @@ -788,6 +789,9 @@ dummy_func( // instead of allocating a new float. Tier 2 only. // The optimizer sets l to null so the following _POP_TOP_FLOAT // becomes _POP_TOP_NOP. + // Note: read into a local double and write back to avoid compound + // assignment (+=) on ob_fval, which generates problematic JIT + // stencils on i686-pc-windows-msvc. tier2 op(_BINARY_OP_ADD_FLOAT_INPLACE, (left, right -- res, l, r)) { PyObject *left_o = PyStackRef_AsPyObjectBorrow(left); PyObject *right_o = PyStackRef_AsPyObjectBorrow(right); @@ -795,7 +799,8 @@ dummy_func( assert(PyFloat_CheckExact(right_o)); assert(_PyObject_IsUniquelyReferenced(left_o)); STAT_INC(BINARY_OP, hit); - ((PyFloatObject *)left_o)->ob_fval += ((PyFloatObject *)right_o)->ob_fval; + double dres = ((PyFloatObject *)left_o)->ob_fval + ((PyFloatObject *)right_o)->ob_fval; + ((PyFloatObject *)left_o)->ob_fval = dres; res = left; l = PyStackRef_NULL; r = right; @@ -809,7 +814,8 @@ dummy_func( assert(PyFloat_CheckExact(right_o)); assert(_PyObject_IsUniquelyReferenced(left_o)); STAT_INC(BINARY_OP, hit); - ((PyFloatObject *)left_o)->ob_fval -= ((PyFloatObject *)right_o)->ob_fval; + double dres = ((PyFloatObject *)left_o)->ob_fval - ((PyFloatObject *)right_o)->ob_fval; + ((PyFloatObject *)left_o)->ob_fval = dres; res = left; l = PyStackRef_NULL; r = right; @@ -823,15 +829,15 @@ dummy_func( assert(PyFloat_CheckExact(right_o)); assert(_PyObject_IsUniquelyReferenced(left_o)); STAT_INC(BINARY_OP, hit); - ((PyFloatObject *)left_o)->ob_fval *= ((PyFloatObject *)right_o)->ob_fval; + double dres = ((PyFloatObject *)left_o)->ob_fval * ((PyFloatObject *)right_o)->ob_fval; + ((PyFloatObject *)left_o)->ob_fval = dres; res = left; l = PyStackRef_NULL; r = right; INPUTS_DEAD(); } - // Inplace RIGHT variants for commutative ops (add, multiply). - // Mutate the uniquely-referenced right operand instead. + // Inplace RIGHT variants: mutate the uniquely-referenced right operand. tier2 op(_BINARY_OP_ADD_FLOAT_INPLACE_RIGHT, (left, right -- res, l, r)) { PyObject *left_o = PyStackRef_AsPyObjectBorrow(left); PyObject *right_o = PyStackRef_AsPyObjectBorrow(right); @@ -839,7 +845,8 @@ dummy_func( assert(PyFloat_CheckExact(right_o)); assert(_PyObject_IsUniquelyReferenced(right_o)); STAT_INC(BINARY_OP, hit); - ((PyFloatObject *)right_o)->ob_fval += ((PyFloatObject *)left_o)->ob_fval; + double dres = ((PyFloatObject *)left_o)->ob_fval + ((PyFloatObject *)right_o)->ob_fval; + ((PyFloatObject *)right_o)->ob_fval = dres; res = right; l = left; r = PyStackRef_NULL; @@ -853,15 +860,14 @@ dummy_func( assert(PyFloat_CheckExact(right_o)); assert(_PyObject_IsUniquelyReferenced(right_o)); STAT_INC(BINARY_OP, hit); - ((PyFloatObject *)right_o)->ob_fval *= ((PyFloatObject *)left_o)->ob_fval; + double dres = ((PyFloatObject *)left_o)->ob_fval * ((PyFloatObject *)right_o)->ob_fval; + ((PyFloatObject *)right_o)->ob_fval = dres; res = right; l = left; r = PyStackRef_NULL; INPUTS_DEAD(); } - // Inplace RIGHT variant for subtract (non-commutative): - // right->ob_fval = left->ob_fval - right->ob_fval tier2 op(_BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT, (left, right -- res, l, r)) { PyObject *left_o = PyStackRef_AsPyObjectBorrow(left); PyObject *right_o = PyStackRef_AsPyObjectBorrow(right); @@ -869,7 +875,8 @@ dummy_func( assert(PyFloat_CheckExact(right_o)); assert(_PyObject_IsUniquelyReferenced(right_o)); STAT_INC(BINARY_OP, hit); - ((PyFloatObject *)right_o)->ob_fval = ((PyFloatObject *)left_o)->ob_fval - ((PyFloatObject *)right_o)->ob_fval; + double dres = ((PyFloatObject *)left_o)->ob_fval - ((PyFloatObject *)right_o)->ob_fval; + ((PyFloatObject *)right_o)->ob_fval = dres; res = right; l = left; r = PyStackRef_NULL; diff --git a/Python/executor_cases.c.h b/Python/executor_cases.c.h index ecaaf4d377120d..613b1bcfd4e5ae 100644 --- a/Python/executor_cases.c.h +++ b/Python/executor_cases.c.h @@ -2674,7 +2674,8 @@ assert(PyFloat_CheckExact(val_o)); assert(_PyObject_IsUniquelyReferenced(val_o)); STAT_INC(UNARY_NEGATIVE, hit); - ((PyFloatObject *)val_o)->ob_fval = -((PyFloatObject *)val_o)->ob_fval; + double dres = -((PyFloatObject *)val_o)->ob_fval; + ((PyFloatObject *)val_o)->ob_fval = dres; res = value; v = PyStackRef_NULL; _tos_cache1 = v; @@ -2698,7 +2699,8 @@ assert(PyFloat_CheckExact(val_o)); assert(_PyObject_IsUniquelyReferenced(val_o)); STAT_INC(UNARY_NEGATIVE, hit); - ((PyFloatObject *)val_o)->ob_fval = -((PyFloatObject *)val_o)->ob_fval; + double dres = -((PyFloatObject *)val_o)->ob_fval; + ((PyFloatObject *)val_o)->ob_fval = dres; res = value; v = PyStackRef_NULL; _tos_cache1 = v; @@ -2721,7 +2723,8 @@ assert(PyFloat_CheckExact(val_o)); assert(_PyObject_IsUniquelyReferenced(val_o)); STAT_INC(UNARY_NEGATIVE, hit); - ((PyFloatObject *)val_o)->ob_fval = -((PyFloatObject *)val_o)->ob_fval; + double dres = -((PyFloatObject *)val_o)->ob_fval; + ((PyFloatObject *)val_o)->ob_fval = dres; res = value; v = PyStackRef_NULL; _tos_cache2 = v; @@ -5039,7 +5042,8 @@ assert(PyFloat_CheckExact(right_o)); assert(_PyObject_IsUniquelyReferenced(left_o)); STAT_INC(BINARY_OP, hit); - ((PyFloatObject *)left_o)->ob_fval += ((PyFloatObject *)right_o)->ob_fval; + double dres = ((PyFloatObject *)left_o)->ob_fval + ((PyFloatObject *)right_o)->ob_fval; + ((PyFloatObject *)left_o)->ob_fval = dres; res = left; l = PyStackRef_NULL; r = right; @@ -5070,7 +5074,8 @@ assert(PyFloat_CheckExact(right_o)); assert(_PyObject_IsUniquelyReferenced(left_o)); STAT_INC(BINARY_OP, hit); - ((PyFloatObject *)left_o)->ob_fval += ((PyFloatObject *)right_o)->ob_fval; + double dres = ((PyFloatObject *)left_o)->ob_fval + ((PyFloatObject *)right_o)->ob_fval; + ((PyFloatObject *)left_o)->ob_fval = dres; res = left; l = PyStackRef_NULL; r = right; @@ -5102,7 +5107,8 @@ assert(PyFloat_CheckExact(right_o)); assert(_PyObject_IsUniquelyReferenced(left_o)); STAT_INC(BINARY_OP, hit); - ((PyFloatObject *)left_o)->ob_fval += ((PyFloatObject *)right_o)->ob_fval; + double dres = ((PyFloatObject *)left_o)->ob_fval + ((PyFloatObject *)right_o)->ob_fval; + ((PyFloatObject *)left_o)->ob_fval = dres; res = left; l = PyStackRef_NULL; r = right; @@ -5130,7 +5136,8 @@ assert(PyFloat_CheckExact(right_o)); assert(_PyObject_IsUniquelyReferenced(left_o)); STAT_INC(BINARY_OP, hit); - ((PyFloatObject *)left_o)->ob_fval -= ((PyFloatObject *)right_o)->ob_fval; + double dres = ((PyFloatObject *)left_o)->ob_fval - ((PyFloatObject *)right_o)->ob_fval; + ((PyFloatObject *)left_o)->ob_fval = dres; res = left; l = PyStackRef_NULL; r = right; @@ -5161,7 +5168,8 @@ assert(PyFloat_CheckExact(right_o)); assert(_PyObject_IsUniquelyReferenced(left_o)); STAT_INC(BINARY_OP, hit); - ((PyFloatObject *)left_o)->ob_fval -= ((PyFloatObject *)right_o)->ob_fval; + double dres = ((PyFloatObject *)left_o)->ob_fval - ((PyFloatObject *)right_o)->ob_fval; + ((PyFloatObject *)left_o)->ob_fval = dres; res = left; l = PyStackRef_NULL; r = right; @@ -5193,7 +5201,8 @@ assert(PyFloat_CheckExact(right_o)); assert(_PyObject_IsUniquelyReferenced(left_o)); STAT_INC(BINARY_OP, hit); - ((PyFloatObject *)left_o)->ob_fval -= ((PyFloatObject *)right_o)->ob_fval; + double dres = ((PyFloatObject *)left_o)->ob_fval - ((PyFloatObject *)right_o)->ob_fval; + ((PyFloatObject *)left_o)->ob_fval = dres; res = left; l = PyStackRef_NULL; r = right; @@ -5221,7 +5230,8 @@ assert(PyFloat_CheckExact(right_o)); assert(_PyObject_IsUniquelyReferenced(left_o)); STAT_INC(BINARY_OP, hit); - ((PyFloatObject *)left_o)->ob_fval *= ((PyFloatObject *)right_o)->ob_fval; + double dres = ((PyFloatObject *)left_o)->ob_fval * ((PyFloatObject *)right_o)->ob_fval; + ((PyFloatObject *)left_o)->ob_fval = dres; res = left; l = PyStackRef_NULL; r = right; @@ -5252,7 +5262,8 @@ assert(PyFloat_CheckExact(right_o)); assert(_PyObject_IsUniquelyReferenced(left_o)); STAT_INC(BINARY_OP, hit); - ((PyFloatObject *)left_o)->ob_fval *= ((PyFloatObject *)right_o)->ob_fval; + double dres = ((PyFloatObject *)left_o)->ob_fval * ((PyFloatObject *)right_o)->ob_fval; + ((PyFloatObject *)left_o)->ob_fval = dres; res = left; l = PyStackRef_NULL; r = right; @@ -5284,7 +5295,8 @@ assert(PyFloat_CheckExact(right_o)); assert(_PyObject_IsUniquelyReferenced(left_o)); STAT_INC(BINARY_OP, hit); - ((PyFloatObject *)left_o)->ob_fval *= ((PyFloatObject *)right_o)->ob_fval; + double dres = ((PyFloatObject *)left_o)->ob_fval * ((PyFloatObject *)right_o)->ob_fval; + ((PyFloatObject *)left_o)->ob_fval = dres; res = left; l = PyStackRef_NULL; r = right; @@ -5312,7 +5324,8 @@ assert(PyFloat_CheckExact(right_o)); assert(_PyObject_IsUniquelyReferenced(right_o)); STAT_INC(BINARY_OP, hit); - ((PyFloatObject *)right_o)->ob_fval += ((PyFloatObject *)left_o)->ob_fval; + double dres = ((PyFloatObject *)left_o)->ob_fval + ((PyFloatObject *)right_o)->ob_fval; + ((PyFloatObject *)right_o)->ob_fval = dres; res = right; l = left; r = PyStackRef_NULL; @@ -5343,7 +5356,8 @@ assert(PyFloat_CheckExact(right_o)); assert(_PyObject_IsUniquelyReferenced(right_o)); STAT_INC(BINARY_OP, hit); - ((PyFloatObject *)right_o)->ob_fval += ((PyFloatObject *)left_o)->ob_fval; + double dres = ((PyFloatObject *)left_o)->ob_fval + ((PyFloatObject *)right_o)->ob_fval; + ((PyFloatObject *)right_o)->ob_fval = dres; res = right; l = left; r = PyStackRef_NULL; @@ -5375,7 +5389,8 @@ assert(PyFloat_CheckExact(right_o)); assert(_PyObject_IsUniquelyReferenced(right_o)); STAT_INC(BINARY_OP, hit); - ((PyFloatObject *)right_o)->ob_fval += ((PyFloatObject *)left_o)->ob_fval; + double dres = ((PyFloatObject *)left_o)->ob_fval + ((PyFloatObject *)right_o)->ob_fval; + ((PyFloatObject *)right_o)->ob_fval = dres; res = right; l = left; r = PyStackRef_NULL; @@ -5403,7 +5418,8 @@ assert(PyFloat_CheckExact(right_o)); assert(_PyObject_IsUniquelyReferenced(right_o)); STAT_INC(BINARY_OP, hit); - ((PyFloatObject *)right_o)->ob_fval *= ((PyFloatObject *)left_o)->ob_fval; + double dres = ((PyFloatObject *)left_o)->ob_fval * ((PyFloatObject *)right_o)->ob_fval; + ((PyFloatObject *)right_o)->ob_fval = dres; res = right; l = left; r = PyStackRef_NULL; @@ -5434,7 +5450,8 @@ assert(PyFloat_CheckExact(right_o)); assert(_PyObject_IsUniquelyReferenced(right_o)); STAT_INC(BINARY_OP, hit); - ((PyFloatObject *)right_o)->ob_fval *= ((PyFloatObject *)left_o)->ob_fval; + double dres = ((PyFloatObject *)left_o)->ob_fval * ((PyFloatObject *)right_o)->ob_fval; + ((PyFloatObject *)right_o)->ob_fval = dres; res = right; l = left; r = PyStackRef_NULL; @@ -5466,7 +5483,8 @@ assert(PyFloat_CheckExact(right_o)); assert(_PyObject_IsUniquelyReferenced(right_o)); STAT_INC(BINARY_OP, hit); - ((PyFloatObject *)right_o)->ob_fval *= ((PyFloatObject *)left_o)->ob_fval; + double dres = ((PyFloatObject *)left_o)->ob_fval * ((PyFloatObject *)right_o)->ob_fval; + ((PyFloatObject *)right_o)->ob_fval = dres; res = right; l = left; r = PyStackRef_NULL; @@ -5494,7 +5512,8 @@ assert(PyFloat_CheckExact(right_o)); assert(_PyObject_IsUniquelyReferenced(right_o)); STAT_INC(BINARY_OP, hit); - ((PyFloatObject *)right_o)->ob_fval = ((PyFloatObject *)left_o)->ob_fval - ((PyFloatObject *)right_o)->ob_fval; + double dres = ((PyFloatObject *)left_o)->ob_fval - ((PyFloatObject *)right_o)->ob_fval; + ((PyFloatObject *)right_o)->ob_fval = dres; res = right; l = left; r = PyStackRef_NULL; @@ -5525,7 +5544,8 @@ assert(PyFloat_CheckExact(right_o)); assert(_PyObject_IsUniquelyReferenced(right_o)); STAT_INC(BINARY_OP, hit); - ((PyFloatObject *)right_o)->ob_fval = ((PyFloatObject *)left_o)->ob_fval - ((PyFloatObject *)right_o)->ob_fval; + double dres = ((PyFloatObject *)left_o)->ob_fval - ((PyFloatObject *)right_o)->ob_fval; + ((PyFloatObject *)right_o)->ob_fval = dres; res = right; l = left; r = PyStackRef_NULL; @@ -5557,7 +5577,8 @@ assert(PyFloat_CheckExact(right_o)); assert(_PyObject_IsUniquelyReferenced(right_o)); STAT_INC(BINARY_OP, hit); - ((PyFloatObject *)right_o)->ob_fval = ((PyFloatObject *)left_o)->ob_fval - ((PyFloatObject *)right_o)->ob_fval; + double dres = ((PyFloatObject *)left_o)->ob_fval - ((PyFloatObject *)right_o)->ob_fval; + ((PyFloatObject *)right_o)->ob_fval = dres; res = right; l = left; r = PyStackRef_NULL; From 8559fb8b057364cdb20790380ac871e5100c9e12 Mon Sep 17 00:00:00 2001 From: Pieter Eendebak Date: Sun, 22 Mar 2026 21:47:52 +0100 Subject: [PATCH 03/11] Fix i686 Windows JIT: use x87 FPU instead of SSE for stencils Add -mno-sse to clang args for i686-pc-windows-msvc target. The COFF32 stencil converter cannot handle _xmm register references that clang emits for inline float arithmetic. Using x87 FPU instructions avoids this. SSE is optional on 32-bit x86; x87 is the baseline. Co-Authored-By: Claude Opus 4.6 (1M context) --- Tools/jit/_targets.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Tools/jit/_targets.py b/Tools/jit/_targets.py index 39be353ec30858..c488adbd7978d1 100644 --- a/Tools/jit/_targets.py +++ b/Tools/jit/_targets.py @@ -594,7 +594,9 @@ def get_target(host: str) -> _COFF32 | _COFF64 | _ELF | _MachO: host = "i686-pc-windows-msvc" condition = "defined(_M_IX86)" # -Wno-ignored-attributes: __attribute__((preserve_none)) is not supported here. - args = ["-DPy_NO_ENABLE_SHARED", "-Wno-ignored-attributes"] + # -mno-sse: Use x87 FPU instead of SSE for float math. The COFF32 + # stencil converter cannot handle _xmm register references. + args = ["-DPy_NO_ENABLE_SHARED", "-Wno-ignored-attributes", "-mno-sse"] optimizer = _optimizers.OptimizerX86 target = _COFF32(host, condition, args=args, optimizer=optimizer) elif re.fullmatch(r"x86_64-apple-darwin.*", host): From 7bfdedb48413725c3109bf30b3802fa8978c1313 Mon Sep 17 00:00:00 2001 From: Pieter Eendebak Date: Tue, 24 Mar 2026 10:51:49 +0100 Subject: [PATCH 04/11] Update Python/bytecodes.c Co-authored-by: Ken Jin --- Python/bytecodes.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Python/bytecodes.c b/Python/bytecodes.c index a6049e069a140a..2d3e68448e3c23 100644 --- a/Python/bytecodes.c +++ b/Python/bytecodes.c @@ -801,6 +801,8 @@ dummy_func( STAT_INC(BINARY_OP, hit); double dres = ((PyFloatObject *)left_o)->ob_fval + ((PyFloatObject *)right_o)->ob_fval; ((PyFloatObject *)left_o)->ob_fval = dres; + // Transfer ownership of left to res. + // Original left is now dead. res = left; l = PyStackRef_NULL; r = right; From c8f860f521a0e9392a97c0d03cacb7c5135e8857 Mon Sep 17 00:00:00 2001 From: Pieter Eendebak Date: Tue, 24 Mar 2026 10:53:53 +0100 Subject: [PATCH 05/11] Use sym_new_null for consumed operand slots in inplace float ops The inplace ops set l or r to PyStackRef_NULL at runtime, so the optimizer should model this as sym_new_null(ctx) rather than PyJitRef_Borrow(). Both produce _POP_TOP_NOP but sym_new_null correctly matches the runtime semantics. Co-Authored-By: Claude Opus 4.6 (1M context) --- Include/internal/pycore_uop_metadata.h | 28 +++++++++++++------------- Python/bytecodes.c | 28 +++++++++++--------------- Python/executor_cases.c.h | 24 +++++++++++----------- Python/optimizer_bytecodes.c | 12 +++++------ Python/optimizer_cases.c.h | 16 +++++++-------- 5 files changed, 52 insertions(+), 56 deletions(-) diff --git a/Include/internal/pycore_uop_metadata.h b/Include/internal/pycore_uop_metadata.h index 1f9759aa032a04..1ac4dc88b9a836 100644 --- a/Include/internal/pycore_uop_metadata.h +++ b/Include/internal/pycore_uop_metadata.h @@ -117,8 +117,8 @@ const uint32_t _PyUop_Flags[MAX_UOP_ID+1] = { [_BINARY_OP_SUBTRACT_FLOAT_INPLACE] = 0, [_BINARY_OP_MULTIPLY_FLOAT_INPLACE] = 0, [_BINARY_OP_ADD_FLOAT_INPLACE_RIGHT] = 0, - [_BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT] = 0, [_BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT] = 0, + [_BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT] = 0, [_BINARY_OP_ADD_UNICODE] = HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_PURE_FLAG, [_BINARY_OP_INPLACE_ADD_UNICODE] = HAS_LOCAL_FLAG | HAS_EXIT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, [_GUARD_BINARY_OP_EXTEND] = HAS_EXIT_FLAG | HAS_ESCAPES_FLAG, @@ -1156,21 +1156,21 @@ const _PyUopCachingInfo _PyUop_Caching[MAX_UOP_ID+1] = { { -1, -1, -1 }, }, }, - [_BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT] = { + [_BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT] = { .best = { 0, 1, 2, 2 }, .entries = { - { 3, 0, _BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT_r03 }, - { 3, 1, _BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT_r13 }, - { 3, 2, _BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT_r23 }, + { 3, 0, _BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT_r03 }, + { 3, 1, _BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT_r13 }, + { 3, 2, _BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT_r23 }, { -1, -1, -1 }, }, }, - [_BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT] = { + [_BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT] = { .best = { 0, 1, 2, 2 }, .entries = { - { 3, 0, _BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT_r03 }, - { 3, 1, _BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT_r13 }, - { 3, 2, _BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT_r23 }, + { 3, 0, _BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT_r03 }, + { 3, 1, _BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT_r13 }, + { 3, 2, _BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT_r23 }, { -1, -1, -1 }, }, }, @@ -3899,12 +3899,12 @@ const uint16_t _PyUop_Uncached[MAX_UOP_REGS_ID+1] = { [_BINARY_OP_ADD_FLOAT_INPLACE_RIGHT_r03] = _BINARY_OP_ADD_FLOAT_INPLACE_RIGHT, [_BINARY_OP_ADD_FLOAT_INPLACE_RIGHT_r13] = _BINARY_OP_ADD_FLOAT_INPLACE_RIGHT, [_BINARY_OP_ADD_FLOAT_INPLACE_RIGHT_r23] = _BINARY_OP_ADD_FLOAT_INPLACE_RIGHT, - [_BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT_r03] = _BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT, - [_BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT_r13] = _BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT, - [_BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT_r23] = _BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT, [_BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT_r03] = _BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT, [_BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT_r13] = _BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT, [_BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT_r23] = _BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT, + [_BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT_r03] = _BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT, + [_BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT_r13] = _BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT, + [_BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT_r23] = _BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT, [_BINARY_OP_ADD_UNICODE_r03] = _BINARY_OP_ADD_UNICODE, [_BINARY_OP_ADD_UNICODE_r13] = _BINARY_OP_ADD_UNICODE, [_BINARY_OP_ADD_UNICODE_r23] = _BINARY_OP_ADD_UNICODE, @@ -5907,10 +5907,10 @@ int _PyUop_num_popped(int opcode, int oparg) return 2; case _BINARY_OP_ADD_FLOAT_INPLACE_RIGHT: return 2; - case _BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT: - return 2; case _BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT: return 2; + case _BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT: + return 2; case _BINARY_OP_ADD_UNICODE: return 2; case _BINARY_OP_INPLACE_ADD_UNICODE: diff --git a/Python/bytecodes.c b/Python/bytecodes.c index 2d3e68448e3c23..5bf90586f41b5a 100644 --- a/Python/bytecodes.c +++ b/Python/bytecodes.c @@ -785,13 +785,12 @@ dummy_func( macro(BINARY_OP_SUBTRACT_FLOAT) = _GUARD_TOS_FLOAT + _GUARD_NOS_FLOAT + unused/5 + _BINARY_OP_SUBTRACT_FLOAT + _POP_TOP_FLOAT + _POP_TOP_FLOAT; - // Inplace float ops: mutate the uniquely-referenced left operand + // Inplace float ops: mutate the uniquely-referenced operand // instead of allocating a new float. Tier 2 only. - // The optimizer sets l to null so the following _POP_TOP_FLOAT - // becomes _POP_TOP_NOP. // Note: read into a local double and write back to avoid compound // assignment (+=) on ob_fval, which generates problematic JIT // stencils on i686-pc-windows-msvc. + tier2 op(_BINARY_OP_ADD_FLOAT_INPLACE, (left, right -- res, l, r)) { PyObject *left_o = PyStackRef_AsPyObjectBorrow(left); PyObject *right_o = PyStackRef_AsPyObjectBorrow(right); @@ -801,12 +800,10 @@ dummy_func( STAT_INC(BINARY_OP, hit); double dres = ((PyFloatObject *)left_o)->ob_fval + ((PyFloatObject *)right_o)->ob_fval; ((PyFloatObject *)left_o)->ob_fval = dres; - // Transfer ownership of left to res. - // Original left is now dead. res = left; + INPUTS_DEAD(); l = PyStackRef_NULL; r = right; - INPUTS_DEAD(); } tier2 op(_BINARY_OP_SUBTRACT_FLOAT_INPLACE, (left, right -- res, l, r)) { @@ -819,9 +816,9 @@ dummy_func( double dres = ((PyFloatObject *)left_o)->ob_fval - ((PyFloatObject *)right_o)->ob_fval; ((PyFloatObject *)left_o)->ob_fval = dres; res = left; + INPUTS_DEAD(); l = PyStackRef_NULL; r = right; - INPUTS_DEAD(); } tier2 op(_BINARY_OP_MULTIPLY_FLOAT_INPLACE, (left, right -- res, l, r)) { @@ -834,12 +831,11 @@ dummy_func( double dres = ((PyFloatObject *)left_o)->ob_fval * ((PyFloatObject *)right_o)->ob_fval; ((PyFloatObject *)left_o)->ob_fval = dres; res = left; + INPUTS_DEAD(); l = PyStackRef_NULL; r = right; - INPUTS_DEAD(); } - // Inplace RIGHT variants: mutate the uniquely-referenced right operand. tier2 op(_BINARY_OP_ADD_FLOAT_INPLACE_RIGHT, (left, right -- res, l, r)) { PyObject *left_o = PyStackRef_AsPyObjectBorrow(left); PyObject *right_o = PyStackRef_AsPyObjectBorrow(right); @@ -850,39 +846,39 @@ dummy_func( double dres = ((PyFloatObject *)left_o)->ob_fval + ((PyFloatObject *)right_o)->ob_fval; ((PyFloatObject *)right_o)->ob_fval = dres; res = right; + INPUTS_DEAD(); l = left; r = PyStackRef_NULL; - INPUTS_DEAD(); } - tier2 op(_BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT, (left, right -- res, l, r)) { + tier2 op(_BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT, (left, right -- res, l, r)) { PyObject *left_o = PyStackRef_AsPyObjectBorrow(left); PyObject *right_o = PyStackRef_AsPyObjectBorrow(right); assert(PyFloat_CheckExact(left_o)); assert(PyFloat_CheckExact(right_o)); assert(_PyObject_IsUniquelyReferenced(right_o)); STAT_INC(BINARY_OP, hit); - double dres = ((PyFloatObject *)left_o)->ob_fval * ((PyFloatObject *)right_o)->ob_fval; + double dres = ((PyFloatObject *)left_o)->ob_fval - ((PyFloatObject *)right_o)->ob_fval; ((PyFloatObject *)right_o)->ob_fval = dres; res = right; + INPUTS_DEAD(); l = left; r = PyStackRef_NULL; - INPUTS_DEAD(); } - tier2 op(_BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT, (left, right -- res, l, r)) { + tier2 op(_BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT, (left, right -- res, l, r)) { PyObject *left_o = PyStackRef_AsPyObjectBorrow(left); PyObject *right_o = PyStackRef_AsPyObjectBorrow(right); assert(PyFloat_CheckExact(left_o)); assert(PyFloat_CheckExact(right_o)); assert(_PyObject_IsUniquelyReferenced(right_o)); STAT_INC(BINARY_OP, hit); - double dres = ((PyFloatObject *)left_o)->ob_fval - ((PyFloatObject *)right_o)->ob_fval; + double dres = ((PyFloatObject *)left_o)->ob_fval * ((PyFloatObject *)right_o)->ob_fval; ((PyFloatObject *)right_o)->ob_fval = dres; res = right; + INPUTS_DEAD(); l = left; r = PyStackRef_NULL; - INPUTS_DEAD(); } pure op(_BINARY_OP_ADD_UNICODE, (left, right -- res, l, r)) { diff --git a/Python/executor_cases.c.h b/Python/executor_cases.c.h index 613b1bcfd4e5ae..82efbe0ffa0313 100644 --- a/Python/executor_cases.c.h +++ b/Python/executor_cases.c.h @@ -5402,7 +5402,7 @@ break; } - case _BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT_r03: { + case _BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT_r03: { CHECK_CURRENT_CACHED_VALUES(0); assert(WITHIN_STACK_BOUNDS_IGNORING_CACHE()); _PyStackRef right; @@ -5418,7 +5418,7 @@ assert(PyFloat_CheckExact(right_o)); assert(_PyObject_IsUniquelyReferenced(right_o)); STAT_INC(BINARY_OP, hit); - double dres = ((PyFloatObject *)left_o)->ob_fval * ((PyFloatObject *)right_o)->ob_fval; + double dres = ((PyFloatObject *)left_o)->ob_fval - ((PyFloatObject *)right_o)->ob_fval; ((PyFloatObject *)right_o)->ob_fval = dres; res = right; l = left; @@ -5433,7 +5433,7 @@ break; } - case _BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT_r13: { + case _BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT_r13: { CHECK_CURRENT_CACHED_VALUES(1); assert(WITHIN_STACK_BOUNDS_IGNORING_CACHE()); _PyStackRef right; @@ -5450,7 +5450,7 @@ assert(PyFloat_CheckExact(right_o)); assert(_PyObject_IsUniquelyReferenced(right_o)); STAT_INC(BINARY_OP, hit); - double dres = ((PyFloatObject *)left_o)->ob_fval * ((PyFloatObject *)right_o)->ob_fval; + double dres = ((PyFloatObject *)left_o)->ob_fval - ((PyFloatObject *)right_o)->ob_fval; ((PyFloatObject *)right_o)->ob_fval = dres; res = right; l = left; @@ -5465,7 +5465,7 @@ break; } - case _BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT_r23: { + case _BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT_r23: { CHECK_CURRENT_CACHED_VALUES(2); assert(WITHIN_STACK_BOUNDS_IGNORING_CACHE()); _PyStackRef right; @@ -5483,7 +5483,7 @@ assert(PyFloat_CheckExact(right_o)); assert(_PyObject_IsUniquelyReferenced(right_o)); STAT_INC(BINARY_OP, hit); - double dres = ((PyFloatObject *)left_o)->ob_fval * ((PyFloatObject *)right_o)->ob_fval; + double dres = ((PyFloatObject *)left_o)->ob_fval - ((PyFloatObject *)right_o)->ob_fval; ((PyFloatObject *)right_o)->ob_fval = dres; res = right; l = left; @@ -5496,7 +5496,7 @@ break; } - case _BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT_r03: { + case _BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT_r03: { CHECK_CURRENT_CACHED_VALUES(0); assert(WITHIN_STACK_BOUNDS_IGNORING_CACHE()); _PyStackRef right; @@ -5512,7 +5512,7 @@ assert(PyFloat_CheckExact(right_o)); assert(_PyObject_IsUniquelyReferenced(right_o)); STAT_INC(BINARY_OP, hit); - double dres = ((PyFloatObject *)left_o)->ob_fval - ((PyFloatObject *)right_o)->ob_fval; + double dres = ((PyFloatObject *)left_o)->ob_fval * ((PyFloatObject *)right_o)->ob_fval; ((PyFloatObject *)right_o)->ob_fval = dres; res = right; l = left; @@ -5527,7 +5527,7 @@ break; } - case _BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT_r13: { + case _BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT_r13: { CHECK_CURRENT_CACHED_VALUES(1); assert(WITHIN_STACK_BOUNDS_IGNORING_CACHE()); _PyStackRef right; @@ -5544,7 +5544,7 @@ assert(PyFloat_CheckExact(right_o)); assert(_PyObject_IsUniquelyReferenced(right_o)); STAT_INC(BINARY_OP, hit); - double dres = ((PyFloatObject *)left_o)->ob_fval - ((PyFloatObject *)right_o)->ob_fval; + double dres = ((PyFloatObject *)left_o)->ob_fval * ((PyFloatObject *)right_o)->ob_fval; ((PyFloatObject *)right_o)->ob_fval = dres; res = right; l = left; @@ -5559,7 +5559,7 @@ break; } - case _BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT_r23: { + case _BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT_r23: { CHECK_CURRENT_CACHED_VALUES(2); assert(WITHIN_STACK_BOUNDS_IGNORING_CACHE()); _PyStackRef right; @@ -5577,7 +5577,7 @@ assert(PyFloat_CheckExact(right_o)); assert(_PyObject_IsUniquelyReferenced(right_o)); STAT_INC(BINARY_OP, hit); - double dres = ((PyFloatObject *)left_o)->ob_fval - ((PyFloatObject *)right_o)->ob_fval; + double dres = ((PyFloatObject *)left_o)->ob_fval * ((PyFloatObject *)right_o)->ob_fval; ((PyFloatObject *)right_o)->ob_fval = dres; res = right; l = left; diff --git a/Python/optimizer_bytecodes.c b/Python/optimizer_bytecodes.c index 1e1607c0179a20..61ec051191b07c 100644 --- a/Python/optimizer_bytecodes.c +++ b/Python/optimizer_bytecodes.c @@ -327,13 +327,13 @@ dummy_func(void) { op(_BINARY_OP_ADD_FLOAT, (left, right -- res, l, r)) { if (PyJitRef_IsUnique(left)) { ADD_OP(_BINARY_OP_ADD_FLOAT_INPLACE, 0, 0); - l = PyJitRef_Borrow(left); + l = sym_new_null(ctx); r = right; } else if (PyJitRef_IsUnique(right)) { ADD_OP(_BINARY_OP_ADD_FLOAT_INPLACE_RIGHT, 0, 0); l = left; - r = PyJitRef_Borrow(right); + r = sym_new_null(ctx); } else { l = left; @@ -345,13 +345,13 @@ dummy_func(void) { op(_BINARY_OP_SUBTRACT_FLOAT, (left, right -- res, l, r)) { if (PyJitRef_IsUnique(left)) { ADD_OP(_BINARY_OP_SUBTRACT_FLOAT_INPLACE, 0, 0); - l = PyJitRef_Borrow(left); + l = sym_new_null(ctx); r = right; } else if (PyJitRef_IsUnique(right)) { ADD_OP(_BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT, 0, 0); l = left; - r = PyJitRef_Borrow(right); + r = sym_new_null(ctx); } else { l = left; @@ -363,13 +363,13 @@ dummy_func(void) { op(_BINARY_OP_MULTIPLY_FLOAT, (left, right -- res, l, r)) { if (PyJitRef_IsUnique(left)) { ADD_OP(_BINARY_OP_MULTIPLY_FLOAT_INPLACE, 0, 0); - l = PyJitRef_Borrow(left); + l = sym_new_null(ctx); r = right; } else if (PyJitRef_IsUnique(right)) { ADD_OP(_BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT, 0, 0); l = left; - r = PyJitRef_Borrow(right); + r = sym_new_null(ctx); } else { l = left; diff --git a/Python/optimizer_cases.c.h b/Python/optimizer_cases.c.h index 19123761febe2b..da091fd0152bca 100644 --- a/Python/optimizer_cases.c.h +++ b/Python/optimizer_cases.c.h @@ -810,13 +810,13 @@ left = stack_pointer[-2]; if (PyJitRef_IsUnique(left)) { ADD_OP(_BINARY_OP_MULTIPLY_FLOAT_INPLACE, 0, 0); - l = PyJitRef_Borrow(left); + l = sym_new_null(ctx); r = right; } else if (PyJitRef_IsUnique(right)) { ADD_OP(_BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT, 0, 0); l = left; - r = PyJitRef_Borrow(right); + r = sym_new_null(ctx); } else { l = left; @@ -842,13 +842,13 @@ left = stack_pointer[-2]; if (PyJitRef_IsUnique(left)) { ADD_OP(_BINARY_OP_ADD_FLOAT_INPLACE, 0, 0); - l = PyJitRef_Borrow(left); + l = sym_new_null(ctx); r = right; } else if (PyJitRef_IsUnique(right)) { ADD_OP(_BINARY_OP_ADD_FLOAT_INPLACE_RIGHT, 0, 0); l = left; - r = PyJitRef_Borrow(right); + r = sym_new_null(ctx); } else { l = left; @@ -874,13 +874,13 @@ left = stack_pointer[-2]; if (PyJitRef_IsUnique(left)) { ADD_OP(_BINARY_OP_SUBTRACT_FLOAT_INPLACE, 0, 0); - l = PyJitRef_Borrow(left); + l = sym_new_null(ctx); r = right; } else if (PyJitRef_IsUnique(right)) { ADD_OP(_BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT, 0, 0); l = left; - r = PyJitRef_Borrow(right); + r = sym_new_null(ctx); } else { l = left; @@ -960,7 +960,7 @@ break; } - case _BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT: { + case _BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT: { JitOptRef res; JitOptRef l; JitOptRef r; @@ -976,7 +976,7 @@ break; } - case _BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT: { + case _BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT: { JitOptRef res; JitOptRef l; JitOptRef r; From fbedeb31d526f2ed7cca50e4cfbaf14a4557dcfb Mon Sep 17 00:00:00 2001 From: Pieter Eendebak Date: Tue, 24 Mar 2026 11:51:11 +0100 Subject: [PATCH 06/11] Revert unrelated bytecodes.c comment/whitespace changes Co-Authored-By: Claude Opus 4.6 (1M context) --- Python/bytecodes.c | 28 ++++++++++++++++------------ Python/executor_cases.c.h | 24 ++++++++++++------------ 2 files changed, 28 insertions(+), 24 deletions(-) diff --git a/Python/bytecodes.c b/Python/bytecodes.c index 5bf90586f41b5a..2d3e68448e3c23 100644 --- a/Python/bytecodes.c +++ b/Python/bytecodes.c @@ -785,12 +785,13 @@ dummy_func( macro(BINARY_OP_SUBTRACT_FLOAT) = _GUARD_TOS_FLOAT + _GUARD_NOS_FLOAT + unused/5 + _BINARY_OP_SUBTRACT_FLOAT + _POP_TOP_FLOAT + _POP_TOP_FLOAT; - // Inplace float ops: mutate the uniquely-referenced operand + // Inplace float ops: mutate the uniquely-referenced left operand // instead of allocating a new float. Tier 2 only. + // The optimizer sets l to null so the following _POP_TOP_FLOAT + // becomes _POP_TOP_NOP. // Note: read into a local double and write back to avoid compound // assignment (+=) on ob_fval, which generates problematic JIT // stencils on i686-pc-windows-msvc. - tier2 op(_BINARY_OP_ADD_FLOAT_INPLACE, (left, right -- res, l, r)) { PyObject *left_o = PyStackRef_AsPyObjectBorrow(left); PyObject *right_o = PyStackRef_AsPyObjectBorrow(right); @@ -800,10 +801,12 @@ dummy_func( STAT_INC(BINARY_OP, hit); double dres = ((PyFloatObject *)left_o)->ob_fval + ((PyFloatObject *)right_o)->ob_fval; ((PyFloatObject *)left_o)->ob_fval = dres; + // Transfer ownership of left to res. + // Original left is now dead. res = left; - INPUTS_DEAD(); l = PyStackRef_NULL; r = right; + INPUTS_DEAD(); } tier2 op(_BINARY_OP_SUBTRACT_FLOAT_INPLACE, (left, right -- res, l, r)) { @@ -816,9 +819,9 @@ dummy_func( double dres = ((PyFloatObject *)left_o)->ob_fval - ((PyFloatObject *)right_o)->ob_fval; ((PyFloatObject *)left_o)->ob_fval = dres; res = left; - INPUTS_DEAD(); l = PyStackRef_NULL; r = right; + INPUTS_DEAD(); } tier2 op(_BINARY_OP_MULTIPLY_FLOAT_INPLACE, (left, right -- res, l, r)) { @@ -831,11 +834,12 @@ dummy_func( double dres = ((PyFloatObject *)left_o)->ob_fval * ((PyFloatObject *)right_o)->ob_fval; ((PyFloatObject *)left_o)->ob_fval = dres; res = left; - INPUTS_DEAD(); l = PyStackRef_NULL; r = right; + INPUTS_DEAD(); } + // Inplace RIGHT variants: mutate the uniquely-referenced right operand. tier2 op(_BINARY_OP_ADD_FLOAT_INPLACE_RIGHT, (left, right -- res, l, r)) { PyObject *left_o = PyStackRef_AsPyObjectBorrow(left); PyObject *right_o = PyStackRef_AsPyObjectBorrow(right); @@ -846,39 +850,39 @@ dummy_func( double dres = ((PyFloatObject *)left_o)->ob_fval + ((PyFloatObject *)right_o)->ob_fval; ((PyFloatObject *)right_o)->ob_fval = dres; res = right; - INPUTS_DEAD(); l = left; r = PyStackRef_NULL; + INPUTS_DEAD(); } - tier2 op(_BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT, (left, right -- res, l, r)) { + tier2 op(_BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT, (left, right -- res, l, r)) { PyObject *left_o = PyStackRef_AsPyObjectBorrow(left); PyObject *right_o = PyStackRef_AsPyObjectBorrow(right); assert(PyFloat_CheckExact(left_o)); assert(PyFloat_CheckExact(right_o)); assert(_PyObject_IsUniquelyReferenced(right_o)); STAT_INC(BINARY_OP, hit); - double dres = ((PyFloatObject *)left_o)->ob_fval - ((PyFloatObject *)right_o)->ob_fval; + double dres = ((PyFloatObject *)left_o)->ob_fval * ((PyFloatObject *)right_o)->ob_fval; ((PyFloatObject *)right_o)->ob_fval = dres; res = right; - INPUTS_DEAD(); l = left; r = PyStackRef_NULL; + INPUTS_DEAD(); } - tier2 op(_BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT, (left, right -- res, l, r)) { + tier2 op(_BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT, (left, right -- res, l, r)) { PyObject *left_o = PyStackRef_AsPyObjectBorrow(left); PyObject *right_o = PyStackRef_AsPyObjectBorrow(right); assert(PyFloat_CheckExact(left_o)); assert(PyFloat_CheckExact(right_o)); assert(_PyObject_IsUniquelyReferenced(right_o)); STAT_INC(BINARY_OP, hit); - double dres = ((PyFloatObject *)left_o)->ob_fval * ((PyFloatObject *)right_o)->ob_fval; + double dres = ((PyFloatObject *)left_o)->ob_fval - ((PyFloatObject *)right_o)->ob_fval; ((PyFloatObject *)right_o)->ob_fval = dres; res = right; - INPUTS_DEAD(); l = left; r = PyStackRef_NULL; + INPUTS_DEAD(); } pure op(_BINARY_OP_ADD_UNICODE, (left, right -- res, l, r)) { diff --git a/Python/executor_cases.c.h b/Python/executor_cases.c.h index 82efbe0ffa0313..613b1bcfd4e5ae 100644 --- a/Python/executor_cases.c.h +++ b/Python/executor_cases.c.h @@ -5402,7 +5402,7 @@ break; } - case _BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT_r03: { + case _BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT_r03: { CHECK_CURRENT_CACHED_VALUES(0); assert(WITHIN_STACK_BOUNDS_IGNORING_CACHE()); _PyStackRef right; @@ -5418,7 +5418,7 @@ assert(PyFloat_CheckExact(right_o)); assert(_PyObject_IsUniquelyReferenced(right_o)); STAT_INC(BINARY_OP, hit); - double dres = ((PyFloatObject *)left_o)->ob_fval - ((PyFloatObject *)right_o)->ob_fval; + double dres = ((PyFloatObject *)left_o)->ob_fval * ((PyFloatObject *)right_o)->ob_fval; ((PyFloatObject *)right_o)->ob_fval = dres; res = right; l = left; @@ -5433,7 +5433,7 @@ break; } - case _BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT_r13: { + case _BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT_r13: { CHECK_CURRENT_CACHED_VALUES(1); assert(WITHIN_STACK_BOUNDS_IGNORING_CACHE()); _PyStackRef right; @@ -5450,7 +5450,7 @@ assert(PyFloat_CheckExact(right_o)); assert(_PyObject_IsUniquelyReferenced(right_o)); STAT_INC(BINARY_OP, hit); - double dres = ((PyFloatObject *)left_o)->ob_fval - ((PyFloatObject *)right_o)->ob_fval; + double dres = ((PyFloatObject *)left_o)->ob_fval * ((PyFloatObject *)right_o)->ob_fval; ((PyFloatObject *)right_o)->ob_fval = dres; res = right; l = left; @@ -5465,7 +5465,7 @@ break; } - case _BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT_r23: { + case _BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT_r23: { CHECK_CURRENT_CACHED_VALUES(2); assert(WITHIN_STACK_BOUNDS_IGNORING_CACHE()); _PyStackRef right; @@ -5483,7 +5483,7 @@ assert(PyFloat_CheckExact(right_o)); assert(_PyObject_IsUniquelyReferenced(right_o)); STAT_INC(BINARY_OP, hit); - double dres = ((PyFloatObject *)left_o)->ob_fval - ((PyFloatObject *)right_o)->ob_fval; + double dres = ((PyFloatObject *)left_o)->ob_fval * ((PyFloatObject *)right_o)->ob_fval; ((PyFloatObject *)right_o)->ob_fval = dres; res = right; l = left; @@ -5496,7 +5496,7 @@ break; } - case _BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT_r03: { + case _BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT_r03: { CHECK_CURRENT_CACHED_VALUES(0); assert(WITHIN_STACK_BOUNDS_IGNORING_CACHE()); _PyStackRef right; @@ -5512,7 +5512,7 @@ assert(PyFloat_CheckExact(right_o)); assert(_PyObject_IsUniquelyReferenced(right_o)); STAT_INC(BINARY_OP, hit); - double dres = ((PyFloatObject *)left_o)->ob_fval * ((PyFloatObject *)right_o)->ob_fval; + double dres = ((PyFloatObject *)left_o)->ob_fval - ((PyFloatObject *)right_o)->ob_fval; ((PyFloatObject *)right_o)->ob_fval = dres; res = right; l = left; @@ -5527,7 +5527,7 @@ break; } - case _BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT_r13: { + case _BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT_r13: { CHECK_CURRENT_CACHED_VALUES(1); assert(WITHIN_STACK_BOUNDS_IGNORING_CACHE()); _PyStackRef right; @@ -5544,7 +5544,7 @@ assert(PyFloat_CheckExact(right_o)); assert(_PyObject_IsUniquelyReferenced(right_o)); STAT_INC(BINARY_OP, hit); - double dres = ((PyFloatObject *)left_o)->ob_fval * ((PyFloatObject *)right_o)->ob_fval; + double dres = ((PyFloatObject *)left_o)->ob_fval - ((PyFloatObject *)right_o)->ob_fval; ((PyFloatObject *)right_o)->ob_fval = dres; res = right; l = left; @@ -5559,7 +5559,7 @@ break; } - case _BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT_r23: { + case _BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT_r23: { CHECK_CURRENT_CACHED_VALUES(2); assert(WITHIN_STACK_BOUNDS_IGNORING_CACHE()); _PyStackRef right; @@ -5577,7 +5577,7 @@ assert(PyFloat_CheckExact(right_o)); assert(_PyObject_IsUniquelyReferenced(right_o)); STAT_INC(BINARY_OP, hit); - double dres = ((PyFloatObject *)left_o)->ob_fval * ((PyFloatObject *)right_o)->ob_fval; + double dres = ((PyFloatObject *)left_o)->ob_fval - ((PyFloatObject *)right_o)->ob_fval; ((PyFloatObject *)right_o)->ob_fval = dres; res = right; l = left; From 78c11e146a06527957a690a97c6b29a6ec9c882d Mon Sep 17 00:00:00 2001 From: Pieter Eendebak Date: Tue, 24 Mar 2026 11:54:08 +0100 Subject: [PATCH 07/11] regenerate --- Include/internal/pycore_uop_ids.h | 2448 ++++++++++++------------ Include/internal/pycore_uop_metadata.h | 28 +- Python/optimizer_cases.c.h | 4 +- 3 files changed, 1254 insertions(+), 1226 deletions(-) diff --git a/Include/internal/pycore_uop_ids.h b/Include/internal/pycore_uop_ids.h index 93f2e6bd62b6a0..a594e29d958ef1 100644 --- a/Include/internal/pycore_uop_ids.h +++ b/Include/internal/pycore_uop_ids.h @@ -13,23 +13,29 @@ extern "C" { #define _SET_IP 301 #define _BINARY_OP 302 #define _BINARY_OP_ADD_FLOAT 303 -#define _BINARY_OP_ADD_INT 304 -#define _BINARY_OP_ADD_UNICODE 305 -#define _BINARY_OP_EXTEND 306 -#define _BINARY_OP_INPLACE_ADD_UNICODE 307 -#define _BINARY_OP_MULTIPLY_FLOAT 308 -#define _BINARY_OP_MULTIPLY_INT 309 -#define _BINARY_OP_SUBSCR_CHECK_FUNC 310 -#define _BINARY_OP_SUBSCR_DICT 311 -#define _BINARY_OP_SUBSCR_INIT_CALL 312 -#define _BINARY_OP_SUBSCR_LIST_INT 313 -#define _BINARY_OP_SUBSCR_LIST_SLICE 314 -#define _BINARY_OP_SUBSCR_STR_INT 315 -#define _BINARY_OP_SUBSCR_TUPLE_INT 316 -#define _BINARY_OP_SUBSCR_USTR_INT 317 -#define _BINARY_OP_SUBTRACT_FLOAT 318 -#define _BINARY_OP_SUBTRACT_INT 319 -#define _BINARY_SLICE 320 +#define _BINARY_OP_ADD_FLOAT_INPLACE 304 +#define _BINARY_OP_ADD_FLOAT_INPLACE_RIGHT 305 +#define _BINARY_OP_ADD_INT 306 +#define _BINARY_OP_ADD_UNICODE 307 +#define _BINARY_OP_EXTEND 308 +#define _BINARY_OP_INPLACE_ADD_UNICODE 309 +#define _BINARY_OP_MULTIPLY_FLOAT 310 +#define _BINARY_OP_MULTIPLY_FLOAT_INPLACE 311 +#define _BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT 312 +#define _BINARY_OP_MULTIPLY_INT 313 +#define _BINARY_OP_SUBSCR_CHECK_FUNC 314 +#define _BINARY_OP_SUBSCR_DICT 315 +#define _BINARY_OP_SUBSCR_INIT_CALL 316 +#define _BINARY_OP_SUBSCR_LIST_INT 317 +#define _BINARY_OP_SUBSCR_LIST_SLICE 318 +#define _BINARY_OP_SUBSCR_STR_INT 319 +#define _BINARY_OP_SUBSCR_TUPLE_INT 320 +#define _BINARY_OP_SUBSCR_USTR_INT 321 +#define _BINARY_OP_SUBTRACT_FLOAT 322 +#define _BINARY_OP_SUBTRACT_FLOAT_INPLACE 323 +#define _BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT 324 +#define _BINARY_OP_SUBTRACT_INT 325 +#define _BINARY_SLICE 326 #define _BUILD_INTERPOLATION BUILD_INTERPOLATION #define _BUILD_LIST BUILD_LIST #define _BUILD_MAP BUILD_MAP @@ -38,174 +44,174 @@ extern "C" { #define _BUILD_STRING BUILD_STRING #define _BUILD_TEMPLATE BUILD_TEMPLATE #define _BUILD_TUPLE BUILD_TUPLE -#define _CALL_BUILTIN_CLASS 321 -#define _CALL_BUILTIN_FAST 322 -#define _CALL_BUILTIN_FAST_WITH_KEYWORDS 323 -#define _CALL_BUILTIN_O 324 -#define _CALL_FUNCTION_EX_NON_PY_GENERAL 325 -#define _CALL_INTRINSIC_1 326 +#define _CALL_BUILTIN_CLASS 327 +#define _CALL_BUILTIN_FAST 328 +#define _CALL_BUILTIN_FAST_WITH_KEYWORDS 329 +#define _CALL_BUILTIN_O 330 +#define _CALL_FUNCTION_EX_NON_PY_GENERAL 331 +#define _CALL_INTRINSIC_1 332 #define _CALL_INTRINSIC_2 CALL_INTRINSIC_2 -#define _CALL_ISINSTANCE 327 -#define _CALL_KW_NON_PY 328 -#define _CALL_LEN 329 -#define _CALL_LIST_APPEND 330 -#define _CALL_METHOD_DESCRIPTOR_FAST 331 -#define _CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS 332 -#define _CALL_METHOD_DESCRIPTOR_NOARGS 333 -#define _CALL_METHOD_DESCRIPTOR_O 334 -#define _CALL_NON_PY_GENERAL 335 -#define _CALL_STR_1 336 -#define _CALL_TUPLE_1 337 -#define _CALL_TYPE_1 338 -#define _CHECK_AND_ALLOCATE_OBJECT 339 -#define _CHECK_ATTR_CLASS 340 -#define _CHECK_ATTR_METHOD_LAZY_DICT 341 -#define _CHECK_CALL_BOUND_METHOD_EXACT_ARGS 342 +#define _CALL_ISINSTANCE 333 +#define _CALL_KW_NON_PY 334 +#define _CALL_LEN 335 +#define _CALL_LIST_APPEND 336 +#define _CALL_METHOD_DESCRIPTOR_FAST 337 +#define _CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS 338 +#define _CALL_METHOD_DESCRIPTOR_NOARGS 339 +#define _CALL_METHOD_DESCRIPTOR_O 340 +#define _CALL_NON_PY_GENERAL 341 +#define _CALL_STR_1 342 +#define _CALL_TUPLE_1 343 +#define _CALL_TYPE_1 344 +#define _CHECK_AND_ALLOCATE_OBJECT 345 +#define _CHECK_ATTR_CLASS 346 +#define _CHECK_ATTR_METHOD_LAZY_DICT 347 +#define _CHECK_CALL_BOUND_METHOD_EXACT_ARGS 348 #define _CHECK_EG_MATCH CHECK_EG_MATCH #define _CHECK_EXC_MATCH CHECK_EXC_MATCH -#define _CHECK_FUNCTION_EXACT_ARGS 343 -#define _CHECK_FUNCTION_VERSION 344 -#define _CHECK_FUNCTION_VERSION_INLINE 345 -#define _CHECK_FUNCTION_VERSION_KW 346 -#define _CHECK_IS_NOT_PY_CALLABLE 347 -#define _CHECK_IS_NOT_PY_CALLABLE_EX 348 -#define _CHECK_IS_NOT_PY_CALLABLE_KW 349 -#define _CHECK_IS_PY_CALLABLE_EX 350 -#define _CHECK_MANAGED_OBJECT_HAS_VALUES 351 -#define _CHECK_METHOD_VERSION 352 -#define _CHECK_METHOD_VERSION_KW 353 -#define _CHECK_PEP_523 354 -#define _CHECK_PERIODIC 355 -#define _CHECK_PERIODIC_AT_END 356 -#define _CHECK_PERIODIC_IF_NOT_YIELD_FROM 357 -#define _CHECK_RECURSION_REMAINING 358 -#define _CHECK_STACK_SPACE 359 -#define _CHECK_STACK_SPACE_OPERAND 360 -#define _CHECK_VALIDITY 361 -#define _COLD_DYNAMIC_EXIT 362 -#define _COLD_EXIT 363 -#define _COMPARE_OP 364 -#define _COMPARE_OP_FLOAT 365 -#define _COMPARE_OP_INT 366 -#define _COMPARE_OP_STR 367 -#define _CONTAINS_OP 368 -#define _CONTAINS_OP_DICT 369 -#define _CONTAINS_OP_SET 370 +#define _CHECK_FUNCTION_EXACT_ARGS 349 +#define _CHECK_FUNCTION_VERSION 350 +#define _CHECK_FUNCTION_VERSION_INLINE 351 +#define _CHECK_FUNCTION_VERSION_KW 352 +#define _CHECK_IS_NOT_PY_CALLABLE 353 +#define _CHECK_IS_NOT_PY_CALLABLE_EX 354 +#define _CHECK_IS_NOT_PY_CALLABLE_KW 355 +#define _CHECK_IS_PY_CALLABLE_EX 356 +#define _CHECK_MANAGED_OBJECT_HAS_VALUES 357 +#define _CHECK_METHOD_VERSION 358 +#define _CHECK_METHOD_VERSION_KW 359 +#define _CHECK_PEP_523 360 +#define _CHECK_PERIODIC 361 +#define _CHECK_PERIODIC_AT_END 362 +#define _CHECK_PERIODIC_IF_NOT_YIELD_FROM 363 +#define _CHECK_RECURSION_REMAINING 364 +#define _CHECK_STACK_SPACE 365 +#define _CHECK_STACK_SPACE_OPERAND 366 +#define _CHECK_VALIDITY 367 +#define _COLD_DYNAMIC_EXIT 368 +#define _COLD_EXIT 369 +#define _COMPARE_OP 370 +#define _COMPARE_OP_FLOAT 371 +#define _COMPARE_OP_INT 372 +#define _COMPARE_OP_STR 373 +#define _CONTAINS_OP 374 +#define _CONTAINS_OP_DICT 375 +#define _CONTAINS_OP_SET 376 #define _CONVERT_VALUE CONVERT_VALUE -#define _COPY 371 -#define _COPY_1 372 -#define _COPY_2 373 -#define _COPY_3 374 +#define _COPY 377 +#define _COPY_1 378 +#define _COPY_2 379 +#define _COPY_3 380 #define _COPY_FREE_VARS COPY_FREE_VARS -#define _CREATE_INIT_FRAME 375 +#define _CREATE_INIT_FRAME 381 #define _DELETE_ATTR DELETE_ATTR #define _DELETE_DEREF DELETE_DEREF #define _DELETE_FAST DELETE_FAST #define _DELETE_GLOBAL DELETE_GLOBAL #define _DELETE_NAME DELETE_NAME #define _DELETE_SUBSCR DELETE_SUBSCR -#define _DEOPT 376 -#define _DICT_MERGE 377 +#define _DEOPT 382 +#define _DICT_MERGE 383 #define _DICT_UPDATE DICT_UPDATE -#define _DO_CALL 378 -#define _DO_CALL_FUNCTION_EX 379 -#define _DO_CALL_KW 380 -#define _DYNAMIC_EXIT 381 +#define _DO_CALL 384 +#define _DO_CALL_FUNCTION_EX 385 +#define _DO_CALL_KW 386 +#define _DYNAMIC_EXIT 387 #define _END_FOR END_FOR #define _END_SEND END_SEND -#define _ERROR_POP_N 382 +#define _ERROR_POP_N 388 #define _EXIT_INIT_CHECK EXIT_INIT_CHECK -#define _EXPAND_METHOD 383 -#define _EXPAND_METHOD_KW 384 -#define _FATAL_ERROR 385 +#define _EXPAND_METHOD 389 +#define _EXPAND_METHOD_KW 390 +#define _FATAL_ERROR 391 #define _FORMAT_SIMPLE FORMAT_SIMPLE #define _FORMAT_WITH_SPEC FORMAT_WITH_SPEC -#define _FOR_ITER 386 -#define _FOR_ITER_GEN_FRAME 387 -#define _FOR_ITER_TIER_TWO 388 +#define _FOR_ITER 392 +#define _FOR_ITER_GEN_FRAME 393 +#define _FOR_ITER_TIER_TWO 394 #define _GET_AITER GET_AITER #define _GET_ANEXT GET_ANEXT #define _GET_AWAITABLE GET_AWAITABLE #define _GET_ITER GET_ITER #define _GET_LEN GET_LEN -#define _GUARD_BINARY_OP_EXTEND 389 -#define _GUARD_BINARY_OP_SUBSCR_TUPLE_INT_BOUNDS 390 -#define _GUARD_BIT_IS_SET_POP 391 -#define _GUARD_BIT_IS_SET_POP_4 392 -#define _GUARD_BIT_IS_SET_POP_5 393 -#define _GUARD_BIT_IS_SET_POP_6 394 -#define _GUARD_BIT_IS_SET_POP_7 395 -#define _GUARD_BIT_IS_UNSET_POP 396 -#define _GUARD_BIT_IS_UNSET_POP_4 397 -#define _GUARD_BIT_IS_UNSET_POP_5 398 -#define _GUARD_BIT_IS_UNSET_POP_6 399 -#define _GUARD_BIT_IS_UNSET_POP_7 400 -#define _GUARD_CALLABLE_ISINSTANCE 401 -#define _GUARD_CALLABLE_LEN 402 -#define _GUARD_CALLABLE_LIST_APPEND 403 -#define _GUARD_CALLABLE_STR_1 404 -#define _GUARD_CALLABLE_TUPLE_1 405 -#define _GUARD_CALLABLE_TYPE_1 406 -#define _GUARD_CODE_VERSION_RETURN_GENERATOR 407 -#define _GUARD_CODE_VERSION_RETURN_VALUE 408 -#define _GUARD_CODE_VERSION_YIELD_VALUE 409 -#define _GUARD_CODE_VERSION__PUSH_FRAME 410 -#define _GUARD_DORV_NO_DICT 411 -#define _GUARD_DORV_VALUES_INST_ATTR_FROM_DICT 412 -#define _GUARD_GLOBALS_VERSION 413 -#define _GUARD_IP_RETURN_GENERATOR 414 -#define _GUARD_IP_RETURN_VALUE 415 -#define _GUARD_IP_YIELD_VALUE 416 -#define _GUARD_IP__PUSH_FRAME 417 -#define _GUARD_IS_FALSE_POP 418 -#define _GUARD_IS_NONE_POP 419 -#define _GUARD_IS_NOT_NONE_POP 420 -#define _GUARD_IS_TRUE_POP 421 -#define _GUARD_KEYS_VERSION 422 -#define _GUARD_NOS_ANY_DICT 423 -#define _GUARD_NOS_COMPACT_ASCII 424 -#define _GUARD_NOS_DICT 425 -#define _GUARD_NOS_FLOAT 426 -#define _GUARD_NOS_INT 427 -#define _GUARD_NOS_LIST 428 -#define _GUARD_NOS_NOT_NULL 429 -#define _GUARD_NOS_NULL 430 -#define _GUARD_NOS_OVERFLOWED 431 -#define _GUARD_NOS_TUPLE 432 -#define _GUARD_NOS_UNICODE 433 -#define _GUARD_NOT_EXHAUSTED_LIST 434 -#define _GUARD_NOT_EXHAUSTED_RANGE 435 -#define _GUARD_NOT_EXHAUSTED_TUPLE 436 -#define _GUARD_THIRD_NULL 437 -#define _GUARD_TOS_ANY_DICT 438 -#define _GUARD_TOS_ANY_SET 439 -#define _GUARD_TOS_DICT 440 -#define _GUARD_TOS_FLOAT 441 -#define _GUARD_TOS_FROZENDICT 442 -#define _GUARD_TOS_FROZENSET 443 -#define _GUARD_TOS_INT 444 -#define _GUARD_TOS_LIST 445 -#define _GUARD_TOS_OVERFLOWED 446 -#define _GUARD_TOS_SET 447 -#define _GUARD_TOS_SLICE 448 -#define _GUARD_TOS_TUPLE 449 -#define _GUARD_TOS_UNICODE 450 -#define _GUARD_TYPE_VERSION 451 -#define _GUARD_TYPE_VERSION_LOCKED 452 -#define _HANDLE_PENDING_AND_DEOPT 453 +#define _GUARD_BINARY_OP_EXTEND 395 +#define _GUARD_BINARY_OP_SUBSCR_TUPLE_INT_BOUNDS 396 +#define _GUARD_BIT_IS_SET_POP 397 +#define _GUARD_BIT_IS_SET_POP_4 398 +#define _GUARD_BIT_IS_SET_POP_5 399 +#define _GUARD_BIT_IS_SET_POP_6 400 +#define _GUARD_BIT_IS_SET_POP_7 401 +#define _GUARD_BIT_IS_UNSET_POP 402 +#define _GUARD_BIT_IS_UNSET_POP_4 403 +#define _GUARD_BIT_IS_UNSET_POP_5 404 +#define _GUARD_BIT_IS_UNSET_POP_6 405 +#define _GUARD_BIT_IS_UNSET_POP_7 406 +#define _GUARD_CALLABLE_ISINSTANCE 407 +#define _GUARD_CALLABLE_LEN 408 +#define _GUARD_CALLABLE_LIST_APPEND 409 +#define _GUARD_CALLABLE_STR_1 410 +#define _GUARD_CALLABLE_TUPLE_1 411 +#define _GUARD_CALLABLE_TYPE_1 412 +#define _GUARD_CODE_VERSION_RETURN_GENERATOR 413 +#define _GUARD_CODE_VERSION_RETURN_VALUE 414 +#define _GUARD_CODE_VERSION_YIELD_VALUE 415 +#define _GUARD_CODE_VERSION__PUSH_FRAME 416 +#define _GUARD_DORV_NO_DICT 417 +#define _GUARD_DORV_VALUES_INST_ATTR_FROM_DICT 418 +#define _GUARD_GLOBALS_VERSION 419 +#define _GUARD_IP_RETURN_GENERATOR 420 +#define _GUARD_IP_RETURN_VALUE 421 +#define _GUARD_IP_YIELD_VALUE 422 +#define _GUARD_IP__PUSH_FRAME 423 +#define _GUARD_IS_FALSE_POP 424 +#define _GUARD_IS_NONE_POP 425 +#define _GUARD_IS_NOT_NONE_POP 426 +#define _GUARD_IS_TRUE_POP 427 +#define _GUARD_KEYS_VERSION 428 +#define _GUARD_NOS_ANY_DICT 429 +#define _GUARD_NOS_COMPACT_ASCII 430 +#define _GUARD_NOS_DICT 431 +#define _GUARD_NOS_FLOAT 432 +#define _GUARD_NOS_INT 433 +#define _GUARD_NOS_LIST 434 +#define _GUARD_NOS_NOT_NULL 435 +#define _GUARD_NOS_NULL 436 +#define _GUARD_NOS_OVERFLOWED 437 +#define _GUARD_NOS_TUPLE 438 +#define _GUARD_NOS_UNICODE 439 +#define _GUARD_NOT_EXHAUSTED_LIST 440 +#define _GUARD_NOT_EXHAUSTED_RANGE 441 +#define _GUARD_NOT_EXHAUSTED_TUPLE 442 +#define _GUARD_THIRD_NULL 443 +#define _GUARD_TOS_ANY_DICT 444 +#define _GUARD_TOS_ANY_SET 445 +#define _GUARD_TOS_DICT 446 +#define _GUARD_TOS_FLOAT 447 +#define _GUARD_TOS_FROZENDICT 448 +#define _GUARD_TOS_FROZENSET 449 +#define _GUARD_TOS_INT 450 +#define _GUARD_TOS_LIST 451 +#define _GUARD_TOS_OVERFLOWED 452 +#define _GUARD_TOS_SET 453 +#define _GUARD_TOS_SLICE 454 +#define _GUARD_TOS_TUPLE 455 +#define _GUARD_TOS_UNICODE 456 +#define _GUARD_TYPE_VERSION 457 +#define _GUARD_TYPE_VERSION_LOCKED 458 +#define _HANDLE_PENDING_AND_DEOPT 459 #define _IMPORT_FROM IMPORT_FROM #define _IMPORT_NAME IMPORT_NAME -#define _INIT_CALL_BOUND_METHOD_EXACT_ARGS 454 -#define _INIT_CALL_PY_EXACT_ARGS 455 -#define _INIT_CALL_PY_EXACT_ARGS_0 456 -#define _INIT_CALL_PY_EXACT_ARGS_1 457 -#define _INIT_CALL_PY_EXACT_ARGS_2 458 -#define _INIT_CALL_PY_EXACT_ARGS_3 459 -#define _INIT_CALL_PY_EXACT_ARGS_4 460 -#define _INSERT_1_LOAD_CONST_INLINE 461 -#define _INSERT_1_LOAD_CONST_INLINE_BORROW 462 -#define _INSERT_2_LOAD_CONST_INLINE_BORROW 463 -#define _INSERT_NULL 464 +#define _INIT_CALL_BOUND_METHOD_EXACT_ARGS 460 +#define _INIT_CALL_PY_EXACT_ARGS 461 +#define _INIT_CALL_PY_EXACT_ARGS_0 462 +#define _INIT_CALL_PY_EXACT_ARGS_1 463 +#define _INIT_CALL_PY_EXACT_ARGS_2 464 +#define _INIT_CALL_PY_EXACT_ARGS_3 465 +#define _INIT_CALL_PY_EXACT_ARGS_4 466 +#define _INSERT_1_LOAD_CONST_INLINE 467 +#define _INSERT_1_LOAD_CONST_INLINE_BORROW 468 +#define _INSERT_2_LOAD_CONST_INLINE_BORROW 469 +#define _INSERT_NULL 470 #define _INSTRUMENTED_FOR_ITER INSTRUMENTED_FOR_ITER #define _INSTRUMENTED_INSTRUCTION INSTRUMENTED_INSTRUCTION #define _INSTRUMENTED_JUMP_FORWARD INSTRUMENTED_JUMP_FORWARD @@ -215,1096 +221,1118 @@ extern "C" { #define _INSTRUMENTED_POP_JUMP_IF_NONE INSTRUMENTED_POP_JUMP_IF_NONE #define _INSTRUMENTED_POP_JUMP_IF_NOT_NONE INSTRUMENTED_POP_JUMP_IF_NOT_NONE #define _INSTRUMENTED_POP_JUMP_IF_TRUE INSTRUMENTED_POP_JUMP_IF_TRUE -#define _IS_NONE 465 -#define _IS_OP 466 -#define _ITER_CHECK_LIST 467 -#define _ITER_CHECK_RANGE 468 -#define _ITER_CHECK_TUPLE 469 -#define _ITER_JUMP_LIST 470 -#define _ITER_JUMP_RANGE 471 -#define _ITER_JUMP_TUPLE 472 -#define _ITER_NEXT_LIST 473 -#define _ITER_NEXT_LIST_TIER_TWO 474 -#define _ITER_NEXT_RANGE 475 -#define _ITER_NEXT_TUPLE 476 +#define _IS_NONE 471 +#define _IS_OP 472 +#define _ITER_CHECK_LIST 473 +#define _ITER_CHECK_RANGE 474 +#define _ITER_CHECK_TUPLE 475 +#define _ITER_JUMP_LIST 476 +#define _ITER_JUMP_RANGE 477 +#define _ITER_JUMP_TUPLE 478 +#define _ITER_NEXT_LIST 479 +#define _ITER_NEXT_LIST_TIER_TWO 480 +#define _ITER_NEXT_RANGE 481 +#define _ITER_NEXT_TUPLE 482 #define _JUMP_BACKWARD_NO_INTERRUPT JUMP_BACKWARD_NO_INTERRUPT -#define _JUMP_TO_TOP 477 +#define _JUMP_TO_TOP 483 #define _LIST_APPEND LIST_APPEND #define _LIST_EXTEND LIST_EXTEND -#define _LOAD_ATTR 478 -#define _LOAD_ATTR_CLASS 479 +#define _LOAD_ATTR 484 +#define _LOAD_ATTR_CLASS 485 #define _LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN -#define _LOAD_ATTR_INSTANCE_VALUE 480 -#define _LOAD_ATTR_METHOD_LAZY_DICT 481 -#define _LOAD_ATTR_METHOD_NO_DICT 482 -#define _LOAD_ATTR_METHOD_WITH_VALUES 483 -#define _LOAD_ATTR_MODULE 484 -#define _LOAD_ATTR_NONDESCRIPTOR_NO_DICT 485 -#define _LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES 486 -#define _LOAD_ATTR_PROPERTY_FRAME 487 -#define _LOAD_ATTR_SLOT 488 -#define _LOAD_ATTR_WITH_HINT 489 +#define _LOAD_ATTR_INSTANCE_VALUE 486 +#define _LOAD_ATTR_METHOD_LAZY_DICT 487 +#define _LOAD_ATTR_METHOD_NO_DICT 488 +#define _LOAD_ATTR_METHOD_WITH_VALUES 489 +#define _LOAD_ATTR_MODULE 490 +#define _LOAD_ATTR_NONDESCRIPTOR_NO_DICT 491 +#define _LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES 492 +#define _LOAD_ATTR_PROPERTY_FRAME 493 +#define _LOAD_ATTR_SLOT 494 +#define _LOAD_ATTR_WITH_HINT 495 #define _LOAD_BUILD_CLASS LOAD_BUILD_CLASS -#define _LOAD_BYTECODE 490 +#define _LOAD_BYTECODE 496 #define _LOAD_COMMON_CONSTANT LOAD_COMMON_CONSTANT #define _LOAD_CONST LOAD_CONST -#define _LOAD_CONST_INLINE 491 -#define _LOAD_CONST_INLINE_BORROW 492 -#define _LOAD_CONST_UNDER_INLINE 493 -#define _LOAD_CONST_UNDER_INLINE_BORROW 494 +#define _LOAD_CONST_INLINE 497 +#define _LOAD_CONST_INLINE_BORROW 498 +#define _LOAD_CONST_UNDER_INLINE 499 +#define _LOAD_CONST_UNDER_INLINE_BORROW 500 #define _LOAD_DEREF LOAD_DEREF -#define _LOAD_FAST 495 -#define _LOAD_FAST_0 496 -#define _LOAD_FAST_1 497 -#define _LOAD_FAST_2 498 -#define _LOAD_FAST_3 499 -#define _LOAD_FAST_4 500 -#define _LOAD_FAST_5 501 -#define _LOAD_FAST_6 502 -#define _LOAD_FAST_7 503 +#define _LOAD_FAST 501 +#define _LOAD_FAST_0 502 +#define _LOAD_FAST_1 503 +#define _LOAD_FAST_2 504 +#define _LOAD_FAST_3 505 +#define _LOAD_FAST_4 506 +#define _LOAD_FAST_5 507 +#define _LOAD_FAST_6 508 +#define _LOAD_FAST_7 509 #define _LOAD_FAST_AND_CLEAR LOAD_FAST_AND_CLEAR -#define _LOAD_FAST_BORROW 504 -#define _LOAD_FAST_BORROW_0 505 -#define _LOAD_FAST_BORROW_1 506 -#define _LOAD_FAST_BORROW_2 507 -#define _LOAD_FAST_BORROW_3 508 -#define _LOAD_FAST_BORROW_4 509 -#define _LOAD_FAST_BORROW_5 510 -#define _LOAD_FAST_BORROW_6 511 -#define _LOAD_FAST_BORROW_7 512 +#define _LOAD_FAST_BORROW 510 +#define _LOAD_FAST_BORROW_0 511 +#define _LOAD_FAST_BORROW_1 512 +#define _LOAD_FAST_BORROW_2 513 +#define _LOAD_FAST_BORROW_3 514 +#define _LOAD_FAST_BORROW_4 515 +#define _LOAD_FAST_BORROW_5 516 +#define _LOAD_FAST_BORROW_6 517 +#define _LOAD_FAST_BORROW_7 518 #define _LOAD_FAST_CHECK LOAD_FAST_CHECK #define _LOAD_FROM_DICT_OR_DEREF LOAD_FROM_DICT_OR_DEREF #define _LOAD_FROM_DICT_OR_GLOBALS LOAD_FROM_DICT_OR_GLOBALS -#define _LOAD_GLOBAL 513 -#define _LOAD_GLOBAL_BUILTINS 514 -#define _LOAD_GLOBAL_MODULE 515 +#define _LOAD_GLOBAL 519 +#define _LOAD_GLOBAL_BUILTINS 520 +#define _LOAD_GLOBAL_MODULE 521 #define _LOAD_LOCALS LOAD_LOCALS #define _LOAD_NAME LOAD_NAME -#define _LOAD_SMALL_INT 516 -#define _LOAD_SMALL_INT_0 517 -#define _LOAD_SMALL_INT_1 518 -#define _LOAD_SMALL_INT_2 519 -#define _LOAD_SMALL_INT_3 520 -#define _LOAD_SPECIAL 521 +#define _LOAD_SMALL_INT 522 +#define _LOAD_SMALL_INT_0 523 +#define _LOAD_SMALL_INT_1 524 +#define _LOAD_SMALL_INT_2 525 +#define _LOAD_SMALL_INT_3 526 +#define _LOAD_SPECIAL 527 #define _LOAD_SUPER_ATTR_ATTR LOAD_SUPER_ATTR_ATTR #define _LOAD_SUPER_ATTR_METHOD LOAD_SUPER_ATTR_METHOD -#define _LOCK_OBJECT 522 -#define _MAKE_CALLARGS_A_TUPLE 523 +#define _LOCK_OBJECT 528 +#define _MAKE_CALLARGS_A_TUPLE 529 #define _MAKE_CELL MAKE_CELL #define _MAKE_FUNCTION MAKE_FUNCTION -#define _MAKE_HEAP_SAFE 524 -#define _MAKE_WARM 525 +#define _MAKE_HEAP_SAFE 530 +#define _MAKE_WARM 531 #define _MAP_ADD MAP_ADD -#define _MATCH_CLASS 526 +#define _MATCH_CLASS 532 #define _MATCH_KEYS MATCH_KEYS #define _MATCH_MAPPING MATCH_MAPPING #define _MATCH_SEQUENCE MATCH_SEQUENCE -#define _MAYBE_EXPAND_METHOD 527 -#define _MAYBE_EXPAND_METHOD_KW 528 -#define _MONITOR_CALL 529 -#define _MONITOR_CALL_KW 530 -#define _MONITOR_JUMP_BACKWARD 531 -#define _MONITOR_RESUME 532 +#define _MAYBE_EXPAND_METHOD 533 +#define _MAYBE_EXPAND_METHOD_KW 534 +#define _MONITOR_CALL 535 +#define _MONITOR_CALL_KW 536 +#define _MONITOR_JUMP_BACKWARD 537 +#define _MONITOR_RESUME 538 #define _NOP NOP -#define _POP_CALL 533 -#define _POP_CALL_LOAD_CONST_INLINE_BORROW 534 -#define _POP_CALL_ONE 535 -#define _POP_CALL_ONE_LOAD_CONST_INLINE_BORROW 536 -#define _POP_CALL_TWO 537 -#define _POP_CALL_TWO_LOAD_CONST_INLINE_BORROW 538 +#define _POP_CALL 539 +#define _POP_CALL_LOAD_CONST_INLINE_BORROW 540 +#define _POP_CALL_ONE 541 +#define _POP_CALL_ONE_LOAD_CONST_INLINE_BORROW 542 +#define _POP_CALL_TWO 543 +#define _POP_CALL_TWO_LOAD_CONST_INLINE_BORROW 544 #define _POP_EXCEPT POP_EXCEPT #define _POP_ITER POP_ITER -#define _POP_JUMP_IF_FALSE 539 -#define _POP_JUMP_IF_TRUE 540 +#define _POP_JUMP_IF_FALSE 545 +#define _POP_JUMP_IF_TRUE 546 #define _POP_TOP POP_TOP -#define _POP_TOP_FLOAT 541 -#define _POP_TOP_INT 542 -#define _POP_TOP_LOAD_CONST_INLINE 543 -#define _POP_TOP_LOAD_CONST_INLINE_BORROW 544 -#define _POP_TOP_NOP 545 -#define _POP_TOP_UNICODE 546 -#define _POP_TWO 547 -#define _POP_TWO_LOAD_CONST_INLINE_BORROW 548 +#define _POP_TOP_FLOAT 547 +#define _POP_TOP_INT 548 +#define _POP_TOP_LOAD_CONST_INLINE 549 +#define _POP_TOP_LOAD_CONST_INLINE_BORROW 550 +#define _POP_TOP_NOP 551 +#define _POP_TOP_UNICODE 552 +#define _POP_TWO 553 +#define _POP_TWO_LOAD_CONST_INLINE_BORROW 554 #define _PUSH_EXC_INFO PUSH_EXC_INFO -#define _PUSH_FRAME 549 +#define _PUSH_FRAME 555 #define _PUSH_NULL PUSH_NULL -#define _PUSH_NULL_CONDITIONAL 550 -#define _PY_FRAME_EX 551 -#define _PY_FRAME_GENERAL 552 -#define _PY_FRAME_KW 553 -#define _RECORD_3OS_GEN_FUNC 554 -#define _RECORD_4OS 555 -#define _RECORD_BOUND_METHOD 556 -#define _RECORD_CALLABLE 557 -#define _RECORD_CODE 558 -#define _RECORD_NOS 559 -#define _RECORD_NOS_GEN_FUNC 560 -#define _RECORD_TOS 561 -#define _RECORD_TOS_TYPE 562 -#define _REPLACE_WITH_TRUE 563 -#define _RESUME_CHECK 564 +#define _PUSH_NULL_CONDITIONAL 556 +#define _PY_FRAME_EX 557 +#define _PY_FRAME_GENERAL 558 +#define _PY_FRAME_KW 559 +#define _RECORD_3OS_GEN_FUNC 560 +#define _RECORD_4OS 561 +#define _RECORD_BOUND_METHOD 562 +#define _RECORD_CALLABLE 563 +#define _RECORD_CODE 564 +#define _RECORD_NOS 565 +#define _RECORD_NOS_GEN_FUNC 566 +#define _RECORD_TOS 567 +#define _RECORD_TOS_TYPE 568 +#define _REPLACE_WITH_TRUE 569 +#define _RESUME_CHECK 570 #define _RETURN_GENERATOR RETURN_GENERATOR -#define _RETURN_VALUE 565 -#define _SAVE_RETURN_OFFSET 566 -#define _SEND 567 -#define _SEND_GEN_FRAME 568 +#define _RETURN_VALUE 571 +#define _SAVE_RETURN_OFFSET 572 +#define _SEND 573 +#define _SEND_GEN_FRAME 574 #define _SETUP_ANNOTATIONS SETUP_ANNOTATIONS #define _SET_ADD SET_ADD #define _SET_FUNCTION_ATTRIBUTE SET_FUNCTION_ATTRIBUTE -#define _SET_UPDATE 569 -#define _SHUFFLE_2_LOAD_CONST_INLINE_BORROW 570 -#define _SHUFFLE_3_LOAD_CONST_INLINE_BORROW 571 -#define _SPILL_OR_RELOAD 572 -#define _START_EXECUTOR 573 -#define _STORE_ATTR 574 -#define _STORE_ATTR_INSTANCE_VALUE 575 -#define _STORE_ATTR_SLOT 576 -#define _STORE_ATTR_WITH_HINT 577 +#define _SET_UPDATE 575 +#define _SHUFFLE_2_LOAD_CONST_INLINE_BORROW 576 +#define _SHUFFLE_3_LOAD_CONST_INLINE_BORROW 577 +#define _SPILL_OR_RELOAD 578 +#define _START_EXECUTOR 579 +#define _STORE_ATTR 580 +#define _STORE_ATTR_INSTANCE_VALUE 581 +#define _STORE_ATTR_SLOT 582 +#define _STORE_ATTR_WITH_HINT 583 #define _STORE_DEREF STORE_DEREF #define _STORE_GLOBAL STORE_GLOBAL #define _STORE_NAME STORE_NAME -#define _STORE_SLICE 578 -#define _STORE_SUBSCR 579 -#define _STORE_SUBSCR_DICT 580 -#define _STORE_SUBSCR_LIST_INT 581 -#define _SWAP 582 -#define _SWAP_2 583 -#define _SWAP_3 584 -#define _SWAP_FAST 585 -#define _SWAP_FAST_0 586 -#define _SWAP_FAST_1 587 -#define _SWAP_FAST_2 588 -#define _SWAP_FAST_3 589 -#define _SWAP_FAST_4 590 -#define _SWAP_FAST_5 591 -#define _SWAP_FAST_6 592 -#define _SWAP_FAST_7 593 -#define _TIER2_RESUME_CHECK 594 -#define _TO_BOOL 595 +#define _STORE_SLICE 584 +#define _STORE_SUBSCR 585 +#define _STORE_SUBSCR_DICT 586 +#define _STORE_SUBSCR_LIST_INT 587 +#define _SWAP 588 +#define _SWAP_2 589 +#define _SWAP_3 590 +#define _SWAP_FAST 591 +#define _SWAP_FAST_0 592 +#define _SWAP_FAST_1 593 +#define _SWAP_FAST_2 594 +#define _SWAP_FAST_3 595 +#define _SWAP_FAST_4 596 +#define _SWAP_FAST_5 597 +#define _SWAP_FAST_6 598 +#define _SWAP_FAST_7 599 +#define _TIER2_RESUME_CHECK 600 +#define _TO_BOOL 601 #define _TO_BOOL_BOOL TO_BOOL_BOOL -#define _TO_BOOL_INT 596 -#define _TO_BOOL_LIST 597 +#define _TO_BOOL_INT 602 +#define _TO_BOOL_LIST 603 #define _TO_BOOL_NONE TO_BOOL_NONE -#define _TO_BOOL_STR 598 +#define _TO_BOOL_STR 604 #define _TRACE_RECORD TRACE_RECORD -#define _UNARY_INVERT 599 -#define _UNARY_NEGATIVE 600 +#define _UNARY_INVERT 605 +#define _UNARY_NEGATIVE 606 +#define _UNARY_NEGATIVE_FLOAT_INPLACE 607 #define _UNARY_NOT UNARY_NOT #define _UNPACK_EX UNPACK_EX -#define _UNPACK_SEQUENCE 601 -#define _UNPACK_SEQUENCE_LIST 602 -#define _UNPACK_SEQUENCE_TUPLE 603 -#define _UNPACK_SEQUENCE_TWO_TUPLE 604 -#define _UNPACK_SEQUENCE_UNIQUE_THREE_TUPLE 605 -#define _UNPACK_SEQUENCE_UNIQUE_TUPLE 606 -#define _UNPACK_SEQUENCE_UNIQUE_TWO_TUPLE 607 +#define _UNPACK_SEQUENCE 608 +#define _UNPACK_SEQUENCE_LIST 609 +#define _UNPACK_SEQUENCE_TUPLE 610 +#define _UNPACK_SEQUENCE_TWO_TUPLE 611 +#define _UNPACK_SEQUENCE_UNIQUE_THREE_TUPLE 612 +#define _UNPACK_SEQUENCE_UNIQUE_TUPLE 613 +#define _UNPACK_SEQUENCE_UNIQUE_TWO_TUPLE 614 #define _WITH_EXCEPT_START WITH_EXCEPT_START -#define _YIELD_VALUE 608 -#define MAX_UOP_ID 608 -#define _BINARY_OP_r23 609 -#define _BINARY_OP_ADD_FLOAT_r03 610 -#define _BINARY_OP_ADD_FLOAT_r13 611 -#define _BINARY_OP_ADD_FLOAT_r23 612 -#define _BINARY_OP_ADD_INT_r03 613 -#define _BINARY_OP_ADD_INT_r13 614 -#define _BINARY_OP_ADD_INT_r23 615 -#define _BINARY_OP_ADD_UNICODE_r03 616 -#define _BINARY_OP_ADD_UNICODE_r13 617 -#define _BINARY_OP_ADD_UNICODE_r23 618 -#define _BINARY_OP_EXTEND_r23 619 -#define _BINARY_OP_INPLACE_ADD_UNICODE_r21 620 -#define _BINARY_OP_MULTIPLY_FLOAT_r03 621 -#define _BINARY_OP_MULTIPLY_FLOAT_r13 622 -#define _BINARY_OP_MULTIPLY_FLOAT_r23 623 -#define _BINARY_OP_MULTIPLY_INT_r03 624 -#define _BINARY_OP_MULTIPLY_INT_r13 625 -#define _BINARY_OP_MULTIPLY_INT_r23 626 -#define _BINARY_OP_SUBSCR_CHECK_FUNC_r23 627 -#define _BINARY_OP_SUBSCR_DICT_r23 628 -#define _BINARY_OP_SUBSCR_INIT_CALL_r01 629 -#define _BINARY_OP_SUBSCR_INIT_CALL_r11 630 -#define _BINARY_OP_SUBSCR_INIT_CALL_r21 631 -#define _BINARY_OP_SUBSCR_INIT_CALL_r31 632 -#define _BINARY_OP_SUBSCR_LIST_INT_r23 633 -#define _BINARY_OP_SUBSCR_LIST_SLICE_r23 634 -#define _BINARY_OP_SUBSCR_STR_INT_r23 635 -#define _BINARY_OP_SUBSCR_TUPLE_INT_r03 636 -#define _BINARY_OP_SUBSCR_TUPLE_INT_r13 637 -#define _BINARY_OP_SUBSCR_TUPLE_INT_r23 638 -#define _BINARY_OP_SUBSCR_USTR_INT_r23 639 -#define _BINARY_OP_SUBTRACT_FLOAT_r03 640 -#define _BINARY_OP_SUBTRACT_FLOAT_r13 641 -#define _BINARY_OP_SUBTRACT_FLOAT_r23 642 -#define _BINARY_OP_SUBTRACT_INT_r03 643 -#define _BINARY_OP_SUBTRACT_INT_r13 644 -#define _BINARY_OP_SUBTRACT_INT_r23 645 -#define _BINARY_SLICE_r31 646 -#define _BUILD_INTERPOLATION_r01 647 -#define _BUILD_LIST_r01 648 -#define _BUILD_MAP_r01 649 -#define _BUILD_SET_r01 650 -#define _BUILD_SLICE_r01 651 -#define _BUILD_STRING_r01 652 -#define _BUILD_TEMPLATE_r21 653 -#define _BUILD_TUPLE_r01 654 -#define _CALL_BUILTIN_CLASS_r01 655 -#define _CALL_BUILTIN_FAST_r01 656 -#define _CALL_BUILTIN_FAST_WITH_KEYWORDS_r01 657 -#define _CALL_BUILTIN_O_r03 658 -#define _CALL_FUNCTION_EX_NON_PY_GENERAL_r31 659 -#define _CALL_INTRINSIC_1_r12 660 -#define _CALL_INTRINSIC_2_r21 661 -#define _CALL_ISINSTANCE_r31 662 -#define _CALL_KW_NON_PY_r11 663 -#define _CALL_LEN_r33 664 -#define _CALL_LIST_APPEND_r03 665 -#define _CALL_LIST_APPEND_r13 666 -#define _CALL_LIST_APPEND_r23 667 -#define _CALL_LIST_APPEND_r33 668 -#define _CALL_METHOD_DESCRIPTOR_FAST_r01 669 -#define _CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS_r01 670 -#define _CALL_METHOD_DESCRIPTOR_NOARGS_r01 671 -#define _CALL_METHOD_DESCRIPTOR_O_r03 672 -#define _CALL_NON_PY_GENERAL_r01 673 -#define _CALL_STR_1_r32 674 -#define _CALL_TUPLE_1_r32 675 -#define _CALL_TYPE_1_r02 676 -#define _CALL_TYPE_1_r12 677 -#define _CALL_TYPE_1_r22 678 -#define _CALL_TYPE_1_r32 679 -#define _CHECK_AND_ALLOCATE_OBJECT_r00 680 -#define _CHECK_ATTR_CLASS_r01 681 -#define _CHECK_ATTR_CLASS_r11 682 -#define _CHECK_ATTR_CLASS_r22 683 -#define _CHECK_ATTR_CLASS_r33 684 -#define _CHECK_ATTR_METHOD_LAZY_DICT_r01 685 -#define _CHECK_ATTR_METHOD_LAZY_DICT_r11 686 -#define _CHECK_ATTR_METHOD_LAZY_DICT_r22 687 -#define _CHECK_ATTR_METHOD_LAZY_DICT_r33 688 -#define _CHECK_CALL_BOUND_METHOD_EXACT_ARGS_r00 689 -#define _CHECK_EG_MATCH_r22 690 -#define _CHECK_EXC_MATCH_r22 691 -#define _CHECK_FUNCTION_EXACT_ARGS_r00 692 -#define _CHECK_FUNCTION_VERSION_r00 693 -#define _CHECK_FUNCTION_VERSION_INLINE_r00 694 -#define _CHECK_FUNCTION_VERSION_INLINE_r11 695 -#define _CHECK_FUNCTION_VERSION_INLINE_r22 696 -#define _CHECK_FUNCTION_VERSION_INLINE_r33 697 -#define _CHECK_FUNCTION_VERSION_KW_r11 698 -#define _CHECK_IS_NOT_PY_CALLABLE_r00 699 -#define _CHECK_IS_NOT_PY_CALLABLE_EX_r03 700 -#define _CHECK_IS_NOT_PY_CALLABLE_EX_r13 701 -#define _CHECK_IS_NOT_PY_CALLABLE_EX_r23 702 -#define _CHECK_IS_NOT_PY_CALLABLE_EX_r33 703 -#define _CHECK_IS_NOT_PY_CALLABLE_KW_r11 704 -#define _CHECK_IS_PY_CALLABLE_EX_r03 705 -#define _CHECK_IS_PY_CALLABLE_EX_r13 706 -#define _CHECK_IS_PY_CALLABLE_EX_r23 707 -#define _CHECK_IS_PY_CALLABLE_EX_r33 708 -#define _CHECK_MANAGED_OBJECT_HAS_VALUES_r01 709 -#define _CHECK_MANAGED_OBJECT_HAS_VALUES_r11 710 -#define _CHECK_MANAGED_OBJECT_HAS_VALUES_r22 711 -#define _CHECK_MANAGED_OBJECT_HAS_VALUES_r33 712 -#define _CHECK_METHOD_VERSION_r00 713 -#define _CHECK_METHOD_VERSION_KW_r11 714 -#define _CHECK_PEP_523_r00 715 -#define _CHECK_PEP_523_r11 716 -#define _CHECK_PEP_523_r22 717 -#define _CHECK_PEP_523_r33 718 -#define _CHECK_PERIODIC_r00 719 -#define _CHECK_PERIODIC_AT_END_r00 720 -#define _CHECK_PERIODIC_IF_NOT_YIELD_FROM_r00 721 -#define _CHECK_RECURSION_REMAINING_r00 722 -#define _CHECK_RECURSION_REMAINING_r11 723 -#define _CHECK_RECURSION_REMAINING_r22 724 -#define _CHECK_RECURSION_REMAINING_r33 725 -#define _CHECK_STACK_SPACE_r00 726 -#define _CHECK_STACK_SPACE_OPERAND_r00 727 -#define _CHECK_STACK_SPACE_OPERAND_r11 728 -#define _CHECK_STACK_SPACE_OPERAND_r22 729 -#define _CHECK_STACK_SPACE_OPERAND_r33 730 -#define _CHECK_VALIDITY_r00 731 -#define _CHECK_VALIDITY_r11 732 -#define _CHECK_VALIDITY_r22 733 -#define _CHECK_VALIDITY_r33 734 -#define _COLD_DYNAMIC_EXIT_r00 735 -#define _COLD_EXIT_r00 736 -#define _COMPARE_OP_r21 737 -#define _COMPARE_OP_FLOAT_r03 738 -#define _COMPARE_OP_FLOAT_r13 739 -#define _COMPARE_OP_FLOAT_r23 740 -#define _COMPARE_OP_INT_r23 741 -#define _COMPARE_OP_STR_r23 742 -#define _CONTAINS_OP_r23 743 -#define _CONTAINS_OP_DICT_r23 744 -#define _CONTAINS_OP_SET_r23 745 -#define _CONVERT_VALUE_r11 746 -#define _COPY_r01 747 -#define _COPY_1_r02 748 -#define _COPY_1_r12 749 -#define _COPY_1_r23 750 -#define _COPY_2_r03 751 -#define _COPY_2_r13 752 -#define _COPY_2_r23 753 -#define _COPY_3_r03 754 -#define _COPY_3_r13 755 -#define _COPY_3_r23 756 -#define _COPY_3_r33 757 -#define _COPY_FREE_VARS_r00 758 -#define _COPY_FREE_VARS_r11 759 -#define _COPY_FREE_VARS_r22 760 -#define _COPY_FREE_VARS_r33 761 -#define _CREATE_INIT_FRAME_r01 762 -#define _DELETE_ATTR_r10 763 -#define _DELETE_DEREF_r00 764 -#define _DELETE_FAST_r00 765 -#define _DELETE_GLOBAL_r00 766 -#define _DELETE_NAME_r00 767 -#define _DELETE_SUBSCR_r20 768 -#define _DEOPT_r00 769 -#define _DEOPT_r10 770 -#define _DEOPT_r20 771 -#define _DEOPT_r30 772 -#define _DICT_MERGE_r11 773 -#define _DICT_UPDATE_r10 774 -#define _DO_CALL_r01 775 -#define _DO_CALL_FUNCTION_EX_r31 776 -#define _DO_CALL_KW_r11 777 -#define _DYNAMIC_EXIT_r00 778 -#define _DYNAMIC_EXIT_r10 779 -#define _DYNAMIC_EXIT_r20 780 -#define _DYNAMIC_EXIT_r30 781 -#define _END_FOR_r10 782 -#define _END_SEND_r31 783 -#define _ERROR_POP_N_r00 784 -#define _EXIT_INIT_CHECK_r10 785 -#define _EXIT_TRACE_r00 786 -#define _EXIT_TRACE_r10 787 -#define _EXIT_TRACE_r20 788 -#define _EXIT_TRACE_r30 789 -#define _EXPAND_METHOD_r00 790 -#define _EXPAND_METHOD_KW_r11 791 -#define _FATAL_ERROR_r00 792 -#define _FATAL_ERROR_r11 793 -#define _FATAL_ERROR_r22 794 -#define _FATAL_ERROR_r33 795 -#define _FORMAT_SIMPLE_r11 796 -#define _FORMAT_WITH_SPEC_r21 797 -#define _FOR_ITER_r23 798 -#define _FOR_ITER_GEN_FRAME_r03 799 -#define _FOR_ITER_GEN_FRAME_r13 800 -#define _FOR_ITER_GEN_FRAME_r23 801 -#define _FOR_ITER_TIER_TWO_r23 802 -#define _GET_AITER_r11 803 -#define _GET_ANEXT_r12 804 -#define _GET_AWAITABLE_r11 805 -#define _GET_ITER_r12 806 -#define _GET_LEN_r12 807 -#define _GUARD_BINARY_OP_EXTEND_r22 808 -#define _GUARD_BINARY_OP_SUBSCR_TUPLE_INT_BOUNDS_r02 809 -#define _GUARD_BINARY_OP_SUBSCR_TUPLE_INT_BOUNDS_r12 810 -#define _GUARD_BINARY_OP_SUBSCR_TUPLE_INT_BOUNDS_r22 811 -#define _GUARD_BINARY_OP_SUBSCR_TUPLE_INT_BOUNDS_r33 812 -#define _GUARD_BIT_IS_SET_POP_r00 813 -#define _GUARD_BIT_IS_SET_POP_r10 814 -#define _GUARD_BIT_IS_SET_POP_r21 815 -#define _GUARD_BIT_IS_SET_POP_r32 816 -#define _GUARD_BIT_IS_SET_POP_4_r00 817 -#define _GUARD_BIT_IS_SET_POP_4_r10 818 -#define _GUARD_BIT_IS_SET_POP_4_r21 819 -#define _GUARD_BIT_IS_SET_POP_4_r32 820 -#define _GUARD_BIT_IS_SET_POP_5_r00 821 -#define _GUARD_BIT_IS_SET_POP_5_r10 822 -#define _GUARD_BIT_IS_SET_POP_5_r21 823 -#define _GUARD_BIT_IS_SET_POP_5_r32 824 -#define _GUARD_BIT_IS_SET_POP_6_r00 825 -#define _GUARD_BIT_IS_SET_POP_6_r10 826 -#define _GUARD_BIT_IS_SET_POP_6_r21 827 -#define _GUARD_BIT_IS_SET_POP_6_r32 828 -#define _GUARD_BIT_IS_SET_POP_7_r00 829 -#define _GUARD_BIT_IS_SET_POP_7_r10 830 -#define _GUARD_BIT_IS_SET_POP_7_r21 831 -#define _GUARD_BIT_IS_SET_POP_7_r32 832 -#define _GUARD_BIT_IS_UNSET_POP_r00 833 -#define _GUARD_BIT_IS_UNSET_POP_r10 834 -#define _GUARD_BIT_IS_UNSET_POP_r21 835 -#define _GUARD_BIT_IS_UNSET_POP_r32 836 -#define _GUARD_BIT_IS_UNSET_POP_4_r00 837 -#define _GUARD_BIT_IS_UNSET_POP_4_r10 838 -#define _GUARD_BIT_IS_UNSET_POP_4_r21 839 -#define _GUARD_BIT_IS_UNSET_POP_4_r32 840 -#define _GUARD_BIT_IS_UNSET_POP_5_r00 841 -#define _GUARD_BIT_IS_UNSET_POP_5_r10 842 -#define _GUARD_BIT_IS_UNSET_POP_5_r21 843 -#define _GUARD_BIT_IS_UNSET_POP_5_r32 844 -#define _GUARD_BIT_IS_UNSET_POP_6_r00 845 -#define _GUARD_BIT_IS_UNSET_POP_6_r10 846 -#define _GUARD_BIT_IS_UNSET_POP_6_r21 847 -#define _GUARD_BIT_IS_UNSET_POP_6_r32 848 -#define _GUARD_BIT_IS_UNSET_POP_7_r00 849 -#define _GUARD_BIT_IS_UNSET_POP_7_r10 850 -#define _GUARD_BIT_IS_UNSET_POP_7_r21 851 -#define _GUARD_BIT_IS_UNSET_POP_7_r32 852 -#define _GUARD_CALLABLE_ISINSTANCE_r03 853 -#define _GUARD_CALLABLE_ISINSTANCE_r13 854 -#define _GUARD_CALLABLE_ISINSTANCE_r23 855 -#define _GUARD_CALLABLE_ISINSTANCE_r33 856 -#define _GUARD_CALLABLE_LEN_r03 857 -#define _GUARD_CALLABLE_LEN_r13 858 -#define _GUARD_CALLABLE_LEN_r23 859 -#define _GUARD_CALLABLE_LEN_r33 860 -#define _GUARD_CALLABLE_LIST_APPEND_r03 861 -#define _GUARD_CALLABLE_LIST_APPEND_r13 862 -#define _GUARD_CALLABLE_LIST_APPEND_r23 863 -#define _GUARD_CALLABLE_LIST_APPEND_r33 864 -#define _GUARD_CALLABLE_STR_1_r03 865 -#define _GUARD_CALLABLE_STR_1_r13 866 -#define _GUARD_CALLABLE_STR_1_r23 867 -#define _GUARD_CALLABLE_STR_1_r33 868 -#define _GUARD_CALLABLE_TUPLE_1_r03 869 -#define _GUARD_CALLABLE_TUPLE_1_r13 870 -#define _GUARD_CALLABLE_TUPLE_1_r23 871 -#define _GUARD_CALLABLE_TUPLE_1_r33 872 -#define _GUARD_CALLABLE_TYPE_1_r03 873 -#define _GUARD_CALLABLE_TYPE_1_r13 874 -#define _GUARD_CALLABLE_TYPE_1_r23 875 -#define _GUARD_CALLABLE_TYPE_1_r33 876 -#define _GUARD_CODE_VERSION_RETURN_GENERATOR_r00 877 -#define _GUARD_CODE_VERSION_RETURN_GENERATOR_r11 878 -#define _GUARD_CODE_VERSION_RETURN_GENERATOR_r22 879 -#define _GUARD_CODE_VERSION_RETURN_GENERATOR_r33 880 -#define _GUARD_CODE_VERSION_RETURN_VALUE_r00 881 -#define _GUARD_CODE_VERSION_RETURN_VALUE_r11 882 -#define _GUARD_CODE_VERSION_RETURN_VALUE_r22 883 -#define _GUARD_CODE_VERSION_RETURN_VALUE_r33 884 -#define _GUARD_CODE_VERSION_YIELD_VALUE_r00 885 -#define _GUARD_CODE_VERSION_YIELD_VALUE_r11 886 -#define _GUARD_CODE_VERSION_YIELD_VALUE_r22 887 -#define _GUARD_CODE_VERSION_YIELD_VALUE_r33 888 -#define _GUARD_CODE_VERSION__PUSH_FRAME_r00 889 -#define _GUARD_CODE_VERSION__PUSH_FRAME_r11 890 -#define _GUARD_CODE_VERSION__PUSH_FRAME_r22 891 -#define _GUARD_CODE_VERSION__PUSH_FRAME_r33 892 -#define _GUARD_DORV_NO_DICT_r01 893 -#define _GUARD_DORV_NO_DICT_r11 894 -#define _GUARD_DORV_NO_DICT_r22 895 -#define _GUARD_DORV_NO_DICT_r33 896 -#define _GUARD_DORV_VALUES_INST_ATTR_FROM_DICT_r01 897 -#define _GUARD_DORV_VALUES_INST_ATTR_FROM_DICT_r11 898 -#define _GUARD_DORV_VALUES_INST_ATTR_FROM_DICT_r22 899 -#define _GUARD_DORV_VALUES_INST_ATTR_FROM_DICT_r33 900 -#define _GUARD_GLOBALS_VERSION_r00 901 -#define _GUARD_GLOBALS_VERSION_r11 902 -#define _GUARD_GLOBALS_VERSION_r22 903 -#define _GUARD_GLOBALS_VERSION_r33 904 -#define _GUARD_IP_RETURN_GENERATOR_r00 905 -#define _GUARD_IP_RETURN_GENERATOR_r11 906 -#define _GUARD_IP_RETURN_GENERATOR_r22 907 -#define _GUARD_IP_RETURN_GENERATOR_r33 908 -#define _GUARD_IP_RETURN_VALUE_r00 909 -#define _GUARD_IP_RETURN_VALUE_r11 910 -#define _GUARD_IP_RETURN_VALUE_r22 911 -#define _GUARD_IP_RETURN_VALUE_r33 912 -#define _GUARD_IP_YIELD_VALUE_r00 913 -#define _GUARD_IP_YIELD_VALUE_r11 914 -#define _GUARD_IP_YIELD_VALUE_r22 915 -#define _GUARD_IP_YIELD_VALUE_r33 916 -#define _GUARD_IP__PUSH_FRAME_r00 917 -#define _GUARD_IP__PUSH_FRAME_r11 918 -#define _GUARD_IP__PUSH_FRAME_r22 919 -#define _GUARD_IP__PUSH_FRAME_r33 920 -#define _GUARD_IS_FALSE_POP_r00 921 -#define _GUARD_IS_FALSE_POP_r10 922 -#define _GUARD_IS_FALSE_POP_r21 923 -#define _GUARD_IS_FALSE_POP_r32 924 -#define _GUARD_IS_NONE_POP_r00 925 -#define _GUARD_IS_NONE_POP_r10 926 -#define _GUARD_IS_NONE_POP_r21 927 -#define _GUARD_IS_NONE_POP_r32 928 -#define _GUARD_IS_NOT_NONE_POP_r10 929 -#define _GUARD_IS_TRUE_POP_r00 930 -#define _GUARD_IS_TRUE_POP_r10 931 -#define _GUARD_IS_TRUE_POP_r21 932 -#define _GUARD_IS_TRUE_POP_r32 933 -#define _GUARD_KEYS_VERSION_r01 934 -#define _GUARD_KEYS_VERSION_r11 935 -#define _GUARD_KEYS_VERSION_r22 936 -#define _GUARD_KEYS_VERSION_r33 937 -#define _GUARD_NOS_ANY_DICT_r02 938 -#define _GUARD_NOS_ANY_DICT_r12 939 -#define _GUARD_NOS_ANY_DICT_r22 940 -#define _GUARD_NOS_ANY_DICT_r33 941 -#define _GUARD_NOS_COMPACT_ASCII_r02 942 -#define _GUARD_NOS_COMPACT_ASCII_r12 943 -#define _GUARD_NOS_COMPACT_ASCII_r22 944 -#define _GUARD_NOS_COMPACT_ASCII_r33 945 -#define _GUARD_NOS_DICT_r02 946 -#define _GUARD_NOS_DICT_r12 947 -#define _GUARD_NOS_DICT_r22 948 -#define _GUARD_NOS_DICT_r33 949 -#define _GUARD_NOS_FLOAT_r02 950 -#define _GUARD_NOS_FLOAT_r12 951 -#define _GUARD_NOS_FLOAT_r22 952 -#define _GUARD_NOS_FLOAT_r33 953 -#define _GUARD_NOS_INT_r02 954 -#define _GUARD_NOS_INT_r12 955 -#define _GUARD_NOS_INT_r22 956 -#define _GUARD_NOS_INT_r33 957 -#define _GUARD_NOS_LIST_r02 958 -#define _GUARD_NOS_LIST_r12 959 -#define _GUARD_NOS_LIST_r22 960 -#define _GUARD_NOS_LIST_r33 961 -#define _GUARD_NOS_NOT_NULL_r02 962 -#define _GUARD_NOS_NOT_NULL_r12 963 -#define _GUARD_NOS_NOT_NULL_r22 964 -#define _GUARD_NOS_NOT_NULL_r33 965 -#define _GUARD_NOS_NULL_r02 966 -#define _GUARD_NOS_NULL_r12 967 -#define _GUARD_NOS_NULL_r22 968 -#define _GUARD_NOS_NULL_r33 969 -#define _GUARD_NOS_OVERFLOWED_r02 970 -#define _GUARD_NOS_OVERFLOWED_r12 971 -#define _GUARD_NOS_OVERFLOWED_r22 972 -#define _GUARD_NOS_OVERFLOWED_r33 973 -#define _GUARD_NOS_TUPLE_r02 974 -#define _GUARD_NOS_TUPLE_r12 975 -#define _GUARD_NOS_TUPLE_r22 976 -#define _GUARD_NOS_TUPLE_r33 977 -#define _GUARD_NOS_UNICODE_r02 978 -#define _GUARD_NOS_UNICODE_r12 979 -#define _GUARD_NOS_UNICODE_r22 980 -#define _GUARD_NOS_UNICODE_r33 981 -#define _GUARD_NOT_EXHAUSTED_LIST_r02 982 -#define _GUARD_NOT_EXHAUSTED_LIST_r12 983 -#define _GUARD_NOT_EXHAUSTED_LIST_r22 984 -#define _GUARD_NOT_EXHAUSTED_LIST_r33 985 -#define _GUARD_NOT_EXHAUSTED_RANGE_r02 986 -#define _GUARD_NOT_EXHAUSTED_RANGE_r12 987 -#define _GUARD_NOT_EXHAUSTED_RANGE_r22 988 -#define _GUARD_NOT_EXHAUSTED_RANGE_r33 989 -#define _GUARD_NOT_EXHAUSTED_TUPLE_r02 990 -#define _GUARD_NOT_EXHAUSTED_TUPLE_r12 991 -#define _GUARD_NOT_EXHAUSTED_TUPLE_r22 992 -#define _GUARD_NOT_EXHAUSTED_TUPLE_r33 993 -#define _GUARD_THIRD_NULL_r03 994 -#define _GUARD_THIRD_NULL_r13 995 -#define _GUARD_THIRD_NULL_r23 996 -#define _GUARD_THIRD_NULL_r33 997 -#define _GUARD_TOS_ANY_DICT_r01 998 -#define _GUARD_TOS_ANY_DICT_r11 999 -#define _GUARD_TOS_ANY_DICT_r22 1000 -#define _GUARD_TOS_ANY_DICT_r33 1001 -#define _GUARD_TOS_ANY_SET_r01 1002 -#define _GUARD_TOS_ANY_SET_r11 1003 -#define _GUARD_TOS_ANY_SET_r22 1004 -#define _GUARD_TOS_ANY_SET_r33 1005 -#define _GUARD_TOS_DICT_r01 1006 -#define _GUARD_TOS_DICT_r11 1007 -#define _GUARD_TOS_DICT_r22 1008 -#define _GUARD_TOS_DICT_r33 1009 -#define _GUARD_TOS_FLOAT_r01 1010 -#define _GUARD_TOS_FLOAT_r11 1011 -#define _GUARD_TOS_FLOAT_r22 1012 -#define _GUARD_TOS_FLOAT_r33 1013 -#define _GUARD_TOS_FROZENDICT_r01 1014 -#define _GUARD_TOS_FROZENDICT_r11 1015 -#define _GUARD_TOS_FROZENDICT_r22 1016 -#define _GUARD_TOS_FROZENDICT_r33 1017 -#define _GUARD_TOS_FROZENSET_r01 1018 -#define _GUARD_TOS_FROZENSET_r11 1019 -#define _GUARD_TOS_FROZENSET_r22 1020 -#define _GUARD_TOS_FROZENSET_r33 1021 -#define _GUARD_TOS_INT_r01 1022 -#define _GUARD_TOS_INT_r11 1023 -#define _GUARD_TOS_INT_r22 1024 -#define _GUARD_TOS_INT_r33 1025 -#define _GUARD_TOS_LIST_r01 1026 -#define _GUARD_TOS_LIST_r11 1027 -#define _GUARD_TOS_LIST_r22 1028 -#define _GUARD_TOS_LIST_r33 1029 -#define _GUARD_TOS_OVERFLOWED_r01 1030 -#define _GUARD_TOS_OVERFLOWED_r11 1031 -#define _GUARD_TOS_OVERFLOWED_r22 1032 -#define _GUARD_TOS_OVERFLOWED_r33 1033 -#define _GUARD_TOS_SET_r01 1034 -#define _GUARD_TOS_SET_r11 1035 -#define _GUARD_TOS_SET_r22 1036 -#define _GUARD_TOS_SET_r33 1037 -#define _GUARD_TOS_SLICE_r01 1038 -#define _GUARD_TOS_SLICE_r11 1039 -#define _GUARD_TOS_SLICE_r22 1040 -#define _GUARD_TOS_SLICE_r33 1041 -#define _GUARD_TOS_TUPLE_r01 1042 -#define _GUARD_TOS_TUPLE_r11 1043 -#define _GUARD_TOS_TUPLE_r22 1044 -#define _GUARD_TOS_TUPLE_r33 1045 -#define _GUARD_TOS_UNICODE_r01 1046 -#define _GUARD_TOS_UNICODE_r11 1047 -#define _GUARD_TOS_UNICODE_r22 1048 -#define _GUARD_TOS_UNICODE_r33 1049 -#define _GUARD_TYPE_VERSION_r01 1050 -#define _GUARD_TYPE_VERSION_r11 1051 -#define _GUARD_TYPE_VERSION_r22 1052 -#define _GUARD_TYPE_VERSION_r33 1053 -#define _GUARD_TYPE_VERSION_LOCKED_r01 1054 -#define _GUARD_TYPE_VERSION_LOCKED_r11 1055 -#define _GUARD_TYPE_VERSION_LOCKED_r22 1056 -#define _GUARD_TYPE_VERSION_LOCKED_r33 1057 -#define _HANDLE_PENDING_AND_DEOPT_r00 1058 -#define _HANDLE_PENDING_AND_DEOPT_r10 1059 -#define _HANDLE_PENDING_AND_DEOPT_r20 1060 -#define _HANDLE_PENDING_AND_DEOPT_r30 1061 -#define _IMPORT_FROM_r12 1062 -#define _IMPORT_NAME_r21 1063 -#define _INIT_CALL_BOUND_METHOD_EXACT_ARGS_r00 1064 -#define _INIT_CALL_PY_EXACT_ARGS_r01 1065 -#define _INIT_CALL_PY_EXACT_ARGS_0_r01 1066 -#define _INIT_CALL_PY_EXACT_ARGS_1_r01 1067 -#define _INIT_CALL_PY_EXACT_ARGS_2_r01 1068 -#define _INIT_CALL_PY_EXACT_ARGS_3_r01 1069 -#define _INIT_CALL_PY_EXACT_ARGS_4_r01 1070 -#define _INSERT_1_LOAD_CONST_INLINE_r02 1071 -#define _INSERT_1_LOAD_CONST_INLINE_r12 1072 -#define _INSERT_1_LOAD_CONST_INLINE_r23 1073 -#define _INSERT_1_LOAD_CONST_INLINE_BORROW_r02 1074 -#define _INSERT_1_LOAD_CONST_INLINE_BORROW_r12 1075 -#define _INSERT_1_LOAD_CONST_INLINE_BORROW_r23 1076 -#define _INSERT_2_LOAD_CONST_INLINE_BORROW_r03 1077 -#define _INSERT_2_LOAD_CONST_INLINE_BORROW_r13 1078 -#define _INSERT_2_LOAD_CONST_INLINE_BORROW_r23 1079 -#define _INSERT_NULL_r10 1080 -#define _INSTRUMENTED_FOR_ITER_r23 1081 -#define _INSTRUMENTED_INSTRUCTION_r00 1082 -#define _INSTRUMENTED_JUMP_FORWARD_r00 1083 -#define _INSTRUMENTED_JUMP_FORWARD_r11 1084 -#define _INSTRUMENTED_JUMP_FORWARD_r22 1085 -#define _INSTRUMENTED_JUMP_FORWARD_r33 1086 -#define _INSTRUMENTED_LINE_r00 1087 -#define _INSTRUMENTED_NOT_TAKEN_r00 1088 -#define _INSTRUMENTED_NOT_TAKEN_r11 1089 -#define _INSTRUMENTED_NOT_TAKEN_r22 1090 -#define _INSTRUMENTED_NOT_TAKEN_r33 1091 -#define _INSTRUMENTED_POP_JUMP_IF_FALSE_r00 1092 -#define _INSTRUMENTED_POP_JUMP_IF_FALSE_r10 1093 -#define _INSTRUMENTED_POP_JUMP_IF_FALSE_r21 1094 -#define _INSTRUMENTED_POP_JUMP_IF_FALSE_r32 1095 -#define _INSTRUMENTED_POP_JUMP_IF_NONE_r10 1096 -#define _INSTRUMENTED_POP_JUMP_IF_NOT_NONE_r10 1097 -#define _INSTRUMENTED_POP_JUMP_IF_TRUE_r00 1098 -#define _INSTRUMENTED_POP_JUMP_IF_TRUE_r10 1099 -#define _INSTRUMENTED_POP_JUMP_IF_TRUE_r21 1100 -#define _INSTRUMENTED_POP_JUMP_IF_TRUE_r32 1101 -#define _IS_NONE_r11 1102 -#define _IS_OP_r03 1103 -#define _IS_OP_r13 1104 -#define _IS_OP_r23 1105 -#define _ITER_CHECK_LIST_r02 1106 -#define _ITER_CHECK_LIST_r12 1107 -#define _ITER_CHECK_LIST_r22 1108 -#define _ITER_CHECK_LIST_r33 1109 -#define _ITER_CHECK_RANGE_r02 1110 -#define _ITER_CHECK_RANGE_r12 1111 -#define _ITER_CHECK_RANGE_r22 1112 -#define _ITER_CHECK_RANGE_r33 1113 -#define _ITER_CHECK_TUPLE_r02 1114 -#define _ITER_CHECK_TUPLE_r12 1115 -#define _ITER_CHECK_TUPLE_r22 1116 -#define _ITER_CHECK_TUPLE_r33 1117 -#define _ITER_JUMP_LIST_r02 1118 -#define _ITER_JUMP_LIST_r12 1119 -#define _ITER_JUMP_LIST_r22 1120 -#define _ITER_JUMP_LIST_r33 1121 -#define _ITER_JUMP_RANGE_r02 1122 -#define _ITER_JUMP_RANGE_r12 1123 -#define _ITER_JUMP_RANGE_r22 1124 -#define _ITER_JUMP_RANGE_r33 1125 -#define _ITER_JUMP_TUPLE_r02 1126 -#define _ITER_JUMP_TUPLE_r12 1127 -#define _ITER_JUMP_TUPLE_r22 1128 -#define _ITER_JUMP_TUPLE_r33 1129 -#define _ITER_NEXT_LIST_r23 1130 -#define _ITER_NEXT_LIST_TIER_TWO_r23 1131 -#define _ITER_NEXT_RANGE_r03 1132 -#define _ITER_NEXT_RANGE_r13 1133 -#define _ITER_NEXT_RANGE_r23 1134 -#define _ITER_NEXT_TUPLE_r03 1135 -#define _ITER_NEXT_TUPLE_r13 1136 -#define _ITER_NEXT_TUPLE_r23 1137 -#define _JUMP_BACKWARD_NO_INTERRUPT_r00 1138 -#define _JUMP_BACKWARD_NO_INTERRUPT_r11 1139 -#define _JUMP_BACKWARD_NO_INTERRUPT_r22 1140 -#define _JUMP_BACKWARD_NO_INTERRUPT_r33 1141 -#define _JUMP_TO_TOP_r00 1142 -#define _LIST_APPEND_r10 1143 -#define _LIST_EXTEND_r10 1144 -#define _LOAD_ATTR_r10 1145 -#define _LOAD_ATTR_CLASS_r11 1146 -#define _LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN_r11 1147 -#define _LOAD_ATTR_INSTANCE_VALUE_r02 1148 -#define _LOAD_ATTR_INSTANCE_VALUE_r12 1149 -#define _LOAD_ATTR_INSTANCE_VALUE_r23 1150 -#define _LOAD_ATTR_METHOD_LAZY_DICT_r02 1151 -#define _LOAD_ATTR_METHOD_LAZY_DICT_r12 1152 -#define _LOAD_ATTR_METHOD_LAZY_DICT_r23 1153 -#define _LOAD_ATTR_METHOD_NO_DICT_r02 1154 -#define _LOAD_ATTR_METHOD_NO_DICT_r12 1155 -#define _LOAD_ATTR_METHOD_NO_DICT_r23 1156 -#define _LOAD_ATTR_METHOD_WITH_VALUES_r02 1157 -#define _LOAD_ATTR_METHOD_WITH_VALUES_r12 1158 -#define _LOAD_ATTR_METHOD_WITH_VALUES_r23 1159 -#define _LOAD_ATTR_MODULE_r12 1160 -#define _LOAD_ATTR_NONDESCRIPTOR_NO_DICT_r11 1161 -#define _LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES_r11 1162 -#define _LOAD_ATTR_PROPERTY_FRAME_r11 1163 -#define _LOAD_ATTR_SLOT_r02 1164 -#define _LOAD_ATTR_SLOT_r12 1165 -#define _LOAD_ATTR_SLOT_r23 1166 -#define _LOAD_ATTR_WITH_HINT_r12 1167 -#define _LOAD_BUILD_CLASS_r01 1168 -#define _LOAD_BYTECODE_r00 1169 -#define _LOAD_COMMON_CONSTANT_r01 1170 -#define _LOAD_COMMON_CONSTANT_r12 1171 -#define _LOAD_COMMON_CONSTANT_r23 1172 -#define _LOAD_CONST_r01 1173 -#define _LOAD_CONST_r12 1174 -#define _LOAD_CONST_r23 1175 -#define _LOAD_CONST_INLINE_r01 1176 -#define _LOAD_CONST_INLINE_r12 1177 -#define _LOAD_CONST_INLINE_r23 1178 -#define _LOAD_CONST_INLINE_BORROW_r01 1179 -#define _LOAD_CONST_INLINE_BORROW_r12 1180 -#define _LOAD_CONST_INLINE_BORROW_r23 1181 -#define _LOAD_CONST_UNDER_INLINE_r02 1182 -#define _LOAD_CONST_UNDER_INLINE_r12 1183 -#define _LOAD_CONST_UNDER_INLINE_r23 1184 -#define _LOAD_CONST_UNDER_INLINE_BORROW_r02 1185 -#define _LOAD_CONST_UNDER_INLINE_BORROW_r12 1186 -#define _LOAD_CONST_UNDER_INLINE_BORROW_r23 1187 -#define _LOAD_DEREF_r01 1188 -#define _LOAD_FAST_r01 1189 -#define _LOAD_FAST_r12 1190 -#define _LOAD_FAST_r23 1191 -#define _LOAD_FAST_0_r01 1192 -#define _LOAD_FAST_0_r12 1193 -#define _LOAD_FAST_0_r23 1194 -#define _LOAD_FAST_1_r01 1195 -#define _LOAD_FAST_1_r12 1196 -#define _LOAD_FAST_1_r23 1197 -#define _LOAD_FAST_2_r01 1198 -#define _LOAD_FAST_2_r12 1199 -#define _LOAD_FAST_2_r23 1200 -#define _LOAD_FAST_3_r01 1201 -#define _LOAD_FAST_3_r12 1202 -#define _LOAD_FAST_3_r23 1203 -#define _LOAD_FAST_4_r01 1204 -#define _LOAD_FAST_4_r12 1205 -#define _LOAD_FAST_4_r23 1206 -#define _LOAD_FAST_5_r01 1207 -#define _LOAD_FAST_5_r12 1208 -#define _LOAD_FAST_5_r23 1209 -#define _LOAD_FAST_6_r01 1210 -#define _LOAD_FAST_6_r12 1211 -#define _LOAD_FAST_6_r23 1212 -#define _LOAD_FAST_7_r01 1213 -#define _LOAD_FAST_7_r12 1214 -#define _LOAD_FAST_7_r23 1215 -#define _LOAD_FAST_AND_CLEAR_r01 1216 -#define _LOAD_FAST_AND_CLEAR_r12 1217 -#define _LOAD_FAST_AND_CLEAR_r23 1218 -#define _LOAD_FAST_BORROW_r01 1219 -#define _LOAD_FAST_BORROW_r12 1220 -#define _LOAD_FAST_BORROW_r23 1221 -#define _LOAD_FAST_BORROW_0_r01 1222 -#define _LOAD_FAST_BORROW_0_r12 1223 -#define _LOAD_FAST_BORROW_0_r23 1224 -#define _LOAD_FAST_BORROW_1_r01 1225 -#define _LOAD_FAST_BORROW_1_r12 1226 -#define _LOAD_FAST_BORROW_1_r23 1227 -#define _LOAD_FAST_BORROW_2_r01 1228 -#define _LOAD_FAST_BORROW_2_r12 1229 -#define _LOAD_FAST_BORROW_2_r23 1230 -#define _LOAD_FAST_BORROW_3_r01 1231 -#define _LOAD_FAST_BORROW_3_r12 1232 -#define _LOAD_FAST_BORROW_3_r23 1233 -#define _LOAD_FAST_BORROW_4_r01 1234 -#define _LOAD_FAST_BORROW_4_r12 1235 -#define _LOAD_FAST_BORROW_4_r23 1236 -#define _LOAD_FAST_BORROW_5_r01 1237 -#define _LOAD_FAST_BORROW_5_r12 1238 -#define _LOAD_FAST_BORROW_5_r23 1239 -#define _LOAD_FAST_BORROW_6_r01 1240 -#define _LOAD_FAST_BORROW_6_r12 1241 -#define _LOAD_FAST_BORROW_6_r23 1242 -#define _LOAD_FAST_BORROW_7_r01 1243 -#define _LOAD_FAST_BORROW_7_r12 1244 -#define _LOAD_FAST_BORROW_7_r23 1245 -#define _LOAD_FAST_BORROW_LOAD_FAST_BORROW_r02 1246 -#define _LOAD_FAST_BORROW_LOAD_FAST_BORROW_r13 1247 -#define _LOAD_FAST_CHECK_r01 1248 -#define _LOAD_FAST_CHECK_r12 1249 -#define _LOAD_FAST_CHECK_r23 1250 -#define _LOAD_FAST_LOAD_FAST_r02 1251 -#define _LOAD_FAST_LOAD_FAST_r13 1252 -#define _LOAD_FROM_DICT_OR_DEREF_r11 1253 -#define _LOAD_FROM_DICT_OR_GLOBALS_r11 1254 -#define _LOAD_GLOBAL_r00 1255 -#define _LOAD_GLOBAL_BUILTINS_r01 1256 -#define _LOAD_GLOBAL_MODULE_r01 1257 -#define _LOAD_LOCALS_r01 1258 -#define _LOAD_LOCALS_r12 1259 -#define _LOAD_LOCALS_r23 1260 -#define _LOAD_NAME_r01 1261 -#define _LOAD_SMALL_INT_r01 1262 -#define _LOAD_SMALL_INT_r12 1263 -#define _LOAD_SMALL_INT_r23 1264 -#define _LOAD_SMALL_INT_0_r01 1265 -#define _LOAD_SMALL_INT_0_r12 1266 -#define _LOAD_SMALL_INT_0_r23 1267 -#define _LOAD_SMALL_INT_1_r01 1268 -#define _LOAD_SMALL_INT_1_r12 1269 -#define _LOAD_SMALL_INT_1_r23 1270 -#define _LOAD_SMALL_INT_2_r01 1271 -#define _LOAD_SMALL_INT_2_r12 1272 -#define _LOAD_SMALL_INT_2_r23 1273 -#define _LOAD_SMALL_INT_3_r01 1274 -#define _LOAD_SMALL_INT_3_r12 1275 -#define _LOAD_SMALL_INT_3_r23 1276 -#define _LOAD_SPECIAL_r00 1277 -#define _LOAD_SUPER_ATTR_ATTR_r31 1278 -#define _LOAD_SUPER_ATTR_METHOD_r32 1279 -#define _LOCK_OBJECT_r01 1280 -#define _LOCK_OBJECT_r11 1281 -#define _LOCK_OBJECT_r22 1282 -#define _LOCK_OBJECT_r33 1283 -#define _MAKE_CALLARGS_A_TUPLE_r33 1284 -#define _MAKE_CELL_r00 1285 -#define _MAKE_FUNCTION_r11 1286 -#define _MAKE_HEAP_SAFE_r01 1287 -#define _MAKE_HEAP_SAFE_r11 1288 -#define _MAKE_HEAP_SAFE_r22 1289 -#define _MAKE_HEAP_SAFE_r33 1290 -#define _MAKE_WARM_r00 1291 -#define _MAKE_WARM_r11 1292 -#define _MAKE_WARM_r22 1293 -#define _MAKE_WARM_r33 1294 -#define _MAP_ADD_r20 1295 -#define _MATCH_CLASS_r33 1296 -#define _MATCH_KEYS_r23 1297 -#define _MATCH_MAPPING_r02 1298 -#define _MATCH_MAPPING_r12 1299 -#define _MATCH_MAPPING_r23 1300 -#define _MATCH_SEQUENCE_r02 1301 -#define _MATCH_SEQUENCE_r12 1302 -#define _MATCH_SEQUENCE_r23 1303 -#define _MAYBE_EXPAND_METHOD_r00 1304 -#define _MAYBE_EXPAND_METHOD_KW_r11 1305 -#define _MONITOR_CALL_r00 1306 -#define _MONITOR_CALL_KW_r11 1307 -#define _MONITOR_JUMP_BACKWARD_r00 1308 -#define _MONITOR_JUMP_BACKWARD_r11 1309 -#define _MONITOR_JUMP_BACKWARD_r22 1310 -#define _MONITOR_JUMP_BACKWARD_r33 1311 -#define _MONITOR_RESUME_r00 1312 -#define _NOP_r00 1313 -#define _NOP_r11 1314 -#define _NOP_r22 1315 -#define _NOP_r33 1316 -#define _POP_CALL_r20 1317 -#define _POP_CALL_LOAD_CONST_INLINE_BORROW_r21 1318 -#define _POP_CALL_ONE_r30 1319 -#define _POP_CALL_ONE_LOAD_CONST_INLINE_BORROW_r31 1320 -#define _POP_CALL_TWO_r30 1321 -#define _POP_CALL_TWO_LOAD_CONST_INLINE_BORROW_r31 1322 -#define _POP_EXCEPT_r10 1323 -#define _POP_ITER_r20 1324 -#define _POP_JUMP_IF_FALSE_r00 1325 -#define _POP_JUMP_IF_FALSE_r10 1326 -#define _POP_JUMP_IF_FALSE_r21 1327 -#define _POP_JUMP_IF_FALSE_r32 1328 -#define _POP_JUMP_IF_TRUE_r00 1329 -#define _POP_JUMP_IF_TRUE_r10 1330 -#define _POP_JUMP_IF_TRUE_r21 1331 -#define _POP_JUMP_IF_TRUE_r32 1332 -#define _POP_TOP_r10 1333 -#define _POP_TOP_FLOAT_r00 1334 -#define _POP_TOP_FLOAT_r10 1335 -#define _POP_TOP_FLOAT_r21 1336 -#define _POP_TOP_FLOAT_r32 1337 -#define _POP_TOP_INT_r00 1338 -#define _POP_TOP_INT_r10 1339 -#define _POP_TOP_INT_r21 1340 -#define _POP_TOP_INT_r32 1341 -#define _POP_TOP_LOAD_CONST_INLINE_r11 1342 -#define _POP_TOP_LOAD_CONST_INLINE_BORROW_r11 1343 -#define _POP_TOP_NOP_r00 1344 -#define _POP_TOP_NOP_r10 1345 -#define _POP_TOP_NOP_r21 1346 -#define _POP_TOP_NOP_r32 1347 -#define _POP_TOP_UNICODE_r00 1348 -#define _POP_TOP_UNICODE_r10 1349 -#define _POP_TOP_UNICODE_r21 1350 -#define _POP_TOP_UNICODE_r32 1351 -#define _POP_TWO_r20 1352 -#define _POP_TWO_LOAD_CONST_INLINE_BORROW_r21 1353 -#define _PUSH_EXC_INFO_r02 1354 -#define _PUSH_EXC_INFO_r12 1355 -#define _PUSH_EXC_INFO_r23 1356 -#define _PUSH_FRAME_r10 1357 -#define _PUSH_NULL_r01 1358 -#define _PUSH_NULL_r12 1359 -#define _PUSH_NULL_r23 1360 -#define _PUSH_NULL_CONDITIONAL_r00 1361 -#define _PY_FRAME_EX_r31 1362 -#define _PY_FRAME_GENERAL_r01 1363 -#define _PY_FRAME_KW_r11 1364 -#define _REPLACE_WITH_TRUE_r02 1365 -#define _REPLACE_WITH_TRUE_r12 1366 -#define _REPLACE_WITH_TRUE_r23 1367 -#define _RESUME_CHECK_r00 1368 -#define _RESUME_CHECK_r11 1369 -#define _RESUME_CHECK_r22 1370 -#define _RESUME_CHECK_r33 1371 -#define _RETURN_GENERATOR_r01 1372 -#define _RETURN_VALUE_r11 1373 -#define _SAVE_RETURN_OFFSET_r00 1374 -#define _SAVE_RETURN_OFFSET_r11 1375 -#define _SAVE_RETURN_OFFSET_r22 1376 -#define _SAVE_RETURN_OFFSET_r33 1377 -#define _SEND_r33 1378 -#define _SEND_GEN_FRAME_r33 1379 -#define _SETUP_ANNOTATIONS_r00 1380 -#define _SET_ADD_r10 1381 -#define _SET_FUNCTION_ATTRIBUTE_r01 1382 -#define _SET_FUNCTION_ATTRIBUTE_r11 1383 -#define _SET_FUNCTION_ATTRIBUTE_r21 1384 -#define _SET_FUNCTION_ATTRIBUTE_r32 1385 -#define _SET_IP_r00 1386 -#define _SET_IP_r11 1387 -#define _SET_IP_r22 1388 -#define _SET_IP_r33 1389 -#define _SET_UPDATE_r11 1390 -#define _SHUFFLE_2_LOAD_CONST_INLINE_BORROW_r02 1391 -#define _SHUFFLE_2_LOAD_CONST_INLINE_BORROW_r12 1392 -#define _SHUFFLE_2_LOAD_CONST_INLINE_BORROW_r22 1393 -#define _SHUFFLE_2_LOAD_CONST_INLINE_BORROW_r32 1394 -#define _SHUFFLE_3_LOAD_CONST_INLINE_BORROW_r03 1395 -#define _SHUFFLE_3_LOAD_CONST_INLINE_BORROW_r13 1396 -#define _SHUFFLE_3_LOAD_CONST_INLINE_BORROW_r23 1397 -#define _SHUFFLE_3_LOAD_CONST_INLINE_BORROW_r33 1398 -#define _SPILL_OR_RELOAD_r01 1399 -#define _SPILL_OR_RELOAD_r02 1400 -#define _SPILL_OR_RELOAD_r03 1401 -#define _SPILL_OR_RELOAD_r10 1402 -#define _SPILL_OR_RELOAD_r12 1403 -#define _SPILL_OR_RELOAD_r13 1404 -#define _SPILL_OR_RELOAD_r20 1405 -#define _SPILL_OR_RELOAD_r21 1406 -#define _SPILL_OR_RELOAD_r23 1407 -#define _SPILL_OR_RELOAD_r30 1408 -#define _SPILL_OR_RELOAD_r31 1409 -#define _SPILL_OR_RELOAD_r32 1410 -#define _START_EXECUTOR_r00 1411 -#define _STORE_ATTR_r20 1412 -#define _STORE_ATTR_INSTANCE_VALUE_r21 1413 -#define _STORE_ATTR_SLOT_r21 1414 -#define _STORE_ATTR_WITH_HINT_r21 1415 -#define _STORE_DEREF_r10 1416 -#define _STORE_FAST_LOAD_FAST_r11 1417 -#define _STORE_FAST_STORE_FAST_r20 1418 -#define _STORE_GLOBAL_r10 1419 -#define _STORE_NAME_r10 1420 -#define _STORE_SLICE_r30 1421 -#define _STORE_SUBSCR_r30 1422 -#define _STORE_SUBSCR_DICT_r31 1423 -#define _STORE_SUBSCR_LIST_INT_r32 1424 -#define _SWAP_r11 1425 -#define _SWAP_2_r02 1426 -#define _SWAP_2_r12 1427 -#define _SWAP_2_r22 1428 -#define _SWAP_2_r33 1429 -#define _SWAP_3_r03 1430 -#define _SWAP_3_r13 1431 -#define _SWAP_3_r23 1432 -#define _SWAP_3_r33 1433 -#define _SWAP_FAST_r01 1434 -#define _SWAP_FAST_r11 1435 -#define _SWAP_FAST_r22 1436 -#define _SWAP_FAST_r33 1437 -#define _SWAP_FAST_0_r01 1438 -#define _SWAP_FAST_0_r11 1439 -#define _SWAP_FAST_0_r22 1440 -#define _SWAP_FAST_0_r33 1441 -#define _SWAP_FAST_1_r01 1442 -#define _SWAP_FAST_1_r11 1443 -#define _SWAP_FAST_1_r22 1444 -#define _SWAP_FAST_1_r33 1445 -#define _SWAP_FAST_2_r01 1446 -#define _SWAP_FAST_2_r11 1447 -#define _SWAP_FAST_2_r22 1448 -#define _SWAP_FAST_2_r33 1449 -#define _SWAP_FAST_3_r01 1450 -#define _SWAP_FAST_3_r11 1451 -#define _SWAP_FAST_3_r22 1452 -#define _SWAP_FAST_3_r33 1453 -#define _SWAP_FAST_4_r01 1454 -#define _SWAP_FAST_4_r11 1455 -#define _SWAP_FAST_4_r22 1456 -#define _SWAP_FAST_4_r33 1457 -#define _SWAP_FAST_5_r01 1458 -#define _SWAP_FAST_5_r11 1459 -#define _SWAP_FAST_5_r22 1460 -#define _SWAP_FAST_5_r33 1461 -#define _SWAP_FAST_6_r01 1462 -#define _SWAP_FAST_6_r11 1463 -#define _SWAP_FAST_6_r22 1464 -#define _SWAP_FAST_6_r33 1465 -#define _SWAP_FAST_7_r01 1466 -#define _SWAP_FAST_7_r11 1467 -#define _SWAP_FAST_7_r22 1468 -#define _SWAP_FAST_7_r33 1469 -#define _TIER2_RESUME_CHECK_r00 1470 -#define _TIER2_RESUME_CHECK_r11 1471 -#define _TIER2_RESUME_CHECK_r22 1472 -#define _TIER2_RESUME_CHECK_r33 1473 -#define _TO_BOOL_r11 1474 -#define _TO_BOOL_BOOL_r01 1475 -#define _TO_BOOL_BOOL_r11 1476 -#define _TO_BOOL_BOOL_r22 1477 -#define _TO_BOOL_BOOL_r33 1478 -#define _TO_BOOL_INT_r02 1479 -#define _TO_BOOL_INT_r12 1480 -#define _TO_BOOL_INT_r23 1481 -#define _TO_BOOL_LIST_r02 1482 -#define _TO_BOOL_LIST_r12 1483 -#define _TO_BOOL_LIST_r23 1484 -#define _TO_BOOL_NONE_r01 1485 -#define _TO_BOOL_NONE_r11 1486 -#define _TO_BOOL_NONE_r22 1487 -#define _TO_BOOL_NONE_r33 1488 -#define _TO_BOOL_STR_r02 1489 -#define _TO_BOOL_STR_r12 1490 -#define _TO_BOOL_STR_r23 1491 -#define _TRACE_RECORD_r00 1492 -#define _UNARY_INVERT_r12 1493 -#define _UNARY_NEGATIVE_r12 1494 -#define _UNARY_NOT_r01 1495 -#define _UNARY_NOT_r11 1496 -#define _UNARY_NOT_r22 1497 -#define _UNARY_NOT_r33 1498 -#define _UNPACK_EX_r10 1499 -#define _UNPACK_SEQUENCE_r10 1500 -#define _UNPACK_SEQUENCE_LIST_r10 1501 -#define _UNPACK_SEQUENCE_TUPLE_r10 1502 -#define _UNPACK_SEQUENCE_TWO_TUPLE_r12 1503 -#define _UNPACK_SEQUENCE_UNIQUE_THREE_TUPLE_r03 1504 -#define _UNPACK_SEQUENCE_UNIQUE_THREE_TUPLE_r13 1505 -#define _UNPACK_SEQUENCE_UNIQUE_TUPLE_r10 1506 -#define _UNPACK_SEQUENCE_UNIQUE_TWO_TUPLE_r02 1507 -#define _UNPACK_SEQUENCE_UNIQUE_TWO_TUPLE_r12 1508 -#define _UNPACK_SEQUENCE_UNIQUE_TWO_TUPLE_r23 1509 -#define _WITH_EXCEPT_START_r33 1510 -#define _YIELD_VALUE_r11 1511 -#define MAX_UOP_REGS_ID 1511 +#define _YIELD_VALUE 615 +#define MAX_UOP_ID 615 +#define _BINARY_OP_r23 616 +#define _BINARY_OP_ADD_FLOAT_r03 617 +#define _BINARY_OP_ADD_FLOAT_r13 618 +#define _BINARY_OP_ADD_FLOAT_r23 619 +#define _BINARY_OP_ADD_FLOAT_INPLACE_r03 620 +#define _BINARY_OP_ADD_FLOAT_INPLACE_r13 621 +#define _BINARY_OP_ADD_FLOAT_INPLACE_r23 622 +#define _BINARY_OP_ADD_FLOAT_INPLACE_RIGHT_r03 623 +#define _BINARY_OP_ADD_FLOAT_INPLACE_RIGHT_r13 624 +#define _BINARY_OP_ADD_FLOAT_INPLACE_RIGHT_r23 625 +#define _BINARY_OP_ADD_INT_r03 626 +#define _BINARY_OP_ADD_INT_r13 627 +#define _BINARY_OP_ADD_INT_r23 628 +#define _BINARY_OP_ADD_UNICODE_r03 629 +#define _BINARY_OP_ADD_UNICODE_r13 630 +#define _BINARY_OP_ADD_UNICODE_r23 631 +#define _BINARY_OP_EXTEND_r23 632 +#define _BINARY_OP_INPLACE_ADD_UNICODE_r21 633 +#define _BINARY_OP_MULTIPLY_FLOAT_r03 634 +#define _BINARY_OP_MULTIPLY_FLOAT_r13 635 +#define _BINARY_OP_MULTIPLY_FLOAT_r23 636 +#define _BINARY_OP_MULTIPLY_FLOAT_INPLACE_r03 637 +#define _BINARY_OP_MULTIPLY_FLOAT_INPLACE_r13 638 +#define _BINARY_OP_MULTIPLY_FLOAT_INPLACE_r23 639 +#define _BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT_r03 640 +#define _BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT_r13 641 +#define _BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT_r23 642 +#define _BINARY_OP_MULTIPLY_INT_r03 643 +#define _BINARY_OP_MULTIPLY_INT_r13 644 +#define _BINARY_OP_MULTIPLY_INT_r23 645 +#define _BINARY_OP_SUBSCR_CHECK_FUNC_r23 646 +#define _BINARY_OP_SUBSCR_DICT_r23 647 +#define _BINARY_OP_SUBSCR_INIT_CALL_r01 648 +#define _BINARY_OP_SUBSCR_INIT_CALL_r11 649 +#define _BINARY_OP_SUBSCR_INIT_CALL_r21 650 +#define _BINARY_OP_SUBSCR_INIT_CALL_r31 651 +#define _BINARY_OP_SUBSCR_LIST_INT_r23 652 +#define _BINARY_OP_SUBSCR_LIST_SLICE_r23 653 +#define _BINARY_OP_SUBSCR_STR_INT_r23 654 +#define _BINARY_OP_SUBSCR_TUPLE_INT_r03 655 +#define _BINARY_OP_SUBSCR_TUPLE_INT_r13 656 +#define _BINARY_OP_SUBSCR_TUPLE_INT_r23 657 +#define _BINARY_OP_SUBSCR_USTR_INT_r23 658 +#define _BINARY_OP_SUBTRACT_FLOAT_r03 659 +#define _BINARY_OP_SUBTRACT_FLOAT_r13 660 +#define _BINARY_OP_SUBTRACT_FLOAT_r23 661 +#define _BINARY_OP_SUBTRACT_FLOAT_INPLACE_r03 662 +#define _BINARY_OP_SUBTRACT_FLOAT_INPLACE_r13 663 +#define _BINARY_OP_SUBTRACT_FLOAT_INPLACE_r23 664 +#define _BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT_r03 665 +#define _BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT_r13 666 +#define _BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT_r23 667 +#define _BINARY_OP_SUBTRACT_INT_r03 668 +#define _BINARY_OP_SUBTRACT_INT_r13 669 +#define _BINARY_OP_SUBTRACT_INT_r23 670 +#define _BINARY_SLICE_r31 671 +#define _BUILD_INTERPOLATION_r01 672 +#define _BUILD_LIST_r01 673 +#define _BUILD_MAP_r01 674 +#define _BUILD_SET_r01 675 +#define _BUILD_SLICE_r01 676 +#define _BUILD_STRING_r01 677 +#define _BUILD_TEMPLATE_r21 678 +#define _BUILD_TUPLE_r01 679 +#define _CALL_BUILTIN_CLASS_r01 680 +#define _CALL_BUILTIN_FAST_r01 681 +#define _CALL_BUILTIN_FAST_WITH_KEYWORDS_r01 682 +#define _CALL_BUILTIN_O_r03 683 +#define _CALL_FUNCTION_EX_NON_PY_GENERAL_r31 684 +#define _CALL_INTRINSIC_1_r12 685 +#define _CALL_INTRINSIC_2_r21 686 +#define _CALL_ISINSTANCE_r31 687 +#define _CALL_KW_NON_PY_r11 688 +#define _CALL_LEN_r33 689 +#define _CALL_LIST_APPEND_r03 690 +#define _CALL_LIST_APPEND_r13 691 +#define _CALL_LIST_APPEND_r23 692 +#define _CALL_LIST_APPEND_r33 693 +#define _CALL_METHOD_DESCRIPTOR_FAST_r01 694 +#define _CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS_r01 695 +#define _CALL_METHOD_DESCRIPTOR_NOARGS_r01 696 +#define _CALL_METHOD_DESCRIPTOR_O_r03 697 +#define _CALL_NON_PY_GENERAL_r01 698 +#define _CALL_STR_1_r32 699 +#define _CALL_TUPLE_1_r32 700 +#define _CALL_TYPE_1_r02 701 +#define _CALL_TYPE_1_r12 702 +#define _CALL_TYPE_1_r22 703 +#define _CALL_TYPE_1_r32 704 +#define _CHECK_AND_ALLOCATE_OBJECT_r00 705 +#define _CHECK_ATTR_CLASS_r01 706 +#define _CHECK_ATTR_CLASS_r11 707 +#define _CHECK_ATTR_CLASS_r22 708 +#define _CHECK_ATTR_CLASS_r33 709 +#define _CHECK_ATTR_METHOD_LAZY_DICT_r01 710 +#define _CHECK_ATTR_METHOD_LAZY_DICT_r11 711 +#define _CHECK_ATTR_METHOD_LAZY_DICT_r22 712 +#define _CHECK_ATTR_METHOD_LAZY_DICT_r33 713 +#define _CHECK_CALL_BOUND_METHOD_EXACT_ARGS_r00 714 +#define _CHECK_EG_MATCH_r22 715 +#define _CHECK_EXC_MATCH_r22 716 +#define _CHECK_FUNCTION_EXACT_ARGS_r00 717 +#define _CHECK_FUNCTION_VERSION_r00 718 +#define _CHECK_FUNCTION_VERSION_INLINE_r00 719 +#define _CHECK_FUNCTION_VERSION_INLINE_r11 720 +#define _CHECK_FUNCTION_VERSION_INLINE_r22 721 +#define _CHECK_FUNCTION_VERSION_INLINE_r33 722 +#define _CHECK_FUNCTION_VERSION_KW_r11 723 +#define _CHECK_IS_NOT_PY_CALLABLE_r00 724 +#define _CHECK_IS_NOT_PY_CALLABLE_EX_r03 725 +#define _CHECK_IS_NOT_PY_CALLABLE_EX_r13 726 +#define _CHECK_IS_NOT_PY_CALLABLE_EX_r23 727 +#define _CHECK_IS_NOT_PY_CALLABLE_EX_r33 728 +#define _CHECK_IS_NOT_PY_CALLABLE_KW_r11 729 +#define _CHECK_IS_PY_CALLABLE_EX_r03 730 +#define _CHECK_IS_PY_CALLABLE_EX_r13 731 +#define _CHECK_IS_PY_CALLABLE_EX_r23 732 +#define _CHECK_IS_PY_CALLABLE_EX_r33 733 +#define _CHECK_MANAGED_OBJECT_HAS_VALUES_r01 734 +#define _CHECK_MANAGED_OBJECT_HAS_VALUES_r11 735 +#define _CHECK_MANAGED_OBJECT_HAS_VALUES_r22 736 +#define _CHECK_MANAGED_OBJECT_HAS_VALUES_r33 737 +#define _CHECK_METHOD_VERSION_r00 738 +#define _CHECK_METHOD_VERSION_KW_r11 739 +#define _CHECK_PEP_523_r00 740 +#define _CHECK_PEP_523_r11 741 +#define _CHECK_PEP_523_r22 742 +#define _CHECK_PEP_523_r33 743 +#define _CHECK_PERIODIC_r00 744 +#define _CHECK_PERIODIC_AT_END_r00 745 +#define _CHECK_PERIODIC_IF_NOT_YIELD_FROM_r00 746 +#define _CHECK_RECURSION_REMAINING_r00 747 +#define _CHECK_RECURSION_REMAINING_r11 748 +#define _CHECK_RECURSION_REMAINING_r22 749 +#define _CHECK_RECURSION_REMAINING_r33 750 +#define _CHECK_STACK_SPACE_r00 751 +#define _CHECK_STACK_SPACE_OPERAND_r00 752 +#define _CHECK_STACK_SPACE_OPERAND_r11 753 +#define _CHECK_STACK_SPACE_OPERAND_r22 754 +#define _CHECK_STACK_SPACE_OPERAND_r33 755 +#define _CHECK_VALIDITY_r00 756 +#define _CHECK_VALIDITY_r11 757 +#define _CHECK_VALIDITY_r22 758 +#define _CHECK_VALIDITY_r33 759 +#define _COLD_DYNAMIC_EXIT_r00 760 +#define _COLD_EXIT_r00 761 +#define _COMPARE_OP_r21 762 +#define _COMPARE_OP_FLOAT_r03 763 +#define _COMPARE_OP_FLOAT_r13 764 +#define _COMPARE_OP_FLOAT_r23 765 +#define _COMPARE_OP_INT_r23 766 +#define _COMPARE_OP_STR_r23 767 +#define _CONTAINS_OP_r23 768 +#define _CONTAINS_OP_DICT_r23 769 +#define _CONTAINS_OP_SET_r23 770 +#define _CONVERT_VALUE_r11 771 +#define _COPY_r01 772 +#define _COPY_1_r02 773 +#define _COPY_1_r12 774 +#define _COPY_1_r23 775 +#define _COPY_2_r03 776 +#define _COPY_2_r13 777 +#define _COPY_2_r23 778 +#define _COPY_3_r03 779 +#define _COPY_3_r13 780 +#define _COPY_3_r23 781 +#define _COPY_3_r33 782 +#define _COPY_FREE_VARS_r00 783 +#define _COPY_FREE_VARS_r11 784 +#define _COPY_FREE_VARS_r22 785 +#define _COPY_FREE_VARS_r33 786 +#define _CREATE_INIT_FRAME_r01 787 +#define _DELETE_ATTR_r10 788 +#define _DELETE_DEREF_r00 789 +#define _DELETE_FAST_r00 790 +#define _DELETE_GLOBAL_r00 791 +#define _DELETE_NAME_r00 792 +#define _DELETE_SUBSCR_r20 793 +#define _DEOPT_r00 794 +#define _DEOPT_r10 795 +#define _DEOPT_r20 796 +#define _DEOPT_r30 797 +#define _DICT_MERGE_r11 798 +#define _DICT_UPDATE_r10 799 +#define _DO_CALL_r01 800 +#define _DO_CALL_FUNCTION_EX_r31 801 +#define _DO_CALL_KW_r11 802 +#define _DYNAMIC_EXIT_r00 803 +#define _DYNAMIC_EXIT_r10 804 +#define _DYNAMIC_EXIT_r20 805 +#define _DYNAMIC_EXIT_r30 806 +#define _END_FOR_r10 807 +#define _END_SEND_r31 808 +#define _ERROR_POP_N_r00 809 +#define _EXIT_INIT_CHECK_r10 810 +#define _EXIT_TRACE_r00 811 +#define _EXIT_TRACE_r10 812 +#define _EXIT_TRACE_r20 813 +#define _EXIT_TRACE_r30 814 +#define _EXPAND_METHOD_r00 815 +#define _EXPAND_METHOD_KW_r11 816 +#define _FATAL_ERROR_r00 817 +#define _FATAL_ERROR_r11 818 +#define _FATAL_ERROR_r22 819 +#define _FATAL_ERROR_r33 820 +#define _FORMAT_SIMPLE_r11 821 +#define _FORMAT_WITH_SPEC_r21 822 +#define _FOR_ITER_r23 823 +#define _FOR_ITER_GEN_FRAME_r03 824 +#define _FOR_ITER_GEN_FRAME_r13 825 +#define _FOR_ITER_GEN_FRAME_r23 826 +#define _FOR_ITER_TIER_TWO_r23 827 +#define _GET_AITER_r11 828 +#define _GET_ANEXT_r12 829 +#define _GET_AWAITABLE_r11 830 +#define _GET_ITER_r12 831 +#define _GET_LEN_r12 832 +#define _GUARD_BINARY_OP_EXTEND_r22 833 +#define _GUARD_BINARY_OP_SUBSCR_TUPLE_INT_BOUNDS_r02 834 +#define _GUARD_BINARY_OP_SUBSCR_TUPLE_INT_BOUNDS_r12 835 +#define _GUARD_BINARY_OP_SUBSCR_TUPLE_INT_BOUNDS_r22 836 +#define _GUARD_BINARY_OP_SUBSCR_TUPLE_INT_BOUNDS_r33 837 +#define _GUARD_BIT_IS_SET_POP_r00 838 +#define _GUARD_BIT_IS_SET_POP_r10 839 +#define _GUARD_BIT_IS_SET_POP_r21 840 +#define _GUARD_BIT_IS_SET_POP_r32 841 +#define _GUARD_BIT_IS_SET_POP_4_r00 842 +#define _GUARD_BIT_IS_SET_POP_4_r10 843 +#define _GUARD_BIT_IS_SET_POP_4_r21 844 +#define _GUARD_BIT_IS_SET_POP_4_r32 845 +#define _GUARD_BIT_IS_SET_POP_5_r00 846 +#define _GUARD_BIT_IS_SET_POP_5_r10 847 +#define _GUARD_BIT_IS_SET_POP_5_r21 848 +#define _GUARD_BIT_IS_SET_POP_5_r32 849 +#define _GUARD_BIT_IS_SET_POP_6_r00 850 +#define _GUARD_BIT_IS_SET_POP_6_r10 851 +#define _GUARD_BIT_IS_SET_POP_6_r21 852 +#define _GUARD_BIT_IS_SET_POP_6_r32 853 +#define _GUARD_BIT_IS_SET_POP_7_r00 854 +#define _GUARD_BIT_IS_SET_POP_7_r10 855 +#define _GUARD_BIT_IS_SET_POP_7_r21 856 +#define _GUARD_BIT_IS_SET_POP_7_r32 857 +#define _GUARD_BIT_IS_UNSET_POP_r00 858 +#define _GUARD_BIT_IS_UNSET_POP_r10 859 +#define _GUARD_BIT_IS_UNSET_POP_r21 860 +#define _GUARD_BIT_IS_UNSET_POP_r32 861 +#define _GUARD_BIT_IS_UNSET_POP_4_r00 862 +#define _GUARD_BIT_IS_UNSET_POP_4_r10 863 +#define _GUARD_BIT_IS_UNSET_POP_4_r21 864 +#define _GUARD_BIT_IS_UNSET_POP_4_r32 865 +#define _GUARD_BIT_IS_UNSET_POP_5_r00 866 +#define _GUARD_BIT_IS_UNSET_POP_5_r10 867 +#define _GUARD_BIT_IS_UNSET_POP_5_r21 868 +#define _GUARD_BIT_IS_UNSET_POP_5_r32 869 +#define _GUARD_BIT_IS_UNSET_POP_6_r00 870 +#define _GUARD_BIT_IS_UNSET_POP_6_r10 871 +#define _GUARD_BIT_IS_UNSET_POP_6_r21 872 +#define _GUARD_BIT_IS_UNSET_POP_6_r32 873 +#define _GUARD_BIT_IS_UNSET_POP_7_r00 874 +#define _GUARD_BIT_IS_UNSET_POP_7_r10 875 +#define _GUARD_BIT_IS_UNSET_POP_7_r21 876 +#define _GUARD_BIT_IS_UNSET_POP_7_r32 877 +#define _GUARD_CALLABLE_ISINSTANCE_r03 878 +#define _GUARD_CALLABLE_ISINSTANCE_r13 879 +#define _GUARD_CALLABLE_ISINSTANCE_r23 880 +#define _GUARD_CALLABLE_ISINSTANCE_r33 881 +#define _GUARD_CALLABLE_LEN_r03 882 +#define _GUARD_CALLABLE_LEN_r13 883 +#define _GUARD_CALLABLE_LEN_r23 884 +#define _GUARD_CALLABLE_LEN_r33 885 +#define _GUARD_CALLABLE_LIST_APPEND_r03 886 +#define _GUARD_CALLABLE_LIST_APPEND_r13 887 +#define _GUARD_CALLABLE_LIST_APPEND_r23 888 +#define _GUARD_CALLABLE_LIST_APPEND_r33 889 +#define _GUARD_CALLABLE_STR_1_r03 890 +#define _GUARD_CALLABLE_STR_1_r13 891 +#define _GUARD_CALLABLE_STR_1_r23 892 +#define _GUARD_CALLABLE_STR_1_r33 893 +#define _GUARD_CALLABLE_TUPLE_1_r03 894 +#define _GUARD_CALLABLE_TUPLE_1_r13 895 +#define _GUARD_CALLABLE_TUPLE_1_r23 896 +#define _GUARD_CALLABLE_TUPLE_1_r33 897 +#define _GUARD_CALLABLE_TYPE_1_r03 898 +#define _GUARD_CALLABLE_TYPE_1_r13 899 +#define _GUARD_CALLABLE_TYPE_1_r23 900 +#define _GUARD_CALLABLE_TYPE_1_r33 901 +#define _GUARD_CODE_VERSION_RETURN_GENERATOR_r00 902 +#define _GUARD_CODE_VERSION_RETURN_GENERATOR_r11 903 +#define _GUARD_CODE_VERSION_RETURN_GENERATOR_r22 904 +#define _GUARD_CODE_VERSION_RETURN_GENERATOR_r33 905 +#define _GUARD_CODE_VERSION_RETURN_VALUE_r00 906 +#define _GUARD_CODE_VERSION_RETURN_VALUE_r11 907 +#define _GUARD_CODE_VERSION_RETURN_VALUE_r22 908 +#define _GUARD_CODE_VERSION_RETURN_VALUE_r33 909 +#define _GUARD_CODE_VERSION_YIELD_VALUE_r00 910 +#define _GUARD_CODE_VERSION_YIELD_VALUE_r11 911 +#define _GUARD_CODE_VERSION_YIELD_VALUE_r22 912 +#define _GUARD_CODE_VERSION_YIELD_VALUE_r33 913 +#define _GUARD_CODE_VERSION__PUSH_FRAME_r00 914 +#define _GUARD_CODE_VERSION__PUSH_FRAME_r11 915 +#define _GUARD_CODE_VERSION__PUSH_FRAME_r22 916 +#define _GUARD_CODE_VERSION__PUSH_FRAME_r33 917 +#define _GUARD_DORV_NO_DICT_r01 918 +#define _GUARD_DORV_NO_DICT_r11 919 +#define _GUARD_DORV_NO_DICT_r22 920 +#define _GUARD_DORV_NO_DICT_r33 921 +#define _GUARD_DORV_VALUES_INST_ATTR_FROM_DICT_r01 922 +#define _GUARD_DORV_VALUES_INST_ATTR_FROM_DICT_r11 923 +#define _GUARD_DORV_VALUES_INST_ATTR_FROM_DICT_r22 924 +#define _GUARD_DORV_VALUES_INST_ATTR_FROM_DICT_r33 925 +#define _GUARD_GLOBALS_VERSION_r00 926 +#define _GUARD_GLOBALS_VERSION_r11 927 +#define _GUARD_GLOBALS_VERSION_r22 928 +#define _GUARD_GLOBALS_VERSION_r33 929 +#define _GUARD_IP_RETURN_GENERATOR_r00 930 +#define _GUARD_IP_RETURN_GENERATOR_r11 931 +#define _GUARD_IP_RETURN_GENERATOR_r22 932 +#define _GUARD_IP_RETURN_GENERATOR_r33 933 +#define _GUARD_IP_RETURN_VALUE_r00 934 +#define _GUARD_IP_RETURN_VALUE_r11 935 +#define _GUARD_IP_RETURN_VALUE_r22 936 +#define _GUARD_IP_RETURN_VALUE_r33 937 +#define _GUARD_IP_YIELD_VALUE_r00 938 +#define _GUARD_IP_YIELD_VALUE_r11 939 +#define _GUARD_IP_YIELD_VALUE_r22 940 +#define _GUARD_IP_YIELD_VALUE_r33 941 +#define _GUARD_IP__PUSH_FRAME_r00 942 +#define _GUARD_IP__PUSH_FRAME_r11 943 +#define _GUARD_IP__PUSH_FRAME_r22 944 +#define _GUARD_IP__PUSH_FRAME_r33 945 +#define _GUARD_IS_FALSE_POP_r00 946 +#define _GUARD_IS_FALSE_POP_r10 947 +#define _GUARD_IS_FALSE_POP_r21 948 +#define _GUARD_IS_FALSE_POP_r32 949 +#define _GUARD_IS_NONE_POP_r00 950 +#define _GUARD_IS_NONE_POP_r10 951 +#define _GUARD_IS_NONE_POP_r21 952 +#define _GUARD_IS_NONE_POP_r32 953 +#define _GUARD_IS_NOT_NONE_POP_r10 954 +#define _GUARD_IS_TRUE_POP_r00 955 +#define _GUARD_IS_TRUE_POP_r10 956 +#define _GUARD_IS_TRUE_POP_r21 957 +#define _GUARD_IS_TRUE_POP_r32 958 +#define _GUARD_KEYS_VERSION_r01 959 +#define _GUARD_KEYS_VERSION_r11 960 +#define _GUARD_KEYS_VERSION_r22 961 +#define _GUARD_KEYS_VERSION_r33 962 +#define _GUARD_NOS_ANY_DICT_r02 963 +#define _GUARD_NOS_ANY_DICT_r12 964 +#define _GUARD_NOS_ANY_DICT_r22 965 +#define _GUARD_NOS_ANY_DICT_r33 966 +#define _GUARD_NOS_COMPACT_ASCII_r02 967 +#define _GUARD_NOS_COMPACT_ASCII_r12 968 +#define _GUARD_NOS_COMPACT_ASCII_r22 969 +#define _GUARD_NOS_COMPACT_ASCII_r33 970 +#define _GUARD_NOS_DICT_r02 971 +#define _GUARD_NOS_DICT_r12 972 +#define _GUARD_NOS_DICT_r22 973 +#define _GUARD_NOS_DICT_r33 974 +#define _GUARD_NOS_FLOAT_r02 975 +#define _GUARD_NOS_FLOAT_r12 976 +#define _GUARD_NOS_FLOAT_r22 977 +#define _GUARD_NOS_FLOAT_r33 978 +#define _GUARD_NOS_INT_r02 979 +#define _GUARD_NOS_INT_r12 980 +#define _GUARD_NOS_INT_r22 981 +#define _GUARD_NOS_INT_r33 982 +#define _GUARD_NOS_LIST_r02 983 +#define _GUARD_NOS_LIST_r12 984 +#define _GUARD_NOS_LIST_r22 985 +#define _GUARD_NOS_LIST_r33 986 +#define _GUARD_NOS_NOT_NULL_r02 987 +#define _GUARD_NOS_NOT_NULL_r12 988 +#define _GUARD_NOS_NOT_NULL_r22 989 +#define _GUARD_NOS_NOT_NULL_r33 990 +#define _GUARD_NOS_NULL_r02 991 +#define _GUARD_NOS_NULL_r12 992 +#define _GUARD_NOS_NULL_r22 993 +#define _GUARD_NOS_NULL_r33 994 +#define _GUARD_NOS_OVERFLOWED_r02 995 +#define _GUARD_NOS_OVERFLOWED_r12 996 +#define _GUARD_NOS_OVERFLOWED_r22 997 +#define _GUARD_NOS_OVERFLOWED_r33 998 +#define _GUARD_NOS_TUPLE_r02 999 +#define _GUARD_NOS_TUPLE_r12 1000 +#define _GUARD_NOS_TUPLE_r22 1001 +#define _GUARD_NOS_TUPLE_r33 1002 +#define _GUARD_NOS_UNICODE_r02 1003 +#define _GUARD_NOS_UNICODE_r12 1004 +#define _GUARD_NOS_UNICODE_r22 1005 +#define _GUARD_NOS_UNICODE_r33 1006 +#define _GUARD_NOT_EXHAUSTED_LIST_r02 1007 +#define _GUARD_NOT_EXHAUSTED_LIST_r12 1008 +#define _GUARD_NOT_EXHAUSTED_LIST_r22 1009 +#define _GUARD_NOT_EXHAUSTED_LIST_r33 1010 +#define _GUARD_NOT_EXHAUSTED_RANGE_r02 1011 +#define _GUARD_NOT_EXHAUSTED_RANGE_r12 1012 +#define _GUARD_NOT_EXHAUSTED_RANGE_r22 1013 +#define _GUARD_NOT_EXHAUSTED_RANGE_r33 1014 +#define _GUARD_NOT_EXHAUSTED_TUPLE_r02 1015 +#define _GUARD_NOT_EXHAUSTED_TUPLE_r12 1016 +#define _GUARD_NOT_EXHAUSTED_TUPLE_r22 1017 +#define _GUARD_NOT_EXHAUSTED_TUPLE_r33 1018 +#define _GUARD_THIRD_NULL_r03 1019 +#define _GUARD_THIRD_NULL_r13 1020 +#define _GUARD_THIRD_NULL_r23 1021 +#define _GUARD_THIRD_NULL_r33 1022 +#define _GUARD_TOS_ANY_DICT_r01 1023 +#define _GUARD_TOS_ANY_DICT_r11 1024 +#define _GUARD_TOS_ANY_DICT_r22 1025 +#define _GUARD_TOS_ANY_DICT_r33 1026 +#define _GUARD_TOS_ANY_SET_r01 1027 +#define _GUARD_TOS_ANY_SET_r11 1028 +#define _GUARD_TOS_ANY_SET_r22 1029 +#define _GUARD_TOS_ANY_SET_r33 1030 +#define _GUARD_TOS_DICT_r01 1031 +#define _GUARD_TOS_DICT_r11 1032 +#define _GUARD_TOS_DICT_r22 1033 +#define _GUARD_TOS_DICT_r33 1034 +#define _GUARD_TOS_FLOAT_r01 1035 +#define _GUARD_TOS_FLOAT_r11 1036 +#define _GUARD_TOS_FLOAT_r22 1037 +#define _GUARD_TOS_FLOAT_r33 1038 +#define _GUARD_TOS_FROZENDICT_r01 1039 +#define _GUARD_TOS_FROZENDICT_r11 1040 +#define _GUARD_TOS_FROZENDICT_r22 1041 +#define _GUARD_TOS_FROZENDICT_r33 1042 +#define _GUARD_TOS_FROZENSET_r01 1043 +#define _GUARD_TOS_FROZENSET_r11 1044 +#define _GUARD_TOS_FROZENSET_r22 1045 +#define _GUARD_TOS_FROZENSET_r33 1046 +#define _GUARD_TOS_INT_r01 1047 +#define _GUARD_TOS_INT_r11 1048 +#define _GUARD_TOS_INT_r22 1049 +#define _GUARD_TOS_INT_r33 1050 +#define _GUARD_TOS_LIST_r01 1051 +#define _GUARD_TOS_LIST_r11 1052 +#define _GUARD_TOS_LIST_r22 1053 +#define _GUARD_TOS_LIST_r33 1054 +#define _GUARD_TOS_OVERFLOWED_r01 1055 +#define _GUARD_TOS_OVERFLOWED_r11 1056 +#define _GUARD_TOS_OVERFLOWED_r22 1057 +#define _GUARD_TOS_OVERFLOWED_r33 1058 +#define _GUARD_TOS_SET_r01 1059 +#define _GUARD_TOS_SET_r11 1060 +#define _GUARD_TOS_SET_r22 1061 +#define _GUARD_TOS_SET_r33 1062 +#define _GUARD_TOS_SLICE_r01 1063 +#define _GUARD_TOS_SLICE_r11 1064 +#define _GUARD_TOS_SLICE_r22 1065 +#define _GUARD_TOS_SLICE_r33 1066 +#define _GUARD_TOS_TUPLE_r01 1067 +#define _GUARD_TOS_TUPLE_r11 1068 +#define _GUARD_TOS_TUPLE_r22 1069 +#define _GUARD_TOS_TUPLE_r33 1070 +#define _GUARD_TOS_UNICODE_r01 1071 +#define _GUARD_TOS_UNICODE_r11 1072 +#define _GUARD_TOS_UNICODE_r22 1073 +#define _GUARD_TOS_UNICODE_r33 1074 +#define _GUARD_TYPE_VERSION_r01 1075 +#define _GUARD_TYPE_VERSION_r11 1076 +#define _GUARD_TYPE_VERSION_r22 1077 +#define _GUARD_TYPE_VERSION_r33 1078 +#define _GUARD_TYPE_VERSION_LOCKED_r01 1079 +#define _GUARD_TYPE_VERSION_LOCKED_r11 1080 +#define _GUARD_TYPE_VERSION_LOCKED_r22 1081 +#define _GUARD_TYPE_VERSION_LOCKED_r33 1082 +#define _HANDLE_PENDING_AND_DEOPT_r00 1083 +#define _HANDLE_PENDING_AND_DEOPT_r10 1084 +#define _HANDLE_PENDING_AND_DEOPT_r20 1085 +#define _HANDLE_PENDING_AND_DEOPT_r30 1086 +#define _IMPORT_FROM_r12 1087 +#define _IMPORT_NAME_r21 1088 +#define _INIT_CALL_BOUND_METHOD_EXACT_ARGS_r00 1089 +#define _INIT_CALL_PY_EXACT_ARGS_r01 1090 +#define _INIT_CALL_PY_EXACT_ARGS_0_r01 1091 +#define _INIT_CALL_PY_EXACT_ARGS_1_r01 1092 +#define _INIT_CALL_PY_EXACT_ARGS_2_r01 1093 +#define _INIT_CALL_PY_EXACT_ARGS_3_r01 1094 +#define _INIT_CALL_PY_EXACT_ARGS_4_r01 1095 +#define _INSERT_1_LOAD_CONST_INLINE_r02 1096 +#define _INSERT_1_LOAD_CONST_INLINE_r12 1097 +#define _INSERT_1_LOAD_CONST_INLINE_r23 1098 +#define _INSERT_1_LOAD_CONST_INLINE_BORROW_r02 1099 +#define _INSERT_1_LOAD_CONST_INLINE_BORROW_r12 1100 +#define _INSERT_1_LOAD_CONST_INLINE_BORROW_r23 1101 +#define _INSERT_2_LOAD_CONST_INLINE_BORROW_r03 1102 +#define _INSERT_2_LOAD_CONST_INLINE_BORROW_r13 1103 +#define _INSERT_2_LOAD_CONST_INLINE_BORROW_r23 1104 +#define _INSERT_NULL_r10 1105 +#define _INSTRUMENTED_FOR_ITER_r23 1106 +#define _INSTRUMENTED_INSTRUCTION_r00 1107 +#define _INSTRUMENTED_JUMP_FORWARD_r00 1108 +#define _INSTRUMENTED_JUMP_FORWARD_r11 1109 +#define _INSTRUMENTED_JUMP_FORWARD_r22 1110 +#define _INSTRUMENTED_JUMP_FORWARD_r33 1111 +#define _INSTRUMENTED_LINE_r00 1112 +#define _INSTRUMENTED_NOT_TAKEN_r00 1113 +#define _INSTRUMENTED_NOT_TAKEN_r11 1114 +#define _INSTRUMENTED_NOT_TAKEN_r22 1115 +#define _INSTRUMENTED_NOT_TAKEN_r33 1116 +#define _INSTRUMENTED_POP_JUMP_IF_FALSE_r00 1117 +#define _INSTRUMENTED_POP_JUMP_IF_FALSE_r10 1118 +#define _INSTRUMENTED_POP_JUMP_IF_FALSE_r21 1119 +#define _INSTRUMENTED_POP_JUMP_IF_FALSE_r32 1120 +#define _INSTRUMENTED_POP_JUMP_IF_NONE_r10 1121 +#define _INSTRUMENTED_POP_JUMP_IF_NOT_NONE_r10 1122 +#define _INSTRUMENTED_POP_JUMP_IF_TRUE_r00 1123 +#define _INSTRUMENTED_POP_JUMP_IF_TRUE_r10 1124 +#define _INSTRUMENTED_POP_JUMP_IF_TRUE_r21 1125 +#define _INSTRUMENTED_POP_JUMP_IF_TRUE_r32 1126 +#define _IS_NONE_r11 1127 +#define _IS_OP_r03 1128 +#define _IS_OP_r13 1129 +#define _IS_OP_r23 1130 +#define _ITER_CHECK_LIST_r02 1131 +#define _ITER_CHECK_LIST_r12 1132 +#define _ITER_CHECK_LIST_r22 1133 +#define _ITER_CHECK_LIST_r33 1134 +#define _ITER_CHECK_RANGE_r02 1135 +#define _ITER_CHECK_RANGE_r12 1136 +#define _ITER_CHECK_RANGE_r22 1137 +#define _ITER_CHECK_RANGE_r33 1138 +#define _ITER_CHECK_TUPLE_r02 1139 +#define _ITER_CHECK_TUPLE_r12 1140 +#define _ITER_CHECK_TUPLE_r22 1141 +#define _ITER_CHECK_TUPLE_r33 1142 +#define _ITER_JUMP_LIST_r02 1143 +#define _ITER_JUMP_LIST_r12 1144 +#define _ITER_JUMP_LIST_r22 1145 +#define _ITER_JUMP_LIST_r33 1146 +#define _ITER_JUMP_RANGE_r02 1147 +#define _ITER_JUMP_RANGE_r12 1148 +#define _ITER_JUMP_RANGE_r22 1149 +#define _ITER_JUMP_RANGE_r33 1150 +#define _ITER_JUMP_TUPLE_r02 1151 +#define _ITER_JUMP_TUPLE_r12 1152 +#define _ITER_JUMP_TUPLE_r22 1153 +#define _ITER_JUMP_TUPLE_r33 1154 +#define _ITER_NEXT_LIST_r23 1155 +#define _ITER_NEXT_LIST_TIER_TWO_r23 1156 +#define _ITER_NEXT_RANGE_r03 1157 +#define _ITER_NEXT_RANGE_r13 1158 +#define _ITER_NEXT_RANGE_r23 1159 +#define _ITER_NEXT_TUPLE_r03 1160 +#define _ITER_NEXT_TUPLE_r13 1161 +#define _ITER_NEXT_TUPLE_r23 1162 +#define _JUMP_BACKWARD_NO_INTERRUPT_r00 1163 +#define _JUMP_BACKWARD_NO_INTERRUPT_r11 1164 +#define _JUMP_BACKWARD_NO_INTERRUPT_r22 1165 +#define _JUMP_BACKWARD_NO_INTERRUPT_r33 1166 +#define _JUMP_TO_TOP_r00 1167 +#define _LIST_APPEND_r10 1168 +#define _LIST_EXTEND_r10 1169 +#define _LOAD_ATTR_r10 1170 +#define _LOAD_ATTR_CLASS_r11 1171 +#define _LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN_r11 1172 +#define _LOAD_ATTR_INSTANCE_VALUE_r02 1173 +#define _LOAD_ATTR_INSTANCE_VALUE_r12 1174 +#define _LOAD_ATTR_INSTANCE_VALUE_r23 1175 +#define _LOAD_ATTR_METHOD_LAZY_DICT_r02 1176 +#define _LOAD_ATTR_METHOD_LAZY_DICT_r12 1177 +#define _LOAD_ATTR_METHOD_LAZY_DICT_r23 1178 +#define _LOAD_ATTR_METHOD_NO_DICT_r02 1179 +#define _LOAD_ATTR_METHOD_NO_DICT_r12 1180 +#define _LOAD_ATTR_METHOD_NO_DICT_r23 1181 +#define _LOAD_ATTR_METHOD_WITH_VALUES_r02 1182 +#define _LOAD_ATTR_METHOD_WITH_VALUES_r12 1183 +#define _LOAD_ATTR_METHOD_WITH_VALUES_r23 1184 +#define _LOAD_ATTR_MODULE_r12 1185 +#define _LOAD_ATTR_NONDESCRIPTOR_NO_DICT_r11 1186 +#define _LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES_r11 1187 +#define _LOAD_ATTR_PROPERTY_FRAME_r11 1188 +#define _LOAD_ATTR_SLOT_r02 1189 +#define _LOAD_ATTR_SLOT_r12 1190 +#define _LOAD_ATTR_SLOT_r23 1191 +#define _LOAD_ATTR_WITH_HINT_r12 1192 +#define _LOAD_BUILD_CLASS_r01 1193 +#define _LOAD_BYTECODE_r00 1194 +#define _LOAD_COMMON_CONSTANT_r01 1195 +#define _LOAD_COMMON_CONSTANT_r12 1196 +#define _LOAD_COMMON_CONSTANT_r23 1197 +#define _LOAD_CONST_r01 1198 +#define _LOAD_CONST_r12 1199 +#define _LOAD_CONST_r23 1200 +#define _LOAD_CONST_INLINE_r01 1201 +#define _LOAD_CONST_INLINE_r12 1202 +#define _LOAD_CONST_INLINE_r23 1203 +#define _LOAD_CONST_INLINE_BORROW_r01 1204 +#define _LOAD_CONST_INLINE_BORROW_r12 1205 +#define _LOAD_CONST_INLINE_BORROW_r23 1206 +#define _LOAD_CONST_UNDER_INLINE_r02 1207 +#define _LOAD_CONST_UNDER_INLINE_r12 1208 +#define _LOAD_CONST_UNDER_INLINE_r23 1209 +#define _LOAD_CONST_UNDER_INLINE_BORROW_r02 1210 +#define _LOAD_CONST_UNDER_INLINE_BORROW_r12 1211 +#define _LOAD_CONST_UNDER_INLINE_BORROW_r23 1212 +#define _LOAD_DEREF_r01 1213 +#define _LOAD_FAST_r01 1214 +#define _LOAD_FAST_r12 1215 +#define _LOAD_FAST_r23 1216 +#define _LOAD_FAST_0_r01 1217 +#define _LOAD_FAST_0_r12 1218 +#define _LOAD_FAST_0_r23 1219 +#define _LOAD_FAST_1_r01 1220 +#define _LOAD_FAST_1_r12 1221 +#define _LOAD_FAST_1_r23 1222 +#define _LOAD_FAST_2_r01 1223 +#define _LOAD_FAST_2_r12 1224 +#define _LOAD_FAST_2_r23 1225 +#define _LOAD_FAST_3_r01 1226 +#define _LOAD_FAST_3_r12 1227 +#define _LOAD_FAST_3_r23 1228 +#define _LOAD_FAST_4_r01 1229 +#define _LOAD_FAST_4_r12 1230 +#define _LOAD_FAST_4_r23 1231 +#define _LOAD_FAST_5_r01 1232 +#define _LOAD_FAST_5_r12 1233 +#define _LOAD_FAST_5_r23 1234 +#define _LOAD_FAST_6_r01 1235 +#define _LOAD_FAST_6_r12 1236 +#define _LOAD_FAST_6_r23 1237 +#define _LOAD_FAST_7_r01 1238 +#define _LOAD_FAST_7_r12 1239 +#define _LOAD_FAST_7_r23 1240 +#define _LOAD_FAST_AND_CLEAR_r01 1241 +#define _LOAD_FAST_AND_CLEAR_r12 1242 +#define _LOAD_FAST_AND_CLEAR_r23 1243 +#define _LOAD_FAST_BORROW_r01 1244 +#define _LOAD_FAST_BORROW_r12 1245 +#define _LOAD_FAST_BORROW_r23 1246 +#define _LOAD_FAST_BORROW_0_r01 1247 +#define _LOAD_FAST_BORROW_0_r12 1248 +#define _LOAD_FAST_BORROW_0_r23 1249 +#define _LOAD_FAST_BORROW_1_r01 1250 +#define _LOAD_FAST_BORROW_1_r12 1251 +#define _LOAD_FAST_BORROW_1_r23 1252 +#define _LOAD_FAST_BORROW_2_r01 1253 +#define _LOAD_FAST_BORROW_2_r12 1254 +#define _LOAD_FAST_BORROW_2_r23 1255 +#define _LOAD_FAST_BORROW_3_r01 1256 +#define _LOAD_FAST_BORROW_3_r12 1257 +#define _LOAD_FAST_BORROW_3_r23 1258 +#define _LOAD_FAST_BORROW_4_r01 1259 +#define _LOAD_FAST_BORROW_4_r12 1260 +#define _LOAD_FAST_BORROW_4_r23 1261 +#define _LOAD_FAST_BORROW_5_r01 1262 +#define _LOAD_FAST_BORROW_5_r12 1263 +#define _LOAD_FAST_BORROW_5_r23 1264 +#define _LOAD_FAST_BORROW_6_r01 1265 +#define _LOAD_FAST_BORROW_6_r12 1266 +#define _LOAD_FAST_BORROW_6_r23 1267 +#define _LOAD_FAST_BORROW_7_r01 1268 +#define _LOAD_FAST_BORROW_7_r12 1269 +#define _LOAD_FAST_BORROW_7_r23 1270 +#define _LOAD_FAST_BORROW_LOAD_FAST_BORROW_r02 1271 +#define _LOAD_FAST_BORROW_LOAD_FAST_BORROW_r13 1272 +#define _LOAD_FAST_CHECK_r01 1273 +#define _LOAD_FAST_CHECK_r12 1274 +#define _LOAD_FAST_CHECK_r23 1275 +#define _LOAD_FAST_LOAD_FAST_r02 1276 +#define _LOAD_FAST_LOAD_FAST_r13 1277 +#define _LOAD_FROM_DICT_OR_DEREF_r11 1278 +#define _LOAD_FROM_DICT_OR_GLOBALS_r11 1279 +#define _LOAD_GLOBAL_r00 1280 +#define _LOAD_GLOBAL_BUILTINS_r01 1281 +#define _LOAD_GLOBAL_MODULE_r01 1282 +#define _LOAD_LOCALS_r01 1283 +#define _LOAD_LOCALS_r12 1284 +#define _LOAD_LOCALS_r23 1285 +#define _LOAD_NAME_r01 1286 +#define _LOAD_SMALL_INT_r01 1287 +#define _LOAD_SMALL_INT_r12 1288 +#define _LOAD_SMALL_INT_r23 1289 +#define _LOAD_SMALL_INT_0_r01 1290 +#define _LOAD_SMALL_INT_0_r12 1291 +#define _LOAD_SMALL_INT_0_r23 1292 +#define _LOAD_SMALL_INT_1_r01 1293 +#define _LOAD_SMALL_INT_1_r12 1294 +#define _LOAD_SMALL_INT_1_r23 1295 +#define _LOAD_SMALL_INT_2_r01 1296 +#define _LOAD_SMALL_INT_2_r12 1297 +#define _LOAD_SMALL_INT_2_r23 1298 +#define _LOAD_SMALL_INT_3_r01 1299 +#define _LOAD_SMALL_INT_3_r12 1300 +#define _LOAD_SMALL_INT_3_r23 1301 +#define _LOAD_SPECIAL_r00 1302 +#define _LOAD_SUPER_ATTR_ATTR_r31 1303 +#define _LOAD_SUPER_ATTR_METHOD_r32 1304 +#define _LOCK_OBJECT_r01 1305 +#define _LOCK_OBJECT_r11 1306 +#define _LOCK_OBJECT_r22 1307 +#define _LOCK_OBJECT_r33 1308 +#define _MAKE_CALLARGS_A_TUPLE_r33 1309 +#define _MAKE_CELL_r00 1310 +#define _MAKE_FUNCTION_r11 1311 +#define _MAKE_HEAP_SAFE_r01 1312 +#define _MAKE_HEAP_SAFE_r11 1313 +#define _MAKE_HEAP_SAFE_r22 1314 +#define _MAKE_HEAP_SAFE_r33 1315 +#define _MAKE_WARM_r00 1316 +#define _MAKE_WARM_r11 1317 +#define _MAKE_WARM_r22 1318 +#define _MAKE_WARM_r33 1319 +#define _MAP_ADD_r20 1320 +#define _MATCH_CLASS_r33 1321 +#define _MATCH_KEYS_r23 1322 +#define _MATCH_MAPPING_r02 1323 +#define _MATCH_MAPPING_r12 1324 +#define _MATCH_MAPPING_r23 1325 +#define _MATCH_SEQUENCE_r02 1326 +#define _MATCH_SEQUENCE_r12 1327 +#define _MATCH_SEQUENCE_r23 1328 +#define _MAYBE_EXPAND_METHOD_r00 1329 +#define _MAYBE_EXPAND_METHOD_KW_r11 1330 +#define _MONITOR_CALL_r00 1331 +#define _MONITOR_CALL_KW_r11 1332 +#define _MONITOR_JUMP_BACKWARD_r00 1333 +#define _MONITOR_JUMP_BACKWARD_r11 1334 +#define _MONITOR_JUMP_BACKWARD_r22 1335 +#define _MONITOR_JUMP_BACKWARD_r33 1336 +#define _MONITOR_RESUME_r00 1337 +#define _NOP_r00 1338 +#define _NOP_r11 1339 +#define _NOP_r22 1340 +#define _NOP_r33 1341 +#define _POP_CALL_r20 1342 +#define _POP_CALL_LOAD_CONST_INLINE_BORROW_r21 1343 +#define _POP_CALL_ONE_r30 1344 +#define _POP_CALL_ONE_LOAD_CONST_INLINE_BORROW_r31 1345 +#define _POP_CALL_TWO_r30 1346 +#define _POP_CALL_TWO_LOAD_CONST_INLINE_BORROW_r31 1347 +#define _POP_EXCEPT_r10 1348 +#define _POP_ITER_r20 1349 +#define _POP_JUMP_IF_FALSE_r00 1350 +#define _POP_JUMP_IF_FALSE_r10 1351 +#define _POP_JUMP_IF_FALSE_r21 1352 +#define _POP_JUMP_IF_FALSE_r32 1353 +#define _POP_JUMP_IF_TRUE_r00 1354 +#define _POP_JUMP_IF_TRUE_r10 1355 +#define _POP_JUMP_IF_TRUE_r21 1356 +#define _POP_JUMP_IF_TRUE_r32 1357 +#define _POP_TOP_r10 1358 +#define _POP_TOP_FLOAT_r00 1359 +#define _POP_TOP_FLOAT_r10 1360 +#define _POP_TOP_FLOAT_r21 1361 +#define _POP_TOP_FLOAT_r32 1362 +#define _POP_TOP_INT_r00 1363 +#define _POP_TOP_INT_r10 1364 +#define _POP_TOP_INT_r21 1365 +#define _POP_TOP_INT_r32 1366 +#define _POP_TOP_LOAD_CONST_INLINE_r11 1367 +#define _POP_TOP_LOAD_CONST_INLINE_BORROW_r11 1368 +#define _POP_TOP_NOP_r00 1369 +#define _POP_TOP_NOP_r10 1370 +#define _POP_TOP_NOP_r21 1371 +#define _POP_TOP_NOP_r32 1372 +#define _POP_TOP_UNICODE_r00 1373 +#define _POP_TOP_UNICODE_r10 1374 +#define _POP_TOP_UNICODE_r21 1375 +#define _POP_TOP_UNICODE_r32 1376 +#define _POP_TWO_r20 1377 +#define _POP_TWO_LOAD_CONST_INLINE_BORROW_r21 1378 +#define _PUSH_EXC_INFO_r02 1379 +#define _PUSH_EXC_INFO_r12 1380 +#define _PUSH_EXC_INFO_r23 1381 +#define _PUSH_FRAME_r10 1382 +#define _PUSH_NULL_r01 1383 +#define _PUSH_NULL_r12 1384 +#define _PUSH_NULL_r23 1385 +#define _PUSH_NULL_CONDITIONAL_r00 1386 +#define _PY_FRAME_EX_r31 1387 +#define _PY_FRAME_GENERAL_r01 1388 +#define _PY_FRAME_KW_r11 1389 +#define _REPLACE_WITH_TRUE_r02 1390 +#define _REPLACE_WITH_TRUE_r12 1391 +#define _REPLACE_WITH_TRUE_r23 1392 +#define _RESUME_CHECK_r00 1393 +#define _RESUME_CHECK_r11 1394 +#define _RESUME_CHECK_r22 1395 +#define _RESUME_CHECK_r33 1396 +#define _RETURN_GENERATOR_r01 1397 +#define _RETURN_VALUE_r11 1398 +#define _SAVE_RETURN_OFFSET_r00 1399 +#define _SAVE_RETURN_OFFSET_r11 1400 +#define _SAVE_RETURN_OFFSET_r22 1401 +#define _SAVE_RETURN_OFFSET_r33 1402 +#define _SEND_r33 1403 +#define _SEND_GEN_FRAME_r33 1404 +#define _SETUP_ANNOTATIONS_r00 1405 +#define _SET_ADD_r10 1406 +#define _SET_FUNCTION_ATTRIBUTE_r01 1407 +#define _SET_FUNCTION_ATTRIBUTE_r11 1408 +#define _SET_FUNCTION_ATTRIBUTE_r21 1409 +#define _SET_FUNCTION_ATTRIBUTE_r32 1410 +#define _SET_IP_r00 1411 +#define _SET_IP_r11 1412 +#define _SET_IP_r22 1413 +#define _SET_IP_r33 1414 +#define _SET_UPDATE_r11 1415 +#define _SHUFFLE_2_LOAD_CONST_INLINE_BORROW_r02 1416 +#define _SHUFFLE_2_LOAD_CONST_INLINE_BORROW_r12 1417 +#define _SHUFFLE_2_LOAD_CONST_INLINE_BORROW_r22 1418 +#define _SHUFFLE_2_LOAD_CONST_INLINE_BORROW_r32 1419 +#define _SHUFFLE_3_LOAD_CONST_INLINE_BORROW_r03 1420 +#define _SHUFFLE_3_LOAD_CONST_INLINE_BORROW_r13 1421 +#define _SHUFFLE_3_LOAD_CONST_INLINE_BORROW_r23 1422 +#define _SHUFFLE_3_LOAD_CONST_INLINE_BORROW_r33 1423 +#define _SPILL_OR_RELOAD_r01 1424 +#define _SPILL_OR_RELOAD_r02 1425 +#define _SPILL_OR_RELOAD_r03 1426 +#define _SPILL_OR_RELOAD_r10 1427 +#define _SPILL_OR_RELOAD_r12 1428 +#define _SPILL_OR_RELOAD_r13 1429 +#define _SPILL_OR_RELOAD_r20 1430 +#define _SPILL_OR_RELOAD_r21 1431 +#define _SPILL_OR_RELOAD_r23 1432 +#define _SPILL_OR_RELOAD_r30 1433 +#define _SPILL_OR_RELOAD_r31 1434 +#define _SPILL_OR_RELOAD_r32 1435 +#define _START_EXECUTOR_r00 1436 +#define _STORE_ATTR_r20 1437 +#define _STORE_ATTR_INSTANCE_VALUE_r21 1438 +#define _STORE_ATTR_SLOT_r21 1439 +#define _STORE_ATTR_WITH_HINT_r21 1440 +#define _STORE_DEREF_r10 1441 +#define _STORE_FAST_LOAD_FAST_r11 1442 +#define _STORE_FAST_STORE_FAST_r20 1443 +#define _STORE_GLOBAL_r10 1444 +#define _STORE_NAME_r10 1445 +#define _STORE_SLICE_r30 1446 +#define _STORE_SUBSCR_r30 1447 +#define _STORE_SUBSCR_DICT_r31 1448 +#define _STORE_SUBSCR_LIST_INT_r32 1449 +#define _SWAP_r11 1450 +#define _SWAP_2_r02 1451 +#define _SWAP_2_r12 1452 +#define _SWAP_2_r22 1453 +#define _SWAP_2_r33 1454 +#define _SWAP_3_r03 1455 +#define _SWAP_3_r13 1456 +#define _SWAP_3_r23 1457 +#define _SWAP_3_r33 1458 +#define _SWAP_FAST_r01 1459 +#define _SWAP_FAST_r11 1460 +#define _SWAP_FAST_r22 1461 +#define _SWAP_FAST_r33 1462 +#define _SWAP_FAST_0_r01 1463 +#define _SWAP_FAST_0_r11 1464 +#define _SWAP_FAST_0_r22 1465 +#define _SWAP_FAST_0_r33 1466 +#define _SWAP_FAST_1_r01 1467 +#define _SWAP_FAST_1_r11 1468 +#define _SWAP_FAST_1_r22 1469 +#define _SWAP_FAST_1_r33 1470 +#define _SWAP_FAST_2_r01 1471 +#define _SWAP_FAST_2_r11 1472 +#define _SWAP_FAST_2_r22 1473 +#define _SWAP_FAST_2_r33 1474 +#define _SWAP_FAST_3_r01 1475 +#define _SWAP_FAST_3_r11 1476 +#define _SWAP_FAST_3_r22 1477 +#define _SWAP_FAST_3_r33 1478 +#define _SWAP_FAST_4_r01 1479 +#define _SWAP_FAST_4_r11 1480 +#define _SWAP_FAST_4_r22 1481 +#define _SWAP_FAST_4_r33 1482 +#define _SWAP_FAST_5_r01 1483 +#define _SWAP_FAST_5_r11 1484 +#define _SWAP_FAST_5_r22 1485 +#define _SWAP_FAST_5_r33 1486 +#define _SWAP_FAST_6_r01 1487 +#define _SWAP_FAST_6_r11 1488 +#define _SWAP_FAST_6_r22 1489 +#define _SWAP_FAST_6_r33 1490 +#define _SWAP_FAST_7_r01 1491 +#define _SWAP_FAST_7_r11 1492 +#define _SWAP_FAST_7_r22 1493 +#define _SWAP_FAST_7_r33 1494 +#define _TIER2_RESUME_CHECK_r00 1495 +#define _TIER2_RESUME_CHECK_r11 1496 +#define _TIER2_RESUME_CHECK_r22 1497 +#define _TIER2_RESUME_CHECK_r33 1498 +#define _TO_BOOL_r11 1499 +#define _TO_BOOL_BOOL_r01 1500 +#define _TO_BOOL_BOOL_r11 1501 +#define _TO_BOOL_BOOL_r22 1502 +#define _TO_BOOL_BOOL_r33 1503 +#define _TO_BOOL_INT_r02 1504 +#define _TO_BOOL_INT_r12 1505 +#define _TO_BOOL_INT_r23 1506 +#define _TO_BOOL_LIST_r02 1507 +#define _TO_BOOL_LIST_r12 1508 +#define _TO_BOOL_LIST_r23 1509 +#define _TO_BOOL_NONE_r01 1510 +#define _TO_BOOL_NONE_r11 1511 +#define _TO_BOOL_NONE_r22 1512 +#define _TO_BOOL_NONE_r33 1513 +#define _TO_BOOL_STR_r02 1514 +#define _TO_BOOL_STR_r12 1515 +#define _TO_BOOL_STR_r23 1516 +#define _TRACE_RECORD_r00 1517 +#define _UNARY_INVERT_r12 1518 +#define _UNARY_NEGATIVE_r12 1519 +#define _UNARY_NEGATIVE_FLOAT_INPLACE_r02 1520 +#define _UNARY_NEGATIVE_FLOAT_INPLACE_r12 1521 +#define _UNARY_NEGATIVE_FLOAT_INPLACE_r23 1522 +#define _UNARY_NOT_r01 1523 +#define _UNARY_NOT_r11 1524 +#define _UNARY_NOT_r22 1525 +#define _UNARY_NOT_r33 1526 +#define _UNPACK_EX_r10 1527 +#define _UNPACK_SEQUENCE_r10 1528 +#define _UNPACK_SEQUENCE_LIST_r10 1529 +#define _UNPACK_SEQUENCE_TUPLE_r10 1530 +#define _UNPACK_SEQUENCE_TWO_TUPLE_r12 1531 +#define _UNPACK_SEQUENCE_UNIQUE_THREE_TUPLE_r03 1532 +#define _UNPACK_SEQUENCE_UNIQUE_THREE_TUPLE_r13 1533 +#define _UNPACK_SEQUENCE_UNIQUE_TUPLE_r10 1534 +#define _UNPACK_SEQUENCE_UNIQUE_TWO_TUPLE_r02 1535 +#define _UNPACK_SEQUENCE_UNIQUE_TWO_TUPLE_r12 1536 +#define _UNPACK_SEQUENCE_UNIQUE_TWO_TUPLE_r23 1537 +#define _WITH_EXCEPT_START_r33 1538 +#define _YIELD_VALUE_r11 1539 +#define MAX_UOP_REGS_ID 1539 #ifdef __cplusplus } diff --git a/Include/internal/pycore_uop_metadata.h b/Include/internal/pycore_uop_metadata.h index 864ad9d3928e6c..d815f318a0651d 100644 --- a/Include/internal/pycore_uop_metadata.h +++ b/Include/internal/pycore_uop_metadata.h @@ -117,8 +117,8 @@ const uint32_t _PyUop_Flags[MAX_UOP_ID+1] = { [_BINARY_OP_SUBTRACT_FLOAT_INPLACE] = 0, [_BINARY_OP_MULTIPLY_FLOAT_INPLACE] = 0, [_BINARY_OP_ADD_FLOAT_INPLACE_RIGHT] = 0, - [_BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT] = 0, [_BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT] = 0, + [_BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT] = 0, [_BINARY_OP_ADD_UNICODE] = HAS_ERROR_FLAG | HAS_ERROR_NO_POP_FLAG | HAS_PURE_FLAG, [_BINARY_OP_INPLACE_ADD_UNICODE] = HAS_LOCAL_FLAG | HAS_EXIT_FLAG | HAS_ERROR_FLAG | HAS_ESCAPES_FLAG, [_GUARD_BINARY_OP_EXTEND] = HAS_EXIT_FLAG | HAS_ESCAPES_FLAG, @@ -1156,21 +1156,21 @@ const _PyUopCachingInfo _PyUop_Caching[MAX_UOP_ID+1] = { { -1, -1, -1 }, }, }, - [_BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT] = { + [_BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT] = { .best = { 0, 1, 2, 2 }, .entries = { - { 3, 0, _BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT_r03 }, - { 3, 1, _BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT_r13 }, - { 3, 2, _BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT_r23 }, + { 3, 0, _BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT_r03 }, + { 3, 1, _BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT_r13 }, + { 3, 2, _BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT_r23 }, { -1, -1, -1 }, }, }, - [_BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT] = { + [_BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT] = { .best = { 0, 1, 2, 2 }, .entries = { - { 3, 0, _BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT_r03 }, - { 3, 1, _BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT_r13 }, - { 3, 2, _BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT_r23 }, + { 3, 0, _BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT_r03 }, + { 3, 1, _BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT_r13 }, + { 3, 2, _BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT_r23 }, { -1, -1, -1 }, }, }, @@ -3899,12 +3899,12 @@ const uint16_t _PyUop_Uncached[MAX_UOP_REGS_ID+1] = { [_BINARY_OP_ADD_FLOAT_INPLACE_RIGHT_r03] = _BINARY_OP_ADD_FLOAT_INPLACE_RIGHT, [_BINARY_OP_ADD_FLOAT_INPLACE_RIGHT_r13] = _BINARY_OP_ADD_FLOAT_INPLACE_RIGHT, [_BINARY_OP_ADD_FLOAT_INPLACE_RIGHT_r23] = _BINARY_OP_ADD_FLOAT_INPLACE_RIGHT, - [_BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT_r03] = _BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT, - [_BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT_r13] = _BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT, - [_BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT_r23] = _BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT, [_BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT_r03] = _BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT, [_BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT_r13] = _BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT, [_BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT_r23] = _BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT, + [_BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT_r03] = _BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT, + [_BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT_r13] = _BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT, + [_BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT_r23] = _BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT, [_BINARY_OP_ADD_UNICODE_r03] = _BINARY_OP_ADD_UNICODE, [_BINARY_OP_ADD_UNICODE_r13] = _BINARY_OP_ADD_UNICODE, [_BINARY_OP_ADD_UNICODE_r23] = _BINARY_OP_ADD_UNICODE, @@ -5907,10 +5907,10 @@ int _PyUop_num_popped(int opcode, int oparg) return 2; case _BINARY_OP_ADD_FLOAT_INPLACE_RIGHT: return 2; - case _BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT: - return 2; case _BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT: return 2; + case _BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT: + return 2; case _BINARY_OP_ADD_UNICODE: return 2; case _BINARY_OP_INPLACE_ADD_UNICODE: diff --git a/Python/optimizer_cases.c.h b/Python/optimizer_cases.c.h index 1305a6e34efd03..78ffa6d5c61c2a 100644 --- a/Python/optimizer_cases.c.h +++ b/Python/optimizer_cases.c.h @@ -960,7 +960,7 @@ break; } - case _BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT: { + case _BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT: { JitOptRef res; JitOptRef l; JitOptRef r; @@ -976,7 +976,7 @@ break; } - case _BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT: { + case _BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT: { JitOptRef res; JitOptRef l; JitOptRef r; From 8af7b51460288fbaf96253cf5eca28588041a9df Mon Sep 17 00:00:00 2001 From: Pieter Eendebak Date: Tue, 24 Mar 2026 12:34:26 +0100 Subject: [PATCH 08/11] handle case there operand is set to null --- Python/optimizer_bytecodes.c | 2 +- Python/optimizer_cases.c.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Python/optimizer_bytecodes.c b/Python/optimizer_bytecodes.c index 308598101c6fec..250c13d8c02c9d 100644 --- a/Python/optimizer_bytecodes.c +++ b/Python/optimizer_bytecodes.c @@ -757,7 +757,7 @@ dummy_func(void) { } op(_POP_TOP_FLOAT, (value --)) { - if (PyJitRef_IsBorrowed(value)) { + if (PyJitRef_IsBorrowed(value) || sym_is_null(value)) { ADD_OP(_POP_TOP_NOP, 0, 0); } } diff --git a/Python/optimizer_cases.c.h b/Python/optimizer_cases.c.h index 78ffa6d5c61c2a..13f232f24af0ed 100644 --- a/Python/optimizer_cases.c.h +++ b/Python/optimizer_cases.c.h @@ -158,7 +158,7 @@ case _POP_TOP_FLOAT: { JitOptRef value; value = stack_pointer[-1]; - if (PyJitRef_IsBorrowed(value)) { + if (PyJitRef_IsBorrowed(value) || sym_is_null(value)) { ADD_OP(_POP_TOP_NOP, 0, 0); } CHECK_STACK_BOUNDS(-1); From 7d633168e98e8c5d6b18f67122c387754424d963 Mon Sep 17 00:00:00 2001 From: Pieter Eendebak Date: Tue, 24 Mar 2026 13:27:39 +0100 Subject: [PATCH 09/11] reduce duplication in new opcodes --- Python/bytecodes.c | 56 ++----------- Python/ceval_macros.h | 19 +++++ Python/executor_cases.c.h | 162 +++++--------------------------------- 3 files changed, 43 insertions(+), 194 deletions(-) diff --git a/Python/bytecodes.c b/Python/bytecodes.c index 738d1661ba0285..798dcfbd8ac934 100644 --- a/Python/bytecodes.c +++ b/Python/bytecodes.c @@ -793,16 +793,7 @@ dummy_func( // assignment (+=) on ob_fval, which generates problematic JIT // stencils on i686-pc-windows-msvc. tier2 op(_BINARY_OP_ADD_FLOAT_INPLACE, (left, right -- res, l, r)) { - PyObject *left_o = PyStackRef_AsPyObjectBorrow(left); - PyObject *right_o = PyStackRef_AsPyObjectBorrow(right); - assert(PyFloat_CheckExact(left_o)); - assert(PyFloat_CheckExact(right_o)); - assert(_PyObject_IsUniquelyReferenced(left_o)); - STAT_INC(BINARY_OP, hit); - double dres = ((PyFloatObject *)left_o)->ob_fval + ((PyFloatObject *)right_o)->ob_fval; - ((PyFloatObject *)left_o)->ob_fval = dres; - // Transfer ownership of left to res. - // Original left is now dead. + FLOAT_INPLACE_OP(left, right, left, +); res = left; l = PyStackRef_NULL; r = right; @@ -810,14 +801,7 @@ dummy_func( } tier2 op(_BINARY_OP_SUBTRACT_FLOAT_INPLACE, (left, right -- res, l, r)) { - PyObject *left_o = PyStackRef_AsPyObjectBorrow(left); - PyObject *right_o = PyStackRef_AsPyObjectBorrow(right); - assert(PyFloat_CheckExact(left_o)); - assert(PyFloat_CheckExact(right_o)); - assert(_PyObject_IsUniquelyReferenced(left_o)); - STAT_INC(BINARY_OP, hit); - double dres = ((PyFloatObject *)left_o)->ob_fval - ((PyFloatObject *)right_o)->ob_fval; - ((PyFloatObject *)left_o)->ob_fval = dres; + FLOAT_INPLACE_OP(left, right, left, -); res = left; l = PyStackRef_NULL; r = right; @@ -825,14 +809,7 @@ dummy_func( } tier2 op(_BINARY_OP_MULTIPLY_FLOAT_INPLACE, (left, right -- res, l, r)) { - PyObject *left_o = PyStackRef_AsPyObjectBorrow(left); - PyObject *right_o = PyStackRef_AsPyObjectBorrow(right); - assert(PyFloat_CheckExact(left_o)); - assert(PyFloat_CheckExact(right_o)); - assert(_PyObject_IsUniquelyReferenced(left_o)); - STAT_INC(BINARY_OP, hit); - double dres = ((PyFloatObject *)left_o)->ob_fval * ((PyFloatObject *)right_o)->ob_fval; - ((PyFloatObject *)left_o)->ob_fval = dres; + FLOAT_INPLACE_OP(left, right, left, *); res = left; l = PyStackRef_NULL; r = right; @@ -841,14 +818,7 @@ dummy_func( // Inplace RIGHT variants: mutate the uniquely-referenced right operand. tier2 op(_BINARY_OP_ADD_FLOAT_INPLACE_RIGHT, (left, right -- res, l, r)) { - PyObject *left_o = PyStackRef_AsPyObjectBorrow(left); - PyObject *right_o = PyStackRef_AsPyObjectBorrow(right); - assert(PyFloat_CheckExact(left_o)); - assert(PyFloat_CheckExact(right_o)); - assert(_PyObject_IsUniquelyReferenced(right_o)); - STAT_INC(BINARY_OP, hit); - double dres = ((PyFloatObject *)left_o)->ob_fval + ((PyFloatObject *)right_o)->ob_fval; - ((PyFloatObject *)right_o)->ob_fval = dres; + FLOAT_INPLACE_OP(left, right, right, +); res = right; l = left; r = PyStackRef_NULL; @@ -856,14 +826,7 @@ dummy_func( } tier2 op(_BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT, (left, right -- res, l, r)) { - PyObject *left_o = PyStackRef_AsPyObjectBorrow(left); - PyObject *right_o = PyStackRef_AsPyObjectBorrow(right); - assert(PyFloat_CheckExact(left_o)); - assert(PyFloat_CheckExact(right_o)); - assert(_PyObject_IsUniquelyReferenced(right_o)); - STAT_INC(BINARY_OP, hit); - double dres = ((PyFloatObject *)left_o)->ob_fval * ((PyFloatObject *)right_o)->ob_fval; - ((PyFloatObject *)right_o)->ob_fval = dres; + FLOAT_INPLACE_OP(left, right, right, *); res = right; l = left; r = PyStackRef_NULL; @@ -871,14 +834,7 @@ dummy_func( } tier2 op(_BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT, (left, right -- res, l, r)) { - PyObject *left_o = PyStackRef_AsPyObjectBorrow(left); - PyObject *right_o = PyStackRef_AsPyObjectBorrow(right); - assert(PyFloat_CheckExact(left_o)); - assert(PyFloat_CheckExact(right_o)); - assert(_PyObject_IsUniquelyReferenced(right_o)); - STAT_INC(BINARY_OP, hit); - double dres = ((PyFloatObject *)left_o)->ob_fval - ((PyFloatObject *)right_o)->ob_fval; - ((PyFloatObject *)right_o)->ob_fval = dres; + FLOAT_INPLACE_OP(left, right, right, -); res = right; l = left; r = PyStackRef_NULL; diff --git a/Python/ceval_macros.h b/Python/ceval_macros.h index b127812b4bf703..de629deddf39da 100644 --- a/Python/ceval_macros.h +++ b/Python/ceval_macros.h @@ -543,3 +543,22 @@ gen_try_set_executing(PyGenObject *gen) } return false; } + +// Macro for inplace float binary ops (tier 2 only). +// Mutates the uniquely-referenced TARGET operand in place. +// TARGET must be either left or right. +#define FLOAT_INPLACE_OP(left, right, TARGET, OP) \ + do { \ + PyObject *left_o = PyStackRef_AsPyObjectBorrow(left); \ + PyObject *right_o = PyStackRef_AsPyObjectBorrow(right); \ + assert(PyFloat_CheckExact(left_o)); \ + assert(PyFloat_CheckExact(right_o)); \ + assert(_PyObject_IsUniquelyReferenced( \ + PyStackRef_AsPyObjectBorrow(TARGET))); \ + STAT_INC(BINARY_OP, hit); \ + double _dres = \ + ((PyFloatObject *)left_o)->ob_fval \ + OP ((PyFloatObject *)right_o)->ob_fval; \ + ((PyFloatObject *)PyStackRef_AsPyObjectBorrow(TARGET)) \ + ->ob_fval = _dres; \ + } while (0) diff --git a/Python/executor_cases.c.h b/Python/executor_cases.c.h index d89bfcf0ef4224..7d6f7e7698d242 100644 --- a/Python/executor_cases.c.h +++ b/Python/executor_cases.c.h @@ -5036,14 +5036,7 @@ _PyStackRef r; right = stack_pointer[-1]; left = stack_pointer[-2]; - PyObject *left_o = PyStackRef_AsPyObjectBorrow(left); - PyObject *right_o = PyStackRef_AsPyObjectBorrow(right); - assert(PyFloat_CheckExact(left_o)); - assert(PyFloat_CheckExact(right_o)); - assert(_PyObject_IsUniquelyReferenced(left_o)); - STAT_INC(BINARY_OP, hit); - double dres = ((PyFloatObject *)left_o)->ob_fval + ((PyFloatObject *)right_o)->ob_fval; - ((PyFloatObject *)left_o)->ob_fval = dres; + FLOAT_INPLACE_OP(left, right, left, +); res = left; l = PyStackRef_NULL; r = right; @@ -5068,14 +5061,7 @@ _PyStackRef _stack_item_0 = _tos_cache0; right = _stack_item_0; left = stack_pointer[-1]; - PyObject *left_o = PyStackRef_AsPyObjectBorrow(left); - PyObject *right_o = PyStackRef_AsPyObjectBorrow(right); - assert(PyFloat_CheckExact(left_o)); - assert(PyFloat_CheckExact(right_o)); - assert(_PyObject_IsUniquelyReferenced(left_o)); - STAT_INC(BINARY_OP, hit); - double dres = ((PyFloatObject *)left_o)->ob_fval + ((PyFloatObject *)right_o)->ob_fval; - ((PyFloatObject *)left_o)->ob_fval = dres; + FLOAT_INPLACE_OP(left, right, left, +); res = left; l = PyStackRef_NULL; r = right; @@ -5101,14 +5087,7 @@ _PyStackRef _stack_item_1 = _tos_cache1; right = _stack_item_1; left = _stack_item_0; - PyObject *left_o = PyStackRef_AsPyObjectBorrow(left); - PyObject *right_o = PyStackRef_AsPyObjectBorrow(right); - assert(PyFloat_CheckExact(left_o)); - assert(PyFloat_CheckExact(right_o)); - assert(_PyObject_IsUniquelyReferenced(left_o)); - STAT_INC(BINARY_OP, hit); - double dres = ((PyFloatObject *)left_o)->ob_fval + ((PyFloatObject *)right_o)->ob_fval; - ((PyFloatObject *)left_o)->ob_fval = dres; + FLOAT_INPLACE_OP(left, right, left, +); res = left; l = PyStackRef_NULL; r = right; @@ -5130,14 +5109,7 @@ _PyStackRef r; right = stack_pointer[-1]; left = stack_pointer[-2]; - PyObject *left_o = PyStackRef_AsPyObjectBorrow(left); - PyObject *right_o = PyStackRef_AsPyObjectBorrow(right); - assert(PyFloat_CheckExact(left_o)); - assert(PyFloat_CheckExact(right_o)); - assert(_PyObject_IsUniquelyReferenced(left_o)); - STAT_INC(BINARY_OP, hit); - double dres = ((PyFloatObject *)left_o)->ob_fval - ((PyFloatObject *)right_o)->ob_fval; - ((PyFloatObject *)left_o)->ob_fval = dres; + FLOAT_INPLACE_OP(left, right, left, -); res = left; l = PyStackRef_NULL; r = right; @@ -5162,14 +5134,7 @@ _PyStackRef _stack_item_0 = _tos_cache0; right = _stack_item_0; left = stack_pointer[-1]; - PyObject *left_o = PyStackRef_AsPyObjectBorrow(left); - PyObject *right_o = PyStackRef_AsPyObjectBorrow(right); - assert(PyFloat_CheckExact(left_o)); - assert(PyFloat_CheckExact(right_o)); - assert(_PyObject_IsUniquelyReferenced(left_o)); - STAT_INC(BINARY_OP, hit); - double dres = ((PyFloatObject *)left_o)->ob_fval - ((PyFloatObject *)right_o)->ob_fval; - ((PyFloatObject *)left_o)->ob_fval = dres; + FLOAT_INPLACE_OP(left, right, left, -); res = left; l = PyStackRef_NULL; r = right; @@ -5195,14 +5160,7 @@ _PyStackRef _stack_item_1 = _tos_cache1; right = _stack_item_1; left = _stack_item_0; - PyObject *left_o = PyStackRef_AsPyObjectBorrow(left); - PyObject *right_o = PyStackRef_AsPyObjectBorrow(right); - assert(PyFloat_CheckExact(left_o)); - assert(PyFloat_CheckExact(right_o)); - assert(_PyObject_IsUniquelyReferenced(left_o)); - STAT_INC(BINARY_OP, hit); - double dres = ((PyFloatObject *)left_o)->ob_fval - ((PyFloatObject *)right_o)->ob_fval; - ((PyFloatObject *)left_o)->ob_fval = dres; + FLOAT_INPLACE_OP(left, right, left, -); res = left; l = PyStackRef_NULL; r = right; @@ -5224,14 +5182,7 @@ _PyStackRef r; right = stack_pointer[-1]; left = stack_pointer[-2]; - PyObject *left_o = PyStackRef_AsPyObjectBorrow(left); - PyObject *right_o = PyStackRef_AsPyObjectBorrow(right); - assert(PyFloat_CheckExact(left_o)); - assert(PyFloat_CheckExact(right_o)); - assert(_PyObject_IsUniquelyReferenced(left_o)); - STAT_INC(BINARY_OP, hit); - double dres = ((PyFloatObject *)left_o)->ob_fval * ((PyFloatObject *)right_o)->ob_fval; - ((PyFloatObject *)left_o)->ob_fval = dres; + FLOAT_INPLACE_OP(left, right, left, *); res = left; l = PyStackRef_NULL; r = right; @@ -5256,14 +5207,7 @@ _PyStackRef _stack_item_0 = _tos_cache0; right = _stack_item_0; left = stack_pointer[-1]; - PyObject *left_o = PyStackRef_AsPyObjectBorrow(left); - PyObject *right_o = PyStackRef_AsPyObjectBorrow(right); - assert(PyFloat_CheckExact(left_o)); - assert(PyFloat_CheckExact(right_o)); - assert(_PyObject_IsUniquelyReferenced(left_o)); - STAT_INC(BINARY_OP, hit); - double dres = ((PyFloatObject *)left_o)->ob_fval * ((PyFloatObject *)right_o)->ob_fval; - ((PyFloatObject *)left_o)->ob_fval = dres; + FLOAT_INPLACE_OP(left, right, left, *); res = left; l = PyStackRef_NULL; r = right; @@ -5289,14 +5233,7 @@ _PyStackRef _stack_item_1 = _tos_cache1; right = _stack_item_1; left = _stack_item_0; - PyObject *left_o = PyStackRef_AsPyObjectBorrow(left); - PyObject *right_o = PyStackRef_AsPyObjectBorrow(right); - assert(PyFloat_CheckExact(left_o)); - assert(PyFloat_CheckExact(right_o)); - assert(_PyObject_IsUniquelyReferenced(left_o)); - STAT_INC(BINARY_OP, hit); - double dres = ((PyFloatObject *)left_o)->ob_fval * ((PyFloatObject *)right_o)->ob_fval; - ((PyFloatObject *)left_o)->ob_fval = dres; + FLOAT_INPLACE_OP(left, right, left, *); res = left; l = PyStackRef_NULL; r = right; @@ -5318,14 +5255,7 @@ _PyStackRef r; right = stack_pointer[-1]; left = stack_pointer[-2]; - PyObject *left_o = PyStackRef_AsPyObjectBorrow(left); - PyObject *right_o = PyStackRef_AsPyObjectBorrow(right); - assert(PyFloat_CheckExact(left_o)); - assert(PyFloat_CheckExact(right_o)); - assert(_PyObject_IsUniquelyReferenced(right_o)); - STAT_INC(BINARY_OP, hit); - double dres = ((PyFloatObject *)left_o)->ob_fval + ((PyFloatObject *)right_o)->ob_fval; - ((PyFloatObject *)right_o)->ob_fval = dres; + FLOAT_INPLACE_OP(left, right, right, +); res = right; l = left; r = PyStackRef_NULL; @@ -5350,14 +5280,7 @@ _PyStackRef _stack_item_0 = _tos_cache0; right = _stack_item_0; left = stack_pointer[-1]; - PyObject *left_o = PyStackRef_AsPyObjectBorrow(left); - PyObject *right_o = PyStackRef_AsPyObjectBorrow(right); - assert(PyFloat_CheckExact(left_o)); - assert(PyFloat_CheckExact(right_o)); - assert(_PyObject_IsUniquelyReferenced(right_o)); - STAT_INC(BINARY_OP, hit); - double dres = ((PyFloatObject *)left_o)->ob_fval + ((PyFloatObject *)right_o)->ob_fval; - ((PyFloatObject *)right_o)->ob_fval = dres; + FLOAT_INPLACE_OP(left, right, right, +); res = right; l = left; r = PyStackRef_NULL; @@ -5383,14 +5306,7 @@ _PyStackRef _stack_item_1 = _tos_cache1; right = _stack_item_1; left = _stack_item_0; - PyObject *left_o = PyStackRef_AsPyObjectBorrow(left); - PyObject *right_o = PyStackRef_AsPyObjectBorrow(right); - assert(PyFloat_CheckExact(left_o)); - assert(PyFloat_CheckExact(right_o)); - assert(_PyObject_IsUniquelyReferenced(right_o)); - STAT_INC(BINARY_OP, hit); - double dres = ((PyFloatObject *)left_o)->ob_fval + ((PyFloatObject *)right_o)->ob_fval; - ((PyFloatObject *)right_o)->ob_fval = dres; + FLOAT_INPLACE_OP(left, right, right, +); res = right; l = left; r = PyStackRef_NULL; @@ -5412,14 +5328,7 @@ _PyStackRef r; right = stack_pointer[-1]; left = stack_pointer[-2]; - PyObject *left_o = PyStackRef_AsPyObjectBorrow(left); - PyObject *right_o = PyStackRef_AsPyObjectBorrow(right); - assert(PyFloat_CheckExact(left_o)); - assert(PyFloat_CheckExact(right_o)); - assert(_PyObject_IsUniquelyReferenced(right_o)); - STAT_INC(BINARY_OP, hit); - double dres = ((PyFloatObject *)left_o)->ob_fval * ((PyFloatObject *)right_o)->ob_fval; - ((PyFloatObject *)right_o)->ob_fval = dres; + FLOAT_INPLACE_OP(left, right, right, *); res = right; l = left; r = PyStackRef_NULL; @@ -5444,14 +5353,7 @@ _PyStackRef _stack_item_0 = _tos_cache0; right = _stack_item_0; left = stack_pointer[-1]; - PyObject *left_o = PyStackRef_AsPyObjectBorrow(left); - PyObject *right_o = PyStackRef_AsPyObjectBorrow(right); - assert(PyFloat_CheckExact(left_o)); - assert(PyFloat_CheckExact(right_o)); - assert(_PyObject_IsUniquelyReferenced(right_o)); - STAT_INC(BINARY_OP, hit); - double dres = ((PyFloatObject *)left_o)->ob_fval * ((PyFloatObject *)right_o)->ob_fval; - ((PyFloatObject *)right_o)->ob_fval = dres; + FLOAT_INPLACE_OP(left, right, right, *); res = right; l = left; r = PyStackRef_NULL; @@ -5477,14 +5379,7 @@ _PyStackRef _stack_item_1 = _tos_cache1; right = _stack_item_1; left = _stack_item_0; - PyObject *left_o = PyStackRef_AsPyObjectBorrow(left); - PyObject *right_o = PyStackRef_AsPyObjectBorrow(right); - assert(PyFloat_CheckExact(left_o)); - assert(PyFloat_CheckExact(right_o)); - assert(_PyObject_IsUniquelyReferenced(right_o)); - STAT_INC(BINARY_OP, hit); - double dres = ((PyFloatObject *)left_o)->ob_fval * ((PyFloatObject *)right_o)->ob_fval; - ((PyFloatObject *)right_o)->ob_fval = dres; + FLOAT_INPLACE_OP(left, right, right, *); res = right; l = left; r = PyStackRef_NULL; @@ -5506,14 +5401,7 @@ _PyStackRef r; right = stack_pointer[-1]; left = stack_pointer[-2]; - PyObject *left_o = PyStackRef_AsPyObjectBorrow(left); - PyObject *right_o = PyStackRef_AsPyObjectBorrow(right); - assert(PyFloat_CheckExact(left_o)); - assert(PyFloat_CheckExact(right_o)); - assert(_PyObject_IsUniquelyReferenced(right_o)); - STAT_INC(BINARY_OP, hit); - double dres = ((PyFloatObject *)left_o)->ob_fval - ((PyFloatObject *)right_o)->ob_fval; - ((PyFloatObject *)right_o)->ob_fval = dres; + FLOAT_INPLACE_OP(left, right, right, -); res = right; l = left; r = PyStackRef_NULL; @@ -5538,14 +5426,7 @@ _PyStackRef _stack_item_0 = _tos_cache0; right = _stack_item_0; left = stack_pointer[-1]; - PyObject *left_o = PyStackRef_AsPyObjectBorrow(left); - PyObject *right_o = PyStackRef_AsPyObjectBorrow(right); - assert(PyFloat_CheckExact(left_o)); - assert(PyFloat_CheckExact(right_o)); - assert(_PyObject_IsUniquelyReferenced(right_o)); - STAT_INC(BINARY_OP, hit); - double dres = ((PyFloatObject *)left_o)->ob_fval - ((PyFloatObject *)right_o)->ob_fval; - ((PyFloatObject *)right_o)->ob_fval = dres; + FLOAT_INPLACE_OP(left, right, right, -); res = right; l = left; r = PyStackRef_NULL; @@ -5571,14 +5452,7 @@ _PyStackRef _stack_item_1 = _tos_cache1; right = _stack_item_1; left = _stack_item_0; - PyObject *left_o = PyStackRef_AsPyObjectBorrow(left); - PyObject *right_o = PyStackRef_AsPyObjectBorrow(right); - assert(PyFloat_CheckExact(left_o)); - assert(PyFloat_CheckExact(right_o)); - assert(_PyObject_IsUniquelyReferenced(right_o)); - STAT_INC(BINARY_OP, hit); - double dres = ((PyFloatObject *)left_o)->ob_fval - ((PyFloatObject *)right_o)->ob_fval; - ((PyFloatObject *)right_o)->ob_fval = dres; + FLOAT_INPLACE_OP(left, right, right, -); res = right; l = left; r = PyStackRef_NULL; From c61b9af925fe00033f09e92bdff1d68b816e506a Mon Sep 17 00:00:00 2001 From: Pieter Eendebak Date: Tue, 24 Mar 2026 13:33:03 +0100 Subject: [PATCH 10/11] review comments --- Python/optimizer_bytecodes.c | 16 ++++++++-------- Python/optimizer_cases.c.h | 14 +++++++------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/Python/optimizer_bytecodes.c b/Python/optimizer_bytecodes.c index 250c13d8c02c9d..748ed71dad43a3 100644 --- a/Python/optimizer_bytecodes.c +++ b/Python/optimizer_bytecodes.c @@ -327,14 +327,14 @@ dummy_func(void) { op(_BINARY_OP_ADD_FLOAT, (left, right -- res, l, r)) { if (PyJitRef_IsUnique(left)) { ADD_OP(_BINARY_OP_ADD_FLOAT_INPLACE, 0, 0); - l = sym_new_null(ctx); + l = PyJitRef_Borrow(sym_new_null(ctx)); r = right; } else if (PyJitRef_IsUnique(right)) { ADD_OP(_BINARY_OP_ADD_FLOAT_INPLACE_RIGHT, 0, 0); l = left; - r = sym_new_null(ctx); - } + r = PyJitRef_Borrow(sym_new_null(ctx)); + } else { l = left; r = right; @@ -345,13 +345,13 @@ dummy_func(void) { op(_BINARY_OP_SUBTRACT_FLOAT, (left, right -- res, l, r)) { if (PyJitRef_IsUnique(left)) { ADD_OP(_BINARY_OP_SUBTRACT_FLOAT_INPLACE, 0, 0); - l = sym_new_null(ctx); + l = PyJitRef_Borrow(sym_new_null(ctx)); r = right; } else if (PyJitRef_IsUnique(right)) { ADD_OP(_BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT, 0, 0); l = left; - r = sym_new_null(ctx); + r = PyJitRef_Borrow(sym_new_null(ctx)); } else { l = left; @@ -363,13 +363,13 @@ dummy_func(void) { op(_BINARY_OP_MULTIPLY_FLOAT, (left, right -- res, l, r)) { if (PyJitRef_IsUnique(left)) { ADD_OP(_BINARY_OP_MULTIPLY_FLOAT_INPLACE, 0, 0); - l = sym_new_null(ctx); + l = PyJitRef_Borrow(sym_new_null(ctx)); r = right; } else if (PyJitRef_IsUnique(right)) { ADD_OP(_BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT, 0, 0); l = left; - r = sym_new_null(ctx); + r = PyJitRef_Borrow(sym_new_null(ctx)); } else { l = left; @@ -757,7 +757,7 @@ dummy_func(void) { } op(_POP_TOP_FLOAT, (value --)) { - if (PyJitRef_IsBorrowed(value) || sym_is_null(value)) { + if (PyJitRef_IsBorrowed(value)) { ADD_OP(_POP_TOP_NOP, 0, 0); } } diff --git a/Python/optimizer_cases.c.h b/Python/optimizer_cases.c.h index 13f232f24af0ed..a49e8c599cf830 100644 --- a/Python/optimizer_cases.c.h +++ b/Python/optimizer_cases.c.h @@ -158,7 +158,7 @@ case _POP_TOP_FLOAT: { JitOptRef value; value = stack_pointer[-1]; - if (PyJitRef_IsBorrowed(value) || sym_is_null(value)) { + if (PyJitRef_IsBorrowed(value)) { ADD_OP(_POP_TOP_NOP, 0, 0); } CHECK_STACK_BOUNDS(-1); @@ -810,13 +810,13 @@ left = stack_pointer[-2]; if (PyJitRef_IsUnique(left)) { ADD_OP(_BINARY_OP_MULTIPLY_FLOAT_INPLACE, 0, 0); - l = sym_new_null(ctx); + l = PyJitRef_Borrow(sym_new_null(ctx)); r = right; } else if (PyJitRef_IsUnique(right)) { ADD_OP(_BINARY_OP_MULTIPLY_FLOAT_INPLACE_RIGHT, 0, 0); l = left; - r = sym_new_null(ctx); + r = PyJitRef_Borrow(sym_new_null(ctx)); } else { l = left; @@ -842,13 +842,13 @@ left = stack_pointer[-2]; if (PyJitRef_IsUnique(left)) { ADD_OP(_BINARY_OP_ADD_FLOAT_INPLACE, 0, 0); - l = sym_new_null(ctx); + l = PyJitRef_Borrow(sym_new_null(ctx)); r = right; } else if (PyJitRef_IsUnique(right)) { ADD_OP(_BINARY_OP_ADD_FLOAT_INPLACE_RIGHT, 0, 0); l = left; - r = sym_new_null(ctx); + r = PyJitRef_Borrow(sym_new_null(ctx)); } else { l = left; @@ -874,13 +874,13 @@ left = stack_pointer[-2]; if (PyJitRef_IsUnique(left)) { ADD_OP(_BINARY_OP_SUBTRACT_FLOAT_INPLACE, 0, 0); - l = sym_new_null(ctx); + l = PyJitRef_Borrow(sym_new_null(ctx)); r = right; } else if (PyJitRef_IsUnique(right)) { ADD_OP(_BINARY_OP_SUBTRACT_FLOAT_INPLACE_RIGHT, 0, 0); l = left; - r = sym_new_null(ctx); + r = PyJitRef_Borrow(sym_new_null(ctx)); } else { l = left; From 4ff36c1a08a55c7676caca2f70ebd3a45a00d920 Mon Sep 17 00:00:00 2001 From: Pieter Eendebak Date: Tue, 24 Mar 2026 13:41:24 +0100 Subject: [PATCH 11/11] cleanup unary opcode --- Python/bytecodes.c | 5 +---- Python/optimizer_bytecodes.c | 4 ++-- Python/optimizer_cases.c.h | 2 +- 3 files changed, 4 insertions(+), 7 deletions(-) diff --git a/Python/bytecodes.c b/Python/bytecodes.c index 798dcfbd8ac934..87e02841dd8edc 100644 --- a/Python/bytecodes.c +++ b/Python/bytecodes.c @@ -787,11 +787,8 @@ dummy_func( // Inplace float ops: mutate the uniquely-referenced left operand // instead of allocating a new float. Tier 2 only. - // The optimizer sets l to null so the following _POP_TOP_FLOAT + // The optimizer sets l to a borrowed value so the following _POP_TOP_FLOAT // becomes _POP_TOP_NOP. - // Note: read into a local double and write back to avoid compound - // assignment (+=) on ob_fval, which generates problematic JIT - // stencils on i686-pc-windows-msvc. tier2 op(_BINARY_OP_ADD_FLOAT_INPLACE, (left, right -- res, l, r)) { FLOAT_INPLACE_OP(left, right, left, +); res = left; diff --git a/Python/optimizer_bytecodes.c b/Python/optimizer_bytecodes.c index 748ed71dad43a3..590800497df8b8 100644 --- a/Python/optimizer_bytecodes.c +++ b/Python/optimizer_bytecodes.c @@ -334,7 +334,7 @@ dummy_func(void) { ADD_OP(_BINARY_OP_ADD_FLOAT_INPLACE_RIGHT, 0, 0); l = left; r = PyJitRef_Borrow(sym_new_null(ctx)); - } + } else { l = left; r = right; @@ -569,7 +569,7 @@ dummy_func(void) { REPLACE_OPCODE_IF_EVALUATES_PURE(value, res); if (sym_matches_type(value, &PyFloat_Type) && PyJitRef_IsUnique(value)) { ADD_OP(_UNARY_NEGATIVE_FLOAT_INPLACE, 0, 0); - v = PyJitRef_Borrow(value); + v = PyJitRef_Borrow(sym_new_null(ctx)); res = PyJitRef_MakeUnique(sym_new_type(ctx, &PyFloat_Type)); } else if (sym_is_compact_int(value)) { diff --git a/Python/optimizer_cases.c.h b/Python/optimizer_cases.c.h index a49e8c599cf830..2e623a6745cde0 100644 --- a/Python/optimizer_cases.c.h +++ b/Python/optimizer_cases.c.h @@ -259,7 +259,7 @@ } if (sym_matches_type(value, &PyFloat_Type) && PyJitRef_IsUnique(value)) { ADD_OP(_UNARY_NEGATIVE_FLOAT_INPLACE, 0, 0); - v = PyJitRef_Borrow(value); + v = PyJitRef_Borrow(sym_new_null(ctx)); res = PyJitRef_MakeUnique(sym_new_type(ctx, &PyFloat_Type)); } else if (sym_is_compact_int(value)) {