| 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 241 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 252 HValue* hydrogen_value() const { return hydrogen_value_; } | 252 HValue* hydrogen_value() const { return hydrogen_value_; } |
| 253 | 253 |
| 254 virtual void SetDeferredLazyDeoptimizationEnvironment(LEnvironment* env) { } | 254 virtual void SetDeferredLazyDeoptimizationEnvironment(LEnvironment* env) { } |
| 255 | 255 |
| 256 void MarkAsCall() { bit_field_ = IsCallBits::update(bit_field_, true); } | 256 void MarkAsCall() { bit_field_ = IsCallBits::update(bit_field_, true); } |
| 257 bool IsCall() const { return IsCallBits::decode(bit_field_); } | 257 bool IsCall() const { return IsCallBits::decode(bit_field_); } |
| 258 | 258 |
| 259 // Interface to the register allocator and iterators. | 259 // Interface to the register allocator and iterators. |
| 260 bool ClobbersTemps() const { return IsCall(); } | 260 bool ClobbersTemps() const { return IsCall(); } |
| 261 bool ClobbersRegisters() const { return IsCall(); } | 261 bool ClobbersRegisters() const { return IsCall(); } |
| 262 virtual bool ClobbersDoubleRegisters() const { return IsCall(); } | 262 virtual bool ClobbersDoubleRegisters(Isolate* isolate) const V8_OVERRIDE { |
| 263 return IsCall(); |
| 264 } |
| 263 | 265 |
| 264 // Interface to the register allocator and iterators. | 266 // Interface to the register allocator and iterators. |
| 265 bool IsMarkedAsCall() const { return IsCall(); } | 267 bool IsMarkedAsCall() const { return IsCall(); } |
| 266 | 268 |
| 267 virtual bool HasResult() const = 0; | 269 virtual bool HasResult() const = 0; |
| 268 virtual LOperand* result() const = 0; | 270 virtual LOperand* result() const = 0; |
| 269 | 271 |
| 270 LOperand* FirstInput() { return InputAt(0); } | 272 LOperand* FirstInput() { return InputAt(0); } |
| 271 LOperand* Output() { return HasResult() ? result() : NULL; } | 273 LOperand* Output() { return HasResult() ? result() : NULL; } |
| 272 | 274 |
| (...skipping 1667 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1940 public: | 1942 public: |
| 1941 explicit LCallRuntime(LOperand* context) { | 1943 explicit LCallRuntime(LOperand* context) { |
| 1942 inputs_[0] = context; | 1944 inputs_[0] = context; |
| 1943 } | 1945 } |
| 1944 | 1946 |
| 1945 LOperand* context() { return inputs_[0]; } | 1947 LOperand* context() { return inputs_[0]; } |
| 1946 | 1948 |
| 1947 DECLARE_CONCRETE_INSTRUCTION(CallRuntime, "call-runtime") | 1949 DECLARE_CONCRETE_INSTRUCTION(CallRuntime, "call-runtime") |
| 1948 DECLARE_HYDROGEN_ACCESSOR(CallRuntime) | 1950 DECLARE_HYDROGEN_ACCESSOR(CallRuntime) |
| 1949 | 1951 |
| 1950 virtual bool ClobbersDoubleRegisters() const V8_OVERRIDE { | 1952 virtual bool ClobbersDoubleRegisters(Isolate* isolate) const V8_OVERRIDE { |
| 1951 return save_doubles() == kDontSaveFPRegs; | 1953 return save_doubles() == kDontSaveFPRegs; |
| 1952 } | 1954 } |
| 1953 | 1955 |
| 1954 const Runtime::Function* function() const { return hydrogen()->function(); } | 1956 const Runtime::Function* function() const { return hydrogen()->function(); } |
| 1955 int arity() const { return hydrogen()->argument_count(); } | 1957 int arity() const { return hydrogen()->argument_count(); } |
| 1956 SaveFPRegsMode save_doubles() const { return hydrogen()->save_doubles(); } | 1958 SaveFPRegsMode save_doubles() const { return hydrogen()->save_doubles(); } |
| 1957 }; | 1959 }; |
| 1958 | 1960 |
| 1959 | 1961 |
| 1960 class LInteger32ToDouble V8_FINAL : public LTemplateInstruction<1, 1, 0> { | 1962 class LInteger32ToDouble V8_FINAL : public LTemplateInstruction<1, 1, 0> { |
| (...skipping 703 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2664 : LChunkBuilderBase(graph->zone()), | 2666 : LChunkBuilderBase(graph->zone()), |
| 2665 chunk_(NULL), | 2667 chunk_(NULL), |
| 2666 info_(info), | 2668 info_(info), |
| 2667 graph_(graph), | 2669 graph_(graph), |
| 2668 status_(UNUSED), | 2670 status_(UNUSED), |
| 2669 current_instruction_(NULL), | 2671 current_instruction_(NULL), |
| 2670 current_block_(NULL), | 2672 current_block_(NULL), |
| 2671 next_block_(NULL), | 2673 next_block_(NULL), |
| 2672 allocator_(allocator) { } | 2674 allocator_(allocator) { } |
| 2673 | 2675 |
| 2676 Isolate* isolate() const { return graph_->isolate(); } |
| 2677 |
| 2674 // Build the sequence for the graph. | 2678 // Build the sequence for the graph. |
| 2675 LPlatformChunk* Build(); | 2679 LPlatformChunk* Build(); |
| 2676 | 2680 |
| 2677 LInstruction* CheckElideControlInstruction(HControlInstruction* instr); | 2681 LInstruction* CheckElideControlInstruction(HControlInstruction* instr); |
| 2678 | 2682 |
| 2679 // Declare methods that deal with the individual node types. | 2683 // Declare methods that deal with the individual node types. |
| 2680 #define DECLARE_DO(type) LInstruction* Do##type(H##type* node); | 2684 #define DECLARE_DO(type) LInstruction* Do##type(H##type* node); |
| 2681 HYDROGEN_CONCRETE_INSTRUCTION_LIST(DECLARE_DO) | 2685 HYDROGEN_CONCRETE_INSTRUCTION_LIST(DECLARE_DO) |
| 2682 #undef DECLARE_DO | 2686 #undef DECLARE_DO |
| 2683 | 2687 |
| (...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2816 | 2820 |
| 2817 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); | 2821 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); |
| 2818 }; | 2822 }; |
| 2819 | 2823 |
| 2820 #undef DECLARE_HYDROGEN_ACCESSOR | 2824 #undef DECLARE_HYDROGEN_ACCESSOR |
| 2821 #undef DECLARE_CONCRETE_INSTRUCTION | 2825 #undef DECLARE_CONCRETE_INSTRUCTION |
| 2822 | 2826 |
| 2823 } } // namespace v8::internal | 2827 } } // namespace v8::internal |
| 2824 | 2828 |
| 2825 #endif // V8_MIPS_LITHIUM_MIPS_H_ | 2829 #endif // V8_MIPS_LITHIUM_MIPS_H_ |
| OLD | NEW |