-
Notifications
You must be signed in to change notification settings - Fork 13.2k
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
rustc_target: update x86_win64 to match the documented calling convention for f128 #138182
base: master
Are you sure you want to change the base?
Conversation
rustbot has assigned @Mark-Simulacrum. Use |
r? @tgross35 Looks OK but want to get someone more familiar with i128 to review. |
I meant to send a patch once my LLVM change merged, but we should also update our codegen to match. Could you change rust/compiler/rustc_target/src/callconv/x86_win64.rs Lines 26 to 43 in 8279176
|
You should be able to take the CC change from #137779. |
…tion for f128 llvm/llvm-project@5ee1c0b updates llvm to match the documented calling convention to pass f128 indirectly. This change makes us do that on all versions of LLVM, not just starting with LLVM 21. @rustbot label llvm-main
697c81b
to
8399166
Compare
@bors try r=me once that passes |
rustc_target: update x86_win64 to match the documented calling convention for f128 llvm/llvm-project@5ee1c0b updates llvm to match the documented calling convention to pass f128 indirectly. This change makes us do that on all versions of LLVM, not just starting with LLVM 21. `@rustbot` label llvm-main try-job: dist-x86_64-msvc try-job: dist-x86_64-mingw try-job: x86_64-msvc-1 try-job: x86_64-msvc-2 try-job: x86_64-mingw-1 try-job: x86_64-mingw-2
The job Click to see the possible cause of the failure (guessed by this bot)
|
💔 Test failed - checks-actions |
The test crash seems to indicate some kind of ABI mismatch. I am guessing this happens during the libcall to |
Only LLVM 21+ uses the new indirect ABI; Rust currently ships with LLVM 20 which will use the old ABI when generating calls to functions in |
llvm/llvm-project@5ee1c0b updates llvm to match the documented calling convention to pass f128 indirectly. This change makes us do that on all versions of LLVM, not just starting with LLVM 21.
@rustbot label llvm-main
try-job: dist-x86_64-msvc
try-job: dist-x86_64-mingw
try-job: x86_64-msvc-1
try-job: x86_64-msvc-2
try-job: x86_64-mingw-1
try-job: x86_64-mingw-2