diff options
author | Mark Shannon <mark@hotpy.org> | 2022-02-28 12:56:29 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-02-28 12:56:29 (GMT) |
commit | 4558af5a8f8e56a9b0dc11f6e834c47e0fd05f9e (patch) | |
tree | 32365218607a600a23378350b533a307474cb628 /Include/opcode.h | |
parent | da7d99a4de72aac8d436cecedf16ab2676f9b785 (diff) | |
download | cpython-4558af5a8f8e56a9b0dc11f6e834c47e0fd05f9e.zip cpython-4558af5a8f8e56a9b0dc11f6e834c47e0fd05f9e.tar.gz cpython-4558af5a8f8e56a9b0dc11f6e834c47e0fd05f9e.tar.bz2 |
bpo-46841: Move the cache for `LOAD_GLOBAL` inline. (GH-31575)
Diffstat (limited to 'Include/opcode.h')
-rw-r--r-- | Include/opcode.h | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/Include/opcode.h b/Include/opcode.h index ae21d92..99480de 100644 --- a/Include/opcode.h +++ b/Include/opcode.h @@ -185,8 +185,11 @@ extern "C" { #define STORE_FAST__STORE_FAST 175 #define LOAD_FAST__LOAD_ATTR_INSTANCE_VALUE 176 #define DO_TRACING 255 -#ifdef NEED_OPCODE_JUMP_TABLES -static uint32_t _PyOpcode_RelativeJump[8] = { + +extern const uint8_t _PyOpcode_InlineCacheEntries[256]; + +#ifdef NEED_OPCODE_TABLES +static const uint32_t _PyOpcode_RelativeJump[8] = { 0U, 0U, 536870912U, @@ -196,7 +199,7 @@ static uint32_t _PyOpcode_RelativeJump[8] = { 0U, 0U, }; -static uint32_t _PyOpcode_Jump[8] = { +static const uint32_t _PyOpcode_Jump[8] = { 0U, 0U, 536870912U, @@ -206,6 +209,12 @@ static uint32_t _PyOpcode_Jump[8] = { 0U, 0U, }; + +const uint8_t _PyOpcode_InlineCacheEntries[256] = { + [UNPACK_SEQUENCE] = 1, + [LOAD_GLOBAL] = 5, + [BINARY_OP] = 1, +}; #endif /* OPCODE_TABLES */ #define HAS_CONST(op) (false\ @@ -240,11 +249,6 @@ static uint32_t _PyOpcode_Jump[8] = { #define NB_INPLACE_TRUE_DIVIDE 24 #define NB_INPLACE_XOR 25 -static const uint8_t _PyOpcode_InlineCacheEntries[256] = { - [UNPACK_SEQUENCE] = 1, - [BINARY_OP] = 1, -}; - #define HAS_ARG(op) ((op) >= HAVE_ARGUMENT) /* Reserve some bytecodes for internal use in the compiler. |