Index: src/snapshot/serializer-common.h |
diff --git a/src/snapshot/serializer-common.h b/src/snapshot/serializer-common.h |
index e4c1bf774c7d293de4ee0fa04ccd4256ae9180a6..bdd2b51e7ee1c9df2fde752f4bca891ad8c7bb27 100644 |
--- a/src/snapshot/serializer-common.h |
+++ b/src/snapshot/serializer-common.h |
@@ -94,31 +94,26 @@ class SerializerDeserializer : public ObjectVisitor { |
STATIC_ASSERT(5 == kNumberOfSpaces); |
enum Where { |
// 0x00..0x04 Allocate new object, in specified space. |
- kNewObject = 0, |
- // 0x05 Unused (including 0x25, 0x45, 0x65). |
- // 0x06 Unused (including 0x26, 0x46, 0x66). |
- // 0x07 Unused (including 0x27, 0x47, 0x67). |
+ kNewObject = 0x00, |
// 0x08..0x0c Reference to previous object from space. |
kBackref = 0x08, |
- // 0x0d Unused (including 0x2d, 0x4d, 0x6d). |
- // 0x0e Unused (including 0x2e, 0x4e, 0x6e). |
- // 0x0f Unused (including 0x2f, 0x4f, 0x6f). |
// 0x10..0x14 Reference to previous object from space after skip. |
kBackrefWithSkip = 0x10, |
- // 0x15 Unused (including 0x35, 0x55, 0x75). |
- // 0x16 Unused (including 0x36, 0x56, 0x76). |
- // 0x17 Misc (including 0x37, 0x57, 0x77). |
- // 0x18 Root array item. |
- kRootArray = 0x18, |
- // 0x19 Object in the partial snapshot cache. |
- kPartialSnapshotCache = 0x19, |
- // 0x1a External reference referenced by id. |
- kExternalReference = 0x1a, |
- // 0x1b Object provided in the attached list. |
- kAttachedReference = 0x1b, |
- // 0x1c Builtin code referenced by index. |
- kBuiltin = 0x1c |
- // 0x1d..0x1f Misc (including 0x3d..0x3f, 0x5d..0x5f, 0x7d..0x7f) |
+ |
+ // 0x05 Root array item. |
+ kRootArray = 0x05, |
+ // 0x06 Object in the partial snapshot cache. |
+ kPartialSnapshotCache = 0x06, |
+ // 0x07 External reference referenced by id. |
+ kExternalReference = 0x07, |
+ |
+ // 0x0d Object provided in the attached list. |
+ kAttachedReference = 0x0d, |
+ // 0x0e Builtin code referenced by index. |
+ kBuiltin = 0x0e, |
+ |
+ // 0x0f Misc, see below (incl. 0x2f, 0x4f, 0x6f). |
+ // 0x15..0x1f Misc, see below (incl. 0x35..0x3f, 0x55..0x5f, 0x75..0x7f). |
}; |
static const int kWhereMask = 0x1f; |
@@ -147,36 +142,45 @@ class SerializerDeserializer : public ObjectVisitor { |
// ---------- Misc ---------- |
// Skip. |
- static const int kSkip = 0x1d; |
- // Internal reference encoded as offsets of pc and target from code entry. |
- static const int kInternalReference = 0x1e; |
- static const int kInternalReferenceEncoded = 0x1f; |
+ static const int kSkip = 0x0f; |
// Do nothing, used for padding. |
- static const int kNop = 0x3d; |
+ static const int kNop = 0x2f; |
// Move to next reserved chunk. |
- static const int kNextChunk = 0x3e; |
+ static const int kNextChunk = 0x4f; |
// Deferring object content. |
- static const int kDeferred = 0x3f; |
- // Used for the source code of the natives, which is in the executable, but |
- // is referred to from external strings in the snapshot. |
- static const int kNativesStringResource = 0x5d; |
- // Used for the source code for compiled stubs, which is in the executable, |
- // but is referred to from external strings in the snapshot. |
- static const int kExtraNativesStringResource = 0x5e; |
+ static const int kDeferred = 0x6f; |
+ // Alignment prefixes 0x15..0x17 |
+ static const int kAlignmentPrefix = 0x15; |
// A tag emitted at strategic points in the snapshot to delineate sections. |
// If the deserializer does not find these at the expected moments then it |
// is an indication that the snapshot and the VM do not fit together. |
// Examine the build process for architecture, version or configuration |
// mismatches. |
- static const int kSynchronize = 0x17; |
+ static const int kSynchronize = 0x18; |
// Repeats of variable length. |
- static const int kVariableRepeat = 0x37; |
+ static const int kVariableRepeat = 0x19; |
// Raw data of variable length. |
- static const int kVariableRawData = 0x57; |
- // Alignment prefixes 0x7d..0x7f |
- static const int kAlignmentPrefix = 0x7d; |
+ static const int kVariableRawData = 0x1a; |
+ // Internal reference encoded as offsets of pc and target from code entry. |
+ static const int kInternalReference = 0x1b; |
+ static const int kInternalReferenceEncoded = 0x1c; |
+ // Used for the source code of the natives, which is in the executable, but |
+ // is referred to from external strings in the snapshot. |
+ static const int kNativesStringResource = 0x1d; |
+ // Used for the source code for compiled stubs, which is in the executable, |
+ // but is referred to from external strings in the snapshot. |
+ static const int kExtraNativesStringResource = 0x1e; |
+ |
+ // 8 hot (recently seen or back-referenced) objects with optional skip. |
+ static const int kNumberOfHotObjects = 8; |
+ STATIC_ASSERT(kNumberOfHotObjects == HotObjectsList::kSize); |
+ // 0x38..0x3f |
+ static const int kHotObject = 0x38; |
+ // 0x58..0x5f |
+ static const int kHotObjectWithSkip = 0x58; |
+ static const int kHotObjectMask = 0x07; |
- // 0x77 unused |
+ // 0x1f, 0x35..0x37, 0x55..0x57, 0x75..0x7f unused. |
// ---------- byte code range 0x80..0xff ---------- |
// First 32 root array items. |
@@ -187,27 +191,21 @@ class SerializerDeserializer : public ObjectVisitor { |
static const int kRootArrayConstantsWithSkip = 0xa0; |
static const int kRootArrayConstantsMask = 0x1f; |
- // 8 hot (recently seen or back-referenced) objects with optional skip. |
- static const int kNumberOfHotObjects = 0x08; |
- // 0xc0..0xc7 |
- static const int kHotObject = 0xc0; |
- // 0xc8..0xcf |
- static const int kHotObjectWithSkip = 0xc8; |
- static const int kHotObjectMask = 0x07; |
- |
// 32 common raw data lengths. |
static const int kNumberOfFixedRawData = 0x20; |
- // 0xd0..0xef |
- static const int kFixedRawData = 0xd0; |
+ // 0xc0..0xdf |
+ static const int kFixedRawData = 0xc0; |
static const int kOnePointerRawData = kFixedRawData; |
static const int kFixedRawDataStart = kFixedRawData - 1; |
// 16 repeats lengths. |
static const int kNumberOfFixedRepeat = 0x10; |
- // 0xf0..0xff |
- static const int kFixedRepeat = 0xf0; |
+ // 0xe0..0xef |
+ static const int kFixedRepeat = 0xe0; |
static const int kFixedRepeatStart = kFixedRepeat - 1; |
+ // 0xf0..0xff unused. |
vogelheim
2016/06/22 09:22:31
Just so I understand this... The whole point is to
Yang
2016/06/22 09:43:02
Yes. I have some ideas I want to play around with.
|
+ |
// ---------- special values ---------- |
static const int kAnyOldSpace = -1; |