diff -urpN src/gdb/mn10300-tdep.c dev/gdb/mn10300-tdep.c --- src/gdb/mn10300-tdep.c 2008-01-11 15:42:53.000000000 +0100 +++ dev/gdb/mn10300-tdep.c 2008-01-11 17:49:02.000000000 +0100 @@ -307,12 +307,14 @@ set_reg_offsets (struct frame_info *fi, int stack_extra_size, int frame_in_fp) { + struct gdbarch *gdbarch; struct trad_frame_cache *cache; int offset = 0; CORE_ADDR base; if (fi == NULL || this_cache == NULL) return; + gdbarch = get_frame_arch (fi); cache = mn10300_frame_unwind_cache (fi, this_cache); if (cache == NULL) @@ -329,7 +331,7 @@ set_reg_offsets (struct frame_info *fi, trad_frame_set_this_base (cache, base); - if (AM33_MODE == 2) + if (AM33_MODE (gdbarch)== 2) { /* If bit N is set in fpregmask, fsN is saved on the stack. The floating point registers are saved in ascending order. @@ -385,7 +387,7 @@ set_reg_offsets (struct frame_info *fi, trad_frame_set_reg_addr (cache, E_D2_REGNUM, base + offset); offset += 4; } - if (AM33_MODE) + if (AM33_MODE (gdbarch)) { if (movm_args & movm_exother_bit) { @@ -604,7 +606,7 @@ mn10300_analyze_prologue (struct frame_i goto finish_prologue; } - if (AM33_MODE == 2) + if (AM33_MODE (get_frame_arch (fi))== 2) { /* Determine if any floating point registers are to be saved. Look for one of the following three prologue formats: diff -urpN src/gdb/mn10300-tdep.h dev/gdb/mn10300-tdep.h --- src/gdb/mn10300-tdep.h 2008-01-01 23:53:12.000000000 +0100 +++ dev/gdb/mn10300-tdep.h 2008-01-11 17:47:42.000000000 +0100 @@ -77,4 +77,4 @@ struct gdbarch_tdep int am33_mode; }; -#define AM33_MODE (gdbarch_tdep (current_gdbarch)->am33_mode) +#define AM33_MODE(gdbarch) (gdbarch_tdep (gdbarch)->am33_mode)