diff options
-rw-r--r-- | extra/qtwebkit/LLIntCLoop32BigEndian.patch | 72 | ||||
-rw-r--r-- | extra/qtwebkit/PKGBUILD | 17 |
2 files changed, 83 insertions, 6 deletions
diff --git a/extra/qtwebkit/LLIntCLoop32BigEndian.patch b/extra/qtwebkit/LLIntCLoop32BigEndian.patch new file mode 100644 index 000000000..4331e0ea8 --- /dev/null +++ b/extra/qtwebkit/LLIntCLoop32BigEndian.patch @@ -0,0 +1,72 @@ +Index: Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm +=================================================================== +--- Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm (revision 139916) ++++ Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm (working copy) +@@ -1728,7 +1728,7 @@ _llint_op_next_pname: + loadi 20[PC], t2 + loadi PayloadOffset[cfr, t2, 8], t2 + loadp JSPropertyNameIterator::m_jsStrings[t2], t3 +- loadi [t3, t0, 8], t3 ++ loadi PayloadOffset[t3, t0, 8], t3 + addi 1, t0 + storei t0, PayloadOffset[cfr, t1, 8] + loadi 4[PC], t1 +Index: Source/JavaScriptCore/llint/LowLevelInterpreter.asm +=================================================================== +--- Source/JavaScriptCore/llint/LowLevelInterpreter.asm (revision 139916) ++++ Source/JavaScriptCore/llint/LowLevelInterpreter.asm (working copy) +@@ -263,13 +263,13 @@ macro assertNotConstant(index) + end + + macro functionForCallCodeBlockGetter(targetRegister) +- loadp Callee[cfr], targetRegister ++ loadp Callee + PayloadOffset[cfr], targetRegister + loadp JSFunction::m_executable[targetRegister], targetRegister + loadp FunctionExecutable::m_codeBlockForCall[targetRegister], targetRegister + end + + macro functionForConstructCodeBlockGetter(targetRegister) +- loadp Callee[cfr], targetRegister ++ loadp Callee + PayloadOffset[cfr], targetRegister + loadp JSFunction::m_executable[targetRegister], targetRegister + loadp FunctionExecutable::m_codeBlockForConstruct[targetRegister], targetRegister + end +@@ -841,7 +841,7 @@ macro interpretResolveWithBase(opcodeLen + getResolveOperation(4, t0, t1) + btpz t0, .slowPath + +- loadp ScopeChain[cfr], t3 ++ loadp ScopeChain + PayloadOffset[cfr], t3 + # Get the base + loadis ResolveOperation::m_operation[t0], t2 + +Index: Source/JavaScriptCore/llint/LowLevelInterpreter.cpp +=================================================================== +--- Source/JavaScriptCore/llint/LowLevelInterpreter.cpp (revision 139916) ++++ Source/JavaScriptCore/llint/LowLevelInterpreter.cpp (working copy) +@@ -33,6 +33,7 @@ + + #if ENABLE(LLINT_C_LOOP) + #include "CodeBlock.h" ++#include "JSValueInlines.h" + #include "LLIntCLoop.h" + #include "LLIntSlowPaths.h" + #include "VMInspector.h" +@@ -116,6 +117,17 @@ static double Ints2Double(uint32_t lo, u + u.ival64 = (static_cast<uint64_t>(hi) << 32) | lo; + return u.dval; + } ++ ++static void Double2Ints(double input, intptr_t& lo, intptr_t& hi) ++{ ++ union { ++ double dval; ++ uint64_t ival64; ++ } u; ++ u.dval = input; ++ hi = static_cast<intptr_t>(u.ival64 >> 32); ++ lo = static_cast<intptr_t>(u.ival64); ++} + #endif // USE(JSVALUE32_64) + + } // namespace LLint diff --git a/extra/qtwebkit/PKGBUILD b/extra/qtwebkit/PKGBUILD index 4a703ddfe..c7dcd715e 100644 --- a/extra/qtwebkit/PKGBUILD +++ b/extra/qtwebkit/PKGBUILD @@ -16,26 +16,31 @@ _qtver=4.8.4 source=("${pkgname}-${pkgver}.tar.gz"::"http://gitorious.org/webkit/qtwebkit-23/archive-tarball/${pkgname}-${_pkgver}" "http://releases.qt-project.org/qt4/source/qt-everywhere-opensource-src-${_qtver}.tar.gz" 'use-python2.patch' - 'qwebview.patch') + 'qwebview.patch' + 'LLIntCLoop32BigEndian.patch') sha1sums=('e5a8ffe62fc57dbbea2110241077bebbcd605fd2' 'f5880f11c139d7d8d01ecb8d874535f7d9553198' '315b6ff603f35e5492a036f7082f6aa075dfb607' - 'fed0c1a90e3997b5575dbc83d6ea23bc46097a6f') + 'fed0c1a90e3997b5575dbc83d6ea23bc46097a6f' + 'af830ae24e2ae5113754c9ae524d27ec0a28a9d6') build() { cd webkit-qtwebkit-23 if [ "$CARCH" = "mips64el" ]; then - # Fix MIPS N32 support. + # Fix MIPS N32 support. sed -i 's/defined(_ABIO32)/(defined(_ABIO32) || defined(_ABIN32))/' \ - Source/JavaScriptCore/wtf/Platform.h - # Don't enable JIT even if configure finds that it's not supported. + Source/WTF/wtf/Platform.h + # Don't enable JIT even if configure finds that it's not supported. sed -i 's/#define ENABLE_JIT 1/#define ENABLE_JIT 0/' \ - Source/JavaScriptCore/wtf/Platform.h + Source/WTF/wtf/Platform.h fi patch -p1 -i "${srcdir}"/use-python2.patch + # Fix https://bugs.webkit.org/show_bug.cgi?id=103128, original patch with ChangeLog stripped. + patch -p0 -i "${srcdir}/LLIntCLoop32BigEndian.patch" + export QTDIR=/usr Tools/Scripts/build-webkit --qt \ --makeargs="${MAKEFLAGS}" \ |