This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[patch/rfc] Obsolete the mn10200


Baring comment I'll look to commit this in a week.

Andrew
2003-01-29  Andrew Cagney  <ac131313@redhat.com>

	* NEWS: Mention that the mn10200-elf is obsolete.
	* configure.tgt: Obsolete mn10200-*-* target.
	* breakpoint.c (update_breakpoints_after_exec): Update comment to
	mention that the mn10200 is obsolete.
	* breakpoint.h: Ditto.
	* MAINTAINERS: Mark the mn10200-elf as obsolete.
	* config/mn10200/mn10200.mt: Obsolete file.
	* config/mn10200/tm-mn10200.h: Obsolete file.
	* mn10200-tdep.c: Obsolete file.

Index: testsuite/ChangeLog
2003-01-29  Andrew Cagney  <ac131313@redhat.com>

	* gdb.disasm/mn10200.exp: Obsolete file.
	* gdb.trace/Makefile.in (clean mostlyclean): Remove mn10200.
	* gdb.disasm/Makefile.in (clean mostlyclean): Remove mn10200.
	* gdb.base/watchpoint.exp: Mark the mn10200 xfails as obsolete.

Index: MAINTAINERS
===================================================================
RCS file: /cvs/src/src/gdb/MAINTAINERS,v
retrieving revision 1.219
diff -u -r1.219 MAINTAINERS
--- MAINTAINERS	20 Jan 2003 00:46:42 -0000	1.219
+++ MAINTAINERS	29 Jan 2003 18:43:35 -0000
@@ -114,9 +114,7 @@
 	mips		--target=mips-elf ,-Werror
 			Andrew Cagney		cagney@redhat.com
 
-	mn10200		--target=mn10200-elf ,-Werror
-			Maintenance only
-			OBSOLETE candidate, not multi-arch
+	mn10200		(--target=mn10200-elf OBSOLETE)
 
 	mn10300		--target=mn10300-elf ,-Werror
 			Maintenance only
Index: NEWS
===================================================================
RCS file: /cvs/src/src/gdb/NEWS,v
retrieving revision 1.98
diff -u -r1.98 NEWS
--- NEWS	22 Jan 2003 23:50:35 -0000	1.98
+++ NEWS	29 Jan 2003 18:43:36 -0000
@@ -32,6 +32,8 @@
 configurations, the next release of GDB will have their sources
 permanently REMOVED.
 
+Matsushita MN10200 w/simulator			mn10200-*-*
+
 * REMOVED configurations and files
 
 V850EA ISA				
Index: breakpoint.c
===================================================================
RCS file: /cvs/src/src/gdb/breakpoint.c,v
retrieving revision 1.107
diff -u -r1.107 breakpoint.c
--- breakpoint.c	18 Jan 2003 15:55:51 -0000	1.107
+++ breakpoint.c	29 Jan 2003 18:43:36 -0000
@@ -1238,8 +1238,8 @@
        automagically.  Certainly on HP-UX that's true.
 
        Jim Blandy <jimb@redhat.com>: Actually, zero is a perfectly
-       valid code address on some platforms (like the mn10200 and
-       mn10300 simulators).  We shouldn't assign any special
+       valid code address on some platforms (like the OBSOLETE mn10200
+       and mn10300 simulators).  We shouldn't assign any special
        interpretation to a breakpoint with a zero address.  And in
        fact, GDB doesn't --- I can't see what that comment above is
        talking about.  As far as I can tell, setting the address of a
Index: breakpoint.h
===================================================================
RCS file: /cvs/src/src/gdb/breakpoint.h,v
retrieving revision 1.17
diff -u -r1.17 breakpoint.h
--- breakpoint.h	15 Jan 2003 00:48:38 -0000	1.17
+++ breakpoint.h	29 Jan 2003 18:43:36 -0000
@@ -203,10 +203,10 @@
     /* Number assigned to distinguish breakpoints.  */
     int number;
 
-    /* Address to break at.
-       Note that zero is a perfectly valid code address on some
-       platforms (for example, the mn10200 and mn10300 simulators).
-       NULL is not a special value for this field.  */
+    /* Address to break at.  Note that zero is a perfectly valid code
+       address on some platforms (for example, the OBSOLETE mn10200
+       and mn10300 simulators).  NULL is not a special value for this
+       field.  */
     CORE_ADDR address;
 
     /* Line number of this address.  */
Index: configure.tgt
===================================================================
RCS file: /cvs/src/src/gdb/configure.tgt,v
retrieving revision 1.90
diff -u -r1.90 configure.tgt
--- configure.tgt	4 Jan 2003 23:47:12 -0000	1.90
+++ configure.tgt	29 Jan 2003 18:43:36 -0000
@@ -186,7 +186,7 @@
 mips*-*-vxworks*)       gdb_target=vxmips ;;
 mips*-*-*)		gdb_target=embed ;;
 
-mn10200-*-*)		gdb_target=mn10200 ;;
+# OBSOLETE mn10200-*-*)		gdb_target=mn10200 ;;
 mn10300-*-*)		gdb_target=mn10300 ;;
 
 none-*-*)		gdb_target=none ;;
Index: mn10200-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/mn10200-tdep.c,v
retrieving revision 1.16
diff -u -r1.16 mn10200-tdep.c
--- mn10200-tdep.c	14 Jan 2003 00:49:04 -0000	1.16
+++ mn10200-tdep.c	29 Jan 2003 18:43:36 -0000
@@ -1,899 +1,899 @@
-/* Target-dependent code for the Matsushita MN10200 for GDB, the GNU debugger.
-
-   Copyright 1997, 1998, 1999, 2000, 2001, 2003 Free Software
-   Foundation, Inc.
-
-   This file is part of GDB.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2 of the License, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
-
-#include "defs.h"
-#include "frame.h"
-#include "inferior.h"
-#include "target.h"
-#include "value.h"
-#include "bfd.h"
-#include "gdb_string.h"
-#include "gdbcore.h"
-#include "symfile.h"
-#include "regcache.h"
-
-
-/* Should call_function allocate stack space for a struct return?  */
-int
-mn10200_use_struct_convention (int gcc_p, struct type *type)
-{
-  return (TYPE_NFIELDS (type) > 1 || TYPE_LENGTH (type) > 8);
-}
-/* *INDENT-OFF* */
-/* The main purpose of this file is dealing with prologues to extract
-   information about stack frames and saved registers.
-
-   For reference here's how prologues look on the mn10200:
-
-     With frame pointer:
-	mov fp,a0
-	mov sp,fp
-	add <size>,sp
-	Register saves for d2, d3, a1, a2 as needed.  Saves start
-	at fp - <size> + <outgoing_args_size> and work towards higher
-	addresses.  Note that the saves are actually done off the stack
-	pointer in the prologue!  This makes for smaller code and easier
-	prologue scanning as the displacement fields will unlikely
-        be more than 8 bits!
-
-     Without frame pointer:
-        add <size>,sp
-	Register saves for d2, d3, a1, a2 as needed.  Saves start
-	at sp + <outgoing_args_size> and work towards higher addresses.
-
-     Out of line prologue:
-	add <local size>,sp  -- optional
-	jsr __prologue
-	add <outgoing_size>,sp -- optional
-
-   The stack pointer remains constant throughout the life of most
-   functions.  As a result the compiler will usually omit the
-   frame pointer, so we must handle frame pointerless functions.  */
-
-/* Analyze the prologue to determine where registers are saved,
-   the end of the prologue, etc etc.  Return the end of the prologue
-   scanned.
-
-   We store into FI (if non-null) several tidbits of information:
-
-    * stack_size -- size of this stack frame.  Note that if we stop in
-    certain parts of the prologue/epilogue we may claim the size of the
-    current frame is zero.  This happens when the current frame has
-    not been allocated yet or has already been deallocated.
-
-    * fsr -- Addresses of registers saved in the stack by this frame.
-
-    * status -- A (relatively) generic status indicator.  It's a bitmask
-    with the following bits: 
-
-      MY_FRAME_IN_SP: The base of the current frame is actually in
-      the stack pointer.  This can happen for frame pointerless
-      functions, or cases where we're stopped in the prologue/epilogue
-      itself.  For these cases mn10200_analyze_prologue will need up
-      update fi->frame before returning or analyzing the register
-      save instructions.
-
-      MY_FRAME_IN_FP: The base of the current frame is in the
-      frame pointer register ($a2).
-
-      CALLER_A2_IN_A0: $a2 from the caller's frame is temporarily
-      in $a0.  This can happen if we're stopped in the prologue.
-
-      NO_MORE_FRAMES: Set this if the current frame is "start" or
-      if the first instruction looks like mov <imm>,sp.  This tells
-      frame chain to not bother trying to unwind past this frame.  */
-/* *INDENT-ON* */
-
-
-
-
-#define MY_FRAME_IN_SP 0x1
-#define MY_FRAME_IN_FP 0x2
-#define CALLER_A2_IN_A0 0x4
-#define NO_MORE_FRAMES 0x8
-
-static CORE_ADDR
-mn10200_analyze_prologue (struct frame_info *fi, CORE_ADDR pc)
-{
-  CORE_ADDR func_addr, func_end, addr, stop;
-  CORE_ADDR stack_size = 0;
-  unsigned char buf[4];
-  int status;
-  char *name;
-  int out_of_line_prologue = 0;
-
-  /* Use the PC in the frame if it's provided to look up the
-     start of this function.  */
-  pc = (fi ? get_frame_pc (fi) : pc);
-
-  /* Find the start of this function.  */
-  status = find_pc_partial_function (pc, &name, &func_addr, &func_end);
-
-  /* Do nothing if we couldn't find the start of this function or if we're
-     stopped at the first instruction in the prologue.  */
-  if (status == 0)
-    return pc;
-
-  /* If we're in start, then give up.  */
-  if (strcmp (name, "start") == 0)
-    {
-      if (fi)
-	fi->status = NO_MORE_FRAMES;
-      return pc;
-    }
-
-  /* At the start of a function our frame is in the stack pointer.  */
-  if (fi)
-    fi->status = MY_FRAME_IN_SP;
-
-  /* If we're physically on an RTS instruction, then our frame has already
-     been deallocated.
-
-     fi->frame is bogus, we need to fix it.  */
-  if (fi && get_frame_pc (fi) + 1 == func_end)
-    {
-      status = target_read_memory (get_frame_pc (fi), buf, 1);
-      if (status != 0)
-	{
-	  if (get_next_frame (fi) == NULL)
-	    deprecated_update_frame_base_hack (fi, read_sp ());
-	  return get_frame_pc (fi);
-	}
-
-      if (buf[0] == 0xfe)
-	{
-	  if (get_next_frame (fi) == NULL)
-	    deprecated_update_frame_base_hack (fi, read_sp ());
-	  return get_frame_pc (fi);
-	}
-    }
-
-  /* Similarly if we're stopped on the first insn of a prologue as our
-     frame hasn't been allocated yet.  */
-  if (fi && get_frame_pc (fi) == func_addr)
-    {
-      if (get_next_frame (fi) == NULL)
-	deprecated_update_frame_base_hack (fi, read_sp ());
-      return get_frame_pc (fi);
-    }
-
-  /* Figure out where to stop scanning.  */
-  stop = fi ? get_frame_pc (fi) : func_end;
-
-  /* Don't walk off the end of the function.  */
-  stop = stop > func_end ? func_end : stop;
-
-  /* Start scanning on the first instruction of this function.  */
-  addr = func_addr;
-
-  status = target_read_memory (addr, buf, 2);
-  if (status != 0)
-    {
-      if (fi && get_next_frame (fi) == NULL && fi->status & MY_FRAME_IN_SP)
-	deprecated_update_frame_base_hack (fi, read_sp ());
-      return addr;
-    }
-
-  /* First see if this insn sets the stack pointer; if so, it's something
-     we won't understand, so quit now.   */
-  if (buf[0] == 0xdf
-      || (buf[0] == 0xf4 && buf[1] == 0x77))
-    {
-      if (fi)
-	fi->status = NO_MORE_FRAMES;
-      return addr;
-    }
-
-  /* Now see if we have a frame pointer.
-
-     Search for mov a2,a0 (0xf278)
-     then       mov a3,a2 (0xf27e).  */
-
-  if (buf[0] == 0xf2 && buf[1] == 0x78)
-    {
-      /* Our caller's $a2 will be found in $a0 now.  Note it for
-         our callers.  */
-      if (fi)
-	fi->status |= CALLER_A2_IN_A0;
-      addr += 2;
-      if (addr >= stop)
-	{
-	  /* We still haven't allocated our local stack.  Handle this
-	     as if we stopped on the first or last insn of a function.   */
-	  if (fi && get_next_frame (fi) == NULL)
-	    deprecated_update_frame_base_hack (fi, read_sp ());
-	  return addr;
-	}
-
-      status = target_read_memory (addr, buf, 2);
-      if (status != 0)
-	{
-	  if (fi && get_next_frame (fi) == NULL)
-	    deprecated_update_frame_base_hack (fi, read_sp ());
-	  return addr;
-	}
-      if (buf[0] == 0xf2 && buf[1] == 0x7e)
-	{
-	  addr += 2;
-
-	  /* Our frame pointer is valid now.  */
-	  if (fi)
-	    {
-	      fi->status |= MY_FRAME_IN_FP;
-	      fi->status &= ~MY_FRAME_IN_SP;
-	    }
-	  if (addr >= stop)
-	    return addr;
-	}
-      else
-	{
-	  if (fi && get_next_frame (fi) == NULL)
-	    deprecated_update_frame_base_hack (fi, read_sp ());
-	  return addr;
-	}
-    }
-
-  /* Next we should allocate the local frame.
-
-     Search for add imm8,a3 (0xd3XX)
-     or add imm16,a3 (0xf70bXXXX)
-     or add imm24,a3 (0xf467XXXXXX).
-
-     If none of the above was found, then this prologue has
-     no stack, and therefore can't have any register saves,
-     so quit now.  */
-  status = target_read_memory (addr, buf, 2);
-  if (status != 0)
-    {
-      if (fi && get_next_frame (fi) == NULL && (fi->status & MY_FRAME_IN_SP))
-	deprecated_update_frame_base_hack (fi, read_sp ());
-      return addr;
-    }
-  if (buf[0] == 0xd3)
-    {
-      stack_size = extract_signed_integer (&buf[1], 1);
-      if (fi)
-	fi->stack_size = stack_size;
-      addr += 2;
-      if (addr >= stop)
-	{
-	  if (fi && get_next_frame (fi) == NULL && (fi->status & MY_FRAME_IN_SP))
-	    deprecated_update_frame_base_hack (fi, read_sp () - stack_size);
-	  return addr;
-	}
-    }
-  else if (buf[0] == 0xf7 && buf[1] == 0x0b)
-    {
-      status = target_read_memory (addr + 2, buf, 2);
-      if (status != 0)
-	{
-	  if (fi && get_next_frame (fi) == NULL && (fi->status & MY_FRAME_IN_SP))
-	    deprecated_update_frame_base_hack (fi, read_sp ());
-	  return addr;
-	}
-      stack_size = extract_signed_integer (buf, 2);
-      if (fi)
-	fi->stack_size = stack_size;
-      addr += 4;
-      if (addr >= stop)
-	{
-	  if (fi && get_next_frame (fi) == NULL && (fi->status & MY_FRAME_IN_SP))
-	    deprecated_update_frame_base_hack (fi, read_sp () - stack_size);
-	  return addr;
-	}
-    }
-  else if (buf[0] == 0xf4 && buf[1] == 0x67)
-    {
-      status = target_read_memory (addr + 2, buf, 3);
-      if (status != 0)
-	{
-	  if (fi && get_next_frame (fi) == NULL && (fi->status & MY_FRAME_IN_SP))
-	    deprecated_update_frame_base_hack (fi, read_sp ());
-	  return addr;
-	}
-      stack_size = extract_signed_integer (buf, 3);
-      if (fi)
-	fi->stack_size = stack_size;
-      addr += 5;
-      if (addr >= stop)
-	{
-	  if (fi && get_next_frame (fi) == NULL && (fi->status & MY_FRAME_IN_SP))
-	    deprecated_update_frame_base_hack (fi, read_sp () - stack_size);
-	  return addr;
-	}
-    }
-
-  /* Now see if we have a call to __prologue for an out of line
-     prologue.  */
-  status = target_read_memory (addr, buf, 2);
-  if (status != 0)
-    return addr;
-
-  /* First check for 16bit pc-relative call to __prologue.  */
-  if (buf[0] == 0xfd)
-    {
-      CORE_ADDR temp;
-      status = target_read_memory (addr + 1, buf, 2);
-      if (status != 0)
-	{
-	  if (fi && get_next_frame (fi) == NULL && (fi->status & MY_FRAME_IN_SP))
-	    deprecated_update_frame_base_hack (fi, read_sp ());
-	  return addr;
-	}
-
-      /* Get the PC this instruction will branch to.  */
-      temp = (extract_signed_integer (buf, 2) + addr + 3) & 0xffffff;
-
-      /* Get the name of the function at the target address.  */
-      status = find_pc_partial_function (temp, &name, NULL, NULL);
-      if (status == 0)
-	{
-	  if (fi && get_next_frame (fi) == NULL && (fi->status & MY_FRAME_IN_SP))
-	    deprecated_update_frame_base_hack (fi, read_sp ());
-	  return addr;
-	}
-
-      /* Note if it is an out of line prologue.  */
-      out_of_line_prologue = (strcmp (name, "__prologue") == 0);
-
-      /* This sucks up 3 bytes of instruction space.  */
-      if (out_of_line_prologue)
-	addr += 3;
-
-      if (addr >= stop)
-	{
-	  if (fi && get_next_frame (fi) == NULL)
-	    {
-	      fi->stack_size -= 16;
-	      deprecated_update_frame_base_hack (fi, read_sp () - fi->stack_size);
-	    }
-	  return addr;
-	}
-    }
-  /* Now check for the 24bit pc-relative call to __prologue.  */
-  else if (buf[0] == 0xf4 && buf[1] == 0xe1)
-    {
-      CORE_ADDR temp;
-      status = target_read_memory (addr + 2, buf, 3);
-      if (status != 0)
-	{
-	  if (fi && get_next_frame (fi) == NULL && (fi->status & MY_FRAME_IN_SP))
-	    deprecated_update_frame_base_hack (fi, read_sp ());
-	  return addr;
-	}
-
-      /* Get the PC this instruction will branch to.  */
-      temp = (extract_signed_integer (buf, 3) + addr + 5) & 0xffffff;
-
-      /* Get the name of the function at the target address.  */
-      status = find_pc_partial_function (temp, &name, NULL, NULL);
-      if (status == 0)
-	{
-	  if (fi && get_next_frame (fi) == NULL && (fi->status & MY_FRAME_IN_SP))
-	    deprecated_update_frame_base_hack (fi, read_sp ());
-	  return addr;
-	}
-
-      /* Note if it is an out of line prologue.  */
-      out_of_line_prologue = (strcmp (name, "__prologue") == 0);
-
-      /* This sucks up 5 bytes of instruction space.  */
-      if (out_of_line_prologue)
-	addr += 5;
-
-      if (addr >= stop)
-	{
-	  if (fi && get_next_frame (fi) == NULL && (fi->status & MY_FRAME_IN_SP))
-	    {
-	      fi->stack_size -= 16;
-	      deprecated_update_frame_base_hack (fi, read_sp () - fi->stack_size);
-	    }
-	  return addr;
-	}
-    }
-
-  /* Now actually handle the out of line prologue.  */
-  if (out_of_line_prologue)
-    {
-      int outgoing_args_size = 0;
-
-      /* First adjust the stack size for this function.  The out of
-         line prologue saves 4 registers (16bytes of data).  */
-      if (fi)
-	fi->stack_size -= 16;
-
-      /* Update fi->frame if necessary.  */
-      if (fi && get_next_frame (fi) == NULL)
-	deprecated_update_frame_base_hack (fi, read_sp () - fi->stack_size);
-
-      /* After the out of line prologue, there may be another
-         stack adjustment for the outgoing arguments.
-
-         Search for add imm8,a3 (0xd3XX)
-         or     add imm16,a3 (0xf70bXXXX)
-         or     add imm24,a3 (0xf467XXXXXX).  */
-
-      status = target_read_memory (addr, buf, 2);
-      if (status != 0)
-	{
-	  if (fi)
-	    {
-	      fi->fsr.regs[2] = get_frame_base (fi) + fi->stack_size + 4;
-	      fi->fsr.regs[3] = get_frame_base (fi) + fi->stack_size + 8;
-	      fi->fsr.regs[5] = get_frame_base (fi) + fi->stack_size + 12;
-	      fi->fsr.regs[6] = get_frame_base (fi) + fi->stack_size + 16;
-	    }
-	  return addr;
-	}
-
-      if (buf[0] == 0xd3)
-	{
-	  outgoing_args_size = extract_signed_integer (&buf[1], 1);
-	  addr += 2;
-	}
-      else if (buf[0] == 0xf7 && buf[1] == 0x0b)
-	{
-	  status = target_read_memory (addr + 2, buf, 2);
-	  if (status != 0)
-	    {
-	      if (fi)
-		{
-		  fi->fsr.regs[2] = get_frame_base (fi) + fi->stack_size + 4;
-		  fi->fsr.regs[3] = get_frame_base (fi) + fi->stack_size + 8;
-		  fi->fsr.regs[5] = get_frame_base (fi) + fi->stack_size + 12;
-		  fi->fsr.regs[6] = get_frame_base (fi) + fi->stack_size + 16;
-		}
-	      return addr;
-	    }
-	  outgoing_args_size = extract_signed_integer (buf, 2);
-	  addr += 4;
-	}
-      else if (buf[0] == 0xf4 && buf[1] == 0x67)
-	{
-	  status = target_read_memory (addr + 2, buf, 3);
-	  if (status != 0)
-	    {
-	      if (fi && get_next_frame (fi) == NULL)
-		{
-		  fi->fsr.regs[2] = get_frame_base (fi) + fi->stack_size + 4;
-		  fi->fsr.regs[3] = get_frame_base (fi) + fi->stack_size + 8;
-		  fi->fsr.regs[5] = get_frame_base (fi) + fi->stack_size + 12;
-		  fi->fsr.regs[6] = get_frame_base (fi) + fi->stack_size + 16;
-		}
-	      return addr;
-	    }
-	  outgoing_args_size = extract_signed_integer (buf, 3);
-	  addr += 5;
-	}
-      else
-	outgoing_args_size = 0;
-
-      /* Now that we know the size of the outgoing arguments, fix
-         fi->frame again if this is the innermost frame.  */
-      if (fi && get_next_frame (fi) == NULL)
-	deprecated_update_frame_base_hack (fi, get_frame_base (fi) - outgoing_args_size);
-
-      /* Note the register save information and update the stack
-         size for this frame too.  */
-      if (fi)
-	{
-	  fi->fsr.regs[2] = get_frame_base (fi) + fi->stack_size + 4;
-	  fi->fsr.regs[3] = get_frame_base (fi) + fi->stack_size + 8;
-	  fi->fsr.regs[5] = get_frame_base (fi) + fi->stack_size + 12;
-	  fi->fsr.regs[6] = get_frame_base (fi) + fi->stack_size + 16;
-	  fi->stack_size += outgoing_args_size;
-	}
-      /* There can be no more prologue insns, so return now.  */
-      return addr;
-    }
-
-  /* At this point fi->frame needs to be correct.
-
-     If MY_FRAME_IN_SP is set and we're the innermost frame, then we
-     need to fix fi->frame so that backtracing, find_frame_saved_regs,
-     etc work correctly.  */
-  if (fi && get_next_frame (fi) == NULL && (fi->status & MY_FRAME_IN_SP) != 0)
-    deprecated_update_frame_base_hack (fi, read_sp () - fi->stack_size);
-
-  /* And last we have the register saves.  These are relatively
-     simple because they're physically done off the stack pointer,
-     and thus the number of different instructions we need to
-     check is greatly reduced because we know the displacements
-     will be small.
-
-     Search for movx d2,(X,a3) (0xf55eXX)
-     then       movx d3,(X,a3) (0xf55fXX)
-     then       mov  a1,(X,a3) (0x5dXX)    No frame pointer case
-     then       mov  a2,(X,a3) (0x5eXX)    No frame pointer case
-     or  mov  a0,(X,a3) (0x5cXX)           Frame pointer case.  */
-
-  status = target_read_memory (addr, buf, 2);
-  if (status != 0)
-    return addr;
-  if (buf[0] == 0xf5 && buf[1] == 0x5e)
-    {
-      if (fi)
-	{
-	  status = target_read_memory (addr + 2, buf, 1);
-	  if (status != 0)
-	    return addr;
-	  fi->fsr.regs[2] = (get_frame_base (fi) + stack_size
-			     + extract_signed_integer (buf, 1));
-	}
-      addr += 3;
-      if (addr >= stop)
-	return addr;
-      status = target_read_memory (addr, buf, 2);
-      if (status != 0)
-	return addr;
-    }
-  if (buf[0] == 0xf5 && buf[1] == 0x5f)
-    {
-      if (fi)
-	{
-	  status = target_read_memory (addr + 2, buf, 1);
-	  if (status != 0)
-	    return addr;
-	  fi->fsr.regs[3] = (get_frame_base (fi) + stack_size
-			     + extract_signed_integer (buf, 1));
-	}
-      addr += 3;
-      if (addr >= stop)
-	return addr;
-      status = target_read_memory (addr, buf, 2);
-      if (status != 0)
-	return addr;
-    }
-  if (buf[0] == 0x5d)
-    {
-      if (fi)
-	{
-	  status = target_read_memory (addr + 1, buf, 1);
-	  if (status != 0)
-	    return addr;
-	  fi->fsr.regs[5] = (get_frame_base (fi) + stack_size
-			     + extract_signed_integer (buf, 1));
-	}
-      addr += 2;
-      if (addr >= stop)
-	return addr;
-      status = target_read_memory (addr, buf, 2);
-      if (status != 0)
-	return addr;
-    }
-  if (buf[0] == 0x5e || buf[0] == 0x5c)
-    {
-      if (fi)
-	{
-	  status = target_read_memory (addr + 1, buf, 1);
-	  if (status != 0)
-	    return addr;
-	  fi->fsr.regs[6] = (get_frame_base (fi) + stack_size
-			     + extract_signed_integer (buf, 1));
-	  fi->status &= ~CALLER_A2_IN_A0;
-	}
-      addr += 2;
-      if (addr >= stop)
-	return addr;
-      return addr;
-    }
-  return addr;
-}
-
-/* Function: frame_chain
-   Figure out and return the caller's frame pointer given current
-   frame_info struct.
-
-   We don't handle dummy frames yet but we would probably just return the
-   stack pointer that was in use at the time the function call was made?  */
-
-CORE_ADDR
-mn10200_frame_chain (struct frame_info *fi)
-{
-  struct frame_info *dummy_frame = deprecated_frame_xmalloc ();
-  struct cleanup *old_chain = make_cleanup (xfree, dummy_frame);
-  CORE_ADDR ret;
-
-  /* Walk through the prologue to determine the stack size,
-     location of saved registers, end of the prologue, etc.  */
-  if (fi->status == 0)
-    mn10200_analyze_prologue (fi, (CORE_ADDR) 0);
-
-  /* Quit now if mn10200_analyze_prologue set NO_MORE_FRAMES.  */
-  if (fi->status & NO_MORE_FRAMES)
-    return 0;
-
-  /* Now that we've analyzed our prologue, determine the frame
-     pointer for our caller.
-
-     If our caller has a frame pointer, then we need to
-     find the entry value of $a2 to our function.
-
-     If CALLER_A2_IN_A0, then the chain is in $a0.
-
-     If fsr.regs[6] is nonzero, then it's at the memory
-     location pointed to by fsr.regs[6].
-
-     Else it's still in $a2.
-
-     If our caller does not have a frame pointer, then his
-     frame base is fi->frame + -caller's stack size + 4.  */
-
-  /* The easiest way to get that info is to analyze our caller's frame.
-
-     So we set up a dummy frame and call mn10200_analyze_prologue to
-     find stuff for us.  */
-  deprecated_update_frame_pc_hack (dummy_frame, FRAME_SAVED_PC (fi));
-  deprecated_update_frame_base_hack (dummy_frame, get_frame_base (fi));
-  memset (dummy_frame->fsr.regs, '\000', sizeof dummy_frame->fsr.regs);
-  dummy_frame->status = 0;
-  dummy_frame->stack_size = 0;
-  mn10200_analyze_prologue (dummy_frame, 0);
-
-  if (dummy_frame->status & MY_FRAME_IN_FP)
-    {
-      /* Our caller has a frame pointer.  So find the frame in $a2, $a0,
-         or in the stack.  */
-      if (fi->fsr.regs[6])
-	ret = (read_memory_integer (fi->fsr.regs[FP_REGNUM], REGISTER_SIZE)
-	       & 0xffffff);
-      else if (fi->status & CALLER_A2_IN_A0)
-	ret = read_register (4);
-      else
-	ret = read_register (FP_REGNUM);
-    }
-  else
-    {
-      /* Our caller does not have a frame pointer.  So his frame starts
-         at the base of our frame (fi->frame) + <his size> + 4 (saved pc).  */
-      ret = get_frame_base (fi) + -dummy_frame->stack_size + 4;
-    }
-  do_cleanups (old_chain);
-  return ret;
-}
-
-/* Function: skip_prologue
-   Return the address of the first inst past the prologue of the function.  */
-
-CORE_ADDR
-mn10200_skip_prologue (CORE_ADDR pc)
-{
-  /* We used to check the debug symbols, but that can lose if
-     we have a null prologue.  */
-  return mn10200_analyze_prologue (NULL, pc);
-}
-
-/* Function: pop_frame
-   This routine gets called when either the user uses the `return'
-   command, or the call dummy breakpoint gets hit.  */
-
-void
-mn10200_pop_frame (struct frame_info *frame)
-{
-  int regnum;
-
-  if (DEPRECATED_PC_IN_CALL_DUMMY (get_frame_pc (frame),
-				   get_frame_base (frame),
-				   get_frame_base (frame)))
-    generic_pop_dummy_frame ();
-  else
-    {
-      write_register (PC_REGNUM, FRAME_SAVED_PC (frame));
-
-      /* Restore any saved registers.  */
-      for (regnum = 0; regnum < NUM_REGS; regnum++)
-	if (frame->fsr.regs[regnum] != 0)
-	  {
-	    ULONGEST value;
-
-	    value = read_memory_unsigned_integer (frame->fsr.regs[regnum],
-						REGISTER_RAW_SIZE (regnum));
-	    write_register (regnum, value);
-	  }
-
-      /* Actually cut back the stack.  */
-      write_register (SP_REGNUM, get_frame_base (frame));
-
-      /* Don't we need to set the PC?!?  XXX FIXME.  */
-    }
-
-  /* Throw away any cached frame information.  */
-  flush_cached_frames ();
-}
-
-/* Function: push_arguments
-   Setup arguments for a call to the target.  Arguments go in
-   order on the stack.  */
-
-CORE_ADDR
-mn10200_push_arguments (int nargs, struct value **args, CORE_ADDR sp,
-			unsigned char struct_return, CORE_ADDR struct_addr)
-{
-  int argnum = 0;
-  int len = 0;
-  int stack_offset = 0;
-  int regsused = struct_return ? 1 : 0;
-
-  /* This should be a nop, but align the stack just in case something
-     went wrong.  Stacks are two byte aligned on the mn10200.  */
-  sp &= ~1;
-
-  /* Now make space on the stack for the args.
-
-     XXX This doesn't appear to handle pass-by-invisible reference
-     arguments.  */
-  for (argnum = 0; argnum < nargs; argnum++)
-    {
-      int arg_length = (TYPE_LENGTH (VALUE_TYPE (args[argnum])) + 1) & ~1;
-
-      /* If we've used all argument registers, then this argument is
-         pushed.  */
-      if (regsused >= 2 || arg_length > 4)
-	{
-	  regsused = 2;
-	  len += arg_length;
-	}
-      /* We know we've got some arg register space left.  If this argument
-         will fit entirely in regs, then put it there.  */
-      else if (arg_length <= 2
-	       || TYPE_CODE (VALUE_TYPE (args[argnum])) == TYPE_CODE_PTR)
-	{
-	  regsused++;
-	}
-      else if (regsused == 0)
-	{
-	  regsused = 2;
-	}
-      else
-	{
-	  regsused = 2;
-	  len += arg_length;
-	}
-    }
-
-  /* Allocate stack space.  */
-  sp -= len;
-
-  regsused = struct_return ? 1 : 0;
-  /* Push all arguments onto the stack. */
-  for (argnum = 0; argnum < nargs; argnum++)
-    {
-      int len;
-      char *val;
-
-      /* XXX Check this.  What about UNIONS?  */
-      if (TYPE_CODE (VALUE_TYPE (*args)) == TYPE_CODE_STRUCT
-	  && TYPE_LENGTH (VALUE_TYPE (*args)) > 8)
-	{
-	  /* XXX Wrong, we want a pointer to this argument.  */
-	  len = TYPE_LENGTH (VALUE_TYPE (*args));
-	  val = (char *) VALUE_CONTENTS (*args);
-	}
-      else
-	{
-	  len = TYPE_LENGTH (VALUE_TYPE (*args));
-	  val = (char *) VALUE_CONTENTS (*args);
-	}
-
-      if (regsused < 2
-	  && (len <= 2
-	      || TYPE_CODE (VALUE_TYPE (*args)) == TYPE_CODE_PTR))
-	{
-	  write_register (regsused, extract_unsigned_integer (val, 4));
-	  regsused++;
-	}
-      else if (regsused == 0 && len == 4)
-	{
-	  write_register (regsused, extract_unsigned_integer (val, 2));
-	  write_register (regsused + 1, extract_unsigned_integer (val + 2, 2));
-	  regsused = 2;
-	}
-      else
-	{
-	  regsused = 2;
-	  while (len > 0)
-	    {
-	      write_memory (sp + stack_offset, val, 2);
-
-	      len -= 2;
-	      val += 2;
-	      stack_offset += 2;
-	    }
-	}
-      args++;
-    }
-
-  return sp;
-}
-
-/* Function: push_return_address (pc)
-   Set up the return address for the inferior function call.
-   Needed for targets where we don't actually execute a JSR/BSR instruction */
-
-CORE_ADDR
-mn10200_push_return_address (CORE_ADDR pc, CORE_ADDR sp)
-{
-  unsigned char buf[4];
-
-  store_unsigned_integer (buf, 4, CALL_DUMMY_ADDRESS ());
-  write_memory (sp - 4, buf, 4);
-  return sp - 4;
-}
-
-/* Function: store_struct_return (addr,sp)
-   Store the structure value return address for an inferior function
-   call.  */
-
-CORE_ADDR
-mn10200_store_struct_return (CORE_ADDR addr, CORE_ADDR sp)
-{
-  /* The structure return address is passed as the first argument.  */
-  write_register (0, addr);
-  return sp;
-}
-
-/* Function: frame_saved_pc 
-   Find the caller of this frame.  We do this by seeing if RP_REGNUM
-   is saved in the stack anywhere, otherwise we get it from the
-   registers.  If the inner frame is a dummy frame, return its PC
-   instead of RP, because that's where "caller" of the dummy-frame
-   will be found.  */
-
-CORE_ADDR
-mn10200_frame_saved_pc (struct frame_info *fi)
-{
-  /* The saved PC will always be at the base of the current frame.  */
-  return (read_memory_integer (get_frame_base (fi), REGISTER_SIZE) & 0xffffff);
-}
-
-/* Function: init_extra_frame_info
-   Setup the frame's frame pointer, pc, and frame addresses for saved
-   registers.  Most of the work is done in mn10200_analyze_prologue().
-
-   Note that when we are called for the last frame (currently active frame),
-   that get_frame_pc (fi) and fi->frame will already be setup.  However, fi->frame will
-   be valid only if this routine uses FP.  For previous frames, fi-frame will
-   always be correct.  mn10200_analyze_prologue will fix fi->frame if
-   it's not valid.
-
-   We can be called with the PC in the call dummy under two circumstances.
-   First, during normal backtracing, second, while figuring out the frame
-   pointer just prior to calling the target function (see run_stack_dummy).  */
-
-void
-mn10200_init_extra_frame_info (struct frame_info *fi)
-{
-  if (get_next_frame (fi))
-    deprecated_update_frame_pc_hack (fi, FRAME_SAVED_PC (get_next_frame (fi)));
-
-  memset (fi->fsr.regs, '\000', sizeof fi->fsr.regs);
-  fi->status = 0;
-  fi->stack_size = 0;
-
-  mn10200_analyze_prologue (fi, 0);
-}
-
-void
-_initialize_mn10200_tdep (void)
-{
-  tm_print_insn = print_insn_mn10200;
-}
+// OBSOLETE /* Target-dependent code for the Matsushita MN10200 for GDB, the GNU debugger.
+// OBSOLETE 
+// OBSOLETE    Copyright 1997, 1998, 1999, 2000, 2001, 2003 Free Software
+// OBSOLETE    Foundation, Inc.
+// OBSOLETE 
+// OBSOLETE    This file is part of GDB.
+// OBSOLETE 
+// OBSOLETE    This program is free software; you can redistribute it and/or modify
+// OBSOLETE    it under the terms of the GNU General Public License as published by
+// OBSOLETE    the Free Software Foundation; either version 2 of the License, or
+// OBSOLETE    (at your option) any later version.
+// OBSOLETE 
+// OBSOLETE    This program is distributed in the hope that it will be useful,
+// OBSOLETE    but WITHOUT ANY WARRANTY; without even the implied warranty of
+// OBSOLETE    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// OBSOLETE    GNU General Public License for more details.
+// OBSOLETE 
+// OBSOLETE    You should have received a copy of the GNU General Public License
+// OBSOLETE    along with this program; if not, write to the Free Software
+// OBSOLETE    Foundation, Inc., 59 Temple Place - Suite 330,
+// OBSOLETE    Boston, MA 02111-1307, USA.  */
+// OBSOLETE 
+// OBSOLETE #include "defs.h"
+// OBSOLETE #include "frame.h"
+// OBSOLETE #include "inferior.h"
+// OBSOLETE #include "target.h"
+// OBSOLETE #include "value.h"
+// OBSOLETE #include "bfd.h"
+// OBSOLETE #include "gdb_string.h"
+// OBSOLETE #include "gdbcore.h"
+// OBSOLETE #include "symfile.h"
+// OBSOLETE #include "regcache.h"
+// OBSOLETE 
+// OBSOLETE 
+// OBSOLETE /* Should call_function allocate stack space for a struct return?  */
+// OBSOLETE int
+// OBSOLETE mn10200_use_struct_convention (int gcc_p, struct type *type)
+// OBSOLETE {
+// OBSOLETE   return (TYPE_NFIELDS (type) > 1 || TYPE_LENGTH (type) > 8);
+// OBSOLETE }
+// OBSOLETE /* *INDENT-OFF* */
+// OBSOLETE /* The main purpose of this file is dealing with prologues to extract
+// OBSOLETE    information about stack frames and saved registers.
+// OBSOLETE 
+// OBSOLETE    For reference here's how prologues look on the mn10200:
+// OBSOLETE 
+// OBSOLETE      With frame pointer:
+// OBSOLETE 	mov fp,a0
+// OBSOLETE 	mov sp,fp
+// OBSOLETE 	add <size>,sp
+// OBSOLETE 	Register saves for d2, d3, a1, a2 as needed.  Saves start
+// OBSOLETE 	at fp - <size> + <outgoing_args_size> and work towards higher
+// OBSOLETE 	addresses.  Note that the saves are actually done off the stack
+// OBSOLETE 	pointer in the prologue!  This makes for smaller code and easier
+// OBSOLETE 	prologue scanning as the displacement fields will unlikely
+// OBSOLETE         be more than 8 bits!
+// OBSOLETE 
+// OBSOLETE      Without frame pointer:
+// OBSOLETE         add <size>,sp
+// OBSOLETE 	Register saves for d2, d3, a1, a2 as needed.  Saves start
+// OBSOLETE 	at sp + <outgoing_args_size> and work towards higher addresses.
+// OBSOLETE 
+// OBSOLETE      Out of line prologue:
+// OBSOLETE 	add <local size>,sp  -- optional
+// OBSOLETE 	jsr __prologue
+// OBSOLETE 	add <outgoing_size>,sp -- optional
+// OBSOLETE 
+// OBSOLETE    The stack pointer remains constant throughout the life of most
+// OBSOLETE    functions.  As a result the compiler will usually omit the
+// OBSOLETE    frame pointer, so we must handle frame pointerless functions.  */
+// OBSOLETE 
+// OBSOLETE /* Analyze the prologue to determine where registers are saved,
+// OBSOLETE    the end of the prologue, etc etc.  Return the end of the prologue
+// OBSOLETE    scanned.
+// OBSOLETE 
+// OBSOLETE    We store into FI (if non-null) several tidbits of information:
+// OBSOLETE 
+// OBSOLETE     * stack_size -- size of this stack frame.  Note that if we stop in
+// OBSOLETE     certain parts of the prologue/epilogue we may claim the size of the
+// OBSOLETE     current frame is zero.  This happens when the current frame has
+// OBSOLETE     not been allocated yet or has already been deallocated.
+// OBSOLETE 
+// OBSOLETE     * fsr -- Addresses of registers saved in the stack by this frame.
+// OBSOLETE 
+// OBSOLETE     * status -- A (relatively) generic status indicator.  It's a bitmask
+// OBSOLETE     with the following bits: 
+// OBSOLETE 
+// OBSOLETE       MY_FRAME_IN_SP: The base of the current frame is actually in
+// OBSOLETE       the stack pointer.  This can happen for frame pointerless
+// OBSOLETE       functions, or cases where we're stopped in the prologue/epilogue
+// OBSOLETE       itself.  For these cases mn10200_analyze_prologue will need up
+// OBSOLETE       update fi->frame before returning or analyzing the register
+// OBSOLETE       save instructions.
+// OBSOLETE 
+// OBSOLETE       MY_FRAME_IN_FP: The base of the current frame is in the
+// OBSOLETE       frame pointer register ($a2).
+// OBSOLETE 
+// OBSOLETE       CALLER_A2_IN_A0: $a2 from the caller's frame is temporarily
+// OBSOLETE       in $a0.  This can happen if we're stopped in the prologue.
+// OBSOLETE 
+// OBSOLETE       NO_MORE_FRAMES: Set this if the current frame is "start" or
+// OBSOLETE       if the first instruction looks like mov <imm>,sp.  This tells
+// OBSOLETE       frame chain to not bother trying to unwind past this frame.  */
+// OBSOLETE /* *INDENT-ON* */
+// OBSOLETE 
+// OBSOLETE 
+// OBSOLETE 
+// OBSOLETE 
+// OBSOLETE #define MY_FRAME_IN_SP 0x1
+// OBSOLETE #define MY_FRAME_IN_FP 0x2
+// OBSOLETE #define CALLER_A2_IN_A0 0x4
+// OBSOLETE #define NO_MORE_FRAMES 0x8
+// OBSOLETE 
+// OBSOLETE static CORE_ADDR
+// OBSOLETE mn10200_analyze_prologue (struct frame_info *fi, CORE_ADDR pc)
+// OBSOLETE {
+// OBSOLETE   CORE_ADDR func_addr, func_end, addr, stop;
+// OBSOLETE   CORE_ADDR stack_size = 0;
+// OBSOLETE   unsigned char buf[4];
+// OBSOLETE   int status;
+// OBSOLETE   char *name;
+// OBSOLETE   int out_of_line_prologue = 0;
+// OBSOLETE 
+// OBSOLETE   /* Use the PC in the frame if it's provided to look up the
+// OBSOLETE      start of this function.  */
+// OBSOLETE   pc = (fi ? get_frame_pc (fi) : pc);
+// OBSOLETE 
+// OBSOLETE   /* Find the start of this function.  */
+// OBSOLETE   status = find_pc_partial_function (pc, &name, &func_addr, &func_end);
+// OBSOLETE 
+// OBSOLETE   /* Do nothing if we couldn't find the start of this function or if we're
+// OBSOLETE      stopped at the first instruction in the prologue.  */
+// OBSOLETE   if (status == 0)
+// OBSOLETE     return pc;
+// OBSOLETE 
+// OBSOLETE   /* If we're in start, then give up.  */
+// OBSOLETE   if (strcmp (name, "start") == 0)
+// OBSOLETE     {
+// OBSOLETE       if (fi)
+// OBSOLETE 	fi->status = NO_MORE_FRAMES;
+// OBSOLETE       return pc;
+// OBSOLETE     }
+// OBSOLETE 
+// OBSOLETE   /* At the start of a function our frame is in the stack pointer.  */
+// OBSOLETE   if (fi)
+// OBSOLETE     fi->status = MY_FRAME_IN_SP;
+// OBSOLETE 
+// OBSOLETE   /* If we're physically on an RTS instruction, then our frame has already
+// OBSOLETE      been deallocated.
+// OBSOLETE 
+// OBSOLETE      fi->frame is bogus, we need to fix it.  */
+// OBSOLETE   if (fi && get_frame_pc (fi) + 1 == func_end)
+// OBSOLETE     {
+// OBSOLETE       status = target_read_memory (get_frame_pc (fi), buf, 1);
+// OBSOLETE       if (status != 0)
+// OBSOLETE 	{
+// OBSOLETE 	  if (get_next_frame (fi) == NULL)
+// OBSOLETE 	    deprecated_update_frame_base_hack (fi, read_sp ());
+// OBSOLETE 	  return get_frame_pc (fi);
+// OBSOLETE 	}
+// OBSOLETE 
+// OBSOLETE       if (buf[0] == 0xfe)
+// OBSOLETE 	{
+// OBSOLETE 	  if (get_next_frame (fi) == NULL)
+// OBSOLETE 	    deprecated_update_frame_base_hack (fi, read_sp ());
+// OBSOLETE 	  return get_frame_pc (fi);
+// OBSOLETE 	}
+// OBSOLETE     }
+// OBSOLETE 
+// OBSOLETE   /* Similarly if we're stopped on the first insn of a prologue as our
+// OBSOLETE      frame hasn't been allocated yet.  */
+// OBSOLETE   if (fi && get_frame_pc (fi) == func_addr)
+// OBSOLETE     {
+// OBSOLETE       if (get_next_frame (fi) == NULL)
+// OBSOLETE 	deprecated_update_frame_base_hack (fi, read_sp ());
+// OBSOLETE       return get_frame_pc (fi);
+// OBSOLETE     }
+// OBSOLETE 
+// OBSOLETE   /* Figure out where to stop scanning.  */
+// OBSOLETE   stop = fi ? get_frame_pc (fi) : func_end;
+// OBSOLETE 
+// OBSOLETE   /* Don't walk off the end of the function.  */
+// OBSOLETE   stop = stop > func_end ? func_end : stop;
+// OBSOLETE 
+// OBSOLETE   /* Start scanning on the first instruction of this function.  */
+// OBSOLETE   addr = func_addr;
+// OBSOLETE 
+// OBSOLETE   status = target_read_memory (addr, buf, 2);
+// OBSOLETE   if (status != 0)
+// OBSOLETE     {
+// OBSOLETE       if (fi && get_next_frame (fi) == NULL && fi->status & MY_FRAME_IN_SP)
+// OBSOLETE 	deprecated_update_frame_base_hack (fi, read_sp ());
+// OBSOLETE       return addr;
+// OBSOLETE     }
+// OBSOLETE 
+// OBSOLETE   /* First see if this insn sets the stack pointer; if so, it's something
+// OBSOLETE      we won't understand, so quit now.   */
+// OBSOLETE   if (buf[0] == 0xdf
+// OBSOLETE       || (buf[0] == 0xf4 && buf[1] == 0x77))
+// OBSOLETE     {
+// OBSOLETE       if (fi)
+// OBSOLETE 	fi->status = NO_MORE_FRAMES;
+// OBSOLETE       return addr;
+// OBSOLETE     }
+// OBSOLETE 
+// OBSOLETE   /* Now see if we have a frame pointer.
+// OBSOLETE 
+// OBSOLETE      Search for mov a2,a0 (0xf278)
+// OBSOLETE      then       mov a3,a2 (0xf27e).  */
+// OBSOLETE 
+// OBSOLETE   if (buf[0] == 0xf2 && buf[1] == 0x78)
+// OBSOLETE     {
+// OBSOLETE       /* Our caller's $a2 will be found in $a0 now.  Note it for
+// OBSOLETE          our callers.  */
+// OBSOLETE       if (fi)
+// OBSOLETE 	fi->status |= CALLER_A2_IN_A0;
+// OBSOLETE       addr += 2;
+// OBSOLETE       if (addr >= stop)
+// OBSOLETE 	{
+// OBSOLETE 	  /* We still haven't allocated our local stack.  Handle this
+// OBSOLETE 	     as if we stopped on the first or last insn of a function.   */
+// OBSOLETE 	  if (fi && get_next_frame (fi) == NULL)
+// OBSOLETE 	    deprecated_update_frame_base_hack (fi, read_sp ());
+// OBSOLETE 	  return addr;
+// OBSOLETE 	}
+// OBSOLETE 
+// OBSOLETE       status = target_read_memory (addr, buf, 2);
+// OBSOLETE       if (status != 0)
+// OBSOLETE 	{
+// OBSOLETE 	  if (fi && get_next_frame (fi) == NULL)
+// OBSOLETE 	    deprecated_update_frame_base_hack (fi, read_sp ());
+// OBSOLETE 	  return addr;
+// OBSOLETE 	}
+// OBSOLETE       if (buf[0] == 0xf2 && buf[1] == 0x7e)
+// OBSOLETE 	{
+// OBSOLETE 	  addr += 2;
+// OBSOLETE 
+// OBSOLETE 	  /* Our frame pointer is valid now.  */
+// OBSOLETE 	  if (fi)
+// OBSOLETE 	    {
+// OBSOLETE 	      fi->status |= MY_FRAME_IN_FP;
+// OBSOLETE 	      fi->status &= ~MY_FRAME_IN_SP;
+// OBSOLETE 	    }
+// OBSOLETE 	  if (addr >= stop)
+// OBSOLETE 	    return addr;
+// OBSOLETE 	}
+// OBSOLETE       else
+// OBSOLETE 	{
+// OBSOLETE 	  if (fi && get_next_frame (fi) == NULL)
+// OBSOLETE 	    deprecated_update_frame_base_hack (fi, read_sp ());
+// OBSOLETE 	  return addr;
+// OBSOLETE 	}
+// OBSOLETE     }
+// OBSOLETE 
+// OBSOLETE   /* Next we should allocate the local frame.
+// OBSOLETE 
+// OBSOLETE      Search for add imm8,a3 (0xd3XX)
+// OBSOLETE      or add imm16,a3 (0xf70bXXXX)
+// OBSOLETE      or add imm24,a3 (0xf467XXXXXX).
+// OBSOLETE 
+// OBSOLETE      If none of the above was found, then this prologue has
+// OBSOLETE      no stack, and therefore can't have any register saves,
+// OBSOLETE      so quit now.  */
+// OBSOLETE   status = target_read_memory (addr, buf, 2);
+// OBSOLETE   if (status != 0)
+// OBSOLETE     {
+// OBSOLETE       if (fi && get_next_frame (fi) == NULL && (fi->status & MY_FRAME_IN_SP))
+// OBSOLETE 	deprecated_update_frame_base_hack (fi, read_sp ());
+// OBSOLETE       return addr;
+// OBSOLETE     }
+// OBSOLETE   if (buf[0] == 0xd3)
+// OBSOLETE     {
+// OBSOLETE       stack_size = extract_signed_integer (&buf[1], 1);
+// OBSOLETE       if (fi)
+// OBSOLETE 	fi->stack_size = stack_size;
+// OBSOLETE       addr += 2;
+// OBSOLETE       if (addr >= stop)
+// OBSOLETE 	{
+// OBSOLETE 	  if (fi && get_next_frame (fi) == NULL && (fi->status & MY_FRAME_IN_SP))
+// OBSOLETE 	    deprecated_update_frame_base_hack (fi, read_sp () - stack_size);
+// OBSOLETE 	  return addr;
+// OBSOLETE 	}
+// OBSOLETE     }
+// OBSOLETE   else if (buf[0] == 0xf7 && buf[1] == 0x0b)
+// OBSOLETE     {
+// OBSOLETE       status = target_read_memory (addr + 2, buf, 2);
+// OBSOLETE       if (status != 0)
+// OBSOLETE 	{
+// OBSOLETE 	  if (fi && get_next_frame (fi) == NULL && (fi->status & MY_FRAME_IN_SP))
+// OBSOLETE 	    deprecated_update_frame_base_hack (fi, read_sp ());
+// OBSOLETE 	  return addr;
+// OBSOLETE 	}
+// OBSOLETE       stack_size = extract_signed_integer (buf, 2);
+// OBSOLETE       if (fi)
+// OBSOLETE 	fi->stack_size = stack_size;
+// OBSOLETE       addr += 4;
+// OBSOLETE       if (addr >= stop)
+// OBSOLETE 	{
+// OBSOLETE 	  if (fi && get_next_frame (fi) == NULL && (fi->status & MY_FRAME_IN_SP))
+// OBSOLETE 	    deprecated_update_frame_base_hack (fi, read_sp () - stack_size);
+// OBSOLETE 	  return addr;
+// OBSOLETE 	}
+// OBSOLETE     }
+// OBSOLETE   else if (buf[0] == 0xf4 && buf[1] == 0x67)
+// OBSOLETE     {
+// OBSOLETE       status = target_read_memory (addr + 2, buf, 3);
+// OBSOLETE       if (status != 0)
+// OBSOLETE 	{
+// OBSOLETE 	  if (fi && get_next_frame (fi) == NULL && (fi->status & MY_FRAME_IN_SP))
+// OBSOLETE 	    deprecated_update_frame_base_hack (fi, read_sp ());
+// OBSOLETE 	  return addr;
+// OBSOLETE 	}
+// OBSOLETE       stack_size = extract_signed_integer (buf, 3);
+// OBSOLETE       if (fi)
+// OBSOLETE 	fi->stack_size = stack_size;
+// OBSOLETE       addr += 5;
+// OBSOLETE       if (addr >= stop)
+// OBSOLETE 	{
+// OBSOLETE 	  if (fi && get_next_frame (fi) == NULL && (fi->status & MY_FRAME_IN_SP))
+// OBSOLETE 	    deprecated_update_frame_base_hack (fi, read_sp () - stack_size);
+// OBSOLETE 	  return addr;
+// OBSOLETE 	}
+// OBSOLETE     }
+// OBSOLETE 
+// OBSOLETE   /* Now see if we have a call to __prologue for an out of line
+// OBSOLETE      prologue.  */
+// OBSOLETE   status = target_read_memory (addr, buf, 2);
+// OBSOLETE   if (status != 0)
+// OBSOLETE     return addr;
+// OBSOLETE 
+// OBSOLETE   /* First check for 16bit pc-relative call to __prologue.  */
+// OBSOLETE   if (buf[0] == 0xfd)
+// OBSOLETE     {
+// OBSOLETE       CORE_ADDR temp;
+// OBSOLETE       status = target_read_memory (addr + 1, buf, 2);
+// OBSOLETE       if (status != 0)
+// OBSOLETE 	{
+// OBSOLETE 	  if (fi && get_next_frame (fi) == NULL && (fi->status & MY_FRAME_IN_SP))
+// OBSOLETE 	    deprecated_update_frame_base_hack (fi, read_sp ());
+// OBSOLETE 	  return addr;
+// OBSOLETE 	}
+// OBSOLETE 
+// OBSOLETE       /* Get the PC this instruction will branch to.  */
+// OBSOLETE       temp = (extract_signed_integer (buf, 2) + addr + 3) & 0xffffff;
+// OBSOLETE 
+// OBSOLETE       /* Get the name of the function at the target address.  */
+// OBSOLETE       status = find_pc_partial_function (temp, &name, NULL, NULL);
+// OBSOLETE       if (status == 0)
+// OBSOLETE 	{
+// OBSOLETE 	  if (fi && get_next_frame (fi) == NULL && (fi->status & MY_FRAME_IN_SP))
+// OBSOLETE 	    deprecated_update_frame_base_hack (fi, read_sp ());
+// OBSOLETE 	  return addr;
+// OBSOLETE 	}
+// OBSOLETE 
+// OBSOLETE       /* Note if it is an out of line prologue.  */
+// OBSOLETE       out_of_line_prologue = (strcmp (name, "__prologue") == 0);
+// OBSOLETE 
+// OBSOLETE       /* This sucks up 3 bytes of instruction space.  */
+// OBSOLETE       if (out_of_line_prologue)
+// OBSOLETE 	addr += 3;
+// OBSOLETE 
+// OBSOLETE       if (addr >= stop)
+// OBSOLETE 	{
+// OBSOLETE 	  if (fi && get_next_frame (fi) == NULL)
+// OBSOLETE 	    {
+// OBSOLETE 	      fi->stack_size -= 16;
+// OBSOLETE 	      deprecated_update_frame_base_hack (fi, read_sp () - fi->stack_size);
+// OBSOLETE 	    }
+// OBSOLETE 	  return addr;
+// OBSOLETE 	}
+// OBSOLETE     }
+// OBSOLETE   /* Now check for the 24bit pc-relative call to __prologue.  */
+// OBSOLETE   else if (buf[0] == 0xf4 && buf[1] == 0xe1)
+// OBSOLETE     {
+// OBSOLETE       CORE_ADDR temp;
+// OBSOLETE       status = target_read_memory (addr + 2, buf, 3);
+// OBSOLETE       if (status != 0)
+// OBSOLETE 	{
+// OBSOLETE 	  if (fi && get_next_frame (fi) == NULL && (fi->status & MY_FRAME_IN_SP))
+// OBSOLETE 	    deprecated_update_frame_base_hack (fi, read_sp ());
+// OBSOLETE 	  return addr;
+// OBSOLETE 	}
+// OBSOLETE 
+// OBSOLETE       /* Get the PC this instruction will branch to.  */
+// OBSOLETE       temp = (extract_signed_integer (buf, 3) + addr + 5) & 0xffffff;
+// OBSOLETE 
+// OBSOLETE       /* Get the name of the function at the target address.  */
+// OBSOLETE       status = find_pc_partial_function (temp, &name, NULL, NULL);
+// OBSOLETE       if (status == 0)
+// OBSOLETE 	{
+// OBSOLETE 	  if (fi && get_next_frame (fi) == NULL && (fi->status & MY_FRAME_IN_SP))
+// OBSOLETE 	    deprecated_update_frame_base_hack (fi, read_sp ());
+// OBSOLETE 	  return addr;
+// OBSOLETE 	}
+// OBSOLETE 
+// OBSOLETE       /* Note if it is an out of line prologue.  */
+// OBSOLETE       out_of_line_prologue = (strcmp (name, "__prologue") == 0);
+// OBSOLETE 
+// OBSOLETE       /* This sucks up 5 bytes of instruction space.  */
+// OBSOLETE       if (out_of_line_prologue)
+// OBSOLETE 	addr += 5;
+// OBSOLETE 
+// OBSOLETE       if (addr >= stop)
+// OBSOLETE 	{
+// OBSOLETE 	  if (fi && get_next_frame (fi) == NULL && (fi->status & MY_FRAME_IN_SP))
+// OBSOLETE 	    {
+// OBSOLETE 	      fi->stack_size -= 16;
+// OBSOLETE 	      deprecated_update_frame_base_hack (fi, read_sp () - fi->stack_size);
+// OBSOLETE 	    }
+// OBSOLETE 	  return addr;
+// OBSOLETE 	}
+// OBSOLETE     }
+// OBSOLETE 
+// OBSOLETE   /* Now actually handle the out of line prologue.  */
+// OBSOLETE   if (out_of_line_prologue)
+// OBSOLETE     {
+// OBSOLETE       int outgoing_args_size = 0;
+// OBSOLETE 
+// OBSOLETE       /* First adjust the stack size for this function.  The out of
+// OBSOLETE          line prologue saves 4 registers (16bytes of data).  */
+// OBSOLETE       if (fi)
+// OBSOLETE 	fi->stack_size -= 16;
+// OBSOLETE 
+// OBSOLETE       /* Update fi->frame if necessary.  */
+// OBSOLETE       if (fi && get_next_frame (fi) == NULL)
+// OBSOLETE 	deprecated_update_frame_base_hack (fi, read_sp () - fi->stack_size);
+// OBSOLETE 
+// OBSOLETE       /* After the out of line prologue, there may be another
+// OBSOLETE          stack adjustment for the outgoing arguments.
+// OBSOLETE 
+// OBSOLETE          Search for add imm8,a3 (0xd3XX)
+// OBSOLETE          or     add imm16,a3 (0xf70bXXXX)
+// OBSOLETE          or     add imm24,a3 (0xf467XXXXXX).  */
+// OBSOLETE 
+// OBSOLETE       status = target_read_memory (addr, buf, 2);
+// OBSOLETE       if (status != 0)
+// OBSOLETE 	{
+// OBSOLETE 	  if (fi)
+// OBSOLETE 	    {
+// OBSOLETE 	      fi->fsr.regs[2] = get_frame_base (fi) + fi->stack_size + 4;
+// OBSOLETE 	      fi->fsr.regs[3] = get_frame_base (fi) + fi->stack_size + 8;
+// OBSOLETE 	      fi->fsr.regs[5] = get_frame_base (fi) + fi->stack_size + 12;
+// OBSOLETE 	      fi->fsr.regs[6] = get_frame_base (fi) + fi->stack_size + 16;
+// OBSOLETE 	    }
+// OBSOLETE 	  return addr;
+// OBSOLETE 	}
+// OBSOLETE 
+// OBSOLETE       if (buf[0] == 0xd3)
+// OBSOLETE 	{
+// OBSOLETE 	  outgoing_args_size = extract_signed_integer (&buf[1], 1);
+// OBSOLETE 	  addr += 2;
+// OBSOLETE 	}
+// OBSOLETE       else if (buf[0] == 0xf7 && buf[1] == 0x0b)
+// OBSOLETE 	{
+// OBSOLETE 	  status = target_read_memory (addr + 2, buf, 2);
+// OBSOLETE 	  if (status != 0)
+// OBSOLETE 	    {
+// OBSOLETE 	      if (fi)
+// OBSOLETE 		{
+// OBSOLETE 		  fi->fsr.regs[2] = get_frame_base (fi) + fi->stack_size + 4;
+// OBSOLETE 		  fi->fsr.regs[3] = get_frame_base (fi) + fi->stack_size + 8;
+// OBSOLETE 		  fi->fsr.regs[5] = get_frame_base (fi) + fi->stack_size + 12;
+// OBSOLETE 		  fi->fsr.regs[6] = get_frame_base (fi) + fi->stack_size + 16;
+// OBSOLETE 		}
+// OBSOLETE 	      return addr;
+// OBSOLETE 	    }
+// OBSOLETE 	  outgoing_args_size = extract_signed_integer (buf, 2);
+// OBSOLETE 	  addr += 4;
+// OBSOLETE 	}
+// OBSOLETE       else if (buf[0] == 0xf4 && buf[1] == 0x67)
+// OBSOLETE 	{
+// OBSOLETE 	  status = target_read_memory (addr + 2, buf, 3);
+// OBSOLETE 	  if (status != 0)
+// OBSOLETE 	    {
+// OBSOLETE 	      if (fi && get_next_frame (fi) == NULL)
+// OBSOLETE 		{
+// OBSOLETE 		  fi->fsr.regs[2] = get_frame_base (fi) + fi->stack_size + 4;
+// OBSOLETE 		  fi->fsr.regs[3] = get_frame_base (fi) + fi->stack_size + 8;
+// OBSOLETE 		  fi->fsr.regs[5] = get_frame_base (fi) + fi->stack_size + 12;
+// OBSOLETE 		  fi->fsr.regs[6] = get_frame_base (fi) + fi->stack_size + 16;
+// OBSOLETE 		}
+// OBSOLETE 	      return addr;
+// OBSOLETE 	    }
+// OBSOLETE 	  outgoing_args_size = extract_signed_integer (buf, 3);
+// OBSOLETE 	  addr += 5;
+// OBSOLETE 	}
+// OBSOLETE       else
+// OBSOLETE 	outgoing_args_size = 0;
+// OBSOLETE 
+// OBSOLETE       /* Now that we know the size of the outgoing arguments, fix
+// OBSOLETE          fi->frame again if this is the innermost frame.  */
+// OBSOLETE       if (fi && get_next_frame (fi) == NULL)
+// OBSOLETE 	deprecated_update_frame_base_hack (fi, get_frame_base (fi) - outgoing_args_size);
+// OBSOLETE 
+// OBSOLETE       /* Note the register save information and update the stack
+// OBSOLETE          size for this frame too.  */
+// OBSOLETE       if (fi)
+// OBSOLETE 	{
+// OBSOLETE 	  fi->fsr.regs[2] = get_frame_base (fi) + fi->stack_size + 4;
+// OBSOLETE 	  fi->fsr.regs[3] = get_frame_base (fi) + fi->stack_size + 8;
+// OBSOLETE 	  fi->fsr.regs[5] = get_frame_base (fi) + fi->stack_size + 12;
+// OBSOLETE 	  fi->fsr.regs[6] = get_frame_base (fi) + fi->stack_size + 16;
+// OBSOLETE 	  fi->stack_size += outgoing_args_size;
+// OBSOLETE 	}
+// OBSOLETE       /* There can be no more prologue insns, so return now.  */
+// OBSOLETE       return addr;
+// OBSOLETE     }
+// OBSOLETE 
+// OBSOLETE   /* At this point fi->frame needs to be correct.
+// OBSOLETE 
+// OBSOLETE      If MY_FRAME_IN_SP is set and we're the innermost frame, then we
+// OBSOLETE      need to fix fi->frame so that backtracing, find_frame_saved_regs,
+// OBSOLETE      etc work correctly.  */
+// OBSOLETE   if (fi && get_next_frame (fi) == NULL && (fi->status & MY_FRAME_IN_SP) != 0)
+// OBSOLETE     deprecated_update_frame_base_hack (fi, read_sp () - fi->stack_size);
+// OBSOLETE 
+// OBSOLETE   /* And last we have the register saves.  These are relatively
+// OBSOLETE      simple because they're physically done off the stack pointer,
+// OBSOLETE      and thus the number of different instructions we need to
+// OBSOLETE      check is greatly reduced because we know the displacements
+// OBSOLETE      will be small.
+// OBSOLETE 
+// OBSOLETE      Search for movx d2,(X,a3) (0xf55eXX)
+// OBSOLETE      then       movx d3,(X,a3) (0xf55fXX)
+// OBSOLETE      then       mov  a1,(X,a3) (0x5dXX)    No frame pointer case
+// OBSOLETE      then       mov  a2,(X,a3) (0x5eXX)    No frame pointer case
+// OBSOLETE      or  mov  a0,(X,a3) (0x5cXX)           Frame pointer case.  */
+// OBSOLETE 
+// OBSOLETE   status = target_read_memory (addr, buf, 2);
+// OBSOLETE   if (status != 0)
+// OBSOLETE     return addr;
+// OBSOLETE   if (buf[0] == 0xf5 && buf[1] == 0x5e)
+// OBSOLETE     {
+// OBSOLETE       if (fi)
+// OBSOLETE 	{
+// OBSOLETE 	  status = target_read_memory (addr + 2, buf, 1);
+// OBSOLETE 	  if (status != 0)
+// OBSOLETE 	    return addr;
+// OBSOLETE 	  fi->fsr.regs[2] = (get_frame_base (fi) + stack_size
+// OBSOLETE 			     + extract_signed_integer (buf, 1));
+// OBSOLETE 	}
+// OBSOLETE       addr += 3;
+// OBSOLETE       if (addr >= stop)
+// OBSOLETE 	return addr;
+// OBSOLETE       status = target_read_memory (addr, buf, 2);
+// OBSOLETE       if (status != 0)
+// OBSOLETE 	return addr;
+// OBSOLETE     }
+// OBSOLETE   if (buf[0] == 0xf5 && buf[1] == 0x5f)
+// OBSOLETE     {
+// OBSOLETE       if (fi)
+// OBSOLETE 	{
+// OBSOLETE 	  status = target_read_memory (addr + 2, buf, 1);
+// OBSOLETE 	  if (status != 0)
+// OBSOLETE 	    return addr;
+// OBSOLETE 	  fi->fsr.regs[3] = (get_frame_base (fi) + stack_size
+// OBSOLETE 			     + extract_signed_integer (buf, 1));
+// OBSOLETE 	}
+// OBSOLETE       addr += 3;
+// OBSOLETE       if (addr >= stop)
+// OBSOLETE 	return addr;
+// OBSOLETE       status = target_read_memory (addr, buf, 2);
+// OBSOLETE       if (status != 0)
+// OBSOLETE 	return addr;
+// OBSOLETE     }
+// OBSOLETE   if (buf[0] == 0x5d)
+// OBSOLETE     {
+// OBSOLETE       if (fi)
+// OBSOLETE 	{
+// OBSOLETE 	  status = target_read_memory (addr + 1, buf, 1);
+// OBSOLETE 	  if (status != 0)
+// OBSOLETE 	    return addr;
+// OBSOLETE 	  fi->fsr.regs[5] = (get_frame_base (fi) + stack_size
+// OBSOLETE 			     + extract_signed_integer (buf, 1));
+// OBSOLETE 	}
+// OBSOLETE       addr += 2;
+// OBSOLETE       if (addr >= stop)
+// OBSOLETE 	return addr;
+// OBSOLETE       status = target_read_memory (addr, buf, 2);
+// OBSOLETE       if (status != 0)
+// OBSOLETE 	return addr;
+// OBSOLETE     }
+// OBSOLETE   if (buf[0] == 0x5e || buf[0] == 0x5c)
+// OBSOLETE     {
+// OBSOLETE       if (fi)
+// OBSOLETE 	{
+// OBSOLETE 	  status = target_read_memory (addr + 1, buf, 1);
+// OBSOLETE 	  if (status != 0)
+// OBSOLETE 	    return addr;
+// OBSOLETE 	  fi->fsr.regs[6] = (get_frame_base (fi) + stack_size
+// OBSOLETE 			     + extract_signed_integer (buf, 1));
+// OBSOLETE 	  fi->status &= ~CALLER_A2_IN_A0;
+// OBSOLETE 	}
+// OBSOLETE       addr += 2;
+// OBSOLETE       if (addr >= stop)
+// OBSOLETE 	return addr;
+// OBSOLETE       return addr;
+// OBSOLETE     }
+// OBSOLETE   return addr;
+// OBSOLETE }
+// OBSOLETE 
+// OBSOLETE /* Function: frame_chain
+// OBSOLETE    Figure out and return the caller's frame pointer given current
+// OBSOLETE    frame_info struct.
+// OBSOLETE 
+// OBSOLETE    We don't handle dummy frames yet but we would probably just return the
+// OBSOLETE    stack pointer that was in use at the time the function call was made?  */
+// OBSOLETE 
+// OBSOLETE CORE_ADDR
+// OBSOLETE mn10200_frame_chain (struct frame_info *fi)
+// OBSOLETE {
+// OBSOLETE   struct frame_info *dummy_frame = deprecated_frame_xmalloc ();
+// OBSOLETE   struct cleanup *old_chain = make_cleanup (xfree, dummy_frame);
+// OBSOLETE   CORE_ADDR ret;
+// OBSOLETE 
+// OBSOLETE   /* Walk through the prologue to determine the stack size,
+// OBSOLETE      location of saved registers, end of the prologue, etc.  */
+// OBSOLETE   if (fi->status == 0)
+// OBSOLETE     mn10200_analyze_prologue (fi, (CORE_ADDR) 0);
+// OBSOLETE 
+// OBSOLETE   /* Quit now if mn10200_analyze_prologue set NO_MORE_FRAMES.  */
+// OBSOLETE   if (fi->status & NO_MORE_FRAMES)
+// OBSOLETE     return 0;
+// OBSOLETE 
+// OBSOLETE   /* Now that we've analyzed our prologue, determine the frame
+// OBSOLETE      pointer for our caller.
+// OBSOLETE 
+// OBSOLETE      If our caller has a frame pointer, then we need to
+// OBSOLETE      find the entry value of $a2 to our function.
+// OBSOLETE 
+// OBSOLETE      If CALLER_A2_IN_A0, then the chain is in $a0.
+// OBSOLETE 
+// OBSOLETE      If fsr.regs[6] is nonzero, then it's at the memory
+// OBSOLETE      location pointed to by fsr.regs[6].
+// OBSOLETE 
+// OBSOLETE      Else it's still in $a2.
+// OBSOLETE 
+// OBSOLETE      If our caller does not have a frame pointer, then his
+// OBSOLETE      frame base is fi->frame + -caller's stack size + 4.  */
+// OBSOLETE 
+// OBSOLETE   /* The easiest way to get that info is to analyze our caller's frame.
+// OBSOLETE 
+// OBSOLETE      So we set up a dummy frame and call mn10200_analyze_prologue to
+// OBSOLETE      find stuff for us.  */
+// OBSOLETE   deprecated_update_frame_pc_hack (dummy_frame, FRAME_SAVED_PC (fi));
+// OBSOLETE   deprecated_update_frame_base_hack (dummy_frame, get_frame_base (fi));
+// OBSOLETE   memset (dummy_frame->fsr.regs, '\000', sizeof dummy_frame->fsr.regs);
+// OBSOLETE   dummy_frame->status = 0;
+// OBSOLETE   dummy_frame->stack_size = 0;
+// OBSOLETE   mn10200_analyze_prologue (dummy_frame, 0);
+// OBSOLETE 
+// OBSOLETE   if (dummy_frame->status & MY_FRAME_IN_FP)
+// OBSOLETE     {
+// OBSOLETE       /* Our caller has a frame pointer.  So find the frame in $a2, $a0,
+// OBSOLETE          or in the stack.  */
+// OBSOLETE       if (fi->fsr.regs[6])
+// OBSOLETE 	ret = (read_memory_integer (fi->fsr.regs[FP_REGNUM], REGISTER_SIZE)
+// OBSOLETE 	       & 0xffffff);
+// OBSOLETE       else if (fi->status & CALLER_A2_IN_A0)
+// OBSOLETE 	ret = read_register (4);
+// OBSOLETE       else
+// OBSOLETE 	ret = read_register (FP_REGNUM);
+// OBSOLETE     }
+// OBSOLETE   else
+// OBSOLETE     {
+// OBSOLETE       /* Our caller does not have a frame pointer.  So his frame starts
+// OBSOLETE          at the base of our frame (fi->frame) + <his size> + 4 (saved pc).  */
+// OBSOLETE       ret = get_frame_base (fi) + -dummy_frame->stack_size + 4;
+// OBSOLETE     }
+// OBSOLETE   do_cleanups (old_chain);
+// OBSOLETE   return ret;
+// OBSOLETE }
+// OBSOLETE 
+// OBSOLETE /* Function: skip_prologue
+// OBSOLETE    Return the address of the first inst past the prologue of the function.  */
+// OBSOLETE 
+// OBSOLETE CORE_ADDR
+// OBSOLETE mn10200_skip_prologue (CORE_ADDR pc)
+// OBSOLETE {
+// OBSOLETE   /* We used to check the debug symbols, but that can lose if
+// OBSOLETE      we have a null prologue.  */
+// OBSOLETE   return mn10200_analyze_prologue (NULL, pc);
+// OBSOLETE }
+// OBSOLETE 
+// OBSOLETE /* Function: pop_frame
+// OBSOLETE    This routine gets called when either the user uses the `return'
+// OBSOLETE    command, or the call dummy breakpoint gets hit.  */
+// OBSOLETE 
+// OBSOLETE void
+// OBSOLETE mn10200_pop_frame (struct frame_info *frame)
+// OBSOLETE {
+// OBSOLETE   int regnum;
+// OBSOLETE 
+// OBSOLETE   if (DEPRECATED_PC_IN_CALL_DUMMY (get_frame_pc (frame),
+// OBSOLETE 				   get_frame_base (frame),
+// OBSOLETE 				   get_frame_base (frame)))
+// OBSOLETE     generic_pop_dummy_frame ();
+// OBSOLETE   else
+// OBSOLETE     {
+// OBSOLETE       write_register (PC_REGNUM, FRAME_SAVED_PC (frame));
+// OBSOLETE 
+// OBSOLETE       /* Restore any saved registers.  */
+// OBSOLETE       for (regnum = 0; regnum < NUM_REGS; regnum++)
+// OBSOLETE 	if (frame->fsr.regs[regnum] != 0)
+// OBSOLETE 	  {
+// OBSOLETE 	    ULONGEST value;
+// OBSOLETE 
+// OBSOLETE 	    value = read_memory_unsigned_integer (frame->fsr.regs[regnum],
+// OBSOLETE 						REGISTER_RAW_SIZE (regnum));
+// OBSOLETE 	    write_register (regnum, value);
+// OBSOLETE 	  }
+// OBSOLETE 
+// OBSOLETE       /* Actually cut back the stack.  */
+// OBSOLETE       write_register (SP_REGNUM, get_frame_base (frame));
+// OBSOLETE 
+// OBSOLETE       /* Don't we need to set the PC?!?  XXX FIXME.  */
+// OBSOLETE     }
+// OBSOLETE 
+// OBSOLETE   /* Throw away any cached frame information.  */
+// OBSOLETE   flush_cached_frames ();
+// OBSOLETE }
+// OBSOLETE 
+// OBSOLETE /* Function: push_arguments
+// OBSOLETE    Setup arguments for a call to the target.  Arguments go in
+// OBSOLETE    order on the stack.  */
+// OBSOLETE 
+// OBSOLETE CORE_ADDR
+// OBSOLETE mn10200_push_arguments (int nargs, struct value **args, CORE_ADDR sp,
+// OBSOLETE 			unsigned char struct_return, CORE_ADDR struct_addr)
+// OBSOLETE {
+// OBSOLETE   int argnum = 0;
+// OBSOLETE   int len = 0;
+// OBSOLETE   int stack_offset = 0;
+// OBSOLETE   int regsused = struct_return ? 1 : 0;
+// OBSOLETE 
+// OBSOLETE   /* This should be a nop, but align the stack just in case something
+// OBSOLETE      went wrong.  Stacks are two byte aligned on the mn10200.  */
+// OBSOLETE   sp &= ~1;
+// OBSOLETE 
+// OBSOLETE   /* Now make space on the stack for the args.
+// OBSOLETE 
+// OBSOLETE      XXX This doesn't appear to handle pass-by-invisible reference
+// OBSOLETE      arguments.  */
+// OBSOLETE   for (argnum = 0; argnum < nargs; argnum++)
+// OBSOLETE     {
+// OBSOLETE       int arg_length = (TYPE_LENGTH (VALUE_TYPE (args[argnum])) + 1) & ~1;
+// OBSOLETE 
+// OBSOLETE       /* If we've used all argument registers, then this argument is
+// OBSOLETE          pushed.  */
+// OBSOLETE       if (regsused >= 2 || arg_length > 4)
+// OBSOLETE 	{
+// OBSOLETE 	  regsused = 2;
+// OBSOLETE 	  len += arg_length;
+// OBSOLETE 	}
+// OBSOLETE       /* We know we've got some arg register space left.  If this argument
+// OBSOLETE          will fit entirely in regs, then put it there.  */
+// OBSOLETE       else if (arg_length <= 2
+// OBSOLETE 	       || TYPE_CODE (VALUE_TYPE (args[argnum])) == TYPE_CODE_PTR)
+// OBSOLETE 	{
+// OBSOLETE 	  regsused++;
+// OBSOLETE 	}
+// OBSOLETE       else if (regsused == 0)
+// OBSOLETE 	{
+// OBSOLETE 	  regsused = 2;
+// OBSOLETE 	}
+// OBSOLETE       else
+// OBSOLETE 	{
+// OBSOLETE 	  regsused = 2;
+// OBSOLETE 	  len += arg_length;
+// OBSOLETE 	}
+// OBSOLETE     }
+// OBSOLETE 
+// OBSOLETE   /* Allocate stack space.  */
+// OBSOLETE   sp -= len;
+// OBSOLETE 
+// OBSOLETE   regsused = struct_return ? 1 : 0;
+// OBSOLETE   /* Push all arguments onto the stack. */
+// OBSOLETE   for (argnum = 0; argnum < nargs; argnum++)
+// OBSOLETE     {
+// OBSOLETE       int len;
+// OBSOLETE       char *val;
+// OBSOLETE 
+// OBSOLETE       /* XXX Check this.  What about UNIONS?  */
+// OBSOLETE       if (TYPE_CODE (VALUE_TYPE (*args)) == TYPE_CODE_STRUCT
+// OBSOLETE 	  && TYPE_LENGTH (VALUE_TYPE (*args)) > 8)
+// OBSOLETE 	{
+// OBSOLETE 	  /* XXX Wrong, we want a pointer to this argument.  */
+// OBSOLETE 	  len = TYPE_LENGTH (VALUE_TYPE (*args));
+// OBSOLETE 	  val = (char *) VALUE_CONTENTS (*args);
+// OBSOLETE 	}
+// OBSOLETE       else
+// OBSOLETE 	{
+// OBSOLETE 	  len = TYPE_LENGTH (VALUE_TYPE (*args));
+// OBSOLETE 	  val = (char *) VALUE_CONTENTS (*args);
+// OBSOLETE 	}
+// OBSOLETE 
+// OBSOLETE       if (regsused < 2
+// OBSOLETE 	  && (len <= 2
+// OBSOLETE 	      || TYPE_CODE (VALUE_TYPE (*args)) == TYPE_CODE_PTR))
+// OBSOLETE 	{
+// OBSOLETE 	  write_register (regsused, extract_unsigned_integer (val, 4));
+// OBSOLETE 	  regsused++;
+// OBSOLETE 	}
+// OBSOLETE       else if (regsused == 0 && len == 4)
+// OBSOLETE 	{
+// OBSOLETE 	  write_register (regsused, extract_unsigned_integer (val, 2));
+// OBSOLETE 	  write_register (regsused + 1, extract_unsigned_integer (val + 2, 2));
+// OBSOLETE 	  regsused = 2;
+// OBSOLETE 	}
+// OBSOLETE       else
+// OBSOLETE 	{
+// OBSOLETE 	  regsused = 2;
+// OBSOLETE 	  while (len > 0)
+// OBSOLETE 	    {
+// OBSOLETE 	      write_memory (sp + stack_offset, val, 2);
+// OBSOLETE 
+// OBSOLETE 	      len -= 2;
+// OBSOLETE 	      val += 2;
+// OBSOLETE 	      stack_offset += 2;
+// OBSOLETE 	    }
+// OBSOLETE 	}
+// OBSOLETE       args++;
+// OBSOLETE     }
+// OBSOLETE 
+// OBSOLETE   return sp;
+// OBSOLETE }
+// OBSOLETE 
+// OBSOLETE /* Function: push_return_address (pc)
+// OBSOLETE    Set up the return address for the inferior function call.
+// OBSOLETE    Needed for targets where we don't actually execute a JSR/BSR instruction */
+// OBSOLETE 
+// OBSOLETE CORE_ADDR
+// OBSOLETE mn10200_push_return_address (CORE_ADDR pc, CORE_ADDR sp)
+// OBSOLETE {
+// OBSOLETE   unsigned char buf[4];
+// OBSOLETE 
+// OBSOLETE   store_unsigned_integer (buf, 4, CALL_DUMMY_ADDRESS ());
+// OBSOLETE   write_memory (sp - 4, buf, 4);
+// OBSOLETE   return sp - 4;
+// OBSOLETE }
+// OBSOLETE 
+// OBSOLETE /* Function: store_struct_return (addr,sp)
+// OBSOLETE    Store the structure value return address for an inferior function
+// OBSOLETE    call.  */
+// OBSOLETE 
+// OBSOLETE CORE_ADDR
+// OBSOLETE mn10200_store_struct_return (CORE_ADDR addr, CORE_ADDR sp)
+// OBSOLETE {
+// OBSOLETE   /* The structure return address is passed as the first argument.  */
+// OBSOLETE   write_register (0, addr);
+// OBSOLETE   return sp;
+// OBSOLETE }
+// OBSOLETE 
+// OBSOLETE /* Function: frame_saved_pc 
+// OBSOLETE    Find the caller of this frame.  We do this by seeing if RP_REGNUM
+// OBSOLETE    is saved in the stack anywhere, otherwise we get it from the
+// OBSOLETE    registers.  If the inner frame is a dummy frame, return its PC
+// OBSOLETE    instead of RP, because that's where "caller" of the dummy-frame
+// OBSOLETE    will be found.  */
+// OBSOLETE 
+// OBSOLETE CORE_ADDR
+// OBSOLETE mn10200_frame_saved_pc (struct frame_info *fi)
+// OBSOLETE {
+// OBSOLETE   /* The saved PC will always be at the base of the current frame.  */
+// OBSOLETE   return (read_memory_integer (get_frame_base (fi), REGISTER_SIZE) & 0xffffff);
+// OBSOLETE }
+// OBSOLETE 
+// OBSOLETE /* Function: init_extra_frame_info
+// OBSOLETE    Setup the frame's frame pointer, pc, and frame addresses for saved
+// OBSOLETE    registers.  Most of the work is done in mn10200_analyze_prologue().
+// OBSOLETE 
+// OBSOLETE    Note that when we are called for the last frame (currently active frame),
+// OBSOLETE    that get_frame_pc (fi) and fi->frame will already be setup.  However, fi->frame will
+// OBSOLETE    be valid only if this routine uses FP.  For previous frames, fi-frame will
+// OBSOLETE    always be correct.  mn10200_analyze_prologue will fix fi->frame if
+// OBSOLETE    it's not valid.
+// OBSOLETE 
+// OBSOLETE    We can be called with the PC in the call dummy under two circumstances.
+// OBSOLETE    First, during normal backtracing, second, while figuring out the frame
+// OBSOLETE    pointer just prior to calling the target function (see run_stack_dummy).  */
+// OBSOLETE 
+// OBSOLETE void
+// OBSOLETE mn10200_init_extra_frame_info (struct frame_info *fi)
+// OBSOLETE {
+// OBSOLETE   if (get_next_frame (fi))
+// OBSOLETE     deprecated_update_frame_pc_hack (fi, FRAME_SAVED_PC (get_next_frame (fi)));
+// OBSOLETE 
+// OBSOLETE   memset (fi->fsr.regs, '\000', sizeof fi->fsr.regs);
+// OBSOLETE   fi->status = 0;
+// OBSOLETE   fi->stack_size = 0;
+// OBSOLETE 
+// OBSOLETE   mn10200_analyze_prologue (fi, 0);
+// OBSOLETE }
+// OBSOLETE 
+// OBSOLETE void
+// OBSOLETE _initialize_mn10200_tdep (void)
+// OBSOLETE {
+// OBSOLETE   tm_print_insn = print_insn_mn10200;
+// OBSOLETE }
Index: config/mn10200/mn10200.mt
===================================================================
RCS file: /cvs/src/src/gdb/config/mn10200/mn10200.mt,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 mn10200.mt
--- config/mn10200/mn10200.mt	16 Apr 1999 01:34:23 -0000	1.1.1.1
+++ config/mn10200/mn10200.mt	29 Jan 2003 18:43:36 -0000
@@ -1,6 +1,6 @@
-# Target: Matsushita mn10200
-TDEPFILES= mn10200-tdep.o
-TM_FILE= tm-mn10200.h
-
-SIM_OBS = remote-sim.o
-SIM = ../sim/mn10200/libsim.a
+# OBSOLETE # Target: Matsushita mn10200
+# OBSOLETE TDEPFILES= mn10200-tdep.o
+# OBSOLETE TM_FILE= tm-mn10200.h
+# OBSOLETE 
+# OBSOLETE SIM_OBS = remote-sim.o
+# OBSOLETE SIM = ../sim/mn10200/libsim.a
Index: config/mn10200/tm-mn10200.h
===================================================================
RCS file: /cvs/src/src/gdb/config/mn10200/tm-mn10200.h,v
retrieving revision 1.23
diff -u -r1.23 tm-mn10200.h
--- config/mn10200/tm-mn10200.h	8 Jan 2003 01:53:38 -0000	1.23
+++ config/mn10200/tm-mn10200.h	29 Jan 2003 18:43:36 -0000
@@ -1,214 +1,214 @@
-/* Parameters for execution on a Matsushita mn10200 processor.
-
-   Copyright 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software
-   Foundation, Inc.
-
-   Contributed by Geoffrey Noer <noer@cygnus.com>
-
-   This file is part of GDB.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2 of the License, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
-
-/* FIXME: cagney/2001-03-01: The below macros refer to functions
-   declared in "regcache.h".  The ``correct fix'' is to convert those
-   macros into functions.  */
-#include "regcache.h"
-#include "symtab.h"		/* For namespace_enum.  */
-#include "symfile.h"		/* For entry_point_address().  */
-
-/* ints are only 16bits on the mn10200.  */
-#undef TARGET_INT_BIT
-#define TARGET_INT_BIT 16
-
-/* The mn10200 doesn't support long long types.  */
-#undef TARGET_LONG_LONG_BIT
-#define TARGET_LONG_LONG_BIT 32
-
-/* The mn10200 doesn't support double or long double either.  */
-#undef TARGET_DOUBLE_BIT
-#undef TARGET_LONG_DOUBLE_BIT
-#define TARGET_DOUBLE_BIT 32
-#define TARGET_LONG_DOUBLE_BIT 32
-
-/* Not strictly correct, but the machine independent code is not
-   ready to handle any of the basic sizes not being a power of two.  */
-#undef TARGET_PTR_BIT
-#define TARGET_PTR_BIT 32
-
-/* The mn10200 really has 24 bit registers but the simulator reads/writes
-   them as 32bit values, so we claim they're 32bits each.  This may have
-   to be tweaked if the Matsushita emulator/board really deals with them
-   as 24bits each.  */
-#define REGISTER_SIZE 4
-
-#define MAX_REGISTER_RAW_SIZE REGISTER_SIZE
-#define NUM_REGS 11
-
-#define REGISTER_BYTES (NUM_REGS * REGISTER_SIZE)
-
-#define REGISTER_NAMES \
-{ "d0", "d1", "d2", "d3", "a0", "a1", "a2", "sp", \
-  "pc", "mdr", "psw"}
-
-#define FP_REGNUM 6
-#define SP_REGNUM 7
-#define PC_REGNUM 8
-#define MDR_REGNUM 9
-#define PSW_REGNUM 10
-
-/* Treat the registers as 32bit values.  */
-#define REGISTER_VIRTUAL_TYPE(REG) builtin_type_long
-
-#define REGISTER_BYTE(REG) ((REG) * REGISTER_SIZE)
-#define REGISTER_VIRTUAL_SIZE(REG) REGISTER_SIZE
-#define REGISTER_RAW_SIZE(REG) REGISTER_SIZE
-
-#define MAX_REGISTER_VIRTUAL_SIZE REGISTER_SIZE
-
-/* The breakpoint instruction must be the same size as te smallest
-   instruction in the instruction set.
-
-   The Matsushita mn10x00 processors have single byte instructions
-   so we need a single byte breakpoint.  Matsushita hasn't defined
-   one, so we defined it ourselves.
-
-   0xff is the only available single byte insn left on the mn10200.  */
-#define BREAKPOINT {0xff}
-
-#define FUNCTION_START_OFFSET 0
-
-#define DECR_PC_AFTER_BREAK 0
-
-/* Stacks grow the normal way.  */
-#define INNER_THAN(lhs,rhs) ((lhs) < (rhs))
-
-#define SAVED_PC_AFTER_CALL(frame) \
-  (read_memory_integer (read_register (SP_REGNUM), REGISTER_SIZE) & 0xffffff)
-
-struct frame_info;
-struct frame_saved_regs;
-struct type;
-struct value;
-
-#define EXTRA_FRAME_INFO struct frame_saved_regs fsr; int status; int stack_size;
-
-extern void mn10200_init_extra_frame_info (struct frame_info *);
-#define INIT_EXTRA_FRAME_INFO(fromleaf, fi) mn10200_init_extra_frame_info (fi)
-#define DEPRECATED_INIT_FRAME_PC(x,y) (init_frame_pc_noop (x, y))
-#define INIT_FRAME_PC_FIRST(x,y) (init_frame_pc_noop (x, y))
-
-extern void mn10200_frame_find_saved_regs (struct frame_info *,
-					   struct frame_saved_regs *);
-#define FRAME_FIND_SAVED_REGS(fi, regaddr) regaddr = fi->fsr
-
-extern CORE_ADDR mn10200_frame_chain (struct frame_info *);
-#define FRAME_CHAIN(fi) mn10200_frame_chain (fi)
-
-extern CORE_ADDR mn10200_find_callers_reg (struct frame_info *, int);
-extern CORE_ADDR mn10200_frame_saved_pc (struct frame_info *);
-#define FRAME_SAVED_PC(FI) (mn10200_frame_saved_pc (FI))
-
-/* Extract from an array REGBUF containing the (raw) register state
-   a function return value of type TYPE, and copy that, in virtual format,
-   into VALBUF.  */
-
-#define DEPRECATED_EXTRACT_RETURN_VALUE(TYPE, REGBUF, VALBUF) \
-  { \
-    if (TYPE_LENGTH (TYPE) > 8) \
-      internal_error (__FILE__, __LINE__, "failed internal consistency check"); \
-    else if (TYPE_LENGTH (TYPE) > 2 && TYPE_CODE (TYPE) != TYPE_CODE_PTR) \
-      { \
-	memcpy (VALBUF, REGBUF + REGISTER_BYTE (0), 2); \
-	memcpy (VALBUF + 2, REGBUF + REGISTER_BYTE (1), 2); \
-      } \
-    else if (TYPE_CODE (TYPE) == TYPE_CODE_PTR)\
-      { \
-        memcpy (VALBUF, REGBUF + REGISTER_BYTE (4), TYPE_LENGTH (TYPE)); \
-      } \
-    else \
-      { \
-        memcpy (VALBUF, REGBUF + REGISTER_BYTE (0), TYPE_LENGTH (TYPE)); \
-      } \
-  }
-
-#define DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS(REGBUF) \
-  extract_address (REGBUF + REGISTER_BYTE (4), \
-		   REGISTER_RAW_SIZE (4))
-
-#define DEPRECATED_STORE_RETURN_VALUE(TYPE, VALBUF) \
-  { \
-    if (TYPE_LENGTH (TYPE) > 8) \
-      internal_error (__FILE__, __LINE__, "failed internal consistency check"); \
-    else if (TYPE_LENGTH (TYPE) > 2 && TYPE_CODE (TYPE) != TYPE_CODE_PTR) \
-      { \
-	deprecated_write_register_bytes (REGISTER_BYTE (0), VALBUF, 2); \
-	deprecated_write_register_bytes (REGISTER_BYTE (1), VALBUF + 2, 2); \
-      } \
-    else if (TYPE_CODE (TYPE) == TYPE_CODE_PTR)\
-      { \
-        deprecated_write_register_bytes (REGISTER_BYTE (4), VALBUF, TYPE_LENGTH (TYPE)); \
-      } \
-    else \
-      { \
-        deprecated_write_register_bytes (REGISTER_BYTE (0), VALBUF, TYPE_LENGTH (TYPE)); \
-      } \
-  }
-
-
-extern CORE_ADDR mn10200_store_struct_return (CORE_ADDR addr, CORE_ADDR sp);
-#define STORE_STRUCT_RETURN(STRUCT_ADDR, SP) \
-  (SP) = mn10200_store_struct_return (STRUCT_ADDR, SP)
-
-extern CORE_ADDR mn10200_skip_prologue (CORE_ADDR);
-#define SKIP_PROLOGUE(pc) (mn10200_skip_prologue (pc))
-
-#define FRAME_ARGS_SKIP 0
-
-#define FRAME_ARGS_ADDRESS(fi) (get_frame_base (fi))
-#define FRAME_LOCALS_ADDRESS(fi) (get_frame_base (fi))
-#define FRAME_NUM_ARGS(fi) (-1)
-
-extern void mn10200_pop_frame (struct frame_info *);
-#define POP_FRAME mn10200_pop_frame (get_current_frame ())
-
-#define DEPRECATED_USE_GENERIC_DUMMY_FRAMES 1
-#define CALL_DUMMY                   {0}
-#define CALL_DUMMY_START_OFFSET      (0)
-#define CALL_DUMMY_BREAKPOINT_OFFSET (0)
-#define CALL_DUMMY_LOCATION          AT_ENTRY_POINT
-#define FIX_CALL_DUMMY(DUMMY, START, FUNADDR, NARGS, ARGS, TYPE, GCCP)
-#define CALL_DUMMY_ADDRESS()         entry_point_address ()
-
-extern CORE_ADDR mn10200_push_return_address (CORE_ADDR, CORE_ADDR);
-#define PUSH_RETURN_ADDRESS(PC, SP)  mn10200_push_return_address (PC, SP)
-
-#define PUSH_DUMMY_FRAME	generic_push_dummy_frame ()
-
-extern CORE_ADDR mn10200_push_arguments (int, struct value **, CORE_ADDR,
-					 unsigned char, CORE_ADDR);
-#define PUSH_ARGUMENTS(NARGS, ARGS, SP, STRUCT_RETURN, STRUCT_ADDR) \
-  (mn10200_push_arguments (NARGS, ARGS, SP, STRUCT_RETURN, STRUCT_ADDR))
-
-#define DEPRECATED_PC_IN_CALL_DUMMY(PC, SP, FP) generic_pc_in_call_dummy (PC, SP, FP)
-
-#define REG_STRUCT_HAS_ADDR(gcc_p,TYPE) \
-  	(TYPE_LENGTH (TYPE) > 8)
-
-extern use_struct_convention_fn mn10200_use_struct_convention;
-#define USE_STRUCT_CONVENTION(GCC_P, TYPE) mn10200_use_struct_convention (GCC_P, TYPE)
-
-/* Define this for Wingdb */
-#define TARGET_MN10200
+// OBSOLETE /* Parameters for execution on a Matsushita mn10200 processor.
+// OBSOLETE 
+// OBSOLETE    Copyright 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software
+// OBSOLETE    Foundation, Inc.
+// OBSOLETE 
+// OBSOLETE    Contributed by Geoffrey Noer <noer@cygnus.com>
+// OBSOLETE 
+// OBSOLETE    This file is part of GDB.
+// OBSOLETE 
+// OBSOLETE    This program is free software; you can redistribute it and/or modify
+// OBSOLETE    it under the terms of the GNU General Public License as published by
+// OBSOLETE    the Free Software Foundation; either version 2 of the License, or
+// OBSOLETE    (at your option) any later version.
+// OBSOLETE 
+// OBSOLETE    This program is distributed in the hope that it will be useful,
+// OBSOLETE    but WITHOUT ANY WARRANTY; without even the implied warranty of
+// OBSOLETE    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// OBSOLETE    GNU General Public License for more details.
+// OBSOLETE 
+// OBSOLETE    You should have received a copy of the GNU General Public License
+// OBSOLETE    along with this program; if not, write to the Free Software
+// OBSOLETE    Foundation, Inc., 59 Temple Place - Suite 330,
+// OBSOLETE    Boston, MA 02111-1307, USA.  */
+// OBSOLETE 
+// OBSOLETE /* FIXME: cagney/2001-03-01: The below macros refer to functions
+// OBSOLETE    declared in "regcache.h".  The ``correct fix'' is to convert those
+// OBSOLETE    macros into functions.  */
+// OBSOLETE #include "regcache.h"
+// OBSOLETE #include "symtab.h"		/* For namespace_enum.  */
+// OBSOLETE #include "symfile.h"		/* For entry_point_address().  */
+// OBSOLETE 
+// OBSOLETE /* ints are only 16bits on the mn10200.  */
+// OBSOLETE #undef TARGET_INT_BIT
+// OBSOLETE #define TARGET_INT_BIT 16
+// OBSOLETE 
+// OBSOLETE /* The mn10200 doesn't support long long types.  */
+// OBSOLETE #undef TARGET_LONG_LONG_BIT
+// OBSOLETE #define TARGET_LONG_LONG_BIT 32
+// OBSOLETE 
+// OBSOLETE /* The mn10200 doesn't support double or long double either.  */
+// OBSOLETE #undef TARGET_DOUBLE_BIT
+// OBSOLETE #undef TARGET_LONG_DOUBLE_BIT
+// OBSOLETE #define TARGET_DOUBLE_BIT 32
+// OBSOLETE #define TARGET_LONG_DOUBLE_BIT 32
+// OBSOLETE 
+// OBSOLETE /* Not strictly correct, but the machine independent code is not
+// OBSOLETE    ready to handle any of the basic sizes not being a power of two.  */
+// OBSOLETE #undef TARGET_PTR_BIT
+// OBSOLETE #define TARGET_PTR_BIT 32
+// OBSOLETE 
+// OBSOLETE /* The mn10200 really has 24 bit registers but the simulator reads/writes
+// OBSOLETE    them as 32bit values, so we claim they're 32bits each.  This may have
+// OBSOLETE    to be tweaked if the Matsushita emulator/board really deals with them
+// OBSOLETE    as 24bits each.  */
+// OBSOLETE #define REGISTER_SIZE 4
+// OBSOLETE 
+// OBSOLETE #define MAX_REGISTER_RAW_SIZE REGISTER_SIZE
+// OBSOLETE #define NUM_REGS 11
+// OBSOLETE 
+// OBSOLETE #define REGISTER_BYTES (NUM_REGS * REGISTER_SIZE)
+// OBSOLETE 
+// OBSOLETE #define REGISTER_NAMES \
+// OBSOLETE { "d0", "d1", "d2", "d3", "a0", "a1", "a2", "sp", \
+// OBSOLETE   "pc", "mdr", "psw"}
+// OBSOLETE 
+// OBSOLETE #define FP_REGNUM 6
+// OBSOLETE #define SP_REGNUM 7
+// OBSOLETE #define PC_REGNUM 8
+// OBSOLETE #define MDR_REGNUM 9
+// OBSOLETE #define PSW_REGNUM 10
+// OBSOLETE 
+// OBSOLETE /* Treat the registers as 32bit values.  */
+// OBSOLETE #define REGISTER_VIRTUAL_TYPE(REG) builtin_type_long
+// OBSOLETE 
+// OBSOLETE #define REGISTER_BYTE(REG) ((REG) * REGISTER_SIZE)
+// OBSOLETE #define REGISTER_VIRTUAL_SIZE(REG) REGISTER_SIZE
+// OBSOLETE #define REGISTER_RAW_SIZE(REG) REGISTER_SIZE
+// OBSOLETE 
+// OBSOLETE #define MAX_REGISTER_VIRTUAL_SIZE REGISTER_SIZE
+// OBSOLETE 
+// OBSOLETE /* The breakpoint instruction must be the same size as te smallest
+// OBSOLETE    instruction in the instruction set.
+// OBSOLETE 
+// OBSOLETE    The Matsushita mn10x00 processors have single byte instructions
+// OBSOLETE    so we need a single byte breakpoint.  Matsushita hasn't defined
+// OBSOLETE    one, so we defined it ourselves.
+// OBSOLETE 
+// OBSOLETE    0xff is the only available single byte insn left on the mn10200.  */
+// OBSOLETE #define BREAKPOINT {0xff}
+// OBSOLETE 
+// OBSOLETE #define FUNCTION_START_OFFSET 0
+// OBSOLETE 
+// OBSOLETE #define DECR_PC_AFTER_BREAK 0
+// OBSOLETE 
+// OBSOLETE /* Stacks grow the normal way.  */
+// OBSOLETE #define INNER_THAN(lhs,rhs) ((lhs) < (rhs))
+// OBSOLETE 
+// OBSOLETE #define SAVED_PC_AFTER_CALL(frame) \
+// OBSOLETE   (read_memory_integer (read_register (SP_REGNUM), REGISTER_SIZE) & 0xffffff)
+// OBSOLETE 
+// OBSOLETE struct frame_info;
+// OBSOLETE struct frame_saved_regs;
+// OBSOLETE struct type;
+// OBSOLETE struct value;
+// OBSOLETE 
+// OBSOLETE #define EXTRA_FRAME_INFO struct frame_saved_regs fsr; int status; int stack_size;
+// OBSOLETE 
+// OBSOLETE extern void mn10200_init_extra_frame_info (struct frame_info *);
+// OBSOLETE #define INIT_EXTRA_FRAME_INFO(fromleaf, fi) mn10200_init_extra_frame_info (fi)
+// OBSOLETE #define DEPRECATED_INIT_FRAME_PC(x,y) (init_frame_pc_noop (x, y))
+// OBSOLETE #define INIT_FRAME_PC_FIRST(x,y) (init_frame_pc_noop (x, y))
+// OBSOLETE 
+// OBSOLETE extern void mn10200_frame_find_saved_regs (struct frame_info *,
+// OBSOLETE 					   struct frame_saved_regs *);
+// OBSOLETE #define FRAME_FIND_SAVED_REGS(fi, regaddr) regaddr = fi->fsr
+// OBSOLETE 
+// OBSOLETE extern CORE_ADDR mn10200_frame_chain (struct frame_info *);
+// OBSOLETE #define FRAME_CHAIN(fi) mn10200_frame_chain (fi)
+// OBSOLETE 
+// OBSOLETE extern CORE_ADDR mn10200_find_callers_reg (struct frame_info *, int);
+// OBSOLETE extern CORE_ADDR mn10200_frame_saved_pc (struct frame_info *);
+// OBSOLETE #define FRAME_SAVED_PC(FI) (mn10200_frame_saved_pc (FI))
+// OBSOLETE 
+// OBSOLETE /* Extract from an array REGBUF containing the (raw) register state
+// OBSOLETE    a function return value of type TYPE, and copy that, in virtual format,
+// OBSOLETE    into VALBUF.  */
+// OBSOLETE 
+// OBSOLETE #define DEPRECATED_EXTRACT_RETURN_VALUE(TYPE, REGBUF, VALBUF) \
+// OBSOLETE   { \
+// OBSOLETE     if (TYPE_LENGTH (TYPE) > 8) \
+// OBSOLETE       internal_error (__FILE__, __LINE__, "failed internal consistency check"); \
+// OBSOLETE     else if (TYPE_LENGTH (TYPE) > 2 && TYPE_CODE (TYPE) != TYPE_CODE_PTR) \
+// OBSOLETE       { \
+// OBSOLETE 	memcpy (VALBUF, REGBUF + REGISTER_BYTE (0), 2); \
+// OBSOLETE 	memcpy (VALBUF + 2, REGBUF + REGISTER_BYTE (1), 2); \
+// OBSOLETE       } \
+// OBSOLETE     else if (TYPE_CODE (TYPE) == TYPE_CODE_PTR)\
+// OBSOLETE       { \
+// OBSOLETE         memcpy (VALBUF, REGBUF + REGISTER_BYTE (4), TYPE_LENGTH (TYPE)); \
+// OBSOLETE       } \
+// OBSOLETE     else \
+// OBSOLETE       { \
+// OBSOLETE         memcpy (VALBUF, REGBUF + REGISTER_BYTE (0), TYPE_LENGTH (TYPE)); \
+// OBSOLETE       } \
+// OBSOLETE   }
+// OBSOLETE 
+// OBSOLETE #define DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS(REGBUF) \
+// OBSOLETE   extract_address (REGBUF + REGISTER_BYTE (4), \
+// OBSOLETE 		   REGISTER_RAW_SIZE (4))
+// OBSOLETE 
+// OBSOLETE #define DEPRECATED_STORE_RETURN_VALUE(TYPE, VALBUF) \
+// OBSOLETE   { \
+// OBSOLETE     if (TYPE_LENGTH (TYPE) > 8) \
+// OBSOLETE       internal_error (__FILE__, __LINE__, "failed internal consistency check"); \
+// OBSOLETE     else if (TYPE_LENGTH (TYPE) > 2 && TYPE_CODE (TYPE) != TYPE_CODE_PTR) \
+// OBSOLETE       { \
+// OBSOLETE 	deprecated_write_register_bytes (REGISTER_BYTE (0), VALBUF, 2); \
+// OBSOLETE 	deprecated_write_register_bytes (REGISTER_BYTE (1), VALBUF + 2, 2); \
+// OBSOLETE       } \
+// OBSOLETE     else if (TYPE_CODE (TYPE) == TYPE_CODE_PTR)\
+// OBSOLETE       { \
+// OBSOLETE         deprecated_write_register_bytes (REGISTER_BYTE (4), VALBUF, TYPE_LENGTH (TYPE)); \
+// OBSOLETE       } \
+// OBSOLETE     else \
+// OBSOLETE       { \
+// OBSOLETE         deprecated_write_register_bytes (REGISTER_BYTE (0), VALBUF, TYPE_LENGTH (TYPE)); \
+// OBSOLETE       } \
+// OBSOLETE   }
+// OBSOLETE 
+// OBSOLETE 
+// OBSOLETE extern CORE_ADDR mn10200_store_struct_return (CORE_ADDR addr, CORE_ADDR sp);
+// OBSOLETE #define STORE_STRUCT_RETURN(STRUCT_ADDR, SP) \
+// OBSOLETE   (SP) = mn10200_store_struct_return (STRUCT_ADDR, SP)
+// OBSOLETE 
+// OBSOLETE extern CORE_ADDR mn10200_skip_prologue (CORE_ADDR);
+// OBSOLETE #define SKIP_PROLOGUE(pc) (mn10200_skip_prologue (pc))
+// OBSOLETE 
+// OBSOLETE #define FRAME_ARGS_SKIP 0
+// OBSOLETE 
+// OBSOLETE #define FRAME_ARGS_ADDRESS(fi) (get_frame_base (fi))
+// OBSOLETE #define FRAME_LOCALS_ADDRESS(fi) (get_frame_base (fi))
+// OBSOLETE #define FRAME_NUM_ARGS(fi) (-1)
+// OBSOLETE 
+// OBSOLETE extern void mn10200_pop_frame (struct frame_info *);
+// OBSOLETE #define POP_FRAME mn10200_pop_frame (get_current_frame ())
+// OBSOLETE 
+// OBSOLETE #define DEPRECATED_USE_GENERIC_DUMMY_FRAMES 1
+// OBSOLETE #define CALL_DUMMY                   {0}
+// OBSOLETE #define CALL_DUMMY_START_OFFSET      (0)
+// OBSOLETE #define CALL_DUMMY_BREAKPOINT_OFFSET (0)
+// OBSOLETE #define CALL_DUMMY_LOCATION          AT_ENTRY_POINT
+// OBSOLETE #define FIX_CALL_DUMMY(DUMMY, START, FUNADDR, NARGS, ARGS, TYPE, GCCP)
+// OBSOLETE #define CALL_DUMMY_ADDRESS()         entry_point_address ()
+// OBSOLETE 
+// OBSOLETE extern CORE_ADDR mn10200_push_return_address (CORE_ADDR, CORE_ADDR);
+// OBSOLETE #define PUSH_RETURN_ADDRESS(PC, SP)  mn10200_push_return_address (PC, SP)
+// OBSOLETE 
+// OBSOLETE #define PUSH_DUMMY_FRAME	generic_push_dummy_frame ()
+// OBSOLETE 
+// OBSOLETE extern CORE_ADDR mn10200_push_arguments (int, struct value **, CORE_ADDR,
+// OBSOLETE 					 unsigned char, CORE_ADDR);
+// OBSOLETE #define PUSH_ARGUMENTS(NARGS, ARGS, SP, STRUCT_RETURN, STRUCT_ADDR) \
+// OBSOLETE   (mn10200_push_arguments (NARGS, ARGS, SP, STRUCT_RETURN, STRUCT_ADDR))
+// OBSOLETE 
+// OBSOLETE #define DEPRECATED_PC_IN_CALL_DUMMY(PC, SP, FP) generic_pc_in_call_dummy (PC, SP, FP)
+// OBSOLETE 
+// OBSOLETE #define REG_STRUCT_HAS_ADDR(gcc_p,TYPE) \
+// OBSOLETE   	(TYPE_LENGTH (TYPE) > 8)
+// OBSOLETE 
+// OBSOLETE extern use_struct_convention_fn mn10200_use_struct_convention;
+// OBSOLETE #define USE_STRUCT_CONVENTION(GCC_P, TYPE) mn10200_use_struct_convention (GCC_P, TYPE)
+// OBSOLETE 
+// OBSOLETE /* Define this for Wingdb */
+// OBSOLETE #define TARGET_MN10200
Index: testsuite/gdb.base/watchpoint.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.base/watchpoint.exp,v
retrieving revision 1.6
diff -u -r1.6 watchpoint.exp
--- testsuite/gdb.base/watchpoint.exp	3 May 2002 23:16:44 -0000	1.6
+++ testsuite/gdb.base/watchpoint.exp	29 Jan 2003 18:43:37 -0000
@@ -394,7 +394,7 @@
 	clear_xfail "sparc-*-*"
 	clear_xfail "hppa*-*-*bsd*"
 	# It works with the generic inferior function calling code too.
-	clear_xfail "mn10200*-*-*"
+	# OBSOLETE clear_xfail "mn10200*-*-*"
 	clear_xfail "mn10300*-*-*"
 	# The following architectures define CALL_DUMMY_HAS_COMPLETED.
 	clear_xfail "hppa*-*-*hpux*"
Index: testsuite/gdb.disasm/Makefile.in
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.disasm/Makefile.in,v
retrieving revision 1.3
diff -u -r1.3 Makefile.in
--- testsuite/gdb.disasm/Makefile.in	9 Jan 2003 18:50:25 -0000	1.3
+++ testsuite/gdb.disasm/Makefile.in	29 Jan 2003 18:43:37 -0000
@@ -7,7 +7,7 @@
 	@echo "Nothing to be done for $@..."
 
 clean mostlyclean:
-	-rm -f *.o *.diff *~ *.bad core h8300s hppa mn10200 mn10300 sh3
+	-rm -f *.o *.diff *~ *.bad core h8300s hppa mn10300 sh3
 
 distclean maintainer-clean realclean: clean
 	-rm -f Makefile config.status config.log
Index: testsuite/gdb.disasm/mn10200.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.disasm/mn10200.exp,v
retrieving revision 1.2
diff -u -r1.2 mn10200.exp
--- testsuite/gdb.disasm/mn10200.exp	6 Mar 2001 08:21:56 -0000	1.2
+++ testsuite/gdb.disasm/mn10200.exp	29 Jan 2003 18:43:37 -0000
@@ -1,478 +1,478 @@
-
-# Copyright 1997 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
-
-# Please email any bugs, comments, and/or additions to this file to:
-# bug-gdb@prep.ai.mit.edu
-
-# This file was written by Jeff Law. (law@cygnus.com)
-
-if $tracelevel then {
-	strace $tracelevel
-}
-
-if ![istarget "mn10200*-*-*"] {
-    verbose "Tests ignored for all but mn10200 based targets."
-    return
-}
-
-global exec_output
-set prms_id 0
-set bug_id 0
-
-set testfile "mn10200"
-set srcfile ${srcdir}/${subdir}/${testfile}.s
-set binfile ${objdir}/${subdir}/${testfile}
-if  { [gdb_compile "${srcfile}" "${binfile}" executable ""] != "" } {
-     gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
-}
-
-proc add_tests { } {
-    global gdb_prompt
-    global hex
-    global decimal
-
-    send_gdb "x/12i add_tests\n"
-    gdb_expect {
-	-re "
-.*add	d1,d2.*
-.*add	d2,a3.*
-.*add	a2,d1.*
-.*add	a3,a2.*
-.*add	16,d1.*
-.*add	256,d2.*
-.*add	131071,d3.*
-.*add	16,a1.*
-.*add	256,a2.*
-.*add	131071,a3.*
-.*addc	d1,d2.*
-.*addnf	16,a2.*
-.*$gdb_prompt $" { pass "add tests" }
-	-re "$gdb_prompt $" { fail "add tests" }
-	timeout { fail "(timeout) add tests" }
-    }
-}
-
-proc bcc_tests { } {
-    global gdb_prompt
-    global hex
-    global decimal
-
-    send_gdb "x/15i bCC_tests\n"
-    gdb_expect {
-	-re "
-.*beq	0x\[0-9a-f]+ <bCC_tests>.*
-.*bne	0x\[0-9a-f]+ <bCC_tests>.*
-.*bgt	0x\[0-9a-f]+ <bCC_tests>.*
-.*bge	0x\[0-9a-f]+ <bCC_tests>.*
-.*ble	0x\[0-9a-f]+ <bCC_tests>.*
-.*blt	0x\[0-9a-f]+ <bCC_tests>.*
-.*bhi	0x\[0-9a-f]+ <bCC_tests>.*
-.*bcc	0x\[0-9a-f]+ <bCC_tests>.*
-.*bls	0x\[0-9a-f]+ <bCC_tests>.*
-.*bcs	0x\[0-9a-f]+ <bCC_tests>.*
-.*bvc	0x\[0-9a-f]+ <bCC_tests>.*
-.*bvs	0x\[0-9a-f]+ <bCC_tests>.*
-.*bnc	0x\[0-9a-f]+ <bCC_tests>.*
-.*bns	0x\[0-9a-f]+ <bCC_tests>.*
-.*bra	0x\[0-9a-f]+ <bCC_tests>.*
-.*$gdb_prompt $" { pass "bCC tests" }
-	-re "$gdb_prompt $" { fail "bCC tests" }
-	timeout { fail "(timeout) bCC tests" }
-    }
-}
-
-proc bccx_tests { } {
-    global gdb_prompt
-    global hex
-    global decimal
-
-    send_gdb "x/14i bCCx_tests\n"
-    gdb_expect {
-	-re "
-.*beqx	0x\[0-9a-f]+ <bCCx_tests>.*
-.*bnex	0x\[0-9a-f]+ <bCCx_tests>.*
-.*bgtx	0x\[0-9a-f]+ <bCCx_tests>.*
-.*bgex	0x\[0-9a-f]+ <bCCx_tests>.*
-.*blex	0x\[0-9a-f]+ <bCCx_tests>.*
-.*bltx	0x\[0-9a-f]+ <bCCx_tests>.*
-.*bhix	0x\[0-9a-f]+ <bCCx_tests>.*
-.*bccx	0x\[0-9a-f]+ <bCCx_tests>.*
-.*blsx	0x\[0-9a-f]+ <bCCx_tests>.*
-.*bcsx	0x\[0-9a-f]+ <bCCx_tests>.*
-.*bvcx	0x\[0-9a-f]+ <bCCx_tests>.*
-.*bvsx	0x\[0-9a-f]+ <bCCx_tests>.*
-.*bncx	0x\[0-9a-f]+ <bCCx_tests>.*
-.*bnsx	0x\[0-9a-f]+ <bCCx_tests>.*
-.*$gdb_prompt $" { pass "bCCx tests" }
-	-re "$gdb_prompt $" { fail "bCCx tests" }
-	timeout { fail "(timeout) bCCx tests" }
-    }
-}
-
-proc bit_tests { } {
-    global gdb_prompt
-    global hex
-    global decimal
-
-    send_gdb "x/4 bit_tests\n"
-    gdb_expect {
-	-re "
-.*btst	64,d1.*
-.*btst	8192,d2.*
-.*bset	d1,\\(a2\\).*
-.*bclr	d1,\\(a2\\).*
-.*$gdb_prompt $" { pass "bit tests" }
-	-re "$gdb_prompt $" { fail "bit tests" }
-	timeout { fail "(timeout) bit tests" }
-    }
-}
-
-proc cmp_tests { } {
-    global gdb_prompt
-    global hex
-    global decimal
-
-    send_gdb "x/9i cmp_tests\n"
-    gdb_expect {
-	-re "
-.*cmp	d1,d2.*
-.*cmp	d2,a3.*
-.*cmp	a3,d3.*
-.*cmp	a3,a2.*
-.*cmp	16,d3.*
-.*cmp	256,d2.*
-.*cmp	131071,d1.*
-.*cmp	256,a2.*
-.*cmp	131071,a1.*
-.*$gdb_prompt $" { pass "cmp tests" }
-	-re "$gdb_prompt $" { fail "cmp tests" }
-	timeout { fail "(timeout) cmp tests" }
-    }
-}
-
-proc extend_tests { } {
-    global gdb_prompt
-    global hex
-    global decimal
-
-    send_gdb "x/5i extend_tests\n"
-    gdb_expect {
-	-re "
-.*ext	d1.*
-.*extx	d2.*
-.*extxu	d3.*
-.*extxb	d2.*
-.*extxbu	d1.*
-.*$gdb_prompt $" { pass "extend tests" }
-	-re "$gdb_prompt $" { fail "extend tests" }
-	timeout { fail "(timeout) extend tests" }
-    }
-}
-
-proc logical_tests { } {
-    global gdb_prompt
-    global hex
-    global decimal
-
-    send_gdb "x/11i logical_tests\n"
-    gdb_expect {
-	-re "
-.*and	d1,d2.*
-.*and	127,d2.*
-.*and	32767,d3.*
-.*and	32767,psw.*
-.*or	d1,d2.*
-.*or	127,d2.*
-.*or	32767,d3.*
-.*or	32767,psw.*
-.*xor	d1,d2.*
-.*xor	32767,d3.*
-.*not	d3.*
-.*$gdb_prompt $" { pass "logical tests" }
-	-re "$gdb_prompt $" { fail "logical tests" }
-	timeout { fail "(timeout) logical tests" }
-    }
-}
-
-proc mov_tests_1 { } {
-    global gdb_prompt
-    global hex
-    global decimal
-
-    send_gdb "x/12i mov_tests_1\n"
-    gdb_expect {
-	-re "
-.*mov	d1,a2.*
-.*mov	a2,d1.*
-.*mov	d1,d2.*
-.*mov	a2,a1.*
-.*mov	psw,d3.*
-.*mov	d2,psw.*
-.*mov	mdr,d1.*
-.*mov	d2,mdr.*
-.*mov	\\(a2\\),d1.*
-.*mov	\\(8,a2\\),d1.*
-.*mov	\\(256,a2\\),d1.*
-.*mov	\\(131071,a2\\),d1.*
-.*$gdb_prompt $" { pass "mov1 tests" }
-	-re "$gdb_prompt $" { fail "mov1 tests" }
-	timeout { fail "(timeout) mov1 tests" }
-    }
-}
-
-proc mov_tests_2 { } {
-    global gdb_prompt
-    global hex
-    global decimal
-
-    send_gdb "x/9 mov_tests_2\n"
-    gdb_expect {
-	-re "
-.*mov	\\(d1,a1\\),d2.*
-.*mov	\\(0x8000.*\\),d1.*
-.*mov	\\(0x1ffff.*\\),d1.*
-.*mov	\\(8,a2\\),a1.*
-.*mov	\\(256,a2\\),a1.*
-.*mov	\\(131071,a2\\),a1.*
-.*mov	\\(d1,a1\\),a2.*
-.*mov	\\(0x8000.*\\),a1.*
-.*mov	\\(0x1ffff.*\\),a1.*
-.*$gdb_prompt $" { pass "mov2 tests" }
-	-re "$gdb_prompt $" { fail "mov2 tests" }
-	timeout { fail "(timeout) mov2 tests" }
-    }
-}
-
-proc mov_tests_3 { } {
-    global gdb_prompt
-    global hex
-    global decimal
-
-    send_gdb "x/10 mov_tests_3\n"
-    gdb_expect {
-	-re "
-.*mov	d1,\\(a2\\).*
-.*mov	d1,\\(32,a2\\).*
-.*mov	d1,\\(256,a2\\).*
-.*mov	d1,\\(131071,a2\\).*
-.*mov	d1,\\(d2,a2\\).*
-.*mov	d1,\\(0x80.*\\).*
-.*mov	d1,\\(0x1ffff.*\\).*
-.*mov	a1,\\(32,a2\\).*
-.*mov	a1,\\(256,a2\\).*
-.*mov	a1,\\(131071,a2\\).*
-.*$gdb_prompt $" { pass "mov3 tests" }
-	-re "$gdb_prompt $" { fail "mov3 tests" }
-	timeout { fail "(timeout) mov3 tests" }
-    }
-}
-
-proc mov_tests_4 { } {
-    global gdb_prompt
-    global hex
-    global decimal
-
-    send_gdb "x/8 mov_tests_4\n"
-    gdb_expect {
-	-re "
-.*mov	a1,\\(d2,a2\\).*
-.*mov	a1,\\(0x80.*\\).*
-.*mov	a1,\\(0x1ffff.*\\).*
-.*mov	8,d1.*
-.*mov	256,d1.*
-.*mov	131071,d1.*
-.*mov	256,a1.*
-.*mov	131071,a1.*
-.*$gdb_prompt $" { pass "mov4 tests" }
-	-re "$gdb_prompt $" { fail "mov4 tests" }
-	timeout { fail "(timeout) mov4 tests" }
-    }
-}
-
-proc movb_tests { } {
-    global gdb_prompt
-    global hex
-    global decimal
-
-    send_gdb "x/12 movb_tests\n"
-    gdb_expect {
-	-re "
-.*movb	\\(8,a2\\),d1.*
-.*movb	\\(256,a2\\),d1.*
-.*movb	\\(131071,a2\\),d1.*
-.*movb	\\(d2,a2\\),d3.*
-.*movb	\\(0x1ffff.*\\),d2.*
-.*movb	d1,\\(a2\\).*
-.*movb	d1,\\(8,a2\\).*
-.*movb	d1,\\(256,a2\\).*
-.*movb	d1,\\(131071,a2\\).*
-.*movb	d1,\\(d2,a2\\).*
-.*movb	d1,\\(0x100.*\\).*
-.*movb	d1,\\(0x1ffff.*\\).*
-.*$gdb_prompt $" { pass "movb tests" }
-	-re "$gdb_prompt $" { fail "movb tests" }
-	timeout { fail "(timeout) movb tests" }
-    }
-}
-
-proc movbu_tests { } {
-    global gdb_prompt
-    global hex
-    global decimal
-
-    send_gdb "x/7 movbu_tests\n"
-    gdb_expect {
-	-re "
-.*movbu	\\(a2\\),d1.*
-.*movbu	\\(8,a2\\),d1.*
-.*movbu	\\(256,a2\\),d1.*
-.*movbu	\\(131071,a2\\),d1.*
-.*movbu	\\(d1,a1\\),d2.*
-.*movbu	\\(0x8000.*\\),d1.*
-.*movbu	\\(0x1ffff.*\\),d1.*
-.*$gdb_prompt $" { pass "movbu tests" }
-	-re "$gdb_prompt $" { fail "movbu tests" }
-	timeout { fail "(timeout) movbu tests" }
-    }
-}
-
-proc movx_tests { } {
-    global gdb_prompt
-    global hex
-    global decimal
-
-    send_gdb "x/6 movx_tests\n"
-    gdb_expect {
-	-re "
-.*movx	\\(8,a2\\),d1.*
-.*movx	\\(256,a2\\),d1.*
-.*movx	\\(131071,a2\\),d1.*
-.*movx	d1,\\(8,a2\\).*
-.*movx	d1,\\(256,a2\\).*
-.*movx	d1,\\(131071,a2\\).*
-.*$gdb_prompt $" { pass "movx tests" }
-	-re "$gdb_prompt $" { fail "movx tests" }
-	timeout { fail "(timeout) movx tests" }
-    }
-}
-
-proc muldiv_tests { } {
-    global gdb_prompt
-    global hex
-    global decimal
-
-    send_gdb "x/3 muldiv_tests\n"
-    gdb_expect {
-	-re "
-.*mul	d1,d2.*
-.*mulu	d2,d3.*
-.*divu	d3,d2.*
-.*$gdb_prompt $" { pass "muldiv tests" }
-	-re "$gdb_prompt $" { fail "muldiv tests" }
-	timeout { fail "(timeout) muldiv tests" }
-    }
-}
-
-proc misc_tests { } {
-    global gdb_prompt
-    global hex
-    global decimal
-
-    send_gdb "x/9 misc_tests\n"
-    gdb_expect {
-	-re "
-.*jmp	0x\[0-9a-f]+ <main>.*
-.*jmp	0x\[0-9a-f]+ <start>.*
-.*jmp	\\(a2\\).*
-.*jsr	0x\[0-9a-f]+ <main>.*
-.*jsr	0x\[0-9a-f]+ <start>.*
-.*jsr	\\(a2\\).*
-.*rts.*
-.*rti.*
-.*nop.*
-.*$gdb_prompt $" { pass "misc tests" }
-	-re "$gdb_prompt $" { fail "misc tests" }
-	timeout { fail "(timeout) misc tests" }
-    }
-}
-
-proc shift_tests { } {
-    global gdb_prompt
-    global hex
-    global decimal
-
-    send_gdb "x/4i shift_tests\n"
-    gdb_expect {
-	-re "
-.*asr	d2.*
-.*lsr	d3.*
-.*ror	d1.*
-.*rol	d2.*
-.*$gdb_prompt $" { pass "shift tests" }
-	-re "$gdb_prompt $" { fail "shift tests" }
-	timeout { fail "(timeout) shift tests" }
-    }
-}
-
-proc sub_tests { } {
-    global gdb_prompt
-    global hex
-    global decimal
-
-    send_gdb "x/9i sub_tests\n"
-    gdb_expect {
-	-re "
-.*sub	d1,d2.*
-.*sub	d2,a3.*
-.*sub	a3,d3.*
-.*sub	a3,a2.*
-.*sub	32767,d2.*
-.*sub	131071,d2.*
-.*sub	32767,a2.*
-.*sub	131071,a2.*
-.*subc	d1,d2.*
-.*$gdb_prompt $" { pass "sub tests" }
-	-re "$gdb_prompt $" { fail "sub tests" }
-	timeout { fail "(timeout) sub tests" }
-    }
-}
-
-# Start with a fresh gdb.
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load $binfile
-
-add_tests
-bcc_tests
-bccx_tests
-bit_tests
-cmp_tests
-extend_tests
-logical_tests
-mov_tests_1
-mov_tests_2
-mov_tests_3
-mov_tests_4
-movb_tests
-movbu_tests
-movx_tests
-muldiv_tests
-misc_tests
-shift_tests
-sub_tests
+# OBSOLETE 
+# OBSOLETE # Copyright 1997 Free Software Foundation, Inc.
+# OBSOLETE 
+# OBSOLETE # This program is free software; you can redistribute it and/or modify
+# OBSOLETE # it under the terms of the GNU General Public License as published by
+# OBSOLETE # the Free Software Foundation; either version 2 of the License, or
+# OBSOLETE # (at your option) any later version.
+# OBSOLETE # 
+# OBSOLETE # This program is distributed in the hope that it will be useful,
+# OBSOLETE # but WITHOUT ANY WARRANTY; without even the implied warranty of
+# OBSOLETE # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# OBSOLETE # GNU General Public License for more details.
+# OBSOLETE # 
+# OBSOLETE # You should have received a copy of the GNU General Public License
+# OBSOLETE # along with this program; if not, write to the Free Software
+# OBSOLETE # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
+# OBSOLETE 
+# OBSOLETE # Please email any bugs, comments, and/or additions to this file to:
+# OBSOLETE # bug-gdb@prep.ai.mit.edu
+# OBSOLETE 
+# OBSOLETE # This file was written by Jeff Law. (law@cygnus.com)
+# OBSOLETE 
+# OBSOLETE if $tracelevel then {
+# OBSOLETE 	strace $tracelevel
+# OBSOLETE }
+# OBSOLETE 
+# OBSOLETE if ![istarget "mn10200*-*-*"] {
+# OBSOLETE     verbose "Tests ignored for all but mn10200 based targets."
+# OBSOLETE     return
+# OBSOLETE }
+# OBSOLETE 
+# OBSOLETE global exec_output
+# OBSOLETE set prms_id 0
+# OBSOLETE set bug_id 0
+# OBSOLETE 
+# OBSOLETE set testfile "mn10200"
+# OBSOLETE set srcfile ${srcdir}/${subdir}/${testfile}.s
+# OBSOLETE set binfile ${objdir}/${subdir}/${testfile}
+# OBSOLETE if  { [gdb_compile "${srcfile}" "${binfile}" executable ""] != "" } {
+# OBSOLETE      gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
+# OBSOLETE }
+# OBSOLETE 
+# OBSOLETE proc add_tests { } {
+# OBSOLETE     global gdb_prompt
+# OBSOLETE     global hex
+# OBSOLETE     global decimal
+# OBSOLETE 
+# OBSOLETE     send_gdb "x/12i add_tests\n"
+# OBSOLETE     gdb_expect {
+# OBSOLETE 	-re "
+# OBSOLETE .*add	d1,d2.*
+# OBSOLETE .*add	d2,a3.*
+# OBSOLETE .*add	a2,d1.*
+# OBSOLETE .*add	a3,a2.*
+# OBSOLETE .*add	16,d1.*
+# OBSOLETE .*add	256,d2.*
+# OBSOLETE .*add	131071,d3.*
+# OBSOLETE .*add	16,a1.*
+# OBSOLETE .*add	256,a2.*
+# OBSOLETE .*add	131071,a3.*
+# OBSOLETE .*addc	d1,d2.*
+# OBSOLETE .*addnf	16,a2.*
+# OBSOLETE .*$gdb_prompt $" { pass "add tests" }
+# OBSOLETE 	-re "$gdb_prompt $" { fail "add tests" }
+# OBSOLETE 	timeout { fail "(timeout) add tests" }
+# OBSOLETE     }
+# OBSOLETE }
+# OBSOLETE 
+# OBSOLETE proc bcc_tests { } {
+# OBSOLETE     global gdb_prompt
+# OBSOLETE     global hex
+# OBSOLETE     global decimal
+# OBSOLETE 
+# OBSOLETE     send_gdb "x/15i bCC_tests\n"
+# OBSOLETE     gdb_expect {
+# OBSOLETE 	-re "
+# OBSOLETE .*beq	0x\[0-9a-f]+ <bCC_tests>.*
+# OBSOLETE .*bne	0x\[0-9a-f]+ <bCC_tests>.*
+# OBSOLETE .*bgt	0x\[0-9a-f]+ <bCC_tests>.*
+# OBSOLETE .*bge	0x\[0-9a-f]+ <bCC_tests>.*
+# OBSOLETE .*ble	0x\[0-9a-f]+ <bCC_tests>.*
+# OBSOLETE .*blt	0x\[0-9a-f]+ <bCC_tests>.*
+# OBSOLETE .*bhi	0x\[0-9a-f]+ <bCC_tests>.*
+# OBSOLETE .*bcc	0x\[0-9a-f]+ <bCC_tests>.*
+# OBSOLETE .*bls	0x\[0-9a-f]+ <bCC_tests>.*
+# OBSOLETE .*bcs	0x\[0-9a-f]+ <bCC_tests>.*
+# OBSOLETE .*bvc	0x\[0-9a-f]+ <bCC_tests>.*
+# OBSOLETE .*bvs	0x\[0-9a-f]+ <bCC_tests>.*
+# OBSOLETE .*bnc	0x\[0-9a-f]+ <bCC_tests>.*
+# OBSOLETE .*bns	0x\[0-9a-f]+ <bCC_tests>.*
+# OBSOLETE .*bra	0x\[0-9a-f]+ <bCC_tests>.*
+# OBSOLETE .*$gdb_prompt $" { pass "bCC tests" }
+# OBSOLETE 	-re "$gdb_prompt $" { fail "bCC tests" }
+# OBSOLETE 	timeout { fail "(timeout) bCC tests" }
+# OBSOLETE     }
+# OBSOLETE }
+# OBSOLETE 
+# OBSOLETE proc bccx_tests { } {
+# OBSOLETE     global gdb_prompt
+# OBSOLETE     global hex
+# OBSOLETE     global decimal
+# OBSOLETE 
+# OBSOLETE     send_gdb "x/14i bCCx_tests\n"
+# OBSOLETE     gdb_expect {
+# OBSOLETE 	-re "
+# OBSOLETE .*beqx	0x\[0-9a-f]+ <bCCx_tests>.*
+# OBSOLETE .*bnex	0x\[0-9a-f]+ <bCCx_tests>.*
+# OBSOLETE .*bgtx	0x\[0-9a-f]+ <bCCx_tests>.*
+# OBSOLETE .*bgex	0x\[0-9a-f]+ <bCCx_tests>.*
+# OBSOLETE .*blex	0x\[0-9a-f]+ <bCCx_tests>.*
+# OBSOLETE .*bltx	0x\[0-9a-f]+ <bCCx_tests>.*
+# OBSOLETE .*bhix	0x\[0-9a-f]+ <bCCx_tests>.*
+# OBSOLETE .*bccx	0x\[0-9a-f]+ <bCCx_tests>.*
+# OBSOLETE .*blsx	0x\[0-9a-f]+ <bCCx_tests>.*
+# OBSOLETE .*bcsx	0x\[0-9a-f]+ <bCCx_tests>.*
+# OBSOLETE .*bvcx	0x\[0-9a-f]+ <bCCx_tests>.*
+# OBSOLETE .*bvsx	0x\[0-9a-f]+ <bCCx_tests>.*
+# OBSOLETE .*bncx	0x\[0-9a-f]+ <bCCx_tests>.*
+# OBSOLETE .*bnsx	0x\[0-9a-f]+ <bCCx_tests>.*
+# OBSOLETE .*$gdb_prompt $" { pass "bCCx tests" }
+# OBSOLETE 	-re "$gdb_prompt $" { fail "bCCx tests" }
+# OBSOLETE 	timeout { fail "(timeout) bCCx tests" }
+# OBSOLETE     }
+# OBSOLETE }
+# OBSOLETE 
+# OBSOLETE proc bit_tests { } {
+# OBSOLETE     global gdb_prompt
+# OBSOLETE     global hex
+# OBSOLETE     global decimal
+# OBSOLETE 
+# OBSOLETE     send_gdb "x/4 bit_tests\n"
+# OBSOLETE     gdb_expect {
+# OBSOLETE 	-re "
+# OBSOLETE .*btst	64,d1.*
+# OBSOLETE .*btst	8192,d2.*
+# OBSOLETE .*bset	d1,\\(a2\\).*
+# OBSOLETE .*bclr	d1,\\(a2\\).*
+# OBSOLETE .*$gdb_prompt $" { pass "bit tests" }
+# OBSOLETE 	-re "$gdb_prompt $" { fail "bit tests" }
+# OBSOLETE 	timeout { fail "(timeout) bit tests" }
+# OBSOLETE     }
+# OBSOLETE }
+# OBSOLETE 
+# OBSOLETE proc cmp_tests { } {
+# OBSOLETE     global gdb_prompt
+# OBSOLETE     global hex
+# OBSOLETE     global decimal
+# OBSOLETE 
+# OBSOLETE     send_gdb "x/9i cmp_tests\n"
+# OBSOLETE     gdb_expect {
+# OBSOLETE 	-re "
+# OBSOLETE .*cmp	d1,d2.*
+# OBSOLETE .*cmp	d2,a3.*
+# OBSOLETE .*cmp	a3,d3.*
+# OBSOLETE .*cmp	a3,a2.*
+# OBSOLETE .*cmp	16,d3.*
+# OBSOLETE .*cmp	256,d2.*
+# OBSOLETE .*cmp	131071,d1.*
+# OBSOLETE .*cmp	256,a2.*
+# OBSOLETE .*cmp	131071,a1.*
+# OBSOLETE .*$gdb_prompt $" { pass "cmp tests" }
+# OBSOLETE 	-re "$gdb_prompt $" { fail "cmp tests" }
+# OBSOLETE 	timeout { fail "(timeout) cmp tests" }
+# OBSOLETE     }
+# OBSOLETE }
+# OBSOLETE 
+# OBSOLETE proc extend_tests { } {
+# OBSOLETE     global gdb_prompt
+# OBSOLETE     global hex
+# OBSOLETE     global decimal
+# OBSOLETE 
+# OBSOLETE     send_gdb "x/5i extend_tests\n"
+# OBSOLETE     gdb_expect {
+# OBSOLETE 	-re "
+# OBSOLETE .*ext	d1.*
+# OBSOLETE .*extx	d2.*
+# OBSOLETE .*extxu	d3.*
+# OBSOLETE .*extxb	d2.*
+# OBSOLETE .*extxbu	d1.*
+# OBSOLETE .*$gdb_prompt $" { pass "extend tests" }
+# OBSOLETE 	-re "$gdb_prompt $" { fail "extend tests" }
+# OBSOLETE 	timeout { fail "(timeout) extend tests" }
+# OBSOLETE     }
+# OBSOLETE }
+# OBSOLETE 
+# OBSOLETE proc logical_tests { } {
+# OBSOLETE     global gdb_prompt
+# OBSOLETE     global hex
+# OBSOLETE     global decimal
+# OBSOLETE 
+# OBSOLETE     send_gdb "x/11i logical_tests\n"
+# OBSOLETE     gdb_expect {
+# OBSOLETE 	-re "
+# OBSOLETE .*and	d1,d2.*
+# OBSOLETE .*and	127,d2.*
+# OBSOLETE .*and	32767,d3.*
+# OBSOLETE .*and	32767,psw.*
+# OBSOLETE .*or	d1,d2.*
+# OBSOLETE .*or	127,d2.*
+# OBSOLETE .*or	32767,d3.*
+# OBSOLETE .*or	32767,psw.*
+# OBSOLETE .*xor	d1,d2.*
+# OBSOLETE .*xor	32767,d3.*
+# OBSOLETE .*not	d3.*
+# OBSOLETE .*$gdb_prompt $" { pass "logical tests" }
+# OBSOLETE 	-re "$gdb_prompt $" { fail "logical tests" }
+# OBSOLETE 	timeout { fail "(timeout) logical tests" }
+# OBSOLETE     }
+# OBSOLETE }
+# OBSOLETE 
+# OBSOLETE proc mov_tests_1 { } {
+# OBSOLETE     global gdb_prompt
+# OBSOLETE     global hex
+# OBSOLETE     global decimal
+# OBSOLETE 
+# OBSOLETE     send_gdb "x/12i mov_tests_1\n"
+# OBSOLETE     gdb_expect {
+# OBSOLETE 	-re "
+# OBSOLETE .*mov	d1,a2.*
+# OBSOLETE .*mov	a2,d1.*
+# OBSOLETE .*mov	d1,d2.*
+# OBSOLETE .*mov	a2,a1.*
+# OBSOLETE .*mov	psw,d3.*
+# OBSOLETE .*mov	d2,psw.*
+# OBSOLETE .*mov	mdr,d1.*
+# OBSOLETE .*mov	d2,mdr.*
+# OBSOLETE .*mov	\\(a2\\),d1.*
+# OBSOLETE .*mov	\\(8,a2\\),d1.*
+# OBSOLETE .*mov	\\(256,a2\\),d1.*
+# OBSOLETE .*mov	\\(131071,a2\\),d1.*
+# OBSOLETE .*$gdb_prompt $" { pass "mov1 tests" }
+# OBSOLETE 	-re "$gdb_prompt $" { fail "mov1 tests" }
+# OBSOLETE 	timeout { fail "(timeout) mov1 tests" }
+# OBSOLETE     }
+# OBSOLETE }
+# OBSOLETE 
+# OBSOLETE proc mov_tests_2 { } {
+# OBSOLETE     global gdb_prompt
+# OBSOLETE     global hex
+# OBSOLETE     global decimal
+# OBSOLETE 
+# OBSOLETE     send_gdb "x/9 mov_tests_2\n"
+# OBSOLETE     gdb_expect {
+# OBSOLETE 	-re "
+# OBSOLETE .*mov	\\(d1,a1\\),d2.*
+# OBSOLETE .*mov	\\(0x8000.*\\),d1.*
+# OBSOLETE .*mov	\\(0x1ffff.*\\),d1.*
+# OBSOLETE .*mov	\\(8,a2\\),a1.*
+# OBSOLETE .*mov	\\(256,a2\\),a1.*
+# OBSOLETE .*mov	\\(131071,a2\\),a1.*
+# OBSOLETE .*mov	\\(d1,a1\\),a2.*
+# OBSOLETE .*mov	\\(0x8000.*\\),a1.*
+# OBSOLETE .*mov	\\(0x1ffff.*\\),a1.*
+# OBSOLETE .*$gdb_prompt $" { pass "mov2 tests" }
+# OBSOLETE 	-re "$gdb_prompt $" { fail "mov2 tests" }
+# OBSOLETE 	timeout { fail "(timeout) mov2 tests" }
+# OBSOLETE     }
+# OBSOLETE }
+# OBSOLETE 
+# OBSOLETE proc mov_tests_3 { } {
+# OBSOLETE     global gdb_prompt
+# OBSOLETE     global hex
+# OBSOLETE     global decimal
+# OBSOLETE 
+# OBSOLETE     send_gdb "x/10 mov_tests_3\n"
+# OBSOLETE     gdb_expect {
+# OBSOLETE 	-re "
+# OBSOLETE .*mov	d1,\\(a2\\).*
+# OBSOLETE .*mov	d1,\\(32,a2\\).*
+# OBSOLETE .*mov	d1,\\(256,a2\\).*
+# OBSOLETE .*mov	d1,\\(131071,a2\\).*
+# OBSOLETE .*mov	d1,\\(d2,a2\\).*
+# OBSOLETE .*mov	d1,\\(0x80.*\\).*
+# OBSOLETE .*mov	d1,\\(0x1ffff.*\\).*
+# OBSOLETE .*mov	a1,\\(32,a2\\).*
+# OBSOLETE .*mov	a1,\\(256,a2\\).*
+# OBSOLETE .*mov	a1,\\(131071,a2\\).*
+# OBSOLETE .*$gdb_prompt $" { pass "mov3 tests" }
+# OBSOLETE 	-re "$gdb_prompt $" { fail "mov3 tests" }
+# OBSOLETE 	timeout { fail "(timeout) mov3 tests" }
+# OBSOLETE     }
+# OBSOLETE }
+# OBSOLETE 
+# OBSOLETE proc mov_tests_4 { } {
+# OBSOLETE     global gdb_prompt
+# OBSOLETE     global hex
+# OBSOLETE     global decimal
+# OBSOLETE 
+# OBSOLETE     send_gdb "x/8 mov_tests_4\n"
+# OBSOLETE     gdb_expect {
+# OBSOLETE 	-re "
+# OBSOLETE .*mov	a1,\\(d2,a2\\).*
+# OBSOLETE .*mov	a1,\\(0x80.*\\).*
+# OBSOLETE .*mov	a1,\\(0x1ffff.*\\).*
+# OBSOLETE .*mov	8,d1.*
+# OBSOLETE .*mov	256,d1.*
+# OBSOLETE .*mov	131071,d1.*
+# OBSOLETE .*mov	256,a1.*
+# OBSOLETE .*mov	131071,a1.*
+# OBSOLETE .*$gdb_prompt $" { pass "mov4 tests" }
+# OBSOLETE 	-re "$gdb_prompt $" { fail "mov4 tests" }
+# OBSOLETE 	timeout { fail "(timeout) mov4 tests" }
+# OBSOLETE     }
+# OBSOLETE }
+# OBSOLETE 
+# OBSOLETE proc movb_tests { } {
+# OBSOLETE     global gdb_prompt
+# OBSOLETE     global hex
+# OBSOLETE     global decimal
+# OBSOLETE 
+# OBSOLETE     send_gdb "x/12 movb_tests\n"
+# OBSOLETE     gdb_expect {
+# OBSOLETE 	-re "
+# OBSOLETE .*movb	\\(8,a2\\),d1.*
+# OBSOLETE .*movb	\\(256,a2\\),d1.*
+# OBSOLETE .*movb	\\(131071,a2\\),d1.*
+# OBSOLETE .*movb	\\(d2,a2\\),d3.*
+# OBSOLETE .*movb	\\(0x1ffff.*\\),d2.*
+# OBSOLETE .*movb	d1,\\(a2\\).*
+# OBSOLETE .*movb	d1,\\(8,a2\\).*
+# OBSOLETE .*movb	d1,\\(256,a2\\).*
+# OBSOLETE .*movb	d1,\\(131071,a2\\).*
+# OBSOLETE .*movb	d1,\\(d2,a2\\).*
+# OBSOLETE .*movb	d1,\\(0x100.*\\).*
+# OBSOLETE .*movb	d1,\\(0x1ffff.*\\).*
+# OBSOLETE .*$gdb_prompt $" { pass "movb tests" }
+# OBSOLETE 	-re "$gdb_prompt $" { fail "movb tests" }
+# OBSOLETE 	timeout { fail "(timeout) movb tests" }
+# OBSOLETE     }
+# OBSOLETE }
+# OBSOLETE 
+# OBSOLETE proc movbu_tests { } {
+# OBSOLETE     global gdb_prompt
+# OBSOLETE     global hex
+# OBSOLETE     global decimal
+# OBSOLETE 
+# OBSOLETE     send_gdb "x/7 movbu_tests\n"
+# OBSOLETE     gdb_expect {
+# OBSOLETE 	-re "
+# OBSOLETE .*movbu	\\(a2\\),d1.*
+# OBSOLETE .*movbu	\\(8,a2\\),d1.*
+# OBSOLETE .*movbu	\\(256,a2\\),d1.*
+# OBSOLETE .*movbu	\\(131071,a2\\),d1.*
+# OBSOLETE .*movbu	\\(d1,a1\\),d2.*
+# OBSOLETE .*movbu	\\(0x8000.*\\),d1.*
+# OBSOLETE .*movbu	\\(0x1ffff.*\\),d1.*
+# OBSOLETE .*$gdb_prompt $" { pass "movbu tests" }
+# OBSOLETE 	-re "$gdb_prompt $" { fail "movbu tests" }
+# OBSOLETE 	timeout { fail "(timeout) movbu tests" }
+# OBSOLETE     }
+# OBSOLETE }
+# OBSOLETE 
+# OBSOLETE proc movx_tests { } {
+# OBSOLETE     global gdb_prompt
+# OBSOLETE     global hex
+# OBSOLETE     global decimal
+# OBSOLETE 
+# OBSOLETE     send_gdb "x/6 movx_tests\n"
+# OBSOLETE     gdb_expect {
+# OBSOLETE 	-re "
+# OBSOLETE .*movx	\\(8,a2\\),d1.*
+# OBSOLETE .*movx	\\(256,a2\\),d1.*
+# OBSOLETE .*movx	\\(131071,a2\\),d1.*
+# OBSOLETE .*movx	d1,\\(8,a2\\).*
+# OBSOLETE .*movx	d1,\\(256,a2\\).*
+# OBSOLETE .*movx	d1,\\(131071,a2\\).*
+# OBSOLETE .*$gdb_prompt $" { pass "movx tests" }
+# OBSOLETE 	-re "$gdb_prompt $" { fail "movx tests" }
+# OBSOLETE 	timeout { fail "(timeout) movx tests" }
+# OBSOLETE     }
+# OBSOLETE }
+# OBSOLETE 
+# OBSOLETE proc muldiv_tests { } {
+# OBSOLETE     global gdb_prompt
+# OBSOLETE     global hex
+# OBSOLETE     global decimal
+# OBSOLETE 
+# OBSOLETE     send_gdb "x/3 muldiv_tests\n"
+# OBSOLETE     gdb_expect {
+# OBSOLETE 	-re "
+# OBSOLETE .*mul	d1,d2.*
+# OBSOLETE .*mulu	d2,d3.*
+# OBSOLETE .*divu	d3,d2.*
+# OBSOLETE .*$gdb_prompt $" { pass "muldiv tests" }
+# OBSOLETE 	-re "$gdb_prompt $" { fail "muldiv tests" }
+# OBSOLETE 	timeout { fail "(timeout) muldiv tests" }
+# OBSOLETE     }
+# OBSOLETE }
+# OBSOLETE 
+# OBSOLETE proc misc_tests { } {
+# OBSOLETE     global gdb_prompt
+# OBSOLETE     global hex
+# OBSOLETE     global decimal
+# OBSOLETE 
+# OBSOLETE     send_gdb "x/9 misc_tests\n"
+# OBSOLETE     gdb_expect {
+# OBSOLETE 	-re "
+# OBSOLETE .*jmp	0x\[0-9a-f]+ <main>.*
+# OBSOLETE .*jmp	0x\[0-9a-f]+ <start>.*
+# OBSOLETE .*jmp	\\(a2\\).*
+# OBSOLETE .*jsr	0x\[0-9a-f]+ <main>.*
+# OBSOLETE .*jsr	0x\[0-9a-f]+ <start>.*
+# OBSOLETE .*jsr	\\(a2\\).*
+# OBSOLETE .*rts.*
+# OBSOLETE .*rti.*
+# OBSOLETE .*nop.*
+# OBSOLETE .*$gdb_prompt $" { pass "misc tests" }
+# OBSOLETE 	-re "$gdb_prompt $" { fail "misc tests" }
+# OBSOLETE 	timeout { fail "(timeout) misc tests" }
+# OBSOLETE     }
+# OBSOLETE }
+# OBSOLETE 
+# OBSOLETE proc shift_tests { } {
+# OBSOLETE     global gdb_prompt
+# OBSOLETE     global hex
+# OBSOLETE     global decimal
+# OBSOLETE 
+# OBSOLETE     send_gdb "x/4i shift_tests\n"
+# OBSOLETE     gdb_expect {
+# OBSOLETE 	-re "
+# OBSOLETE .*asr	d2.*
+# OBSOLETE .*lsr	d3.*
+# OBSOLETE .*ror	d1.*
+# OBSOLETE .*rol	d2.*
+# OBSOLETE .*$gdb_prompt $" { pass "shift tests" }
+# OBSOLETE 	-re "$gdb_prompt $" { fail "shift tests" }
+# OBSOLETE 	timeout { fail "(timeout) shift tests" }
+# OBSOLETE     }
+# OBSOLETE }
+# OBSOLETE 
+# OBSOLETE proc sub_tests { } {
+# OBSOLETE     global gdb_prompt
+# OBSOLETE     global hex
+# OBSOLETE     global decimal
+# OBSOLETE 
+# OBSOLETE     send_gdb "x/9i sub_tests\n"
+# OBSOLETE     gdb_expect {
+# OBSOLETE 	-re "
+# OBSOLETE .*sub	d1,d2.*
+# OBSOLETE .*sub	d2,a3.*
+# OBSOLETE .*sub	a3,d3.*
+# OBSOLETE .*sub	a3,a2.*
+# OBSOLETE .*sub	32767,d2.*
+# OBSOLETE .*sub	131071,d2.*
+# OBSOLETE .*sub	32767,a2.*
+# OBSOLETE .*sub	131071,a2.*
+# OBSOLETE .*subc	d1,d2.*
+# OBSOLETE .*$gdb_prompt $" { pass "sub tests" }
+# OBSOLETE 	-re "$gdb_prompt $" { fail "sub tests" }
+# OBSOLETE 	timeout { fail "(timeout) sub tests" }
+# OBSOLETE     }
+# OBSOLETE }
+# OBSOLETE 
+# OBSOLETE # Start with a fresh gdb.
+# OBSOLETE 
+# OBSOLETE gdb_exit
+# OBSOLETE gdb_start
+# OBSOLETE gdb_reinitialize_dir $srcdir/$subdir
+# OBSOLETE gdb_load $binfile
+# OBSOLETE 
+# OBSOLETE add_tests
+# OBSOLETE bcc_tests
+# OBSOLETE bccx_tests
+# OBSOLETE bit_tests
+# OBSOLETE cmp_tests
+# OBSOLETE extend_tests
+# OBSOLETE logical_tests
+# OBSOLETE mov_tests_1
+# OBSOLETE mov_tests_2
+# OBSOLETE mov_tests_3
+# OBSOLETE mov_tests_4
+# OBSOLETE movb_tests
+# OBSOLETE movbu_tests
+# OBSOLETE movx_tests
+# OBSOLETE muldiv_tests
+# OBSOLETE misc_tests
+# OBSOLETE shift_tests
+# OBSOLETE sub_tests
Index: testsuite/gdb.trace/Makefile.in
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.trace/Makefile.in,v
retrieving revision 1.2
diff -u -r1.2 Makefile.in
--- testsuite/gdb.trace/Makefile.in	9 Jan 2003 18:50:28 -0000	1.2
+++ testsuite/gdb.trace/Makefile.in	29 Jan 2003 18:43:37 -0000
@@ -8,7 +8,7 @@
 
 clean mostlyclean:
 	-rm -f actions circ collection limits
-	-rm -f *.o *.diff *~ *.bad core sh3 hppa mn10200 mn10300
+	-rm -f *.o *.diff *~ *.bad core sh3 hppa mn10300
 
 distclean maintainer-clean realclean: clean
 	-rm -f Makefile config.status config.log

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]