avr.h (BASE_REG_CLASS): Don't permit to use X register as pointer after reload.
authorDenis Chertykov <denisc@overta.ru>
Tue, 20 Jan 2004 17:38:44 +0000 (17:38 +0000)
committerDenis Chertykov <denisc@gcc.gnu.org>
Tue, 20 Jan 2004 17:38:44 +0000 (20:38 +0300)
* config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X
register as pointer after reload.

From-SVN: r76216

gcc/ChangeLog
gcc/config/avr/avr.h

index f5565dc9a7761cd4ad639c6a4a6853220c8a84d0..5ec4cf7d0e4f4ed70347de2019cc64ab29ff4cf3 100644 (file)
@@ -1,3 +1,8 @@
+2004-01-20  Denis Chertykov  <denisc@overta.ru>
+
+       * config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X
+       register as pointer after reload.
+
 2004-01-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
 
        PR optimization/12440
index c6ac5dcb674e359f452487104b40a9bd20bd1d6f..acac4fa9b92d018404a071a3eb9c8531f27c1056 100644 (file)
@@ -1,6 +1,7 @@
 /* Definitions of target machine for GNU compiler,
    for ATMEL AVR at90s8515, ATmega103/103L, ATmega603/603L microcontrollers.
-   Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+   Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004
+   Free Software Foundation, Inc.
    Contributed by Denis Chertykov (denisc@overta.ru)
 
 This file is part of GCC.
@@ -560,7 +561,7 @@ enum reg_class {
    choose a class which is "minimal", meaning that no smaller class
    also contains the register.  */
 
-#define BASE_REG_CLASS POINTER_REGS
+#define BASE_REG_CLASS (reload_completed ? BASE_POINTER_REGS : POINTER_REGS)
 /* A macro whose definition is the name of the class to which a valid
    base register must belong.  A base register is one used in an
    address which is the register value plus a displacement.  */