| Index: runtime/vm/stub_code_x64.cc
|
| diff --git a/runtime/vm/stub_code_x64.cc b/runtime/vm/stub_code_x64.cc
|
| index 0a6a8473d97263372aa129afd16840e76c3db6e9..8bf00feaa5a91796a33bd09bf3bb0d03e228940f 100644
|
| --- a/runtime/vm/stub_code_x64.cc
|
| +++ b/runtime/vm/stub_code_x64.cc
|
| @@ -1226,8 +1226,7 @@ void StubCode::GenerateUsageCounterIncrement(Assembler* assembler,
|
| static void EmitFastSmiOp(Assembler* assembler,
|
| Token::Kind kind,
|
| intptr_t num_args,
|
| - Label* not_smi_or_overflow,
|
| - bool should_update_result_range) {
|
| + Label* not_smi_or_overflow) {
|
| __ Comment("Fast Smi op");
|
| ASSERT(num_args == 2);
|
| __ movq(RCX, Address(RSP, + 1 * kWordSize)); // Right
|
| @@ -1261,14 +1260,6 @@ static void EmitFastSmiOp(Assembler* assembler,
|
| default: UNIMPLEMENTED();
|
| }
|
|
|
| -
|
| - if (should_update_result_range) {
|
| - Label done;
|
| - __ movq(RSI, RAX);
|
| - __ UpdateRangeFeedback(RSI, 2, RBX, RCX, &done);
|
| - __ Bind(&done);
|
| - }
|
| -
|
| // RBX: IC data object (preserved).
|
| __ movq(R13, FieldAddress(RBX, ICData::ic_data_offset()));
|
| // R13: ic_data_array with check entries: classes and target functions.
|
| @@ -1317,7 +1308,6 @@ void StubCode::GenerateNArgsCheckInlineCacheStub(
|
| intptr_t num_args,
|
| const RuntimeEntry& handle_ic_miss,
|
| Token::Kind kind,
|
| - RangeCollectionMode range_collection_mode,
|
| bool optimized) {
|
| ASSERT(num_args > 0);
|
| #if defined(DEBUG)
|
| @@ -1343,25 +1333,13 @@ void StubCode::GenerateNArgsCheckInlineCacheStub(
|
| __ Bind(&done_stepping);
|
| }
|
|
|
| - __ Comment("Range feedback collection");
|
| Label not_smi_or_overflow;
|
| - if (range_collection_mode == kCollectRanges) {
|
| - ASSERT((num_args == 1) || (num_args == 2));
|
| - if (num_args == 2) {
|
| - __ movq(RAX, Address(RSP, + 2 * kWordSize));
|
| - __ UpdateRangeFeedback(RAX, 0, RBX, RCX, ¬_smi_or_overflow);
|
| - }
|
| -
|
| - __ movq(RAX, Address(RSP, + 1 * kWordSize));
|
| - __ UpdateRangeFeedback(RAX, (num_args - 1), RBX, RCX, ¬_smi_or_overflow);
|
| - }
|
| if (kind != Token::kILLEGAL) {
|
| EmitFastSmiOp(
|
| assembler,
|
| kind,
|
| num_args,
|
| - ¬_smi_or_overflow,
|
| - range_collection_mode == kCollectRanges);
|
| + ¬_smi_or_overflow);
|
| }
|
| __ Bind(¬_smi_or_overflow);
|
|
|
| @@ -1474,34 +1452,9 @@ void StubCode::GenerateNArgsCheckInlineCacheStub(
|
| __ Bind(&call_target_function);
|
| // RAX: Target function.
|
| Label is_compiled;
|
| - if (range_collection_mode == kCollectRanges) {
|
| - __ movq(R13, FieldAddress(RAX, Function::code_offset()));
|
| - __ movq(RCX, FieldAddress(RAX, Function::entry_point_offset()));
|
| - __ movq(R8, Address(RSP, + 1 * kWordSize));
|
| - if (num_args == 2) {
|
| - __ movq(R9, Address(RSP, + 2 * kWordSize));
|
| - }
|
| - __ EnterStubFrame();
|
| - __ pushq(RBX);
|
| - if (num_args == 2) {
|
| - __ pushq(R9);
|
| - }
|
| - __ pushq(R8);
|
| - __ movq(CODE_REG, R13);
|
| - __ call(RCX);
|
| -
|
| - Label done;
|
| - __ movq(RDX, RAX);
|
| - __ movq(RBX, Address(RBP, kFirstLocalSlotFromFp * kWordSize));
|
| - __ UpdateRangeFeedback(RDX, 2, RBX, RCX, &done);
|
| - __ Bind(&done);
|
| - __ LeaveStubFrame();
|
| - __ ret();
|
| - } else {
|
| - __ movq(CODE_REG, FieldAddress(RAX, Function::code_offset()));
|
| - __ movq(RCX, FieldAddress(RAX, Function::entry_point_offset()));
|
| - __ jmp(RCX);
|
| - }
|
| + __ movq(CODE_REG, FieldAddress(RAX, Function::code_offset()));
|
| + __ movq(RCX, FieldAddress(RAX, Function::entry_point_offset()));
|
| + __ jmp(RCX);
|
|
|
| if (FLAG_support_debugger && !optimized) {
|
| __ Bind(&stepping);
|
| @@ -1530,8 +1483,7 @@ void StubCode::GenerateOneArgCheckInlineCacheStub(Assembler* assembler) {
|
| GenerateUsageCounterIncrement(assembler, RCX);
|
| GenerateNArgsCheckInlineCacheStub(assembler, 1,
|
| kInlineCacheMissHandlerOneArgRuntimeEntry,
|
| - Token::kILLEGAL,
|
| - kIgnoreRanges);
|
| + Token::kILLEGAL);
|
| }
|
|
|
|
|
| @@ -1539,8 +1491,7 @@ void StubCode::GenerateTwoArgsCheckInlineCacheStub(Assembler* assembler) {
|
| GenerateUsageCounterIncrement(assembler, RCX);
|
| GenerateNArgsCheckInlineCacheStub(assembler, 2,
|
| kInlineCacheMissHandlerTwoArgsRuntimeEntry,
|
| - Token::kILLEGAL,
|
| - kIgnoreRanges);
|
| + Token::kILLEGAL);
|
| }
|
|
|
|
|
| @@ -1548,8 +1499,7 @@ void StubCode::GenerateSmiAddInlineCacheStub(Assembler* assembler) {
|
| GenerateUsageCounterIncrement(assembler, RCX);
|
| GenerateNArgsCheckInlineCacheStub(assembler, 2,
|
| kInlineCacheMissHandlerTwoArgsRuntimeEntry,
|
| - Token::kADD,
|
| - kCollectRanges);
|
| + Token::kADD);
|
| }
|
|
|
|
|
| @@ -1557,8 +1507,7 @@ void StubCode::GenerateSmiSubInlineCacheStub(Assembler* assembler) {
|
| GenerateUsageCounterIncrement(assembler, RCX);
|
| GenerateNArgsCheckInlineCacheStub(assembler, 2,
|
| kInlineCacheMissHandlerTwoArgsRuntimeEntry,
|
| - Token::kSUB,
|
| - kCollectRanges);
|
| + Token::kSUB);
|
| }
|
|
|
|
|
| @@ -1566,8 +1515,7 @@ void StubCode::GenerateSmiEqualInlineCacheStub(Assembler* assembler) {
|
| GenerateUsageCounterIncrement(assembler, RCX);
|
| GenerateNArgsCheckInlineCacheStub(assembler, 2,
|
| kInlineCacheMissHandlerTwoArgsRuntimeEntry,
|
| - Token::kEQ,
|
| - kIgnoreRanges);
|
| + Token::kEQ);
|
| }
|
|
|
|
|
| @@ -1576,8 +1524,7 @@ void StubCode::GenerateUnaryRangeCollectingInlineCacheStub(
|
| GenerateUsageCounterIncrement(assembler, RCX);
|
| GenerateNArgsCheckInlineCacheStub(assembler, 1,
|
| kInlineCacheMissHandlerOneArgRuntimeEntry,
|
| - Token::kILLEGAL,
|
| - kCollectRanges);
|
| + Token::kILLEGAL);
|
| }
|
|
|
|
|
| @@ -1586,8 +1533,7 @@ void StubCode::GenerateBinaryRangeCollectingInlineCacheStub(
|
| GenerateUsageCounterIncrement(assembler, RCX);
|
| GenerateNArgsCheckInlineCacheStub(assembler, 2,
|
| kInlineCacheMissHandlerTwoArgsRuntimeEntry,
|
| - Token::kILLEGAL,
|
| - kCollectRanges);
|
| + Token::kILLEGAL);
|
| }
|
|
|
|
|
| @@ -1608,7 +1554,7 @@ void StubCode::GenerateOneArgOptimizedCheckInlineCacheStub(
|
| GenerateNArgsCheckInlineCacheStub(assembler, 1,
|
| kInlineCacheMissHandlerOneArgRuntimeEntry,
|
| Token::kILLEGAL,
|
| - kIgnoreRanges, true /* optimized */);
|
| + true /* optimized */);
|
| }
|
|
|
|
|
| @@ -1618,7 +1564,7 @@ void StubCode::GenerateTwoArgsOptimizedCheckInlineCacheStub(
|
| GenerateNArgsCheckInlineCacheStub(assembler, 2,
|
| kInlineCacheMissHandlerTwoArgsRuntimeEntry,
|
| Token::kILLEGAL,
|
| - kIgnoreRanges, true /* optimized */);
|
| + true /* optimized */);
|
| }
|
|
|
|
|
| @@ -1701,8 +1647,7 @@ void StubCode::GenerateOneArgUnoptimizedStaticCallStub(Assembler* assembler) {
|
| assembler,
|
| 1,
|
| kStaticCallMissHandlerOneArgRuntimeEntry,
|
| - Token::kILLEGAL,
|
| - kIgnoreRanges);
|
| + Token::kILLEGAL);
|
| }
|
|
|
|
|
| @@ -1711,8 +1656,7 @@ void StubCode::GenerateTwoArgsUnoptimizedStaticCallStub(Assembler* assembler) {
|
| GenerateNArgsCheckInlineCacheStub(assembler,
|
| 2,
|
| kStaticCallMissHandlerTwoArgsRuntimeEntry,
|
| - Token::kILLEGAL,
|
| - kIgnoreRanges);
|
| + Token::kILLEGAL);
|
| }
|
|
|
|
|
|
|