summaryrefslogtreecommitdiff
path: root/user/qt5-qtwebkit/ppc64-llint.patch
diff options
context:
space:
mode:
authorA. Wilcox <AWilcox@Wilcox-Tech.com>2022-06-12 03:35:39 -0500
committerZach van Rijn <me@zv.io>2022-10-21 18:34:01 -0500
commit741941bfad1b5a071bba76fd1e3a4df0e2ed5d95 (patch)
tree3bae0971eca983f8696b7ab1ad8218cf87e1ddf5 /user/qt5-qtwebkit/ppc64-llint.patch
parent3506160b155883cbcbbd8a1b2fc4adda77eaa571 (diff)
downloadpackages-741941bfad1b5a071bba76fd1e3a4df0e2ed5d95.tar.gz
packages-741941bfad1b5a071bba76fd1e3a4df0e2ed5d95.tar.bz2
packages-741941bfad1b5a071bba76fd1e3a4df0e2ed5d95.tar.xz
packages-741941bfad1b5a071bba76fd1e3a4df0e2ed5d95.zip
user/qt5-qtwebkit: Update snapshot
Fixes: #644
Diffstat (limited to 'user/qt5-qtwebkit/ppc64-llint.patch')
-rw-r--r--user/qt5-qtwebkit/ppc64-llint.patch28
1 files changed, 28 insertions, 0 deletions
diff --git a/user/qt5-qtwebkit/ppc64-llint.patch b/user/qt5-qtwebkit/ppc64-llint.patch
new file mode 100644
index 000000000..802c00ae6
--- /dev/null
+++ b/user/qt5-qtwebkit/ppc64-llint.patch
@@ -0,0 +1,28 @@
+Description: fix JSCore segmentation fault on 64-bit big endian systems
+ In CodeBlock.cpp the code preparing the operands of op_get_from_scope writes
+ the property offset as pointer size (hence 64 bit) value:
+ .
+ 2141: instructions[i + 6].u.pointer = reinterpret_cast<void*>(op.operand);
+ .
+ while the same slot is accessed later by the jitted code as 32 bit integer:
+ .
+ macro getProperty(slow)
+ loadisFromInstruction(6, t1)
+ .
+ This fails on big endian targets since the integer access takes the higher
+ part of the 64 bit value.
+Origin: backport, https://github.com/webkit/webkit/commit/3fdde71c7d95d758
+Reviewed-by: Frank Heimes <frank.heimes@canonical.com>
+Last-Update: 2021-11-24
+
+--- a/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm
++++ b/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm
+@@ -2020,7 +2020,7 @@ macro loadWithStructureCheck(operand, sl
+ end
+
+ macro getProperty(slow)
+- loadisFromInstruction(6, t1)
++ loadpFromInstruction(6, t1)
+ loadPropertyAtVariableOffset(t1, t0, t2, slow)
+ valueProfile(t2, 7, t0)
+ loadisFromInstruction(1, t0)