Fix for bnc 976627. Under high reg pressure constants need to be reloaded from the TOC, and when it was floating point constants that reload from the TOC wasn't accepted. --- gcc/config/rs6000/rs6000.c.mm 2016-04-25 20:51:23.033619239 +0200 +++ gcc/config/rs6000/rs6000.c 2016-04-25 20:51:47.413926002 +0200 @@ -17094,6 +17094,7 @@ rs6000_secondary_reload_inner (rtx reg, case FLOAT_REGS: if (legitimate_indirect_address_p (addr, false) /* reg */ || legitimate_indexed_address_p (addr, false) /* reg+reg */ + || legitimate_constant_pool_address_p (addr, mode, false) || ((GET_MODE_SIZE (mode) == 4 || GET_MODE_SIZE (mode) == 8) && and_op2 == NULL_RTX && scratch_or_premodify == scratch