diff options
author | q66 <daniel@octaforge.org> | 2019-08-22 17:23:20 +0000 |
---|---|---|
committer | Helmut Pozimski <helmut@pozimski.eu> | 2019-08-24 12:48:38 +0000 |
commit | aefb27adcb8e1317b9ea26072f6974d4f8adde61 (patch) | |
tree | db75546dd50f3d4c837806193b974ccd235f26d9 /srcpkgs/qt5-webkit/patches/ppc-llint.patch | |
parent | d22f59831589f40c869b51f38bdaf984e287640d (diff) | |
download | void-packages-aefb27adcb8e1317b9ea26072f6974d4f8adde61.tar void-packages-aefb27adcb8e1317b9ea26072f6974d4f8adde61.tar.gz void-packages-aefb27adcb8e1317b9ea26072f6974d4f8adde61.tar.bz2 void-packages-aefb27adcb8e1317b9ea26072f6974d4f8adde61.tar.lz void-packages-aefb27adcb8e1317b9ea26072f6974d4f8adde61.tar.xz void-packages-aefb27adcb8e1317b9ea26072f6974d4f8adde61.tar.zst void-packages-aefb27adcb8e1317b9ea26072f6974d4f8adde61.zip |
qt5-webkit: adopt, update snapshot, fixes, 32-bit debug support
This also refactors the template, enables debug on 32-bit systems
and fixes JavaScript on big endian (ppc/ppc64).
[ci skip]
Diffstat (limited to 'srcpkgs/qt5-webkit/patches/ppc-llint.patch')
-rw-r--r-- | srcpkgs/qt5-webkit/patches/ppc-llint.patch | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/srcpkgs/qt5-webkit/patches/ppc-llint.patch b/srcpkgs/qt5-webkit/patches/ppc-llint.patch new file mode 100644 index 00000000000..2fc5a46e523 --- /dev/null +++ b/srcpkgs/qt5-webkit/patches/ppc-llint.patch @@ -0,0 +1,32 @@ +This fixes JavaScriptCore on big endian systems (mainly ppc). + +Without the patch, attempting to run any JS results in +a crash as the generated code was endian specific. + +--- Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm ++++ Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm +@@ -1500,13 +1500,13 @@ _llint_op_put_by_id: + loadp StructureChain::m_vector[t3], t3 + assert(macro (ok) btpnz t3, ok end) + +- loadp Structure::m_prototype[t2], t2 ++ loadp Structure::m_prototype + PayloadOffset[t2], t2 + btpz t2, .opPutByIdTransitionChainDone + .opPutByIdTransitionChainLoop: + loadp [t3], t1 + bpneq t1, JSCell::m_structureID[t2], .opPutByIdSlow + addp 4, t3 +- loadp Structure::m_prototype[t1], t2 ++ loadp Structure::m_prototype + PayloadOffset[t1], t2 + btpnz t2, .opPutByIdTransitionChainLoop + + .opPutByIdTransitionChainDone: +@@ -1984,7 +1984,7 @@ _llint_throw_from_slow_path_trampoline: + # When throwing from the interpreter (i.e. throwing from LLIntSlowPaths), so + # the throw target is not necessarily interpreted code, we come to here. + # This essentially emulates the JIT's throwing protocol. +- loadp Callee[cfr], t1 ++ loadp Callee + PayloadOffset[cfr], t1 + andp MarkedBlockMask, t1 + loadp MarkedBlock::m_weakSet + WeakSet::m_vm[t1], t1 + copyCalleeSavesToVMCalleeSavesBuffer(t1, t2) |