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 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
102 V(FunctionLiteral) \ | 102 V(FunctionLiteral) \ |
103 V(GetCachedArrayIndex) \ | 103 V(GetCachedArrayIndex) \ |
104 V(Goto) \ | 104 V(Goto) \ |
105 V(HasCachedArrayIndexAndBranch) \ | 105 V(HasCachedArrayIndexAndBranch) \ |
106 V(HasInstanceTypeAndBranch) \ | 106 V(HasInstanceTypeAndBranch) \ |
107 V(InnerAllocatedObject) \ | 107 V(InnerAllocatedObject) \ |
108 V(InstanceOf) \ | 108 V(InstanceOf) \ |
109 V(InstanceOfKnownGlobal) \ | 109 V(InstanceOfKnownGlobal) \ |
110 V(InstructionGap) \ | 110 V(InstructionGap) \ |
111 V(Integer32ToDouble) \ | 111 V(Integer32ToDouble) \ |
112 V(Integer32ToSmi) \ | |
113 V(InvokeFunction) \ | 112 V(InvokeFunction) \ |
114 V(IsConstructCallAndBranch) \ | 113 V(IsConstructCallAndBranch) \ |
115 V(IsObjectAndBranch) \ | 114 V(IsObjectAndBranch) \ |
116 V(IsStringAndBranch) \ | 115 V(IsStringAndBranch) \ |
117 V(IsSmiAndBranch) \ | 116 V(IsSmiAndBranch) \ |
118 V(IsUndetectableAndBranch) \ | 117 V(IsUndetectableAndBranch) \ |
119 V(Label) \ | 118 V(Label) \ |
120 V(LazyBailout) \ | 119 V(LazyBailout) \ |
121 V(LoadContextSlot) \ | 120 V(LoadContextSlot) \ |
122 V(LoadRoot) \ | 121 V(LoadRoot) \ |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
171 V(StringCompareAndBranch) \ | 170 V(StringCompareAndBranch) \ |
172 V(SubI) \ | 171 V(SubI) \ |
173 V(TaggedToI) \ | 172 V(TaggedToI) \ |
174 V(ThisFunction) \ | 173 V(ThisFunction) \ |
175 V(ToFastProperties) \ | 174 V(ToFastProperties) \ |
176 V(TransitionElementsKind) \ | 175 V(TransitionElementsKind) \ |
177 V(TrapAllocationMemento) \ | 176 V(TrapAllocationMemento) \ |
178 V(Typeof) \ | 177 V(Typeof) \ |
179 V(TypeofIsAndBranch) \ | 178 V(TypeofIsAndBranch) \ |
180 V(Uint32ToDouble) \ | 179 V(Uint32ToDouble) \ |
181 V(Uint32ToSmi) \ | |
182 V(UnknownOSRValue) \ | 180 V(UnknownOSRValue) \ |
183 V(WrapReceiver) | 181 V(WrapReceiver) |
184 | 182 |
185 | 183 |
186 #define DECLARE_CONCRETE_INSTRUCTION(type, mnemonic) \ | 184 #define DECLARE_CONCRETE_INSTRUCTION(type, mnemonic) \ |
187 virtual Opcode opcode() const V8_FINAL V8_OVERRIDE { \ | 185 virtual Opcode opcode() const V8_FINAL V8_OVERRIDE { \ |
188 return LInstruction::k##type; \ | 186 return LInstruction::k##type; \ |
189 } \ | 187 } \ |
190 virtual void CompileToNative(LCodeGen* generator) V8_FINAL V8_OVERRIDE; \ | 188 virtual void CompileToNative(LCodeGen* generator) V8_FINAL V8_OVERRIDE; \ |
191 virtual const char* Mnemonic() const V8_FINAL V8_OVERRIDE { \ | 189 virtual const char* Mnemonic() const V8_FINAL V8_OVERRIDE { \ |
(...skipping 1757 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1949 explicit LInteger32ToDouble(LOperand* value) { | 1947 explicit LInteger32ToDouble(LOperand* value) { |
1950 inputs_[0] = value; | 1948 inputs_[0] = value; |
1951 } | 1949 } |
1952 | 1950 |
1953 LOperand* value() { return inputs_[0]; } | 1951 LOperand* value() { return inputs_[0]; } |
1954 | 1952 |
1955 DECLARE_CONCRETE_INSTRUCTION(Integer32ToDouble, "int32-to-double") | 1953 DECLARE_CONCRETE_INSTRUCTION(Integer32ToDouble, "int32-to-double") |
1956 }; | 1954 }; |
1957 | 1955 |
1958 | 1956 |
1959 class LInteger32ToSmi V8_FINAL : public LTemplateInstruction<1, 1, 0> { | |
1960 public: | |
1961 explicit LInteger32ToSmi(LOperand* value) { | |
1962 inputs_[0] = value; | |
1963 } | |
1964 | |
1965 LOperand* value() { return inputs_[0]; } | |
1966 | |
1967 DECLARE_CONCRETE_INSTRUCTION(Integer32ToSmi, "int32-to-smi") | |
1968 DECLARE_HYDROGEN_ACCESSOR(Change) | |
1969 }; | |
1970 | |
1971 | |
1972 class LUint32ToDouble V8_FINAL : public LTemplateInstruction<1, 1, 1> { | 1957 class LUint32ToDouble V8_FINAL : public LTemplateInstruction<1, 1, 1> { |
1973 public: | 1958 public: |
1974 explicit LUint32ToDouble(LOperand* value, LOperand* temp) { | 1959 explicit LUint32ToDouble(LOperand* value, LOperand* temp) { |
1975 inputs_[0] = value; | 1960 inputs_[0] = value; |
1976 temps_[0] = temp; | 1961 temps_[0] = temp; |
1977 } | 1962 } |
1978 | 1963 |
1979 LOperand* value() { return inputs_[0]; } | 1964 LOperand* value() { return inputs_[0]; } |
1980 LOperand* temp() { return temps_[0]; } | 1965 LOperand* temp() { return temps_[0]; } |
1981 | 1966 |
1982 DECLARE_CONCRETE_INSTRUCTION(Uint32ToDouble, "uint32-to-double") | 1967 DECLARE_CONCRETE_INSTRUCTION(Uint32ToDouble, "uint32-to-double") |
1983 }; | 1968 }; |
1984 | 1969 |
1985 | 1970 |
1986 class LUint32ToSmi V8_FINAL : public LTemplateInstruction<1, 1, 0> { | |
1987 public: | |
1988 explicit LUint32ToSmi(LOperand* value) { | |
1989 inputs_[0] = value; | |
1990 } | |
1991 | |
1992 LOperand* value() { return inputs_[0]; } | |
1993 | |
1994 DECLARE_CONCRETE_INSTRUCTION(Uint32ToSmi, "uint32-to-smi") | |
1995 DECLARE_HYDROGEN_ACCESSOR(Change) | |
1996 }; | |
1997 | |
1998 | |
1999 class LNumberTagI V8_FINAL : public LTemplateInstruction<1, 1, 0> { | 1971 class LNumberTagI V8_FINAL : public LTemplateInstruction<1, 1, 0> { |
2000 public: | 1972 public: |
2001 explicit LNumberTagI(LOperand* value) { | 1973 explicit LNumberTagI(LOperand* value) { |
2002 inputs_[0] = value; | 1974 inputs_[0] = value; |
2003 } | 1975 } |
2004 | 1976 |
2005 LOperand* value() { return inputs_[0]; } | 1977 LOperand* value() { return inputs_[0]; } |
2006 | 1978 |
2007 DECLARE_CONCRETE_INSTRUCTION(NumberTagI, "number-tag-i") | 1979 DECLARE_CONCRETE_INSTRUCTION(NumberTagI, "number-tag-i") |
2008 }; | 1980 }; |
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2088 | 2060 |
2089 class LSmiTag V8_FINAL : public LTemplateInstruction<1, 1, 0> { | 2061 class LSmiTag V8_FINAL : public LTemplateInstruction<1, 1, 0> { |
2090 public: | 2062 public: |
2091 explicit LSmiTag(LOperand* value) { | 2063 explicit LSmiTag(LOperand* value) { |
2092 inputs_[0] = value; | 2064 inputs_[0] = value; |
2093 } | 2065 } |
2094 | 2066 |
2095 LOperand* value() { return inputs_[0]; } | 2067 LOperand* value() { return inputs_[0]; } |
2096 | 2068 |
2097 DECLARE_CONCRETE_INSTRUCTION(SmiTag, "smi-tag") | 2069 DECLARE_CONCRETE_INSTRUCTION(SmiTag, "smi-tag") |
| 2070 DECLARE_HYDROGEN_ACCESSOR(Change) |
2098 }; | 2071 }; |
2099 | 2072 |
2100 | 2073 |
2101 class LNumberUntagD V8_FINAL : public LTemplateInstruction<1, 1, 0> { | 2074 class LNumberUntagD V8_FINAL : public LTemplateInstruction<1, 1, 0> { |
2102 public: | 2075 public: |
2103 explicit LNumberUntagD(LOperand* value) { | 2076 explicit LNumberUntagD(LOperand* value) { |
2104 inputs_[0] = value; | 2077 inputs_[0] = value; |
2105 } | 2078 } |
2106 | 2079 |
2107 LOperand* value() { return inputs_[0]; } | 2080 LOperand* value() { return inputs_[0]; } |
(...skipping 710 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2818 | 2791 |
2819 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); | 2792 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); |
2820 }; | 2793 }; |
2821 | 2794 |
2822 #undef DECLARE_HYDROGEN_ACCESSOR | 2795 #undef DECLARE_HYDROGEN_ACCESSOR |
2823 #undef DECLARE_CONCRETE_INSTRUCTION | 2796 #undef DECLARE_CONCRETE_INSTRUCTION |
2824 | 2797 |
2825 } } // namespace v8::int | 2798 } } // namespace v8::int |
2826 | 2799 |
2827 #endif // V8_X64_LITHIUM_X64_H_ | 2800 #endif // V8_X64_LITHIUM_X64_H_ |
OLD | NEW |