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 |