Summary: | dlltool delaylibs corrupt float/double arguments | ||
---|---|---|---|
Product: | binutils | Reporter: | strager <strager.nds> |
Component: | binutils | Assignee: | Alan Modra <amodra> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | dushistov, egor.pugin |
Priority: | P2 | ||
Version: | 2.39 | ||
Target Milestone: | 2.41 | ||
Host: | Target: | windows-amd64 | |
Build: | Last reconfirmed: | 2023-05-15 00:00:00 | |
Attachments: |
semi-tested bug fix
minimal repro patch for base x86_64 arch |
Description
strager
2022-05-27 07:01:59 UTC
My patch saves ymm4 and ymm5, but I think that's unnecessary, since they won't be used for parameters. Created attachment 14121 [details]
minimal repro
Attached is a small program (DLL and EXE) which demonstrates the issue.
Created attachment 14880 [details]
patch for base x86_64 arch
This patch just fixes the fp arg problem, leaving vector args for later if it turns out necessary. I usually don't work on windows bugs, and it's a long time since I maintained x86 binutils so don't be surprised if I got something wrong. Please test. I've only tested to the point of seeing that dlltool doesn't crash..
The master branch has been updated by Alan Modra <amodra@sourceware.org>: https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=7529ff1fcdbe260a0ac84ee8f33f4fa4ee1ac455 commit 7529ff1fcdbe260a0ac84ee8f33f4fa4ee1ac455 Author: Alan Modra <amodra@gmail.com> Date: Mon May 15 10:44:29 2023 +0930 PR29189, dlltool delaylibs corrupt float/double arguments PR 29189 * dlltool.c (i386_x64_trampoline): Save and restore xmm0-5. Make use of parameter save area for integer arg regs. Comment. Tested and committed for 2.41. |