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:
Andrew Cagney 2004-01-17 22:45:44 +00:00
parent 756fe439bb
commit 931aecf5ee
6 changed files with 38 additions and 38 deletions

View file

@ -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.

View file

@ -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);

View file

@ -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);

View file

@ -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);

View file

@ -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);

View file

@ -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);