@@ -12577,6 +12577,7 @@ static int zend_jit_ffi_fetch_dim_read(zend_jit_ctx *jit,
12577
12577
jit_set_Z_LVAL(jit, res_addr, ir_SEXT_L(ir_LOAD_I16(ptr)));
12578
12578
res_type = IS_LONG;
12579
12579
break;
12580
+ #ifdef ZEND_ENABLE_ZVAL_LONG64
12580
12581
case ZEND_FFI_TYPE_UINT32:
12581
12582
jit_set_Z_LVAL(jit, res_addr, ir_ZEXT_L(ir_LOAD_U32(ptr)));
12582
12583
res_type = IS_LONG;
@@ -12593,6 +12594,16 @@ static int zend_jit_ffi_fetch_dim_read(zend_jit_ctx *jit,
12593
12594
jit_set_Z_LVAL(jit, res_addr, ir_LOAD_I32(ptr));
12594
12595
res_type = IS_LONG;
12595
12596
break;
12597
+ #else
12598
+ case ZEND_FFI_TYPE_UINT32:
12599
+ jit_set_Z_LVAL(jit, res_addr, ir_LOAD_U32(ptr));
12600
+ res_type = IS_LONG;
12601
+ break;
12602
+ case ZEND_FFI_TYPE_SINT32:
12603
+ jit_set_Z_LVAL(jit, res_addr, ir_LOAD_I32(ptr));
12604
+ res_type = IS_LONG;
12605
+ break;
12606
+ #endif
12596
12607
default:
12597
12608
ZEND_UNREACHABLE();
12598
12609
}
@@ -13350,6 +13361,7 @@ static int zend_jit_ffi_assign_dim(zend_jit_ctx *jit,
13350
13361
ZEND_UNREACHABLE();
13351
13362
}
13352
13363
break;
13364
+ #ifdef ZEND_ENABLE_ZVAL_LONG64
13353
13365
case ZEND_FFI_TYPE_UINT32:
13354
13366
if (val_info == MAY_BE_LONG) {
13355
13367
ir_STORE(ptr, ir_TRUNC_U32(jit_Z_LVAL(jit, op3_addr)));
@@ -13372,6 +13384,16 @@ static int zend_jit_ffi_assign_dim(zend_jit_ctx *jit,
13372
13384
ZEND_UNREACHABLE();
13373
13385
}
13374
13386
break;
13387
+ #else
13388
+ case ZEND_FFI_TYPE_UINT32:
13389
+ case ZEND_FFI_TYPE_SINT32:
13390
+ if (val_info == MAY_BE_LONG) {
13391
+ ir_STORE(ptr, jit_Z_LVAL(jit, op3_addr));
13392
+ } else {
13393
+ ZEND_UNREACHABLE();
13394
+ }
13395
+ break;
13396
+ #endif
13375
13397
default:
13376
13398
ZEND_UNREACHABLE();
13377
13399
}
@@ -13700,6 +13722,7 @@ static int zend_jit_ffi_assign_op_helper(zend_jit_ctx *jit,
13700
13722
return 0;
13701
13723
}
13702
13724
break;
13725
+ #ifdef ZEND_ENABLE_ZVAL_LONG64
13703
13726
case ZEND_FFI_TYPE_UINT32:
13704
13727
type = IR_U32;
13705
13728
if (op2_info == MAY_BE_LONG) {
@@ -13728,6 +13751,18 @@ static int zend_jit_ffi_assign_op_helper(zend_jit_ctx *jit,
13728
13751
return 0;
13729
13752
}
13730
13753
break;
13754
+ #else
13755
+ case ZEND_FFI_TYPE_UINT32:
13756
+ case ZEND_FFI_TYPE_SINT32:
13757
+ type = IR_I32;
13758
+ if (op2_info == MAY_BE_LONG) {
13759
+ op2 = jit_Z_LVAL(jit, op2_addr);
13760
+ } else {
13761
+ ZEND_UNREACHABLE();
13762
+ return 0;
13763
+ }
13764
+ break;
13765
+ #endif
13731
13766
default:
13732
13767
ZEND_UNREACHABLE();
13733
13768
return 0;
0 commit comments