Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(39)

Unified Diff: src/builtins.h

Issue 2090723005: [builtins] New frame type for exits to C++ builtins (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/arm64/macro-assembler-arm64.cc ('k') | src/builtins.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/builtins.h
diff --git a/src/builtins.h b/src/builtins.h
index 83b31bcb994457adf99da7ad1c1979145bec89c7..912c3c15c222e133e806065027bbaa49362e99f2 100644
--- a/src/builtins.h
+++ b/src/builtins.h
@@ -38,144 +38,144 @@ class CodeStubAssembler;
V(Make##C##CodeYoungAgainEvenMarking, BUILTIN, kNoExtraICState)
// Define list of builtins implemented in C++.
-#define BUILTIN_LIST_C(V) \
- V(Illegal) \
- \
- V(EmptyFunction) \
- \
- V(ArrayConcat) \
- V(ArrayPop) \
- V(ArrayPush) \
- V(ArrayShift) \
- V(ArraySlice) \
- V(ArraySplice) \
- V(ArrayUnshift) \
- \
- V(ArrayBufferConstructor) \
- V(ArrayBufferConstructor_ConstructStub) \
- V(ArrayBufferIsView) \
- \
- V(BooleanConstructor) \
- V(BooleanConstructor_ConstructStub) \
- V(BooleanPrototypeToString) \
- V(BooleanPrototypeValueOf) \
- \
- V(DataViewConstructor) \
- V(DataViewConstructor_ConstructStub) \
- V(DataViewPrototypeGetBuffer) \
- V(DataViewPrototypeGetByteLength) \
- V(DataViewPrototypeGetByteOffset) \
- \
- V(DateConstructor) \
- V(DateConstructor_ConstructStub) \
- V(DateNow) \
- V(DateParse) \
- V(DateUTC) \
- V(DatePrototypeSetDate) \
- V(DatePrototypeSetFullYear) \
- V(DatePrototypeSetHours) \
- V(DatePrototypeSetMilliseconds) \
- V(DatePrototypeSetMinutes) \
- V(DatePrototypeSetMonth) \
- V(DatePrototypeSetSeconds) \
- V(DatePrototypeSetTime) \
- V(DatePrototypeSetUTCDate) \
- V(DatePrototypeSetUTCFullYear) \
- V(DatePrototypeSetUTCHours) \
- V(DatePrototypeSetUTCMilliseconds) \
- V(DatePrototypeSetUTCMinutes) \
- V(DatePrototypeSetUTCMonth) \
- V(DatePrototypeSetUTCSeconds) \
- V(DatePrototypeToDateString) \
- V(DatePrototypeToISOString) \
- V(DatePrototypeToPrimitive) \
- V(DatePrototypeToUTCString) \
- V(DatePrototypeToString) \
- V(DatePrototypeToTimeString) \
- V(DatePrototypeValueOf) \
- V(DatePrototypeGetYear) \
- V(DatePrototypeSetYear) \
- V(DatePrototypeToJson) \
- \
- V(FunctionConstructor) \
- V(FunctionPrototypeBind) \
- V(FunctionPrototypeToString) \
- \
- V(GeneratorFunctionConstructor) \
- V(AsyncFunctionConstructor) \
- \
- V(GlobalDecodeURI) \
- V(GlobalDecodeURIComponent) \
- V(GlobalEncodeURI) \
- V(GlobalEncodeURIComponent) \
- V(GlobalEscape) \
- V(GlobalUnescape) \
- \
- V(GlobalEval) \
- \
- V(JsonParse) \
- V(JsonStringify) \
- \
- V(MathAcos) \
- V(MathAsin) \
- V(MathFround) \
- V(MathImul) \
- \
- V(ObjectAssign) \
- V(ObjectCreate) \
- V(ObjectDefineGetter) \
- V(ObjectDefineProperties) \
- V(ObjectDefineProperty) \
- V(ObjectDefineSetter) \
- V(ObjectEntries) \
- V(ObjectFreeze) \
- V(ObjectGetOwnPropertyDescriptor) \
- V(ObjectGetOwnPropertyDescriptors) \
- V(ObjectGetOwnPropertyNames) \
- V(ObjectGetOwnPropertySymbols) \
- V(ObjectGetPrototypeOf) \
- V(ObjectIs) \
- V(ObjectIsExtensible) \
- V(ObjectIsFrozen) \
- V(ObjectIsSealed) \
- V(ObjectKeys) \
- V(ObjectLookupGetter) \
- V(ObjectLookupSetter) \
- V(ObjectPreventExtensions) \
- V(ObjectProtoToString) \
- V(ObjectSeal) \
- V(ObjectValues) \
- \
- V(ProxyConstructor) \
- V(ProxyConstructor_ConstructStub) \
- \
- V(ReflectDefineProperty) \
- V(ReflectDeleteProperty) \
- V(ReflectGet) \
- V(ReflectGetOwnPropertyDescriptor) \
- V(ReflectGetPrototypeOf) \
- V(ReflectHas) \
- V(ReflectIsExtensible) \
- V(ReflectOwnKeys) \
- V(ReflectPreventExtensions) \
- V(ReflectSet) \
- V(ReflectSetPrototypeOf) \
- \
- V(StringPrototypeTrim) \
- V(StringPrototypeTrimLeft) \
- V(StringPrototypeTrimRight) \
- \
- V(SymbolConstructor) \
- V(SymbolConstructor_ConstructStub) \
- \
- V(TypedArrayPrototypeBuffer) \
- \
- V(HandleApiCall) \
- V(HandleApiCallAsFunction) \
- V(HandleApiCallAsConstructor) \
- \
- V(RestrictedFunctionPropertiesThrower) \
- V(RestrictedStrictArgumentsPropertiesThrower)
+#define BUILTIN_LIST_C(V) \
+ V(Illegal, true) \
Yang 2016/06/27 08:30:02 Might be nicer to have an enum instead of a boolea
+ \
+ V(EmptyFunction, true) \
+ \
+ V(ArrayConcat, true) \
+ V(ArrayPop, true) \
+ V(ArrayPush, true) \
+ V(ArrayShift, true) \
+ V(ArraySlice, true) \
+ V(ArraySplice, true) \
+ V(ArrayUnshift, true) \
+ \
+ V(ArrayBufferConstructor, true) \
+ V(ArrayBufferConstructor_ConstructStub, true) \
+ V(ArrayBufferIsView, true) \
+ \
+ V(BooleanConstructor, true) \
+ V(BooleanConstructor_ConstructStub, true) \
+ V(BooleanPrototypeToString, true) \
+ V(BooleanPrototypeValueOf, true) \
+ \
+ V(DataViewConstructor, true) \
+ V(DataViewConstructor_ConstructStub, true) \
+ V(DataViewPrototypeGetBuffer, true) \
+ V(DataViewPrototypeGetByteLength, true) \
+ V(DataViewPrototypeGetByteOffset, true) \
+ \
+ V(DateConstructor, true) \
+ V(DateConstructor_ConstructStub, true) \
+ V(DateNow, true) \
+ V(DateParse, true) \
+ V(DateUTC, true) \
+ V(DatePrototypeSetDate, true) \
+ V(DatePrototypeSetFullYear, true) \
+ V(DatePrototypeSetHours, true) \
+ V(DatePrototypeSetMilliseconds, true) \
+ V(DatePrototypeSetMinutes, true) \
+ V(DatePrototypeSetMonth, true) \
+ V(DatePrototypeSetSeconds, true) \
+ V(DatePrototypeSetTime, true) \
+ V(DatePrototypeSetUTCDate, true) \
+ V(DatePrototypeSetUTCFullYear, true) \
+ V(DatePrototypeSetUTCHours, true) \
+ V(DatePrototypeSetUTCMilliseconds, true) \
+ V(DatePrototypeSetUTCMinutes, true) \
+ V(DatePrototypeSetUTCMonth, true) \
+ V(DatePrototypeSetUTCSeconds, true) \
+ V(DatePrototypeToDateString, true) \
+ V(DatePrototypeToISOString, true) \
+ V(DatePrototypeToPrimitive, true) \
+ V(DatePrototypeToUTCString, true) \
+ V(DatePrototypeToString, true) \
+ V(DatePrototypeToTimeString, true) \
+ V(DatePrototypeValueOf, true) \
+ V(DatePrototypeGetYear, true) \
+ V(DatePrototypeSetYear, true) \
+ V(DatePrototypeToJson, true) \
+ \
+ V(FunctionConstructor, true) \
+ V(FunctionPrototypeBind, true) \
+ V(FunctionPrototypeToString, true) \
+ \
+ V(GeneratorFunctionConstructor, true) \
+ V(AsyncFunctionConstructor, true) \
+ \
+ V(GlobalDecodeURI, true) \
+ V(GlobalDecodeURIComponent, true) \
+ V(GlobalEncodeURI, true) \
+ V(GlobalEncodeURIComponent, true) \
+ V(GlobalEscape, true) \
+ V(GlobalUnescape, true) \
+ \
+ V(GlobalEval, true) \
+ \
+ V(JsonParse, true) \
+ V(JsonStringify, true) \
+ \
+ V(MathAcos, true) \
+ V(MathAsin, true) \
+ V(MathFround, true) \
+ V(MathImul, true) \
+ \
+ V(ObjectAssign, true) \
+ V(ObjectCreate, true) \
+ V(ObjectDefineGetter, true) \
+ V(ObjectDefineProperties, true) \
+ V(ObjectDefineProperty, true) \
+ V(ObjectDefineSetter, true) \
+ V(ObjectEntries, true) \
+ V(ObjectFreeze, true) \
+ V(ObjectGetOwnPropertyDescriptor, true) \
+ V(ObjectGetOwnPropertyDescriptors, true) \
+ V(ObjectGetOwnPropertyNames, true) \
+ V(ObjectGetOwnPropertySymbols, true) \
+ V(ObjectGetPrototypeOf, true) \
+ V(ObjectIs, true) \
+ V(ObjectIsExtensible, true) \
+ V(ObjectIsFrozen, true) \
+ V(ObjectIsSealed, true) \
+ V(ObjectKeys, true) \
+ V(ObjectLookupGetter, true) \
+ V(ObjectLookupSetter, true) \
+ V(ObjectPreventExtensions, true) \
+ V(ObjectProtoToString, true) \
+ V(ObjectSeal, true) \
+ V(ObjectValues, true) \
+ \
+ V(ProxyConstructor, true) \
+ V(ProxyConstructor_ConstructStub, true) \
+ \
+ V(ReflectDefineProperty, true) \
+ V(ReflectDeleteProperty, true) \
+ V(ReflectGet, true) \
+ V(ReflectGetOwnPropertyDescriptor, true) \
+ V(ReflectGetPrototypeOf, true) \
+ V(ReflectHas, true) \
+ V(ReflectIsExtensible, true) \
+ V(ReflectOwnKeys, true) \
+ V(ReflectPreventExtensions, true) \
+ V(ReflectSet, true) \
+ V(ReflectSetPrototypeOf, true) \
+ \
+ V(StringPrototypeTrim, true) \
+ V(StringPrototypeTrimLeft, true) \
+ V(StringPrototypeTrimRight, true) \
+ \
+ V(SymbolConstructor, true) \
+ V(SymbolConstructor_ConstructStub, true) \
+ \
+ V(TypedArrayPrototypeBuffer, true) \
+ \
+ V(HandleApiCall, false) \
+ V(HandleApiCallAsFunction, false) \
+ V(HandleApiCallAsConstructor, false) \
+ \
+ V(RestrictedFunctionPropertiesThrower, true) \
+ V(RestrictedStrictArgumentsPropertiesThrower, true)
// Define list of builtins implemented in assembly.
#define BUILTIN_LIST_A(V) \
@@ -374,7 +374,7 @@ class Builtins {
const char* Lookup(byte* pc);
enum Name {
-#define DEF_ENUM_C(name) k##name,
+#define DEF_ENUM_C(name, ignore) k##name,
#define DEF_ENUM_A(name, kind, extra) k##name,
#define DEF_ENUM_T(name, argc) k##name,
#define DEF_ENUM_S(name, kind, extra, interface_descriptor) k##name,
@@ -391,13 +391,13 @@ class Builtins {
};
enum CFunctionId {
-#define DEF_ENUM_C(name) c_##name,
+#define DEF_ENUM_C(name, ignore) c_##name,
BUILTIN_LIST_C(DEF_ENUM_C)
#undef DEF_ENUM_C
- cfunction_count
+ cfunction_count
};
-#define DECLARE_BUILTIN_ACCESSOR_C(name) Handle<Code> name();
+#define DECLARE_BUILTIN_ACCESSOR_C(name, ignore) Handle<Code> name();
#define DECLARE_BUILTIN_ACCESSOR_A(name, kind, extra) Handle<Code> name();
#define DECLARE_BUILTIN_ACCESSOR_T(name, argc) Handle<Code> name();
#define DECLARE_BUILTIN_ACCESSOR_S(name, kind, extra, interface_descriptor) \
@@ -462,7 +462,8 @@ class Builtins {
Object* builtins_[builtin_count];
const char* names_[builtin_count];
- static void Generate_Adaptor(MacroAssembler* masm, CFunctionId id);
+ static void Generate_Adaptor(MacroAssembler* masm, CFunctionId id,
+ bool builtin_exit_frame);
static void Generate_AllocateInNewSpace(MacroAssembler* masm);
static void Generate_AllocateInOldSpace(MacroAssembler* masm);
static void Generate_ConstructedNonConstructable(MacroAssembler* masm);
« no previous file with comments | « src/arm64/macro-assembler-arm64.cc ('k') | src/builtins.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698