+2019-01-08 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR bootstrap/88721
+ * config/sparc/sparc.c (function_arg_slotno): Set *PPREGNO & *PPADDING
+ to -1 on entry.
+
+ PR debug/88723
+ * config/sparc/sparc.c (sparc_delegitimize_address): Deal with naked
+ UNSPECs and UNSPEC_MOVE_GOTDATA specifically.
+
2019-01-08 H.J. Lu <hongjiu.lu@intel.com>
PR target/88717
{
x = delegitimize_mem_from_attrs (x);
- if (GET_CODE (x) == LO_SUM && GET_CODE (XEXP (x, 1)) == UNSPEC)
- switch (XINT (XEXP (x, 1), 1))
+ if (GET_CODE (x) == LO_SUM)
+ x = XEXP (x, 1);
+
+ if (GET_CODE (x) == UNSPEC)
+ switch (XINT (x, 1))
{
case UNSPEC_MOVE_PIC:
case UNSPEC_TLSLE:
- x = XVECEXP (XEXP (x, 1), 0, 0);
+ x = XVECEXP (x, 0, 0);
+ gcc_assert (GET_CODE (x) == SYMBOL_REF);
+ break;
+ case UNSPEC_MOVE_GOTDATA:
+ x = XVECEXP (x, 0, 2);
gcc_assert (GET_CODE (x) == SYMBOL_REF);
break;
default:
int slotno = cum->words, regno;
enum mode_class mclass = GET_MODE_CLASS (mode);
+ /* Silence warnings in the callers. */
+ *pregno = -1;
+ *ppadding = -1;
+
if (type && TREE_ADDRESSABLE (type))
return -1;