armv7l. [bnc#988274] - Add patch gcc48-bnc981311.diff for fixing a kernel miscompile on aarch64. [bnc #981311] - Add patch gcc48-bnc976627.patch for fixing a ppc64le ICE. [bnc #976627] OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc48?expand=0&rev=201
15 lines
726 B
Diff
15 lines
726 B
Diff
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
|