]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per input.
authorRichard Sandiford <rsandifo@nildram.co.uk>
Sun, 20 Jan 2008 08:47:14 +0000 (08:47 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Sun, 20 Jan 2008 08:47:14 +0000 (08:47 +0000)
gcc/
* global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
input.

From-SVN: r131676

gcc/ChangeLog
gcc/global.c

index 28a4a5499731cdf2b7b12fa6ee1bc21d531367de..4a327d48025cc4a8287e4fef51350cbdca5c3405 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 c805f572c7fe49d503f96517f2a9c3ef5d5f1e6f..b8a0ec7815850059ebeb9d7fd81ae448c6f39ce1 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