diff options
author | Dong-hee Na <donghee.na@python.org> | 2021-11-18 09:19:58 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-11-18 09:19:58 (GMT) |
commit | 345ba3f080c140dee3102f472bc166c2db191bcc (patch) | |
tree | 302e16c6c660da6dcb5b5400447c24e90e4f4f2b /Include | |
parent | 0920b61a0cb30128287ebafab1df8cad3a3dffdb (diff) | |
download | cpython-345ba3f080c140dee3102f472bc166c2db191bcc.zip cpython-345ba3f080c140dee3102f472bc166c2db191bcc.tar.gz cpython-345ba3f080c140dee3102f472bc166c2db191bcc.tar.bz2 |
bpo-45510: Specialize BINARY_SUBTRACT (GH-29523)
Diffstat (limited to 'Include')
-rw-r--r-- | Include/internal/pycore_long.h | 1 | ||||
-rw-r--r-- | Include/opcode.h | 68 |
2 files changed, 36 insertions, 33 deletions
diff --git a/Include/internal/pycore_long.h b/Include/internal/pycore_long.h index 2f78608..b9f9269 100644 --- a/Include/internal/pycore_long.h +++ b/Include/internal/pycore_long.h @@ -23,6 +23,7 @@ static inline PyObject* _PyLong_GetOne(void) PyObject *_PyLong_Add(PyLongObject *left, PyLongObject *right); PyObject *_PyLong_Multiply(PyLongObject *left, PyLongObject *right); +PyObject *_PyLong_Subtract(PyLongObject *left, PyLongObject *right); /* Used by Python/mystrtoul.c, _PyBytes_FromHex(), _PyBytes_DecodeEscape(), etc. */ diff --git a/Include/opcode.h b/Include/opcode.h index c7354de..ca20ccd 100644 --- a/Include/opcode.h +++ b/Include/opcode.h @@ -118,39 +118,41 @@ extern "C" { #define BINARY_OP_INPLACE_ADD_UNICODE 16 #define BINARY_OP_MULTIPLY_INT 17 #define BINARY_OP_MULTIPLY_FLOAT 18 -#define BINARY_SUBSCR_ADAPTIVE 19 -#define BINARY_SUBSCR_LIST_INT 20 -#define BINARY_SUBSCR_TUPLE_INT 21 -#define BINARY_SUBSCR_DICT 22 -#define CALL_FUNCTION_ADAPTIVE 23 -#define CALL_FUNCTION_BUILTIN_O 24 -#define CALL_FUNCTION_BUILTIN_FAST 26 -#define CALL_FUNCTION_LEN 27 -#define CALL_FUNCTION_ISINSTANCE 28 -#define CALL_FUNCTION_PY_SIMPLE 29 -#define JUMP_ABSOLUTE_QUICK 34 -#define LOAD_ATTR_ADAPTIVE 36 -#define LOAD_ATTR_INSTANCE_VALUE 38 -#define LOAD_ATTR_WITH_HINT 39 -#define LOAD_ATTR_SLOT 40 -#define LOAD_ATTR_MODULE 41 -#define LOAD_GLOBAL_ADAPTIVE 42 -#define LOAD_GLOBAL_MODULE 43 -#define LOAD_GLOBAL_BUILTIN 44 -#define LOAD_METHOD_ADAPTIVE 45 -#define LOAD_METHOD_CACHED 46 -#define LOAD_METHOD_CLASS 47 -#define LOAD_METHOD_MODULE 48 -#define LOAD_METHOD_NO_DICT 55 -#define STORE_ATTR_ADAPTIVE 56 -#define STORE_ATTR_INSTANCE_VALUE 57 -#define STORE_ATTR_SLOT 58 -#define STORE_ATTR_WITH_HINT 59 -#define LOAD_FAST__LOAD_FAST 62 -#define STORE_FAST__LOAD_FAST 63 -#define LOAD_FAST__LOAD_CONST 64 -#define LOAD_CONST__LOAD_FAST 65 -#define STORE_FAST__STORE_FAST 66 +#define BINARY_OP_SUBTRACT_INT 19 +#define BINARY_OP_SUBTRACT_FLOAT 20 +#define BINARY_SUBSCR_ADAPTIVE 21 +#define BINARY_SUBSCR_LIST_INT 22 +#define BINARY_SUBSCR_TUPLE_INT 23 +#define BINARY_SUBSCR_DICT 24 +#define CALL_FUNCTION_ADAPTIVE 26 +#define CALL_FUNCTION_BUILTIN_O 27 +#define CALL_FUNCTION_BUILTIN_FAST 28 +#define CALL_FUNCTION_LEN 29 +#define CALL_FUNCTION_ISINSTANCE 34 +#define CALL_FUNCTION_PY_SIMPLE 36 +#define JUMP_ABSOLUTE_QUICK 38 +#define LOAD_ATTR_ADAPTIVE 39 +#define LOAD_ATTR_INSTANCE_VALUE 40 +#define LOAD_ATTR_WITH_HINT 41 +#define LOAD_ATTR_SLOT 42 +#define LOAD_ATTR_MODULE 43 +#define LOAD_GLOBAL_ADAPTIVE 44 +#define LOAD_GLOBAL_MODULE 45 +#define LOAD_GLOBAL_BUILTIN 46 +#define LOAD_METHOD_ADAPTIVE 47 +#define LOAD_METHOD_CACHED 48 +#define LOAD_METHOD_CLASS 55 +#define LOAD_METHOD_MODULE 56 +#define LOAD_METHOD_NO_DICT 57 +#define STORE_ATTR_ADAPTIVE 58 +#define STORE_ATTR_INSTANCE_VALUE 59 +#define STORE_ATTR_SLOT 62 +#define STORE_ATTR_WITH_HINT 63 +#define LOAD_FAST__LOAD_FAST 64 +#define STORE_FAST__LOAD_FAST 65 +#define LOAD_FAST__LOAD_CONST 66 +#define LOAD_CONST__LOAD_FAST 67 +#define STORE_FAST__STORE_FAST 75 #define DO_TRACING 255 #ifdef NEED_OPCODE_JUMP_TABLES static uint32_t _PyOpcode_RelativeJump[8] = { |