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_X64_LITHIUM_X64_H_ | 5 #ifndef V8_X64_LITHIUM_X64_H_ |
6 #define V8_X64_LITHIUM_X64_H_ | 6 #define V8_X64_LITHIUM_X64_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 1910 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1921 | 1921 |
1922 DECLARE_CONCRETE_INSTRUCTION(InvokeFunction, "invoke-function") | 1922 DECLARE_CONCRETE_INSTRUCTION(InvokeFunction, "invoke-function") |
1923 DECLARE_HYDROGEN_ACCESSOR(InvokeFunction) | 1923 DECLARE_HYDROGEN_ACCESSOR(InvokeFunction) |
1924 | 1924 |
1925 void PrintDataTo(StringStream* stream) OVERRIDE; | 1925 void PrintDataTo(StringStream* stream) OVERRIDE; |
1926 | 1926 |
1927 int arity() const { return hydrogen()->argument_count() - 1; } | 1927 int arity() const { return hydrogen()->argument_count() - 1; } |
1928 }; | 1928 }; |
1929 | 1929 |
1930 | 1930 |
1931 class LCallFunction FINAL : public LTemplateInstruction<1, 2, 0> { | 1931 class LCallFunction FINAL : public LTemplateInstruction<1, 2, 2> { |
1932 public: | 1932 public: |
1933 LCallFunction(LOperand* context, LOperand* function) { | 1933 LCallFunction(LOperand* context, LOperand* function, LOperand* slot, |
| 1934 LOperand* vector) { |
1934 inputs_[0] = context; | 1935 inputs_[0] = context; |
1935 inputs_[1] = function; | 1936 inputs_[1] = function; |
| 1937 temps_[0] = slot; |
| 1938 temps_[1] = vector; |
1936 } | 1939 } |
1937 | 1940 |
1938 DECLARE_CONCRETE_INSTRUCTION(CallFunction, "call-function") | 1941 DECLARE_CONCRETE_INSTRUCTION(CallFunction, "call-function") |
1939 DECLARE_HYDROGEN_ACCESSOR(CallFunction) | 1942 DECLARE_HYDROGEN_ACCESSOR(CallFunction) |
1940 | 1943 |
1941 LOperand* context() { return inputs_[0]; } | 1944 LOperand* context() { return inputs_[0]; } |
1942 LOperand* function() { return inputs_[1]; } | 1945 LOperand* function() { return inputs_[1]; } |
| 1946 LOperand* temp_slot() { return temps_[0]; } |
| 1947 LOperand* temp_vector() { return temps_[1]; } |
1943 int arity() const { return hydrogen()->argument_count() - 1; } | 1948 int arity() const { return hydrogen()->argument_count() - 1; } |
| 1949 |
| 1950 void PrintDataTo(StringStream* stream) OVERRIDE; |
1944 }; | 1951 }; |
1945 | 1952 |
1946 | 1953 |
1947 class LCallNew FINAL : public LTemplateInstruction<1, 2, 0> { | 1954 class LCallNew FINAL : public LTemplateInstruction<1, 2, 0> { |
1948 public: | 1955 public: |
1949 LCallNew(LOperand* context, LOperand* constructor) { | 1956 LCallNew(LOperand* context, LOperand* constructor) { |
1950 inputs_[0] = context; | 1957 inputs_[0] = context; |
1951 inputs_[1] = constructor; | 1958 inputs_[1] = constructor; |
1952 } | 1959 } |
1953 | 1960 |
(...skipping 906 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2860 | 2867 |
2861 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); | 2868 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); |
2862 }; | 2869 }; |
2863 | 2870 |
2864 #undef DECLARE_HYDROGEN_ACCESSOR | 2871 #undef DECLARE_HYDROGEN_ACCESSOR |
2865 #undef DECLARE_CONCRETE_INSTRUCTION | 2872 #undef DECLARE_CONCRETE_INSTRUCTION |
2866 | 2873 |
2867 } } // namespace v8::int | 2874 } } // namespace v8::int |
2868 | 2875 |
2869 #endif // V8_X64_LITHIUM_X64_H_ | 2876 #endif // V8_X64_LITHIUM_X64_H_ |
OLD | NEW |