Skip to content

Commit eef606e

Browse files
committed
update this to only happen on windows
1 parent fb4d89c commit eef606e

File tree

2 files changed

+26
-20
lines changed

2 files changed

+26
-20
lines changed

Zend/zend_vm_gen.php

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2499,7 +2499,7 @@ function gen_vm_opcodes_header(
24992499
$str .= "# define ZEND_VM_KIND\t\tZEND_VM_KIND_HYBRID\n";
25002500
}
25012501
if ($GLOBALS["vm_kind_name"][ZEND_VM_GEN_KIND] === "ZEND_VM_KIND_HYBRID" || $GLOBALS["vm_kind_name"][ZEND_VM_GEN_KIND] === "ZEND_VM_KIND_CALL") {
2502-
$str .= "#elif defined(HAVE_MUSTTAIL) && defined(HAVE_PRESERVE_NONE) && (defined(__x86_64__) || defined(__aarch64__))\n";
2502+
$str .= "#elif defined(HAVE_MUSTTAIL) && defined(HAVE_PRESERVE_NONE) && (defined(__x86_64__) || defined(_M_X64) || defined(__aarch64__) || defined(_M_ARM64))\n";
25032503
$str .= "# define ZEND_VM_KIND\t\tZEND_VM_KIND_TAILCALL\n";
25042504
$str .= "#else\n";
25052505
$str .= "# define ZEND_VM_KIND\t\tZEND_VM_KIND_CALL\n";
@@ -2515,15 +2515,22 @@ function gen_vm_opcodes_header(
25152515
$str .= "# endif\n";
25162516
$str .= "#endif\n";
25172517
$str .= "\n";
2518+
$str .= "# define ZEND_OPCODE_HANDLER_FUNC_CCONV ZEND_FASTCALL\n";
2519+
$str .= "# define ZEND_OPCODE_HANDLER_FUNC_CCONV_EX ZEND_FASTCALL\n";
25182520
$str .= "#if ZEND_VM_KIND == ZEND_VM_KIND_TAILCALL\n";
2519-
$str .= "# define ZEND_OPCODE_HANDLER_CCONV ZEND_PRESERVE_NONE\n";
2520-
$str .= "# define ZEND_OPCODE_HANDLER_CCONV_EX ZEND_FASTCALL\n";
2521+
$str .= "# define ZEND_OPCODE_HANDLER_CCONV ZEND_PRESERVE_NONE\n";
2522+
$str .= "# define ZEND_OPCODE_HANDLER_CCONV_EX ZEND_FASTCALL\n";
2523+
$str .= "#elif ZEND_VM_KIND == ZEND_VM_KIND_CALL && defined(HAVE_PRESERVE_NONE) && defined(_WIN32)\n";
2524+
$str .= "# define ZEND_OPCODE_HANDLER_CCONV ZEND_PRESERVE_NONE\n";
2525+
$str .= "# define ZEND_OPCODE_HANDLER_CCONV_EX ZEND_FASTCALL\n";
2526+
$str .= "# undef ZEND_OPCODE_HANDLER_FUNC_CCONV\n";
2527+
$str .= "# undef ZEND_OPCODE_HANDLER_FUNC_CCONV_EX\n";
2528+
$str .= "# define ZEND_OPCODE_HANDLER_FUNC_CCONV ZEND_PRESERVE_NONE\n";
2529+
$str .= "# define ZEND_OPCODE_HANDLER_FUNC_CCONV_EX ZEND_FASTCALL\n";
25212530
$str .= "#elif ZEND_VM_KIND == ZEND_VM_KIND_CALL\n";
2522-
$str .= "# define ZEND_OPCODE_HANDLER_CCONV ZEND_FASTCALL\n";
2523-
$str .= "# define ZEND_OPCODE_HANDLER_CCONV_EX ZEND_FASTCALL\n";
2531+
$str .= "# define ZEND_OPCODE_HANDLER_CCONV ZEND_FASTCALL\n";
2532+
$str .= "# define ZEND_OPCODE_HANDLER_CCONV_EX ZEND_FASTCALL\n";
25242533
$str .= "#endif\n";
2525-
$str .= "#define ZEND_OPCODE_HANDLER_FUNC_CCONV ZEND_FASTCALL\n";
2526-
$str .= "#define ZEND_OPCODE_HANDLER_FUNC_CCONV_EX ZEND_FASTCALL\n";
25272534
$str .= "\n";
25282535
$str .= "#if ZEND_VM_KIND == ZEND_VM_KIND_HYBRID\n";
25292536
$str .= "typedef const void* zend_vm_opcode_handler_t;\n";

Zend/zend_vm_opcodes.h

Lines changed: 12 additions & 13 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)