diff options
Diffstat (limited to 'src/3rdparty/webkit/JavaScriptCore/yarr')
-rw-r--r-- | src/3rdparty/webkit/JavaScriptCore/yarr/RegexJIT.cpp | 18 | ||||
-rw-r--r-- | src/3rdparty/webkit/JavaScriptCore/yarr/RegexPattern.h | 6 |
2 files changed, 13 insertions, 11 deletions
diff --git a/src/3rdparty/webkit/JavaScriptCore/yarr/RegexJIT.cpp b/src/3rdparty/webkit/JavaScriptCore/yarr/RegexJIT.cpp index 65c53cf..663a524 100644 --- a/src/3rdparty/webkit/JavaScriptCore/yarr/RegexJIT.cpp +++ b/src/3rdparty/webkit/JavaScriptCore/yarr/RegexJIT.cpp @@ -28,6 +28,7 @@ #include "ASCIICType.h" #include "JSGlobalData.h" +#include "LinkBuffer.h" #include "MacroAssembler.h" #include "RegexCompiler.h" @@ -43,18 +44,17 @@ namespace JSC { namespace Yarr { class RegexGenerator : private MacroAssembler { friend void jitCompileRegex(JSGlobalData* globalData, RegexCodeBlock& jitObject, const UString& pattern, unsigned& numSubpatterns, const char*& error, bool ignoreCase, bool multiline); -#if PLATFORM_ARM_ARCH(7) +#if PLATFORM(ARM) static const RegisterID input = ARM::r0; static const RegisterID index = ARM::r1; static const RegisterID length = ARM::r2; - static const RegisterID output = ARM::r4; + static const RegisterID regT0 = ARM::r5; static const RegisterID regT1 = ARM::r6; static const RegisterID returnRegister = ARM::r0; -#endif -#if PLATFORM(X86) +#elif PLATFORM(X86) static const RegisterID input = X86::eax; static const RegisterID index = X86::edx; static const RegisterID length = X86::ecx; @@ -64,8 +64,7 @@ class RegexGenerator : private MacroAssembler { static const RegisterID regT1 = X86::esi; static const RegisterID returnRegister = X86::eax; -#endif -#if PLATFORM(X86_64) +#elif PLATFORM(X86_64) static const RegisterID input = X86::edi; static const RegisterID index = X86::esi; static const RegisterID length = X86::edx; @@ -1309,7 +1308,10 @@ class RegexGenerator : private MacroAssembler { #else loadPtr(Address(X86::ebp, 2 * sizeof(void*)), output); #endif -#elif PLATFORM_ARM_ARCH(7) +#elif PLATFORM(ARM) +#if !PLATFORM_ARM_ARCH(7) + push(ARM::lr); +#endif push(ARM::r4); push(ARM::r5); push(ARM::r6); @@ -1327,7 +1329,7 @@ class RegexGenerator : private MacroAssembler { pop(X86::edi); pop(X86::ebx); pop(X86::ebp); -#elif PLATFORM_ARM_ARCH(7) +#elif PLATFORM(ARM) pop(ARM::r6); pop(ARM::r5); pop(ARM::r4); diff --git a/src/3rdparty/webkit/JavaScriptCore/yarr/RegexPattern.h b/src/3rdparty/webkit/JavaScriptCore/yarr/RegexPattern.h index fb1b0ab..a451131 100644 --- a/src/3rdparty/webkit/JavaScriptCore/yarr/RegexPattern.h +++ b/src/3rdparty/webkit/JavaScriptCore/yarr/RegexPattern.h @@ -57,7 +57,7 @@ struct CharacterRange { } }; -struct CharacterClass { +struct CharacterClass : FastAllocBase { Vector<UChar> m_matches; Vector<CharacterRange> m_ranges; Vector<UChar> m_matchesUnicode; @@ -181,7 +181,7 @@ struct PatternTerm { } }; -struct PatternAlternative { +struct PatternAlternative : FastAllocBase { PatternAlternative(PatternDisjunction* disjunction) : m_parent(disjunction) { @@ -205,7 +205,7 @@ struct PatternAlternative { bool m_hasFixedSize; }; -struct PatternDisjunction { +struct PatternDisjunction : FastAllocBase { PatternDisjunction(PatternAlternative* parent = 0) : m_parent(parent) { |