This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Tail call optimizations lead to crashes on ARM Thumb + Linux
https://bugs.webkit.org/show_bug.cgi?id=150083 Patch by Zan Dobersek <email@example.com> on 2016-04-15 Reviewed by Csaba Osztrogonác. * assembler/AbstractMacroAssembler.h: (JSC::AbstractMacroAssembler::repatchNearCall): In case of a tail call relink to the data location of the destination, and not the executable address. This is needed for the ARM Thumb2 platform where both the source and destination addresses of a jump relink must not have the bottom bit decorated, as asserted in ARMv7Assembler::relinkJump(). * jit/Repatch.cpp: (JSC::linkPolymorphicCall): Similarly, when linking a tail call we must link to the address that has a non-decorated bottom bit, as asserted in ARMv7Assembler::linkJumpAbsolute(). Canonical link: https://commits.webkit.org/174726@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@199586 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- Loading branch information
Showing 3 changed files with 21 additions and 2 deletions.