Skip to content

Commit fd29d02

Browse files
committed
Support for 32-bit build
1 parent d064294 commit fd29d02

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

ext/opcache/jit/zend_jit_ir.c

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12577,6 +12577,7 @@ static int zend_jit_ffi_fetch_dim_read(zend_jit_ctx *jit,
1257712577
jit_set_Z_LVAL(jit, res_addr, ir_SEXT_L(ir_LOAD_I16(ptr)));
1257812578
res_type = IS_LONG;
1257912579
break;
12580+
#ifdef ZEND_ENABLE_ZVAL_LONG64
1258012581
case ZEND_FFI_TYPE_UINT32:
1258112582
jit_set_Z_LVAL(jit, res_addr, ir_ZEXT_L(ir_LOAD_U32(ptr)));
1258212583
res_type = IS_LONG;
@@ -12593,6 +12594,16 @@ static int zend_jit_ffi_fetch_dim_read(zend_jit_ctx *jit,
1259312594
jit_set_Z_LVAL(jit, res_addr, ir_LOAD_I32(ptr));
1259412595
res_type = IS_LONG;
1259512596
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
1259612607
default:
1259712608
ZEND_UNREACHABLE();
1259812609
}
@@ -13350,6 +13361,7 @@ static int zend_jit_ffi_assign_dim(zend_jit_ctx *jit,
1335013361
ZEND_UNREACHABLE();
1335113362
}
1335213363
break;
13364+
#ifdef ZEND_ENABLE_ZVAL_LONG64
1335313365
case ZEND_FFI_TYPE_UINT32:
1335413366
if (val_info == MAY_BE_LONG) {
1335513367
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,
1337213384
ZEND_UNREACHABLE();
1337313385
}
1337413386
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
1337513397
default:
1337613398
ZEND_UNREACHABLE();
1337713399
}
@@ -13700,6 +13722,7 @@ static int zend_jit_ffi_assign_op_helper(zend_jit_ctx *jit,
1370013722
return 0;
1370113723
}
1370213724
break;
13725+
#ifdef ZEND_ENABLE_ZVAL_LONG64
1370313726
case ZEND_FFI_TYPE_UINT32:
1370413727
type = IR_U32;
1370513728
if (op2_info == MAY_BE_LONG) {
@@ -13728,6 +13751,18 @@ static int zend_jit_ffi_assign_op_helper(zend_jit_ctx *jit,
1372813751
return 0;
1372913752
}
1373013753
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
1373113766
default:
1373213767
ZEND_UNREACHABLE();
1373313768
return 0;

0 commit comments

Comments
 (0)