From 9e83ae931c802608962fb5f9c90220d80d2eaa1c Mon Sep 17 00:00:00 2001 From: Huon Wilson Date: Thu, 15 Jan 2015 14:43:24 +1100 Subject: [PATCH] Put vector types in regs for arm & mips FFI. This seems to match what clang does on arm, but I cannot do any experimentation with mips, but it matches how the LLVM intrinsics are defined in any case... --- src/librustc_trans/trans/cabi_aarch64.rs | 3 ++- src/librustc_trans/trans/cabi_arm.rs | 3 ++- src/librustc_trans/trans/cabi_mips.rs | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/librustc_trans/trans/cabi_aarch64.rs b/src/librustc_trans/trans/cabi_aarch64.rs index 3485e29707a..0d8ef9e2fc9 100644 --- a/src/librustc_trans/trans/cabi_aarch64.rs +++ b/src/librustc_trans/trans/cabi_aarch64.rs @@ -139,7 +139,8 @@ fn is_reg_ty(ty: Type) -> bool { Integer | Pointer | Float - | Double => true, + | Double + | Vector => true, _ => false } } diff --git a/src/librustc_trans/trans/cabi_arm.rs b/src/librustc_trans/trans/cabi_arm.rs index 13c70875f68..7d1a8ab1452 100644 --- a/src/librustc_trans/trans/cabi_arm.rs +++ b/src/librustc_trans/trans/cabi_arm.rs @@ -169,7 +169,8 @@ fn is_reg_ty(ty: Type) -> bool { Integer | Pointer | Float - | Double => true, + | Double + | Vector => true, _ => false } } diff --git a/src/librustc_trans/trans/cabi_mips.rs b/src/librustc_trans/trans/cabi_mips.rs index 70b29b5fb75..776be8855cb 100644 --- a/src/librustc_trans/trans/cabi_mips.rs +++ b/src/librustc_trans/trans/cabi_mips.rs @@ -123,7 +123,8 @@ fn is_reg_ty(ty: Type) -> bool { Integer | Pointer | Float - | Double => true, + | Double + | Vector => true, _ => false }; }