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 7188 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7199 RecordWriteStub stub(entry->object, | 7199 RecordWriteStub stub(entry->object, |
7200 entry->value, | 7200 entry->value, |
7201 entry->address, | 7201 entry->address, |
7202 entry->action, | 7202 entry->action, |
7203 kDontSaveFPRegs); | 7203 kDontSaveFPRegs); |
7204 stub.GetCode()->set_is_pregenerated(true); | 7204 stub.GetCode()->set_is_pregenerated(true); |
7205 } | 7205 } |
7206 } | 7206 } |
7207 | 7207 |
7208 | 7208 |
| 7209 bool CodeStub::CanUseFPRegisters() { |
| 7210 return CpuFeatures::IsSupported(SSE2); |
| 7211 } |
| 7212 |
| 7213 |
7209 // Takes the input in 3 registers: address_ value_ and object_. A pointer to | 7214 // Takes the input in 3 registers: address_ value_ and object_. A pointer to |
7210 // the value has just been written into the object, now this stub makes sure | 7215 // the value has just been written into the object, now this stub makes sure |
7211 // we keep the GC informed. The word in the object where the value has been | 7216 // we keep the GC informed. The word in the object where the value has been |
7212 // written is in the address register. | 7217 // written is in the address register. |
7213 void RecordWriteStub::Generate(MacroAssembler* masm) { | 7218 void RecordWriteStub::Generate(MacroAssembler* masm) { |
7214 Label skip_to_incremental_noncompacting; | 7219 Label skip_to_incremental_noncompacting; |
7215 Label skip_to_incremental_compacting; | 7220 Label skip_to_incremental_compacting; |
7216 | 7221 |
7217 // The first two instructions are generated with labels so as to get the | 7222 // The first two instructions are generated with labels so as to get the |
7218 // offset fixed up correctly by the bind(Label*) call. We patch it back and | 7223 // offset fixed up correctly by the bind(Label*) call. We patch it back and |
(...skipping 304 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7523 // Restore ecx. | 7528 // Restore ecx. |
7524 __ pop(ecx); | 7529 __ pop(ecx); |
7525 __ ret(0); | 7530 __ ret(0); |
7526 } | 7531 } |
7527 | 7532 |
7528 #undef __ | 7533 #undef __ |
7529 | 7534 |
7530 } } // namespace v8::internal | 7535 } } // namespace v8::internal |
7531 | 7536 |
7532 #endif // V8_TARGET_ARCH_IA32 | 7537 #endif // V8_TARGET_ARCH_IA32 |
OLD | NEW |