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 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
104 V(FunctionLiteral) \ | 104 V(FunctionLiteral) \ |
105 V(GetCachedArrayIndex) \ | 105 V(GetCachedArrayIndex) \ |
106 V(Goto) \ | 106 V(Goto) \ |
107 V(HasCachedArrayIndexAndBranch) \ | 107 V(HasCachedArrayIndexAndBranch) \ |
108 V(HasInstanceTypeAndBranch) \ | 108 V(HasInstanceTypeAndBranch) \ |
109 V(InnerAllocatedObject) \ | 109 V(InnerAllocatedObject) \ |
110 V(InstanceOf) \ | 110 V(InstanceOf) \ |
111 V(InstanceOfKnownGlobal) \ | 111 V(InstanceOfKnownGlobal) \ |
112 V(InstructionGap) \ | 112 V(InstructionGap) \ |
113 V(Integer32ToDouble) \ | 113 V(Integer32ToDouble) \ |
114 V(Integer32ToSmi) \ | |
115 V(InvokeFunction) \ | 114 V(InvokeFunction) \ |
116 V(IsConstructCallAndBranch) \ | 115 V(IsConstructCallAndBranch) \ |
117 V(IsObjectAndBranch) \ | 116 V(IsObjectAndBranch) \ |
118 V(IsStringAndBranch) \ | 117 V(IsStringAndBranch) \ |
119 V(IsSmiAndBranch) \ | 118 V(IsSmiAndBranch) \ |
120 V(IsUndetectableAndBranch) \ | 119 V(IsUndetectableAndBranch) \ |
121 V(Label) \ | 120 V(Label) \ |
122 V(LazyBailout) \ | 121 V(LazyBailout) \ |
123 V(LoadContextSlot) \ | 122 V(LoadContextSlot) \ |
124 V(LoadFieldByIndex) \ | 123 V(LoadFieldByIndex) \ |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
173 V(StringCompareAndBranch) \ | 172 V(StringCompareAndBranch) \ |
174 V(SubI) \ | 173 V(SubI) \ |
175 V(TaggedToI) \ | 174 V(TaggedToI) \ |
176 V(ThisFunction) \ | 175 V(ThisFunction) \ |
177 V(ToFastProperties) \ | 176 V(ToFastProperties) \ |
178 V(TransitionElementsKind) \ | 177 V(TransitionElementsKind) \ |
179 V(TrapAllocationMemento) \ | 178 V(TrapAllocationMemento) \ |
180 V(Typeof) \ | 179 V(Typeof) \ |
181 V(TypeofIsAndBranch) \ | 180 V(TypeofIsAndBranch) \ |
182 V(Uint32ToDouble) \ | 181 V(Uint32ToDouble) \ |
183 V(Uint32ToSmi) \ | |
184 V(UnknownOSRValue) \ | 182 V(UnknownOSRValue) \ |
185 V(WrapReceiver) | 183 V(WrapReceiver) |
186 | 184 |
187 | 185 |
188 #define DECLARE_CONCRETE_INSTRUCTION(type, mnemonic) \ | 186 #define DECLARE_CONCRETE_INSTRUCTION(type, mnemonic) \ |
189 virtual Opcode opcode() const V8_FINAL V8_OVERRIDE { \ | 187 virtual Opcode opcode() const V8_FINAL V8_OVERRIDE { \ |
190 return LInstruction::k##type; \ | 188 return LInstruction::k##type; \ |
191 } \ | 189 } \ |
192 virtual void CompileToNative(LCodeGen* generator) V8_FINAL V8_OVERRIDE; \ | 190 virtual void CompileToNative(LCodeGen* generator) V8_FINAL V8_OVERRIDE; \ |
193 virtual const char* Mnemonic() const V8_FINAL V8_OVERRIDE { \ | 191 virtual const char* Mnemonic() const V8_FINAL V8_OVERRIDE { \ |
(...skipping 1813 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2007 explicit LInteger32ToDouble(LOperand* value) { | 2005 explicit LInteger32ToDouble(LOperand* value) { |
2008 inputs_[0] = value; | 2006 inputs_[0] = value; |
2009 } | 2007 } |
2010 | 2008 |
2011 LOperand* value() { return inputs_[0]; } | 2009 LOperand* value() { return inputs_[0]; } |
2012 | 2010 |
2013 DECLARE_CONCRETE_INSTRUCTION(Integer32ToDouble, "int32-to-double") | 2011 DECLARE_CONCRETE_INSTRUCTION(Integer32ToDouble, "int32-to-double") |
2014 }; | 2012 }; |
2015 | 2013 |
2016 | 2014 |
2017 class LInteger32ToSmi V8_FINAL : public LTemplateInstruction<1, 1, 0> { | |
2018 public: | |
2019 explicit LInteger32ToSmi(LOperand* value) { | |
2020 inputs_[0] = value; | |
2021 } | |
2022 | |
2023 LOperand* value() { return inputs_[0]; } | |
2024 | |
2025 DECLARE_CONCRETE_INSTRUCTION(Integer32ToSmi, "int32-to-smi") | |
2026 DECLARE_HYDROGEN_ACCESSOR(Change) | |
2027 }; | |
2028 | |
2029 | |
2030 class LUint32ToDouble V8_FINAL : public LTemplateInstruction<1, 1, 1> { | 2015 class LUint32ToDouble V8_FINAL : public LTemplateInstruction<1, 1, 1> { |
2031 public: | 2016 public: |
2032 explicit LUint32ToDouble(LOperand* value, LOperand* temp) { | 2017 explicit LUint32ToDouble(LOperand* value, LOperand* temp) { |
2033 inputs_[0] = value; | 2018 inputs_[0] = value; |
2034 temps_[0] = temp; | 2019 temps_[0] = temp; |
2035 } | 2020 } |
2036 | 2021 |
2037 LOperand* value() { return inputs_[0]; } | 2022 LOperand* value() { return inputs_[0]; } |
2038 LOperand* temp() { return temps_[0]; } | 2023 LOperand* temp() { return temps_[0]; } |
2039 | 2024 |
2040 DECLARE_CONCRETE_INSTRUCTION(Uint32ToDouble, "uint32-to-double") | 2025 DECLARE_CONCRETE_INSTRUCTION(Uint32ToDouble, "uint32-to-double") |
2041 }; | 2026 }; |
2042 | 2027 |
2043 | 2028 |
2044 class LUint32ToSmi V8_FINAL : public LTemplateInstruction<1, 1, 0> { | |
2045 public: | |
2046 explicit LUint32ToSmi(LOperand* value) { | |
2047 inputs_[0] = value; | |
2048 } | |
2049 | |
2050 LOperand* value() { return inputs_[0]; } | |
2051 | |
2052 DECLARE_CONCRETE_INSTRUCTION(Uint32ToSmi, "uint32-to-smi") | |
2053 DECLARE_HYDROGEN_ACCESSOR(Change) | |
2054 }; | |
2055 | |
2056 | |
2057 class LNumberTagI V8_FINAL : public LTemplateInstruction<1, 1, 1> { | 2029 class LNumberTagI V8_FINAL : public LTemplateInstruction<1, 1, 1> { |
2058 public: | 2030 public: |
2059 LNumberTagI(LOperand* value, LOperand* temp) { | 2031 LNumberTagI(LOperand* value, LOperand* temp) { |
2060 inputs_[0] = value; | 2032 inputs_[0] = value; |
2061 temps_[0] = temp; | 2033 temps_[0] = temp; |
2062 } | 2034 } |
2063 | 2035 |
2064 LOperand* value() { return inputs_[0]; } | 2036 LOperand* value() { return inputs_[0]; } |
2065 LOperand* temp() { return temps_[0]; } | 2037 LOperand* temp() { return temps_[0]; } |
2066 | 2038 |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2150 | 2122 |
2151 class LSmiTag V8_FINAL : public LTemplateInstruction<1, 1, 0> { | 2123 class LSmiTag V8_FINAL : public LTemplateInstruction<1, 1, 0> { |
2152 public: | 2124 public: |
2153 explicit LSmiTag(LOperand* value) { | 2125 explicit LSmiTag(LOperand* value) { |
2154 inputs_[0] = value; | 2126 inputs_[0] = value; |
2155 } | 2127 } |
2156 | 2128 |
2157 LOperand* value() { return inputs_[0]; } | 2129 LOperand* value() { return inputs_[0]; } |
2158 | 2130 |
2159 DECLARE_CONCRETE_INSTRUCTION(SmiTag, "smi-tag") | 2131 DECLARE_CONCRETE_INSTRUCTION(SmiTag, "smi-tag") |
| 2132 DECLARE_HYDROGEN_ACCESSOR(Change) |
2160 }; | 2133 }; |
2161 | 2134 |
2162 | 2135 |
2163 class LNumberUntagD V8_FINAL : public LTemplateInstruction<1, 1, 1> { | 2136 class LNumberUntagD V8_FINAL : public LTemplateInstruction<1, 1, 1> { |
2164 public: | 2137 public: |
2165 explicit LNumberUntagD(LOperand* value, LOperand* temp) { | 2138 explicit LNumberUntagD(LOperand* value, LOperand* temp) { |
2166 inputs_[0] = value; | 2139 inputs_[0] = value; |
2167 temps_[0] = temp; | 2140 temps_[0] = temp; |
2168 } | 2141 } |
2169 | 2142 |
(...skipping 741 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2911 | 2884 |
2912 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); | 2885 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); |
2913 }; | 2886 }; |
2914 | 2887 |
2915 #undef DECLARE_HYDROGEN_ACCESSOR | 2888 #undef DECLARE_HYDROGEN_ACCESSOR |
2916 #undef DECLARE_CONCRETE_INSTRUCTION | 2889 #undef DECLARE_CONCRETE_INSTRUCTION |
2917 | 2890 |
2918 } } // namespace v8::internal | 2891 } } // namespace v8::internal |
2919 | 2892 |
2920 #endif // V8_IA32_LITHIUM_IA32_H_ | 2893 #endif // V8_IA32_LITHIUM_IA32_H_ |
OLD | NEW |