Changeset 39342 in webkit for trunk/JavaScriptCore/runtime/JSImmediate.h
- Timestamp:
- Dec 16, 2008, 4:03:34 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/runtime/JSImmediate.h
r38473 r39342 89 89 friend class JIT; 90 90 91 static const uint ptr_t TagMask = 0x3u; // primary tag is 2 bits long92 static const uint ptr_t TagBitTypeInteger = 0x1u; // bottom bit set indicates integer, this dominates the following bit93 static const uint ptr_t TagBitTypeOther = 0x2u; // second bit set indicates immediate other than an integer94 95 static const uint ptr_t ExtendedTagMask = 0xCu; // extended tag holds a further two bits96 static const uint ptr_t ExtendedTagBitBool = 0x4u;97 static const uint ptr_t ExtendedTagBitUndefined = 0x8u;98 99 static const uint ptr_t FullTagTypeMask = TagMask | ExtendedTagMask;100 static const uint ptr_t FullTagTypeBool = TagBitTypeOther | ExtendedTagBitBool;101 static const uint ptr_t FullTagTypeUndefined = TagBitTypeOther | ExtendedTagBitUndefined;102 static const uint ptr_t FullTagTypeNull = TagBitTypeOther;91 static const uint32_t TagMask = 0x3u; // primary tag is 2 bits long 92 static const uint32_t TagBitTypeInteger = 0x1u; // bottom bit set indicates integer, this dominates the following bit 93 static const uint32_t TagBitTypeOther = 0x2u; // second bit set indicates immediate other than an integer 94 95 static const uint32_t ExtendedTagMask = 0xCu; // extended tag holds a further two bits 96 static const uint32_t ExtendedTagBitBool = 0x4u; 97 static const uint32_t ExtendedTagBitUndefined = 0x8u; 98 99 static const uint32_t FullTagTypeMask = TagMask | ExtendedTagMask; 100 static const uint32_t FullTagTypeBool = TagBitTypeOther | ExtendedTagBitBool; 101 static const uint32_t FullTagTypeUndefined = TagBitTypeOther | ExtendedTagBitUndefined; 102 static const uint32_t FullTagTypeNull = TagBitTypeOther; 103 103 104 104 static const uint32_t IntegerPayloadShift = 1u; 105 105 static const uint32_t ExtendedPayloadShift = 4u; 106 106 107 static const uint ptr_t ExtendedPayloadBitBoolValue = 1 << ExtendedPayloadShift;107 static const uint32_t ExtendedPayloadBitBoolValue = 1 << ExtendedPayloadShift; 108 108 109 109 public: … … 267 267 static ALWAYS_INLINE JSValue* makeInt(int32_t value) 268 268 { 269 return makeValue((value << IntegerPayloadShift) | TagBitTypeInteger); 269 // FIXME: Why does the result of this need be a 64-bit value? 270 // Integer immediates are still only 31-bit on x86-64. 271 return makeValue((value << IntegerPayloadShift) | static_cast<uintptr_t>(TagBitTypeInteger)); 270 272 } 271 273
Note:
See TracChangeset
for help on using the changeset viewer.