OLD | NEW |
1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 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 21 matching lines...) Expand all Loading... |
32 #include "lithium-allocator.h" | 32 #include "lithium-allocator.h" |
33 #include "lithium.h" | 33 #include "lithium.h" |
34 #include "safepoint-table.h" | 34 #include "safepoint-table.h" |
35 | 35 |
36 namespace v8 { | 36 namespace v8 { |
37 namespace internal { | 37 namespace internal { |
38 | 38 |
39 // Forward declarations. | 39 // Forward declarations. |
40 class LCodeGen; | 40 class LCodeGen; |
41 | 41 |
| 42 |
42 #define LITHIUM_ALL_INSTRUCTION_LIST(V) \ | 43 #define LITHIUM_ALL_INSTRUCTION_LIST(V) \ |
43 V(ControlInstruction) \ | 44 V(ControlInstruction) \ |
44 V(Call) \ | 45 V(Call) \ |
45 LITHIUM_CONCRETE_INSTRUCTION_LIST(V) | 46 LITHIUM_CONCRETE_INSTRUCTION_LIST(V) |
46 | 47 |
47 | 48 |
48 #define LITHIUM_CONCRETE_INSTRUCTION_LIST(V) \ | 49 #define LITHIUM_CONCRETE_INSTRUCTION_LIST(V) \ |
49 V(AccessArgumentsAt) \ | 50 V(AccessArgumentsAt) \ |
50 V(AddI) \ | 51 V(AddI) \ |
51 V(ApplyArguments) \ | 52 V(ApplyArguments) \ |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
147 V(SmiUntag) \ | 148 V(SmiUntag) \ |
148 V(StackCheck) \ | 149 V(StackCheck) \ |
149 V(StoreContextSlot) \ | 150 V(StoreContextSlot) \ |
150 V(StoreGlobalCell) \ | 151 V(StoreGlobalCell) \ |
151 V(StoreGlobalGeneric) \ | 152 V(StoreGlobalGeneric) \ |
152 V(StoreKeyedFastElement) \ | 153 V(StoreKeyedFastElement) \ |
153 V(StoreKeyedGeneric) \ | 154 V(StoreKeyedGeneric) \ |
154 V(StoreKeyedSpecializedArrayElement) \ | 155 V(StoreKeyedSpecializedArrayElement) \ |
155 V(StoreNamedField) \ | 156 V(StoreNamedField) \ |
156 V(StoreNamedGeneric) \ | 157 V(StoreNamedGeneric) \ |
| 158 V(StringAdd) \ |
157 V(StringCharCodeAt) \ | 159 V(StringCharCodeAt) \ |
158 V(StringCharFromCode) \ | 160 V(StringCharFromCode) \ |
159 V(StringLength) \ | 161 V(StringLength) \ |
160 V(SubI) \ | 162 V(SubI) \ |
161 V(TaggedToI) \ | 163 V(TaggedToI) \ |
162 V(Throw) \ | 164 V(Throw) \ |
163 V(ToFastProperties) \ | 165 V(ToFastProperties) \ |
164 V(Typeof) \ | 166 V(Typeof) \ |
165 V(TypeofIs) \ | 167 V(TypeofIs) \ |
166 V(TypeofIsAndBranch) \ | 168 V(TypeofIsAndBranch) \ |
(...skipping 1595 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1762 virtual void PrintDataTo(StringStream* stream); | 1764 virtual void PrintDataTo(StringStream* stream); |
1763 | 1765 |
1764 LOperand* context() { return inputs_[0]; } | 1766 LOperand* context() { return inputs_[0]; } |
1765 LOperand* object() { return inputs_[1]; } | 1767 LOperand* object() { return inputs_[1]; } |
1766 LOperand* key() { return inputs_[2]; } | 1768 LOperand* key() { return inputs_[2]; } |
1767 LOperand* value() { return inputs_[3]; } | 1769 LOperand* value() { return inputs_[3]; } |
1768 bool strict_mode() { return hydrogen()->strict_mode(); } | 1770 bool strict_mode() { return hydrogen()->strict_mode(); } |
1769 }; | 1771 }; |
1770 | 1772 |
1771 | 1773 |
| 1774 class LStringAdd: public LTemplateInstruction<1, 2, 0> { |
| 1775 public: |
| 1776 LStringAdd(LOperand* left, LOperand* right) { |
| 1777 inputs_[0] = left; |
| 1778 inputs_[1] = right; |
| 1779 } |
| 1780 |
| 1781 DECLARE_CONCRETE_INSTRUCTION(StringAdd, "string-add") |
| 1782 DECLARE_HYDROGEN_ACCESSOR(StringAdd) |
| 1783 |
| 1784 LOperand* left() { return inputs_[0]; } |
| 1785 LOperand* right() { return inputs_[1]; } |
| 1786 }; |
| 1787 |
| 1788 |
1772 class LStringCharCodeAt: public LTemplateInstruction<1, 2, 0> { | 1789 class LStringCharCodeAt: public LTemplateInstruction<1, 2, 0> { |
1773 public: | 1790 public: |
1774 LStringCharCodeAt(LOperand* string, LOperand* index) { | 1791 LStringCharCodeAt(LOperand* string, LOperand* index) { |
1775 inputs_[0] = string; | 1792 inputs_[0] = string; |
1776 inputs_[1] = index; | 1793 inputs_[1] = index; |
1777 } | 1794 } |
1778 | 1795 |
1779 DECLARE_CONCRETE_INSTRUCTION(StringCharCodeAt, "string-char-code-at") | 1796 DECLARE_CONCRETE_INSTRUCTION(StringCharCodeAt, "string-char-code-at") |
1780 DECLARE_HYDROGEN_ACCESSOR(StringCharCodeAt) | 1797 DECLARE_HYDROGEN_ACCESSOR(StringCharCodeAt) |
1781 | 1798 |
(...skipping 448 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2230 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); | 2247 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); |
2231 }; | 2248 }; |
2232 | 2249 |
2233 #undef DECLARE_HYDROGEN_ACCESSOR | 2250 #undef DECLARE_HYDROGEN_ACCESSOR |
2234 #undef DECLARE_INSTRUCTION | 2251 #undef DECLARE_INSTRUCTION |
2235 #undef DECLARE_CONCRETE_INSTRUCTION | 2252 #undef DECLARE_CONCRETE_INSTRUCTION |
2236 | 2253 |
2237 } } // namespace v8::internal | 2254 } } // namespace v8::internal |
2238 | 2255 |
2239 #endif // V8_IA32_LITHIUM_IA32_H_ | 2256 #endif // V8_IA32_LITHIUM_IA32_H_ |
OLD | NEW |