| Index: src/arm/codegen-arm.h
|
| diff --git a/src/arm/codegen-arm.h b/src/arm/codegen-arm.h
|
| index 6eb7c964d36e7bedf7c24d59db348a796dfec7bf..2578a398c774b2e9a48026dd7c1f524629cf3c3a 100644
|
| --- a/src/arm/codegen-arm.h
|
| +++ b/src/arm/codegen-arm.h
|
| @@ -537,6 +537,7 @@ class StringStubBase: public CodeStub {
|
| // 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.
|
| + // Dest register ends at the position after the last character written.
|
| void GenerateCopyCharacters(MacroAssembler* masm,
|
| Register dest,
|
| Register src,
|
| @@ -547,6 +548,7 @@ class StringStubBase: public CodeStub {
|
| // 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.
|
| + // Dest register ends at the position after the last character written.
|
| void GenerateCopyCharactersLong(MacroAssembler* masm,
|
| Register dest,
|
| Register src,
|
| @@ -567,6 +569,23 @@ enum StringAddFlags {
|
| };
|
|
|
|
|
| +class StringAddStub: public StringStubBase {
|
| + public:
|
| + explicit StringAddStub(StringAddFlags flags) {
|
| + string_check_ = ((flags & NO_STRING_CHECK_IN_STUB) == 0);
|
| + }
|
| +
|
| + private:
|
| + Major MajorKey() { return StringAdd; }
|
| + int MinorKey() { return string_check_ ? 0 : 1; }
|
| +
|
| + void Generate(MacroAssembler* masm);
|
| +
|
| + // Should the stub check whether arguments are strings?
|
| + bool string_check_;
|
| +};
|
| +
|
| +
|
| class SubStringStub: public StringStubBase {
|
| public:
|
| SubStringStub() {}
|
|
|