From af3acecd7efffbea6b111945add3a791d05442a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Zasso?= Date: Fri, 14 Jan 2022 17:41:42 +0100 Subject: [PATCH] deps: V8: cherry-pick 3b6b21f595f6 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Original commit message: [liftoff] Allow bailout for missing ARMv7 The bailout is there explicitly in the code, so we should allow it in {CheckBailoutAllowed}. R=ahaas@chromium.org Bug: v8:12527 Change-Id: Ifd906afb5f034f05c2bf7d9a28e3ab458549e7ef Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3372915 Reviewed-by: Andreas Haas Commit-Queue: Clemens Backes Cr-Commit-Position: refs/heads/main@{#78515} Refs: https://github.com/v8/v8/commit/3b6b21f595f6c172b5b77bf85a3882516f7d7f1b Fixes: https://github.com/nodejs/node/issues/41402 PR-URL: https://github.com/nodejs/node/pull/41457 Reviewed-By: Jiawen Geng Reviewed-By: Richard Lau Reviewed-By: Anna Henningsen Reviewed-By: Colin Ihrig Reviewed-By: Tobias Nießen Reviewed-By: Darshan Sen --- common.gypi | 2 +- deps/v8/src/wasm/baseline/arm/liftoff-assembler-arm.h | 2 +- deps/v8/src/wasm/baseline/liftoff-compiler.cc | 7 +++++++ 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/common.gypi b/common.gypi index 6f1a7a0e3c7f4d..dd89f1c929075e 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/wasm/baseline/arm/liftoff-assembler-arm.h b/deps/v8/src/wasm/baseline/arm/liftoff-assembler-arm.h index 211cf82398a20a..a13e028addf7a5 100644 --- a/deps/v8/src/wasm/baseline/arm/liftoff-assembler-arm.h +++ b/deps/v8/src/wasm/baseline/arm/liftoff-assembler-arm.h @@ -438,7 +438,7 @@ inline void EmitAnyTrue(LiftoffAssembler* assm, LiftoffRegister dst, int LiftoffAssembler::PrepareStackFrame() { if (!CpuFeatures::IsSupported(ARMv7)) { - bailout(kUnsupportedArchitecture, "Armv6 not supported"); + bailout(kUnsupportedArchitecture, "Liftoff needs ARMv7"); return 0; } uint32_t offset = static_cast(pc_offset()); diff --git a/deps/v8/src/wasm/baseline/liftoff-compiler.cc b/deps/v8/src/wasm/baseline/liftoff-compiler.cc index fc5684f42733c9..e0926065ac4271 100644 --- a/deps/v8/src/wasm/baseline/liftoff-compiler.cc +++ b/deps/v8/src/wasm/baseline/liftoff-compiler.cc @@ -310,6 +310,13 @@ void CheckBailoutAllowed(LiftoffBailoutReason reason, const char* detail, return; #endif +#if V8_TARGET_ARCH_ARM + // Allow bailout for missing ARMv7 support. + if (!CpuFeatures::IsSupported(ARMv7) && reason == kUnsupportedArchitecture) { + return; + } +#endif + #define LIST_FEATURE(name, ...) kFeature_##name, constexpr WasmFeatures kExperimentalFeatures{ FOREACH_WASM_EXPERIMENTAL_FEATURE_FLAG(LIST_FEATURE)};