* sparc-tdep.c (sparc_frame_cache): Adjust cached frame base
[deliverable/binutils-gdb.git] / gdb / sparc-tdep.c
index 0bcdd48402d282cd185ddfcbcf84b7fb9633a9cb..f9ded35d1d0354bea0de7502fbaf7fe748b28af3 100644 (file)
@@ -673,6 +673,9 @@ sparc_frame_cache (struct frame_info *next_frame, void **this_cache)
        frame_unwind_register_unsigned (next_frame, SPARC_FP_REGNUM);
     }
 
+  if (cache->base & 1)
+    cache->base += BIAS;
+
   return cache;
 }
 
@@ -859,6 +862,8 @@ sparc_unwind_dummy_id (struct gdbarch *gdbarch, struct frame_info *next_frame)
   CORE_ADDR sp;
 
   sp = frame_unwind_register_unsigned (next_frame, SPARC_SP_REGNUM);
+  if (sp & 1)
+    sp += BIAS;
   return frame_id_build (sp, frame_pc_unwind (next_frame));
 }
 \f
This page took 0.022901 seconds and 4 git commands to generate.