* mips-tdep.c (mips_insn16_frame_cache, mips_insn32_frame_sniffer):
[deliverable/binutils-gdb.git] / gdb / spu-tdep.c
index de534ddbd477784cd88037ef59ba76a713430899..f749ecebb19e091b037662ecf2b2936a91ef8ce5 100644 (file)
@@ -478,11 +478,17 @@ spu_analyze_prologue (CORE_ADDR start_pc, CORE_ADDR end_pc,
       else if (is_ri16 (insn, op_il, &rt, &immed))
        {
          reg_immed[rt] = immed;
+
+         if (rt == SPU_RAW_SP_REGNUM && !found_sp)
+           found_sp = 1;
        }
 
       else if (is_ri18 (insn, op_ila, &rt, &immed))
        {
          reg_immed[rt] = immed & 0x3ffff;
+
+         if (rt == SPU_RAW_SP_REGNUM && !found_sp)
+           found_sp = 1;
        }
 
       /* STQD is used to save registers to the stack.  */
@@ -581,7 +587,7 @@ spu_frame_unwind_cache (struct frame_info *next_frame,
   info->local_base = 0;
 
   /* Find the start of the current function, and analyze its prologue.  */
-  info->func = frame_func_unwind (next_frame);
+  info->func = frame_func_unwind (next_frame, NORMAL_FRAME);
   if (info->func == 0)
     {
       /* Fall back to using the current PC as frame ID.  */
@@ -1047,9 +1053,9 @@ spu_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   set_gdbarch_float_bit (gdbarch, 32);
   set_gdbarch_double_bit (gdbarch, 64);
   set_gdbarch_long_double_bit (gdbarch, 64);
-  set_gdbarch_float_format (gdbarch, &floatformat_ieee_single_big);
-  set_gdbarch_double_format (gdbarch, &floatformat_ieee_double_big);
-  set_gdbarch_long_double_format (gdbarch, &floatformat_ieee_double_big);
+  set_gdbarch_float_format (gdbarch, floatformats_ieee_single);
+  set_gdbarch_double_format (gdbarch, floatformats_ieee_double);
+  set_gdbarch_long_double_format (gdbarch, floatformats_ieee_double);
 
   /* Inferior function calls.  */
   set_gdbarch_push_dummy_call (gdbarch, spu_push_dummy_call);
This page took 0.023736 seconds and 4 git commands to generate.