OLD | NEW |
1 // Copyright 2006-2009 the V8 project authors. All rights reserved. | 1 // Copyright 2006-2009 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 214 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
225 } | 225 } |
226 | 226 |
227 | 227 |
228 void MacroAssembler::LoadRoot(Register destination, | 228 void MacroAssembler::LoadRoot(Register destination, |
229 Heap::RootListIndex index, | 229 Heap::RootListIndex index, |
230 Condition cond) { | 230 Condition cond) { |
231 ldr(destination, MemOperand(roots, index << kPointerSizeLog2), cond); | 231 ldr(destination, MemOperand(roots, index << kPointerSizeLog2), cond); |
232 } | 232 } |
233 | 233 |
234 | 234 |
| 235 void MacroAssembler::StoreRoot(Register source, |
| 236 Heap::RootListIndex index, |
| 237 Condition cond) { |
| 238 str(source, MemOperand(roots, index << kPointerSizeLog2), cond); |
| 239 } |
| 240 |
| 241 |
235 // Will clobber 4 registers: object, offset, scratch, ip. The | 242 // Will clobber 4 registers: object, offset, scratch, ip. The |
236 // register 'object' contains a heap object pointer. The heap object | 243 // register 'object' contains a heap object pointer. The heap object |
237 // tag is shifted away. | 244 // tag is shifted away. |
238 void MacroAssembler::RecordWrite(Register object, Register offset, | 245 void MacroAssembler::RecordWrite(Register object, Register offset, |
239 Register scratch) { | 246 Register scratch) { |
240 // The compiled code assumes that record write doesn't change the | 247 // The compiled code assumes that record write doesn't change the |
241 // context register, so we check that none of the clobbered | 248 // context register, so we check that none of the clobbered |
242 // registers are cp. | 249 // registers are cp. |
243 ASSERT(!object.is(cp) && !offset.is(cp) && !scratch.is(cp)); | 250 ASSERT(!object.is(cp) && !offset.is(cp) && !scratch.is(cp)); |
244 | 251 |
(...skipping 1425 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1670 } | 1677 } |
1671 | 1678 |
1672 | 1679 |
1673 void CodePatcher::Emit(Address addr) { | 1680 void CodePatcher::Emit(Address addr) { |
1674 masm()->emit(reinterpret_cast<Instr>(addr)); | 1681 masm()->emit(reinterpret_cast<Instr>(addr)); |
1675 } | 1682 } |
1676 #endif // ENABLE_DEBUGGER_SUPPORT | 1683 #endif // ENABLE_DEBUGGER_SUPPORT |
1677 | 1684 |
1678 | 1685 |
1679 } } // namespace v8::internal | 1686 } } // namespace v8::internal |
OLD | NEW |