This is the build failure introduced on SPARC by the recent reload patch,
which causes the pass to be more strict about what it accepts.
Tested on SPARC/Solaris, applied on the mainline.
2016-08-28 Eric Botcazou <[email protected]>
PR target/77324
* config/sparc/sparc.c (sparc_legitimate_address_p): Accept special
HIGH+LO construct during reload.
--
Eric BotcazouIndex: config/sparc/sparc.c
===================================================================
--- config/sparc/sparc.c (revision 239761)
+++ config/sparc/sparc.c (working copy)
@@ -4039,6 +4039,13 @@ sparc_legitimate_address_p (machine_mode mode, rtx
than the alignment (8) may cause the LO_SUM to overflow. */
if (mode == TFmode && TARGET_ARCH32)
return 0;
+
+ /* During reload, accept the HIGH+LO_SUM construct generated by
+ sparc_legitimize_reload_address. */
+ if (reload_in_progress
+ && GET_CODE (rs1) == HIGH
+ && XEXP (rs1, 0) == imm1)
+ return 1;
}
else if (GET_CODE (addr) == CONST_INT && SMALL_INT (addr))
return 1;