@@ -4693,6 +4693,10 @@ static const void *zend_jit_trace(zend_jit_trace_rec *trace_buffer, uint32_t par
4693
4693
&& (op1_ffi_type -> kind == ZEND_FFI_TYPE_ARRAY || op1_ffi_type -> kind == ZEND_FFI_TYPE_POINTER )
4694
4694
&& ZEND_FFI_TYPE (op1_ffi_type -> array .type )-> kind >= ZEND_FFI_TYPE_FLOAT
4695
4695
&& ZEND_FFI_TYPE (op1_ffi_type -> array .type )-> kind <= ZEND_FFI_TYPE_ENUM
4696
+ #if defined(IR_TARGET_X86 )
4697
+ & & ZEND_FFI_TYPE (op1_ffi_type -> array .type )-> kind != ZEND_FFI_TYPE_UINT64
4698
+ && ZEND_FFI_TYPE (op1_ffi_type -> array .type )-> kind != ZEND_FFI_TYPE_SINT64
4699
+ #endif
4696
4700
&& op2_info == MAY_BE_LONG ) {
4697
4701
if (!ffi_info ) {
4698
4702
ffi_info = zend_arena_calloc (& CG (arena ), ssa -> vars_count , sizeof (zend_jit_ffi_info ));
@@ -4899,6 +4903,10 @@ static const void *zend_jit_trace(zend_jit_trace_rec *trace_buffer, uint32_t par
4899
4903
&& !field -> bits
4900
4904
&& ZEND_FFI_TYPE (field -> type )-> kind >= ZEND_FFI_TYPE_FLOAT
4901
4905
&& ZEND_FFI_TYPE (field -> type )-> kind <= ZEND_FFI_TYPE_ENUM
4906
+ #if defined(IR_TARGET_X86 )
4907
+ & & ZEND_FFI_TYPE (field -> type )-> kind != ZEND_FFI_TYPE_UINT64
4908
+ && ZEND_FFI_TYPE (field -> type )-> kind != ZEND_FFI_TYPE_SINT64
4909
+ #endif
4902
4910
&& (op1_data_info == MAY_BE_LONG || op1_data_info == MAY_BE_DOUBLE )) {
4903
4911
if (!ffi_info ) {
4904
4912
ffi_info = zend_arena_calloc (& CG (arena ), ssa -> vars_count , sizeof (zend_jit_ffi_info ));
@@ -5005,6 +5013,10 @@ static const void *zend_jit_trace(zend_jit_trace_rec *trace_buffer, uint32_t par
5005
5013
&& !field -> bits
5006
5014
&& ZEND_FFI_TYPE (field -> type )-> kind >= ZEND_FFI_TYPE_FLOAT
5007
5015
&& ZEND_FFI_TYPE (field -> type )-> kind <= ZEND_FFI_TYPE_ENUM
5016
+ #if defined(IR_TARGET_X86 )
5017
+ & & ZEND_FFI_TYPE (field -> type )-> kind != ZEND_FFI_TYPE_UINT64
5018
+ && ZEND_FFI_TYPE (field -> type )-> kind != ZEND_FFI_TYPE_SINT64
5019
+ #endif
5008
5020
&& (op1_data_info == MAY_BE_LONG || op1_data_info == MAY_BE_DOUBLE )) {
5009
5021
if (!ffi_info ) {
5010
5022
ffi_info = zend_arena_calloc (& CG (arena ), ssa -> vars_count , sizeof (zend_jit_ffi_info ));
@@ -5082,6 +5094,10 @@ static const void *zend_jit_trace(zend_jit_trace_rec *trace_buffer, uint32_t par
5082
5094
&& (op1_ffi_type -> kind == ZEND_FFI_TYPE_ARRAY || op1_ffi_type -> kind == ZEND_FFI_TYPE_POINTER )
5083
5095
&& ZEND_FFI_TYPE (op1_ffi_type -> array .type )-> kind >= ZEND_FFI_TYPE_FLOAT
5084
5096
&& ZEND_FFI_TYPE (op1_ffi_type -> array .type )-> kind <= ZEND_FFI_TYPE_ENUM
5097
+ #if defined(IR_TARGET_X86 )
5098
+ & & ZEND_FFI_TYPE (op1_ffi_type -> array .type )-> kind != ZEND_FFI_TYPE_UINT64
5099
+ && ZEND_FFI_TYPE (op1_ffi_type -> array .type )-> kind != ZEND_FFI_TYPE_SINT64
5100
+ #endif
5085
5101
&& op2_info == MAY_BE_LONG
5086
5102
&& (op1_data_info == MAY_BE_LONG || op1_data_info == MAY_BE_DOUBLE )) {
5087
5103
if (!ffi_info ) {
@@ -5889,6 +5905,10 @@ static const void *zend_jit_trace(zend_jit_trace_rec *trace_buffer, uint32_t par
5889
5905
&& (op1_ffi_type -> kind == ZEND_FFI_TYPE_ARRAY || op1_ffi_type -> kind == ZEND_FFI_TYPE_POINTER )
5890
5906
&& ZEND_FFI_TYPE (op1_ffi_type -> array .type )-> kind >= ZEND_FFI_TYPE_FLOAT
5891
5907
&& ZEND_FFI_TYPE (op1_ffi_type -> array .type )-> kind <= ZEND_FFI_TYPE_ENUM
5908
+ #if defined(IR_TARGET_X86 )
5909
+ & & ZEND_FFI_TYPE (op1_ffi_type -> array .type )-> kind != ZEND_FFI_TYPE_UINT64
5910
+ && ZEND_FFI_TYPE (op1_ffi_type -> array .type )-> kind != ZEND_FFI_TYPE_SINT64
5911
+ #endif
5892
5912
&& op2_info == MAY_BE_LONG ) {
5893
5913
if (!ffi_info ) {
5894
5914
ffi_info = zend_arena_calloc (& CG (arena ), ssa -> vars_count , sizeof (zend_jit_ffi_info ));
@@ -6144,7 +6164,12 @@ static const void *zend_jit_trace(zend_jit_trace_rec *trace_buffer, uint32_t par
6144
6164
if (field
6145
6165
&& !field -> bits
6146
6166
&& ZEND_FFI_TYPE (field -> type )-> kind >= ZEND_FFI_TYPE_FLOAT
6147
- && ZEND_FFI_TYPE (field -> type )-> kind <= ZEND_FFI_TYPE_ENUM ) {
6167
+ && ZEND_FFI_TYPE (field -> type )-> kind <= ZEND_FFI_TYPE_ENUM
6168
+ #if defined(IR_TARGET_X86 )
6169
+ & & ZEND_FFI_TYPE (field -> type )-> kind != ZEND_FFI_TYPE_UINT64
6170
+ && ZEND_FFI_TYPE (field -> type )-> kind != ZEND_FFI_TYPE_SINT64
6171
+ #endif
6172
+ ) {
6148
6173
if (!ffi_info ) {
6149
6174
ffi_info = zend_arena_calloc (& CG (arena ), ssa -> vars_count , sizeof (zend_jit_ffi_info ));
6150
6175
}
0 commit comments