/* Target-dependent code for Mitsubishi D30V, for GDB.
- Copyright (C) 1996, 1997, 2000 Free Software Foundation, Inc.
+ Copyright 1996, 1997, 1998, 1999, 2000, 2001
+ Free Software Foundation, Inc.
This file is part of GDB.
#include "dis-asm.h"
#include "symfile.h"
#include "objfiles.h"
+#include "regcache.h"
#include "language.h" /* For local_hex_string() */
int
-d30v_frame_chain_valid (chain, fi)
- CORE_ADDR chain;
- struct frame_info *fi; /* not used here */
+d30v_frame_chain_valid (CORE_ADDR chain, struct frame_info *fi)
{
#if 0
return ((chain) != 0 && (fi) != 0 && (fi)->return_pc != 0);
CORE_ADDR
d30v_fix_call_dummy (char *dummyname, CORE_ADDR start_sp, CORE_ADDR fun,
- int nargs, value_ptr *args, struct type *type, int gcc_p)
+ int nargs, struct value **args,
+ struct type *type, int gcc_p)
{
int regnum;
CORE_ADDR sp;
CORE_ADDR
-d30v_push_arguments (int nargs, value_ptr *args, CORE_ADDR sp,
+d30v_push_arguments (int nargs, struct value **args, CORE_ADDR sp,
int struct_return, CORE_ADDR struct_addr)
{
int i, len, index = 0, regnum = 2;
/* Pass 1. Put all large args on stack */
for (i = 0; i < nargs; i++)
{
- value_ptr arg = args[i];
+ struct value *arg = args[i];
struct type *arg_type = check_typedef (VALUE_TYPE (arg));
len = TYPE_LENGTH (arg_type);
contents = VALUE_CONTENTS (arg);
for (i = 0; i < nargs; i++)
{
- value_ptr arg = args[i];
+ struct value *arg = args[i];
struct type *arg_type = check_typedef (VALUE_TYPE (arg));
len = TYPE_LENGTH (arg_type);
contents = VALUE_CONTENTS (arg);
extract and copy its value into `valbuf'. */
void
-d30v_extract_return_value (valtype, regbuf, valbuf)
- struct type *valtype;
- char regbuf[REGISTER_BYTES];
- char *valbuf;
+d30v_extract_return_value (struct type *valtype, char regbuf[REGISTER_BYTES],
+ char *valbuf)
{
memcpy (valbuf, regbuf + REGISTER_BYTE (2), TYPE_LENGTH (valtype));
}
{
/* If there's no disassembler, something is very wrong. */
if (tm_print_insn == NULL)
- internal_error ("print_insn: no disassembler");
+ internal_error (__FILE__, __LINE__,
+ "print_insn: no disassembler");
- if (TARGET_BYTE_ORDER == BIG_ENDIAN)
+ if (TARGET_BYTE_ORDER == BFD_ENDIAN_BIG)
tm_print_insn_info.endian = BFD_ENDIAN_BIG;
else
tm_print_insn_info.endian = BFD_ENDIAN_LITTLE;
- return (*tm_print_insn) (memaddr, &tm_print_insn_info);
+ return TARGET_PRINT_INSN (memaddr, &tm_print_insn_info);
}
void
oldsize = trace_data.size;
trace_data.size += count;
- free (tmpspace);
+ xfree (tmpspace);
if (trace_display)
display_trace (oldsize, trace_data.size);