| 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 | 
|---|