[SCM] QtWebKit packaging branch, master, updated. debian/2.3.4.dfsg-2-3-g74abfd3
Lisandro Damián Nicanor Pérez
lisandro at moszumanska.debian.org
Tue Oct 14 19:07:10 UTC 2014
Gitweb-URL: http://git.debian.org/?p=pkg-kde/qt/qtwebkit.git;a=commitdiff;h=14e5edf
The following commit has been merged in the master branch:
commit 14e5edf9e053755f4535b93b4fc06bd41f7ef868
Author: Lisandro Damián Nicanor Pérez Meyer <perezmeyer at gmail.com>
Date: Tue Oct 14 16:05:57 2014 -0300
Backport fix_cloop_on_big_endian_machines.patch
Closes: #761040
---
debian/changelog | 3 +
.../patches/fix_cloop_on_big_endian_machines.patch | 135 +++++++++++++++++++++
debian/patches/series | 1 +
3 files changed, 139 insertions(+)
diff --git a/debian/changelog b/debian/changelog
index c312df2..48b1220 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,5 +1,8 @@
qtwebkit (2.3.4.dfsg-3) UNRELEASED; urgency=medium
+ [ Lisandro Damián Nicanor Pérez Meyer ]
+ * Backport fix_cloop_on_big_endian_machines.patch (Closes: #761040).
+
-- Debian Qt/KDE Maintainers <debian-qt-kde at lists.debian.org> Tue, 14 Oct 2014 15:59:06 -0300
qtwebkit (2.3.4.dfsg-2) unstable; urgency=medium
diff --git a/debian/patches/fix_cloop_on_big_endian_machines.patch b/debian/patches/fix_cloop_on_big_endian_machines.patch
new file mode 100644
index 0000000..f1f64c7
--- /dev/null
+++ b/debian/patches/fix_cloop_on_big_endian_machines.patch
@@ -0,0 +1,135 @@
+From 0c58a486f551e7e7b63d438e3d32f21f876327d1 Mon Sep 17 00:00:00 2001
+From: Allan Sandfeld Jensen <allan.jensen at digia.com>
+Date: Thu, 9 Oct 2014 17:40:37 +0200
+Subject: [PATCH] Fix CLoop on big-endian machines
+
+Callee and ScopeChain are JSObject pointers and saved in the 64bit
+structure for JS registers. On a 32bit big-endian machine the actual
+pointer is offset by the PayloadOffset of 4 bytes, but on little-endian
+and 64bit architectures there is no offset.
+
+This patch fixes four places the payloadOffset was not correctly added
+on 32bit big-endian, and six places it was added on 64big big-endian
+when it shouldn't.
+
+Task-number: QTBUG-41896
+Change-Id: I46b474bee9822b8040d1b7b2e8f31ce42e0adefe
+Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte at digia.com>
+---
+ Source/JavaScriptCore/llint/LowLevelInterpreter.asm | 25 +++++++++------
+ Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm | 2 -
+ 2 files changed, 16 insertions(+), 11 deletions(-)
+
+--- a/Source/JavaScriptCore/llint/LowLevelInterpreter.asm
++++ b/Source/JavaScriptCore/llint/LowLevelInterpreter.asm
+@@ -87,6 +87,12 @@ else
+ const PayloadOffset = 0
+ end
+
++if JSVALUE64
++ const JSCellPayloadOffset = 0
++else
++ const JSCellPayloadOffset = PayloadOffset
++end
++
+ # Constant for reasoning about butterflies.
+ const IsArray = 1
+ const IndexingShapeMask = 30
+@@ -161,7 +167,6 @@ else
+ const VectorBufferOffset = 4
+ end
+
+-
+ # Some common utilities.
+ macro crash()
+ if C_LOOP
+@@ -263,13 +268,13 @@ macro assertNotConstant(index)
+ end
+
+ macro functionForCallCodeBlockGetter(targetRegister)
+- loadp Callee[cfr], targetRegister
++ loadp Callee + JSCellPayloadOffset[cfr], targetRegister
+ loadp JSFunction::m_executable[targetRegister], targetRegister
+ loadp FunctionExecutable::m_codeBlockForCall[targetRegister], targetRegister
+ end
+
+ macro functionForConstructCodeBlockGetter(targetRegister)
+- loadp Callee[cfr], targetRegister
++ loadp Callee + JSCellPayloadOffset[cfr], targetRegister
+ loadp JSFunction::m_executable[targetRegister], targetRegister
+ loadp FunctionExecutable::m_codeBlockForConstruct[targetRegister], targetRegister
+ end
+@@ -684,7 +689,7 @@ _llint_op_resolve_global_var:
+ macro resolveScopedVarBody(resolveOperations)
+ # First ResolveOperation is to skip scope chain nodes
+ getScope(macro(dest)
+- loadp ScopeChain + PayloadOffset[cfr], dest
++ loadp ScopeChain + JSCellPayloadOffset[cfr], dest
+ end,
+ ResolveOperation::m_scopesToSkip[resolveOperations], t1, t2)
+ loadp JSVariableObject::m_registers[t1], t1 # t1 now contains the activation registers
+@@ -709,7 +714,7 @@ _llint_op_resolve_scoped_var_on_top_scop
+ loadisFromInstruction(1, t3)
+
+ # We know we want the top scope chain entry
+- loadp ScopeChain + PayloadOffset[cfr], t1
++ loadp ScopeChain + JSCellPayloadOffset[cfr], t1
+ loadp JSVariableObject::m_registers[t1], t1 # t1 now contains the activation registers
+
+ # Second ResolveOperation tells us what offset to use
+@@ -731,7 +736,7 @@ _llint_op_resolve_scoped_var_with_top_sc
+ loadp JSScope::m_next[t1], dest
+ jmp .done
+ .scopeChainNotCreated:
+- loadp ScopeChain + PayloadOffset[cfr], dest
++ loadp ScopeChain + JSCellPayloadOffset[cfr], dest
+ .done:
+ end,
+ # Second ResolveOperation tells us how many more nodes to skip
+@@ -786,7 +791,7 @@ _llint_op_resolve_base_to_scope:
+ getResolveOperation(4, t0, t1)
+ # First ResolveOperation is to skip scope chain nodes
+ getScope(macro(dest)
+- loadp ScopeChain + PayloadOffset[cfr], dest
++ loadp ScopeChain + JSCellPayloadOffset[cfr], dest
+ end,
+ ResolveOperation::m_scopesToSkip[t0], t1, t2)
+ loadisFromInstruction(1, t3)
+@@ -811,7 +816,7 @@ _llint_op_resolve_base_to_scope_with_top
+ loadp JSScope::m_next[t1], dest
+ jmp .done
+ .scopeChainNotCreated:
+- loadp ScopeChain + PayloadOffset[cfr], dest
++ loadp ScopeChain + JSCellPayloadOffset[cfr], dest
+ .done:
+ end,
+ # Second ResolveOperation tells us how many more nodes to skip
+@@ -841,7 +846,7 @@ macro interpretResolveWithBase(opcodeLen
+ getResolveOperation(4, t0, t1)
+ btpz t0, .slowPath
+
+- loadp ScopeChain[cfr], t3
++ loadp ScopeChain + JSCellPayloadOffset[cfr], t3
+ # Get the base
+ loadis ResolveOperation::m_operation[t0], t2
+
+@@ -863,7 +868,7 @@ macro interpretResolveWithBase(opcodeLen
+ loadp JSScope::m_next[t1], dest
+ jmp .done
+ .scopeChainNotCreated:
+- loadp ScopeChain + PayloadOffset[cfr], dest
++ loadp ScopeChain + JSCellPayloadOffset[cfr], dest
+ .done:
+ end,
+ sizeof ResolveOperation + ResolveOperation::m_scopesToSkip[t0], t1, t2)
+--- a/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm
++++ b/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm
+@@ -1718,7 +1718,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
diff --git a/debian/patches/series b/debian/patches/series
index 3889e65..626fbd6 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,6 +1,7 @@
# upstream patches
jsobject_ensure_indexingtype_should_handle_InterceptsGetOwn.patch
fix_linking_issue_on_some_platforms_when_building_against_gstreamer_1.0.patch
+fix_cloop_on_big_endian_machines.patch
# debian patches
02_add_nostrip_for_debug_packages.diff
--
QtWebKit packaging
More information about the pkg-kde-commits
mailing list