| 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 7244 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7255 // StoreArrayLiteralElementStub::Generate | 7255 // StoreArrayLiteralElementStub::Generate |
| 7256 { REG(r5), REG(r0), REG(r6), EMIT_REMEMBERED_SET }, | 7256 { REG(r5), REG(r0), REG(r6), EMIT_REMEMBERED_SET }, |
| 7257 // FastNewClosureStub::Generate | 7257 // FastNewClosureStub::Generate |
| 7258 { REG(r2), REG(r4), REG(r1), EMIT_REMEMBERED_SET }, | 7258 { REG(r2), REG(r4), REG(r1), EMIT_REMEMBERED_SET }, |
| 7259 // Null termination. | 7259 // Null termination. |
| 7260 { REG(no_reg), REG(no_reg), REG(no_reg), EMIT_REMEMBERED_SET} | 7260 { REG(no_reg), REG(no_reg), REG(no_reg), EMIT_REMEMBERED_SET} |
| 7261 }; | 7261 }; |
| 7262 | 7262 |
| 7263 #undef REG | 7263 #undef REG |
| 7264 | 7264 |
| 7265 |
| 7265 bool RecordWriteStub::IsPregenerated() { | 7266 bool RecordWriteStub::IsPregenerated() { |
| 7266 for (const AheadOfTimeWriteBarrierStubList* entry = kAheadOfTime; | 7267 for (const AheadOfTimeWriteBarrierStubList* entry = kAheadOfTime; |
| 7267 !entry->object.is(no_reg); | 7268 !entry->object.is(no_reg); |
| 7268 entry++) { | 7269 entry++) { |
| 7269 if (object_.is(entry->object) && | 7270 if (object_.is(entry->object) && |
| 7270 value_.is(entry->value) && | 7271 value_.is(entry->value) && |
| 7271 address_.is(entry->address) && | 7272 address_.is(entry->address) && |
| 7272 remembered_set_action_ == entry->action && | 7273 remembered_set_action_ == entry->action && |
| 7273 save_fp_regs_mode_ == kDontSaveFPRegs) { | 7274 save_fp_regs_mode_ == kDontSaveFPRegs) { |
| 7274 return true; | 7275 return true; |
| (...skipping 21 matching lines...) Expand all Loading... |
| 7296 RecordWriteStub stub(entry->object, | 7297 RecordWriteStub stub(entry->object, |
| 7297 entry->value, | 7298 entry->value, |
| 7298 entry->address, | 7299 entry->address, |
| 7299 entry->action, | 7300 entry->action, |
| 7300 kDontSaveFPRegs); | 7301 kDontSaveFPRegs); |
| 7301 stub.GetCode()->set_is_pregenerated(true); | 7302 stub.GetCode()->set_is_pregenerated(true); |
| 7302 } | 7303 } |
| 7303 } | 7304 } |
| 7304 | 7305 |
| 7305 | 7306 |
| 7307 bool CodeStub::CanUseFPRegisters() { |
| 7308 return CpuFeatures::IsSupported(VFP2); |
| 7309 } |
| 7310 |
| 7311 |
| 7306 // Takes the input in 3 registers: address_ value_ and object_. A pointer to | 7312 // Takes the input in 3 registers: address_ value_ and object_. A pointer to |
| 7307 // the value has just been written into the object, now this stub makes sure | 7313 // the value has just been written into the object, now this stub makes sure |
| 7308 // we keep the GC informed. The word in the object where the value has been | 7314 // we keep the GC informed. The word in the object where the value has been |
| 7309 // written is in the address register. | 7315 // written is in the address register. |
| 7310 void RecordWriteStub::Generate(MacroAssembler* masm) { | 7316 void RecordWriteStub::Generate(MacroAssembler* masm) { |
| 7311 Label skip_to_incremental_noncompacting; | 7317 Label skip_to_incremental_noncompacting; |
| 7312 Label skip_to_incremental_compacting; | 7318 Label skip_to_incremental_compacting; |
| 7313 | 7319 |
| 7314 // The first two instructions are generated with labels so as to get the | 7320 // The first two instructions are generated with labels so as to get the |
| 7315 // offset fixed up correctly by the bind(Label*) call. We patch it back and | 7321 // offset fixed up correctly by the bind(Label*) call. We patch it back and |
| (...skipping 309 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7625 | 7631 |
| 7626 __ Pop(lr, r5, r1); | 7632 __ Pop(lr, r5, r1); |
| 7627 __ Ret(); | 7633 __ Ret(); |
| 7628 } | 7634 } |
| 7629 | 7635 |
| 7630 #undef __ | 7636 #undef __ |
| 7631 | 7637 |
| 7632 } } // namespace v8::internal | 7638 } } // namespace v8::internal |
| 7633 | 7639 |
| 7634 #endif // V8_TARGET_ARCH_ARM | 7640 #endif // V8_TARGET_ARCH_ARM |
| OLD | NEW |