diff options
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/arm/arm.c | 5 |
2 files changed, 9 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index fa7b0c4..6e0a160 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,10 @@ 2016-01-04 Eric Botcazou <ebotcazou@adacore.com> + * config/arm/arm.c (aapcs_vfp_allocate_return_reg): Treat all integer + modes larger than TImode as TImode if NEON is not enabled. + +2016-01-04 Eric Botcazou <ebotcazou@adacore.com> + PR target/69100 * config/sparc/sparc.h (FUNCTION_ARG_REGNO_P): Return true in 64-bit mode for %f0-%f31 only if TARGET_FPU. diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c index f89411e..e193f02 100644 --- a/gcc/config/arm/arm.c +++ b/gcc/config/arm/arm.c @@ -5846,7 +5846,10 @@ aapcs_vfp_allocate_return_reg (enum arm_pcs pcs_variant ATTRIBUTE_UNUSED, if (!use_vfp_abi (pcs_variant, false)) return NULL; - if (mode == BLKmode || (mode == TImode && !TARGET_NEON)) + if (mode == BLKmode + || (GET_MODE_CLASS (mode) == MODE_INT + && GET_MODE_SIZE (mode) >= GET_MODE_SIZE (TImode) + && !TARGET_NEON)) { int count; machine_mode ag_mode; |