2004-01-17 Andrew Cagney <cagney@redhat.com>
* x86-64-tdep.c (x86_64_init_abi): No need to clear extract_struct_value_address, i386 does not set it. * sparc64-tdep.c (sparc64_init_abi): Do not set extract_struct_value_address, never called. (sparc64_extract_struct_value_address): Delete function. * m68hc11-tdep.c: Update copyright. (m68hc11_gdbarch_init): Delete redundant assignment of extract_struct_value_address. * i386-tdep.c: Update copyright. (i386_gdbarch_init): Do not set extract_struct_value_address, never called. (i386_extract_struct_value_address): Delete function. * sparc-tdep.c (sparc32_gdbarch_init): Do not set extract_struct_value_address, never called. (sparc32_extract_struct_value_address): #if 0 function.
This commit is contained in:
parent
756fe439bb
commit
931aecf5ee
6 changed files with 38 additions and 38 deletions
|
@ -1,3 +1,22 @@
|
||||||
|
2004-01-17 Andrew Cagney <cagney@redhat.com>
|
||||||
|
|
||||||
|
* x86-64-tdep.c (x86_64_init_abi): No need to clear
|
||||||
|
extract_struct_value_address, i386 does not set it.
|
||||||
|
* sparc64-tdep.c (sparc64_init_abi): Do not set
|
||||||
|
extract_struct_value_address, never called.
|
||||||
|
(sparc64_extract_struct_value_address): Delete function.
|
||||||
|
* m68hc11-tdep.c: Update copyright.
|
||||||
|
(m68hc11_gdbarch_init): Delete redundant assignment of
|
||||||
|
extract_struct_value_address.
|
||||||
|
* i386-tdep.c: Update copyright.
|
||||||
|
(i386_gdbarch_init): Do not set extract_struct_value_address,
|
||||||
|
never called.
|
||||||
|
(i386_extract_struct_value_address): Delete function.
|
||||||
|
* sparc-tdep.c (sparc32_gdbarch_init): Do not set
|
||||||
|
extract_struct_value_address, never called.
|
||||||
|
(sparc32_extract_struct_value_address): #if 0 function. Add
|
||||||
|
comments explaining its future.
|
||||||
|
|
||||||
2004-01-17 Daniel Jacobowitz <drow@mvista.com>
|
2004-01-17 Daniel Jacobowitz <drow@mvista.com>
|
||||||
|
|
||||||
* arm-tdep.c (arm_write_pc): New function.
|
* arm-tdep.c (arm_write_pc): New function.
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
/* Intel 386 target-dependent stuff.
|
/* Intel 386 target-dependent stuff.
|
||||||
|
|
||||||
Copyright 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996,
|
Copyright 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996,
|
||||||
1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
|
1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software
|
||||||
|
Foundation, Inc.
|
||||||
|
|
||||||
This file is part of GDB.
|
This file is part of GDB.
|
||||||
|
|
||||||
|
@ -1274,19 +1275,6 @@ i386_store_return_value (struct gdbarch *gdbarch, struct type *type,
|
||||||
|
|
||||||
#undef I387_ST0_REGNUM
|
#undef I387_ST0_REGNUM
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Extract from REGCACHE, which contains the (raw) register state, the
|
|
||||||
address in which a function should return its structure value, as a
|
|
||||||
CORE_ADDR. */
|
|
||||||
|
|
||||||
static CORE_ADDR
|
|
||||||
i386_extract_struct_value_address (struct regcache *regcache)
|
|
||||||
{
|
|
||||||
char buf[4];
|
|
||||||
|
|
||||||
regcache_cooked_read (regcache, I386_EAX_REGNUM, buf);
|
|
||||||
return extract_unsigned_integer (buf, 4);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* This is the variable that is set with "set struct-convention", and
|
/* This is the variable that is set with "set struct-convention", and
|
||||||
|
@ -1995,8 +1983,6 @@ i386_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
|
||||||
set_gdbarch_value_to_register (gdbarch, i386_value_to_register);
|
set_gdbarch_value_to_register (gdbarch, i386_value_to_register);
|
||||||
|
|
||||||
set_gdbarch_return_value (gdbarch, i386_return_value);
|
set_gdbarch_return_value (gdbarch, i386_return_value);
|
||||||
set_gdbarch_extract_struct_value_address (gdbarch,
|
|
||||||
i386_extract_struct_value_address);
|
|
||||||
|
|
||||||
set_gdbarch_skip_prologue (gdbarch, i386_skip_prologue);
|
set_gdbarch_skip_prologue (gdbarch, i386_skip_prologue);
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,8 @@
|
||||||
/* Target-dependent code for Motorola 68HC11 & 68HC12
|
/* Target-dependent code for Motorola 68HC11 & 68HC12
|
||||||
Copyright 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
|
|
||||||
|
Copyright 1999, 2000, 2001, 2002, 2003, 2004 Free Software
|
||||||
|
Foundation, Inc.
|
||||||
|
|
||||||
Contributed by Stephane Carrez, stcarrez@nerim.fr
|
Contributed by Stephane Carrez, stcarrez@nerim.fr
|
||||||
|
|
||||||
This file is part of GDB.
|
This file is part of GDB.
|
||||||
|
@ -1549,8 +1552,6 @@ m68hc11_gdbarch_init (struct gdbarch_info info,
|
||||||
set_gdbarch_return_value_on_stack (gdbarch, m68hc11_return_value_on_stack);
|
set_gdbarch_return_value_on_stack (gdbarch, m68hc11_return_value_on_stack);
|
||||||
|
|
||||||
set_gdbarch_store_return_value (gdbarch, m68hc11_store_return_value);
|
set_gdbarch_store_return_value (gdbarch, m68hc11_store_return_value);
|
||||||
set_gdbarch_extract_struct_value_address (gdbarch, m68hc11_extract_struct_value_address);
|
|
||||||
|
|
||||||
set_gdbarch_store_return_value (gdbarch, m68hc11_store_return_value);
|
set_gdbarch_store_return_value (gdbarch, m68hc11_store_return_value);
|
||||||
set_gdbarch_extract_struct_value_address (gdbarch, m68hc11_extract_struct_value_address);
|
set_gdbarch_extract_struct_value_address (gdbarch, m68hc11_extract_struct_value_address);
|
||||||
set_gdbarch_use_struct_convention (gdbarch, m68hc11_use_struct_convention);
|
set_gdbarch_use_struct_convention (gdbarch, m68hc11_use_struct_convention);
|
||||||
|
|
|
@ -834,6 +834,18 @@ sparc32_return_value (struct gdbarch *gdbarch, struct type *type,
|
||||||
return RETURN_VALUE_REGISTER_CONVENTION;
|
return RETURN_VALUE_REGISTER_CONVENTION;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
/* NOTE: cagney/2004-01-17: For the moment disable this method. The
|
||||||
|
architecture and CORE-gdb will need new code (and a replacement for
|
||||||
|
EXTRACT_STRUCT_VALUE_ADDRESS) before this can be made to work
|
||||||
|
robustly. Here is a possible function signature: */
|
||||||
|
/* NOTE: cagney/2004-01-17: So far only the 32-bit SPARC ABI has been
|
||||||
|
identifed as having a way to robustly recover the address of a
|
||||||
|
struct-convention return-value (after the function has returned).
|
||||||
|
For all other ABIs so far examined, the calling convention makes no
|
||||||
|
guarenteed that the register containing the return-value will be
|
||||||
|
preserved and hence that the return-value's address can be
|
||||||
|
recovered. */
|
||||||
/* Extract from REGCACHE, which contains the (raw) register state, the
|
/* Extract from REGCACHE, which contains the (raw) register state, the
|
||||||
address in which a function should return its structure value, as a
|
address in which a function should return its structure value, as a
|
||||||
CORE_ADDR. */
|
CORE_ADDR. */
|
||||||
|
@ -846,6 +858,7 @@ sparc32_extract_struct_value_address (struct regcache *regcache)
|
||||||
regcache_cooked_read_unsigned (regcache, SPARC_SP_REGNUM, &sp);
|
regcache_cooked_read_unsigned (regcache, SPARC_SP_REGNUM, &sp);
|
||||||
return read_memory_unsigned_integer (sp + 64, 4);
|
return read_memory_unsigned_integer (sp + 64, 4);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
static int
|
static int
|
||||||
sparc32_stabs_argument_has_addr (struct gdbarch *gdbarch, struct type *type)
|
sparc32_stabs_argument_has_addr (struct gdbarch *gdbarch, struct type *type)
|
||||||
|
@ -1069,8 +1082,6 @@ sparc32_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
|
||||||
set_gdbarch_push_dummy_call (gdbarch, sparc32_push_dummy_call);
|
set_gdbarch_push_dummy_call (gdbarch, sparc32_push_dummy_call);
|
||||||
|
|
||||||
set_gdbarch_return_value (gdbarch, sparc32_return_value);
|
set_gdbarch_return_value (gdbarch, sparc32_return_value);
|
||||||
set_gdbarch_extract_struct_value_address
|
|
||||||
(gdbarch, sparc32_extract_struct_value_address);
|
|
||||||
set_gdbarch_stabs_argument_has_addr
|
set_gdbarch_stabs_argument_has_addr
|
||||||
(gdbarch, sparc32_stabs_argument_has_addr);
|
(gdbarch, sparc32_stabs_argument_has_addr);
|
||||||
|
|
||||||
|
|
|
@ -1086,19 +1086,6 @@ sparc64_return_value (struct gdbarch *gdbarch, struct type *type,
|
||||||
|
|
||||||
return RETURN_VALUE_REGISTER_CONVENTION;
|
return RETURN_VALUE_REGISTER_CONVENTION;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Extract from REGCACHE, which contains the (raw) register state, the
|
|
||||||
address in which a function should return its structure value, as a
|
|
||||||
CORE_ADDR. */
|
|
||||||
|
|
||||||
static CORE_ADDR
|
|
||||||
sparc64_extract_struct_value_address (struct regcache *regcache)
|
|
||||||
{
|
|
||||||
ULONGEST addr;
|
|
||||||
|
|
||||||
regcache_cooked_read_unsigned (regcache, SPARC_O0_REGNUM, &addr);
|
|
||||||
return addr;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -1130,8 +1117,6 @@ sparc64_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
|
||||||
set_gdbarch_push_dummy_call (gdbarch, sparc64_push_dummy_call);
|
set_gdbarch_push_dummy_call (gdbarch, sparc64_push_dummy_call);
|
||||||
|
|
||||||
set_gdbarch_return_value (gdbarch, sparc64_return_value);
|
set_gdbarch_return_value (gdbarch, sparc64_return_value);
|
||||||
set_gdbarch_extract_struct_value_address
|
|
||||||
(gdbarch, sparc64_extract_struct_value_address);
|
|
||||||
set_gdbarch_stabs_argument_has_addr
|
set_gdbarch_stabs_argument_has_addr
|
||||||
(gdbarch, default_stabs_argument_has_addr);
|
(gdbarch, default_stabs_argument_has_addr);
|
||||||
|
|
||||||
|
|
|
@ -1109,8 +1109,6 @@ x86_64_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
|
||||||
set_gdbarch_value_to_register (gdbarch, i387_value_to_register);
|
set_gdbarch_value_to_register (gdbarch, i387_value_to_register);
|
||||||
|
|
||||||
set_gdbarch_return_value (gdbarch, amd64_return_value);
|
set_gdbarch_return_value (gdbarch, amd64_return_value);
|
||||||
/* Override, since this is handled by amd64_extract_return_value. */
|
|
||||||
set_gdbarch_extract_struct_value_address (gdbarch, NULL);
|
|
||||||
|
|
||||||
set_gdbarch_skip_prologue (gdbarch, amd64_skip_prologue);
|
set_gdbarch_skip_prologue (gdbarch, amd64_skip_prologue);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue