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

Subversion Repositories or1k

[/] [or1k/] [trunk/] [gdb-5.0/] [gdb/] [config/] [m68k/] [tm-news.h] - Diff between revs 107 and 1765

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

Rev 107 Rev 1765
/* Parameters for execution on a Sony/NEWS, for GDB, the GNU debugger.
/* Parameters for execution on a Sony/NEWS, for GDB, the GNU debugger.
   Copyright 1987, 1989, 1991, 1993 Free Software Foundation, Inc.
   Copyright 1987, 1989, 1991, 1993 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.  */
 
 
/* See following cpu type determination macro to get the machine type.
/* See following cpu type determination macro to get the machine type.
 
 
   Here is an m-news.h file for gdb.  It supports the 68881 registers.
   Here is an m-news.h file for gdb.  It supports the 68881 registers.
   by hikichi@srava.sra.junet
   by hikichi@srava.sra.junet
 
 
   * Ptrace for handling floating register has a bug(before NEWS OS version 2.2),
   * Ptrace for handling floating register has a bug(before NEWS OS version 2.2),
   * After NEWS OS version 3.2, some of ptrace's bug is fixed.
   * After NEWS OS version 3.2, some of ptrace's bug is fixed.
   But we cannot change the floating register(see adb(1) in OS 3.2) yet.  */
   But we cannot change the floating register(see adb(1) in OS 3.2) yet.  */
 
 
/* Extract from an array REGBUF containing the (raw) register state
/* Extract from an array REGBUF containing the (raw) register state
   a function return value of type TYPE, and copy that, in virtual format,
   a function return value of type TYPE, and copy that, in virtual format,
   into VALBUF.  */
   into VALBUF.  */
 
 
/* when it return the floating value, use the FP0 in NEWS.  */
/* when it return the floating value, use the FP0 in NEWS.  */
#define EXTRACT_RETURN_VALUE(TYPE,REGBUF,VALBUF) \
#define EXTRACT_RETURN_VALUE(TYPE,REGBUF,VALBUF) \
  { if (TYPE_CODE (TYPE) == TYPE_CODE_FLT) \
  { if (TYPE_CODE (TYPE) == TYPE_CODE_FLT) \
      { \
      { \
        REGISTER_CONVERT_TO_VIRTUAL (FP0_REGNUM, TYPE, \
        REGISTER_CONVERT_TO_VIRTUAL (FP0_REGNUM, TYPE, \
                                     &REGBUF[REGISTER_BYTE (FP0_REGNUM)], \
                                     &REGBUF[REGISTER_BYTE (FP0_REGNUM)], \
                                     VALBUF); \
                                     VALBUF); \
      } \
      } \
    else \
    else \
      memcpy (VALBUF, REGBUF, TYPE_LENGTH (TYPE)); }
      memcpy (VALBUF, REGBUF, TYPE_LENGTH (TYPE)); }
 
 
/* Write into appropriate registers a function return value
/* Write into appropriate registers a function return value
   of type TYPE, given in virtual format.  */
   of type TYPE, given in virtual format.  */
 
 
/* when it return the floating value, use the FP0 in NEWS.  */
/* when it return the floating value, use the FP0 in NEWS.  */
#define STORE_RETURN_VALUE(TYPE,VALBUF) \
#define STORE_RETURN_VALUE(TYPE,VALBUF) \
  { if (TYPE_CODE (TYPE) == TYPE_CODE_FLT) \
  { if (TYPE_CODE (TYPE) == TYPE_CODE_FLT) \
      { \
      { \
        char raw_buf[REGISTER_RAW_SIZE (FP0_REGNUM)]; \
        char raw_buf[REGISTER_RAW_SIZE (FP0_REGNUM)]; \
        REGISTER_CONVERT_TO_RAW (TYPE, FP0_REGNUM, VALBUF, raw_buf); \
        REGISTER_CONVERT_TO_RAW (TYPE, FP0_REGNUM, VALBUF, raw_buf); \
        write_register_bytes (REGISTER_BYTE (FP0_REGNUM), \
        write_register_bytes (REGISTER_BYTE (FP0_REGNUM), \
                              raw_buf, REGISTER_RAW_SIZE (FP0_REGNUM)); \
                              raw_buf, REGISTER_RAW_SIZE (FP0_REGNUM)); \
      } \
      } \
    else \
    else \
      write_register_bytes (0, VALBUF, TYPE_LENGTH (TYPE)); }
      write_register_bytes (0, VALBUF, TYPE_LENGTH (TYPE)); }
 
 
/* Return number of args passed to a frame.
/* Return number of args passed to a frame.
   Can return -1, meaning no way to tell.  */
   Can return -1, meaning no way to tell.  */
 
 
extern int news_frame_num_args PARAMS ((struct frame_info * fi));
extern int news_frame_num_args PARAMS ((struct frame_info * fi));
#define FRAME_NUM_ARGS(fi) (news_frame_num_args ((fi)))
#define FRAME_NUM_ARGS(fi) (news_frame_num_args ((fi)))
 
 
#include "m68k/tm-m68k.h"
#include "m68k/tm-m68k.h"
 
 

powered by: WebSVN 2.1.0

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