bjorn3 opened PR #7770 from bjorn3:fix_x64_option_i128_abi
to bytecodealliance:main
:
LLVM passes the tag in rax and the u128 val in rdx/rcx. Before this change Cranelift would pass the first half of the value in rdx and the second half using an implicit return value pointer.
Fixes https://github.com/rust-lang/rustc_codegen_cranelift/issues/1449
bjorn3 requested abrown for a review on PR #7770.
bjorn3 requested wasmtime-compiler-reviewers for a review on PR #7770.
bjorn3 updated PR #7770.
abrown submitted PR review:
Makes sense to me.
@bjorn3, I tried to look this up in the LLVM documentation but all I can find is a mention of RCX in the swiftcc calling convention here. Where do you see it?
See eg https://rust.godbolt.org/z/fTM6o84xq Fair chance it isn't documented anywhere, this requires the enable_llvm_abi_extensions flag in Cranelift for a reason.
abrown merged PR #7770.
Last updated: Nov 22 2024 at 16:03 UTC