OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [gdb-5.0/] [gdb/] [arch-utils.c] - Diff between revs 105 and 1765

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 105 Rev 1765
/* Dynamic architecture support for GDB, the GNU debugger.
/* Dynamic architecture support for GDB, the GNU debugger.
   Copyright 1998-1999, Free Software Foundation, Inc.
   Copyright 1998-1999, Free Software Foundation, Inc.
 
 
   This file is part of GDB.
   This file is part of GDB.
 
 
   This program is free software; you can redistribute it and/or modify
   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
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 2 of the License, or
   the Free Software Foundation; either version 2 of the License, or
   (at your option) any later version.
   (at your option) any later version.
 
 
   This program is distributed in the hope that it will be useful,
   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.
   GNU General Public License for more details.
 
 
   You should have received a copy of the GNU General Public License
   You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software
   along with this program; if not, write to the Free Software
   Foundation, Inc., 59 Temple Place - Suite 330,
   Foundation, Inc., 59 Temple Place - Suite 330,
   Boston, MA 02111-1307, USA.  */
   Boston, MA 02111-1307, USA.  */
 
 
#include "defs.h"
#include "defs.h"
 
 
#if GDB_MULTI_ARCH
#if GDB_MULTI_ARCH
#include "gdbcmd.h"
#include "gdbcmd.h"
#include "inferior.h"           /* enum CALL_DUMMY_LOCATION et.al. */
#include "inferior.h"           /* enum CALL_DUMMY_LOCATION et.al. */
#else
#else
/* Just include everything in sight so that the every old definition
/* Just include everything in sight so that the every old definition
   of macro is visible. */
   of macro is visible. */
#include "gdb_string.h"
#include "gdb_string.h"
#include <ctype.h>
#include <ctype.h>
#include "symtab.h"
#include "symtab.h"
#include "frame.h"
#include "frame.h"
#include "inferior.h"
#include "inferior.h"
#include "breakpoint.h"
#include "breakpoint.h"
#include "gdb_wait.h"
#include "gdb_wait.h"
#include "gdbcore.h"
#include "gdbcore.h"
#include "gdbcmd.h"
#include "gdbcmd.h"
#include "target.h"
#include "target.h"
#include "gdbthread.h"
#include "gdbthread.h"
#include "annotate.h"
#include "annotate.h"
#include "symfile.h"            /* for overlay functions */
#include "symfile.h"            /* for overlay functions */
#endif
#endif
 
 
/* Convenience macro for allocting typesafe memory. */
/* Convenience macro for allocting typesafe memory. */
 
 
#ifndef XMALLOC
#ifndef XMALLOC
#define XMALLOC(TYPE) (TYPE*) xmalloc (sizeof (TYPE))
#define XMALLOC(TYPE) (TYPE*) xmalloc (sizeof (TYPE))
#endif
#endif
 
 
 
 
/* Use the program counter to determine the contents and size
/* Use the program counter to determine the contents and size
   of a breakpoint instruction.  If no target-dependent macro
   of a breakpoint instruction.  If no target-dependent macro
   BREAKPOINT_FROM_PC has been defined to implement this function,
   BREAKPOINT_FROM_PC has been defined to implement this function,
   assume that the breakpoint doesn't depend on the PC, and
   assume that the breakpoint doesn't depend on the PC, and
   use the values of the BIG_BREAKPOINT and LITTLE_BREAKPOINT macros.
   use the values of the BIG_BREAKPOINT and LITTLE_BREAKPOINT macros.
   Return a pointer to a string of bytes that encode a breakpoint
   Return a pointer to a string of bytes that encode a breakpoint
   instruction, stores the length of the string to *lenptr,
   instruction, stores the length of the string to *lenptr,
   and optionally adjust the pc to point to the correct memory location
   and optionally adjust the pc to point to the correct memory location
   for inserting the breakpoint.  */
   for inserting the breakpoint.  */
 
 
unsigned char *
unsigned char *
legacy_breakpoint_from_pc (CORE_ADDR * pcptr, int *lenptr)
legacy_breakpoint_from_pc (CORE_ADDR * pcptr, int *lenptr)
{
{
  /* {BIG_,LITTLE_}BREAKPOINT is the sequence of bytes we insert for a
  /* {BIG_,LITTLE_}BREAKPOINT is the sequence of bytes we insert for a
     breakpoint.  On some machines, breakpoints are handled by the
     breakpoint.  On some machines, breakpoints are handled by the
     target environment and we don't have to worry about them here.  */
     target environment and we don't have to worry about them here.  */
#ifdef BIG_BREAKPOINT
#ifdef BIG_BREAKPOINT
  if (TARGET_BYTE_ORDER == BIG_ENDIAN)
  if (TARGET_BYTE_ORDER == BIG_ENDIAN)
    {
    {
      static unsigned char big_break_insn[] = BIG_BREAKPOINT;
      static unsigned char big_break_insn[] = BIG_BREAKPOINT;
      *lenptr = sizeof (big_break_insn);
      *lenptr = sizeof (big_break_insn);
      return big_break_insn;
      return big_break_insn;
    }
    }
#endif
#endif
#ifdef LITTLE_BREAKPOINT
#ifdef LITTLE_BREAKPOINT
  if (TARGET_BYTE_ORDER != BIG_ENDIAN)
  if (TARGET_BYTE_ORDER != BIG_ENDIAN)
    {
    {
      static unsigned char little_break_insn[] = LITTLE_BREAKPOINT;
      static unsigned char little_break_insn[] = LITTLE_BREAKPOINT;
      *lenptr = sizeof (little_break_insn);
      *lenptr = sizeof (little_break_insn);
      return little_break_insn;
      return little_break_insn;
    }
    }
#endif
#endif
#ifdef BREAKPOINT
#ifdef BREAKPOINT
  {
  {
    static unsigned char break_insn[] = BREAKPOINT;
    static unsigned char break_insn[] = BREAKPOINT;
    *lenptr = sizeof (break_insn);
    *lenptr = sizeof (break_insn);
    return break_insn;
    return break_insn;
  }
  }
#endif
#endif
  *lenptr = 0;
  *lenptr = 0;
  return NULL;
  return NULL;
}
}
 
 
int
int
generic_frameless_function_invocation_not (struct frame_info *fi)
generic_frameless_function_invocation_not (struct frame_info *fi)
{
{
  return 0;
  return 0;
}
}
 
 
char *
char *
legacy_register_name (int i)
legacy_register_name (int i)
{
{
#ifdef REGISTER_NAMES
#ifdef REGISTER_NAMES
  static char *names[] = REGISTER_NAMES;
  static char *names[] = REGISTER_NAMES;
  if (i < 0 || i >= (sizeof (names) / sizeof (*names)))
  if (i < 0 || i >= (sizeof (names) / sizeof (*names)))
    return NULL;
    return NULL;
  else
  else
    return names[i];
    return names[i];
#else
#else
  internal_error ("legacy_register_name: called.");
  internal_error ("legacy_register_name: called.");
  return NULL;
  return NULL;
#endif
#endif
}
}
 
 
#if defined (CALL_DUMMY)
#if defined (CALL_DUMMY)
LONGEST legacy_call_dummy_words[] = CALL_DUMMY;
LONGEST legacy_call_dummy_words[] = CALL_DUMMY;
#else
#else
LONGEST legacy_call_dummy_words[1];
LONGEST legacy_call_dummy_words[1];
#endif
#endif
int legacy_sizeof_call_dummy_words = sizeof (legacy_call_dummy_words);
int legacy_sizeof_call_dummy_words = sizeof (legacy_call_dummy_words);
 
 
void
void
generic_remote_translate_xfer_address (CORE_ADDR gdb_addr, int gdb_len,
generic_remote_translate_xfer_address (CORE_ADDR gdb_addr, int gdb_len,
                                       CORE_ADDR * rem_addr, int *rem_len)
                                       CORE_ADDR * rem_addr, int *rem_len)
{
{
  *rem_addr = gdb_addr;
  *rem_addr = gdb_addr;
  *rem_len = gdb_len;
  *rem_len = gdb_len;
}
}
 
 
/* */
/* */
 
 
extern initialize_file_ftype __initialize_gdbarch_utils;
extern initialize_file_ftype __initialize_gdbarch_utils;
 
 
void
void
__initialize_gdbarch_utils (void)
__initialize_gdbarch_utils (void)
{
{
}
}
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.