| 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) { }
|
|
|