OLD | NEW |
---|---|
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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_CRANKSHAFT_X64_LITHIUM_X64_H_ | 5 #ifndef V8_CRANKSHAFT_X64_LITHIUM_X64_H_ |
6 #define V8_CRANKSHAFT_X64_LITHIUM_X64_H_ | 6 #define V8_CRANKSHAFT_X64_LITHIUM_X64_H_ |
7 | 7 |
8 #include "src/crankshaft/hydrogen.h" | 8 #include "src/crankshaft/hydrogen.h" |
9 #include "src/crankshaft/lithium.h" | 9 #include "src/crankshaft/lithium.h" |
10 #include "src/crankshaft/lithium-allocator.h" | 10 #include "src/crankshaft/lithium-allocator.h" |
(...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
225 bit_field_ = IsSyntacticTailCallBits::update(bit_field_, true); | 225 bit_field_ = IsSyntacticTailCallBits::update(bit_field_, true); |
226 } | 226 } |
227 bool IsSyntacticTailCall() const { | 227 bool IsSyntacticTailCall() const { |
228 return IsSyntacticTailCallBits::decode(bit_field_); | 228 return IsSyntacticTailCallBits::decode(bit_field_); |
229 } | 229 } |
230 | 230 |
231 // Interface to the register allocator and iterators. | 231 // Interface to the register allocator and iterators. |
232 bool ClobbersTemps() const { return IsCall(); } | 232 bool ClobbersTemps() const { return IsCall(); } |
233 bool ClobbersRegisters() const { return IsCall(); } | 233 bool ClobbersRegisters() const { return IsCall(); } |
234 virtual bool ClobbersDoubleRegisters(Isolate* isolate) const { | 234 virtual bool ClobbersDoubleRegisters(Isolate* isolate) const { |
235 return IsCall(); | 235 return IsCall() || opcode() == LInstruction::kMaybeGrowElements; |
Benedikt Meurer
2016/08/05 04:35:21
I guess since this is virtual, the proper way to d
| |
236 } | 236 } |
237 | 237 |
238 // Interface to the register allocator and iterators. | 238 // Interface to the register allocator and iterators. |
239 bool IsMarkedAsCall() const { return IsCall(); } | 239 bool IsMarkedAsCall() const { return IsCall(); } |
240 | 240 |
241 virtual bool HasResult() const = 0; | 241 virtual bool HasResult() const = 0; |
242 virtual LOperand* result() const = 0; | 242 virtual LOperand* result() const = 0; |
243 | 243 |
244 LOperand* FirstInput() { return InputAt(0); } | 244 LOperand* FirstInput() { return InputAt(0); } |
245 LOperand* Output() { return HasResult() ? result() : NULL; } | 245 LOperand* Output() { return HasResult() ? result() : NULL; } |
(...skipping 2388 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2634 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); | 2634 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); |
2635 }; | 2635 }; |
2636 | 2636 |
2637 #undef DECLARE_HYDROGEN_ACCESSOR | 2637 #undef DECLARE_HYDROGEN_ACCESSOR |
2638 #undef DECLARE_CONCRETE_INSTRUCTION | 2638 #undef DECLARE_CONCRETE_INSTRUCTION |
2639 | 2639 |
2640 } // namespace internal | 2640 } // namespace internal |
2641 } // namespace v8 | 2641 } // namespace v8 |
2642 | 2642 |
2643 #endif // V8_CRANKSHAFT_X64_LITHIUM_X64_H_ | 2643 #endif // V8_CRANKSHAFT_X64_LITHIUM_X64_H_ |
OLD | NEW |