OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 1789 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1800 // new space, or if the value is an immortal immutable object, like the maps | 1800 // new space, or if the value is an immortal immutable object, like the maps |
1801 // of primitive (non-JS) objects like strings, heap numbers etc. | 1801 // of primitive (non-JS) objects like strings, heap numbers etc. |
1802 inline void set_map_no_write_barrier(Map* value); | 1802 inline void set_map_no_write_barrier(Map* value); |
1803 | 1803 |
1804 // Get the map using acquire load. | 1804 // Get the map using acquire load. |
1805 inline Map* synchronized_map(); | 1805 inline Map* synchronized_map(); |
1806 inline MapWord synchronized_map_word(); | 1806 inline MapWord synchronized_map_word(); |
1807 | 1807 |
1808 // Set the map using release store | 1808 // Set the map using release store |
1809 inline void synchronized_set_map(Map* value); | 1809 inline void synchronized_set_map(Map* value); |
| 1810 inline void synchronized_set_map_no_write_barrier(Map* value); |
1810 inline void synchronized_set_map_word(MapWord map_word); | 1811 inline void synchronized_set_map_word(MapWord map_word); |
1811 | 1812 |
1812 // During garbage collection, the map word of a heap object does not | 1813 // During garbage collection, the map word of a heap object does not |
1813 // necessarily contain a map pointer. | 1814 // necessarily contain a map pointer. |
1814 inline MapWord map_word(); | 1815 inline MapWord map_word(); |
1815 inline void set_map_word(MapWord map_word); | 1816 inline void set_map_word(MapWord map_word); |
1816 | 1817 |
1817 // The Heap the object was allocated in. Used also to access Isolate. | 1818 // The Heap the object was allocated in. Used also to access Isolate. |
1818 inline Heap* GetHeap(); | 1819 inline Heap* GetHeap(); |
1819 | 1820 |
(...skipping 2980 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4800 | 4801 |
4801 | 4802 |
4802 // FreeSpace represents fixed sized areas of the heap that are not currently in | 4803 // FreeSpace represents fixed sized areas of the heap that are not currently in |
4803 // use. Used by the heap and GC. | 4804 // use. Used by the heap and GC. |
4804 class FreeSpace: public HeapObject { | 4805 class FreeSpace: public HeapObject { |
4805 public: | 4806 public: |
4806 // [size]: size of the free space including the header. | 4807 // [size]: size of the free space including the header. |
4807 inline int size(); | 4808 inline int size(); |
4808 inline void set_size(int value); | 4809 inline void set_size(int value); |
4809 | 4810 |
| 4811 inline int nobarrier_size(); |
| 4812 inline void nobarrier_set_size(int value); |
| 4813 |
4810 inline int Size() { return size(); } | 4814 inline int Size() { return size(); } |
4811 | 4815 |
4812 // Casting. | 4816 // Casting. |
4813 static inline FreeSpace* cast(Object* obj); | 4817 static inline FreeSpace* cast(Object* obj); |
4814 | 4818 |
4815 // Dispatched behavior. | 4819 // Dispatched behavior. |
4816 DECLARE_PRINTER(FreeSpace) | 4820 DECLARE_PRINTER(FreeSpace) |
4817 DECLARE_VERIFIER(FreeSpace) | 4821 DECLARE_VERIFIER(FreeSpace) |
4818 | 4822 |
4819 // Layout description. | 4823 // Layout description. |
(...skipping 6170 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10990 } else { | 10994 } else { |
10991 value &= ~(1 << bit_position); | 10995 value &= ~(1 << bit_position); |
10992 } | 10996 } |
10993 return value; | 10997 return value; |
10994 } | 10998 } |
10995 }; | 10999 }; |
10996 | 11000 |
10997 } } // namespace v8::internal | 11001 } } // namespace v8::internal |
10998 | 11002 |
10999 #endif // V8_OBJECTS_H_ | 11003 #endif // V8_OBJECTS_H_ |
OLD | NEW |