From: Rust Maintainers Date: Sun, 8 Jul 2018 19:39:35 +0000 (+0100) Subject: u-fix-sparc64-cabi X-Git-Tag: archive/raspbian/1.24.1+dfsg1-1_deb9u2+rpi1~29 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=bfdda5bc6ace2666b15da893f2a9863063019b0b;p=rustc.git u-fix-sparc64-cabi Gbp-Pq: Name u-fix-sparc64-cabi.patch --- diff --git a/src/librustc_trans/cabi_sparc64.rs b/src/librustc_trans/cabi_sparc64.rs index 7c52e27fa6..d1dbd73783 100644 --- a/src/librustc_trans/cabi_sparc64.rs +++ b/src/librustc_trans/cabi_sparc64.rs @@ -50,7 +50,7 @@ fn classify_ret_ty<'a, 'tcx>(ccx: &CrateContext<'a, 'tcx>, ret: &mut ArgType<'tc } let size = ret.layout.size; let bits = size.bits(); - if bits <= 128 { + if bits <= 256 { let unit = if bits <= 8 { Reg::i8() } else if bits <= 16 { @@ -84,6 +84,10 @@ fn classify_arg_ty<'a, 'tcx>(ccx: &CrateContext<'a, 'tcx>, arg: &mut ArgType<'tc } let total = arg.layout.size; + if total.bits() > 128 { + arg.make_indirect(); + return; + } arg.cast_to(Uniform { unit: Reg::i64(), total