diff options
Diffstat (limited to 'deps/v8/src/builtins/setup-builtins-internal.cc')
-rw-r--r-- | deps/v8/src/builtins/setup-builtins-internal.cc | 31 |
1 files changed, 10 insertions, 21 deletions
diff --git a/deps/v8/src/builtins/setup-builtins-internal.cc b/deps/v8/src/builtins/setup-builtins-internal.cc index 3153799793..499e0cb1fe 100644 --- a/deps/v8/src/builtins/setup-builtins-internal.cc +++ b/deps/v8/src/builtins/setup-builtins-internal.cc @@ -156,11 +156,8 @@ Code BuildWithCodeStubAssemblerJS(Isolate* isolate, Builtin builtin, CanonicalHandleScope canonical(isolate); Zone zone(isolate->allocator(), ZONE_NAME, kCompressGraphZone); - const int argc_with_recv = (argc == kDontAdaptArgumentsSentinel) - ? 0 - : argc + (kJSArgcIncludesReceiver ? 0 : 1); - compiler::CodeAssemblerState state(isolate, &zone, argc_with_recv, - CodeKind::BUILTIN, name, builtin); + compiler::CodeAssemblerState state(isolate, &zone, argc, CodeKind::BUILTIN, + name, builtin); generator(&state); Handle<Code> code = compiler::CodeAssembler::GenerateCode( &state, BuiltinAssemblerOptions(isolate, builtin), @@ -198,10 +195,7 @@ Code BuildWithCodeStubAssemblerCS(Isolate* isolate, Builtin builtin, void SetupIsolateDelegate::AddBuiltin(Builtins* builtins, Builtin builtin, Code code) { DCHECK_EQ(builtin, code.builtin_id()); - builtins->set_code(builtin, code); - if (V8_EXTERNAL_CODE_SPACE_BOOL) { - builtins->set_codet(builtin, ToCodeT(code)); - } + builtins->set_code(builtin, ToCodeT(code)); } // static @@ -232,7 +226,7 @@ void SetupIsolateDelegate::ReplacePlaceholders(Isolate* isolate) { PtrComprCageBase cage_base(isolate); for (Builtin builtin = Builtins::kFirst; builtin <= Builtins::kLast; ++builtin) { - Code code = builtins->code(builtin); + Code code = FromCodeT(builtins->code(builtin)); isolate->heap()->UnprotectAndRegisterMemoryChunk( code, UnprotectMemoryOrigin::kMainThread); bool flush_icache = false; @@ -243,16 +237,16 @@ void SetupIsolateDelegate::ReplacePlaceholders(Isolate* isolate) { DCHECK_IMPLIES(RelocInfo::IsRelativeCodeTarget(rinfo->rmode()), Builtins::IsIsolateIndependent(target.builtin_id())); if (!target.is_builtin()) continue; - Code new_target = builtins->code(target.builtin_id()); + CodeT new_target = builtins->code(target.builtin_id()); rinfo->set_target_address(new_target.raw_instruction_start(), UPDATE_WRITE_BARRIER, SKIP_ICACHE_FLUSH); } else { DCHECK(RelocInfo::IsEmbeddedObjectMode(rinfo->rmode())); Object object = rinfo->target_object(cage_base); - if (!object.IsCode(cage_base)) continue; - Code target = Code::cast(object); + if (!object.IsCodeT(cage_base)) continue; + CodeT target = CodeT::cast(object); if (!target.is_builtin()) continue; - Code new_target = builtins->code(target.builtin_id()); + CodeT new_target = builtins->code(target.builtin_id()); rinfo->set_target_object(isolate->heap(), new_target, UPDATE_WRITE_BARRIER, SKIP_ICACHE_FLUSH); } @@ -353,18 +347,13 @@ void SetupIsolateDelegate::SetupBuiltinsInternal(Isolate* isolate) { ReplacePlaceholders(isolate); +// TODO(v8:11880): avoid roundtrips between cdc and code. #define SET_PROMISE_REJECTION_PREDICTION(Name) \ - builtins->code(Builtin::k##Name).set_is_promise_rejection(true); + FromCodeT(builtins->code(Builtin::k##Name)).set_is_promise_rejection(true); BUILTIN_PROMISE_REJECTION_PREDICTION_LIST(SET_PROMISE_REJECTION_PREDICTION) #undef SET_PROMISE_REJECTION_PREDICTION -#define SET_EXCEPTION_CAUGHT_PREDICTION(Name) \ - builtins->code(Builtin::k##Name).set_is_exception_caught(true); - - BUILTIN_EXCEPTION_CAUGHT_PREDICTION_LIST(SET_EXCEPTION_CAUGHT_PREDICTION) -#undef SET_EXCEPTION_CAUGHT_PREDICTION - builtins->MarkInitialized(); } |