| Index: src/ia32/codegen-ia32.h
|
| diff --git a/src/ia32/codegen-ia32.h b/src/ia32/codegen-ia32.h
|
| index b3db0c42d3c895b3dd8142a7b2cef39188d53ec6..c7cad14b1926b0ef142e3aa9c2c575b639183554 100644
|
| --- a/src/ia32/codegen-ia32.h
|
| +++ b/src/ia32/codegen-ia32.h
|
| @@ -883,85 +883,53 @@ class GenericBinaryOpStub: public CodeStub {
|
| };
|
|
|
|
|
| -class StringHelper : public AllStatic {
|
| +class StringStubBase: public CodeStub {
|
| public:
|
| - // Generates fast code for getting a char code out of a string
|
| - // object at the given index. May bail out for three reasons (in the
|
| - // listed order):
|
| - // * Receiver is not a string (receiver_not_string label).
|
| - // * Index is not a positive smi (index_not_positive_smi label).
|
| - // * Some other reason (slow_case label). In this case it's
|
| - // guaranteed that the above conditions are not violated,
|
| - // e.g. it's safe to assume the receiver is a string and the
|
| - // index is a positive smi.
|
| - // When successful, object, index, and scratch are clobbered.
|
| - // Otherwise, scratch and result are clobbered.
|
| - static void GenerateFastCharCodeAt(MacroAssembler* masm,
|
| - Register object,
|
| - Register index,
|
| - Register scratch,
|
| - Register result,
|
| - Label* receiver_not_string,
|
| - Label* index_not_positive_smi,
|
| - Label* slow_case);
|
| -
|
| - // Generates code for creating a one-char string from the given char
|
| - // code. May do a runtime call, so any register can be clobbered
|
| - // and, if the given invoke flag specifies a call, an internal frame
|
| - // is required. In tail call mode the result must be eax register.
|
| - static void GenerateCharFromCode(MacroAssembler* masm,
|
| - Register code,
|
| - Register result,
|
| - InvokeFlag flag);
|
| -
|
| // 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 GenerateCopyCharactersREP adds too much
|
| // overhead. Copying of overlapping regions is not supported.
|
| - static void GenerateCopyCharacters(MacroAssembler* masm,
|
| - Register dest,
|
| - Register src,
|
| - Register count,
|
| - Register scratch,
|
| - bool ascii);
|
| + void GenerateCopyCharacters(MacroAssembler* masm,
|
| + Register dest,
|
| + Register src,
|
| + Register count,
|
| + Register scratch,
|
| + bool ascii);
|
|
|
| // Generate code for copying characters using the rep movs instruction.
|
| // Copies ecx characters from esi to edi. Copying of overlapping regions is
|
| // not supported.
|
| - static void GenerateCopyCharactersREP(MacroAssembler* masm,
|
| - Register dest, // Must be edi.
|
| - Register src, // Must be esi.
|
| - Register count, // Must be ecx.
|
| - Register scratch, // Neither of above.
|
| - bool ascii);
|
| + void GenerateCopyCharactersREP(MacroAssembler* masm,
|
| + Register dest, // Must be edi.
|
| + Register src, // Must be esi.
|
| + Register count, // Must be ecx.
|
| + Register scratch, // Neither of the above.
|
| + bool ascii);
|
|
|
| // Probe the symbol table for a two character string. If the string is
|
| // not found by probing a jump to the label not_found is performed. This jump
|
| // does not guarantee that the string is not in the symbol table. If the
|
| // string is found the code falls through with the string in register eax.
|
| - static void GenerateTwoCharacterSymbolTableProbe(MacroAssembler* masm,
|
| - Register c1,
|
| - Register c2,
|
| - Register scratch1,
|
| - Register scratch2,
|
| - Register scratch3,
|
| - Label* not_found);
|
| + void GenerateTwoCharacterSymbolTableProbe(MacroAssembler* masm,
|
| + Register c1,
|
| + Register c2,
|
| + Register scratch1,
|
| + Register scratch2,
|
| + Register scratch3,
|
| + Label* not_found);
|
|
|
| // Generate string hash.
|
| - static void GenerateHashInit(MacroAssembler* masm,
|
| - Register hash,
|
| - Register character,
|
| - Register scratch);
|
| - static void GenerateHashAddCharacter(MacroAssembler* masm,
|
| - Register hash,
|
| - Register character,
|
| - Register scratch);
|
| - static void GenerateHashGetHash(MacroAssembler* masm,
|
| - Register hash,
|
| - Register scratch);
|
| -
|
| - private:
|
| - DISALLOW_IMPLICIT_CONSTRUCTORS(StringHelper);
|
| + void GenerateHashInit(MacroAssembler* masm,
|
| + Register hash,
|
| + Register character,
|
| + Register scratch);
|
| + void GenerateHashAddCharacter(MacroAssembler* masm,
|
| + Register hash,
|
| + Register character,
|
| + Register scratch);
|
| + void GenerateHashGetHash(MacroAssembler* masm,
|
| + Register hash,
|
| + Register scratch);
|
| };
|
|
|
|
|
| @@ -972,7 +940,7 @@ enum StringAddFlags {
|
| };
|
|
|
|
|
| -class StringAddStub: public CodeStub {
|
| +class StringAddStub: public StringStubBase {
|
| public:
|
| explicit StringAddStub(StringAddFlags flags) {
|
| string_check_ = ((flags & NO_STRING_CHECK_IN_STUB) == 0);
|
| @@ -989,7 +957,7 @@ class StringAddStub: public CodeStub {
|
| };
|
|
|
|
|
| -class SubStringStub: public CodeStub {
|
| +class SubStringStub: public StringStubBase {
|
| public:
|
| SubStringStub() {}
|
|
|
| @@ -1001,7 +969,7 @@ class SubStringStub: public CodeStub {
|
| };
|
|
|
|
|
| -class StringCompareStub: public CodeStub {
|
| +class StringCompareStub: public StringStubBase {
|
| public:
|
| explicit StringCompareStub() {
|
| }
|
|
|