diff options
author | Igor Pashev <pashev.igor@gmail.com> | 2017-11-21 20:50:34 +0300 |
---|---|---|
committer | Igor Pashev <pashev.igor@gmail.com> | 2017-11-21 20:50:34 +0300 |
commit | 46c093eaeae3365f46124655c19df0762eb80caf (patch) | |
tree | 6afe1d23b75d3cfa2d222b31744b79dc494f4084 /debian | |
parent | 9ccbb8b53bffc27420ad8b360c581668bb8837bd (diff) | |
download | qt5webkit-46c093eaeae3365f46124655c19df0762eb80caf.tar.gz |
Update Dyson patches (might not work yet)
Diffstat (limited to 'debian')
-rw-r--r-- | debian/patches/dyson-MachineStackMarker-stackPointer.patch | 89 | ||||
-rw-r--r-- | debian/patches/dyson-MathExtras.patch | 29 | ||||
-rw-r--r-- | debian/patches/dyson-solaris-amd64-memory-layout.patch | 189 | ||||
-rw-r--r-- | debian/patches/dyson-use-system-malloc.patch | 14 | ||||
-rw-r--r-- | debian/patches/dyson-yield.patch | 25 | ||||
-rw-r--r-- | debian/patches/series | 3 |
6 files changed, 78 insertions, 271 deletions
diff --git a/debian/patches/dyson-MachineStackMarker-stackPointer.patch b/debian/patches/dyson-MachineStackMarker-stackPointer.patch deleted file mode 100644 index fe86514..0000000 --- a/debian/patches/dyson-MachineStackMarker-stackPointer.patch +++ /dev/null @@ -1,89 +0,0 @@ -Index: qt5webkit/Source/JavaScriptCore/heap/MachineStackMarker.cpp -=================================================================== ---- qt5webkit.orig/Source/JavaScriptCore/heap/MachineStackMarker.cpp 2014-02-02 00:37:54.000000000 +0400 -+++ qt5webkit/Source/JavaScriptCore/heap/MachineStackMarker.cpp 2014-04-28 14:04:11.798389583 +0400 -@@ -20,6 +20,9 @@ - */ - - #include "config.h" -+#if OS(SOLARIS) -+#undef _FILE_OFFSET_BITS -+#endif - #include "MachineStackMarker.h" - - #include "ConservativeRoots.h" -@@ -49,6 +52,10 @@ - #include <unistd.h> - - #if OS(SOLARIS) -+#include <sys/types.h> -+#include <sys/stat.h> -+#include <fcntl.h> -+#include <procfs.h> - #include <thread.h> - #else - #include <pthread.h> -@@ -317,6 +324,7 @@ - #error Need a thread register struct for this platform - #endif - -+#if !OS(SOLARIS) - static size_t getPlatformThreadRegisters(const PlatformThread& platformThread, PlatformThreadRegisters& regs) - { - #if OS(DARWIN) -@@ -383,6 +391,7 @@ - #error Need a way to get thread registers on this platform - #endif - } -+#endif - - static inline void* otherThreadStackPointer(const PlatformThreadRegisters& regs) - { -@@ -446,6 +455,7 @@ - #endif - } - -+#if !OS(SOLARIS) - static void freePlatformThreadRegisters(PlatformThreadRegisters& regs) - { - #if USE(PTHREADS) && !OS(WINDOWS) && !OS(DARWIN) && !OS(QNX) -@@ -454,20 +464,37 @@ - UNUSED_PARAM(regs); - #endif - } -+#endif - - void MachineThreads::gatherFromOtherThread(ConservativeRoots& conservativeRoots, Thread* thread) - { -+#if OS(SOLARIS) -+ struct lwpstatus lwp; -+ char procfile[64]; -+ int fd; -+ snprintf(procfile, 64, "/proc/self/lwp/%u/lwpstatus", thread->platformThread); -+ fd = open(procfile, O_RDONLY, 0); -+ if (fd == -1) { -+ fprintf(stderr, "%s: %s\n", procfile, strerror(errno)); -+ abort(); -+ } -+ pread(fd, &lwp, sizeof(lwp), 0); -+ close(fd); -+ void* stackPointer = (void*)lwp.pr_reg[REG_SP]; -+#else - PlatformThreadRegisters regs; - size_t regSize = getPlatformThreadRegisters(thread->platformThread, regs); - - conservativeRoots.add(static_cast<void*>(®s), static_cast<void*>(reinterpret_cast<char*>(®s) + regSize)); - - void* stackPointer = otherThreadStackPointer(regs); -+ -+ freePlatformThreadRegisters(regs); -+#endif -+ - void* stackBase = thread->stackBase; - swapIfBackwards(stackPointer, stackBase); - conservativeRoots.add(stackPointer, stackBase); -- -- freePlatformThreadRegisters(regs); - } - - void MachineThreads::gatherConservativeRoots(ConservativeRoots& conservativeRoots, void* stackCurrent) diff --git a/debian/patches/dyson-MathExtras.patch b/debian/patches/dyson-MathExtras.patch deleted file mode 100644 index e375228..0000000 --- a/debian/patches/dyson-MathExtras.patch +++ /dev/null @@ -1,29 +0,0 @@ -Index: qtwebkit-opensource-src-5.2.1+dfsg/Source/WTF/wtf/MathExtras.h -=================================================================== ---- qtwebkit-opensource-src-5.2.1+dfsg.orig/Source/WTF/wtf/MathExtras.h 2014-02-02 00:37:41.000000000 +0400 -+++ qtwebkit-opensource-src-5.2.1+dfsg/Source/WTF/wtf/MathExtras.h 2014-04-28 13:25:25.330249107 +0400 -@@ -88,24 +88,6 @@ - - #endif - --#if OS(SOLARIS) -- --namespace std { -- --#ifndef isfinite --inline bool isfinite(double x) { return finite(x) && !isnand(x); } --#endif --#ifndef signbit --inline bool signbit(double x) { return copysign(1.0, x) < 0; } --#endif --#ifndef isinf --inline bool isinf(double x) { return !finite(x) && !isnand(x); } --#endif -- --} // namespace std -- --#endif -- - #if OS(OPENBSD) - - namespace std { diff --git a/debian/patches/dyson-solaris-amd64-memory-layout.patch b/debian/patches/dyson-solaris-amd64-memory-layout.patch index 4a4cffe..0072fdc 100644 --- a/debian/patches/dyson-solaris-amd64-memory-layout.patch +++ b/debian/patches/dyson-solaris-amd64-memory-layout.patch @@ -9,45 +9,22 @@ Index: qt5webkit/Source/WTF/wtf/Platform.h =================================================================== --- qt5webkit.orig/Source/WTF/wtf/Platform.h +++ qt5webkit/Source/WTF/wtf/Platform.h -@@ -433,6 +433,15 @@ +@@ -409,6 +409,10 @@ #define WTF_OS_SOLARIS 1 #endif +#if CPU(X86_64) && OS(SOLARIS) +# define WTF_OS_SOLARIS_AMD64 1 -+# endif -+ -+// Let's port LLInt first: -+#if OS(SOLARIS_AMD64) -+#define ENABLE_JIT 0 +#endif + - /* OS(WINCE) - Windows CE; note that for this platform OS(WINDOWS) is also defined */ - #if defined(_WIN32_WCE) - #define WTF_OS_WINCE 1 -@@ -815,7 +824,7 @@ - low-level interpreter. */ - #if !defined(ENABLE_LLINT) \ - && ENABLE(JIT) \ -- && (OS(DARWIN) || OS(LINUX)) \ -+ && (OS(DARWIN) || OS(LINUX) || OS(SOLARIS)) \ - && (PLATFORM(MAC) || PLATFORM(IOS) || PLATFORM(GTK) || PLATFORM(QT)) \ - && (CPU(X86) || CPU(X86_64) || CPU(ARM_THUMB2) || CPU(ARM_TRADITIONAL) || CPU(MIPS) || CPU(SH4)) - #define ENABLE_LLINT 1 -@@ -823,7 +832,7 @@ - - #if !defined(ENABLE_DFG_JIT) && ENABLE(JIT) && !COMPILER(MSVC) - /* Enable the DFG JIT on X86 and X86_64. Only tested on Mac and GNU/Linux. */ --#if (CPU(X86) || CPU(X86_64)) && (OS(DARWIN) || OS(LINUX)) -+#if (CPU(X86) || CPU(X86_64)) && (OS(DARWIN) || OS(LINUX) || OS(SOLARIS)) - #define ENABLE_DFG_JIT 1 - #endif - /* Enable the DFG JIT on ARMv7. Only tested on iOS and Qt Linux. */ + /* OS(WINDOWS) - Any version of Windows */ + #if defined(WIN32) || defined(_WIN32) + #define WTF_OS_WINDOWS 1 Index: qt5webkit/Source/JavaScriptCore/runtime/JSCJSValue.h =================================================================== --- qt5webkit.orig/Source/JavaScriptCore/runtime/JSCJSValue.h +++ qt5webkit/Source/JavaScriptCore/runtime/JSCJSValue.h -@@ -387,6 +387,14 @@ private: +@@ -427,6 +427,14 @@ public: // alignment for a GC cell, and in the zero page). #define ValueEmpty 0x0ll #define ValueDeleted 0x4ll @@ -61,12 +38,12 @@ Index: qt5webkit/Source/JavaScriptCore/runtime/JSCJSValue.h + #endif - EncodedValueDescriptor u; + private: Index: qt5webkit/Source/JavaScriptCore/runtime/JSCJSValueInlines.h =================================================================== --- qt5webkit.orig/Source/JavaScriptCore/runtime/JSCJSValueInlines.h +++ qt5webkit/Source/JavaScriptCore/runtime/JSCJSValueInlines.h -@@ -336,6 +336,13 @@ inline bool JSValue::asBoolean() const +@@ -341,6 +341,13 @@ inline bool JSValue::asBoolean() const #else // !USE(JSVALUE32_64) i.e. USE(JSVALUE64) @@ -80,7 +57,7 @@ Index: qt5webkit/Source/JavaScriptCore/runtime/JSCJSValueInlines.h // 0x0 can never occur naturally because it has a tag of 00, indicating a pointer value, but a payload of 0x0, which is in the (invalid) zero page. inline JSValue::JSValue() { -@@ -412,6 +419,10 @@ inline int32_t JSValue::asInt32() const +@@ -417,6 +424,10 @@ inline int32_t JSValue::asInt32() const inline bool JSValue::isDouble() const { @@ -91,7 +68,7 @@ Index: qt5webkit/Source/JavaScriptCore/runtime/JSCJSValueInlines.h return isNumber() && !isInt32(); } -@@ -437,22 +448,38 @@ inline JSValue::JSValue(JSFalseTag) +@@ -442,22 +453,38 @@ inline JSValue::JSValue(JSFalseTag) inline bool JSValue::isUndefinedOrNull() const { @@ -130,7 +107,7 @@ Index: qt5webkit/Source/JavaScriptCore/runtime/JSCJSValueInlines.h return (u.asInt64 & TagTypeNumber) == TagTypeNumber; } -@@ -483,6 +510,10 @@ inline double JSValue::asDouble() const +@@ -489,6 +516,10 @@ inline double JSValue::asDouble() const inline bool JSValue::isNumber() const { @@ -145,7 +122,7 @@ Index: qt5webkit/Source/JavaScriptCore/jit/JITInlines.h =================================================================== --- qt5webkit.orig/Source/JavaScriptCore/jit/JITInlines.h +++ qt5webkit/Source/JavaScriptCore/jit/JITInlines.h -@@ -799,7 +799,14 @@ ALWAYS_INLINE void JIT::emitInitRegister +@@ -1241,7 +1241,14 @@ ALWAYS_INLINE void JIT::emitInitRegister ALWAYS_INLINE JIT::Jump JIT::emitJumpIfJSCell(RegisterID reg) { @@ -164,17 +141,7 @@ Index: qt5webkit/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm =================================================================== --- qt5webkit.orig/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm +++ qt5webkit/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm -@@ -31,6 +31,9 @@ const ValueFalse = TagBitTypeOther - const ValueTrue = TagBitTypeOther | TagBitBool | 1 - const ValueUndefined = TagBitTypeOther | TagBitUndefined - const ValueNull = TagBitTypeOther -+if SOLARIS_AMD64 -+const solarisAMD64StackBottom = 0xFFFF800000000000 -+end - - # Utilities. - macro jumpToInstruction() -@@ -167,12 +170,21 @@ end +@@ -389,12 +389,21 @@ end macro loadConstantOrVariableInt32(index, value, slow) loadConstantOrVariable(index, value) @@ -195,22 +162,8 @@ Index: qt5webkit/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm +end end - macro writeBarrier(value) -@@ -280,7 +292,13 @@ _llint_op_convert_this: - traceExecution() - loadisFromInstruction(1, t0) - loadq [cfr, t0, 8], t0 -+if SOLARIS_AMD64 -+ bqaeq t0, solarisAMD64StackBottom, .opConvertThisSolarisAMD64StackPointer -+end - btqnz t0, tagMask, .opConvertThisSlow -+if SOLARIS_AMD64 -+.opConvertThisSolarisAMD64StackPointer: -+end - loadp JSCell::m_structure[t0], t0 - bbb Structure::m_typeInfo + TypeInfo::m_type[t0], ObjectType, .opConvertThisSlow - loadpFromInstruction(2, t1) -@@ -364,7 +382,13 @@ _llint_op_neq: + macro writeBarrierOnOperand(cellOperand) +@@ -715,7 +724,13 @@ _llint_op_neq: macro equalNullComparison() loadisFromInstruction(2, t0) loadq [cfr, t0, 8], t0 @@ -221,10 +174,10 @@ Index: qt5webkit/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm +if SOLARIS_AMD64 +.solarisAMD64StackPointer: +end - loadp JSCell::m_structure[t0], t2 - btbnz Structure::m_typeInfo + TypeInfo::m_flags[t2], MasqueradesAsUndefined, .masqueradesAsUndefined + btbnz JSCell::m_flags[t0], MasqueradesAsUndefined, .masqueradesAsUndefined move 0, t0 -@@ -404,6 +428,10 @@ macro strictEq(equalityOperation, slowPa + jmp .done +@@ -755,6 +770,10 @@ macro strictEq(equalityOperation, slowPa loadisFromInstruction(2, t2) loadConstantOrVariable(t0, t1) loadConstantOrVariable(t2, t0) @@ -235,7 +188,7 @@ Index: qt5webkit/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm move t0, t2 orq t1, t2 btqz t2, tagMask, .slow -@@ -440,6 +468,9 @@ macro preOp(arithmeticOperation, slowPat +@@ -791,6 +810,9 @@ macro preOp(arithmeticOperation, slowPat traceExecution() loadisFromInstruction(1, t0) loadq [cfr, t0, 8], t1 @@ -245,7 +198,7 @@ Index: qt5webkit/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm bqb t1, tagTypeNumber, .slow arithmeticOperation(t1, .slow) orq tagTypeNumber, t1 -@@ -468,6 +499,9 @@ _llint_op_to_number: +@@ -819,6 +841,9 @@ _llint_op_to_number: loadisFromInstruction(2, t0) loadisFromInstruction(1, t1) loadConstantOrVariable(t0, t2) @@ -255,7 +208,7 @@ Index: qt5webkit/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm bqaeq t2, tagTypeNumber, .opToNumberIsImmediate btqz t2, tagTypeNumber, .opToNumberSlow .opToNumberIsImmediate: -@@ -484,6 +518,9 @@ _llint_op_negate: +@@ -851,6 +876,9 @@ _llint_op_negate: loadisFromInstruction(2, t0) loadisFromInstruction(1, t1) loadConstantOrVariable(t0, t2) @@ -265,7 +218,7 @@ Index: qt5webkit/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm bqb t2, tagTypeNumber, .opNegateNotInt btiz t2, 0x7fffffff, .opNegateSlow negi t2 -@@ -506,7 +543,13 @@ macro binaryOpCustomStore(integerOperati +@@ -873,7 +901,13 @@ macro binaryOpCustomStore(integerOperati loadisFromInstruction(2, t2) loadConstantOrVariable(t0, t1) loadConstantOrVariable(t2, t0) @@ -279,7 +232,7 @@ Index: qt5webkit/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm bqb t1, tagTypeNumber, .op2NotInt loadisFromInstruction(1, t2) integerOperationAndStore(t1, t0, .slow, t2) -@@ -515,6 +558,9 @@ macro binaryOpCustomStore(integerOperati +@@ -882,6 +916,9 @@ macro binaryOpCustomStore(integerOperati .op1NotInt: # First operand is definitely not an int, the second operand could be anything. btqz t0, tagTypeNumber, .slow @@ -289,7 +242,7 @@ Index: qt5webkit/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm bqaeq t1, tagTypeNumber, .op1NotIntOp2Int btqz t1, tagTypeNumber, .slow addq tagTypeNumber, t1 -@@ -535,6 +581,9 @@ macro binaryOpCustomStore(integerOperati +@@ -902,6 +939,9 @@ macro binaryOpCustomStore(integerOperati .op2NotInt: # First operand is definitely an int, the second is definitely not. loadisFromInstruction(1, t2) @@ -299,7 +252,7 @@ Index: qt5webkit/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm btqz t1, tagTypeNumber, .slow ci2d t0, ft0 addq tagTypeNumber, t1 -@@ -624,6 +673,10 @@ macro bitOp(operation, slowPath, advance +@@ -996,6 +1036,10 @@ macro bitOp(operation, slowPath, advance loadisFromInstruction(1, t3) loadConstantOrVariable(t0, t1) loadConstantOrVariable(t2, t0) @@ -309,10 +262,10 @@ Index: qt5webkit/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm +end bqb t0, tagTypeNumber, .slow bqb t1, tagTypeNumber, .slow - operation(t1, t0, .slow) -@@ -717,6 +770,9 @@ _llint_op_instanceof: - loadp JSCell::m_structure[t2], t2 - loadq Structure::m_prototype[t2], t2 + operation(t1, t0) +@@ -1107,6 +1151,9 @@ _llint_op_instanceof: + loadStructureAndClobberFirstArg(t2, t3) + loadq Structure::m_prototype[t3], t2 bqeq t2, t1, .opInstanceofDone +if SOLARIS_AMD64 + bqaeq t2, solarisAMD64StackBottom, .opInstanceofLoop @@ -320,7 +273,7 @@ Index: qt5webkit/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm btqz t2, tagMask, .opInstanceofLoop move 0, t0 -@@ -735,6 +791,9 @@ _llint_op_is_undefined: +@@ -1130,6 +1177,9 @@ _llint_op_is_undefined: loadisFromInstruction(2, t1) loadisFromInstruction(1, t2) loadConstantOrVariable(t1, t0) @@ -330,7 +283,7 @@ Index: qt5webkit/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm btqz t0, tagMask, .opIsUndefinedCell cqeq t0, ValueUndefined, t3 orq ValueFalse, t3 -@@ -772,6 +831,12 @@ _llint_op_is_number: +@@ -1167,6 +1217,12 @@ _llint_op_is_number: loadisFromInstruction(2, t1) loadisFromInstruction(1, t2) loadConstantOrVariable(t1, t0) @@ -343,7 +296,7 @@ Index: qt5webkit/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm tqnz t0, tagTypeNumber, t1 orq ValueFalse, t1 storeq t1, [cfr, t2, 8] -@@ -783,7 +848,13 @@ _llint_op_is_string: +@@ -1178,7 +1234,13 @@ _llint_op_is_string: loadisFromInstruction(2, t1) loadisFromInstruction(1, t2) loadConstantOrVariable(t1, t0) @@ -354,10 +307,10 @@ Index: qt5webkit/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm +if SOLARIS_AMD64 +.opIsStringSolarisAMD64StackPointer: +end - loadp JSCell::m_structure[t0], t0 - cbeq Structure::m_typeInfo + TypeInfo::m_type[t0], StringType, t1 + cbeq JSCell::m_type[t0], StringType, t1 orq ValueFalse, t1 -@@ -1150,6 +1221,9 @@ _llint_op_put_by_val: + storeq t1, [cfr, t2, 8] +@@ -1504,6 +1566,9 @@ macro putByVal(slowPath) contiguousPutByVal( macro (operand, scratch, address) loadConstantOrVariable(operand, scratch) @@ -367,7 +320,7 @@ Index: qt5webkit/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm bpb scratch, tagTypeNumber, .opPutByValSlow storep scratch, address end) -@@ -1159,6 +1233,9 @@ _llint_op_put_by_val: +@@ -1513,6 +1578,9 @@ macro putByVal(slowPath) contiguousPutByVal( macro (operand, scratch, address) loadConstantOrVariable(operand, scratch) @@ -377,7 +330,7 @@ Index: qt5webkit/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm bqb scratch, tagTypeNumber, .notInt ci2d scratch, ft0 jmp .ready -@@ -1237,7 +1314,13 @@ macro equalNull(cellHandler, immediateHa +@@ -1592,7 +1660,13 @@ macro equalNull(cellHandler, immediateHa loadisFromInstruction(1, t0) assertNotConstant(t0) loadq [cfr, t0, 8], t0 @@ -388,10 +341,10 @@ Index: qt5webkit/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm +if SOLARIS_AMD64 +.solarisAMD64StackPointer: +end - loadp JSCell::m_structure[t0], t2 - cellHandler(t2, Structure::m_typeInfo + TypeInfo::m_flags[t2], .target) + loadStructureWithScratch(t0, t2, t1) + cellHandler(t2, JSCell::m_flags[t0], .target) dispatch(3) -@@ -1295,6 +1378,10 @@ macro compare(integerCompare, doubleComp +@@ -1650,6 +1724,10 @@ macro compare(integerCompare, doubleComp loadisFromInstruction(2, t3) loadConstantOrVariable(t2, t0) loadConstantOrVariable(t3, t1) @@ -402,9 +355,9 @@ Index: qt5webkit/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm bqb t0, tagTypeNumber, .op1NotInt bqb t1, tagTypeNumber, .op2NotInt integerCompare(t0, t1, .jumpTarget) -@@ -1342,6 +1429,9 @@ _llint_op_switch_imm: +@@ -1697,6 +1775,9 @@ _llint_op_switch_imm: muli sizeof SimpleJumpTable, t3 # FIXME: would be nice to peephole this! - loadp CodeBlock::RareData::m_immediateSwitchJumpTables + VectorBufferOffset[t2], t2 + loadp CodeBlock::RareData::m_switchJumpTables + VectorBufferOffset[t2], t2 addp t3, t2 +if SOLARIS_AMD64 + bqaeq t1, solarisAMD64StackBottom, .opSwitchImmFallThrough @@ -412,9 +365,9 @@ Index: qt5webkit/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm bqb t1, tagTypeNumber, .opSwitchImmNotInt subi SimpleJumpTable::min[t2], t1 biaeq t1, SimpleJumpTable::branchOffsets + VectorSizeOffset[t2], .opSwitchImmFallThrough -@@ -1370,7 +1460,13 @@ _llint_op_switch_char: +@@ -1725,7 +1806,13 @@ _llint_op_switch_char: muli sizeof SimpleJumpTable, t3 - loadp CodeBlock::RareData::m_characterSwitchJumpTables + VectorBufferOffset[t2], t2 + loadp CodeBlock::RareData::m_switchJumpTables + VectorBufferOffset[t2], t2 addp t3, t2 +if SOLARIS_AMD64 + bqaeq t1, solarisAMD64StackBottom, .opSwitchCharSolarisAMD64StackPointer @@ -423,38 +376,24 @@ Index: qt5webkit/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm +if SOLARIS_AMD64 +.opSwitchCharSolarisAMD64StackPointer: +end - loadp JSCell::m_structure[t1], t0 - bbneq Structure::m_typeInfo + TypeInfo::m_type[t0], StringType, .opSwitchCharFallThrough + bbneq JSCell::m_type[t1], StringType, .opSwitchCharFallThrough bineq JSString::m_length[t1], 1, .opSwitchCharFallThrough -@@ -1414,7 +1510,13 @@ macro arrayProfileForCall() - if VALUE_PROFILER - loadisFromInstruction(3, t3) - loadq ThisArgumentOffset[cfr, t3, 8], t0 + loadp JSString::m_value[t1], t0 +@@ -1756,7 +1843,13 @@ macro arrayProfileForCall() + loadisFromInstruction(4, t3) + negp t3 + loadq ThisArgumentOffset[cfr, t3, 8], t0 +if SOLARIS_AMD64 + bqaeq t0, solarisAMD64StackBottom, .solarisAMD64StackPointer +end - btqnz t0, tagMask, .done + btqnz t0, tagMask, .done +if SOLARIS_AMD64 +.solarisAMD64StackPointer: +end - loadp JSCell::m_structure[t0], t0 - loadpFromInstruction(5, t1) - storep t0, ArrayProfile::m_lastSeenStructure[t1] -@@ -1488,7 +1590,13 @@ _llint_op_ret_object_or_this: - checkSwitchToJITForEpilogue() - loadisFromInstruction(1, t2) - loadConstantOrVariable(t2, t0) -+if SOLARIS_AMD64 -+ bqaeq t0, solarisAMD64StackBottom, .opRetObjectOrThisSolarisAMD64StackPointer -+end - btqnz t0, tagMask, .opRetObjectOrThisNotObject -+if SOLARIS_AMD64 -+.opRetObjectOrThisSolarisAMD64StackPointer: -+end - loadp JSCell::m_structure[t0], t2 - bbb Structure::m_typeInfo + TypeInfo::m_type[t2], ObjectType, .opRetObjectOrThisNotObject - doReturn() -@@ -1504,7 +1612,13 @@ _llint_op_to_primitive: + loadpFromInstruction((CallOpCodeSize - 2), t1) + loadi JSCell::m_structureID[t0], t3 + storei t3, ArrayProfile::m_lastSeenStructureID[t1] +@@ -1798,7 +1891,13 @@ _llint_op_to_primitive: loadisFromInstruction(2, t2) loadisFromInstruction(1, t3) loadConstantOrVariable(t2, t0) @@ -465,14 +404,14 @@ Index: qt5webkit/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm +if SOLARIS_AMD64 +.opToPrimitiveSolarisAMD64StackPointer: +end - loadp JSCell::m_structure[t0], t2 - bbneq Structure::m_typeInfo + TypeInfo::m_type[t2], StringType, .opToPrimitiveSlowCase + bbaeq JSCell::m_type[t0], ObjectType, .opToPrimitiveSlowCase .opToPrimitiveIsImm: + storeq t0, [cfr, t3, 8] Index: qt5webkit/Source/JavaScriptCore/llint/LLIntOfflineAsmConfig.h =================================================================== --- qt5webkit.orig/Source/JavaScriptCore/llint/LLIntOfflineAsmConfig.h +++ qt5webkit/Source/JavaScriptCore/llint/LLIntOfflineAsmConfig.h -@@ -104,6 +104,12 @@ +@@ -143,6 +143,12 @@ #define OFFLINE_ASM_JSVALUE64 0 #endif @@ -485,3 +424,17 @@ Index: qt5webkit/Source/JavaScriptCore/llint/LLIntOfflineAsmConfig.h #if !ASSERT_DISABLED #define OFFLINE_ASM_ASSERT_ENABLED 1 #else +Index: qt5webkit/Source/JavaScriptCore/llint/LowLevelInterpreter.asm +=================================================================== +--- qt5webkit.orig/Source/JavaScriptCore/llint/LowLevelInterpreter.asm ++++ qt5webkit/Source/JavaScriptCore/llint/LowLevelInterpreter.asm +@@ -191,6 +191,9 @@ if JSVALUE64 + const ValueTrue = TagBitTypeOther | TagBitBool | 1 + const ValueUndefined = TagBitTypeOther | TagBitUndefined + const ValueNull = TagBitTypeOther ++if SOLARIS_AMD64 ++ const solarisAMD64StackBottom = 0xFFFF800000000000 ++end + const TagTypeNumber = 0xffff000000000000 + const TagMask = TagTypeNumber | TagBitTypeOther + else diff --git a/debian/patches/dyson-use-system-malloc.patch b/debian/patches/dyson-use-system-malloc.patch index 7d85c5a..d5208da 100644 --- a/debian/patches/dyson-use-system-malloc.patch +++ b/debian/patches/dyson-use-system-malloc.patch @@ -3,12 +3,12 @@ Index: qt5webkit/Source/WTF/wtf/Platform.h =================================================================== --- qt5webkit.orig/Source/WTF/wtf/Platform.h +++ qt5webkit/Source/WTF/wtf/Platform.h -@@ -721,7 +721,7 @@ - #if PLATFORM(QT) - /* We must not customize the global operator new and delete for the Qt port. */ - #define ENABLE_GLOBAL_FASTMALLOC_NEW 0 --#if !OS(UNIX) -+#if !OS(UNIX) || OS(SOLARIS) +@@ -691,7 +691,7 @@ + /* Include feature macros */ + #include <wtf/FeatureDefines.h> + +-#if OS(WINDOWS) && !PLATFORM(QT) ++#if (OS(WINDOWS) && !PLATFORM(QT)) || OS(SOLARIS) #define USE_SYSTEM_MALLOC 1 #endif - #endif + diff --git a/debian/patches/dyson-yield.patch b/debian/patches/dyson-yield.patch deleted file mode 100644 index ad7d80f..0000000 --- a/debian/patches/dyson-yield.patch +++ /dev/null @@ -1,25 +0,0 @@ -Description: Fixed conflict with yield() from unistd.h -Index: qt5webkit/Source/WTF/wtf/Threading.h -=================================================================== ---- qt5webkit.orig/Source/WTF/wtf/Threading.h 2014-02-02 00:37:42.000000000 +0400 -+++ qt5webkit/Source/WTF/wtf/Threading.h 2014-04-28 13:36:40.701768654 +0400 -@@ -112,6 +112,5 @@ - using WTF::currentThread; - using WTF::detachThread; - using WTF::waitForThreadCompletion; --using WTF::yield; - - #endif // Threading_h -Index: qt5webkit/Source/WebCore/platform/sql/SQLiteDatabase.cpp -=================================================================== ---- qt5webkit.orig/Source/WebCore/platform/sql/SQLiteDatabase.cpp 2014-02-02 00:37:47.000000000 +0400 -+++ qt5webkit/Source/WebCore/platform/sql/SQLiteDatabase.cpp 2014-04-28 13:37:09.063961263 +0400 -@@ -127,7 +127,7 @@ - if (!m_db) - return; - sqlite3_interrupt(m_db); -- yield(); -+ WTF::yield(); - } - - m_lockingMutex.unlock(); diff --git a/debian/patches/series b/debian/patches/series index 13e6f0c..5e1189d 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -5,8 +5,5 @@ fix_copyChars_segfault.diff fix_selectedHtml_segfault.diff fix_ftbfs_x32.diff path_max.diff -dyson-MathExtras.patch -dyson-yield.patch -dyson-MachineStackMarker-stackPointer.patch dyson-solaris-amd64-memory-layout.patch dyson-use-system-malloc.patch |