* arm.c (aapcs_vfp_allocate): Decompose the argument if the
suggested mode for the assignment isn't compatible with the
registers required.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_7-branch@201904
138bc75d-0d04-0410-961f-
82ee72b054a4
+2013-08-21 Richard Earnshaw <rearnsha@arm.com>
+
+ PR target/56979
+ * arm.c (aapcs_vfp_allocate): Decompose the argument if the
+ suggested mode for the assignment isn't compatible with the
+ registers required.
+
2013-08-17 Uros Bizjak <ubizjak@gmail.com>
Backport from mainline
if (((pcum->aapcs_vfp_regs_free >> regno) & mask) == mask)
{
pcum->aapcs_vfp_reg_alloc = mask << regno;
- if (mode == BLKmode || (mode == TImode && !TARGET_NEON))
+ if (mode == BLKmode
+ || (mode == TImode && ! TARGET_NEON)
+ || ! arm_hard_regno_mode_ok (FIRST_VFP_REGNUM + regno, mode))
{
int i;
int rcount = pcum->aapcs_vfp_rcount;