------- 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

Reply via email to