| Index: test/cctest/interpreter/test-interpreter.cc
|
| diff --git a/test/cctest/interpreter/test-interpreter.cc b/test/cctest/interpreter/test-interpreter.cc
|
| index 32921cfb03c88710d1f67e166f121029271c3f95..69cf0e18bd48dfa507f248e563083519be77c5d0 100644
|
| --- a/test/cctest/interpreter/test-interpreter.cc
|
| +++ b/test/cctest/interpreter/test-interpreter.cc
|
| @@ -928,8 +928,7 @@
|
| CHECK_EQ(Smi::cast(*result), Smi::FromInt(999));
|
| }
|
|
|
| -static void TestInterpreterCall(TailCallMode tail_call_mode,
|
| - bool has_feedback_slot) {
|
| +static void TestInterpreterCall(TailCallMode tail_call_mode) {
|
| HandleAndZoneScope handles;
|
| i::Isolate* isolate = handles.main_isolate();
|
| i::Factory* factory = isolate->factory();
|
| @@ -937,15 +936,10 @@
|
|
|
| i::FeedbackVectorSpec feedback_spec(&zone);
|
| i::FeedbackVectorSlot slot = feedback_spec.AddLoadICSlot();
|
| - i::FeedbackVectorSlot call_slot = feedback_spec.AddCallICSlot();
|
|
|
| Handle<i::TypeFeedbackVector> vector =
|
| i::NewTypeFeedbackVector(isolate, &feedback_spec);
|
| int slot_index = vector->GetIndex(slot);
|
| - int call_slot_index = -1;
|
| - if (has_feedback_slot) {
|
| - call_slot_index = vector->GetIndex(call_slot);
|
| - }
|
|
|
| Handle<i::String> name = factory->NewStringFromAsciiChecked("func");
|
| name = factory->string_table()->LookupString(isolate, name);
|
| @@ -955,16 +949,9 @@
|
| BytecodeArrayBuilder builder(handles.main_isolate(), handles.main_zone(), 1,
|
| 0, 1);
|
| builder.LoadNamedProperty(builder.Parameter(0), name, slot_index)
|
| - .StoreAccumulatorInRegister(Register(0));
|
| -
|
| - if (has_feedback_slot) {
|
| - builder.CallIC(Register(0), builder.Parameter(0), 1, call_slot_index,
|
| - tail_call_mode);
|
| - } else {
|
| - builder.Call(Register(0), builder.Parameter(0), 1, tail_call_mode);
|
| - }
|
| -
|
| - builder.Return();
|
| + .StoreAccumulatorInRegister(Register(0))
|
| + .Call(Register(0), builder.Parameter(0), 1, 0, tail_call_mode)
|
| + .Return();
|
| Handle<BytecodeArray> bytecode_array = builder.ToBytecodeArray();
|
|
|
| InterpreterTester tester(handles.main_isolate(), bytecode_array, vector);
|
| @@ -981,14 +968,9 @@
|
| BytecodeArrayBuilder builder(handles.main_isolate(), handles.main_zone(), 1,
|
| 0, 1);
|
| builder.LoadNamedProperty(builder.Parameter(0), name, slot_index)
|
| - .StoreAccumulatorInRegister(Register(0));
|
| - if (has_feedback_slot) {
|
| - builder.CallIC(Register(0), builder.Parameter(0), 1, call_slot_index,
|
| - tail_call_mode);
|
| - } else {
|
| - builder.Call(Register(0), builder.Parameter(0), 1, tail_call_mode);
|
| - }
|
| - builder.Return();
|
| + .StoreAccumulatorInRegister(Register(0))
|
| + .Call(Register(0), builder.Parameter(0), 1, 0, tail_call_mode)
|
| + .Return();
|
| Handle<BytecodeArray> bytecode_array = builder.ToBytecodeArray();
|
|
|
| InterpreterTester tester(handles.main_isolate(), bytecode_array, vector);
|
| @@ -1014,17 +996,9 @@
|
| .LoadLiteral(Smi::FromInt(51))
|
| .StoreAccumulatorInRegister(Register(2))
|
| .LoadLiteral(Smi::FromInt(11))
|
| - .StoreAccumulatorInRegister(Register(3));
|
| -
|
| - if (has_feedback_slot) {
|
| - builder.CallIC(Register(0), Register(1), 3, call_slot_index,
|
| - tail_call_mode);
|
| - } else {
|
| - builder.Call(Register(0), Register(1), 3, tail_call_mode);
|
| - }
|
| -
|
| - builder.Return();
|
| -
|
| + .StoreAccumulatorInRegister(Register(3))
|
| + .Call(Register(0), Register(1), 3, 0, tail_call_mode)
|
| + .Return();
|
| Handle<BytecodeArray> bytecode_array = builder.ToBytecodeArray();
|
|
|
| InterpreterTester tester(handles.main_isolate(), bytecode_array, vector);
|
| @@ -1065,17 +1039,9 @@
|
| .LoadLiteral(factory->NewStringFromAsciiChecked("i"))
|
| .StoreAccumulatorInRegister(Register(10))
|
| .LoadLiteral(factory->NewStringFromAsciiChecked("j"))
|
| - .StoreAccumulatorInRegister(Register(11));
|
| -
|
| - if (has_feedback_slot) {
|
| - builder.CallIC(Register(0), Register(1), 11, call_slot_index,
|
| - tail_call_mode);
|
| - } else {
|
| - builder.Call(Register(0), Register(1), 11, tail_call_mode);
|
| - }
|
| -
|
| - builder.Return();
|
| -
|
| + .StoreAccumulatorInRegister(Register(11))
|
| + .Call(Register(0), Register(1), 11, 0, tail_call_mode)
|
| + .Return();
|
| Handle<BytecodeArray> bytecode_array = builder.ToBytecodeArray();
|
|
|
| InterpreterTester tester(handles.main_isolate(), bytecode_array, vector);
|
| @@ -1095,13 +1061,9 @@
|
| }
|
| }
|
|
|
| -TEST(InterpreterCall) { TestInterpreterCall(TailCallMode::kDisallow, false); }
|
| -
|
| -TEST(InterpreterTailCall) { TestInterpreterCall(TailCallMode::kAllow, false); }
|
| -
|
| -TEST(InterpreterCallIC) { TestInterpreterCall(TailCallMode::kDisallow, true); }
|
| -
|
| -TEST(InterpreterTailCallIC) { TestInterpreterCall(TailCallMode::kAllow, true); }
|
| +TEST(InterpreterCall) { TestInterpreterCall(TailCallMode::kDisallow); }
|
| +
|
| +TEST(InterpreterTailCall) { TestInterpreterCall(TailCallMode::kAllow); }
|
|
|
| static BytecodeArrayBuilder& SetRegister(BytecodeArrayBuilder& builder,
|
| Register reg, int value,
|
|
|