arm.c (aapcs_vfp_allocate_return_reg): Treat all integer modes larger than TImode...
authorEric Botcazou <ebotcazou@adacore.com>
Mon, 4 Jan 2016 08:56:49 +0000 (08:56 +0000)
committerEric Botcazou <ebotcazou@gcc.gnu.org>
Mon, 4 Jan 2016 08:56:49 +0000 (08:56 +0000)
* config/arm/arm.c (aapcs_vfp_allocate_return_reg): Treat all integer
modes larger than TImode as TImode if NEON is not enabled.

From-SVN: r232051

gcc/ChangeLog
gcc/config/arm/arm.c

index fa7b0c4a4b885beba4bffdd2b7c8bd22fa0f22da..6e0a160cc98f690f13d2600361e455c8c9b57715 100644 (file)
@@ -1,3 +1,8 @@
+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
index f89411eac5b96ba830807cd016cb49ca553d43d1..e193f02b7d47bfa12a991519e0e521b06b1e8900 100644 (file)
@@ -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;