summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/webkit/JavaScriptCore/yarr
diff options
context:
space:
mode:
Diffstat (limited to 'src/3rdparty/webkit/JavaScriptCore/yarr')
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/yarr/RegexJIT.cpp18
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/yarr/RegexPattern.h6
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 65c53cf2a..663a52437 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 fb1b0ab81..a4511318b 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)
{