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

Unified Diff: runtime/vm/stack_frame.cc

Issue 1756403002: VM: Add smi fast path operations for precompiled code (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: addressed comments Created 4 years, 10 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 | « runtime/vm/raw_object.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/stack_frame.cc
diff --git a/runtime/vm/stack_frame.cc b/runtime/vm/stack_frame.cc
index fb3d8d858cc0358169d7f1746ad3bcff87891e0d..4eb3da7e0d6b94b8b256e9f66d641093e2f3fd6a 100644
--- a/runtime/vm/stack_frame.cc
+++ b/runtime/vm/stack_frame.cc
@@ -112,19 +112,15 @@ void StackFrame::VisitObjectPointers(ObjectPointerVisitor* visitor) {
// visit frame slots which are marked as having objects.
//
// The layout of the frame is (lower addresses to the right):
- // | spill slots | outgoing arguments | saved registers |
- // |XXXXXXXXXXXXX|--------------------|XXXXXXXXXXXXXXXXX|
+ // | spill slots | outgoing arguments | saved registers | slow-path args |
+ // |XXXXXXXXXXXXX|--------------------|XXXXXXXXXXXXXXXXX|XXXXXXXXXXXXXXXX|
//
// The spill slots and any saved registers are described in the stack
// map. The outgoing arguments are assumed to be tagged; the number
// of outgoing arguments is not explicitly tracked.
- //
- // TODO(kmillikin): This does not handle slow path calls with
- // arguments, where the arguments are pushed after the live registers.
- // Enable such calls.
intptr_t length = map.Length();
// Spill slots are at the 'bottom' of the frame.
- intptr_t spill_slot_count = length - map.RegisterBitCount();
+ intptr_t spill_slot_count = length - map.SlowPathBitCount();
for (intptr_t bit = 0; bit < spill_slot_count; ++bit) {
if (map.IsObject(bit)) {
visitor->VisitPointer(last);
« no previous file with comments | « runtime/vm/raw_object.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698