@@ -2911,53 +2911,12 @@ static int zend_jit_check_exception_undef_result(dasm_State **Dst, const zend_op
2911
2911
2912
2912
static int zend_jit_trace_begin(dasm_State **Dst, uint32_t trace_num, zend_jit_trace_info *parent, uint32_t exit_num)
2913
2913
{
2914
- zend_regset regset = ZEND_REGSET_SCRATCH;
2915
-
2916
- // In the x86 implementation, this clause would be conducted if ZTS is enabled or the addressing mode is 64-bit.
2917
- {
2918
- /* assignment to EG(jit_trace_num) shouldn't clober CPU register used by deoptimizer */
2919
- if (parent) {
2920
- int i;
2921
- int parent_vars_count = parent->exit_info[exit_num].stack_size;
2922
- zend_jit_trace_stack *parent_stack =
2923
- parent->stack_map +
2924
- parent->exit_info[exit_num].stack_offset;
2925
-
2926
- for (i = 0; i < parent_vars_count; i++) {
2927
- if (STACK_REG(parent_stack, i) != ZREG_NONE) {
2928
- if (STACK_REG(parent_stack, i) < ZREG_NUM) {
2929
- ZEND_REGSET_EXCL(regset, STACK_REG(parent_stack, i));
2930
- } else if (STACK_REG(parent_stack, i) == ZREG_ZVAL_COPY_GPR0) {
2931
- ZEND_REGSET_EXCL(regset, ZREG_REG0);
2932
- }
2933
- }
2934
- }
2935
- }
2936
- }
2937
-
2938
- if (parent && parent->exit_info[exit_num].flags & ZEND_JIT_EXIT_METHOD_CALL) {
2939
- ZEND_REGSET_EXCL(regset, ZREG_REG0);
2940
- }
2941
2914
2942
2915
current_trace_num = trace_num;
2943
2916
2944
2917
| // EG(jit_trace_num) = trace_num;
2945
- if (regset == ZEND_REGSET_EMPTY || ZEND_REGSET_IS_SINGLETON(regset)) {
2946
- | sub sp, sp, #16
2947
- | stp TMP1, TMP2, [sp] // save TMP1 and TMP2
2948
- | LOAD_32BIT_VAL TMP1w, trace_num
2949
- | MEM_STORE_32_ZTS str, TMP1w, executor_globals, jit_trace_num, TMP2
2950
- | ldp TMP1, TMP2, [sp] // retore TMP1 and TMP2
2951
- | add sp, sp, #16
2952
- } else {
2953
- zend_reg tmp1 = ZEND_REGSET_FIRST(regset);
2954
- zend_reg tmp2 = ZEND_REGSET_FIRST(ZEND_REGSET_EXCL(regset, tmp1));
2955
-
2956
- | LOAD_32BIT_VAL Rw(tmp1), trace_num
2957
- | MEM_STORE_32_ZTS str, Rw(tmp1), executor_globals, jit_trace_num, Rx(tmp2)
2958
- (void)tmp1;
2959
- (void)tmp2;
2960
- }
2918
+ | LOAD_32BIT_VAL TMP1w, trace_num
2919
+ | MEM_STORE_32_ZTS str, TMP1w, executor_globals, jit_trace_num, TMP2
2961
2920
2962
2921
return 1;
2963
2922
}
0 commit comments