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

Unified Diff: runtime/vm/raw_object.h

Issue 10837303: Make stackmaps store their actual length. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 8 years, 4 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
Index: runtime/vm/raw_object.h
diff --git a/runtime/vm/raw_object.h b/runtime/vm/raw_object.h
index dd0d7e08e8011a032d4cb6a2e05eecf0fa786326..b987a299a776c7068f5e0b359d04e82420374726 100644
--- a/runtime/vm/raw_object.h
+++ b/runtime/vm/raw_object.h
@@ -766,10 +766,6 @@ class RawCode : public RawObject {
// This cannot be boolean because of alignment issues on x64 architectures.
intptr_t is_optimized_;
- // The number of spill slots used by an optimized code object. This is
- // used as the length of each stackmap in the code.
- intptr_t spill_slot_count_;
-
// Variable length data follows here.
int32_t data_[0];
@@ -807,28 +803,20 @@ class RawPcDescriptors : public RawObject {
};
-// Stackmap is an immutable representation of the layout of the stack at
-// a PC. The stack map representation consists of a bit map which marks
-// each stack slot index starting from the FP (frame pointer) as an object
-// or regular untagged value.
-// The Stackmap also consists of a link to code object corresponding to
-// the frame which the stack map is describing.
-// The bit map representation is optimized for dense and small bit maps,
-// without any upper bound.
+// Stackmap is an immutable representation of the layout of the stack at a
+// PC. The stack map representation consists of a bit map which marks each
+// live object index starting from the base of the frame.
+//
+// The Stackmap also consists of a link to the code object corresponding to
+// the frame which the stack map is describing. The bit map representation
+// is optimized for dense and small bit maps, without any upper bound.
class RawStackmap : public RawObject {
RAW_HEAP_OBJECT_IMPLEMENTATION(Stackmap);
- RawObject** from() {
- return reinterpret_cast<RawObject**>(&ptr()->code_);
- }
RawCode* code_; // Code object corresponding to the frame described.
- RawSmi* bitmap_size_in_bytes_; // Size of the bit map in bytes.
- RawObject** to() {
- return reinterpret_cast<RawObject**>(&ptr()->bitmap_size_in_bytes_);
- }
+
+ intptr_t length_; // Length of payload, in bits.
uword pc_; // PC corresponding to this stack map representation.
- intptr_t min_set_bit_index_; // Minimum bit offset which is set.
- intptr_t max_set_bit_index_; // Maximum bit offset which is set.
// Variable length data follows here (bitmap of the stack layout).
uint8_t data_[0];
« runtime/vm/object.cc ('K') | « runtime/vm/object.cc ('k') | runtime/vm/raw_object.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698