diff --git a/common.gypi b/common.gypi index 5e5ac96a78fa29..d9d29fdca1579c 100644 --- a/common.gypi +++ b/common.gypi @@ -36,7 +36,7 @@ # Reset this number to 0 on major V8 upgrades. # Increment by one for each non-official patch applied to deps/v8. - 'v8_embedder_string': '-node.12', + 'v8_embedder_string': '-node.13', ##### V8 defaults for Node.js ##### diff --git a/deps/v8/src/compiler/c-linkage.cc b/deps/v8/src/compiler/c-linkage.cc index af467f2bb14116..5b395067f08ec0 100644 --- a/deps/v8/src/compiler/c-linkage.cc +++ b/deps/v8/src/compiler/c-linkage.cc @@ -139,7 +139,7 @@ namespace { #endif } // namespace -#ifdef V8_TARGET_OS_WIN +#if defined(V8_TARGET_OS_WIN) && defined(V8_TARGET_ARCH_X64) // As defined in // https://docs.microsoft.com/en-us/cpp/build/x64-calling-convention?view=vs-2019#parameter-passing, // Windows calling convention doesn't differentiate between GP and FP params @@ -176,11 +176,12 @@ void BuildParameterLocations(const MachineSignature* msig, } } } -#else // V8_TARGET_OS_WIN +#else // defined(V8_TARGET_OS_WIN) && defined(V8_TARGET_ARCH_X64) // As defined in https://www.agner.org/optimize/calling_conventions.pdf, // Section 7, Linux and Mac place parameters in consecutive registers, // differentiating between GP and FP params. That's why we maintain two -// separate counters here. +// separate counters here. This also applies to Arm systems following +// the AAPCS and Windows on Arm. void BuildParameterLocations(const MachineSignature* msig, size_t kFPParamRegisterCount, size_t kParamRegisterCount, @@ -216,7 +217,7 @@ void BuildParameterLocations(const MachineSignature* msig, } } } -#endif // V8_TARGET_OS_WIN +#endif // defined(V8_TARGET_OS_WIN) && defined(V8_TARGET_ARCH_X64) // General code uses the above configuration data. CallDescriptor* Linkage::GetSimplifiedCDescriptor(Zone* zone,