Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(9)

Unified Diff: src/ia32/lithium-ia32.h

Issue 6304001: Support StringCharCodeAt in hydrogen/lithium. (Closed)
Patch Set: Created 9 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: src/ia32/lithium-ia32.h
diff --git a/src/ia32/lithium-ia32.h b/src/ia32/lithium-ia32.h
index 25182855413c81450ad7ab6fbc5da87c1bd35bc6..93124d2135bbd01ac949501ee4f837a3d50e7d29 100644
--- a/src/ia32/lithium-ia32.h
+++ b/src/ia32/lithium-ia32.h
@@ -105,6 +105,7 @@ class LCodeGen;
// LStoreNamed
// LStoreNamedField
// LStoreNamedGeneric
+// LStringCharCodeAt
// LUnaryOperation
// LBitNotI
// LBranch
@@ -139,6 +140,7 @@ class LCodeGen;
// LReturn
// LSmiTag
// LStoreGlobal
+// LStringLength
// LTaggedToI
// LThrow
// LTypeof
@@ -253,6 +255,8 @@ class LCodeGen;
V(StoreKeyedGeneric) \
V(StoreNamedField) \
V(StoreNamedGeneric) \
+ V(StringCharCodeAt) \
+ V(StringLength) \
V(SubI) \
V(TaggedToI) \
V(Throw) \
@@ -1640,6 +1644,30 @@ class LStoreKeyedGeneric: public LStoreKeyed {
};
+class LStringCharCodeAt: public LTemplateInstruction<1, 2, 0> {
+ public:
+ LStringCharCodeAt(LOperand* string, LOperand* index) {
+ this->SetInputAt(0, string);
+ this->SetInputAt(1, index);
+ }
+
+ DECLARE_CONCRETE_INSTRUCTION(StringCharCodeAt, "string-char-code-at")
+ DECLARE_HYDROGEN_ACCESSOR(StringCharCodeAt)
+
+ LOperand* string() const { return this->InputAt(0); }
+ LOperand* index() const { return this->InputAt(1); }
+};
+
+
+class LStringLength: public LUnaryOperation<1> {
+ public:
+ explicit LStringLength(LOperand* string) : LUnaryOperation<1>(string) {}
+
+ DECLARE_CONCRETE_INSTRUCTION(StringLength, "string-length")
+ DECLARE_HYDROGEN_ACCESSOR(StringLength)
+};
+
+
class LCheckFunction: public LUnaryOperation<0> {
public:
explicit LCheckFunction(LOperand* use) : LUnaryOperation<0>(use) { }

Powered by Google App Engine
This is Rietveld 408576698