u-fix-sparc64-cabi
authorRust Maintainers <pkg-rust-maintainers@lists.alioth.debian.org>
Wed, 7 Mar 2018 19:07:27 +0000 (19:07 +0000)
committerXimin Luo <infinity0@debian.org>
Wed, 7 Mar 2018 19:07:27 +0000 (19:07 +0000)
Gbp-Pq: Name u-fix-sparc64-cabi.patch

src/librustc_trans/cabi_sparc64.rs

index 7c52e27fa67d1b2d2310e07f0090008ac0c82f61..d1dbd737834146fab122ae84ac662bbd623beb1c 100644 (file)
@@ -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