Closed
Description
According to https://github.com/WebAssembly/tool-conventions/blob/main/BasicCABI.md __int128
and long long double
have to be returned indirectly. In
rust/compiler/rustc_target/src/callconv/wasm.rs
Lines 21 to 30 in 2776bdf
.make_indirect()
for i128 and f128. It currently works by accident as LLVM implicitly introduces a return area pointer when returning i128 and f128, but other backends and other code that needs to know the ABI may not be able to handle this.