OSDN Git Service

gcc/
authorrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 20 Jan 2008 08:47:14 +0000 (08:47 +0000)
committerrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 20 Jan 2008 08:47:14 +0000 (08:47 +0000)
* global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
input.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@131676 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/global.c

index 28a4a54..4a327d4 100644 (file)
@@ -1,3 +1,8 @@
+2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
+
+       * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
+       input.
+
 2008-01-19  Kenneth Zadeck <zadeck@naturalbridge.com>
 
        PR rtl-optimization/26854
index c805f57..b8a0ec7 100644 (file)
@@ -1016,8 +1016,13 @@ find_reg (int num, HARD_REG_SET losers, int alt_regs_p, int accept_call_clobbere
   if (allocno[num].no_eh_reg)
     {
       unsigned int j;
-      for (j = 0; EH_RETURN_DATA_REGNO (j) != INVALID_REGNUM; j++)
-       SET_HARD_REG_BIT (used1, EH_RETURN_DATA_REGNO (j));
+      for (j = 0; ; ++j)
+       {
+         unsigned int regno = EH_RETURN_DATA_REGNO (j);
+         if (regno == INVALID_REGNUM)
+           break;
+         SET_HARD_REG_BIT (used1, regno);
+       }
     }
 #endif