@@ -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" ;
0 commit comments