Lines Matching refs:builtin

91 BytecodeOffset Builtins::GetContinuationBytecodeOffset(Builtin builtin) {
92 DCHECK(Builtins::KindOf(builtin) == TFJ || Builtins::KindOf(builtin) == TFC ||
93 Builtins::KindOf(builtin) == TFS);
95 ToInt(builtin));
99 Builtin builtin = Builtins::FromInt(
101 DCHECK(Builtins::KindOf(builtin) == TFJ || Builtins::KindOf(builtin) == TFC ||
102 Builtins::KindOf(builtin) == TFS);
103 return builtin;
110 Builtin builtin = OffHeapInstructionStream::TryLookupCode(isolate_, pc);
111 if (Builtins::IsBuiltinId(builtin)) return name(builtin);
170 FullObjectSlot Builtins::builtin_slot(Builtin builtin) {
171 Address* location = &isolate_->builtin_table()[Builtins::ToInt(builtin)];
175 FullObjectSlot Builtins::builtin_tier0_slot(Builtin builtin) {
176 DCHECK(IsTier0(builtin));
178 &isolate_->builtin_tier0_table()[Builtins::ToInt(builtin)];
182 void Builtins::set_code(Builtin builtin, CodeT code) {
183 DCHECK_EQ(builtin, code.builtin_id());
185 DCHECK_EQ(builtin, FromCodeT(code).builtin_id());
188 // The given builtin may be uninitialized thus we cannot check its type here.
189 isolate_->builtin_table()[Builtins::ToInt(builtin)] = code.ptr();
192 CodeT Builtins::code(Builtin builtin) {
193 Address ptr = isolate_->builtin_table()[Builtins::ToInt(builtin)];
197 Handle<CodeT> Builtins::code_handle(Builtin builtin) {
198 Address* location = &isolate_->builtin_table()[Builtins::ToInt(builtin)];
203 int Builtins::GetStackParameterCount(Builtin builtin) {
204 DCHECK(Builtins::KindOf(builtin) == TFJ);
205 return builtin_metadata[ToInt(builtin)].data.parameter_count;
209 CallInterfaceDescriptor Builtins::CallInterfaceDescriptorFor(Builtin builtin) {
211 switch (builtin) {
223 Builtins::Kind kind = Builtins::KindOf(builtin);
234 Callable Builtins::CallableFor(Isolate* isolate, Builtin builtin) {
235 Handle<CodeT> code = isolate->builtins()->code_handle(builtin);
236 return Callable{code, CallInterfaceDescriptorFor(builtin)};
240 bool Builtins::HasJSLinkage(Builtin builtin) {
241 DCHECK_NE(BCH, Builtins::KindOf(builtin));
242 return CallInterfaceDescriptorFor(builtin) == JSTrampolineDescriptor{};
246 const char* Builtins::name(Builtin builtin) {
247 int index = ToInt(builtin);
255 for (Builtin builtin = Builtins::kFirst; builtin <= Builtins::kLast;
256 ++builtin) {
257 const char* builtin_name = name(builtin);
262 Code builtin_code = FromCodeT(code(builtin));
272 for (Builtin builtin = Builtins::kFirst; builtin <= Builtins::kLast;
273 ++builtin) {
274 const char* builtin_name = name(builtin);
275 const char* kind = KindNameOf(builtin);
276 Code code = FromCodeT(Builtins::code(builtin));
283 Address Builtins::CppEntryOf(Builtin builtin) {
284 DCHECK(Builtins::IsCpp(builtin));
285 return builtin_metadata[ToInt(builtin)].data.cpp_entry;
294 Builtin* builtin) const {
300 *builtin = FromInt(static_cast<int>(handle_location - builtins_table));
306 const Builtin builtin = code.builtin_id();
307 return Builtins::IsBuiltinId(builtin) &&
308 Builtins::IsIsolateIndependent(builtin);
446 Builtins::Kind Builtins::KindOf(Builtin builtin) {
447 DCHECK(IsBuiltinId(builtin));
448 return builtin_metadata[ToInt(builtin)].kind;
452 const char* Builtins::KindNameOf(Builtin builtin) {
453 Kind kind = Builtins::KindOf(builtin);
469 bool Builtins::IsCpp(Builtin builtin) {
470 return Builtins::KindOf(builtin) == CPP;
488 bool Builtins::CodeObjectIsExecutable(Builtin builtin) {
489 // If the runtime/optimized code always knows when executing a given builtin
490 // that it is a builtin, then that builtin does not need an executable Code
500 // linkage builtin via its Code object. Once Wasm is fixed this can either be
502 if (Builtins::KindOf(builtin) != BCH && HasJSLinkage(builtin)) {
511 switch (builtin) {