diff options
author | CyberLeo <cyberleo@cyberleo.net> | 2020-03-28 05:45:52 -0500 |
---|---|---|
committer | CyberLeo <cyberleo@cyberleo.net> | 2020-03-28 05:45:52 -0500 |
commit | 9297468fa579836e3a6a381b798feb6b78217c2d (patch) | |
tree | 53168212f427afbcf0693b534530a4af803152e9 /user/qt5-qtwebkit/ppc-llint.patch | |
parent | a63cc05c53a6f4c22422dc8c69808b14d87a6f6e (diff) | |
parent | da5a69b65a8791fffa6e93366ee585f87eff136d (diff) | |
download | packages-9297468fa579836e3a6a381b798feb6b78217c2d.tar.gz packages-9297468fa579836e3a6a381b798feb6b78217c2d.tar.bz2 packages-9297468fa579836e3a6a381b798feb6b78217c2d.tar.xz packages-9297468fa579836e3a6a381b798feb6b78217c2d.zip |
Merge branch 'master' into zfs
Diffstat (limited to 'user/qt5-qtwebkit/ppc-llint.patch')
-rw-r--r-- | user/qt5-qtwebkit/ppc-llint.patch | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/user/qt5-qtwebkit/ppc-llint.patch b/user/qt5-qtwebkit/ppc-llint.patch new file mode 100644 index 000000000..033bbab68 --- /dev/null +++ b/user/qt5-qtwebkit/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. + +--- qtwebkit/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm ++++ qtwebkit/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm +@@ -1440,13 +1440,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 + bineq 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: +@@ -2004,7 +2004,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 MarkedBlockFooterOffset + MarkedBlock::Footer::m_vm[t1], t1 + jmp VM::targetMachinePCForThrow[t1] |