| 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 6126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6137 RecordWriteStub stub(entry->object, | 6137 RecordWriteStub stub(entry->object, |
| 6138 entry->value, | 6138 entry->value, |
| 6139 entry->address, | 6139 entry->address, |
| 6140 entry->action, | 6140 entry->action, |
| 6141 kDontSaveFPRegs); | 6141 kDontSaveFPRegs); |
| 6142 stub.GetCode()->set_is_pregenerated(true); | 6142 stub.GetCode()->set_is_pregenerated(true); |
| 6143 } | 6143 } |
| 6144 } | 6144 } |
| 6145 | 6145 |
| 6146 | 6146 |
| 6147 bool CodeStub::CanUseFPRegisters() { |
| 6148 return true; // Always have SSE2 on x64. |
| 6149 } |
| 6150 |
| 6151 |
| 6147 // Takes the input in 3 registers: address_ value_ and object_. A pointer to | 6152 // Takes the input in 3 registers: address_ value_ and object_. A pointer to |
| 6148 // the value has just been written into the object, now this stub makes sure | 6153 // the value has just been written into the object, now this stub makes sure |
| 6149 // we keep the GC informed. The word in the object where the value has been | 6154 // we keep the GC informed. The word in the object where the value has been |
| 6150 // written is in the address register. | 6155 // written is in the address register. |
| 6151 void RecordWriteStub::Generate(MacroAssembler* masm) { | 6156 void RecordWriteStub::Generate(MacroAssembler* masm) { |
| 6152 Label skip_to_incremental_noncompacting; | 6157 Label skip_to_incremental_noncompacting; |
| 6153 Label skip_to_incremental_compacting; | 6158 Label skip_to_incremental_compacting; |
| 6154 | 6159 |
| 6155 // The first two instructions are generated with labels so as to get the | 6160 // The first two instructions are generated with labels so as to get the |
| 6156 // offset fixed up correctly by the bind(Label*) call. We patch it back and | 6161 // offset fixed up correctly by the bind(Label*) call. We patch it back and |
| (...skipping 343 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6500 #endif | 6505 #endif |
| 6501 | 6506 |
| 6502 __ Ret(); | 6507 __ Ret(); |
| 6503 } | 6508 } |
| 6504 | 6509 |
| 6505 #undef __ | 6510 #undef __ |
| 6506 | 6511 |
| 6507 } } // namespace v8::internal | 6512 } } // namespace v8::internal |
| 6508 | 6513 |
| 6509 #endif // V8_TARGET_ARCH_X64 | 6514 #endif // V8_TARGET_ARCH_X64 |
| OLD | NEW |