Index: runtime/vm/stub_code_arm64.cc |
diff --git a/runtime/vm/stub_code_arm64.cc b/runtime/vm/stub_code_arm64.cc |
index 997c24684c07bf6de3075d92cb91a254948c27cc..32ea930f99cd22877d272874b041f30c796c24f9 100644 |
--- a/runtime/vm/stub_code_arm64.cc |
+++ b/runtime/vm/stub_code_arm64.cc |
@@ -1293,8 +1293,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"); |
__ ldr(R0, Address(SP, + 0 * kWordSize)); // Right. |
__ ldr(R1, Address(SP, + 1 * kWordSize)); // Left. |
@@ -1322,12 +1321,6 @@ static void EmitFastSmiOp(Assembler* assembler, |
default: UNIMPLEMENTED(); |
} |
- if (should_update_result_range) { |
- Label done; |
- __ UpdateRangeFeedback(R0, 2, R5, R1, R6, &done); |
- __ Bind(&done); |
- } |
- |
// R5: IC data object (preserved). |
__ LoadFieldFromOffset(R6, R5, ICData::ic_data_offset()); |
// R6: ic_data_array with check entries: classes and target functions. |
@@ -1376,7 +1369,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) |
@@ -1405,24 +1397,12 @@ 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) { |
- __ ldr(R0, Address(SP, 1 * kWordSize)); |
- __ UpdateRangeFeedback(R0, 0, R5, R1, R4, ¬_smi_or_overflow); |
- } |
- |
- __ ldr(R0, Address(SP, 0 * kWordSize)); |
- __ UpdateRangeFeedback(R0, num_args - 1, R5, R1, R4, ¬_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); |
@@ -1546,32 +1526,9 @@ void StubCode::GenerateNArgsCheckInlineCacheStub( |
__ Comment("Call target"); |
__ Bind(&call_target_function); |
// R0: target function. |
- if (range_collection_mode == kCollectRanges) { |
- __ LoadFieldFromOffset(R2, R0, Function::entry_point_offset()); |
- __ ldr(R1, Address(SP, 0 * kWordSize)); |
- if (num_args == 2) { |
- __ ldr(R3, Address(SP, 1 * kWordSize)); |
- } |
- __ EnterStubFrame(); |
- __ Push(R5); |
- if (num_args == 2) { |
- __ Push(R3); |
- } |
- __ Push(R1); |
- __ LoadFieldFromOffset(CODE_REG, R0, Function::code_offset()); |
- __ blr(R2); |
- |
- Label done; |
- __ ldr(R5, Address(FP, kFirstLocalSlotFromFp * kWordSize)); |
- __ UpdateRangeFeedback(R0, 2, R5, R1, R4, &done); |
- __ Bind(&done); |
- __ LeaveStubFrame(); |
- __ ret(); |
- } else { |
- __ LoadFieldFromOffset(CODE_REG, R0, Function::code_offset()); |
- __ LoadFieldFromOffset(R2, R0, Function::entry_point_offset()); |
- __ br(R2); |
- } |
+ __ LoadFieldFromOffset(CODE_REG, R0, Function::code_offset()); |
+ __ LoadFieldFromOffset(R2, R0, Function::entry_point_offset()); |
+ __ br(R2); |
if (FLAG_support_debugger && !optimized) { |
__ Bind(&stepping); |
@@ -1599,40 +1556,35 @@ void StubCode::GenerateNArgsCheckInlineCacheStub( |
void StubCode::GenerateOneArgCheckInlineCacheStub(Assembler* assembler) { |
GenerateUsageCounterIncrement(assembler, R6); |
GenerateNArgsCheckInlineCacheStub(assembler, 1, |
- kInlineCacheMissHandlerOneArgRuntimeEntry, Token::kILLEGAL, |
- kIgnoreRanges); |
+ kInlineCacheMissHandlerOneArgRuntimeEntry, Token::kILLEGAL); |
} |
void StubCode::GenerateTwoArgsCheckInlineCacheStub(Assembler* assembler) { |
GenerateUsageCounterIncrement(assembler, R6); |
GenerateNArgsCheckInlineCacheStub(assembler, 2, |
- kInlineCacheMissHandlerTwoArgsRuntimeEntry, Token::kILLEGAL, |
- kIgnoreRanges); |
+ kInlineCacheMissHandlerTwoArgsRuntimeEntry, Token::kILLEGAL); |
} |
void StubCode::GenerateSmiAddInlineCacheStub(Assembler* assembler) { |
GenerateUsageCounterIncrement(assembler, R6); |
GenerateNArgsCheckInlineCacheStub(assembler, 2, |
- kInlineCacheMissHandlerTwoArgsRuntimeEntry, Token::kADD, |
- kCollectRanges); |
+ kInlineCacheMissHandlerTwoArgsRuntimeEntry, Token::kADD); |
} |
void StubCode::GenerateSmiSubInlineCacheStub(Assembler* assembler) { |
GenerateUsageCounterIncrement(assembler, R6); |
GenerateNArgsCheckInlineCacheStub(assembler, 2, |
- kInlineCacheMissHandlerTwoArgsRuntimeEntry, Token::kSUB, |
- kCollectRanges); |
+ kInlineCacheMissHandlerTwoArgsRuntimeEntry, Token::kSUB); |
} |
void StubCode::GenerateSmiEqualInlineCacheStub(Assembler* assembler) { |
GenerateUsageCounterIncrement(assembler, R6); |
GenerateNArgsCheckInlineCacheStub(assembler, 2, |
- kInlineCacheMissHandlerTwoArgsRuntimeEntry, Token::kEQ, |
- kIgnoreRanges); |
+ kInlineCacheMissHandlerTwoArgsRuntimeEntry, Token::kEQ); |
} |
@@ -1641,8 +1593,7 @@ void StubCode::GenerateUnaryRangeCollectingInlineCacheStub( |
GenerateUsageCounterIncrement(assembler, R6); |
GenerateNArgsCheckInlineCacheStub(assembler, 1, |
kInlineCacheMissHandlerOneArgRuntimeEntry, |
- Token::kILLEGAL, |
- kCollectRanges); |
+ Token::kILLEGAL); |
} |
@@ -1651,8 +1602,7 @@ void StubCode::GenerateBinaryRangeCollectingInlineCacheStub( |
GenerateUsageCounterIncrement(assembler, R6); |
GenerateNArgsCheckInlineCacheStub(assembler, 2, |
kInlineCacheMissHandlerTwoArgsRuntimeEntry, |
- Token::kILLEGAL, |
- kCollectRanges); |
+ Token::kILLEGAL); |
} |
@@ -1661,7 +1611,7 @@ void StubCode::GenerateOneArgOptimizedCheckInlineCacheStub( |
GenerateOptimizedUsageCounterIncrement(assembler); |
GenerateNArgsCheckInlineCacheStub(assembler, 1, |
kInlineCacheMissHandlerOneArgRuntimeEntry, Token::kILLEGAL, |
- kIgnoreRanges, true /* optimized */); |
+ true /* optimized */); |
} |
@@ -1670,7 +1620,7 @@ void StubCode::GenerateTwoArgsOptimizedCheckInlineCacheStub( |
GenerateOptimizedUsageCounterIncrement(assembler); |
GenerateNArgsCheckInlineCacheStub(assembler, 2, |
kInlineCacheMissHandlerTwoArgsRuntimeEntry, Token::kILLEGAL, |
- kIgnoreRanges, true /* optimized */); |
+ true /* optimized */); |
} |
@@ -1744,16 +1694,14 @@ void StubCode::GenerateZeroArgsUnoptimizedStaticCallStub(Assembler* assembler) { |
void StubCode::GenerateOneArgUnoptimizedStaticCallStub(Assembler* assembler) { |
GenerateUsageCounterIncrement(assembler, R6); |
GenerateNArgsCheckInlineCacheStub( |
- assembler, 1, kStaticCallMissHandlerOneArgRuntimeEntry, Token::kILLEGAL, |
- kIgnoreRanges); |
+ assembler, 1, kStaticCallMissHandlerOneArgRuntimeEntry, Token::kILLEGAL); |
} |
void StubCode::GenerateTwoArgsUnoptimizedStaticCallStub(Assembler* assembler) { |
GenerateUsageCounterIncrement(assembler, R6); |
GenerateNArgsCheckInlineCacheStub(assembler, 2, |
- kStaticCallMissHandlerTwoArgsRuntimeEntry, Token::kILLEGAL, |
- kIgnoreRanges); |
+ kStaticCallMissHandlerTwoArgsRuntimeEntry, Token::kILLEGAL); |
} |