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

Side by Side Diff: src/objects.h

Issue 115559: X64: Disabled RSet in 64-bit mode. (Closed)
Patch Set: Created 11 years, 7 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 unified diff | Download patch
« no previous file with comments | « src/heap-inl.h ('k') | src/runtime.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2006-2008 the V8 project authors. All rights reserved. 1 // Copyright 2006-2008 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 278 matching lines...) Expand 10 before | Expand all | Expand 10 after
289 V(JS_GLOBAL_PROXY_TYPE) \ 289 V(JS_GLOBAL_PROXY_TYPE) \
290 V(JS_ARRAY_TYPE) \ 290 V(JS_ARRAY_TYPE) \
291 V(JS_REGEXP_TYPE) \ 291 V(JS_REGEXP_TYPE) \
292 \ 292 \
293 V(JS_FUNCTION_TYPE) \ 293 V(JS_FUNCTION_TYPE) \
294 294
295 295
296 // Since string types are not consecutive, this macro is used to 296 // Since string types are not consecutive, this macro is used to
297 // iterate over them. 297 // iterate over them.
298 #define STRING_TYPE_LIST(V) \ 298 #define STRING_TYPE_LIST(V) \
299 V(SHORT_SYMBOL_TYPE, SeqTwoByteString::kHeaderSize, short_symbol) \ 299 V(SHORT_SYMBOL_TYPE, SeqTwoByteString::kAlignedSize, short_symbol) \
300 V(MEDIUM_SYMBOL_TYPE, SeqTwoByteString::kHeaderSize, medium_symbol) \ 300 V(MEDIUM_SYMBOL_TYPE, SeqTwoByteString::kAlignedSize, medium_symbol) \
301 V(LONG_SYMBOL_TYPE, SeqTwoByteString::kHeaderSize, long_symbol) \ 301 V(LONG_SYMBOL_TYPE, SeqTwoByteString::kAlignedSize, long_symbol) \
302 V(SHORT_ASCII_SYMBOL_TYPE, SeqAsciiString::kHeaderSize, short_ascii_symbol) \ 302 V(SHORT_ASCII_SYMBOL_TYPE, SeqAsciiString::kAlignedSize, short_ascii_symbol) \
303 V(MEDIUM_ASCII_SYMBOL_TYPE, SeqAsciiString::kHeaderSize, medium_ascii_symbol)\ 303 V(MEDIUM_ASCII_SYMBOL_TYPE, SeqAsciiString::kAlignedSize, medium_ascii_symbol) \
304 V(LONG_ASCII_SYMBOL_TYPE, SeqAsciiString::kHeaderSize, long_ascii_symbol) \ 304 V(LONG_ASCII_SYMBOL_TYPE, SeqAsciiString::kAlignedSize, long_ascii_symbol) \
305 V(SHORT_CONS_SYMBOL_TYPE, ConsString::kSize, short_cons_symbol) \ 305 V(SHORT_CONS_SYMBOL_TYPE, ConsString::kSize, short_cons_symbol) \
306 V(MEDIUM_CONS_SYMBOL_TYPE, ConsString::kSize, medium_cons_symbol) \ 306 V(MEDIUM_CONS_SYMBOL_TYPE, ConsString::kSize, medium_cons_symbol) \
307 V(LONG_CONS_SYMBOL_TYPE, ConsString::kSize, long_cons_symbol) \ 307 V(LONG_CONS_SYMBOL_TYPE, ConsString::kSize, long_cons_symbol) \
308 V(SHORT_CONS_ASCII_SYMBOL_TYPE, ConsString::kSize, short_cons_ascii_symbol) \ 308 V(SHORT_CONS_ASCII_SYMBOL_TYPE, ConsString::kSize, short_cons_ascii_symbol) \
309 V(MEDIUM_CONS_ASCII_SYMBOL_TYPE, ConsString::kSize, medium_cons_ascii_symbol)\ 309 V(MEDIUM_CONS_ASCII_SYMBOL_TYPE, ConsString::kSize, medium_cons_ascii_symbol)\
310 V(LONG_CONS_ASCII_SYMBOL_TYPE, ConsString::kSize, long_cons_ascii_symbol) \ 310 V(LONG_CONS_ASCII_SYMBOL_TYPE, ConsString::kSize, long_cons_ascii_symbol) \
311 V(SHORT_SLICED_SYMBOL_TYPE, SlicedString::kSize, short_sliced_symbol) \ 311 V(SHORT_SLICED_SYMBOL_TYPE, SlicedString::kSize, short_sliced_symbol) \
312 V(MEDIUM_SLICED_SYMBOL_TYPE, SlicedString::kSize, medium_sliced_symbol) \ 312 V(MEDIUM_SLICED_SYMBOL_TYPE, SlicedString::kSize, medium_sliced_symbol) \
313 V(LONG_SLICED_SYMBOL_TYPE, SlicedString::kSize, long_sliced_symbol) \ 313 V(LONG_SLICED_SYMBOL_TYPE, SlicedString::kSize, long_sliced_symbol) \
314 V(SHORT_SLICED_ASCII_SYMBOL_TYPE, \ 314 V(SHORT_SLICED_ASCII_SYMBOL_TYPE, \
(...skipping 16 matching lines...) Expand all
331 long_external_symbol) \ 331 long_external_symbol) \
332 V(SHORT_EXTERNAL_ASCII_SYMBOL_TYPE, \ 332 V(SHORT_EXTERNAL_ASCII_SYMBOL_TYPE, \
333 ExternalAsciiString::kSize, \ 333 ExternalAsciiString::kSize, \
334 short_external_ascii_symbol) \ 334 short_external_ascii_symbol) \
335 V(MEDIUM_EXTERNAL_ASCII_SYMBOL_TYPE, \ 335 V(MEDIUM_EXTERNAL_ASCII_SYMBOL_TYPE, \
336 ExternalAsciiString::kSize, \ 336 ExternalAsciiString::kSize, \
337 medium_external_ascii_symbol) \ 337 medium_external_ascii_symbol) \
338 V(LONG_EXTERNAL_ASCII_SYMBOL_TYPE, \ 338 V(LONG_EXTERNAL_ASCII_SYMBOL_TYPE, \
339 ExternalAsciiString::kSize, \ 339 ExternalAsciiString::kSize, \
340 long_external_ascii_symbol) \ 340 long_external_ascii_symbol) \
341 V(SHORT_STRING_TYPE, SeqTwoByteString::kHeaderSize, short_string) \ 341 V(SHORT_STRING_TYPE, SeqTwoByteString::kAlignedSize, short_string) \
342 V(MEDIUM_STRING_TYPE, SeqTwoByteString::kHeaderSize, medium_string) \ 342 V(MEDIUM_STRING_TYPE, SeqTwoByteString::kAlignedSize, medium_string) \
343 V(LONG_STRING_TYPE, SeqTwoByteString::kHeaderSize, long_string) \ 343 V(LONG_STRING_TYPE, SeqTwoByteString::kAlignedSize, long_string) \
344 V(SHORT_ASCII_STRING_TYPE, SeqAsciiString::kHeaderSize, short_ascii_string) \ 344 V(SHORT_ASCII_STRING_TYPE, SeqAsciiString::kAlignedSize, short_ascii_string) \
345 V(MEDIUM_ASCII_STRING_TYPE, SeqAsciiString::kHeaderSize, medium_ascii_string)\ 345 V(MEDIUM_ASCII_STRING_TYPE, SeqAsciiString::kAlignedSize, medium_ascii_string) \
346 V(LONG_ASCII_STRING_TYPE, SeqAsciiString::kHeaderSize, long_ascii_string) \ 346 V(LONG_ASCII_STRING_TYPE, SeqAsciiString::kAlignedSize, long_ascii_string) \
347 V(SHORT_CONS_STRING_TYPE, ConsString::kSize, short_cons_string) \ 347 V(SHORT_CONS_STRING_TYPE, ConsString::kSize, short_cons_string) \
348 V(MEDIUM_CONS_STRING_TYPE, ConsString::kSize, medium_cons_string) \ 348 V(MEDIUM_CONS_STRING_TYPE, ConsString::kSize, medium_cons_string) \
349 V(LONG_CONS_STRING_TYPE, ConsString::kSize, long_cons_string) \ 349 V(LONG_CONS_STRING_TYPE, ConsString::kSize, long_cons_string) \
350 V(SHORT_CONS_ASCII_STRING_TYPE, ConsString::kSize, short_cons_ascii_string) \ 350 V(SHORT_CONS_ASCII_STRING_TYPE, ConsString::kSize, short_cons_ascii_string) \
351 V(MEDIUM_CONS_ASCII_STRING_TYPE, ConsString::kSize, medium_cons_ascii_string)\ 351 V(MEDIUM_CONS_ASCII_STRING_TYPE, ConsString::kSize, medium_cons_ascii_string)\
352 V(LONG_CONS_ASCII_STRING_TYPE, ConsString::kSize, long_cons_ascii_string) \ 352 V(LONG_CONS_ASCII_STRING_TYPE, ConsString::kSize, long_cons_ascii_string) \
353 V(SHORT_SLICED_STRING_TYPE, SlicedString::kSize, short_sliced_string) \ 353 V(SHORT_SLICED_STRING_TYPE, SlicedString::kSize, short_sliced_string) \
354 V(MEDIUM_SLICED_STRING_TYPE, SlicedString::kSize, medium_sliced_string) \ 354 V(MEDIUM_SLICED_STRING_TYPE, SlicedString::kSize, medium_sliced_string) \
355 V(LONG_SLICED_STRING_TYPE, SlicedString::kSize, long_sliced_string) \ 355 V(LONG_SLICED_STRING_TYPE, SlicedString::kSize, long_sliced_string) \
356 V(SHORT_SLICED_ASCII_STRING_TYPE, \ 356 V(SHORT_SLICED_ASCII_STRING_TYPE, \
(...skipping 1189 matching lines...) Expand 10 before | Expand all | Expand 10 after
1546 inline int length(); 1546 inline int length();
1547 inline void set_length(int value); 1547 inline void set_length(int value);
1548 1548
1549 // Convert an object to an array index. 1549 // Convert an object to an array index.
1550 // Returns true if the conversion succeeded. 1550 // Returns true if the conversion succeeded.
1551 static inline bool IndexFromObject(Object* object, uint32_t* index); 1551 static inline bool IndexFromObject(Object* object, uint32_t* index);
1552 1552
1553 // Layout descriptor. 1553 // Layout descriptor.
1554 static const int kLengthOffset = HeapObject::kHeaderSize; 1554 static const int kLengthOffset = HeapObject::kHeaderSize;
1555 static const int kHeaderSize = kLengthOffset + kIntSize; 1555 static const int kHeaderSize = kLengthOffset + kIntSize;
1556 static const int kAlignedSize = POINTER_SIZE_ALIGN(kHeaderSize);
1556 1557
1557 private: 1558 private:
1558 DISALLOW_IMPLICIT_CONSTRUCTORS(Array); 1559 DISALLOW_IMPLICIT_CONSTRUCTORS(Array);
1559 }; 1560 };
1560 1561
1561 1562
1562 // FixedArray describes fixed sized arrays where element 1563 // FixedArray describes fixed sized arrays where element
1563 // type is Object*. 1564 // type is Object*.
1564 1565
1565 class FixedArray: public Array { 1566 class FixedArray: public Array {
(...skipping 1800 matching lines...) Expand 10 before | Expand all | Expand 10 after
3366 void StringShortPrint(StringStream* accumulator); 3367 void StringShortPrint(StringStream* accumulator);
3367 #ifdef DEBUG 3368 #ifdef DEBUG
3368 void StringPrint(); 3369 void StringPrint();
3369 void StringVerify(); 3370 void StringVerify();
3370 #endif 3371 #endif
3371 inline bool IsFlat(); 3372 inline bool IsFlat();
3372 3373
3373 // Layout description. 3374 // Layout description.
3374 static const int kLengthOffset = HeapObject::kHeaderSize; 3375 static const int kLengthOffset = HeapObject::kHeaderSize;
3375 static const int kSize = kLengthOffset + kIntSize; 3376 static const int kSize = kLengthOffset + kIntSize;
3377 // Notice: kSize is not pointer-size aligned if pointers are 64-bit.
3376 3378
3377 // Limits on sizes of different types of strings. 3379 // Limits on sizes of different types of strings.
3378 static const int kMaxShortStringSize = 63; 3380 static const int kMaxShortStringSize = 63;
3379 static const int kMaxMediumStringSize = 16383; 3381 static const int kMaxMediumStringSize = 16383;
3380 3382
3381 static const int kMaxArrayIndexSize = 10; 3383 static const int kMaxArrayIndexSize = 10;
3382 3384
3383 // Max ascii char code. 3385 // Max ascii char code.
3384 static const int kMaxAsciiCharCode = unibrow::Utf8::kMaxOneByteChar; 3386 static const int kMaxAsciiCharCode = unibrow::Utf8::kMaxOneByteChar;
3385 static const unsigned kMaxAsciiCharCodeU = unibrow::Utf8::kMaxOneByteChar; 3387 static const unsigned kMaxAsciiCharCodeU = unibrow::Utf8::kMaxOneByteChar;
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after
3519 // instance. 3521 // instance.
3520 inline int SeqAsciiStringSize(InstanceType instance_type); 3522 inline int SeqAsciiStringSize(InstanceType instance_type);
3521 3523
3522 // Computes the size for an AsciiString instance of a given length. 3524 // Computes the size for an AsciiString instance of a given length.
3523 static int SizeFor(int length) { 3525 static int SizeFor(int length) {
3524 return OBJECT_SIZE_ALIGN(kHeaderSize + length * kCharSize); 3526 return OBJECT_SIZE_ALIGN(kHeaderSize + length * kCharSize);
3525 } 3527 }
3526 3528
3527 // Layout description. 3529 // Layout description.
3528 static const int kHeaderSize = String::kSize; 3530 static const int kHeaderSize = String::kSize;
3531 static const int kAlignedSize = POINTER_SIZE_ALIGN(kHeaderSize);
3529 3532
3530 // Support for StringInputBuffer. 3533 // Support for StringInputBuffer.
3531 inline void SeqAsciiStringReadBlockIntoBuffer(ReadBlockBuffer* buffer, 3534 inline void SeqAsciiStringReadBlockIntoBuffer(ReadBlockBuffer* buffer,
3532 unsigned* offset, 3535 unsigned* offset,
3533 unsigned chars); 3536 unsigned chars);
3534 inline const unibrow::byte* SeqAsciiStringReadBlock(unsigned* remaining, 3537 inline const unibrow::byte* SeqAsciiStringReadBlock(unsigned* remaining,
3535 unsigned* offset, 3538 unsigned* offset,
3536 unsigned chars); 3539 unsigned chars);
3537 3540
3538 private: 3541 private:
(...skipping 25 matching lines...) Expand all
3564 // instance. 3567 // instance.
3565 inline int SeqTwoByteStringSize(InstanceType instance_type); 3568 inline int SeqTwoByteStringSize(InstanceType instance_type);
3566 3569
3567 // Computes the size for a TwoByteString instance of a given length. 3570 // Computes the size for a TwoByteString instance of a given length.
3568 static int SizeFor(int length) { 3571 static int SizeFor(int length) {
3569 return OBJECT_SIZE_ALIGN(kHeaderSize + length * kShortSize); 3572 return OBJECT_SIZE_ALIGN(kHeaderSize + length * kShortSize);
3570 } 3573 }
3571 3574
3572 // Layout description. 3575 // Layout description.
3573 static const int kHeaderSize = String::kSize; 3576 static const int kHeaderSize = String::kSize;
3577 static const int kAlignedSize = POINTER_SIZE_ALIGN(kHeaderSize);
3574 3578
3575 // Support for StringInputBuffer. 3579 // Support for StringInputBuffer.
3576 inline void SeqTwoByteStringReadBlockIntoBuffer(ReadBlockBuffer* buffer, 3580 inline void SeqTwoByteStringReadBlockIntoBuffer(ReadBlockBuffer* buffer,
3577 unsigned* offset_ptr, 3581 unsigned* offset_ptr,
3578 unsigned chars); 3582 unsigned chars);
3579 3583
3580 private: 3584 private:
3581 DISALLOW_IMPLICIT_CONSTRUCTORS(SeqTwoByteString); 3585 DISALLOW_IMPLICIT_CONSTRUCTORS(SeqTwoByteString);
3582 }; 3586 };
3583 3587
(...skipping 805 matching lines...) Expand 10 before | Expand all | Expand 10 after
4389 } else { 4393 } else {
4390 value &= ~(1 << bit_position); 4394 value &= ~(1 << bit_position);
4391 } 4395 }
4392 return value; 4396 return value;
4393 } 4397 }
4394 }; 4398 };
4395 4399
4396 } } // namespace v8::internal 4400 } } // namespace v8::internal
4397 4401
4398 #endif // V8_OBJECTS_H_ 4402 #endif // V8_OBJECTS_H_
OLDNEW
« no previous file with comments | « src/heap-inl.h ('k') | src/runtime.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698