Index: src/ia32/lithium-ia32.h |
diff --git a/src/ia32/lithium-ia32.h b/src/ia32/lithium-ia32.h |
index 9ace8f869b68c20cf59ccbd8d7880fad85584d91..d5d6ae539be8385c1c53e940530c83a536c67435 100644 |
--- a/src/ia32/lithium-ia32.h |
+++ b/src/ia32/lithium-ia32.h |
@@ -39,6 +39,7 @@ namespace internal { |
// Forward declarations. |
class LCodeGen; |
+ |
#define LITHIUM_ALL_INSTRUCTION_LIST(V) \ |
V(ControlInstruction) \ |
V(Call) \ |
@@ -154,6 +155,7 @@ class LCodeGen; |
V(StoreKeyedSpecializedArrayElement) \ |
V(StoreNamedField) \ |
V(StoreNamedGeneric) \ |
+ V(StringAdd) \ |
V(StringCharCodeAt) \ |
V(StringCharFromCode) \ |
V(StringLength) \ |
@@ -1769,6 +1771,21 @@ class LStoreKeyedGeneric: public LTemplateInstruction<0, 4, 0> { |
}; |
+class LStringAdd: public LTemplateInstruction<1, 2, 0> { |
+ public: |
+ LStringAdd(LOperand* left, LOperand* right) { |
+ inputs_[0] = left; |
+ inputs_[1] = right; |
+ } |
+ |
+ DECLARE_CONCRETE_INSTRUCTION(StringAdd, "string-add") |
+ DECLARE_HYDROGEN_ACCESSOR(StringAdd) |
+ |
+ LOperand* left() { return inputs_[0]; } |
+ LOperand* right() { return inputs_[1]; } |
+}; |
+ |
+ |
class LStringCharCodeAt: public LTemplateInstruction<1, 2, 0> { |
public: |
LStringCharCodeAt(LOperand* string, LOperand* index) { |