| 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_MIPS_LITHIUM_MIPS_H_ | 5 #ifndef V8_MIPS_LITHIUM_MIPS_H_ |
| 6 #define V8_MIPS_LITHIUM_MIPS_H_ | 6 #define V8_MIPS_LITHIUM_MIPS_H_ |
| 7 | 7 |
| 8 #include "src/hydrogen.h" | 8 #include "src/hydrogen.h" |
| 9 #include "src/lithium.h" | 9 #include "src/lithium.h" |
| 10 #include "src/lithium-allocator.h" | 10 #include "src/lithium-allocator.h" |
| (...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 164 | 164 |
| 165 #define DECLARE_CONCRETE_INSTRUCTION(type, mnemonic) \ | 165 #define DECLARE_CONCRETE_INSTRUCTION(type, mnemonic) \ |
| 166 virtual Opcode opcode() const V8_FINAL V8_OVERRIDE { \ | 166 virtual Opcode opcode() const V8_FINAL V8_OVERRIDE { \ |
| 167 return LInstruction::k##type; \ | 167 return LInstruction::k##type; \ |
| 168 } \ | 168 } \ |
| 169 virtual void CompileToNative(LCodeGen* generator) V8_FINAL V8_OVERRIDE; \ | 169 virtual void CompileToNative(LCodeGen* generator) V8_FINAL V8_OVERRIDE; \ |
| 170 virtual const char* Mnemonic() const V8_FINAL V8_OVERRIDE { \ | 170 virtual const char* Mnemonic() const V8_FINAL V8_OVERRIDE { \ |
| 171 return mnemonic; \ | 171 return mnemonic; \ |
| 172 } \ | 172 } \ |
| 173 static L##type* cast(LInstruction* instr) { \ | 173 static L##type* cast(LInstruction* instr) { \ |
| 174 ASSERT(instr->Is##type()); \ | 174 DCHECK(instr->Is##type()); \ |
| 175 return reinterpret_cast<L##type*>(instr); \ | 175 return reinterpret_cast<L##type*>(instr); \ |
| 176 } | 176 } |
| 177 | 177 |
| 178 | 178 |
| 179 #define DECLARE_HYDROGEN_ACCESSOR(type) \ | 179 #define DECLARE_HYDROGEN_ACCESSOR(type) \ |
| 180 H##type* hydrogen() const { \ | 180 H##type* hydrogen() const { \ |
| 181 return H##type::cast(hydrogen_value()); \ | 181 return H##type::cast(hydrogen_value()); \ |
| 182 } | 182 } |
| 183 | 183 |
| 184 | 184 |
| (...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 324 parallel_moves_[BEFORE] = NULL; | 324 parallel_moves_[BEFORE] = NULL; |
| 325 parallel_moves_[START] = NULL; | 325 parallel_moves_[START] = NULL; |
| 326 parallel_moves_[END] = NULL; | 326 parallel_moves_[END] = NULL; |
| 327 parallel_moves_[AFTER] = NULL; | 327 parallel_moves_[AFTER] = NULL; |
| 328 } | 328 } |
| 329 | 329 |
| 330 // Can't use the DECLARE-macro here because of sub-classes. | 330 // Can't use the DECLARE-macro here because of sub-classes. |
| 331 virtual bool IsGap() const V8_FINAL V8_OVERRIDE { return true; } | 331 virtual bool IsGap() const V8_FINAL V8_OVERRIDE { return true; } |
| 332 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; | 332 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; |
| 333 static LGap* cast(LInstruction* instr) { | 333 static LGap* cast(LInstruction* instr) { |
| 334 ASSERT(instr->IsGap()); | 334 DCHECK(instr->IsGap()); |
| 335 return reinterpret_cast<LGap*>(instr); | 335 return reinterpret_cast<LGap*>(instr); |
| 336 } | 336 } |
| 337 | 337 |
| 338 bool IsRedundant() const; | 338 bool IsRedundant() const; |
| 339 | 339 |
| 340 HBasicBlock* block() const { return block_; } | 340 HBasicBlock* block() const { return block_; } |
| 341 | 341 |
| 342 enum InnerPosition { | 342 enum InnerPosition { |
| 343 BEFORE, | 343 BEFORE, |
| 344 START, | 344 START, |
| (...skipping 1187 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1532 inputs_[1] = context; | 1532 inputs_[1] = context; |
| 1533 inputs_[2] = parameter_count; | 1533 inputs_[2] = parameter_count; |
| 1534 } | 1534 } |
| 1535 | 1535 |
| 1536 LOperand* value() { return inputs_[0]; } | 1536 LOperand* value() { return inputs_[0]; } |
| 1537 | 1537 |
| 1538 bool has_constant_parameter_count() { | 1538 bool has_constant_parameter_count() { |
| 1539 return parameter_count()->IsConstantOperand(); | 1539 return parameter_count()->IsConstantOperand(); |
| 1540 } | 1540 } |
| 1541 LConstantOperand* constant_parameter_count() { | 1541 LConstantOperand* constant_parameter_count() { |
| 1542 ASSERT(has_constant_parameter_count()); | 1542 DCHECK(has_constant_parameter_count()); |
| 1543 return LConstantOperand::cast(parameter_count()); | 1543 return LConstantOperand::cast(parameter_count()); |
| 1544 } | 1544 } |
| 1545 LOperand* parameter_count() { return inputs_[2]; } | 1545 LOperand* parameter_count() { return inputs_[2]; } |
| 1546 | 1546 |
| 1547 DECLARE_CONCRETE_INSTRUCTION(Return, "return") | 1547 DECLARE_CONCRETE_INSTRUCTION(Return, "return") |
| 1548 }; | 1548 }; |
| 1549 | 1549 |
| 1550 | 1550 |
| 1551 class LLoadNamedField V8_FINAL : public LTemplateInstruction<1, 1, 0> { | 1551 class LLoadNamedField V8_FINAL : public LTemplateInstruction<1, 1, 0> { |
| 1552 public: | 1552 public: |
| (...skipping 280 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1833 }; | 1833 }; |
| 1834 | 1834 |
| 1835 | 1835 |
| 1836 class LCallWithDescriptor V8_FINAL : public LTemplateResultInstruction<1> { | 1836 class LCallWithDescriptor V8_FINAL : public LTemplateResultInstruction<1> { |
| 1837 public: | 1837 public: |
| 1838 LCallWithDescriptor(const InterfaceDescriptor* descriptor, | 1838 LCallWithDescriptor(const InterfaceDescriptor* descriptor, |
| 1839 const ZoneList<LOperand*>& operands, | 1839 const ZoneList<LOperand*>& operands, |
| 1840 Zone* zone) | 1840 Zone* zone) |
| 1841 : descriptor_(descriptor), | 1841 : descriptor_(descriptor), |
| 1842 inputs_(descriptor->GetRegisterParameterCount() + 1, zone) { | 1842 inputs_(descriptor->GetRegisterParameterCount() + 1, zone) { |
| 1843 ASSERT(descriptor->GetRegisterParameterCount() + 1 == operands.length()); | 1843 DCHECK(descriptor->GetRegisterParameterCount() + 1 == operands.length()); |
| 1844 inputs_.AddAll(operands, zone); | 1844 inputs_.AddAll(operands, zone); |
| 1845 } | 1845 } |
| 1846 | 1846 |
| 1847 LOperand* target() const { return inputs_[0]; } | 1847 LOperand* target() const { return inputs_[0]; } |
| 1848 | 1848 |
| 1849 const InterfaceDescriptor* descriptor() { return descriptor_; } | 1849 const InterfaceDescriptor* descriptor() { return descriptor_; } |
| 1850 | 1850 |
| 1851 private: | 1851 private: |
| 1852 DECLARE_CONCRETE_INSTRUCTION(CallWithDescriptor, "call-with-descriptor") | 1852 DECLARE_CONCRETE_INSTRUCTION(CallWithDescriptor, "call-with-descriptor") |
| 1853 DECLARE_HYDROGEN_ACCESSOR(CallWithDescriptor) | 1853 DECLARE_HYDROGEN_ACCESSOR(CallWithDescriptor) |
| (...skipping 999 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2853 | 2853 |
| 2854 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); | 2854 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); |
| 2855 }; | 2855 }; |
| 2856 | 2856 |
| 2857 #undef DECLARE_HYDROGEN_ACCESSOR | 2857 #undef DECLARE_HYDROGEN_ACCESSOR |
| 2858 #undef DECLARE_CONCRETE_INSTRUCTION | 2858 #undef DECLARE_CONCRETE_INSTRUCTION |
| 2859 | 2859 |
| 2860 } } // namespace v8::internal | 2860 } } // namespace v8::internal |
| 2861 | 2861 |
| 2862 #endif // V8_MIPS_LITHIUM_MIPS_H_ | 2862 #endif // V8_MIPS_LITHIUM_MIPS_H_ |
| OLD | NEW |