Skip to content

Commit 8d268e8

Browse files
committed
Fixed IS_32BIT/IS_SIGNED_32BIT mess
1 parent 186b766 commit 8d268e8

File tree

1 file changed

+17
-17
lines changed

1 file changed

+17
-17
lines changed

ext/opcache/jit/zend_jit_x86.dasc

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ static void* dasm_labels[zend_lb_MAX];
165165

166166
|.section code, cold_code, jmp_table
167167

168-
#define IS_32BIT(addr) (((uintptr_t)(addr)) <= 0xffffffff)
168+
#define IS_32BIT(addr) (((uintptr_t)(addr)) <= 0x7fffffff)
169169

170170
#define IS_SIGNED_32BIT(val) ((((intptr_t)(val)) <= 0x7fffffff) && (((intptr_t)(val)) >= (-2147483647 - 1)))
171171

@@ -188,7 +188,7 @@ static void* dasm_labels[zend_lb_MAX];
188188

189189
|.macro LOAD_ADDR, reg, addr
190190
| .if X64
191-
|| if (IS_32BIT(addr)) {
191+
|| if (IS_SIGNED_32BIT(addr)) {
192192
| mov reg, ((ptrdiff_t)addr) // 0x48 0xc7 0xc0 <imm-32-bit>
193193
|| } else {
194194
| mov64 reg, ((ptrdiff_t)addr) // 0x48 0xb8 <imm-64-bit>
@@ -249,7 +249,7 @@ static void* dasm_labels[zend_lb_MAX];
249249

250250
|.macro ADDR_OP1, addr_ins, addr, tmp_reg
251251
| .if X64
252-
|| if (IS_32BIT(addr)) {
252+
|| if (IS_SIGNED_32BIT(addr)) {
253253
| addr_ins ((ptrdiff_t)addr)
254254
|| } else {
255255
| mov64 tmp_reg, ((ptrdiff_t)addr)
@@ -262,7 +262,7 @@ static void* dasm_labels[zend_lb_MAX];
262262

263263
|.macro ADDR_OP2_2, addr_ins, op1, addr, tmp_reg
264264
| .if X64
265-
|| if (IS_32BIT(addr)) {
265+
|| if (IS_SIGNED_32BIT(addr)) {
266266
| addr_ins op1, ((ptrdiff_t)addr)
267267
|| } else {
268268
| mov64 tmp_reg, ((ptrdiff_t)addr)
@@ -289,7 +289,7 @@ static void* dasm_labels[zend_lb_MAX];
289289

290290
|.macro MEM_OP1, mem_ins, prefix, addr, tmp_reg
291291
| .if X64
292-
|| if (IS_32BIT(addr)) {
292+
|| if (IS_SIGNED_32BIT(addr)) {
293293
| mem_ins prefix [addr]
294294
|| } else {
295295
| mov64 tmp_reg, ((ptrdiff_t)addr)
@@ -302,7 +302,7 @@ static void* dasm_labels[zend_lb_MAX];
302302

303303
|.macro MEM_OP2_1, mem_ins, prefix, addr, op2, tmp_reg
304304
| .if X64
305-
|| if (IS_32BIT(addr)) {
305+
|| if (IS_SIGNED_32BIT(addr)) {
306306
| mem_ins prefix [addr], op2
307307
|| } else {
308308
| mov64 tmp_reg, ((ptrdiff_t)addr)
@@ -315,7 +315,7 @@ static void* dasm_labels[zend_lb_MAX];
315315

316316
|.macro MEM_OP2_2, mem_ins, op1, prefix, addr, tmp_reg
317317
| .if X64
318-
|| if (IS_32BIT(addr)) {
318+
|| if (IS_SIGNED_32BIT(addr)) {
319319
| mem_ins op1, prefix [addr]
320320
|| } else {
321321
| mov64 tmp_reg, ((ptrdiff_t)addr)
@@ -346,7 +346,7 @@ static void* dasm_labels[zend_lb_MAX];
346346

347347
|.macro MEM_OP3_3, mem_ins, op1, op2, prefix, addr, tmp_reg
348348
| .if X64
349-
|| if (IS_32BIT(addr)) {
349+
|| if (IS_SIGNED_32BIT(addr)) {
350350
| mem_ins op1, op2, prefix [addr]
351351
|| } else {
352352
| mov64 tmp_reg, ((ptrdiff_t)addr)
@@ -581,7 +581,7 @@ static void* dasm_labels[zend_lb_MAX];
581581
|.macro SSE_AVX_OP, sse_ins, avx_ins, reg, addr
582582
|| if (Z_MODE(addr) == IS_CONST_ZVAL) {
583583
| .if X64
584-
|| if (IS_32BIT(Z_ZV(addr))) {
584+
|| if (IS_SIGNED_32BIT(Z_ZV(addr))) {
585585
| SSE_AVX_INS sse_ins, avx_ins, xmm(reg-ZREG_XMM0), qword [Z_ZV(addr)]
586586
|| } else {
587587
| LOAD_ADDR r0, Z_ZV(addr)
@@ -654,7 +654,7 @@ static void* dasm_labels[zend_lb_MAX];
654654
|| if (Z_MODE(addr) != IS_REG || reg != Z_REG(addr)) {
655655
|| if (Z_MODE(addr) == IS_CONST_ZVAL) {
656656
| .if X64
657-
|| if (IS_32BIT(Z_ZV(addr))) {
657+
|| if (IS_SIGNED_32BIT(Z_ZV(addr))) {
658658
| SSE_AVX_INS movsd, vmovsd, xmm(reg-ZREG_XMM0), qword [Z_ZV(addr)]
659659
|| } else {
660660
| LOAD_ADDR r0, Z_ZV(addr)
@@ -924,7 +924,7 @@ static void* dasm_labels[zend_lb_MAX];
924924
| xorps xmm(dst_reg-ZREG_XMM0), xmm(dst_reg-ZREG_XMM0)
925925
|| }
926926
| .if X64
927-
|| } else if (!IS_32BIT(zv)) {
927+
|| } else if (!IS_SIGNED_32BIT(zv)) {
928928
| mov64 Ra(tmp_reg), ((uintptr_t)zv)
929929
| SSE_AVX_INS movsd, vmovsd, xmm(dst_reg-ZREG_XMM0), qword [Ra(tmp_reg)]
930930
| .endif
@@ -978,7 +978,7 @@ static void* dasm_labels[zend_lb_MAX];
978978
| xorps xmm(dst_reg-ZREG_XMM0), xmm(dst_reg-ZREG_XMM0)
979979
|| }
980980
| .if X64
981-
|| } else if (!IS_32BIT(zv)) {
981+
|| } else if (!IS_SIGNED_32BIT(zv)) {
982982
| mov64 Ra(tmp_reg), ((uintptr_t)zv)
983983
| SSE_AVX_INS movsd, vmovsd, xmm(dst_reg-ZREG_XMM0), qword [Ra(tmp_reg)]
984984
| .endif
@@ -3130,7 +3130,7 @@ static int zend_jit_trace_begin(dasm_State **Dst, uint32_t trace_num, zend_jit_t
31303130
#if ZTS
31313131
if (1) {
31323132
#else
3133-
if ((sizeof(void*) == 8 && !IS_32BIT(&EG(jit_trace_num)))) {
3133+
if ((sizeof(void*) == 8 && !IS_SIGNED_32BIT(&EG(jit_trace_num)))) {
31343134
#endif
31353135
/* assignment to EG(jit_trace_num) shouldn't clober CPU register used by deoptimizer */
31363136
if (parent) {
@@ -6053,7 +6053,7 @@ static int zend_jit_assign_to_variable(dasm_State **Dst,
60536053
zval *zv = Z_ZV(val_addr);
60546054

60556055
if (Z_TYPE_P(zv) == IS_DOUBLE) {
6056-
if (Z_DVAL_P(zv) == 0 || IS_32BIT(zv)) {
6056+
if (Z_DVAL_P(zv) == 0 || IS_SIGNED_32BIT(zv)) {
60576057
keep_gc = 1;
60586058
}
60596059
} else if (IS_SIGNED_32BIT(Z_LVAL_P(zv))) {
@@ -15331,7 +15331,7 @@ static zend_bool zend_needs_extra_reg_for_const(const zend_op *opline, zend_ucha
1533115331
|.if X64
1533215332
|| if (op_type == IS_CONST) {
1533315333
|| zval *zv = RT_CONSTANT(opline, op);
15334-
|| if (Z_TYPE_P(zv) == IS_DOUBLE && Z_DVAL_P(zv) != 0 && !IS_32BIT(zv)) {
15334+
|| if (Z_TYPE_P(zv) == IS_DOUBLE && Z_DVAL_P(zv) != 0 && !IS_SIGNED_32BIT(zv)) {
1533515335
|| return 1;
1533615336
|| } else if (Z_TYPE_P(zv) == IS_LONG && !IS_SIGNED_32BIT(Z_LVAL_P(zv))) {
1533715337
|| return 1;
@@ -15676,7 +15676,7 @@ static zend_regset zend_jit_get_scratch_regset(const zend_op *opline, const zend
1567615676
#if ZTS
1567715677
ZEND_REGSET_INCL(regset, ZREG_R0);
1567815678
#else
15679-
if ((sizeof(void*) == 8 && !IS_32BIT(&EG(vm_interrupt)))) {
15679+
if ((sizeof(void*) == 8 && !IS_SIGNED_32BIT(&EG(vm_interrupt)))) {
1568015680
ZEND_REGSET_INCL(regset, ZREG_R0);
1568115681
}
1568215682
#endif
@@ -15689,7 +15689,7 @@ static zend_regset zend_jit_get_scratch_regset(const zend_op *opline, const zend
1568915689
#if ZTS
1569015690
ZEND_REGSET_INCL(regset, ZREG_R0);
1569115691
#else
15692-
if ((sizeof(void*) == 8 && !IS_32BIT(&EG(vm_interrupt)))) {
15692+
if ((sizeof(void*) == 8 && !IS_SIGNED_32BIT(&EG(vm_interrupt)))) {
1569315693
ZEND_REGSET_INCL(regset, ZREG_R0);
1569415694
}
1569515695
#endif

0 commit comments

Comments
 (0)