| Index: src/ia32/codegen-ia32.h
|
| ===================================================================
|
| --- src/ia32/codegen-ia32.h (revision 3568)
|
| +++ src/ia32/codegen-ia32.h (working copy)
|
| @@ -547,6 +547,9 @@
|
| // Fast support for SubString.
|
| void GenerateSubString(ZoneList<Expression*>* args);
|
|
|
| + // Fast support for StringCompare.
|
| + void GenerateStringCompare(ZoneList<Expression*>* args);
|
| +
|
| // Support for direct calls from JavaScript to native RegExp code.
|
| void GenerateRegExpExec(ZoneList<Expression*>* args);
|
|
|
| @@ -804,6 +807,31 @@
|
| };
|
|
|
|
|
| +class StringCompareStub: public StringStubBase {
|
| + public:
|
| + explicit StringCompareStub() {
|
| + }
|
| +
|
| + // Compare two flat ascii strings and returns result in eax after popping two
|
| + // arguments from the stack. Due to the instructions used there are certain
|
| + // constraints on the registers that can be passed.
|
| + // counter must be ecx
|
| + // scratch1 most be one of eax, ebx or edx
|
| + static void GenerateCompareFlatAsciiStrings(MacroAssembler* masm,
|
| + Register left,
|
| + Register right,
|
| + Register counter,
|
| + Register scratch1,
|
| + Register scratch2);
|
| +
|
| + private:
|
| + Major MajorKey() { return StringCompare; }
|
| + int MinorKey() { return 0; }
|
| +
|
| + void Generate(MacroAssembler* masm);
|
| +};
|
| +
|
| +
|
| } } // namespace v8::internal
|
|
|
| #endif // V8_IA32_CODEGEN_IA32_H_
|
|
|