diff options
Diffstat (limited to 'deps/v8/test/cctest/test-code-stub-assembler.cc')
-rw-r--r-- | deps/v8/test/cctest/test-code-stub-assembler.cc | 326 |
1 files changed, 155 insertions, 171 deletions
diff --git a/deps/v8/test/cctest/test-code-stub-assembler.cc b/deps/v8/test/cctest/test-code-stub-assembler.cc index d1e6f08d0a..5efe5281c2 100644 --- a/deps/v8/test/cctest/test-code-stub-assembler.cc +++ b/deps/v8/test/cctest/test-code-stub-assembler.cc @@ -56,7 +56,7 @@ TEST(CallCFunction) { Isolate* isolate(CcTest::InitIsolateOnce()); const int kNumParams = 0; - CodeAssemblerTester asm_tester(isolate, kNumParams); + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumParams)); CodeStubAssembler m(asm_tester.state()); { @@ -90,7 +90,7 @@ TEST(CallCFunctionWithCallerSavedRegisters) { Isolate* isolate(CcTest::InitIsolateOnce()); const int kNumParams = 0; - CodeAssemblerTester asm_tester(isolate, kNumParams); + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumParams)); CodeStubAssembler m(asm_tester.state()); { @@ -119,7 +119,7 @@ TEST(NumberToString) { Factory* factory = isolate->factory(); const int kNumParams = 1; - CodeAssemblerTester asm_tester(isolate, kNumParams + 1); // Include receiver. + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumParams)); CodeStubAssembler m(asm_tester.state()); { @@ -199,14 +199,14 @@ TEST(ToUint32) { Factory* factory = isolate->factory(); const int kNumParams = 1; - CodeAssemblerTester asm_tester(isolate, kNumParams + 1); // Include receiver. + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumParams)); CodeStubAssembler m(asm_tester.state()); - const int kContextOffset = 3; - auto context = m.Parameter<Context>(kNumParams + kContextOffset); - auto input = m.Parameter<Object>(1); - m.Return(m.ToUint32(context, input)); - + { + auto context = m.GetJSContextParameter(); + auto input = m.Parameter<Object>(1); + m.Return(m.ToUint32(context, input)); + } FunctionTester ft(asm_tester.GenerateCode(), kNumParams); // clang-format off @@ -275,7 +275,7 @@ TEST(ToUint32) { namespace { void IsValidPositiveSmiCase(Isolate* isolate, intptr_t value) { const int kNumParams = 0; - CodeAssemblerTester asm_tester(isolate, kNumParams); + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumParams)); CodeStubAssembler m(asm_tester.state()); m.Return( @@ -320,7 +320,7 @@ TEST(ConvertAndClampRelativeIndex) { Isolate* isolate(CcTest::InitIsolateOnce()); const int kNumParams = 3; - CodeAssemblerTester asm_tester(isolate, kNumParams + 1); // Include receiver. + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumParams)); CodeStubAssembler m(asm_tester.state()); enum Result { kFound, kNotFound }; @@ -470,7 +470,7 @@ TEST(DecodeWordFromWord32) { TEST(JSFunction) { const int kNumParams = 2; // left, right. Isolate* isolate(CcTest::InitIsolateOnce()); - CodeAssemblerTester asm_tester(isolate, kNumParams + 1); // Include receiver. + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumParams)); CodeStubAssembler m(asm_tester.state()); m.Return(m.SmiFromInt32(m.Int32Add(m.SmiToInt32(m.Parameter<Smi>(1)), m.SmiToInt32(m.Parameter<Smi>(2))))); @@ -485,7 +485,7 @@ TEST(JSFunction) { TEST(ComputeIntegerHash) { Isolate* isolate(CcTest::InitIsolateOnce()); const int kNumParams = 1; - CodeAssemblerTester asm_tester(isolate, kNumParams + 1); // Include receiver. + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumParams)); CodeStubAssembler m(asm_tester.state()); m.Return(m.SmiFromInt32(m.UncheckedCast<Int32T>( @@ -510,10 +510,9 @@ TEST(ComputeIntegerHash) { TEST(ToString) { Isolate* isolate(CcTest::InitIsolateOnce()); const int kNumParams = 1; - CodeAssemblerTester asm_tester(isolate, kNumParams + 1); // Include receiver. + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumParams)); CodeStubAssembler m(asm_tester.state()); - m.Return(m.ToStringImpl(m.Parameter<Context>(kNumParams + 3), - m.Parameter<Object>(1))); + m.Return(m.ToStringImpl(m.GetJSContextParameter(), m.Parameter<Object>(1))); FunctionTester ft(asm_tester.GenerateCode(), kNumParams); @@ -569,7 +568,7 @@ TEST(TryToName) { Isolate* isolate(CcTest::InitIsolateOnce()); const int kNumParams = 3; - CodeAssemblerTester asm_tester(isolate, kNumParams + 1); // Include receiver. + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumParams)); CodeStubAssembler m(asm_tester.state()); enum Result { kKeyIsIndex, kKeyIsUnique, kBailout }; @@ -792,7 +791,7 @@ void TestEntryToIndex() { Isolate* isolate(CcTest::InitIsolateOnce()); const int kNumParams = 1; - CodeAssemblerTester asm_tester(isolate, kNumParams + 1); // Include receiver. + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumParams)); CodeStubAssembler m(asm_tester.state()); { TNode<IntPtrT> entry = m.SmiUntag(m.Parameter<Smi>(1)); @@ -824,7 +823,7 @@ void TestNameDictionaryLookup() { Isolate* isolate(CcTest::InitIsolateOnce()); const int kNumParams = 4; - CodeAssemblerTester asm_tester(isolate, kNumParams + 1); // Include receiver. + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumParams)); CodeStubAssembler m(asm_tester.state()); enum Result { kFound, kNotFound }; @@ -928,7 +927,7 @@ TEST(NumberDictionaryLookup) { Isolate* isolate(CcTest::InitIsolateOnce()); const int kNumParams = 4; - CodeAssemblerTester asm_tester(isolate, kNumParams + 1); // Include receiver. + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumParams)); CodeStubAssembler m(asm_tester.state()); enum Result { kFound, kNotFound }; @@ -1013,7 +1012,7 @@ TEST(TransitionLookup) { Isolate* isolate(CcTest::InitIsolateOnce()); const int kNumParams = 4; - CodeAssemblerTester asm_tester(isolate, kNumParams + 1); // Include receiver. + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumParams)); enum Result { kFound, kNotFound }; @@ -1192,7 +1191,7 @@ TEST(TryHasOwnProperty) { Isolate* isolate(CcTest::InitIsolateOnce()); const int kNumParams = 3; - CodeAssemblerTester asm_tester(isolate, kNumParams + 1); // Include receiver. + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumParams)); CodeStubAssembler m(asm_tester.state()); enum Result { kFound, kNotFound, kBailout }; @@ -1384,7 +1383,7 @@ TEST(TryGetOwnProperty) { Factory* factory = isolate->factory(); const int kNumParams = 2; - CodeAssemblerTester asm_tester(isolate, kNumParams + 1); // Include receiver. + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumParams)); CodeStubAssembler m(asm_tester.state()); Handle<Symbol> not_found_symbol = factory->NewSymbol(); @@ -1392,7 +1391,7 @@ TEST(TryGetOwnProperty) { { auto object = m.Parameter<JSReceiver>(1); auto unique_name = m.Parameter<Name>(2); - auto context = m.Parameter<Context>(kNumParams + 3); + auto context = m.GetJSContextParameter(); TVariable<Object> var_value(&m); Label if_found(&m), if_not_found(&m), if_bailout(&m); @@ -1605,7 +1604,7 @@ TEST(TryLookupElement) { Isolate* isolate(CcTest::InitIsolateOnce()); const int kNumParams = 3; - CodeAssemblerTester asm_tester(isolate, kNumParams + 1); // Include receiver. + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumParams)); CodeStubAssembler m(asm_tester.state()); enum Result { kFound, kAbsent, kNotFound, kBailout }; @@ -1835,7 +1834,7 @@ TEST(AllocateJSObjectFromMap) { Factory* factory = isolate->factory(); const int kNumParams = 3; - CodeAssemblerTester asm_tester(isolate, kNumParams + 1); // Include receiver. + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumParams)); CodeStubAssembler m(asm_tester.state()); { @@ -1917,8 +1916,8 @@ TEST(AllocationFoldingCSA) { const int kNumParams = 1; const int kNumArrays = 7; - CodeAssemblerTester asm_tester(isolate, kNumParams + 1, - CodeKind::FOR_TESTING); // Include receiver. + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumParams), + CodeKind::FOR_TESTING); CodeStubAssembler m(asm_tester.state()); { @@ -1986,7 +1985,7 @@ void TestDictionaryAllocation(CSAAllocator<Dictionary> csa_alloc, Isolate* isolate(CcTest::InitIsolateOnce()); const int kNumParams = 1; - CodeAssemblerTester asm_tester(isolate, kNumParams + 1); // Include receiver. + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumParams)); CodeStubAssembler m(asm_tester.state()); { @@ -2060,10 +2059,10 @@ TEST(PopAndReturnFromJSBuiltinWithStackParameters) { Isolate* isolate(CcTest::InitIsolateOnce()); const int kNumStackParams = 1; - CodeAssemblerTester asm_tester(isolate, kNumStackParams); + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumStackParams)); { CodeStubAssembler m(asm_tester.state()); - m.PopAndReturn(m.SmiUntag(m.Parameter<Smi>(0)), + m.PopAndReturn(m.SmiUntag(m.Parameter<Smi>(1)), m.SmiConstant(Smi::FromInt(1234))); } @@ -2149,7 +2148,8 @@ void CallFunctionWithStackPointerChecks(Isolate* isolate, CSA_CHECK( &m, m.TaggedEqual(result, MakeConstantNode(m, expected_result))); }, - 1, CodeStubAssembler::IndexAdvanceMode::kPost); + 1, CodeStubAssembler::LoopUnrollingMode::kNo, + CodeStubAssembler::IndexAdvanceMode::kPost); #ifdef V8_CC_GNU TNode<WordT> stack_pointer1 = @@ -2158,7 +2158,7 @@ void CallFunctionWithStackPointerChecks(Isolate* isolate, #endif m.Return(m.SmiConstant(42)); } - FunctionTester ft(asm_tester.GenerateCode(), 1); // Include receiver. + FunctionTester ft(asm_tester.GenerateCode(), 1); Handle<Object> result; for (int test_count = 0; test_count < 100; ++test_count) { @@ -2241,7 +2241,7 @@ TEST(OneToTwoByteStringCopy) { Isolate* isolate(CcTest::InitIsolateOnce()); const int kNumParams = 2; - CodeAssemblerTester asm_tester(isolate, kNumParams + 1); // Include receiver. + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumParams)); StringBuiltinsAssembler m(asm_tester.state()); m.CopyStringCharacters<String>(m.Parameter<String>(1), m.Parameter<String>(2), @@ -2274,7 +2274,7 @@ TEST(OneToOneByteStringCopy) { Isolate* isolate(CcTest::InitIsolateOnce()); const int kNumParams = 2; - CodeAssemblerTester asm_tester(isolate, kNumParams + 1); // Include receiver. + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumParams)); StringBuiltinsAssembler m(asm_tester.state()); m.CopyStringCharacters<String>(m.Parameter<String>(1), m.Parameter<String>(2), @@ -2307,7 +2307,7 @@ TEST(OneToOneByteStringCopyNonZeroStart) { Isolate* isolate(CcTest::InitIsolateOnce()); const int kNumParams = 2; - CodeAssemblerTester asm_tester(isolate, kNumParams + 1); // Include receiver. + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumParams)); StringBuiltinsAssembler m(asm_tester.state()); m.CopyStringCharacters<String>(m.Parameter<String>(1), m.Parameter<String>(2), @@ -2337,7 +2337,7 @@ TEST(TwoToTwoByteStringCopy) { Isolate* isolate(CcTest::InitIsolateOnce()); const int kNumParams = 2; - CodeAssemblerTester asm_tester(isolate, kNumParams + 1); // Include receiver. + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumParams)); StringBuiltinsAssembler m(asm_tester.state()); m.CopyStringCharacters<String>(m.Parameter<String>(1), m.Parameter<String>(2), @@ -2479,7 +2479,7 @@ TEST(IsDebugActive) { Isolate* isolate(CcTest::InitIsolateOnce()); const int kNumParams = 0; - CodeAssemblerTester asm_tester(isolate, kNumParams + 1); // Include receiver. + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumParams)); CodeStubAssembler m(asm_tester.state()); Label if_active(&m), if_not_active(&m); @@ -2545,14 +2545,13 @@ TEST(CallBuiltin) { Isolate* isolate(CcTest::InitIsolateOnce()); const int kNumParams = 2; - CodeAssemblerTester asm_tester(isolate, - kNumParams + 1); // Include receiver. + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumParams)); PromiseBuiltinsAssembler m(asm_tester.state()); { auto receiver = m.Parameter<Object>(1); auto name = m.Parameter<Name>(2); - auto context = m.Parameter<Context>(kNumParams + 3); + auto context = m.GetJSContextParameter(); auto value = m.CallBuiltin(Builtin::kGetProperty, context, receiver, name); m.Return(value); @@ -2574,14 +2573,13 @@ TEST(TailCallBuiltin) { Isolate* isolate(CcTest::InitIsolateOnce()); const int kNumParams = 2; - CodeAssemblerTester asm_tester(isolate, - kNumParams + 1); // Include receiver. + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumParams)); PromiseBuiltinsAssembler m(asm_tester.state()); { auto receiver = m.Parameter<Object>(1); auto name = m.Parameter<Name>(2); - auto context = m.Parameter<Context>(kNumParams + 3); + auto context = m.GetJSContextParameter(); m.TailCallBuiltin(Builtin::kGetProperty, context, receiver, name); } @@ -2651,7 +2649,7 @@ class AppendJSArrayCodeStubAssembler : public CodeStubAssembler { static void TestAppendJSArray(Isolate* isolate, ElementsKind kind, Object o1, Object o2, Object o3, Object o4, int initial_size, int result_size) { - CodeAssemblerTester asm_tester(isolate, kNumParams); + CodeAssemblerTester asm_tester(isolate, i::JSParameterCount(kNumParams)); AppendJSArrayCodeStubAssembler m(asm_tester.state(), kind); m.TestAppendJSArrayImpl( isolate, &asm_tester, Handle<Object>(o1, isolate), @@ -2745,7 +2743,7 @@ TEST(IsPromiseHookEnabled) { Isolate* isolate(CcTest::InitIsolateOnce()); const int kNumParams = 1; - CodeAssemblerTester asm_tester(isolate, kNumParams); + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumParams)); CodeStubAssembler m(asm_tester.state()); m.Return( @@ -2770,10 +2768,10 @@ TEST(NewJSPromise) { Isolate* isolate(CcTest::InitIsolateOnce()); const int kNumParams = 1; - CodeAssemblerTester asm_tester(isolate, kNumParams); + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumParams)); PromiseBuiltinsAssembler m(asm_tester.state()); - auto context = m.Parameter<Context>(kNumParams + 2); + auto context = m.GetJSContextParameter(); const TNode<JSPromise> promise = m.NewJSPromise(context); m.Return(promise); @@ -2787,10 +2785,10 @@ TEST(NewJSPromise2) { Isolate* isolate(CcTest::InitIsolateOnce()); const int kNumParams = 1; - CodeAssemblerTester asm_tester(isolate, kNumParams); + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumParams)); PromiseBuiltinsAssembler m(asm_tester.state()); - auto context = m.Parameter<Context>(kNumParams + 2); + auto context = m.GetJSContextParameter(); const TNode<JSPromise> promise = m.NewJSPromise(context, v8::Promise::kRejected, m.SmiConstant(1)); m.Return(promise); @@ -2809,7 +2807,7 @@ TEST(IsSymbol) { Isolate* isolate(CcTest::InitIsolateOnce()); const int kNumParams = 1; - CodeAssemblerTester asm_tester(isolate, kNumParams + 1); // Include receiver. + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumParams)); CodeStubAssembler m(asm_tester.state()); auto symbol = m.Parameter<HeapObject>(1); @@ -2828,7 +2826,7 @@ TEST(IsPrivateSymbol) { Isolate* isolate(CcTest::InitIsolateOnce()); const int kNumParams = 1; - CodeAssemblerTester asm_tester(isolate, kNumParams + 1); // Include receiver. + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumParams)); CodeStubAssembler m(asm_tester.state()); auto symbol = m.Parameter<HeapObject>(1); @@ -2850,10 +2848,10 @@ TEST(PromiseHasHandler) { Isolate* isolate(CcTest::InitIsolateOnce()); const int kNumParams = 1; - CodeAssemblerTester asm_tester(isolate, kNumParams); + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumParams)); PromiseBuiltinsAssembler m(asm_tester.state()); - auto context = m.Parameter<Context>(kNumParams + 2); + auto context = m.GetJSContextParameter(); const TNode<JSPromise> promise = m.NewJSPromise(context, m.UndefinedConstant()); m.Return(m.SelectBooleanConstant(m.PromiseHasHandler(promise))); @@ -2868,10 +2866,10 @@ TEST(CreatePromiseResolvingFunctionsContext) { Isolate* isolate(CcTest::InitIsolateOnce()); const int kNumParams = 0; - CodeAssemblerTester asm_tester(isolate, kNumParams + 1); // Include receiver. + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumParams)); PromiseBuiltinsAssembler m(asm_tester.state()); - const auto context = m.Parameter<Context>(kNumParams + 3); + auto context = m.GetJSContextParameter(); const TNode<NativeContext> native_context = m.LoadNativeContext(context); const TNode<JSPromise> promise = m.NewJSPromise(context, m.UndefinedConstant()); @@ -2895,10 +2893,10 @@ TEST(CreatePromiseResolvingFunctions) { Isolate* isolate(CcTest::InitIsolateOnce()); const int kNumParams = 1; - CodeAssemblerTester asm_tester(isolate, kNumParams); + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumParams)); PromiseBuiltinsAssembler m(asm_tester.state()); - auto context = m.Parameter<Context>(kNumParams + 2); + auto context = m.GetJSContextParameter(); const TNode<NativeContext> native_context = m.LoadNativeContext(context); const TNode<JSPromise> promise = m.NewJSPromise(context, m.UndefinedConstant()); @@ -2924,12 +2922,13 @@ TEST(CreatePromiseResolvingFunctions) { TEST(NewElementsCapacity) { Isolate* isolate(CcTest::InitIsolateOnce()); - CodeAssemblerTester asm_tester(isolate, 2); + const int kNumParams = 1; + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumParams)); CodeStubAssembler m(asm_tester.state()); m.Return(m.SmiTag( m.CalculateNewElementsCapacity(m.SmiUntag(m.Parameter<Smi>(1))))); - FunctionTester ft(asm_tester.GenerateCode(), 1); + FunctionTester ft(asm_tester.GenerateCode(), kNumParams); Handle<Smi> test_value = Handle<Smi>(Smi::FromInt(1), isolate); Handle<Smi> result_obj = ft.CallChecked<Smi>(test_value); CHECK_EQ( @@ -2954,11 +2953,12 @@ TEST(NewElementsCapacity) { TEST(NewElementsCapacitySmi) { Isolate* isolate(CcTest::InitIsolateOnce()); - CodeAssemblerTester asm_tester(isolate, 2); + const int kNumParams = 1; + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumParams)); CodeStubAssembler m(asm_tester.state()); m.Return(m.CalculateNewElementsCapacity(m.UncheckedParameter<Smi>(1))); - FunctionTester ft(asm_tester.GenerateCode(), 1); + FunctionTester ft(asm_tester.GenerateCode(), kNumParams); Handle<Smi> test_value = Handle<Smi>(Smi::FromInt(0), isolate); Handle<Smi> result_obj = ft.CallChecked<Smi>(test_value); CHECK_EQ( @@ -2985,10 +2985,10 @@ TEST(AllocateFunctionWithMapAndContext) { Isolate* isolate(CcTest::InitIsolateOnce()); const int kNumParams = 1; - CodeAssemblerTester asm_tester(isolate, kNumParams); + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumParams)); PromiseBuiltinsAssembler m(asm_tester.state()); - const auto context = m.Parameter<Context>(kNumParams + 2); + const auto context = m.GetJSContextParameter(); const TNode<NativeContext> native_context = m.LoadNativeContext(context); const TNode<JSPromise> promise = m.NewJSPromise(context, m.UndefinedConstant()); @@ -3016,7 +3016,7 @@ TEST(AllocateFunctionWithMapAndContext) { fun->shared()); CHECK_EQ(isolate->factory() ->promise_capability_default_resolve_shared_fun() - ->GetCode(), + ->GetCode(isolate), fun->code()); } @@ -3024,10 +3024,10 @@ TEST(CreatePromiseGetCapabilitiesExecutorContext) { Isolate* isolate(CcTest::InitIsolateOnce()); const int kNumParams = 1; - CodeAssemblerTester asm_tester(isolate, kNumParams); + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumParams)); PromiseBuiltinsAssembler m(asm_tester.state()); - auto context = m.Parameter<Context>(kNumParams + 2); + auto context = m.GetJSContextParameter(); TNode<NativeContext> native_context = m.LoadNativeContext(context); TNode<PromiseCapability> capability = m.CreatePromiseCapability( @@ -3053,11 +3053,10 @@ TEST(NewPromiseCapability) { { // Builtin Promise const int kNumParams = 0; - CodeAssemblerTester asm_tester(isolate, - kNumParams + 1); // Include receiver. + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumParams)); PromiseBuiltinsAssembler m(asm_tester.state()); - auto context = m.Parameter<Context>(kNumParams + 3); + auto context = m.GetJSContextParameter(); const TNode<NativeContext> native_context = m.LoadNativeContext(context); const TNode<Object> promise_constructor = m.LoadContextElement(native_context, Context::PROMISE_FUNCTION_INDEX); @@ -3104,11 +3103,10 @@ TEST(NewPromiseCapability) { { // Custom Promise const int kNumParams = 1; - CodeAssemblerTester asm_tester(isolate, - kNumParams + 1); // Include receiver. + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumParams)); PromiseBuiltinsAssembler m(asm_tester.state()); - auto context = m.Parameter<Context>(kNumParams + 3); + auto context = m.GetJSContextParameter(); auto constructor = m.Parameter<Object>(1); const TNode<Oddball> debug_event = m.TrueConstant(); @@ -3170,7 +3168,7 @@ TEST(DirectMemoryTest8BitWord32Immediate) { Isolate* isolate(CcTest::InitIsolateOnce()); const int kNumParams = 0; - CodeAssemblerTester asm_tester(isolate, kNumParams); + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumParams)); CodeStubAssembler m(asm_tester.state()); int8_t buffer[] = {1, 2, 4, 8, 17, 33, 65, 127}; const int element_count = 8; @@ -3202,7 +3200,7 @@ TEST(DirectMemoryTest8BitWord32Immediate) { TEST(DirectMemoryTest16BitWord32Immediate) { Isolate* isolate(CcTest::InitIsolateOnce()); const int kNumParams = 0; - CodeAssemblerTester asm_tester(isolate, kNumParams); + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumParams)); CodeStubAssembler m(asm_tester.state()); int16_t buffer[] = {156, 2234, 4544, 8444, 1723, 3888, 658, 1278}; const int element_count = 8; @@ -3234,7 +3232,7 @@ TEST(DirectMemoryTest16BitWord32Immediate) { TEST(DirectMemoryTest8BitWord32) { Isolate* isolate(CcTest::InitIsolateOnce()); const int kNumParams = 0; - CodeAssemblerTester asm_tester(isolate, kNumParams); + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumParams)); CodeStubAssembler m(asm_tester.state()); int8_t buffer[] = {1, 2, 4, 8, 17, 33, 65, 127, 67, 38}; const int element_count = 10; @@ -3278,7 +3276,7 @@ TEST(DirectMemoryTest8BitWord32) { TEST(DirectMemoryTest16BitWord32) { Isolate* isolate(CcTest::InitIsolateOnce()); const int kNumParams = 0; - CodeAssemblerTester asm_tester(isolate, kNumParams); + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumParams)); CodeStubAssembler m(asm_tester.state()); int16_t buffer[] = {1, 2, 4, 8, 12345, 33, 65, 255, 67, 3823}; const int element_count = 10; @@ -3334,10 +3332,10 @@ TEST(DirectMemoryTest16BitWord32) { TEST(LoadJSArrayElementsMap) { Isolate* isolate(CcTest::InitIsolateOnce()); const int kNumParams = 1; - CodeAssemblerTester asm_tester(isolate, kNumParams + 1); // Include receiver. + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumParams)); { CodeStubAssembler m(asm_tester.state()); - auto context = m.Parameter<Context>(kNumParams + 3); + auto context = m.GetJSContextParameter(); TNode<NativeContext> native_context = m.LoadNativeContext(context); TNode<Int32T> kind = m.SmiToInt32(m.Parameter<Smi>(1)); m.Return(m.LoadJSArrayElementsMap(kind, native_context)); @@ -3359,7 +3357,7 @@ TEST(IsWhiteSpaceOrLineTerminator) { Isolate* isolate(CcTest::InitIsolateOnce()); const int kNumParams = 1; - CodeAssemblerTester asm_tester(isolate, kNumParams + 1); // Include receiver. + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumParams)); { // Returns true if whitespace, false otherwise. CodeStubAssembler m(asm_tester.state()); @@ -3388,7 +3386,7 @@ TEST(BranchIfNumberRelationalComparison) { Isolate* isolate(CcTest::InitIsolateOnce()); Factory* f = isolate->factory(); const int kNumParams = 2; - CodeAssemblerTester asm_tester(isolate, kNumParams + 1); // Include receiver. + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumParams)); { CodeStubAssembler m(asm_tester.state()); Label return_true(&m), return_false(&m); @@ -3418,7 +3416,7 @@ TEST(BranchIfNumberRelationalComparison) { TEST(IsNumberArrayIndex) { Isolate* isolate(CcTest::InitIsolateOnce()); const int kNumParams = 1; - CodeAssemblerTester asm_tester(isolate, kNumParams + 1); // Include receiver. + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumParams)); { CodeStubAssembler m(asm_tester.state()); auto number = m.Parameter<Number>(1); @@ -3466,16 +3464,14 @@ TEST(IsNumberArrayIndex) { TEST(NumberMinMax) { Isolate* isolate(CcTest::InitIsolateOnce()); const int kNumParams = 2; - CodeAssemblerTester asm_tester_min(isolate, - kNumParams + 1); // Include receiver. + CodeAssemblerTester asm_tester_min(isolate, JSParameterCount(kNumParams)); { CodeStubAssembler m(asm_tester_min.state()); m.Return(m.NumberMin(m.Parameter<Number>(1), m.Parameter<Number>(2))); } FunctionTester ft_min(asm_tester_min.GenerateCode(), kNumParams); - CodeAssemblerTester asm_tester_max(isolate, - kNumParams + 1); // Include receiver. + CodeAssemblerTester asm_tester_max(isolate, JSParameterCount(kNumParams)); { CodeStubAssembler m(asm_tester_max.state()); m.Return(m.NumberMax(m.Parameter<Number>(1), m.Parameter<Number>(2))); @@ -3524,16 +3520,14 @@ TEST(NumberMinMax) { TEST(NumberAddSub) { Isolate* isolate(CcTest::InitIsolateOnce()); const int kNumParams = 2; - CodeAssemblerTester asm_tester_add(isolate, - kNumParams + 1); // Include receiver. + CodeAssemblerTester asm_tester_add(isolate, JSParameterCount(kNumParams)); { CodeStubAssembler m(asm_tester_add.state()); m.Return(m.NumberAdd(m.Parameter<Number>(1), m.Parameter<Number>(2))); } FunctionTester ft_add(asm_tester_add.GenerateCode(), kNumParams); - CodeAssemblerTester asm_tester_sub(isolate, - kNumParams + 1); // Include receiver. + CodeAssemblerTester asm_tester_sub(isolate, JSParameterCount(kNumParams)); { CodeStubAssembler m(asm_tester_sub.state()); m.Return(m.NumberSub(m.Parameter<Number>(1), m.Parameter<Number>(2))); @@ -3570,7 +3564,7 @@ TEST(NumberAddSub) { TEST(CloneEmptyFixedArray) { Isolate* isolate(CcTest::InitIsolateOnce()); const int kNumParams = 1; - CodeAssemblerTester asm_tester(isolate, kNumParams + 1); // Include receiver. + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumParams)); { CodeStubAssembler m(asm_tester.state()); m.Return(m.CloneFixedArray(m.Parameter<FixedArrayBase>(1))); @@ -3587,7 +3581,7 @@ TEST(CloneEmptyFixedArray) { TEST(CloneFixedArray) { Isolate* isolate(CcTest::InitIsolateOnce()); const int kNumParams = 1; - CodeAssemblerTester asm_tester(isolate, kNumParams + 1); // Include receiver. + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumParams)); { CodeStubAssembler m(asm_tester.state()); m.Return(m.CloneFixedArray(m.Parameter<FixedArrayBase>(1))); @@ -3609,7 +3603,7 @@ TEST(CloneFixedArray) { TEST(CloneFixedArrayCOW) { Isolate* isolate(CcTest::InitIsolateOnce()); const int kNumParams = 1; - CodeAssemblerTester asm_tester(isolate, kNumParams + 1); // Include receiver. + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumParams)); { CodeStubAssembler m(asm_tester.state()); m.Return(m.CloneFixedArray(m.Parameter<FixedArrayBase>(1))); @@ -3627,7 +3621,7 @@ TEST(CloneFixedArrayCOW) { TEST(ExtractFixedArrayCOWForceCopy) { Isolate* isolate(CcTest::InitIsolateOnce()); const int kNumParams = 1; - CodeAssemblerTester asm_tester(isolate, kNumParams + 1); // Include receiver. + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumParams)); { CodeStubAssembler m(asm_tester.state()); CodeStubAssembler::ExtractFixedArrayFlags flags; @@ -3657,7 +3651,7 @@ TEST(ExtractFixedArrayCOWForceCopy) { TEST(ExtractFixedArraySimple) { Isolate* isolate(CcTest::InitIsolateOnce()); const int kNumParams = 3; - CodeAssemblerTester asm_tester(isolate, kNumParams + 1); // Include receiver. + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumParams)); { CodeStubAssembler m(asm_tester.state()); CodeStubAssembler::ExtractFixedArrayFlags flags; @@ -3686,7 +3680,7 @@ TEST(ExtractFixedArraySimple) { TEST(ExtractFixedArraySimpleSmiConstant) { Isolate* isolate(CcTest::InitIsolateOnce()); const int kNumParams = 1; - CodeAssemblerTester asm_tester(isolate, kNumParams + 1); // Include receiver. + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumParams)); { CodeStubAssembler m(asm_tester.state()); CodeStubAssembler::ExtractFixedArrayFlags flags; @@ -3712,7 +3706,7 @@ TEST(ExtractFixedArraySimpleSmiConstant) { TEST(ExtractFixedArraySimpleIntPtrConstant) { Isolate* isolate(CcTest::InitIsolateOnce()); const int kNumParams = 1; - CodeAssemblerTester asm_tester(isolate, kNumParams + 1); // Include receiver. + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumParams)); { CodeStubAssembler m(asm_tester.state()); CodeStubAssembler::ExtractFixedArrayFlags flags; @@ -3738,7 +3732,7 @@ TEST(ExtractFixedArraySimpleIntPtrConstant) { TEST(ExtractFixedArraySimpleIntPtrConstantNoDoubles) { Isolate* isolate(CcTest::InitIsolateOnce()); const int kNumParams = 1; - CodeAssemblerTester asm_tester(isolate, kNumParams + 1); // Include receiver. + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumParams)); { CodeStubAssembler m(asm_tester.state()); base::Optional<TNode<IntPtrT>> constant_1(m.IntPtrConstant(1)); @@ -3762,7 +3756,7 @@ TEST(ExtractFixedArraySimpleIntPtrConstantNoDoubles) { TEST(ExtractFixedArraySimpleIntPtrParameters) { Isolate* isolate(CcTest::InitIsolateOnce()); const int kNumParams = 3; - CodeAssemblerTester asm_tester(isolate, kNumParams + 1); // Include receiver. + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumParams)); { CodeStubAssembler m(asm_tester.state()); base::Optional<TNode<IntPtrT>> p1_untagged(m.SmiUntag(m.Parameter<Smi>(2))); @@ -3803,7 +3797,7 @@ TEST(ExtractFixedArraySimpleIntPtrParameters) { TEST(SingleInputPhiElimination) { Isolate* isolate(CcTest::InitIsolateOnce()); const int kNumParams = 2; - CodeAssemblerTester asm_tester(isolate, kNumParams); + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumParams)); { CodeStubAssembler m(asm_tester.state()); TVariable<Smi> temp1(&m); @@ -3812,8 +3806,7 @@ TEST(SingleInputPhiElimination) { Label end_label(&m, {&temp1, &temp2}); temp1 = m.Parameter<Smi>(1); temp2 = m.Parameter<Smi>(1); - m.Branch(m.TaggedEqual(m.UncheckedParameter<Object>(0), - m.UncheckedParameter<Object>(1)), + m.Branch(m.TaggedEqual(m.Parameter<Object>(0), m.Parameter<Object>(1)), &end_label, &temp_label); m.BIND(&temp_label); temp1 = m.Parameter<Smi>(2); @@ -3830,7 +3823,7 @@ TEST(SingleInputPhiElimination) { TEST(SmallOrderedHashMapAllocate) { Isolate* isolate(CcTest::InitIsolateOnce()); const int kNumParams = 1; - CodeAssemblerTester asm_tester(isolate, kNumParams + 1); // Include receiver. + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumParams)); { CodeStubAssembler m(asm_tester.state()); auto capacity = m.Parameter<Smi>(1); @@ -3868,7 +3861,7 @@ TEST(SmallOrderedHashMapAllocate) { TEST(SmallOrderedHashSetAllocate) { Isolate* isolate(CcTest::InitIsolateOnce()); const int kNumParams = 1; - CodeAssemblerTester asm_tester(isolate, kNumParams + 1); // Include receiver. + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumParams)); { CodeStubAssembler m(asm_tester.state()); auto capacity = m.Parameter<Smi>(1); @@ -3906,7 +3899,7 @@ TEST(SmallOrderedHashSetAllocate) { TEST(IsDoubleElementsKind) { Isolate* isolate(CcTest::InitIsolateOnce()); const int kNumParams = 2; - CodeAssemblerTester ft_tester(isolate, kNumParams + 1); // Include receiver. + CodeAssemblerTester ft_tester(isolate, JSParameterCount(kNumParams)); { CodeStubAssembler m(ft_tester.state()); m.Return(m.SmiFromInt32(m.UncheckedCast<Int32T>( @@ -3952,22 +3945,39 @@ TEST(IsDoubleElementsKind) { 0); } -TEST(TestCallBuiltinAbsolute) { +namespace { + +enum CallJumpMode { kCall, kTailCall }; + +void TestCallJumpBuiltin(CallJumpMode mode, + BuiltinCallJumpMode builtin_call_jump_mode) { Isolate* isolate(CcTest::InitIsolateOnce()); + if (builtin_call_jump_mode == BuiltinCallJumpMode::kPCRelative && + !isolate->is_short_builtin_calls_enabled()) { + // PC-relative mode requires short builtin calls to be enabled. + return; + } + const int kNumParams = 1; - CodeAssemblerTester asm_tester(isolate, kNumParams + 1); // Include receiver. + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumParams)); CodeStubAssembler m(asm_tester.state()); - const int kContextOffset = 3; - auto str = m.Parameter<String>(1); - auto context = m.Parameter<Context>(kNumParams + kContextOffset); + { + auto str = m.Parameter<String>(1); + auto context = m.GetJSContextParameter(); - TNode<Smi> index = m.SmiConstant(2); + TNode<Smi> index = m.SmiConstant(2); - m.Return(m.CallStub(Builtins::CallableFor(isolate, Builtin::kStringRepeat), - context, str, index)); + Callable callable = Builtins::CallableFor(isolate, Builtin::kStringRepeat); + if (mode == kCall) { + m.Return(m.CallStub(callable, context, str, index)); + } else { + DCHECK_EQ(mode, kTailCall); + m.TailCallStub(callable, context, str, index); + } + } AssemblerOptions options = AssemblerOptions::Default(isolate); - options.builtin_call_jump_mode = BuiltinCallJumpMode::kAbsolute; + options.builtin_call_jump_mode = builtin_call_jump_mode; options.isolate_independent_code = false; FunctionTester ft(asm_tester.GenerateCode(options), kNumParams); MaybeHandle<Object> result = ft.Call(CcTest::MakeString("abcdef")); @@ -3975,54 +3985,30 @@ TEST(TestCallBuiltinAbsolute) { Handle<String>::cast(result.ToHandleChecked()))); } -DISABLED_TEST(TestCallBuiltinPCRelative) { - Isolate* isolate(CcTest::InitIsolateOnce()); - if (!isolate->is_short_builtin_calls_enabled()) return; - - const int kNumParams = 1; - CodeAssemblerTester asm_tester(isolate, kNumParams); - CodeStubAssembler m(asm_tester.state()); - - const int kContextOffset = 2; - auto str = m.Parameter<String>(0); - auto context = m.Parameter<Context>(kNumParams + kContextOffset); +} // namespace - TNode<Smi> index = m.SmiConstant(2); +TEST(TestCallBuiltinAbsolute) { + TestCallJumpBuiltin(kCall, BuiltinCallJumpMode::kAbsolute); +} - m.Return(m.CallStub(Builtins::CallableFor(isolate, Builtin::kStringRepeat), - context, str, index)); - AssemblerOptions options = AssemblerOptions::Default(isolate); - options.builtin_call_jump_mode = BuiltinCallJumpMode::kPCRelative; - options.isolate_independent_code = false; - FunctionTester ft(asm_tester.GenerateCode(options), kNumParams); - MaybeHandle<Object> result = ft.Call(CcTest::MakeString("abcdef")); - CHECK(String::Equals(isolate, CcTest::MakeString("abcdefabcdef"), - Handle<String>::cast(result.ToHandleChecked()))); +TEST(TestCallBuiltinPCRelative) { + TestCallJumpBuiltin(kCall, BuiltinCallJumpMode::kPCRelative); } -// TODO(v8:9821): Remove the option to disable inlining off-heap trampolines -// along with this test. -DISABLED_TEST(TestCallBuiltinIndirect) { - Isolate* isolate(CcTest::InitIsolateOnce()); - const int kNumParams = 1; - CodeAssemblerTester asm_tester(isolate, kNumParams); - CodeStubAssembler m(asm_tester.state()); +TEST(TestCallBuiltinIndirect) { + TestCallJumpBuiltin(kCall, BuiltinCallJumpMode::kIndirect); +} - const int kContextOffset = 2; - auto str = m.Parameter<String>(0); - auto context = m.Parameter<Context>(kNumParams + kContextOffset); +TEST(TestTailCallBuiltinAbsolute) { + TestCallJumpBuiltin(kTailCall, BuiltinCallJumpMode::kAbsolute); +} - TNode<Smi> index = m.SmiConstant(2); +TEST(TestTailCallBuiltinPCRelative) { + TestCallJumpBuiltin(kTailCall, BuiltinCallJumpMode::kPCRelative); +} - m.Return(m.CallStub(Builtins::CallableFor(isolate, Builtin::kStringRepeat), - context, str, index)); - AssemblerOptions options = AssemblerOptions::Default(isolate); - options.builtin_call_jump_mode = BuiltinCallJumpMode::kIndirect; - options.isolate_independent_code = true; - FunctionTester ft(asm_tester.GenerateCode(options), kNumParams); - MaybeHandle<Object> result = ft.Call(CcTest::MakeString("abcdef")); - CHECK(String::Equals(isolate, CcTest::MakeString("abcdefabcdef"), - Handle<String>::cast(result.ToHandleChecked()))); +TEST(TestTailCallBuiltinIndirect) { + TestCallJumpBuiltin(kTailCall, BuiltinCallJumpMode::kIndirect); } TEST(InstructionSchedulingCallerSavedRegisters) { @@ -4034,7 +4020,7 @@ TEST(InstructionSchedulingCallerSavedRegisters) { Isolate* isolate(CcTest::InitIsolateOnce()); const int kNumParams = 1; - CodeAssemblerTester asm_tester(isolate, kNumParams + 1); // Include receiver. + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumParams)); CodeStubAssembler m(asm_tester.state()); { @@ -4086,7 +4072,7 @@ TEST(WasmInt32ToHeapNumber) { const int kNumParams = 1; for (size_t i = 0; i < arraysize(test_values); ++i) { int32_t test_value = test_values[i]; - CodeAssemblerTester asm_tester(isolate, kNumParams); + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumParams)); CodeStubAssembler m(asm_tester.state()); const TNode<Int32T> arg = m.Int32Constant(test_value); const TNode<Object> call_result = m.CallBuiltin( @@ -4130,9 +4116,9 @@ TEST(WasmTaggedNonSmiToInt32) { }; const int kNumParams = 2; - CodeAssemblerTester asm_tester(isolate, kNumParams + 1); // Include receiver. + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumParams)); CodeStubAssembler m(asm_tester.state()); - auto context = m.Parameter<Context>(kNumParams + 3); + auto context = m.GetJSContextParameter(); const auto arg = m.Parameter<Object>(1); int32_t result = 0; Node* base = m.IntPtrConstant(reinterpret_cast<intptr_t>(&result)); @@ -4172,7 +4158,7 @@ TEST(WasmFloat32ToNumber) { const int kNumParams = 1; for (size_t i = 0; i < arraysize(test_values); ++i) { double test_value = test_values[i]; - CodeAssemblerTester asm_tester(isolate, kNumParams); + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumParams)); CodeStubAssembler m(asm_tester.state()); const TNode<Float32T> arg = m.Float32Constant(test_value); const TNode<Object> call_result = m.CallBuiltin( @@ -4212,7 +4198,7 @@ TEST(WasmFloat64ToNumber) { const int kNumParams = 1; for (size_t i = 0; i < arraysize(test_values); ++i) { double test_value = test_values[i]; - CodeAssemblerTester asm_tester(isolate, kNumParams); + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumParams)); CodeStubAssembler m(asm_tester.state()); const TNode<Float64T> arg = m.Float64Constant(test_value); const TNode<Object> call_result = m.CallBuiltin( @@ -4266,9 +4252,9 @@ TEST(WasmTaggedToFloat64) { }; const int kNumParams = 1; - CodeAssemblerTester asm_tester(isolate, kNumParams + 1); // Include receiver. + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumParams)); CodeStubAssembler m(asm_tester.state()); - auto context = m.Parameter<Context>(kNumParams + 3); + auto context = m.GetJSContextParameter(); const auto arg = m.Parameter<Object>(1); double result = 0; Node* base = m.IntPtrConstant(reinterpret_cast<intptr_t>(&result)); @@ -4294,7 +4280,7 @@ TEST(WasmTaggedToFloat64) { TEST(SmiUntagLeftShiftOptimization) { Isolate* isolate(CcTest::InitIsolateOnce()); const int kNumParams = 1; - CodeAssemblerTester asm_tester(isolate, kNumParams); + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumParams)); CodeStubAssembler m(asm_tester.state()); { @@ -4314,7 +4300,7 @@ TEST(SmiUntagLeftShiftOptimization) { TEST(SmiUntagComparisonOptimization) { Isolate* isolate(CcTest::InitIsolateOnce()); const int kNumParams = 2; - CodeAssemblerTester asm_tester(isolate, kNumParams); + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumParams)); CodeStubAssembler m(asm_tester.state()); { @@ -4421,7 +4407,7 @@ TEST(IntPtrMulHigh) { Isolate* isolate(CcTest::InitIsolateOnce()); const int kNumParams = 1; - CodeAssemblerTester asm_tester(isolate, kNumParams + 1); // Include receiver. + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumParams)); CodeStubAssembler m(asm_tester.state()); TNode<IntPtrT> a = m.IntPtrConstant(std::numeric_limits<intptr_t>::min()); @@ -4460,7 +4446,7 @@ TEST(UintPtrMulHigh) { Isolate* isolate(CcTest::InitIsolateOnce()); const int kNumParams = 1; - CodeAssemblerTester asm_tester(isolate, kNumParams + 1); // Include receiver. + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumParams)); CodeStubAssembler m(asm_tester.state()); TNode<IntPtrT> a = m.IntPtrConstant(std::numeric_limits<intptr_t>::min()); @@ -4505,8 +4491,7 @@ TEST(IntPtrMulWithOverflow) { const int kNumParams = 1; { - CodeAssemblerTester asm_tester(isolate, - kNumParams + 1); // Include receiver. + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumParams)); CodeStubAssembler m(asm_tester.state()); TNode<IntPtrT> a = m.IntPtrConstant(std::numeric_limits<intptr_t>::min()); @@ -4531,8 +4516,7 @@ TEST(IntPtrMulWithOverflow) { } { - CodeAssemblerTester asm_tester(isolate, - kNumParams + 1); // Include receiver. + CodeAssemblerTester asm_tester(isolate, JSParameterCount(kNumParams)); CodeStubAssembler m(asm_tester.state()); TNode<IntPtrT> a = m.IntPtrConstant(std::numeric_limits<intptr_t>::max()); |