Skip to content

Commit 175c7bf

Browse files
committed
Revert "micro-optimization"
This reverts commit 374f769.
1 parent da56e77 commit 175c7bf

File tree

4 files changed

+24
-43
lines changed

4 files changed

+24
-43
lines changed

Zend/zend_execute.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3502,6 +3502,9 @@ static zend_always_inline void i_init_func_execute_data(zend_op_array *op_array,
35023502
EX(run_time_cache) = RUN_TIME_CACHE(op_array);
35033503

35043504
EG(current_execute_data) = execute_data;
3505+
#if defined(ZEND_VM_IP_GLOBAL_REG) && ((ZEND_VM_KIND == ZEND_VM_KIND_CALL) || (ZEND_VM_KIND == ZEND_VM_KIND_HYBRID))
3506+
EX(opline) = opline;
3507+
#endif
35053508
}
35063509
/* }}} */
35073510

Zend/zend_vm_def.h

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -828,12 +828,12 @@ ZEND_VM_COLD_HELPER(zend_this_not_in_object_context_helper, ANY, ANY)
828828
HANDLE_EXCEPTION();
829829
}
830830

831-
ZEND_VM_COLD_HELPER(zend_abstract_method_helper, ANY, ANY, zend_function *_fbc)
831+
ZEND_VM_COLD_HELPER(zend_abstract_method_helper, ANY, ANY, zend_function *fbc)
832832
{
833833
USE_OPLINE
834834

835835
SAVE_OPLINE();
836-
zend_throw_error(NULL, "Cannot call abstract method %s::%s()", ZSTR_VAL(_fbc->common.scope->name), ZSTR_VAL(_fbc->common.function_name));
836+
zend_throw_error(NULL, "Cannot call abstract method %s::%s()", ZSTR_VAL(fbc->common.scope->name), ZSTR_VAL(fbc->common.function_name));
837837
UNDEF_RESULT();
838838
HANDLE_EXCEPTION();
839839
}
@@ -3842,7 +3842,7 @@ ZEND_VM_HOT_HANDLER(130, ZEND_DO_UCALL, ANY, ANY, SPEC(RETVAL))
38423842
call->prev_execute_data = execute_data;
38433843
execute_data = call;
38443844
i_init_func_execute_data(&fbc->op_array, ret, 0 EXECUTE_DATA_CC);
3845-
LOAD_OPLINE_EX();
3845+
LOAD_OPLINE();
38463846

38473847
ZEND_VM_ENTER_EX();
38483848
}
@@ -3866,7 +3866,7 @@ ZEND_VM_HOT_HANDLER(131, ZEND_DO_FCALL_BY_NAME, ANY, ANY, SPEC(RETVAL))
38663866
call->prev_execute_data = execute_data;
38673867
execute_data = call;
38683868
i_init_func_execute_data(&fbc->op_array, ret, 0 EXECUTE_DATA_CC);
3869-
LOAD_OPLINE_EX();
3869+
LOAD_OPLINE();
38703870

38713871
ZEND_VM_ENTER_EX();
38723872
} else {
@@ -3934,7 +3934,7 @@ ZEND_VM_HOT_HANDLER(60, ZEND_DO_FCALL, ANY, ANY, SPEC(RETVAL))
39343934
EX(call) = call->prev_execute_data;
39353935
if (UNEXPECTED((fbc->common.fn_flags & (ZEND_ACC_ABSTRACT|ZEND_ACC_DEPRECATED)) != 0)) {
39363936
if (UNEXPECTED((fbc->common.fn_flags & ZEND_ACC_ABSTRACT) != 0)) {
3937-
ZEND_VM_DISPATCH_TO_HELPER(zend_abstract_method_helper, _fbc, fbc);
3937+
ZEND_VM_DISPATCH_TO_HELPER(zend_abstract_method_helper, fbc, fbc);
39383938
} else {
39393939
zend_deprecated_function(fbc);
39403940
if (UNEXPECTED(EG(exception) != NULL)) {
@@ -3955,11 +3955,11 @@ ZEND_VM_HOT_HANDLER(60, ZEND_DO_FCALL, ANY, ANY, SPEC(RETVAL))
39553955
i_init_func_execute_data(&fbc->op_array, ret, 1 EXECUTE_DATA_CC);
39563956

39573957
if (EXPECTED(zend_execute_ex == execute_ex)) {
3958-
LOAD_OPLINE_EX();
3958+
LOAD_OPLINE();
39593959
ZEND_VM_ENTER_EX();
39603960
} else {
39613961
execute_data = EX(prev_execute_data);
3962-
SAVE_OPLINE_EX();
3962+
LOAD_OPLINE();
39633963
ZEND_ADD_CALL_FLAG(call, ZEND_CALL_TOP);
39643964
zend_execute_ex(call);
39653965
}
@@ -7995,11 +7995,11 @@ ZEND_VM_HANDLER(158, ZEND_CALL_TRAMPOLINE, ANY, ANY)
79957995
execute_data = call;
79967996
i_init_func_execute_data(&fbc->op_array, ret, 0 EXECUTE_DATA_CC);
79977997
if (EXPECTED(zend_execute_ex == execute_ex)) {
7998-
LOAD_OPLINE_EX();
7998+
LOAD_OPLINE();
79997999
ZEND_VM_ENTER_EX();
80008000
} else {
80018001
execute_data = EX(prev_execute_data);
8002-
SAVE_OPLINE_EX();
8002+
LOAD_OPLINE();
80038003
ZEND_ADD_CALL_FLAG(call, ZEND_CALL_TOP);
80048004
zend_execute_ex(call);
80058005
}

Zend/zend_vm_execute.h

Lines changed: 12 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -398,24 +398,19 @@ typedef ZEND_OPCODE_HANDLER_RET (ZEND_FASTCALL *opcode_handler_t) (ZEND_OPCODE_H
398398
#undef LOAD_OPLINE
399399
#undef LOAD_OPLINE_EX
400400
#undef SAVE_OPLINE
401-
#undef SAVE_OPLINE_EX
402401
#define DCL_OPLINE
403402
#ifdef ZEND_VM_IP_GLOBAL_REG
404403
# define OPLINE opline
405404
# define USE_OPLINE
406405
# define LOAD_OPLINE() opline = EX(opline)
407-
# define LOAD_OPLINE_EX()
408406
# define LOAD_NEXT_OPLINE() opline = EX(opline) + 1
409407
# define SAVE_OPLINE() EX(opline) = opline
410-
# define SAVE_OPLINE_EX() SAVE_OPLINE()
411408
#else
412409
# define OPLINE EX(opline)
413410
# define USE_OPLINE const zend_op *opline = EX(opline);
414411
# define LOAD_OPLINE()
415-
# define LOAD_OPLINE_EX()
416412
# define LOAD_NEXT_OPLINE() ZEND_VM_INC_OPCODE()
417413
# define SAVE_OPLINE()
418-
# define SAVE_OPLINE_EX()
419414
#endif
420415
#undef HANDLE_EXCEPTION
421416
#undef HANDLE_EXCEPTION_LEAVE
@@ -465,12 +460,12 @@ static zend_never_inline ZEND_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_th
465460
HANDLE_EXCEPTION();
466461
}
467462

468-
static zend_never_inline ZEND_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_abstract_method_helper_SPEC(zend_function *_fbc ZEND_OPCODE_HANDLER_ARGS_DC)
463+
static zend_never_inline ZEND_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_abstract_method_helper_SPEC(zend_function *fbc ZEND_OPCODE_HANDLER_ARGS_DC)
469464
{
470465
USE_OPLINE
471466

472467
SAVE_OPLINE();
473-
zend_throw_error(NULL, "Cannot call abstract method %s::%s()", ZSTR_VAL(_fbc->common.scope->name), ZSTR_VAL(_fbc->common.function_name));
468+
zend_throw_error(NULL, "Cannot call abstract method %s::%s()", ZSTR_VAL(fbc->common.scope->name), ZSTR_VAL(fbc->common.function_name));
474469
UNDEF_RESULT();
475470
HANDLE_EXCEPTION();
476471
}
@@ -1069,7 +1064,7 @@ static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_DO_UCALL_SPEC_RETV
10691064
call->prev_execute_data = execute_data;
10701065
execute_data = call;
10711066
i_init_func_execute_data(&fbc->op_array, ret, 0 EXECUTE_DATA_CC);
1072-
LOAD_OPLINE_EX();
1067+
LOAD_OPLINE();
10731068

10741069
ZEND_VM_ENTER_EX();
10751070
}
@@ -1092,7 +1087,7 @@ static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_DO_UCALL_SPEC_RETV
10921087
call->prev_execute_data = execute_data;
10931088
execute_data = call;
10941089
i_init_func_execute_data(&fbc->op_array, ret, 0 EXECUTE_DATA_CC);
1095-
LOAD_OPLINE_EX();
1090+
LOAD_OPLINE();
10961091

10971092
ZEND_VM_ENTER_EX();
10981093
}
@@ -1116,7 +1111,7 @@ static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_DO_FCALL_BY_NAME_S
11161111
call->prev_execute_data = execute_data;
11171112
execute_data = call;
11181113
i_init_func_execute_data(&fbc->op_array, ret, 0 EXECUTE_DATA_CC);
1119-
LOAD_OPLINE_EX();
1114+
LOAD_OPLINE();
11201115

11211116
ZEND_VM_ENTER_EX();
11221117
} else {
@@ -1192,7 +1187,7 @@ static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_DO_FCALL_BY_NAME_S
11921187
call->prev_execute_data = execute_data;
11931188
execute_data = call;
11941189
i_init_func_execute_data(&fbc->op_array, ret, 0 EXECUTE_DATA_CC);
1195-
LOAD_OPLINE_EX();
1190+
LOAD_OPLINE();
11961191

11971192
ZEND_VM_ENTER_EX();
11981193
} else {
@@ -1281,11 +1276,11 @@ static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_DO_FCALL_SPEC_RETV
12811276
i_init_func_execute_data(&fbc->op_array, ret, 1 EXECUTE_DATA_CC);
12821277

12831278
if (EXPECTED(zend_execute_ex == execute_ex)) {
1284-
LOAD_OPLINE_EX();
1279+
LOAD_OPLINE();
12851280
ZEND_VM_ENTER_EX();
12861281
} else {
12871282
execute_data = EX(prev_execute_data);
1288-
SAVE_OPLINE_EX();
1283+
LOAD_OPLINE();
12891284
ZEND_ADD_CALL_FLAG(call, ZEND_CALL_TOP);
12901285
zend_execute_ex(call);
12911286
}
@@ -1391,11 +1386,11 @@ static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_DO_FCALL_SPEC_RETV
13911386
i_init_func_execute_data(&fbc->op_array, ret, 1 EXECUTE_DATA_CC);
13921387

13931388
if (EXPECTED(zend_execute_ex == execute_ex)) {
1394-
LOAD_OPLINE_EX();
1389+
LOAD_OPLINE();
13951390
ZEND_VM_ENTER_EX();
13961391
} else {
13971392
execute_data = EX(prev_execute_data);
1398-
SAVE_OPLINE_EX();
1393+
LOAD_OPLINE();
13991394
ZEND_ADD_CALL_FLAG(call, ZEND_CALL_TOP);
14001395
zend_execute_ex(call);
14011396
}
@@ -2434,11 +2429,11 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CALL_TRAMPOLINE_SPEC_HANDLER(Z
24342429
execute_data = call;
24352430
i_init_func_execute_data(&fbc->op_array, ret, 0 EXECUTE_DATA_CC);
24362431
if (EXPECTED(zend_execute_ex == execute_ex)) {
2437-
LOAD_OPLINE_EX();
2432+
LOAD_OPLINE();
24382433
ZEND_VM_ENTER_EX();
24392434
} else {
24402435
execute_data = EX(prev_execute_data);
2441-
SAVE_OPLINE_EX();
2436+
LOAD_OPLINE();
24422437
ZEND_ADD_CALL_FLAG(call, ZEND_CALL_TOP);
24432438
zend_execute_ex(call);
24442439
}

Zend/zend_vm_gen.php

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1947,24 +1947,19 @@ function gen_executor($f, $skl, $spec, $kind, $executor_name, $initializer_name)
19471947
out($f,"#undef LOAD_OPLINE\n");
19481948
out($f,"#undef LOAD_OPLINE_EX\n");
19491949
out($f,"#undef SAVE_OPLINE\n");
1950-
out($f,"#undef SAVE_OPLINE_EX\n");
19511950
out($f,"#define DCL_OPLINE\n");
19521951
out($f,"#ifdef ZEND_VM_IP_GLOBAL_REG\n");
19531952
out($f,"# define OPLINE opline\n");
19541953
out($f,"# define USE_OPLINE\n");
19551954
out($f,"# define LOAD_OPLINE() opline = EX(opline)\n");
1956-
out($f,"# define LOAD_OPLINE_EX()\n");
19571955
out($f,"# define LOAD_NEXT_OPLINE() opline = EX(opline) + 1\n");
19581956
out($f,"# define SAVE_OPLINE() EX(opline) = opline\n");
1959-
out($f,"# define SAVE_OPLINE_EX() SAVE_OPLINE()\n");
19601957
out($f,"#else\n");
19611958
out($f,"# define OPLINE EX(opline)\n");
19621959
out($f,"# define USE_OPLINE const zend_op *opline = EX(opline);\n");
19631960
out($f,"# define LOAD_OPLINE()\n");
1964-
out($f,"# define LOAD_OPLINE_EX()\n");
19651961
out($f,"# define LOAD_NEXT_OPLINE() ZEND_VM_INC_OPCODE()\n");
19661962
out($f,"# define SAVE_OPLINE()\n");
1967-
out($f,"# define SAVE_OPLINE_EX()\n");
19681963
out($f,"#endif\n");
19691964
out($f,"#undef HANDLE_EXCEPTION\n");
19701965
out($f,"#undef HANDLE_EXCEPTION_LEAVE\n");
@@ -2001,10 +1996,8 @@ function gen_executor($f, $skl, $spec, $kind, $executor_name, $initializer_name)
20011996
out($f,"#undef DCL_OPLINE\n");
20021997
out($f,"#undef USE_OPLINE\n");
20031998
out($f,"#undef LOAD_OPLINE\n");
2004-
out($f,"#undef LOAD_OPLINE_EX\n");
20051999
out($f,"#undef LOAD_NEXT_OPLINE\n");
20062000
out($f,"#undef SAVE_OPLINE\n");
2007-
out($f,"#undef SAVE_OPLINE_EX\n");
20082001
out($f,"#define OPLINE opline\n");
20092002
out($f,"#ifdef ZEND_VM_IP_GLOBAL_REG\n");
20102003
out($f,"# define DCL_OPLINE register const zend_op *opline __asm__(ZEND_VM_IP_GLOBAL_REG);\n");
@@ -2013,10 +2006,8 @@ function gen_executor($f, $skl, $spec, $kind, $executor_name, $initializer_name)
20132006
out($f,"#endif\n");
20142007
out($f,"#define USE_OPLINE\n");
20152008
out($f,"#define LOAD_OPLINE() opline = EX(opline)\n");
2016-
out($f,"# define LOAD_OPLINE_EX() LOAD_OPLINE()\n");
20172009
out($f,"#define LOAD_NEXT_OPLINE() opline = EX(opline) + 1\n");
20182010
out($f,"#define SAVE_OPLINE() EX(opline) = opline\n");
2019-
out($f,"#define SAVE_OPLINE_EX()\n");
20202011
out($f,"#undef HANDLE_EXCEPTION\n");
20212012
out($f,"#undef HANDLE_EXCEPTION_LEAVE\n");
20222013
out($f,"#define HANDLE_EXCEPTION() LOAD_OPLINE(); ZEND_VM_CONTINUE()\n");
@@ -2037,10 +2028,8 @@ function gen_executor($f, $skl, $spec, $kind, $executor_name, $initializer_name)
20372028
out($f,"#undef DCL_OPLINE\n");
20382029
out($f,"#undef USE_OPLINE\n");
20392030
out($f,"#undef LOAD_OPLINE\n");
2040-
out($f,"#undef LOAD_OPLINE_EX\n");
20412031
out($f,"#undef LOAD_NEXT_OPLINE\n");
20422032
out($f,"#undef SAVE_OPLINE\n");
2043-
out($f,"#undef SAVE_OPLINE_EX\n");
20442033
out($f,"#define OPLINE opline\n");
20452034
out($f,"#ifdef ZEND_VM_IP_GLOBAL_REG\n");
20462035
out($f,"# define DCL_OPLINE register const zend_op *opline __asm__(ZEND_VM_IP_GLOBAL_REG);\n");
@@ -2049,10 +2038,8 @@ function gen_executor($f, $skl, $spec, $kind, $executor_name, $initializer_name)
20492038
out($f,"#endif\n");
20502039
out($f,"#define USE_OPLINE\n");
20512040
out($f,"#define LOAD_OPLINE() opline = EX(opline)\n");
2052-
out($f,"#define LOAD_OPLINE_EX() LOAD_OPLINE()\n");
20532041
out($f,"#define LOAD_NEXT_OPLINE() opline = EX(opline) + 1\n");
20542042
out($f,"#define SAVE_OPLINE() EX(opline) = opline\n");
2055-
out($f,"#define SAVE_OPLINE_EX()\n");
20562043
out($f,"#undef HANDLE_EXCEPTION\n");
20572044
out($f,"#undef HANDLE_EXCEPTION_LEAVE\n");
20582045
if (ZEND_VM_SPEC) {
@@ -3072,18 +3059,14 @@ function gen_vm($def, $skel) {
30723059
out($f,"#undef DCL_OPLINE\n");
30733060
out($f,"#undef USE_OPLINE\n");
30743061
out($f,"#undef LOAD_OPLINE\n");
3075-
out($f,"#undef LOAD_OPLINE_EX\n");
30763062
out($f,"#undef LOAD_NEXT_OPLINE\n");
30773063
out($f,"#undef SAVE_OPLINE\n");
3078-
out($f,"#undef SAVE_OPLINE_EX\n");
30793064
out($f,"#define OPLINE EX(opline)\n");
30803065
out($f,"#define DCL_OPLINE\n");
30813066
out($f,"#define USE_OPLINE const zend_op *opline = EX(opline);\n");
30823067
out($f,"#define LOAD_OPLINE()\n");
3083-
out($f,"#define LOAD_OPLINE_EX()\n");
30843068
out($f,"#define LOAD_NEXT_OPLINE() ZEND_VM_INC_OPCODE()\n");
30853069
out($f,"#define SAVE_OPLINE()\n");
3086-
out($f,"#define SAVE_OPLINE_EX()\n");
30873070
out($f,"#undef HANDLE_EXCEPTION\n");
30883071
out($f,"#undef HANDLE_EXCEPTION_LEAVE\n");
30893072
out($f,"#define HANDLE_EXCEPTION() LOAD_OPLINE(); ZEND_VM_CONTINUE()\n");

0 commit comments

Comments
 (0)