Changeset 222871 in webkit for trunk/Source/JavaScriptCore/assembler/ProbeStack.h
- Timestamp:
- Oct 4, 2017, 1:00:01 PM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/assembler/ProbeStack.h
r222058 r222871 96 96 } 97 97 98 void* lowWatermarkFromVisitingDirtyChunks(); 99 98 100 private: 99 101 uint64_t dirtyBitFor(void* logicalAddress) … … 147 149 public: 148 150 Stack() 149 : m_lowWatermark(reinterpret_cast<void*>(-1)) 150 , m_stackBounds(Thread::current().stack()) 151 : m_stackBounds(Thread::current().stack()) 151 152 { } 152 153 Stack(Stack&& other); 153 154 154 void* lowWatermark() 155 { 156 // We use the chunkAddress for the low watermark because we'll be doing write backs 157 // to the stack in increments of chunks. Hence, we'll treat the lowest address of 158 // the chunk as the low watermark of any given set address. 159 return Page::chunkAddressFor(m_lowWatermark); 155 void* lowWatermarkFromVisitingDirtyPages(); 156 void* lowWatermark(void* stackPointer) 157 { 158 ASSERT(Page::chunkAddressFor(stackPointer) == lowWatermarkFromVisitingDirtyPages()); 159 return Page::chunkAddressFor(stackPointer); 160 160 } 161 161 … … 177 177 Page* page = pageFor(address); 178 178 page->set<T>(address, value); 179 180 if (address < m_lowWatermark)181 m_lowWatermark = address;182 179 } 183 180 … … 190 187 JS_EXPORT_PRIVATE Page* ensurePageFor(void* address); 191 188 192 void* newStackPointer() const { return m_newStackPointer; };193 void set NewStackPointer(void* sp) { m_newStackPointer = sp; };189 void* savedStackPointer() const { return m_savedStackPointer; } 190 void setSavedStackPointer(void* sp) { m_savedStackPointer = sp; } 194 191 195 192 bool hasWritesToFlush(); … … 208 205 } 209 206 210 void* m_newStackPointer { nullptr }; 211 void* m_lowWatermark; 207 void* m_savedStackPointer { nullptr }; 212 208 213 209 // A cache of the last accessed page details for quick access.
Note:
See TracChangeset
for help on using the changeset viewer.