Skip to content

Commit 8870e99

Browse files
committed
Libcall abi fix
1 parent 6ffc939 commit 8870e99

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

src/abi/mod.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -155,16 +155,16 @@ impl<'tcx> FunctionCx<'_, '_, 'tcx> {
155155
(params, args.into())
156156
};
157157

158-
let ret_single_i128 = returns.len() == 1 && returns[0].value_type == types::I128;
159-
if ret_single_i128 && self.tcx.sess.target.is_like_windows {
160-
// Return i128 using the vector ABI on Windows
158+
let ret_single_if128 = returns.len() == 1 && returns[0].value_type.bits() == 128;
159+
if ret_single_if128 && self.tcx.sess.target.is_like_windows {
160+
// Return i128/f128 using the vector ABI on Windows
161161
returns[0].value_type = types::I64X2;
162162

163163
let ret = self.lib_call_unadjusted(name, params, returns, &args)[0];
164164

165165
Cow::Owned(vec![codegen_bitcast(self, types::I128, ret)])
166-
} else if ret_single_i128 && self.tcx.sess.target.arch == "s390x" {
167-
// Return i128 using a return area pointer on s390x.
166+
} else if ret_single_if128 && self.tcx.sess.target.arch == "s390x" {
167+
// Return i128/f128 using a return area pointer on s390x.
168168
let mut params = params;
169169
let mut args = args.to_vec();
170170

0 commit comments

Comments
 (0)