OLD | NEW |
1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 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_ARM64_LITHIUM_ARM64_H_ | 5 #ifndef V8_ARM64_LITHIUM_ARM64_H_ |
6 #define V8_ARM64_LITHIUM_ARM64_H_ | 6 #define V8_ARM64_LITHIUM_ARM64_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 829 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
840 | 840 |
841 DECLARE_CONCRETE_INSTRUCTION(CallJSFunction, "call-js-function") | 841 DECLARE_CONCRETE_INSTRUCTION(CallJSFunction, "call-js-function") |
842 DECLARE_HYDROGEN_ACCESSOR(CallJSFunction) | 842 DECLARE_HYDROGEN_ACCESSOR(CallJSFunction) |
843 | 843 |
844 void PrintDataTo(StringStream* stream) OVERRIDE; | 844 void PrintDataTo(StringStream* stream) OVERRIDE; |
845 | 845 |
846 int arity() const { return hydrogen()->argument_count() - 1; } | 846 int arity() const { return hydrogen()->argument_count() - 1; } |
847 }; | 847 }; |
848 | 848 |
849 | 849 |
850 class LCallFunction FINAL : public LTemplateInstruction<1, 2, 0> { | 850 class LCallFunction FINAL : public LTemplateInstruction<1, 2, 2> { |
851 public: | 851 public: |
852 LCallFunction(LOperand* context, LOperand* function) { | 852 LCallFunction(LOperand* context, LOperand* function, LOperand* slot, |
| 853 LOperand* vector) { |
853 inputs_[0] = context; | 854 inputs_[0] = context; |
854 inputs_[1] = function; | 855 inputs_[1] = function; |
| 856 temps_[0] = slot; |
| 857 temps_[1] = vector; |
855 } | 858 } |
856 | 859 |
857 LOperand* context() { return inputs_[0]; } | 860 LOperand* context() { return inputs_[0]; } |
858 LOperand* function() { return inputs_[1]; } | 861 LOperand* function() { return inputs_[1]; } |
| 862 LOperand* temp_slot() { return temps_[0]; } |
| 863 LOperand* temp_vector() { return temps_[1]; } |
859 | 864 |
860 DECLARE_CONCRETE_INSTRUCTION(CallFunction, "call-function") | 865 DECLARE_CONCRETE_INSTRUCTION(CallFunction, "call-function") |
861 DECLARE_HYDROGEN_ACCESSOR(CallFunction) | 866 DECLARE_HYDROGEN_ACCESSOR(CallFunction) |
862 | 867 |
863 int arity() const { return hydrogen()->argument_count() - 1; } | 868 int arity() const { return hydrogen()->argument_count() - 1; } |
| 869 void PrintDataTo(StringStream* stream) OVERRIDE; |
864 }; | 870 }; |
865 | 871 |
866 | 872 |
867 class LCallNew FINAL : public LTemplateInstruction<1, 2, 0> { | 873 class LCallNew FINAL : public LTemplateInstruction<1, 2, 0> { |
868 public: | 874 public: |
869 LCallNew(LOperand* context, LOperand* constructor) { | 875 LCallNew(LOperand* context, LOperand* constructor) { |
870 inputs_[0] = context; | 876 inputs_[0] = context; |
871 inputs_[1] = constructor; | 877 inputs_[1] = constructor; |
872 } | 878 } |
873 | 879 |
(...skipping 2365 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3239 | 3245 |
3240 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); | 3246 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); |
3241 }; | 3247 }; |
3242 | 3248 |
3243 #undef DECLARE_HYDROGEN_ACCESSOR | 3249 #undef DECLARE_HYDROGEN_ACCESSOR |
3244 #undef DECLARE_CONCRETE_INSTRUCTION | 3250 #undef DECLARE_CONCRETE_INSTRUCTION |
3245 | 3251 |
3246 } } // namespace v8::internal | 3252 } } // namespace v8::internal |
3247 | 3253 |
3248 #endif // V8_ARM64_LITHIUM_ARM64_H_ | 3254 #endif // V8_ARM64_LITHIUM_ARM64_H_ |
OLD | NEW |