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

Side by Side Diff: src/arm/assembler-arm-inl.h

Issue 16631002: Separate Cell and PropertyCell spaces (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Merge with ToT Created 7 years, 6 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
OLDNEW
1 // Copyright (c) 1994-2006 Sun Microsystems Inc. 1 // Copyright (c) 1994-2006 Sun Microsystems Inc.
2 // All Rights Reserved. 2 // All Rights Reserved.
3 // 3 //
4 // Redistribution and use in source and binary forms, with or without 4 // Redistribution and use in source and binary forms, with or without
5 // modification, are permitted provided that the following conditions 5 // modification, are permitted provided that the following conditions
6 // are met: 6 // are met:
7 // 7 //
8 // - Redistributions of source code must retain the above copyright notice, 8 // - Redistributions of source code must retain the above copyright notice,
9 // this list of conditions and the following disclaimer. 9 // this list of conditions and the following disclaimer.
10 // 10 //
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after
172 } 172 }
173 173
174 174
175 void RelocInfo::set_target_runtime_entry(Address target, 175 void RelocInfo::set_target_runtime_entry(Address target,
176 WriteBarrierMode mode) { 176 WriteBarrierMode mode) {
177 ASSERT(IsRuntimeEntry(rmode_)); 177 ASSERT(IsRuntimeEntry(rmode_));
178 if (target_address() != target) set_target_address(target, mode); 178 if (target_address() != target) set_target_address(target, mode);
179 } 179 }
180 180
181 181
182 Handle<JSGlobalPropertyCell> RelocInfo::target_cell_handle() { 182 Handle<Cell> RelocInfo::target_cell_handle() {
183 ASSERT(rmode_ == RelocInfo::GLOBAL_PROPERTY_CELL); 183 ASSERT(rmode_ == RelocInfo::GLOBAL_PROPERTY_CELL);
184 Address address = Memory::Address_at(pc_); 184 Address address = Memory::Address_at(pc_);
185 return Handle<JSGlobalPropertyCell>( 185 return Handle<Cell>(reinterpret_cast<Cell**>(address));
186 reinterpret_cast<JSGlobalPropertyCell**>(address));
187 } 186 }
188 187
189 188
190 JSGlobalPropertyCell* RelocInfo::target_cell() { 189 Cell* RelocInfo::target_cell() {
191 ASSERT(rmode_ == RelocInfo::GLOBAL_PROPERTY_CELL); 190 ASSERT(rmode_ == RelocInfo::GLOBAL_PROPERTY_CELL);
192 return JSGlobalPropertyCell::FromValueAddress(Memory::Address_at(pc_)); 191 return Cell::FromValueAddress(Memory::Address_at(pc_));
193 } 192 }
194 193
195 194
196 void RelocInfo::set_target_cell(JSGlobalPropertyCell* cell, 195 void RelocInfo::set_target_cell(Cell* cell, WriteBarrierMode mode) {
197 WriteBarrierMode mode) {
198 ASSERT(rmode_ == RelocInfo::GLOBAL_PROPERTY_CELL); 196 ASSERT(rmode_ == RelocInfo::GLOBAL_PROPERTY_CELL);
199 Address address = cell->address() + JSGlobalPropertyCell::kValueOffset; 197 Address address = cell->address() + Cell::kValueOffset;
200 Memory::Address_at(pc_) = address; 198 Memory::Address_at(pc_) = address;
201 if (mode == UPDATE_WRITE_BARRIER && host() != NULL) { 199 if (mode == UPDATE_WRITE_BARRIER && host() != NULL) {
202 // TODO(1550) We are passing NULL as a slot because cell can never be on 200 // TODO(1550) We are passing NULL as a slot because cell can never be on
203 // evacuation candidate. 201 // evacuation candidate.
204 host()->GetHeap()->incremental_marking()->RecordWrite( 202 host()->GetHeap()->incremental_marking()->RecordWrite(
205 host(), NULL, cell); 203 host(), NULL, cell);
206 } 204 }
207 } 205 }
208 206
209 207
(...skipping 308 matching lines...) Expand 10 before | Expand all | Expand 10 after
518 516
519 517
520 void Assembler::set_target_address_at(Address pc, Address target) { 518 void Assembler::set_target_address_at(Address pc, Address target) {
521 set_target_pointer_at(pc, target); 519 set_target_pointer_at(pc, target);
522 } 520 }
523 521
524 522
525 } } // namespace v8::internal 523 } } // namespace v8::internal
526 524
527 #endif // V8_ARM_ASSEMBLER_ARM_INL_H_ 525 #endif // V8_ARM_ASSEMBLER_ARM_INL_H_
OLDNEW
« no previous file with comments | « src/api.cc ('k') | src/arm/code-stubs-arm.cc » ('j') | src/arm/code-stubs-arm.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698