Skip to content

Commit bb1a68b

Browse files
committed
Use EX(run_time_cache) instead of RUN_TIME_CACHE(&EX(func)->op_array)
1 parent a9b2ff3 commit bb1a68b

File tree

2 files changed

+7
-21
lines changed

2 files changed

+7
-21
lines changed

ext/opcache/jit/zend_jit_vm_helpers.c

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -184,9 +184,7 @@ ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_jit_profile_helper(ZEND_OPCODE_HANDLE
184184
zend_op_array *op_array = (zend_op_array*)EX(func);
185185
zend_jit_op_array_extension *jit_extension = (zend_jit_op_array_extension*)ZEND_FUNC_INFO(op_array);
186186
zend_vm_opcode_handler_t handler = jit_extension->orig_handler;
187-
uintptr_t counter = (uintptr_t)ZEND_COUNTER_INFO(op_array);
188-
189-
ZEND_COUNTER_INFO(op_array) = (void*)(counter + 1);
187+
++*(uintptr_t*)(EX(run_time_cache) + zend_jit_profile_counter_rid);
190188
++zend_jit_profile_counter;
191189
ZEND_OPCODE_TAIL_CALL(handler);
192190
}

ext/opcache/jit/zend_jit_x86.dasc

Lines changed: 6 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2156,26 +2156,14 @@ static int zend_jit_hybrid_profile_jit_stub(dasm_State **Dst)
21562156
| .endif
21572157
| // op_array = (zend_op_array*)EX(func);
21582158
| mov r0, EX->func
2159-
| // ++ZEND_COUNTER_INFO(op_array)
2160-
| mov r2, aword [r0 + offsetof(zend_op_array, run_time_cache__ptr)]
2161-
#if ZEND_MAP_PTR_KIND == ZEND_MAP_PTR_KIND_PTR
2162-
| mov r2, aword [r2]
2163-
#elif ZEND_MAP_PTR_KIND == ZEND_MAP_PTR_KIND_PTR_OR_OFFSET
2164-
| test r2, 1
2165-
| jz >1
2166-
| MEM_OP2_2_ZTS add, r2, aword, compiler_globals, map_ptr_base, r1
2167-
|1:
2168-
| mov r2, aword [r2]
2169-
#else
2170-
# error "Unknown ZEND_MAP_PTR_KIND"
2171-
#endif
2172-
| inc aword [r2 + zend_jit_profile_counter_rid * sizeof(void*)]
2159+
| // run_time_cache = EX(run_time_cache);
2160+
| mov r2, EX->run_time_cache
21732161
| // jit_extension = (const void*)ZEND_FUNC_INFO(op_array);
21742162
| mov r0, aword [r0 + offsetof(zend_op_array, reserved[zend_func_info_rid])]
2175-
| // handler = jit_extension->orig_handler
2176-
| mov r0, aword [r0 + offsetof(zend_jit_op_array_extension, orig_handler)]
2177-
| // return ((zend_vm_opcode_handler_t)handler)();
2178-
| jmp r0
2163+
| // ++ZEND_COUNTER_INFO(op_array)
2164+
| inc aword [r2 + zend_jit_profile_counter_rid * sizeof(void*)]
2165+
| // return ((zend_vm_opcode_handler_t)jit_extension->orig_handler)()
2166+
| jmp aword [r0 + offsetof(zend_jit_op_array_extension, orig_handler)]
21792167
return 1;
21802168
}
21812169

0 commit comments

Comments
 (0)