diff --git a/common.gypi b/common.gypi index 6fe46076ff8def..85804f18b27612 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.17', + 'v8_embedder_string': '-node.19', ##### V8 defaults for Node.js ##### diff --git a/deps/v8/src/execution/isolate.cc b/deps/v8/src/execution/isolate.cc index c9c6225eb8fd8b..5c21b0982e9315 100644 --- a/deps/v8/src/execution/isolate.cc +++ b/deps/v8/src/execution/isolate.cc @@ -3431,15 +3431,15 @@ bool Isolate::Init(ReadOnlyDeserializer* read_only_deserializer, setup_delegate_->SetupBuiltins(this); -#if !defined(V8_TARGET_ARCH_ARM) && !defined(V8_TARGET_ARCH_S390X) +#ifndef V8_TARGET_ARCH_ARM // Store the interpreter entry trampoline on the root list. It is used as a // template for further copies that may later be created to help profile // interpreted code. - // We currently cannot do this on above architectures due to - // RELATIVE_CODE_TARGETs assuming that all possible Code targets may be - // addressed with an int24 offset, effectively limiting code space size to - // 32MB. We can guarantee this at mksnapshot-time, but not at runtime. See - // also: https://crbug.com/v8/8713. + // We currently cannot do this on arm due to RELATIVE_CODE_TARGETs + // assuming that all possible Code targets may be addressed with an int24 + // offset, effectively limiting code space size to 32MB. We can guarantee + // this at mksnapshot-time, but not at runtime. + // See also: https://crbug.com/v8/8713. heap_.SetInterpreterEntryTrampolineForProfiling( heap_.builtin(Builtins::kInterpreterEntryTrampoline)); #endif @@ -3514,11 +3514,11 @@ bool Isolate::Init(ReadOnlyDeserializer* read_only_deserializer, } #endif // DEBUG -#if !defined(V8_TARGET_ARCH_ARM) && !defined(V8_TARGET_ARCH_S390X) +#ifndef V8_TARGET_ARCH_ARM // The IET for profiling should always be a full on-heap Code object. DCHECK(!Code::cast(heap_.interpreter_entry_trampoline_for_profiling()) .is_off_heap_trampoline()); -#endif // !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_S390X +#endif // V8_TARGET_ARCH_ARM if (FLAG_print_builtin_code) builtins()->PrintBuiltinCode(); if (FLAG_print_builtin_size) builtins()->PrintBuiltinSize(); diff --git a/deps/v8/src/flags/flag-definitions.h b/deps/v8/src/flags/flag-definitions.h index c3f360cdf0d850..2384cf4a28f19c 100644 --- a/deps/v8/src/flags/flag-definitions.h +++ b/deps/v8/src/flags/flag-definitions.h @@ -1625,8 +1625,8 @@ DEFINE_BOOL(vtune_prof_annotate_wasm, false, DEFINE_BOOL(win64_unwinding_info, true, "Enable unwinding info for Windows/x64") -#if defined(V8_TARGET_ARCH_ARM) || defined(V8_TARGET_ARCH_S390X) -// Unsupported on above architectures. See https://crbug.com/v8/8713. +#ifdef V8_TARGET_ARCH_ARM +// Unsupported on arm. See https://crbug.com/v8/8713. DEFINE_BOOL_READONLY( interpreted_frames_native_stack, false, "Show interpreted frames on the native stack (useful for external " diff --git a/deps/v8/src/snapshot/code-serializer.cc b/deps/v8/src/snapshot/code-serializer.cc index d155313872f21e..b6e2ec65e31c89 100644 --- a/deps/v8/src/snapshot/code-serializer.cc +++ b/deps/v8/src/snapshot/code-serializer.cc @@ -190,12 +190,12 @@ void CodeSerializer::SerializeObject(HeapObject obj) { // bytecode array stored within the InterpreterData, which is the important // information. On deserialization we'll create our code objects again, if // --interpreted-frames-native-stack is on. See v8:9122 for more context -#if !defined(V8_TARGET_ARCH_ARM) && !defined(V8_TARGET_ARCH_S390X) +#ifndef V8_TARGET_ARCH_ARM if (V8_UNLIKELY(FLAG_interpreted_frames_native_stack) && obj.IsInterpreterData()) { obj = InterpreterData::cast(obj).bytecode_array(); } -#endif // !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_S390X +#endif // V8_TARGET_ARCH_ARM // Past this point we should not see any (context-specific) maps anymore. CHECK(!obj.IsMap()); @@ -215,7 +215,7 @@ void CodeSerializer::SerializeGeneric(HeapObject heap_object) { serializer.Serialize(); } -#if !defined(V8_TARGET_ARCH_ARM) && !defined(V8_TARGET_ARCH_S390X) +#ifndef V8_TARGET_ARCH_ARM // NOTE(mmarchini): when FLAG_interpreted_frames_native_stack is on, we want to // create duplicates of InterpreterEntryTrampoline for the deserialized // functions, otherwise we'll call the builtin IET for those functions (which @@ -255,7 +255,7 @@ void CreateInterpreterDataForDeserializedCode(Isolate* isolate, column_num)); } } -#endif // !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_S390X +#endif // V8_TARGET_ARCH_ARM MaybeHandle CodeSerializer::Deserialize( Isolate* isolate, ScriptData* cached_data, Handle source, @@ -301,11 +301,11 @@ MaybeHandle CodeSerializer::Deserialize( isolate->is_profiling() || isolate->code_event_dispatcher()->IsListeningToCodeEvents(); -#if !defined(V8_TARGET_ARCH_ARM) && !defined(V8_TARGET_ARCH_S390X) +#ifndef V8_TARGET_ARCH_ARM if (V8_UNLIKELY(FLAG_interpreted_frames_native_stack)) CreateInterpreterDataForDeserializedCode(isolate, result, log_code_creation); -#endif // !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_S390X +#endif // V8_TARGET_ARCH_ARM bool needs_source_positions = isolate->NeedsSourcePositionsForProfiling(); diff --git a/deps/v8/test/cctest/cctest.status b/deps/v8/test/cctest/cctest.status index 444ec9d8eccba8..5862e3410869be 100644 --- a/deps/v8/test/cctest/cctest.status +++ b/deps/v8/test/cctest/cctest.status @@ -601,6 +601,7 @@ 'test-log/LogInterpretedFramesNativeStack': [SKIP], 'test-log/LogInterpretedFramesNativeStackWithSerialization': [SKIP], 'test-serialize/CodeSerializerOnePlusOneWithInterpretedFramesNativeStack': [SKIP], + 'test-interpreter/InterpreterWithNativeStack': [SKIP], # Crashes on native arm. 'test-macro-assembler-arm/ExtractLane': [PASS, ['arch == arm and not simulator_run', SKIP]], diff --git a/deps/v8/test/cctest/interpreter/test-interpreter.cc b/deps/v8/test/cctest/interpreter/test-interpreter.cc index 33daf581c7ce17..bd9edb127b28b6 100644 --- a/deps/v8/test/cctest/interpreter/test-interpreter.cc +++ b/deps/v8/test/cctest/interpreter/test-interpreter.cc @@ -5029,7 +5029,7 @@ TEST(InterpreterGenerators) { } } -#if !defined(V8_TARGET_ARCH_ARM) && !defined(V8_TARGET_ARCH_S390X) +#ifndef V8_TARGET_ARCH_ARM TEST(InterpreterWithNativeStack) { i::FLAG_interpreted_frames_native_stack = true; @@ -5051,7 +5051,7 @@ TEST(InterpreterWithNativeStack) { CHECK(code.is_interpreter_trampoline_builtin()); CHECK_NE(code.address(), interpreter_entry_trampoline->address()); } -#endif // !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_S390X +#endif // V8_TARGET_ARCH_ARM TEST(InterpreterGetBytecodeHandler) { HandleAndZoneScope handles; diff --git a/deps/v8/test/cctest/test-log.cc b/deps/v8/test/cctest/test-log.cc index 5531b7ec955ade..254fed7db2a115 100644 --- a/deps/v8/test/cctest/test-log.cc +++ b/deps/v8/test/cctest/test-log.cc @@ -565,7 +565,7 @@ UNINITIALIZED_TEST(LogAll) { isolate->Dispose(); } -#if !defined(V8_TARGET_ARCH_ARM) && !defined(V8_TARGET_ARCH_S390X) +#ifndef V8_TARGET_ARCH_ARM UNINITIALIZED_TEST(LogInterpretedFramesNativeStack) { SETUP_FLAGS(); i::FLAG_interpreted_frames_native_stack = true; @@ -650,7 +650,7 @@ UNINITIALIZED_TEST(LogInterpretedFramesNativeStackWithSerialization) { } while (!has_cache); delete cache; } -#endif // !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_S390X +#endif // V8_TARGET_ARCH_ARM UNINITIALIZED_TEST(ExternalCodeEventListener) { i::FLAG_log = false; @@ -753,7 +753,7 @@ UNINITIALIZED_TEST(ExternalCodeEventListenerInnerFunctions) { isolate2->Dispose(); } -#if !defined(V8_TARGET_ARCH_ARM) && !defined(V8_TARGET_ARCH_S390X) +#ifndef V8_TARGET_ARCH_ARM UNINITIALIZED_TEST(ExternalCodeEventListenerWithInterpretedFramesNativeStack) { i::FLAG_log = false; i::FLAG_prof = false; @@ -803,7 +803,7 @@ UNINITIALIZED_TEST(ExternalCodeEventListenerWithInterpretedFramesNativeStack) { } isolate->Dispose(); } -#endif // !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_S390X +#endif // V8_TARGET_ARCH_ARM UNINITIALIZED_TEST(TraceMaps) { SETUP_FLAGS(); diff --git a/deps/v8/test/cctest/test-serialize.cc b/deps/v8/test/cctest/test-serialize.cc index b7590cd0217cff..d92d34faef4c75 100644 --- a/deps/v8/test/cctest/test-serialize.cc +++ b/deps/v8/test/cctest/test-serialize.cc @@ -1672,7 +1672,7 @@ void TestCodeSerializerOnePlusOneImpl(bool verify_builtins_count = true) { TEST(CodeSerializerOnePlusOne) { TestCodeSerializerOnePlusOneImpl(); } // See bug v8:9122 -#if !defined(V8_TARGET_ARCH_ARM) && !defined(V8_TARGET_ARCH_S390X) +#ifndef V8_TARGET_ARCH_ARM TEST(CodeSerializerOnePlusOneWithInterpretedFramesNativeStack) { FLAG_interpreted_frames_native_stack = true; // We pass false because this test will create IET copies (which are