-
-
Notifications
You must be signed in to change notification settings - Fork 610
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix Issue 23418 - double argument is passed on stack, but assumed to … #14568
Conversation
|
Thanks for your pull request, @WalterBright! Bugzilla references
Testing this PR locallyIf you don't have a local development environment setup, you can use Digger to test this PR: dub run digger -- build "master + dmd#14568" |
…be in XMM0 register
6843a15 to
88d6d5b
Compare
|
blocking #14567 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm trying to grasp the issue. So all this time, double parameters on 32-bit Linux with -O were completely broken, because the caller and callee were not consistent about the ABI? Would the new runnable/cdcmp.d test fail on 32-bit Linux with before this fix?
|
Does this affect extern(C/C++) codegen? If so target stable. |
Yes. Oops. @ibuclaw I'd rather not, as this problem is blocking my further work on master with XMM code gen.
Ironically, most of the time it worked because the XMM0 parameter was pushed onto the stack, and yet remained in XMM0. The bug was possible on memory models that didn't pass floating point values in XMM registers. But for the bug to appear, a set of other conditions have to be met. |
|
@WalterBright you can always merge stable into master immediately afterwards. In fact, I've got it pending on my release tasks, but I'm still waiting for you to reply to your emails w.r.t ftp.digitalmars.com access. :-) |
|
I thought Jan was doing that? |
Seen no response from him so far. You are part of the wheel group though, so as a fallback admin, you can |
|
Could you email me exactly what to do? Thanks! |
…be in XMM0 register
I replaced the "check the generated asm" tests, because the "known good" assembler was wrong. Replaced it with a runtime check.