| Index: src/builtins.h
|
| diff --git a/src/builtins.h b/src/builtins.h
|
| index 61350f2b2d3d4abbfadd72c7b45d52d515bac3f8..f3a5deccf2e6edef51c01e16f54e119bddeb27bf 100644
|
| --- a/src/builtins.h
|
| +++ b/src/builtins.h
|
| @@ -11,6 +11,13 @@
|
| namespace v8 {
|
| namespace internal {
|
|
|
| +namespace compiler {
|
| +
|
| +// Forward declarations.
|
| +class CodeStubAssembler;
|
| +
|
| +} // namespace compiler
|
| +
|
| // Specifies extra arguments required by a C++ builtin.
|
| enum class BuiltinExtraArguments : uint8_t {
|
| kNone = 0u,
|
| @@ -299,6 +306,9 @@ inline bool operator&(BuiltinExtraArguments lhs, BuiltinExtraArguments rhs) {
|
| V(MarkCodeAsExecutedTwice, BUILTIN, UNINITIALIZED, kNoExtraICState) \
|
| CODE_AGE_LIST_WITH_ARG(DECLARE_CODE_AGE_BUILTIN, V)
|
|
|
| +// Define list of builtins implemented in TurboFan (with JS linkage).
|
| +#define BUILTIN_LIST_T(V) V(MathSqrt, 2)
|
| +
|
| // Define list of builtin handlers implemented in assembly.
|
| #define BUILTIN_LIST_H(V) \
|
| V(LoadIC_Slow, LOAD_IC) \
|
| @@ -337,14 +347,16 @@ class Builtins {
|
| enum Name {
|
| #define DEF_ENUM_C(name, ignore) k##name,
|
| #define DEF_ENUM_A(name, kind, state, extra) k##name,
|
| +#define DEF_ENUM_T(name, argc) k##name,
|
| #define DEF_ENUM_H(name, kind) k##name,
|
| - BUILTIN_LIST_C(DEF_ENUM_C)
|
| - BUILTIN_LIST_A(DEF_ENUM_A)
|
| - BUILTIN_LIST_H(DEF_ENUM_H)
|
| - BUILTIN_LIST_DEBUG_A(DEF_ENUM_A)
|
| + BUILTIN_LIST_C(DEF_ENUM_C) BUILTIN_LIST_A(DEF_ENUM_A)
|
| + BUILTIN_LIST_T(DEF_ENUM_T) BUILTIN_LIST_H(DEF_ENUM_H)
|
| + BUILTIN_LIST_DEBUG_A(DEF_ENUM_A)
|
| #undef DEF_ENUM_C
|
| #undef DEF_ENUM_A
|
| - builtin_count
|
| +#undef DEF_ENUM_T
|
| +#undef DEF_ENUM_H
|
| + builtin_count
|
| };
|
|
|
| enum CFunctionId {
|
| @@ -357,13 +369,17 @@ class Builtins {
|
| #define DECLARE_BUILTIN_ACCESSOR_C(name, ignore) Handle<Code> name();
|
| #define DECLARE_BUILTIN_ACCESSOR_A(name, kind, state, extra) \
|
| Handle<Code> name();
|
| +#define DECLARE_BUILTIN_ACCESSOR_T(name, argc) Handle<Code> name();
|
| #define DECLARE_BUILTIN_ACCESSOR_H(name, kind) Handle<Code> name();
|
| BUILTIN_LIST_C(DECLARE_BUILTIN_ACCESSOR_C)
|
| BUILTIN_LIST_A(DECLARE_BUILTIN_ACCESSOR_A)
|
| + BUILTIN_LIST_T(DECLARE_BUILTIN_ACCESSOR_T)
|
| BUILTIN_LIST_H(DECLARE_BUILTIN_ACCESSOR_H)
|
| BUILTIN_LIST_DEBUG_A(DECLARE_BUILTIN_ACCESSOR_A)
|
| #undef DECLARE_BUILTIN_ACCESSOR_C
|
| #undef DECLARE_BUILTIN_ACCESSOR_A
|
| +#undef DECLARE_BUILTIN_ACCESSOR_T
|
| +#undef DECLARE_BUILTIN_ACCESSOR_H
|
|
|
| // Convenience wrappers.
|
| Handle<Code> CallFunction(
|
| @@ -574,6 +590,8 @@ class Builtins {
|
| static void Generate_MathMin(MacroAssembler* masm) {
|
| Generate_MathMaxMin(masm, MathMaxMinKind::kMin);
|
| }
|
| + // ES6 section 20.2.2.32 Math.sqrt ( x )
|
| + static void Generate_MathSqrt(compiler::CodeStubAssembler* assembler);
|
|
|
| // ES6 section 20.1.1.1 Number ( [ value ] ) for the [[Call]] case.
|
| static void Generate_NumberConstructor(MacroAssembler* masm);
|
|
|