Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 the V8 project authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef V8_BUILTINS_BUILTINS_H_ | 5 #ifndef V8_BUILTINS_BUILTINS_H_ |
| 6 #define V8_BUILTINS_BUILTINS_H_ | 6 #define V8_BUILTINS_BUILTINS_H_ |
| 7 | 7 |
| 8 #include "src/base/flags.h" | 8 #include "src/base/flags.h" |
| 9 #include "src/builtins/builtins-definitions.h" | 9 #include "src/builtins/builtins-definitions.h" |
| 10 #include "src/globals.h" | 10 #include "src/globals.h" |
| 11 #include "src/utils.h" | |
|
Michael Starzinger
2017/05/24 13:54:59
nit: Assuming this is only needed for BailoutId, w
danno
2017/06/06 12:04:51
Done.
| |
| 11 | 12 |
| 12 namespace v8 { | 13 namespace v8 { |
| 13 namespace internal { | 14 namespace internal { |
| 14 | 15 |
| 15 class Callable; | 16 class Callable; |
| 16 template <typename T> | 17 template <typename T> |
| 17 class Handle; | 18 class Handle; |
| 18 class Isolate; | 19 class Isolate; |
| 19 | 20 |
| 20 // Forward declarations. | 21 // Forward declarations. |
| (...skipping 15 matching lines...) Expand all Loading... | |
| 36 // Disassembler support. | 37 // Disassembler support. |
| 37 const char* Lookup(byte* pc); | 38 const char* Lookup(byte* pc); |
| 38 | 39 |
| 39 enum Name : int32_t { | 40 enum Name : int32_t { |
| 40 #define DEF_ENUM(Name, ...) k##Name, | 41 #define DEF_ENUM(Name, ...) k##Name, |
| 41 BUILTIN_LIST_ALL(DEF_ENUM) | 42 BUILTIN_LIST_ALL(DEF_ENUM) |
| 42 #undef DEF_ENUM | 43 #undef DEF_ENUM |
| 43 builtin_count | 44 builtin_count |
| 44 }; | 45 }; |
| 45 | 46 |
| 47 static BailoutId GetContinuationBailoutId(Name name); | |
| 48 static Name GetBuiltinFromBailoutId(BailoutId); | |
| 49 | |
| 46 #define DECLARE_BUILTIN_ACCESSOR(Name, ...) \ | 50 #define DECLARE_BUILTIN_ACCESSOR(Name, ...) \ |
| 47 V8_EXPORT_PRIVATE Handle<Code> Name(); | 51 V8_EXPORT_PRIVATE Handle<Code> Name(); |
| 48 BUILTIN_LIST_ALL(DECLARE_BUILTIN_ACCESSOR) | 52 BUILTIN_LIST_ALL(DECLARE_BUILTIN_ACCESSOR) |
| 49 #undef DECLARE_BUILTIN_ACCESSOR | 53 #undef DECLARE_BUILTIN_ACCESSOR |
| 50 | 54 |
| 51 // Convenience wrappers. | 55 // Convenience wrappers. |
| 52 Handle<Code> CallFunction( | 56 Handle<Code> CallFunction( |
| 53 ConvertReceiverMode = ConvertReceiverMode::kAny, | 57 ConvertReceiverMode = ConvertReceiverMode::kAny, |
| 54 TailCallMode tail_call_mode = TailCallMode::kDisallow); | 58 TailCallMode tail_call_mode = TailCallMode::kDisallow); |
| 55 Handle<Code> Call(ConvertReceiverMode = ConvertReceiverMode::kAny, | 59 Handle<Code> Call(ConvertReceiverMode = ConvertReceiverMode::kAny, |
| (...skipping 17 matching lines...) Expand all Loading... | |
| 73 } | 77 } |
| 74 | 78 |
| 75 Address builtin_address(Name name) { | 79 Address builtin_address(Name name) { |
| 76 return reinterpret_cast<Address>(&builtins_[name]); | 80 return reinterpret_cast<Address>(&builtins_[name]); |
| 77 } | 81 } |
| 78 | 82 |
| 79 static int GetBuiltinParameterCount(Name name); | 83 static int GetBuiltinParameterCount(Name name); |
| 80 | 84 |
| 81 static Callable CallableFor(Isolate* isolate, Name name); | 85 static Callable CallableFor(Isolate* isolate, Name name); |
| 82 | 86 |
| 87 static int GetStackParameterCount(Isolate* isolate, Name name); | |
| 88 | |
| 83 static const char* name(int index); | 89 static const char* name(int index); |
| 84 | 90 |
| 85 // Returns the C++ entry point for builtins implemented in C++, and the null | 91 // Returns the C++ entry point for builtins implemented in C++, and the null |
| 86 // Address otherwise. | 92 // Address otherwise. |
| 87 static Address CppEntryOf(int index); | 93 static Address CppEntryOf(int index); |
| 88 | 94 |
| 89 static bool IsCpp(int index); | 95 static bool IsCpp(int index); |
| 90 static bool IsApi(int index); | 96 static bool IsApi(int index); |
| 91 static bool HasCppImplementation(int index); | 97 static bool HasCppImplementation(int index); |
| 92 | 98 |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 153 friend class Isolate; | 159 friend class Isolate; |
| 154 friend class SetupIsolateDelegate; | 160 friend class SetupIsolateDelegate; |
| 155 | 161 |
| 156 DISALLOW_COPY_AND_ASSIGN(Builtins); | 162 DISALLOW_COPY_AND_ASSIGN(Builtins); |
| 157 }; | 163 }; |
| 158 | 164 |
| 159 } // namespace internal | 165 } // namespace internal |
| 160 } // namespace v8 | 166 } // namespace v8 |
| 161 | 167 |
| 162 #endif // V8_BUILTINS_BUILTINS_H_ | 168 #endif // V8_BUILTINS_BUILTINS_H_ |
| OLD | NEW |