OSDN Git Service

* config/mep/mep.c (mep_expand_prologue): Fix frame pointer
authordj <dj@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 14 Jul 2009 00:45:59 +0000 (00:45 +0000)
committerdj <dj@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 14 Jul 2009 00:45:59 +0000 (00:45 +0000)
calculations.

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

gcc/ChangeLog
gcc/config/mep/mep.c

index 52f41ba..4403003 100644 (file)
@@ -1,3 +1,8 @@
+2009-07-13  DJ Delorie  <dj@redhat.com>
+
+       * config/mep/mep.c (mep_expand_prologue): Fix frame pointer
+       calculations.
+
 2009-07-13  Ghassan Shobaki  <ghassan.shobaki@amd.com>
        
        * haifa-sched.c 
index 33bde90..9e63b4d 100644 (file)
@@ -2894,7 +2894,12 @@ mep_expand_prologue (void)
       }
   
   if (frame_pointer_needed)
-    add_constant (FP_REGNO, SP_REGNO, sp_offset - frame_size, 1);
+    {
+      /* We've already adjusted down by sp_offset.  Total $sp change
+        is reg_save_size + frame_size.  We want a net change here of
+        just reg_save_size.  */
+      add_constant (FP_REGNO, SP_REGNO, sp_offset - reg_save_size, 1);
+    }
 
   add_constant (SP_REGNO, SP_REGNO, sp_offset-(reg_save_size+frame_size), 1);