@@ -12475,6 +12475,7 @@ static int zend_jit_ffi_fetch_dim_read(zend_jit_ctx *jit,
12475
12475
jit_set_Z_LVAL(jit, res_addr, ir_SEXT_L(ir_LOAD_I16(ptr)));
12476
12476
res_type = IS_LONG;
12477
12477
break;
12478
+ #ifdef ZEND_ENABLE_ZVAL_LONG64
12478
12479
case ZEND_FFI_TYPE_UINT32:
12479
12480
jit_set_Z_LVAL(jit, res_addr, ir_ZEXT_L(ir_LOAD_U32(ptr)));
12480
12481
res_type = IS_LONG;
@@ -12491,6 +12492,16 @@ static int zend_jit_ffi_fetch_dim_read(zend_jit_ctx *jit,
12491
12492
jit_set_Z_LVAL(jit, res_addr, ir_LOAD_I32(ptr));
12492
12493
res_type = IS_LONG;
12493
12494
break;
12495
+ #else
12496
+ case ZEND_FFI_TYPE_UINT32:
12497
+ jit_set_Z_LVAL(jit, res_addr, ir_LOAD_U32(ptr));
12498
+ res_type = IS_LONG;
12499
+ break;
12500
+ case ZEND_FFI_TYPE_SINT32:
12501
+ jit_set_Z_LVAL(jit, res_addr, ir_LOAD_I32(ptr));
12502
+ res_type = IS_LONG;
12503
+ break;
12504
+ #endif
12494
12505
default:
12495
12506
ZEND_UNREACHABLE();
12496
12507
}
@@ -13248,6 +13259,7 @@ static int zend_jit_ffi_assign_dim(zend_jit_ctx *jit,
13248
13259
ZEND_UNREACHABLE();
13249
13260
}
13250
13261
break;
13262
+ #ifdef ZEND_ENABLE_ZVAL_LONG64
13251
13263
case ZEND_FFI_TYPE_UINT32:
13252
13264
if (val_info == MAY_BE_LONG) {
13253
13265
ir_STORE(ptr, ir_TRUNC_U32(jit_Z_LVAL(jit, op3_addr)));
@@ -13270,6 +13282,16 @@ static int zend_jit_ffi_assign_dim(zend_jit_ctx *jit,
13270
13282
ZEND_UNREACHABLE();
13271
13283
}
13272
13284
break;
13285
+ #else
13286
+ case ZEND_FFI_TYPE_UINT32:
13287
+ case ZEND_FFI_TYPE_SINT32:
13288
+ if (val_info == MAY_BE_LONG) {
13289
+ ir_STORE(ptr, jit_Z_LVAL(jit, op3_addr));
13290
+ } else {
13291
+ ZEND_UNREACHABLE();
13292
+ }
13293
+ break;
13294
+ #endif
13273
13295
default:
13274
13296
ZEND_UNREACHABLE();
13275
13297
}
@@ -13598,6 +13620,7 @@ static int zend_jit_ffi_assign_op_helper(zend_jit_ctx *jit,
13598
13620
return 0;
13599
13621
}
13600
13622
break;
13623
+ #ifdef ZEND_ENABLE_ZVAL_LONG64
13601
13624
case ZEND_FFI_TYPE_UINT32:
13602
13625
type = IR_U32;
13603
13626
if (op2_info == MAY_BE_LONG) {
@@ -13626,6 +13649,18 @@ static int zend_jit_ffi_assign_op_helper(zend_jit_ctx *jit,
13626
13649
return 0;
13627
13650
}
13628
13651
break;
13652
+ #else
13653
+ case ZEND_FFI_TYPE_UINT32:
13654
+ case ZEND_FFI_TYPE_SINT32:
13655
+ type = IR_I32;
13656
+ if (op2_info == MAY_BE_LONG) {
13657
+ op2 = jit_Z_LVAL(jit, op2_addr);
13658
+ } else {
13659
+ ZEND_UNREACHABLE();
13660
+ return 0;
13661
+ }
13662
+ break;
13663
+ #endif
13629
13664
default:
13630
13665
ZEND_UNREACHABLE();
13631
13666
return 0;
0 commit comments