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 1884 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1895 | 1895 |
1896 DECLARE_CONCRETE_INSTRUCTION(InvokeFunction, "invoke-function") | 1896 DECLARE_CONCRETE_INSTRUCTION(InvokeFunction, "invoke-function") |
1897 DECLARE_HYDROGEN_ACCESSOR(InvokeFunction) | 1897 DECLARE_HYDROGEN_ACCESSOR(InvokeFunction) |
1898 | 1898 |
1899 void PrintDataTo(StringStream* stream) OVERRIDE; | 1899 void PrintDataTo(StringStream* stream) OVERRIDE; |
1900 | 1900 |
1901 int arity() const { return hydrogen()->argument_count() - 1; } | 1901 int arity() const { return hydrogen()->argument_count() - 1; } |
1902 }; | 1902 }; |
1903 | 1903 |
1904 | 1904 |
1905 class LCallFunction FINAL : public LTemplateInstruction<1, 2, 0> { | 1905 class LCallFunction FINAL : public LTemplateInstruction<1, 2, 2> { |
1906 public: | 1906 public: |
1907 LCallFunction(LOperand* context, LOperand* function) { | 1907 LCallFunction(LOperand* context, LOperand* function, LOperand* slot, |
| 1908 LOperand* vector) { |
1908 inputs_[0] = context; | 1909 inputs_[0] = context; |
1909 inputs_[1] = function; | 1910 inputs_[1] = function; |
| 1911 temps_[0] = slot; |
| 1912 temps_[1] = vector; |
1910 } | 1913 } |
1911 | 1914 |
1912 LOperand* context() { return inputs_[0]; } | 1915 LOperand* context() { return inputs_[0]; } |
1913 LOperand* function() { return inputs_[1]; } | 1916 LOperand* function() { return inputs_[1]; } |
| 1917 LOperand* temp_slot() { return temps_[0]; } |
| 1918 LOperand* temp_vector() { return temps_[1]; } |
1914 | 1919 |
1915 DECLARE_CONCRETE_INSTRUCTION(CallFunction, "call-function") | 1920 DECLARE_CONCRETE_INSTRUCTION(CallFunction, "call-function") |
1916 DECLARE_HYDROGEN_ACCESSOR(CallFunction) | 1921 DECLARE_HYDROGEN_ACCESSOR(CallFunction) |
1917 | 1922 |
1918 int arity() const { return hydrogen()->argument_count() - 1; } | 1923 int arity() const { return hydrogen()->argument_count() - 1; } |
| 1924 void PrintDataTo(StringStream* stream) OVERRIDE; |
1919 }; | 1925 }; |
1920 | 1926 |
1921 | 1927 |
1922 class LCallNew FINAL : public LTemplateInstruction<1, 2, 0> { | 1928 class LCallNew FINAL : public LTemplateInstruction<1, 2, 0> { |
1923 public: | 1929 public: |
1924 LCallNew(LOperand* context, LOperand* constructor) { | 1930 LCallNew(LOperand* context, LOperand* constructor) { |
1925 inputs_[0] = context; | 1931 inputs_[0] = context; |
1926 inputs_[1] = constructor; | 1932 inputs_[1] = constructor; |
1927 } | 1933 } |
1928 | 1934 |
(...skipping 909 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2838 | 2844 |
2839 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); | 2845 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); |
2840 }; | 2846 }; |
2841 | 2847 |
2842 #undef DECLARE_HYDROGEN_ACCESSOR | 2848 #undef DECLARE_HYDROGEN_ACCESSOR |
2843 #undef DECLARE_CONCRETE_INSTRUCTION | 2849 #undef DECLARE_CONCRETE_INSTRUCTION |
2844 | 2850 |
2845 } } // namespace v8::internal | 2851 } } // namespace v8::internal |
2846 | 2852 |
2847 #endif // V8_MIPS_LITHIUM_MIPS_H_ | 2853 #endif // V8_MIPS_LITHIUM_MIPS_H_ |
OLD | NEW |