OLD | NEW |
1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef V8_COMPILER_INSTRUCTION_SELECTOR_IMPL_H_ | 5 #ifndef V8_COMPILER_INSTRUCTION_SELECTOR_IMPL_H_ |
6 #define V8_COMPILER_INSTRUCTION_SELECTOR_IMPL_H_ | 6 #define V8_COMPILER_INSTRUCTION_SELECTOR_IMPL_H_ |
7 | 7 |
8 #include "src/compiler/instruction.h" | 8 #include "src/compiler/instruction.h" |
9 #include "src/compiler/instruction-selector.h" | 9 #include "src/compiler/instruction-selector.h" |
10 #include "src/compiler/linkage.h" | 10 #include "src/compiler/linkage.h" |
(...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
217 // a location on the caller frame. | 217 // a location on the caller frame. |
218 return UnallocatedOperand(UnallocatedOperand::FIXED_SLOT, | 218 return UnallocatedOperand(UnallocatedOperand::FIXED_SLOT, |
219 location.AsCallerFrameSlot(), virtual_register); | 219 location.AsCallerFrameSlot(), virtual_register); |
220 } | 220 } |
221 if (location.IsCalleeFrameSlot()) { | 221 if (location.IsCalleeFrameSlot()) { |
222 // a spill location on this (callee) frame. | 222 // a spill location on this (callee) frame. |
223 return UnallocatedOperand(UnallocatedOperand::FIXED_SLOT, | 223 return UnallocatedOperand(UnallocatedOperand::FIXED_SLOT, |
224 location.AsCalleeFrameSlot(), virtual_register); | 224 location.AsCalleeFrameSlot(), virtual_register); |
225 } | 225 } |
226 // a fixed register. | 226 // a fixed register. |
227 if (RepresentationOf(type) == kRepFloat64) { | 227 MachineType rep = RepresentationOf(type); |
| 228 if (rep == kRepFloat64 || rep == kRepFloat32) { |
228 return UnallocatedOperand(UnallocatedOperand::FIXED_DOUBLE_REGISTER, | 229 return UnallocatedOperand(UnallocatedOperand::FIXED_DOUBLE_REGISTER, |
229 location.AsRegister(), virtual_register); | 230 location.AsRegister(), virtual_register); |
230 } | 231 } |
231 return UnallocatedOperand(UnallocatedOperand::FIXED_REGISTER, | 232 return UnallocatedOperand(UnallocatedOperand::FIXED_REGISTER, |
232 location.AsRegister(), virtual_register); | 233 location.AsRegister(), virtual_register); |
233 } | 234 } |
234 | 235 |
235 InstructionSelector* selector_; | 236 InstructionSelector* selector_; |
236 }; | 237 }; |
237 | 238 |
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
375 : (frame_state_descriptor->GetTotalSize() + | 376 : (frame_state_descriptor->GetTotalSize() + |
376 1); // Include deopt id. | 377 1); // Include deopt id. |
377 } | 378 } |
378 }; | 379 }; |
379 | 380 |
380 } // namespace compiler | 381 } // namespace compiler |
381 } // namespace internal | 382 } // namespace internal |
382 } // namespace v8 | 383 } // namespace v8 |
383 | 384 |
384 #endif // V8_COMPILER_INSTRUCTION_SELECTOR_IMPL_H_ | 385 #endif // V8_COMPILER_INSTRUCTION_SELECTOR_IMPL_H_ |
OLD | NEW |