зеркало из https://github.com/mozilla/gecko-dev.git
03e51146b9
The hand-written assembly for libffi on aarch64/windows doesn't emit unwind information. If we ever tried to unwind through these functions, they'd look like leaf functions, which is decidedly not true and would cause great pain. For whatever reason, the original aarch64 libffi functions used x21/x22/x23/x24 as their (callee-saved) scratch registers. This convention works on windows as well, but the unwind information on windows mandates that we start saving callee-saved registers starting from x19, rather than x21. Rather than rewriting the assembly to use x19/x20 instead of x21/x22, which would be a large change, we chose instead to simply save/restore extra registers in the prolog/epilog. This change does make the stack frame sizes slightly bigger, but an extra 16 bytes in libffi stack frames should not matter. The `-TC` change is necessary to make the compiler play nicely with .asm file suffixes. Differential Revision: https://phabricator.services.mozilla.com/D35714 --HG-- extra : moz-landing-system : lando |
||
---|---|---|
.. | ||
fdlibm | ||
ffi | ||
freetype2 | ||
icu | ||
lgpllibs | ||
nspr | ||
sqlite | ||
zlib | ||
moz.build |