php-internal-docs 8.4.8
Unofficial docs for php/php-src
|
Go to the source code of this file.
Data Structures | |
struct | _zend_jit_op_array_extension |
struct | _zend_jit_op_array_hot_extension |
union | _zend_op_trace_info |
struct | _zend_jit_op_array_trace_extension |
struct | _zend_jit_trace_rec |
struct | _zend_jit_ref_snapshot |
struct | _zend_jit_trace_exit_info |
struct | _zend_jit_trace_stack |
union | _zend_jit_exit_const |
struct | _zend_jit_trace_info |
struct | _zend_jit_trace_stack_frame |
Typedefs | |
typedef uintptr_t | zend_jit_addr |
typedef struct _zend_jit_op_array_extension | zend_jit_op_array_extension |
typedef struct _zend_jit_op_array_hot_extension | zend_jit_op_array_hot_extension |
typedef ZEND_OPCODE_HANDLER_RET(ZEND_FASTCALL * | zend_vm_opcode_handler_t) (ZEND_OPCODE_HANDLER_ARGS) |
typedef enum _zend_jit_trace_stop | zend_jit_trace_stop |
typedef union _zend_op_trace_info | zend_op_trace_info |
typedef struct _zend_jit_op_array_trace_extension | zend_jit_op_array_trace_extension |
typedef enum _zend_jit_trace_op | zend_jit_trace_op |
typedef struct _zend_jit_ref_snapshot | zend_jit_ref_snapshot |
typedef struct _zend_jit_trace_exit_info | zend_jit_trace_exit_info |
typedef struct _zend_jit_trace_stack | zend_jit_trace_stack |
typedef union _zend_jit_exit_const | zend_jit_exit_const |
typedef struct _zend_jit_trace_info | zend_jit_trace_info |
Enumerations | |
enum | _zend_jit_trace_stop { ZEND_JIT_TRACE_HALT = 0x40 } |
enum | _zend_jit_trace_op { ZEND_JIT_TRACE_VM , ZEND_JIT_TRACE_OP1_TYPE , ZEND_JIT_TRACE_OP2_TYPE , ZEND_JIT_TRACE_VAL_INFO , ZEND_JIT_TRACE_INIT_CALL , ZEND_JIT_TRACE_DO_ICALL , ZEND_JIT_TRACE_ENTER , ZEND_JIT_TRACE_BACK , ZEND_JIT_TRACE_END , ZEND_JIT_TRACE_START } |
Variables | |
zend_ulong | zend_jit_profile_counter |
int | zend_jit_profile_counter_rid |
int16_t | zend_jit_hot_counters [ZEND_HOT_COUNTERS_COUNT] |
const zend_op * | zend_jit_halt_op |
#define _ZEND_ADDR_MODE_MASK 0x3 |
Definition at line 32 of file zend_jit_internal.h.
#define _ZEND_ADDR_OFFSET_SHIFT 8 |
Definition at line 35 of file zend_jit_internal.h.
#define _ZEND_ADDR_REG_MASK 0x3f /* no more than 64 registers */ |
Definition at line 34 of file zend_jit_internal.h.
#define _ZEND_ADDR_REG_SHIFT 2 |
Definition at line 33 of file zend_jit_internal.h.
#define CLEAR_STACK_REF | ( | _stack, | |
_slot ) |
Definition at line 461 of file zend_jit_internal.h.
#define EXECUTE_DATA_C execute_data |
Definition at line 199 of file zend_jit_internal.h.
#define EXECUTE_DATA_CC , EXECUTE_DATA_C |
Definition at line 201 of file zend_jit_internal.h.
#define EXECUTE_DATA_D zend_execute_data* execute_data |
Definition at line 198 of file zend_jit_internal.h.
#define EXECUTE_DATA_DC , EXECUTE_DATA_D |
Definition at line 200 of file zend_jit_internal.h.
#define IS_CONST_ZVAL 0 |
Definition at line 27 of file zend_jit_internal.h.
#define IS_MEM_ZVAL 1 |
Definition at line 28 of file zend_jit_internal.h.
#define IS_REF_ZVAL 3 /* IR reference */ |
Definition at line 30 of file zend_jit_internal.h.
Definition at line 29 of file zend_jit_internal.h.
#define IS_TRACE_INDIRECT (1<<6) |
Definition at line 366 of file zend_jit_internal.h.
#define IS_TRACE_PACKED (1<<4) |
Definition at line 364 of file zend_jit_internal.h.
#define IS_TRACE_REFERENCE (1<<5) |
Definition at line 365 of file zend_jit_internal.h.
#define IS_TRACE_TYPE_MASK 0xf |
Definition at line 368 of file zend_jit_internal.h.
Definition at line 363 of file zend_jit_internal.h.
#define JIT_CACHE_FLUSH | ( | from, | |
to ) |
Definition at line 739 of file zend_jit_internal.h.
#define OP1_ADDR | ( | ) |
Definition at line 85 of file zend_jit_internal.h.
#define OP1_DATA_ADDR | ( | ) |
Definition at line 91 of file zend_jit_internal.h.
#define OP1_DATA_DEF_REG_ADDR | ( | ) |
Definition at line 109 of file zend_jit_internal.h.
#define OP1_DATA_REG_ADDR | ( | ) |
Definition at line 100 of file zend_jit_internal.h.
#define OP1_DEF_REG_ADDR | ( | ) |
Definition at line 103 of file zend_jit_internal.h.
#define OP1_REG_ADDR | ( | ) |
Definition at line 94 of file zend_jit_internal.h.
#define OP2_ADDR | ( | ) |
Definition at line 87 of file zend_jit_internal.h.
#define OP2_DEF_REG_ADDR | ( | ) |
Definition at line 105 of file zend_jit_internal.h.
#define OP2_REG_ADDR | ( | ) |
Definition at line 96 of file zend_jit_internal.h.
Definition at line 74 of file zend_jit_internal.h.
Definition at line 80 of file zend_jit_internal.h.
#define OPLINE_C opline |
Definition at line 203 of file zend_jit_internal.h.
Definition at line 205 of file zend_jit_internal.h.
Definition at line 202 of file zend_jit_internal.h.
Definition at line 204 of file zend_jit_internal.h.
#define RES_ADDR | ( | ) |
Definition at line 89 of file zend_jit_internal.h.
#define RES_REG_ADDR | ( | ) |
Definition at line 98 of file zend_jit_internal.h.
#define RES_USE_REG_ADDR | ( | ) |
Definition at line 107 of file zend_jit_internal.h.
#define RESET_STACK_MEM_TYPE | ( | _stack, | |
_slot ) |
Definition at line 507 of file zend_jit_internal.h.
#define SET_STACK_INFO | ( | _stack, | |
_slot, | |||
_info ) |
Definition at line 486 of file zend_jit_internal.h.
#define SET_STACK_REF | ( | _stack, | |
_slot, | |||
_ref ) |
Definition at line 467 of file zend_jit_internal.h.
#define SET_STACK_REF_EX | ( | _stack, | |
_slot, | |||
_ref, | |||
_flags ) |
Definition at line 471 of file zend_jit_internal.h.
#define SET_STACK_REG | ( | _stack, | |
_slot, | |||
_reg ) |
Definition at line 499 of file zend_jit_internal.h.
#define SET_STACK_REG_EX | ( | _stack, | |
_slot, | |||
_reg, | |||
_flags ) |
Definition at line 503 of file zend_jit_internal.h.
#define SET_STACK_TYPE | ( | _stack, | |
_slot, | |||
_type, | |||
_set_mem_type ) |
Definition at line 489 of file zend_jit_internal.h.
#define SET_STACK_VAR | ( | _stack, | |
_slot, | |||
_ssa_var ) |
Definition at line 457 of file zend_jit_internal.h.
#define STACK_FLAGS | ( | _stack, | |
_slot ) |
Definition at line 484 of file zend_jit_internal.h.
#define STACK_INFO | ( | _stack, | |
_slot ) |
Definition at line 476 of file zend_jit_internal.h.
#define STACK_MEM_TYPE | ( | _stack, | |
_slot ) |
Definition at line 480 of file zend_jit_internal.h.
#define STACK_REF | ( | _stack, | |
_slot ) |
Definition at line 465 of file zend_jit_internal.h.
#define STACK_REG | ( | _stack, | |
_slot ) |
Definition at line 482 of file zend_jit_internal.h.
#define STACK_TYPE | ( | _stack, | |
_slot ) |
Definition at line 478 of file zend_jit_internal.h.
#define STACK_VAR | ( | _stack, | |
_slot ) |
Definition at line 455 of file zend_jit_internal.h.
Definition at line 610 of file zend_jit_internal.h.
Definition at line 575 of file zend_jit_internal.h.
Definition at line 608 of file zend_jit_internal.h.
Definition at line 592 of file zend_jit_internal.h.
Definition at line 594 of file zend_jit_internal.h.
Definition at line 590 of file zend_jit_internal.h.
Definition at line 598 of file zend_jit_internal.h.
Definition at line 596 of file zend_jit_internal.h.
Definition at line 600 of file zend_jit_internal.h.
Definition at line 606 of file zend_jit_internal.h.
Definition at line 602 of file zend_jit_internal.h.
#define TRACE_FRAME_MASK_ALWAYS_RELEASE_THIS 0x00000400 |
Definition at line 572 of file zend_jit_internal.h.
#define TRACE_FRAME_MASK_CLOSURE_CALL 0x00000200 |
Definition at line 571 of file zend_jit_internal.h.
#define TRACE_FRAME_MASK_LAST_SEND_BY_REF 0x00000002 |
Definition at line 563 of file zend_jit_internal.h.
#define TRACE_FRAME_MASK_LAST_SEND_BY_VAL 0x00000004 |
Definition at line 564 of file zend_jit_internal.h.
#define TRACE_FRAME_MASK_NESTED 0x00000001 |
Definition at line 562 of file zend_jit_internal.h.
#define TRACE_FRAME_MASK_NO_NEED_RELEASE_THIS 0x00000080 |
Definition at line 569 of file zend_jit_internal.h.
#define TRACE_FRAME_MASK_NUM_ARGS 0xffff0000 |
Definition at line 561 of file zend_jit_internal.h.
#define TRACE_FRAME_MASK_RETURN_VALUE_UNUSED 0x00000010 |
Definition at line 566 of file zend_jit_internal.h.
#define TRACE_FRAME_MASK_RETURN_VALUE_USED 0x00000008 |
Definition at line 565 of file zend_jit_internal.h.
#define TRACE_FRAME_MASK_THIS_CHECKED 0x00000020 |
Definition at line 567 of file zend_jit_internal.h.
#define TRACE_FRAME_MASK_THIS_CLASS_CHECKED 0x00000100 |
Definition at line 570 of file zend_jit_internal.h.
#define TRACE_FRAME_MASK_UNKNOWN_RETURN 0x00000040 |
Definition at line 568 of file zend_jit_internal.h.
#define TRACE_FRAME_MAX_NUM_ARGS 32767 |
Definition at line 559 of file zend_jit_internal.h.
Definition at line 604 of file zend_jit_internal.h.
Definition at line 588 of file zend_jit_internal.h.
Definition at line 586 of file zend_jit_internal.h.
Definition at line 651 of file zend_jit_internal.h.
Definition at line 648 of file zend_jit_internal.h.
Definition at line 619 of file zend_jit_internal.h.
Definition at line 623 of file zend_jit_internal.h.
Definition at line 627 of file zend_jit_internal.h.
Definition at line 642 of file zend_jit_internal.h.
Definition at line 616 of file zend_jit_internal.h.
Definition at line 635 of file zend_jit_internal.h.
Definition at line 631 of file zend_jit_internal.h.
Definition at line 639 of file zend_jit_internal.h.
Definition at line 645 of file zend_jit_internal.h.
Definition at line 613 of file zend_jit_internal.h.
#define TRACE_FRAME_SHIFT_NUM_ARGS 16 |
Definition at line 558 of file zend_jit_internal.h.
Definition at line 57 of file zend_jit_internal.h.
Definition at line 63 of file zend_jit_internal.h.
Definition at line 47 of file zend_jit_internal.h.
Definition at line 49 of file zend_jit_internal.h.
Definition at line 50 of file zend_jit_internal.h.
Definition at line 56 of file zend_jit_internal.h.
Definition at line 59 of file zend_jit_internal.h.
Definition at line 48 of file zend_jit_internal.h.
Definition at line 37 of file zend_jit_internal.h.
Definition at line 39 of file zend_jit_internal.h.
#define ZEND_ADDR_REF_ZVAL | ( | ref | ) |
Definition at line 52 of file zend_jit_internal.h.
#define ZEND_ADDR_REG | ( | reg | ) |
Definition at line 43 of file zend_jit_internal.h.
#define ZEND_COUNTER_INFO | ( | op_array | ) |
Definition at line 134 of file zend_jit_internal.h.
#define ZEND_HOT_COUNTERS_COUNT 128 |
Definition at line 139 of file zend_jit_internal.h.
#define ZEND_JIT_EXIT_BLACKLISTED (1<<1) |
Definition at line 315 of file zend_jit_internal.h.
#define ZEND_JIT_EXIT_CHECK_EXCEPTION (1<<11) |
Definition at line 325 of file zend_jit_internal.h.
Definition at line 322 of file zend_jit_internal.h.
#define ZEND_JIT_EXIT_FIXED (1U<<31) /* the exit_info can't be changed by zend_jit_snapshot_handler() */ |
Definition at line 327 of file zend_jit_internal.h.
#define ZEND_JIT_EXIT_FREE_OP1 (1<<5) |
Definition at line 319 of file zend_jit_internal.h.
#define ZEND_JIT_EXIT_FREE_OP2 (1<<6) |
Definition at line 320 of file zend_jit_internal.h.
Definition at line 324 of file zend_jit_internal.h.
#define ZEND_JIT_EXIT_JITED (1<<0) |
Definition at line 314 of file zend_jit_internal.h.
Definition at line 323 of file zend_jit_internal.h.
#define ZEND_JIT_EXIT_PACKED_GUARD (1<<7) |
Definition at line 321 of file zend_jit_internal.h.
Definition at line 318 of file zend_jit_internal.h.
Definition at line 317 of file zend_jit_internal.h.
Definition at line 316 of file zend_jit_internal.h.
#define zend_jit_op_array_hash | ( | op_array | ) |
Definition at line 169 of file zend_jit_internal.h.
#define zend_jit_opline_hash | ( | opline | ) |
Definition at line 244 of file zend_jit_internal.h.
#define ZEND_JIT_TRACE_BLACKLISTED (1<<5) |
Definition at line 309 of file zend_jit_internal.h.
#define ZEND_JIT_TRACE_CHECK_INTERRUPT (1<<0) |
Definition at line 512 of file zend_jit_internal.h.
#define ZEND_JIT_TRACE_FAKE_INFO | ( | level | ) |
Definition at line 382 of file zend_jit_internal.h.
#define ZEND_JIT_TRACE_FAKE_INIT_CALL 0x00000100 |
Definition at line 370 of file zend_jit_internal.h.
#define ZEND_JIT_TRACE_FAKE_LEVEL | ( | info | ) |
Definition at line 379 of file zend_jit_internal.h.
#define ZEND_JIT_TRACE_FAKE_LEVEL_MASK 0xffff0000 |
Definition at line 376 of file zend_jit_internal.h.
#define ZEND_JIT_TRACE_FAKE_LEVEL_SHIFT 16 |
Definition at line 377 of file zend_jit_internal.h.
#define ZEND_JIT_TRACE_GET_FIRST_SSA_VAR | ( | _info | ) |
Definition at line 388 of file zend_jit_internal.h.
#define ZEND_JIT_TRACE_JITED (1<<4) |
Definition at line 308 of file zend_jit_internal.h.
#define ZEND_JIT_TRACE_LOOP (1<<1) |
Definition at line 513 of file zend_jit_internal.h.
#define ZEND_JIT_TRACE_MAX_SSA_VAR 0x7ffffe |
Definition at line 373 of file zend_jit_internal.h.
#define ZEND_JIT_TRACE_RETURN_VALUE_USED 0x00000100 |
Definition at line 371 of file zend_jit_internal.h.
#define ZEND_JIT_TRACE_SET_FIRST_SSA_VAR | ( | _info, | |
var ) |
Definition at line 385 of file zend_jit_internal.h.
#define ZEND_JIT_TRACE_SSA_VAR_SHIFT 9 |
Definition at line 374 of file zend_jit_internal.h.
#define ZEND_JIT_TRACE_START_ENTER (1<<1) |
Definition at line 304 of file zend_jit_internal.h.
#define ZEND_JIT_TRACE_START_LOOP (1<<0) |
Definition at line 303 of file zend_jit_internal.h.
#define ZEND_JIT_TRACE_START_MASK 0xf |
Definition at line 301 of file zend_jit_internal.h.
#define ZEND_JIT_TRACE_START_REC_SIZE 2 |
Definition at line 422 of file zend_jit_internal.h.
#define ZEND_JIT_TRACE_START_RETURN (1<<2) |
Definition at line 305 of file zend_jit_internal.h.
Definition at line 306 of file zend_jit_internal.h.
Definition at line 247 of file zend_jit_internal.h.
Definition at line 292 of file zend_jit_internal.h.
Definition at line 298 of file zend_jit_internal.h.
Definition at line 281 of file zend_jit_internal.h.
Definition at line 289 of file zend_jit_internal.h.
Definition at line 295 of file zend_jit_internal.h.
#define ZEND_JIT_TRACE_SUPPORTED 0 |
Definition at line 312 of file zend_jit_internal.h.
#define ZEND_JIT_TRACE_UNSUPPORTED (1<<6) |
Definition at line 310 of file zend_jit_internal.h.
#define ZEND_JIT_TRACE_USES_INITIAL_IP (1<<2) |
Definition at line 514 of file zend_jit_internal.h.
Definition at line 346 of file zend_jit_internal.h.
#define ZEND_OPCODE_HANDLER_ARGS EXECUTE_DATA_D |
Definition at line 207 of file zend_jit_internal.h.
#define ZEND_OPCODE_HANDLER_ARGS_DC EXECUTE_DATA_DC |
Definition at line 209 of file zend_jit_internal.h.
#define ZEND_OPCODE_HANDLER_ARGS_PASSTHRU EXECUTE_DATA_C |
Definition at line 208 of file zend_jit_internal.h.
#define ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC EXECUTE_DATA_CC |
Definition at line 210 of file zend_jit_internal.h.
#define ZEND_OPCODE_HANDLER_RET int |
Definition at line 206 of file zend_jit_internal.h.
#define ZEND_OPCODE_RETURN | ( | ) |
Definition at line 211 of file zend_jit_internal.h.
Definition at line 212 of file zend_jit_internal.h.
Definition at line 215 of file zend_jit_internal.h.
typedef uintptr_t zend_jit_addr |
Definition at line 25 of file zend_jit_internal.h.
typedef union _zend_jit_exit_const zend_jit_exit_const |
typedef struct _zend_jit_op_array_extension zend_jit_op_array_extension |
typedef struct _zend_jit_op_array_hot_extension zend_jit_op_array_hot_extension |
typedef struct _zend_jit_ref_snapshot zend_jit_ref_snapshot |
typedef struct _zend_jit_trace_exit_info zend_jit_trace_exit_info |
typedef struct _zend_jit_trace_info zend_jit_trace_info |
typedef enum _zend_jit_trace_op zend_jit_trace_op |
typedef struct _zend_jit_trace_stack zend_jit_trace_stack |
typedef enum _zend_jit_trace_stop zend_jit_trace_stop |
typedef union _zend_op_trace_info zend_op_trace_info |
typedef ZEND_OPCODE_HANDLER_RET(ZEND_FASTCALL * zend_vm_opcode_handler_t) (ZEND_OPCODE_HANDLER_ARGS) |
Definition at line 221 of file zend_jit_internal.h.
enum _zend_jit_trace_op |
Definition at line 350 of file zend_jit_internal.h.
enum _zend_jit_trace_stop |
Enumerator | |
---|---|
ZEND_JIT_TRACE_HALT |
Definition at line 284 of file zend_jit_internal.h.
zend_constant *ZEND_FASTCALL zend_jit_check_constant | ( | const zval * | key | ) |
Definition at line 353 of file zend_jit_vm_helpers.c.
void ZEND_FASTCALL zend_jit_copy_extra_args_helper | ( | EXECUTE_DATA_D | ) |
Definition at line 169 of file zend_jit_vm_helpers.c.
void ZEND_FASTCALL zend_jit_copy_extra_args_helper_no_skip_recv | ( | EXECUTE_DATA_D | ) |
Definition at line 174 of file zend_jit_vm_helpers.c.
bool ZEND_FASTCALL zend_jit_deprecated_helper | ( | OPLINE_D | ) |
Definition at line 179 of file zend_jit_vm_helpers.c.
ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_jit_func_counter_helper | ( | ZEND_OPCODE_HANDLER_ARGS | ) |
Definition at line 263 of file zend_jit_vm_helpers.c.
ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_jit_func_trace_helper | ( | ZEND_OPCODE_HANDLER_ARGS | ) |
Definition at line 392 of file zend_jit_vm_helpers.c.
zend_constant *ZEND_FASTCALL zend_jit_get_constant | ( | const zval * | key, |
uint32_t | flags ) |
Definition at line 348 of file zend_jit_vm_helpers.c.
void ZEND_FASTCALL zend_jit_hot_func | ( | zend_execute_data * | execute_data, |
const zend_op * | opline ) |
ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_jit_leave_func_helper | ( | EXECUTE_DATA_D | ) |
Definition at line 112 of file zend_jit_vm_helpers.c.
ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_jit_leave_nested_func_helper | ( | uint32_t call_info | EXECUTE_DATA_DC | ) |
Definition at line 49 of file zend_jit_vm_helpers.c.
ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_jit_leave_top_func_helper | ( | uint32_t call_info | EXECUTE_DATA_DC | ) |
Definition at line 90 of file zend_jit_vm_helpers.c.
ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_jit_loop_counter_helper | ( | ZEND_OPCODE_HANDLER_ARGS | ) |
Definition at line 283 of file zend_jit_vm_helpers.c.
ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_jit_loop_trace_helper | ( | ZEND_OPCODE_HANDLER_ARGS | ) |
Definition at line 404 of file zend_jit_vm_helpers.c.
ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_jit_profile_helper | ( | ZEND_OPCODE_HANDLER_ARGS | ) |
Definition at line 253 of file zend_jit_vm_helpers.c.
ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_jit_ret_trace_helper | ( | ZEND_OPCODE_HANDLER_ARGS | ) |
Definition at line 398 of file zend_jit_vm_helpers.c.
zend_jit_trace_stop ZEND_FASTCALL zend_jit_trace_execute | ( | zend_execute_data * | execute_data, |
const zend_op * | opline, | ||
zend_jit_trace_rec * | trace_buffer, | ||
uint8_t | start, | ||
uint32_t | is_megamorphc, | ||
int | ret_depth ) |
Definition at line 603 of file zend_jit_vm_helpers.c.
int ZEND_FASTCALL zend_jit_trace_hot_root | ( | zend_execute_data * | execute_data, |
const zend_op * | opline ) |
Definition at line 8020 of file zend_jit_trace.c.
void ZEND_FASTCALL zend_jit_undefined_long_key | ( | EXECUTE_DATA_D | ) |
Definition at line 207 of file zend_jit_vm_helpers.c.
void ZEND_FASTCALL zend_jit_undefined_long_key_ex | ( | zend_long key | EXECUTE_DATA_DC | ) |
Definition at line 223 of file zend_jit_vm_helpers.c.
void ZEND_FASTCALL zend_jit_undefined_string_key | ( | EXECUTE_DATA_D | ) |
Definition at line 232 of file zend_jit_vm_helpers.c.
|
extern |
|
extern |
|
extern |
|
extern |