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

Unified Diff: src/virtual-frame-ia32.h

Issue 14158: Factor VirtualFrame::MergeTo() into three functions, for... (Closed) Base URL: http://v8.googlecode.com/svn/branches/experimental/toiger/
Patch Set: '' Created 12 years 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 | src/virtual-frame-ia32.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/virtual-frame-ia32.h
===================================================================
--- src/virtual-frame-ia32.h (revision 990)
+++ src/virtual-frame-ia32.h (working copy)
@@ -478,12 +478,6 @@
// decrements both the register's internal and external reference counts.
void Unuse(Register reg);
- // Sync the element at a particular index---write it to memory if
- // necessary, but do not free any associated register or forget its value
- // if constant. Space should have already been allocated in the actual
- // frame for all the elements below this one (at least).
- void SyncElementAt(int index);
-
// Spill the element at a particular index---write it to memory if
// necessary, free any associated register, and forget its value if
// constant.
@@ -493,9 +487,18 @@
// it was in a register).
void RawSpillElementAt(int index);
+ // Sync the element at a particular index. If it is a register or
+ // constant that disagrees with the value on the stack, write it to memory.
+ // Keep the element type as register or constant, and clear the dirty bit.
+ void SyncElementAt(int index);
+
// Sync the range of elements in [begin, end).
void SyncRange(int begin, int end);
+ // Sync a single element, assuming that its index is less than
+ // or equal to stack pointer + 1.
+ void RawSyncElementAt(int index);
+
// Push a copy of a frame slot (typically a local or parameter) on top of
// the frame.
void LoadFrameSlotAt(int index);
@@ -508,6 +511,10 @@
// arguments to a call) and all registers.
void PrepareForCall(int count);
+ // Move frame elements currently in registers or constants, that
+ // should be in memory in the expected frame, to memory.
+ void MergeMoveRegistersToMemory(VirtualFrame *expected);
+
// Make the register-to-register moves necessary to
// merge this frame with the expected frame.
// Register to memory moves must already have been made,
@@ -516,6 +523,13 @@
// created in order to break cycles of register moves.
// Used in the implementation of MergeTo().
void MergeMoveRegistersToRegisters(VirtualFrame *expected);
+
+ // Make the memory-to-register and constant-to-register moves
+ // needed to make this frame equal the expected frame.
+ // Called after all register-to-memory and register-to-register
+ // moves have been made. After this function returns, the frames
+ // should be equal.
+ void MergeMoveMemoryToRegisters(VirtualFrame *expected);
};
« no previous file with comments | « no previous file | src/virtual-frame-ia32.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698