OSDN Git Service

2006-12-04 Rask Ingemann Lambertsen <rask@sygehus.dk>
authorrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 10 Dec 2006 10:37:48 +0000 (10:37 +0000)
committerrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 10 Dec 2006 10:37:48 +0000 (10:37 +0000)
* reload1.c (choose_reload_regs): Don't set byte offset when
resolving subregs of hard regs.

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

gcc/ChangeLog
gcc/reload1.c

index ed4b843..cff7158 100644 (file)
@@ -1,3 +1,8 @@
+2006-12-10  Rask Ingemann Lambertsen  <rask@sygehus.dk>
+
+       * reload1.c (choose_reload_regs): Don't set byte offset when
+       resolving subregs of hard regs.
+
 2006-12-09  Zack Weinberg  <zackw@panix.com>
 
        * c-opts.c (c_common_parse_file): Unconditionally give a warning,
index fdab86c..4543835 100644 (file)
@@ -5622,10 +5622,11 @@ choose_reload_regs (struct insn_chain *chain)
              else if (GET_CODE (rld[r].in_reg) == SUBREG
                       && REG_P (SUBREG_REG (rld[r].in_reg)))
                {
-                 byte = SUBREG_BYTE (rld[r].in_reg);
                  regno = REGNO (SUBREG_REG (rld[r].in_reg));
                  if (regno < FIRST_PSEUDO_REGISTER)
                    regno = subreg_regno (rld[r].in_reg);
+                 else
+                   byte = SUBREG_BYTE (rld[r].in_reg);
                  mode = GET_MODE (rld[r].in_reg);
                }
 #ifdef AUTO_INC_DEC