diff options
author | Michaƫl Zasso <targos@protonmail.com> | 2017-09-12 11:34:59 +0200 |
---|---|---|
committer | Anna Henningsen <anna@addaleax.net> | 2017-09-13 16:15:18 +0200 |
commit | d82e1075dbc2cec2d6598ade10c1f43805f690fd (patch) | |
tree | ccd242b9b491dfc341d1099fe11b0ef528839877 /deps/v8/src/code-factory.cc | |
parent | b4b7ac6ae811b2b5a3082468115dfb5a5246fe3f (diff) | |
download | android-node-v8-d82e1075dbc2cec2d6598ade10c1f43805f690fd.tar.gz android-node-v8-d82e1075dbc2cec2d6598ade10c1f43805f690fd.tar.bz2 android-node-v8-d82e1075dbc2cec2d6598ade10c1f43805f690fd.zip |
deps: update V8 to 6.1.534.36
PR-URL: https://github.com/nodejs/node/pull/14730
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Diffstat (limited to 'deps/v8/src/code-factory.cc')
-rw-r--r-- | deps/v8/src/code-factory.cc | 229 |
1 files changed, 74 insertions, 155 deletions
diff --git a/deps/v8/src/code-factory.cc b/deps/v8/src/code-factory.cc index 5252b438be..ebeb540230 100644 --- a/deps/v8/src/code-factory.cc +++ b/deps/v8/src/code-factory.cc @@ -30,12 +30,6 @@ Handle<Code> CodeFactory::RuntimeCEntry(Isolate* isolate, int result_size) { } // static -Callable CodeFactory::LoadIC(Isolate* isolate) { - return Callable(isolate->builtins()->LoadICTrampoline(), - LoadDescriptor(isolate)); -} - -// static Callable CodeFactory::LoadICProtoArray(Isolate* isolate, bool throw_if_nonexistent) { return Callable( @@ -52,18 +46,6 @@ Callable CodeFactory::ApiGetter(Isolate* isolate) { } // static -Callable CodeFactory::LoadICInOptimizedCode(Isolate* isolate) { - return Callable(isolate->builtins()->LoadIC(), - LoadWithVectorDescriptor(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 @@ -82,29 +64,15 @@ Callable CodeFactory::LoadGlobalICInOptimizedCode(Isolate* isolate, } // static -Callable CodeFactory::KeyedLoadIC(Isolate* isolate) { - return Callable(isolate->builtins()->KeyedLoadICTrampoline(), - LoadDescriptor(isolate)); -} - -// static -Callable CodeFactory::KeyedLoadICInOptimizedCode(Isolate* isolate) { - return Callable(isolate->builtins()->KeyedLoadIC(), - LoadWithVectorDescriptor(isolate)); -} - -// static -Callable CodeFactory::CallIC(Isolate* isolate, ConvertReceiverMode mode, - TailCallMode tail_call_mode) { - CallICStub stub(isolate, mode, tail_call_mode); +Callable CodeFactory::CallIC(Isolate* isolate, ConvertReceiverMode mode) { + CallICStub stub(isolate, mode); return make_callable(stub); } // static Callable CodeFactory::CallICTrampoline(Isolate* isolate, - ConvertReceiverMode mode, - TailCallMode tail_call_mode) { - CallICTrampolineStub stub(isolate, mode, tail_call_mode); + ConvertReceiverMode mode) { + CallICTrampolineStub stub(isolate, mode); return make_callable(stub); } @@ -200,9 +168,34 @@ Callable CodeFactory::CompareIC(Isolate* isolate, Token::Value op) { } // static -Callable CodeFactory::BinaryOpIC(Isolate* isolate, Token::Value op) { - BinaryOpICStub stub(isolate, op); - return make_callable(stub); +Callable CodeFactory::BinaryOperation(Isolate* isolate, Token::Value op) { + switch (op) { + case Token::SAR: + return Builtins::CallableFor(isolate, Builtins::kShiftRight); + case Token::SHL: + return Builtins::CallableFor(isolate, Builtins::kShiftLeft); + case Token::SHR: + return Builtins::CallableFor(isolate, Builtins::kShiftRightLogical); + case Token::ADD: + return Builtins::CallableFor(isolate, Builtins::kAdd); + case Token::SUB: + return Builtins::CallableFor(isolate, Builtins::kSubtract); + case Token::MUL: + return Builtins::CallableFor(isolate, Builtins::kMultiply); + case Token::DIV: + return Builtins::CallableFor(isolate, Builtins::kDivide); + case Token::MOD: + return Builtins::CallableFor(isolate, Builtins::kModulus); + case Token::BIT_OR: + return Builtins::CallableFor(isolate, Builtins::kBitwiseOr); + case Token::BIT_AND: + return Builtins::CallableFor(isolate, Builtins::kBitwiseAnd); + case Token::BIT_XOR: + return Builtins::CallableFor(isolate, Builtins::kBitwiseXor); + default: + break; + } + UNREACHABLE(); } // static @@ -232,80 +225,6 @@ Callable CodeFactory::NumberToString(Isolate* isolate) { } // static -Callable CodeFactory::StringFromCharCode(Isolate* isolate) { - Handle<Code> code(isolate->builtins()->StringFromCharCode()); - return Callable(code, BuiltinDescriptor(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) -TFS_BUILTIN(Add) -TFS_BUILTIN(Subtract) -TFS_BUILTIN(Multiply) -TFS_BUILTIN(Divide) -TFS_BUILTIN(Modulus) -TFS_BUILTIN(BitwiseAnd) -TFS_BUILTIN(BitwiseOr) -TFS_BUILTIN(BitwiseXor) -TFS_BUILTIN(ShiftLeft) -TFS_BUILTIN(ShiftRight) -TFS_BUILTIN(ShiftRightLogical) -TFS_BUILTIN(LessThan) -TFS_BUILTIN(LessThanOrEqual) -TFS_BUILTIN(GreaterThan) -TFS_BUILTIN(GreaterThanOrEqual) -TFS_BUILTIN(Equal) -TFS_BUILTIN(StrictEqual) -TFS_BUILTIN(CreateIterResultObject) -TFS_BUILTIN(HasProperty) -TFS_BUILTIN(NonNumberToNumber) -TFS_BUILTIN(StringToNumber) -TFS_BUILTIN(ToBoolean) -TFS_BUILTIN(ToInteger) -TFS_BUILTIN(ToLength) -TFS_BUILTIN(ToName) -TFS_BUILTIN(ToNumber) -TFS_BUILTIN(ToObject) -TFS_BUILTIN(ClassOf) -TFS_BUILTIN(Typeof) -TFS_BUILTIN(InstanceOf) -TFS_BUILTIN(OrdinaryHasInstance) -TFS_BUILTIN(CopyFastSmiOrObjectElements) -TFS_BUILTIN(GrowFastDoubleElements) -TFS_BUILTIN(GrowFastSmiOrObjectElements) -TFS_BUILTIN(NewUnmappedArgumentsElements) -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) -TFS_BUILTIN(RegExpSplit) -TFS_BUILTIN(StringCharAt) -TFS_BUILTIN(StringCharCodeAt) -TFS_BUILTIN(StringEqual) -TFS_BUILTIN(StringLessThan) -TFS_BUILTIN(StringLessThanOrEqual) -TFS_BUILTIN(StringGreaterThan) -TFS_BUILTIN(StringGreaterThanOrEqual) -TFS_BUILTIN(AsyncGeneratorResolve) -TFS_BUILTIN(AsyncGeneratorReject) -TFS_BUILTIN(AsyncGeneratorResumeNext) - -#undef TFS_BUILTIN - -// static Callable CodeFactory::StringAdd(Isolate* isolate, StringAddFlags flags, PretenureFlag pretenure_flag) { StringAddStub stub(isolate, flags, pretenure_flag); @@ -317,26 +236,20 @@ Callable CodeFactory::StringCompare(Isolate* isolate, Token::Value token) { switch (token) { case Token::EQ: case Token::EQ_STRICT: - return StringEqual(isolate); + return Builtins::CallableFor(isolate, Builtins::kStringEqual); case Token::LT: - return StringLessThan(isolate); + return Builtins::CallableFor(isolate, Builtins::kStringLessThan); case Token::GT: - return StringGreaterThan(isolate); + return Builtins::CallableFor(isolate, Builtins::kStringGreaterThan); case Token::LTE: - return StringLessThanOrEqual(isolate); + return Builtins::CallableFor(isolate, Builtins::kStringLessThanOrEqual); case Token::GTE: - return StringGreaterThanOrEqual(isolate); + return Builtins::CallableFor(isolate, + Builtins::kStringGreaterThanOrEqual); default: break; } UNREACHABLE(); - return StringEqual(isolate); -} - -// static -Callable CodeFactory::StringIndexOf(Isolate* isolate) { - return Callable(isolate->builtins()->StringIndexOf(), - StringIndexOfDescriptor(isolate)); } // static @@ -371,12 +284,6 @@ Callable CodeFactory::FastCloneShallowArray( } // static -Callable CodeFactory::FastCloneShallowObject(Isolate* isolate) { - return Callable(isolate->builtins()->FastCloneShallowObject(), - FastCloneShallowObjectDescriptor(isolate)); -} - -// static Callable CodeFactory::FastNewFunctionContext(Isolate* isolate, ScopeType scope_type) { return Callable(isolate->builtins()->NewFunctionContext(scope_type), @@ -384,18 +291,6 @@ Callable CodeFactory::FastNewFunctionContext(Isolate* isolate, } // static -Callable CodeFactory::ForInPrepare(Isolate* isolate) { - return Callable(isolate->builtins()->ForInPrepare(), - ForInPrepareDescriptor(isolate)); -} - -// static -Callable CodeFactory::ForInNext(Isolate* isolate) { - return Callable(isolate->builtins()->ForInNext(), - ForInNextDescriptor(isolate)); -} - -// static Callable CodeFactory::AllocateHeapNumber(Isolate* isolate) { AllocateHeapNumberStub stub(isolate); return make_callable(stub); @@ -408,26 +303,36 @@ Callable CodeFactory::ArgumentAdaptor(Isolate* isolate) { } // static -Callable CodeFactory::Call(Isolate* isolate, ConvertReceiverMode mode, - TailCallMode tail_call_mode) { - return Callable(isolate->builtins()->Call(mode, tail_call_mode), +Callable CodeFactory::Call(Isolate* isolate, ConvertReceiverMode mode) { + return Callable(isolate->builtins()->Call(mode), CallTrampolineDescriptor(isolate)); } // static +Callable CodeFactory::CallWithArrayLike(Isolate* isolate) { + return Callable(isolate->builtins()->CallWithArrayLike(), + CallWithArrayLikeDescriptor(isolate)); +} + +// static Callable CodeFactory::CallWithSpread(Isolate* isolate) { return Callable(isolate->builtins()->CallWithSpread(), - CallTrampolineDescriptor(isolate)); + CallWithSpreadDescriptor(isolate)); } // static -Callable CodeFactory::CallFunction(Isolate* isolate, ConvertReceiverMode mode, - TailCallMode tail_call_mode) { - return Callable(isolate->builtins()->CallFunction(mode, tail_call_mode), +Callable CodeFactory::CallFunction(Isolate* isolate, ConvertReceiverMode mode) { + return Callable(isolate->builtins()->CallFunction(mode), CallTrampolineDescriptor(isolate)); } // static +Callable CodeFactory::CallVarargs(Isolate* isolate) { + return Callable(isolate->builtins()->CallVarargs(), + CallVarargsDescriptor(isolate)); +} + +// static Callable CodeFactory::CallForwardVarargs(Isolate* isolate) { return Callable(isolate->builtins()->CallForwardVarargs(), CallForwardVarargsDescriptor(isolate)); @@ -448,7 +353,7 @@ Callable CodeFactory::Construct(Isolate* isolate) { // static Callable CodeFactory::ConstructWithSpread(Isolate* isolate) { return Callable(isolate->builtins()->ConstructWithSpread(), - ConstructTrampolineDescriptor(isolate)); + ConstructWithSpreadDescriptor(isolate)); } // static @@ -458,6 +363,12 @@ Callable CodeFactory::ConstructFunction(Isolate* isolate) { } // static +Callable CodeFactory::ConstructVarargs(Isolate* isolate) { + return Callable(isolate->builtins()->ConstructVarargs(), + ConstructVarargsDescriptor(isolate)); +} + +// static Callable CodeFactory::ConstructForwardVarargs(Isolate* isolate) { return Callable(isolate->builtins()->ConstructForwardVarargs(), ConstructForwardVarargsDescriptor(isolate)); @@ -472,10 +383,10 @@ Callable CodeFactory::ConstructFunctionForwardVarargs(Isolate* isolate) { // static 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)); + InterpreterPushArgsMode mode) { + return Callable( + isolate->builtins()->InterpreterPushArgsThenCall(receiver_mode, mode), + InterpreterPushArgsThenCallDescriptor(isolate)); } // static @@ -533,5 +444,13 @@ Callable CodeFactory::FunctionPrototypeBind(Isolate* isolate) { BuiltinDescriptor(isolate)); } +// static +Callable CodeFactory::TransitionElementsKind(Isolate* isolate, + ElementsKind from, ElementsKind to, + bool is_jsarray) { + TransitionElementsKindStub stub(isolate, from, to, is_jsarray); + return make_callable(stub); +} + } // namespace internal } // namespace v8 |