------- Comment #2 from mueller at gcc dot gnu dot org 2007-11-16 11:37 -------
workaround:
--- reg-stack.c (revision 130198)
+++ reg-stack.c (working copy)
@@ -925,7 +925,7 @@ swap_to_top (rtx insn, stack regstack, r
/* Place operand 1 at the top of stack. */
regno = get_hard_regnum (&temp_stack, src1);
gcc_assert (regno >= 0);
- if (regno != FIRST_STACK_REG)
+ if (regno >= 0 && regno != FIRST_STACK_REG)
{
k = temp_stack.top - (regno - FIRST_STACK_REG);
j = temp_stack.top;
@@ -938,7 +938,7 @@ swap_to_top (rtx insn, stack regstack, r
/* Place operand 2 next on the stack. */
regno = get_hard_regnum (&temp_stack, src2);
gcc_assert (regno >= 0);
- if (regno != FIRST_STACK_REG + 1)
+ if (regno >= 0 && regno != FIRST_STACK_REG + 1)
{
k = temp_stack.top - (regno - FIRST_STACK_REG);
j = temp_stack.top - 1;
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34110