MIPS: Do not use mips_call when the call site is to be patched
Mips_call omits the ADDIU part of the LUI/ADDIU sequence when the target address is aligned on a 16K boundary. Without this, mips_patch can end up patching part of the subsequent call instruction, sentencing the VM to death by SIGILL. Fix that by manually expanding mips_call, and using mips_load--which doesn't optimize for size--instead of mips_load_const. Commit contributed under the MIT/X11 license.
Showing
想要评论请 注册 或 登录