Index: src/arm/codegen-arm.h |
diff --git a/src/arm/codegen-arm.h b/src/arm/codegen-arm.h |
index 4f56c84fc21c89bf768cfe3873fc82c77d6bac41..5673052265bb1f879393dfa1679c93473ed3e5b8 100644 |
--- a/src/arm/codegen-arm.h |
+++ b/src/arm/codegen-arm.h |
@@ -529,6 +529,55 @@ class GenericBinaryOpStub : public CodeStub { |
}; |
+class StringStubBase: public CodeStub { |
+ public: |
+ // Generate code for copying characters using a simple loop. This should only |
+ // be used in places where the number of characters is small and the |
+ // additional setup and checking in GenerateCopyCharactersLong adds too much |
+ // overhead. Copying of overlapping regions is not supported. |
+ void GenerateCopyCharacters(MacroAssembler* masm, |
+ Register dest, |
+ Register src, |
+ Register count, |
+ Register scratch, |
+ bool ascii); |
+ |
+ // Generate code for copying a large number of characters. This function |
+ // is allowed to spend extra time setting up conditions to make copying |
+ // faster. Copying of overlapping regions is not supported. |
+ void GenerateCopyCharactersLong(MacroAssembler* masm, |
+ Register dest, |
+ Register src, |
+ Register count, |
+ Register scratch1, |
+ Register scratch2, |
+ Register scratch3, |
+ Register scratch4, |
+ Register scratch5, |
+ int flags); |
+}; |
+ |
+ |
+// Flag that indicates how to generate code for the stub StringAddStub. |
+enum StringAddFlags { |
+ NO_STRING_ADD_FLAGS = 0, |
+ NO_STRING_CHECK_IN_STUB = 1 << 0 // Omit string check in stub. |
+}; |
+ |
+ |
+class SubStringStub: public StringStubBase { |
+ public: |
+ SubStringStub() {} |
+ |
+ private: |
+ Major MajorKey() { return SubString; } |
+ int MinorKey() { return 0; } |
+ |
+ void Generate(MacroAssembler* masm); |
+}; |
+ |
+ |
+ |
class StringCompareStub: public CodeStub { |
public: |
StringCompareStub() { } |