]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
reload1.c (choose_reload_regs): Don't set byte offset when resolving subregs of hard...
authorRask Ingemann Lambertsen <rask@sygehus.dk>
Sun, 10 Dec 2006 10:37:48 +0000 (11:37 +0100)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Sun, 10 Dec 2006 10:37:48 +0000 (10:37 +0000)
2006-12-04  Rask Ingemann Lambertsen  <rask@sygehus.dk>

* reload1.c (choose_reload_regs): Don't set byte offset when
resolving subregs of hard regs.

From-SVN: r119705

gcc/ChangeLog
gcc/reload1.c

index ed4b84317e8e8fa4bf1de40a721cc2ca9fa6edc9..cff7158e96df703e70126b351f8a4abfb8cd1d60 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 fdab86cff87d321b782b436951b3cf814f4efe96..454383581e8b6ece28253276a9ca6dbeebcd608f 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