tiemann@arkesden.eng.sun.com (Michael Tiemann) (12/06/89)
Here are diffs against the 1.36.2- version of integrate.c on
interviews. They fix problems compiling painter.cc on m68k, and
probably the MIPS machine. There is also one patch which applies to
all machines.
arkesden% diff -c2 old-g++/integrate.c src-g++/integrate.c
*** old-g++/integrate.c Mon Nov 27 10:55:14 1989
--- src-g++/integrate.c Tue Dec 5 10:24:52 1989
***************
*** 142,146 ****
/* If its not even close, don't even look. */
! if (get_max_uid () > 3 * max_insns)
return "function too large to be inline";
--- 142,146 ----
/* If its not even close, don't even look. */
! if (get_max_uid () > 4 * max_insns)
return "function too large to be inline";
***************
*** 1606,1610 ****
copy_rtx_and_substitute (XEXP (orig, 0)),
copy_rtx_and_substitute (XEXP (orig, 1)));
! if (memory_address_p (mode, orig))
temp = memory_address (mode, temp);
}
--- 1606,1620 ----
copy_rtx_and_substitute (XEXP (orig, 0)),
copy_rtx_and_substitute (XEXP (orig, 1)));
!
! if (used_const_equiv)
! {
! if (GET_CODE (XEXP (temp, 0)) == CONST_INT)
! temp = plus_constant (XEXP (temp, 1), INTVAL (XEXP (temp, 0)));
! else if (GET_CODE (XEXP (temp, 1)) == CONST_INT)
! temp = plus_constant (XEXP (temp, 0), INTVAL (XEXP (temp, 1)));
! else if (memory_address_p (mode, orig))
! temp = gen_rtx (CONST, mode, temp);
! }
! else if (memory_address_p (mode, orig))
temp = memory_address (mode, temp);
}
***************
*** 1611,1614 ****
--- 1621,1638 ----
return temp;
+ case MULT:
+ temp = gen_rtx (MULT, GET_MODE (orig),
+ copy_rtx_and_substitute (XEXP (orig, 0)),
+ copy_rtx_and_substitute (XEXP (orig, 1)));
+
+ if (used_const_equiv)
+ {
+ if (GET_CODE (XEXP (temp, 0)) == CONST_INT
+ && GET_CODE (XEXP (temp, 1)) == CONST_INT)
+ temp = gen_rtx (CONST_INT, VOIDmode,
+ INTVAL (XEXP (temp, 0)) * INTVAL (XEXP (temp, 1)));
+ }
+ return temp;
+
case MEM:
/* Take care of easiest case here. */
***************
*** 2048,2052 ****
followed by a BARRIER, so that jump optimization
will know what to do. */
! emit_jump (copy);
return NEXT_INSN (insn);
}
--- 2072,2076 ----
followed by a BARRIER, so that jump optimization
will know what to do. */
! emit_jump (XEXP (copy, 0));
return NEXT_INSN (insn);
}
arkesden%