[Bug libc/25523] MIPS/Linux inline syscall template is miscompiled
cvs-commit at gcc dot gnu.org
sourceware-bugzilla@sourceware.org
Wed Feb 12 22:16:00 GMT 2020
https://sourceware.org/bugzilla/show_bug.cgi?id=25523
--- Comment #4 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Joseph Myers <jsm28@sourceware.org>:
https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=4fbba6fe904d0094ddc4284066b3860d119cbd4a
commit 4fbba6fe904d0094ddc4284066b3860d119cbd4a
Author: WANG Xuerui <git@xen0n.name>
Date: Thu Feb 13 00:57:03 2020 +0800
mips: Fix argument passing for inlined syscalls on Linux [BZ #25523]
According to [gcc documentation][1], temporary variables must be used for
the desired content to not be call-clobbered.
Fix the Linux inline syscall templates by adding temporary variables,
much like what x86 did before
(commit 381a0c26d73e0f074c962e0ab53b99a6c327066d).
Tested with gcc 9.2.0, both cross-compiled and natively on Loongson
3A4000.
[1]: https://gcc.gnu.org/onlinedocs/gcc/Local-Register-Variables.html
--
You are receiving this mail because:
You are on the CC list for the bug.
More information about the Glibc-bugs
mailing list