diff options
author | Michaƫl Zasso <targos@protonmail.com> | 2023-03-30 12:11:08 +0200 |
---|---|---|
committer | Node.js GitHub Bot <github-bot@iojs.org> | 2023-03-31 14:15:23 +0000 |
commit | f226350fcbebd4449fb0034fdaffa147e4de28ea (patch) | |
tree | 8896397ec8829c238012bfbe9781f4e2d94708bc /deps/v8/src/compiler/code-assembler.h | |
parent | 10928cb0a4643a11c02af7bab93fc4b5abe2ce7d (diff) | |
download | node-new-f226350fcbebd4449fb0034fdaffa147e4de28ea.tar.gz |
deps: update V8 to 11.3.244.4
PR-URL: https://github.com/nodejs/node/pull/47251
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
Reviewed-By: Richard Lau <rlau@redhat.com>
Diffstat (limited to 'deps/v8/src/compiler/code-assembler.h')
-rw-r--r-- | deps/v8/src/compiler/code-assembler.h | 30 |
1 files changed, 21 insertions, 9 deletions
diff --git a/deps/v8/src/compiler/code-assembler.h b/deps/v8/src/compiler/code-assembler.h index 06cf450431..11b0901f02 100644 --- a/deps/v8/src/compiler/code-assembler.h +++ b/deps/v8/src/compiler/code-assembler.h @@ -259,7 +259,9 @@ class CodeAssemblerParameterizedLabel; V(Int32Mul, Word32T, Word32T, Word32T) \ V(Int32MulWithOverflow, PAIR_TYPE(Int32T, BoolT), Int32T, Int32T) \ V(Int32Div, Int32T, Int32T, Int32T) \ + V(Uint32Div, Uint32T, Uint32T, Uint32T) \ V(Int32Mod, Int32T, Int32T, Int32T) \ + V(Uint32Mod, Uint32T, Uint32T, Uint32T) \ V(Int64Add, Word64T, Word64T, Word64T) \ V(Int64Sub, Word64T, Word64T, Word64T) \ V(Int64SubWithOverflow, PAIR_TYPE(Int64T, BoolT), Int64T, Int64T) \ @@ -508,6 +510,7 @@ class V8_EXPORT_PRIVATE CodeAssembler { #endif // Constants. + TNode<Int32T> UniqueInt32Constant(int32_t value); TNode<Int32T> Int32Constant(int32_t value); TNode<Int64T> Int64Constant(int64_t value); TNode<Uint64T> Uint64Constant(uint64_t value) { @@ -582,7 +585,8 @@ class V8_EXPORT_PRIVATE CodeAssembler { return UncheckedCast<UintPtrT>(x); } - static constexpr int kTargetParameterIndex = -1; + static constexpr int kTargetParameterIndex = kJSCallClosureParameterIndex; + static_assert(kTargetParameterIndex == -1); template <class T> TNode<T> Parameter( @@ -979,6 +983,9 @@ class V8_EXPORT_PRIVATE CodeAssembler { TNode<IntPtrT> WordNot(TNode<IntPtrT> a) { return Signed(WordNot(static_cast<TNode<WordT>>(a))); } + TNode<Int32T> Word32BitwiseNot(TNode<Int32T> a) { + return Signed(Word32BitwiseNot(static_cast<TNode<Word32T>>(a))); + } TNode<BoolT> Word32Or(TNode<BoolT> left, TNode<BoolT> right) { return UncheckedCast<BoolT>(Word32Or(static_cast<TNode<Word32T>>(left), static_cast<TNode<Word32T>>(right))); @@ -1013,6 +1020,11 @@ class V8_EXPORT_PRIVATE CodeAssembler { static_cast<TNode<Word32T>>(right))); } + TNode<Uint32T> Uint32Mul(TNode<Uint32T> left, TNode<Uint32T> right) { + return Unsigned(Int32Mul(static_cast<TNode<Word32T>>(left), + static_cast<TNode<Word32T>>(right))); + } + TNode<Int64T> Int64Add(TNode<Int64T> left, TNode<Int64T> right) { return Signed(Int64Add(static_cast<TNode<Word64T>>(left), right)); } @@ -1168,13 +1180,13 @@ class V8_EXPORT_PRIVATE CodeAssembler { template <class T = Object, class... TArgs> TNode<T> CallStub(Callable const& callable, TNode<Object> context, TArgs... args) { - TNode<CodeT> target = HeapConstant(callable.code()); + TNode<Code> target = HeapConstant(callable.code()); return CallStub<T>(callable.descriptor(), target, context, args...); } template <class T = Object, class... TArgs> TNode<T> CallStub(const CallInterfaceDescriptor& descriptor, - TNode<CodeT> target, TNode<Object> context, TArgs... args) { + TNode<Code> target, TNode<Object> context, TArgs... args) { return UncheckedCast<T>(CallStubR(StubCallMode::kCallCodeObject, descriptor, target, context, args...)); } @@ -1190,13 +1202,13 @@ class V8_EXPORT_PRIVATE CodeAssembler { template <class... TArgs> void TailCallStub(Callable const& callable, TNode<Object> context, TArgs... args) { - TNode<CodeT> target = HeapConstant(callable.code()); + TNode<Code> target = HeapConstant(callable.code()); TailCallStub(callable.descriptor(), target, context, args...); } template <class... TArgs> void TailCallStub(const CallInterfaceDescriptor& descriptor, - TNode<CodeT> target, TNode<Object> context, TArgs... args) { + TNode<Code> target, TNode<Object> context, TArgs... args) { TailCallStubImpl(descriptor, target, context, {args...}); } @@ -1219,7 +1231,7 @@ class V8_EXPORT_PRIVATE CodeAssembler { // Note that no arguments adaption is going on here - all the JavaScript // arguments are left on the stack unmodified. Therefore, this tail call can // only be used after arguments adaptation has been performed already. - void TailCallJSCode(TNode<CodeT> code, TNode<Context> context, + void TailCallJSCode(TNode<Code> code, TNode<Context> context, TNode<JSFunction> function, TNode<Object> new_target, TNode<Int32T> arg_count); @@ -1228,7 +1240,7 @@ class V8_EXPORT_PRIVATE CodeAssembler { Node* receiver, TArgs... args) { int argc = JSParameterCount(static_cast<int>(sizeof...(args))); TNode<Int32T> arity = Int32Constant(argc); - TNode<CodeT> target = HeapConstant(callable.code()); + TNode<Code> target = HeapConstant(callable.code()); return CAST(CallJSStubImpl(callable.descriptor(), target, CAST(context), CAST(function), {}, arity, {receiver, args...})); } @@ -1239,7 +1251,7 @@ class V8_EXPORT_PRIVATE CodeAssembler { int argc = JSParameterCount(static_cast<int>(sizeof...(args))); TNode<Int32T> arity = Int32Constant(argc); TNode<Object> receiver = LoadRoot(RootIndex::kUndefinedValue); - TNode<CodeT> target = HeapConstant(callable.code()); + TNode<Code> target = HeapConstant(callable.code()); return CallJSStubImpl(callable.descriptor(), target, CAST(context), CAST(function), CAST(new_target), arity, {receiver, args...}); @@ -1338,7 +1350,7 @@ class V8_EXPORT_PRIVATE CodeAssembler { std::initializer_list<TNode<Object>> args); void TailCallStubImpl(const CallInterfaceDescriptor& descriptor, - TNode<CodeT> target, TNode<Object> context, + TNode<Code> target, TNode<Object> context, std::initializer_list<Node*> args); void TailCallStubThenBytecodeDispatchImpl( |