OSDN Git Service

PR target/56807
authorktietz <ktietz@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 10 Dec 2013 16:52:23 +0000 (16:52 +0000)
committerktietz <ktietz@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 10 Dec 2013 16:52:23 +0000 (16:52 +0000)
        * config/i386/i386.c (ix86_expand_prologue): Address saved
        registers stack-relative, not via frame-pointer.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_7-branch@205864 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/i386/i386.c

index 649926b..f850dfa 100644 (file)
@@ -1,3 +1,9 @@
+2013-12-10  Kai Tietz  <ktietz@redhat.com>
+
+       PR target/56807
+       * config/i386/i386.c (ix86_expand_prologue): Address saved
+       registers stack-relative, not via frame-pointer.
+
 2013-12-03  Marek Polacek  <polacek@redhat.com>
 
        Backport from mainline
index c74dba0..0675031 100644 (file)
@@ -10431,14 +10431,15 @@ ix86_expand_prologue (void)
 
       if (r10_live && eax_live)
         {
-         t = choose_baseaddr (m->fs.sp_offset - allocate);
+         t = plus_constant (Pmode, stack_pointer_rtx, allocate);
          emit_move_insn (r10, gen_frame_mem (Pmode, t));
-         t = choose_baseaddr (m->fs.sp_offset - allocate - UNITS_PER_WORD);
+         t = plus_constant (Pmode, stack_pointer_rtx,
+                            allocate - UNITS_PER_WORD);
          emit_move_insn (eax, gen_frame_mem (Pmode, t));
        }
       else if (eax_live || r10_live)
        {
-         t = choose_baseaddr (m->fs.sp_offset - allocate);
+         t = plus_constant (Pmode, stack_pointer_rtx, allocate);
          emit_move_insn ((eax_live ? eax : r10), gen_frame_mem (Pmode, t));
        }
     }