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

Side by Side Diff: src/objects.h

Issue 227533006: Synchronize store buffer processing and concurrent sweeping. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 8 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 | Annotate | Revision Log
« no previous file with comments | « src/mark-compact.cc ('k') | src/objects-inl.h » ('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 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
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
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
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_
OLDNEW
« no previous file with comments | « src/mark-compact.cc ('k') | src/objects-inl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698