diff options
| -rw-r--r-- | gcc/ChangeLog | 6 | ||||
| -rw-r--r-- | gcc/config/i386/i386.h | 8 |
2 files changed, 11 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 4ef531a..3f7d96e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2007-01-19 Dirk Mueller <dmueller@suse.de> + + * config/i386.h (CONDITIONAL_REGISTER_USAGE): Store + result of PIC_OFFSET_TABLE_REGNUM in temporary variable to avoid + duplicate evaluation. + 2007-01-19 Uros Bizjak <ubizjak@gmail.com> * config/i386/i386.md (acos<mode>2): Rename from acossf2 and acosdf2. diff --git a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h index 7ccecaf..19dabcc 100644 --- a/gcc/config/i386/i386.h +++ b/gcc/config/i386/i386.h @@ -854,6 +854,7 @@ extern const char *host_detect_local_cpu (int argc, const char **argv); #define CONDITIONAL_REGISTER_USAGE \ do { \ int i; \ + unsigned int j; \ for (i = 0; i < FIRST_PSEUDO_REGISTER; i++) \ { \ if (fixed_regs[i] > 1) \ @@ -862,10 +863,11 @@ do { \ call_used_regs[i] = (call_used_regs[i] \ == (TARGET_64BIT ? 3 : 2)); \ } \ - if (PIC_OFFSET_TABLE_REGNUM != INVALID_REGNUM) \ + j = PIC_OFFSET_TABLE_REGNUM; \ + if (j != INVALID_REGNUM) \ { \ - fixed_regs[PIC_OFFSET_TABLE_REGNUM] = 1; \ - call_used_regs[PIC_OFFSET_TABLE_REGNUM] = 1; \ + fixed_regs[j] = 1; \ + call_used_regs[j] = 1; \ } \ if (! TARGET_MMX) \ { \ |
