Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(727)

Unified Diff: runtime/vm/code_generator.cc

Issue 2367533002: Only check the new portion of an expanded range. (Closed)
Patch Set: . Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/code_generator.cc
diff --git a/runtime/vm/code_generator.cc b/runtime/vm/code_generator.cc
index 51e70e8a0bee2ff314c1267803ffcaf20f8c51f3..f48684a7217dc6ff94e584ca8b708316ed13a78f 100644
--- a/runtime/vm/code_generator.cc
+++ b/runtime/vm/code_generator.cc
@@ -1106,16 +1106,21 @@ DEFINE_RUNTIME_ENTRY(SingleTargetMiss, 1) {
}
if (old_target.raw() == target_function.raw()) {
- intptr_t lower, upper;
+ intptr_t lower, upper, unchecked_lower, unchecked_upper;
if (receiver.GetClassId() < cache.lower_limit()) {
lower = receiver.GetClassId();
+ unchecked_lower = receiver.GetClassId();
upper = cache.upper_limit();
+ unchecked_upper = cache.lower_limit() - 1;
} else {
lower = cache.lower_limit();
+ unchecked_lower = cache.upper_limit() + 1;
upper = receiver.GetClassId();
+ unchecked_upper = receiver.GetClassId();
}
- if (IsSingleTarget(isolate, zone, lower, upper, target_function, name)) {
+ if (IsSingleTarget(isolate, zone, unchecked_lower, unchecked_upper,
+ target_function, name)) {
cache.set_lower_limit(lower);
cache.set_upper_limit(upper);
// Return the ICData. The single target stub will jump to continue in the
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698