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_ |