summaryrefslogtreecommitdiff
path: root/deps/v8/src/code-factory.cc
diff options
context:
space:
mode:
authorMichaël Zasso <targos@protonmail.com>2017-06-06 10:28:14 +0200
committerMichaël Zasso <targos@protonmail.com>2017-06-07 10:33:31 +0200
commit3dc8c3bed4cf3a77607edbb0b015e33f8b60fc09 (patch)
tree9dee56e142638b34f1eccbd0ad88c3bce5377c29 /deps/v8/src/code-factory.cc
parent91a1bbe3055a660194ca4d403795aa0c03e9d056 (diff)
downloadnode-new-3dc8c3bed4cf3a77607edbb0b015e33f8b60fc09.tar.gz
deps: update V8 to 5.9.211.32
PR-URL: https://github.com/nodejs/node/pull/13263 Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Franziska Hinkelmann <franziska.hinkelmann@gmail.com> Reviewed-By: Myles Borins <myles.borins@gmail.com>
Diffstat (limited to 'deps/v8/src/code-factory.cc')
-rw-r--r--deps/v8/src/code-factory.cc147
1 files changed, 100 insertions, 47 deletions
diff --git a/deps/v8/src/code-factory.cc b/deps/v8/src/code-factory.cc
index 3ebfad0e7f..71fbb1dbab 100644
--- a/deps/v8/src/code-factory.cc
+++ b/deps/v8/src/code-factory.cc
@@ -5,6 +5,7 @@
#include "src/code-factory.h"
#include "src/bootstrapper.h"
+#include "src/builtins/builtins-descriptors.h"
#include "src/ic/ic.h"
#include "src/objects-inl.h"
@@ -57,6 +58,12 @@ Callable CodeFactory::LoadICInOptimizedCode(Isolate* isolate) {
}
// static
+Callable CodeFactory::LoadICInOptimizedCode_Noninlined(Isolate* isolate) {
+ return Callable(isolate->builtins()->LoadIC_Noninlined(),
+ LoadWithVectorDescriptor(isolate));
+}
+
+// static
Callable CodeFactory::LoadGlobalIC(Isolate* isolate, TypeofMode typeof_mode) {
return Callable(
typeof_mode == NOT_INSIDE_TYPEOF
@@ -117,6 +124,15 @@ Callable CodeFactory::StoreICInOptimizedCode(Isolate* isolate,
StoreWithVectorDescriptor(isolate));
}
+// static
+Callable CodeFactory::StoreIC_Uninitialized(Isolate* isolate,
+ LanguageMode language_mode) {
+ return Callable(language_mode == STRICT
+ ? isolate->builtins()->StoreICStrict_Uninitialized()
+ : isolate->builtins()->StoreIC_Uninitialized(),
+ StoreWithVectorDescriptor(isolate));
+}
+
Callable CodeFactory::StoreOwnIC(Isolate* isolate) {
// TODO(ishell): Currently we use StoreOwnIC only for storing properties that
// already exist in the boilerplate therefore we can use StoreIC.
@@ -132,6 +148,25 @@ Callable CodeFactory::StoreOwnICInOptimizedCode(Isolate* isolate) {
}
// static
+Callable CodeFactory::StoreGlobalIC(Isolate* isolate,
+ LanguageMode language_mode) {
+ // TODO(ishell): Use StoreGlobalIC[Strict]Trampoline when it's ready.
+ return Callable(language_mode == STRICT
+ ? isolate->builtins()->StoreICStrictTrampoline()
+ : isolate->builtins()->StoreICTrampoline(),
+ StoreDescriptor(isolate));
+}
+
+// static
+Callable CodeFactory::StoreGlobalICInOptimizedCode(Isolate* isolate,
+ LanguageMode language_mode) {
+ // TODO(ishell): Use StoreGlobalIC[Strict] when it's ready.
+ return Callable(language_mode == STRICT ? isolate->builtins()->StoreICStrict()
+ : isolate->builtins()->StoreIC(),
+ StoreWithVectorDescriptor(isolate));
+}
+
+// static
Callable CodeFactory::KeyedStoreIC(Isolate* isolate,
LanguageMode language_mode) {
return Callable(language_mode == STRICT
@@ -208,16 +243,10 @@ Callable CodeFactory::StringFromCharCode(Isolate* isolate) {
return Callable(code, BuiltinDescriptor(isolate));
}
-#define DECLARE_TFS(Name, Kind, Extra, InterfaceDescriptor, result_size) \
- typedef InterfaceDescriptor##Descriptor Name##Descriptor;
-BUILTIN_LIST(IGNORE_BUILTIN, IGNORE_BUILTIN, IGNORE_BUILTIN, DECLARE_TFS,
- IGNORE_BUILTIN, IGNORE_BUILTIN, IGNORE_BUILTIN)
-#undef DECLARE_TFS
-
-#define TFS_BUILTIN(Name) \
- Callable CodeFactory::Name(Isolate* isolate) { \
- Handle<Code> code(isolate->builtins()->Name()); \
- return Callable(code, Name##Descriptor(isolate)); \
+#define TFS_BUILTIN(Name) \
+ Callable CodeFactory::Name(Isolate* isolate) { \
+ Handle<Code> code(isolate->builtins()->Name()); \
+ return Callable(code, Builtin_##Name##_InterfaceDescriptor(isolate)); \
}
TFS_BUILTIN(ToString)
@@ -237,9 +266,7 @@ TFS_BUILTIN(LessThanOrEqual)
TFS_BUILTIN(GreaterThan)
TFS_BUILTIN(GreaterThanOrEqual)
TFS_BUILTIN(Equal)
-TFS_BUILTIN(NotEqual)
TFS_BUILTIN(StrictEqual)
-TFS_BUILTIN(StrictNotEqual)
TFS_BUILTIN(CreateIterResultObject)
TFS_BUILTIN(HasProperty)
TFS_BUILTIN(NonNumberToNumber)
@@ -258,12 +285,15 @@ TFS_BUILTIN(CopyFastSmiOrObjectElements)
TFS_BUILTIN(GrowFastDoubleElements)
TFS_BUILTIN(GrowFastSmiOrObjectElements)
TFS_BUILTIN(NewUnmappedArgumentsElements)
-TFS_BUILTIN(NewRestParameterElements)
TFS_BUILTIN(FastCloneRegExp)
TFS_BUILTIN(FastNewClosure)
TFS_BUILTIN(FastNewObject)
+TFS_BUILTIN(FastNewRestParameter)
+TFS_BUILTIN(FastNewSloppyArguments)
+TFS_BUILTIN(FastNewStrictArguments)
TFS_BUILTIN(ForInFilter)
TFS_BUILTIN(GetSuperConstructor)
+TFS_BUILTIN(LoadIC_Uninitialized)
TFS_BUILTIN(KeyedLoadIC_Megamorphic)
TFS_BUILTIN(PromiseHandleReject)
TFS_BUILTIN(RegExpReplace)
@@ -271,11 +301,13 @@ TFS_BUILTIN(RegExpSplit)
TFS_BUILTIN(StringCharAt)
TFS_BUILTIN(StringCharCodeAt)
TFS_BUILTIN(StringEqual)
-TFS_BUILTIN(StringNotEqual)
TFS_BUILTIN(StringLessThan)
TFS_BUILTIN(StringLessThanOrEqual)
TFS_BUILTIN(StringGreaterThan)
TFS_BUILTIN(StringGreaterThanOrEqual)
+TFS_BUILTIN(AsyncGeneratorResolve)
+TFS_BUILTIN(AsyncGeneratorReject)
+TFS_BUILTIN(AsyncGeneratorResumeNext)
#undef TFS_BUILTIN
@@ -292,9 +324,6 @@ Callable CodeFactory::StringCompare(Isolate* isolate, Token::Value token) {
case Token::EQ:
case Token::EQ_STRICT:
return StringEqual(isolate);
- case Token::NE:
- case Token::NE_STRICT:
- return StringNotEqual(isolate);
case Token::LT:
return StringLessThan(isolate);
case Token::GT:
@@ -361,24 +390,6 @@ Callable CodeFactory::FastNewFunctionContext(Isolate* isolate,
}
// static
-Callable CodeFactory::FastNewRestParameter(Isolate* isolate) {
- return Callable(isolate->builtins()->FastNewRestParameter(),
- FastNewRestParameterDescriptor(isolate));
-}
-
-// static
-Callable CodeFactory::FastNewSloppyArguments(Isolate* isolate) {
- return Callable(isolate->builtins()->FastNewSloppyArguments(),
- FastNewRestParameterDescriptor(isolate));
-}
-
-// static
-Callable CodeFactory::FastNewStrictArguments(Isolate* isolate) {
- return Callable(isolate->builtins()->FastNewStrictArguments(),
- FastNewRestParameterDescriptor(isolate));
-}
-
-// static
Callable CodeFactory::ForInPrepare(Isolate* isolate) {
return Callable(isolate->builtins()->ForInPrepare(),
ForInPrepareDescriptor(isolate));
@@ -453,25 +464,25 @@ Callable CodeFactory::ConstructFunction(Isolate* isolate) {
}
// static
-Callable CodeFactory::InterpreterPushArgsAndCall(Isolate* isolate,
- TailCallMode tail_call_mode,
- InterpreterPushArgsMode mode) {
- return Callable(
- isolate->builtins()->InterpreterPushArgsAndCall(tail_call_mode, mode),
- InterpreterPushArgsAndCallDescriptor(isolate));
+Callable CodeFactory::InterpreterPushArgsThenCall(
+ Isolate* isolate, ConvertReceiverMode receiver_mode,
+ TailCallMode tail_call_mode, InterpreterPushArgsMode mode) {
+ return Callable(isolate->builtins()->InterpreterPushArgsThenCall(
+ receiver_mode, tail_call_mode, mode),
+ InterpreterPushArgsThenCallDescriptor(isolate));
}
// static
-Callable CodeFactory::InterpreterPushArgsAndConstruct(
+Callable CodeFactory::InterpreterPushArgsThenConstruct(
Isolate* isolate, InterpreterPushArgsMode mode) {
- return Callable(isolate->builtins()->InterpreterPushArgsAndConstruct(mode),
- InterpreterPushArgsAndConstructDescriptor(isolate));
+ return Callable(isolate->builtins()->InterpreterPushArgsThenConstruct(mode),
+ InterpreterPushArgsThenConstructDescriptor(isolate));
}
// static
-Callable CodeFactory::InterpreterPushArgsAndConstructArray(Isolate* isolate) {
- return Callable(isolate->builtins()->InterpreterPushArgsAndConstructArray(),
- InterpreterPushArgsAndConstructArrayDescriptor(isolate));
+Callable CodeFactory::InterpreterPushArgsThenConstructArray(Isolate* isolate) {
+ return Callable(isolate->builtins()->InterpreterPushArgsThenConstructArray(),
+ InterpreterPushArgsThenConstructArrayDescriptor(isolate));
}
// static
@@ -500,6 +511,48 @@ Callable CodeFactory::ArrayPush(Isolate* isolate) {
}
// static
+Callable CodeFactory::ArrayFilterLoopContinuation(Isolate* isolate) {
+ return Callable(isolate->builtins()->ArrayFilterLoopContinuation(),
+ IteratingArrayBuiltinLoopContinuationDescriptor(isolate));
+}
+
+// static
+Callable CodeFactory::ArrayMapLoopContinuation(Isolate* isolate) {
+ return Callable(isolate->builtins()->ArrayMapLoopContinuation(),
+ IteratingArrayBuiltinLoopContinuationDescriptor(isolate));
+}
+
+// static
+Callable CodeFactory::ArrayForEachLoopContinuation(Isolate* isolate) {
+ return Callable(isolate->builtins()->ArrayForEachLoopContinuation(),
+ IteratingArrayBuiltinLoopContinuationDescriptor(isolate));
+}
+
+// static
+Callable CodeFactory::ArraySomeLoopContinuation(Isolate* isolate) {
+ return Callable(isolate->builtins()->ArraySomeLoopContinuation(),
+ IteratingArrayBuiltinLoopContinuationDescriptor(isolate));
+}
+
+// static
+Callable CodeFactory::ArrayEveryLoopContinuation(Isolate* isolate) {
+ return Callable(isolate->builtins()->ArrayEveryLoopContinuation(),
+ IteratingArrayBuiltinLoopContinuationDescriptor(isolate));
+}
+
+// static
+Callable CodeFactory::ArrayReduceLoopContinuation(Isolate* isolate) {
+ return Callable(isolate->builtins()->ArrayReduceLoopContinuation(),
+ IteratingArrayBuiltinLoopContinuationDescriptor(isolate));
+}
+
+// static
+Callable CodeFactory::ArrayReduceRightLoopContinuation(Isolate* isolate) {
+ return Callable(isolate->builtins()->ArrayReduceRightLoopContinuation(),
+ IteratingArrayBuiltinLoopContinuationDescriptor(isolate));
+}
+
+// static
Callable CodeFactory::FunctionPrototypeBind(Isolate* isolate) {
return Callable(isolate->builtins()->FunctionPrototypeBind(),
BuiltinDescriptor(isolate));