[Bug libc/25523] MIPS/Linux inline syscall template is miscompiled

cvs-commit at gcc dot gnu.org sourceware-bugzilla@sourceware.org
Sun Feb 16 13:00:00 GMT 2020


https://sourceware.org/bugzilla/show_bug.cgi?id=25523

--- Comment #12 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot gnu.org> ---
The release/2.31/master branch has been updated by Aurelien Jarno
<aurel32@sourceware.org>:

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=f4f884351533601863351dd8a0d79e59471372da

commit f4f884351533601863351dd8a0d79e59471372da
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Mon Feb 10 10:19:29 2020 -0300

    microblaze: Avoid clobbering register parameters in syscall

    The microblaze INTERNAL_SYSCALL macro might clobber the register
    parameter if the argument itself might clobber any register (a function
    call for instance).

    This patch fixes it by using temporary variables for the expressions
    between the register assignments (as indicated by GCC documentation,
    6.47.5.2 Specifying Registers for Local Variables).

    It is similar to the fix done for MIPS (bug 25523).

    Checked with microblaze-linux-gnu and microblazeel-linux-gnu build.

    (cherry picked from commit 6cc8fc7c1506e8084d65b078ff5b05a92e17a28a)

-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the Glibc-bugs mailing list