summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/webkit/JavaScriptCore/yarr/RegexJIT.cpp
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@nokia.com>2009-06-24 11:42:15 (GMT)
committerSimon Hausmann <simon.hausmann@nokia.com>2009-06-24 11:42:15 (GMT)
commit259c32cd921fcbb85f79f21923d0efa0d6743d8a (patch)
treef9629c9be4b8488eb3221b48c0629a42a6ffce4c /src/3rdparty/webkit/JavaScriptCore/yarr/RegexJIT.cpp
parentff2b98cf81daf585bb657bee7f5f131769b38eca (diff)
downloadQt-259c32cd921fcbb85f79f21923d0efa0d6743d8a.zip
Qt-259c32cd921fcbb85f79f21923d0efa0d6743d8a.tar.gz
Qt-259c32cd921fcbb85f79f21923d0efa0d6743d8a.tar.bz2
Updated WebKit from /home/shausman/src/webkit/trunk to qtwebkit-4.6-snapshot-24062009 ( 6d5a2a0472a6af0b7f781da018e76bb8522d57a5 )
++ b/WebKit/qt/ChangeLog 2009-06-19 Daniel <qt-info@nokia.com> Reviewed by Simon Hausmann. Remove warnings for QString() constructions from const char * By explicitly wrapping it with QLatin1String() / QLatin1Char() * Api/qwebelement.cpp: (QWebElement::classes): Use QLatin1String. (QWebElement::addClass): Ditto. (QWebElement::removeClass): Ditto. (QWebElement::toggleClass): Ditto. 2009-06-18 Friedemann Kleint <Friedemann.Kleint@nokia.com> Reviewed by Simon Hausmann. Fixed MinGW compilation. * Api/qwebelement.cpp: (QWebElement::evaluateScript): 2009-06-18 Markus Goetz <Markus.Goetz@nokia.com> Reviewed by Simon Hausman. Clarify in docs how to compile with debug information. * docs/qtwebkit.qdoc: 2009-06-17 Markus Goetz <Markus.Goetz@nokia.com> Reviewed by Simon Hausmann. QWebPage: Don't call supportsSsl() This stops QWebPage from loading the OpenSSL libs, certificates etc. when they are not needed for the non-HTTPS case. Loading the SSL libraries can be a very slow operation. * Api/qwebpage.cpp: (QWebPage::userAgentForUrl): 2009-06-15 Benjamin C Meyer <benjamin.meyer@torchmobile.com> Reviewed by Adam Treat. Support the back/forward/stop/refresh multimedia keys and accept the event when handling backspace and shift backspace as we should. * Api/qwebpage.cpp: (QWebPagePrivate::keyPressEvent): 2009-06-15 Andre Pedralho <andre.pedralho@openbossa.org> Reviewed by Adam Treat. https://bugs.webkit.org/show_bug.cgi?id=26351 Remove bool QWebHitTestResult::isScrollBar() const and make sure a null QWebHitTestResult is returned instead. * Api/qwebframe.cpp: (QWebFrame::hitTestContent): * Api/qwebframe.h: * Api/qwebpage.cpp: (QWebPage::updatePositionDependentActions): 2009-06-15 Simon Hausmann <simon.hausmann@nokia.com> Reviewed by Adam Treat. Fix the logic for disabling the fixed layout feature, when an invalid QSize is set. * Api/qwebpage.cpp: (QWebPage::setFixedContentsSize): 2009-06-13 Adam Barth <abarth@webkit.org> Reviewed by Darin Fisher. https://bugs.webkit.org/show_bug.cgi?id=24492 Move registerURLSchemeAsLocal from FrameLoader to SecurityOrigin. * Api/qwebpage.cpp: (QWebPage::acceptNavigationRequest): Rubber-stamped by Simon Hausmann. 2009-06-09 Simon Hausmann <simon.hausmann@nokia.com> Reviewed by Ariya Hidayat. Renamed QWebSettings::AllowUniversalAccessFromFileUrls to LocalContentCanAccessRemoteUrls, as discussed in the API review. * Api/qwebsettings.cpp: (QWebSettingsPrivate::apply): (QWebSettings::QWebSettings): * Api/qwebsettings.h: 2009-06-09 Simon Hausmann <simon.hausmann@nokia.com> Reviewed by Ariya Hidayat. Merged useFixedLayout property with fixedLayoutSize and renamed the latter to fixedContentsSize. * Api/qwebpage.cpp: (QWebPage::fixedContentsSize): (QWebPage::setFixedContentsSize): * Api/qwebpage.h: * WebCoreSupport/FrameLoaderClientQt.cpp: (WebCore::FrameLoaderClientQt::transitionToCommittedForNewPage): 2009-06-09 Simon Hausmann <simon.hausmann@nokia.com> Reviewed by Ariya Hidayat. Renamed QWebHitTestResult::linkTarget to linkElement() and made it return a QWebElement. The link target itself is always the target DOM attribute. * Api/qwebframe.cpp: (QWebHitTestResultPrivate::QWebHitTestResultPrivate): (QWebHitTestResult::linkElement): * Api/qwebframe.h: * Api/qwebframe_p.h: * tests/qwebframe/tst_qwebframe.cpp:
Diffstat (limited to 'src/3rdparty/webkit/JavaScriptCore/yarr/RegexJIT.cpp')
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/yarr/RegexJIT.cpp40
1 files changed, 32 insertions, 8 deletions
diff --git a/src/3rdparty/webkit/JavaScriptCore/yarr/RegexJIT.cpp b/src/3rdparty/webkit/JavaScriptCore/yarr/RegexJIT.cpp
index a64dd8d..29a9d18 100644
--- a/src/3rdparty/webkit/JavaScriptCore/yarr/RegexJIT.cpp
+++ b/src/3rdparty/webkit/JavaScriptCore/yarr/RegexJIT.cpp
@@ -43,6 +43,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)
+ 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)
static const RegisterID input = X86::eax;
static const RegisterID index = X86::edx;
@@ -1278,34 +1289,47 @@ class RegexGenerator : private MacroAssembler {
void generateEnter()
{
- // On x86 edi & esi are callee preserved registers.
+#if PLATFORM(X86_64)
+ push(X86::ebp);
+ move(stackPointerRegister, X86::ebp);
+#elif PLATFORM(X86)
push(X86::ebp);
move(stackPointerRegister, X86::ebp);
-#if PLATFORM(X86)
// TODO: do we need spill registers to fill the output pointer if there are no sub captures?
push(X86::ebx);
push(X86::edi);
push(X86::esi);
// load output into edi (2 = saved ebp + return address).
-#if COMPILER(MSVC)
+ #if COMPILER(MSVC)
loadPtr(Address(X86::ebp, 2 * sizeof(void*)), input);
loadPtr(Address(X86::ebp, 3 * sizeof(void*)), index);
loadPtr(Address(X86::ebp, 4 * sizeof(void*)), length);
loadPtr(Address(X86::ebp, 5 * sizeof(void*)), output);
-#else
+ #else
loadPtr(Address(X86::ebp, 2 * sizeof(void*)), output);
-#endif
+ #endif
+#elif PLATFORM_ARM_ARCH(7)
+ push(ARM::r4);
+ push(ARM::r5);
+ push(ARM::r6);
+ move(ARM::r3, output);
#endif
}
void generateReturn()
{
-#if PLATFORM(X86)
+#if PLATFORM(X86_64)
+ pop(X86::ebp);
+#elif PLATFORM(X86)
pop(X86::esi);
pop(X86::edi);
pop(X86::ebx);
-#endif
pop(X86::ebp);
+#elif PLATFORM_ARM_ARCH(7)
+ pop(ARM::r6);
+ pop(ARM::r5);
+ pop(ARM::r4);
+#endif
ret();
}
@@ -1334,7 +1358,7 @@ public:
{
generate();
- PatchBuffer patchBuffer(this, globalData->executableAllocator.poolForSize(size()));
+ LinkBuffer patchBuffer(this, globalData->executableAllocator.poolForSize(size()));
for (unsigned i = 0; i < m_backtrackRecords.size(); ++i)
patchBuffer.patch(m_backtrackRecords[i].dataLabel, patchBuffer.locationOf(m_backtrackRecords[i].backtrackLocation));