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-06-12 23:51:55 +0000
commit73842f887aff2aa2d42a2979a2e3c2006bc3bbd8 (patch)
tree749d6aae3f3986895f381c71acb7320c86e3fa0d /user/qt5-qtwebkit/ppc64-llint.patch
parent3277887e8cc958965876d92577d0481553cf885b (diff)
downloadpackages-73842f887aff2aa2d42a2979a2e3c2006bc3bbd8.tar.gz
packages-73842f887aff2aa2d42a2979a2e3c2006bc3bbd8.tar.bz2
packages-73842f887aff2aa2d42a2979a2e3c2006bc3bbd8.tar.xz
packages-73842f887aff2aa2d42a2979a2e3c2006bc3bbd8.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)