Skip to content

Commit 0f94a20

Browse files
committed
Support for 32-bit build
1 parent a37ff83 commit 0f94a20

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

ext/opcache/jit/zend_jit_ir.c

+35
Original file line numberDiff line numberDiff line change
@@ -12475,6 +12475,7 @@ static int zend_jit_ffi_fetch_dim_read(zend_jit_ctx *jit,
1247512475
jit_set_Z_LVAL(jit, res_addr, ir_SEXT_L(ir_LOAD_I16(ptr)));
1247612476
res_type = IS_LONG;
1247712477
break;
12478+
#ifdef ZEND_ENABLE_ZVAL_LONG64
1247812479
case ZEND_FFI_TYPE_UINT32:
1247912480
jit_set_Z_LVAL(jit, res_addr, ir_ZEXT_L(ir_LOAD_U32(ptr)));
1248012481
res_type = IS_LONG;
@@ -12491,6 +12492,16 @@ static int zend_jit_ffi_fetch_dim_read(zend_jit_ctx *jit,
1249112492
jit_set_Z_LVAL(jit, res_addr, ir_LOAD_I32(ptr));
1249212493
res_type = IS_LONG;
1249312494
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
1249412505
default:
1249512506
ZEND_UNREACHABLE();
1249612507
}
@@ -13248,6 +13259,7 @@ static int zend_jit_ffi_assign_dim(zend_jit_ctx *jit,
1324813259
ZEND_UNREACHABLE();
1324913260
}
1325013261
break;
13262+
#ifdef ZEND_ENABLE_ZVAL_LONG64
1325113263
case ZEND_FFI_TYPE_UINT32:
1325213264
if (val_info == MAY_BE_LONG) {
1325313265
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,
1327013282
ZEND_UNREACHABLE();
1327113283
}
1327213284
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
1327313295
default:
1327413296
ZEND_UNREACHABLE();
1327513297
}
@@ -13598,6 +13620,7 @@ static int zend_jit_ffi_assign_op_helper(zend_jit_ctx *jit,
1359813620
return 0;
1359913621
}
1360013622
break;
13623+
#ifdef ZEND_ENABLE_ZVAL_LONG64
1360113624
case ZEND_FFI_TYPE_UINT32:
1360213625
type = IR_U32;
1360313626
if (op2_info == MAY_BE_LONG) {
@@ -13626,6 +13649,18 @@ static int zend_jit_ffi_assign_op_helper(zend_jit_ctx *jit,
1362613649
return 0;
1362713650
}
1362813651
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
1362913664
default:
1363013665
ZEND_UNREACHABLE();
1363113666
return 0;

0 commit comments

Comments
 (0)