Index: ChangeLog
2004-02-27 Andrew Cagney <cagney@redhat.com> * hppa-tdep.c (hppa_gdbarch_init): On 32-bit systems always "return_value" and "push_dummy_call". (hppa32_use_struct_convention): Delete unused function. (hppa32_store_return_value): Delete unused function. (hppa32_extract_return_value): Delete unused function. (hppa32_stack_align): Delete function.
This commit is contained in:
parent
e6a8a7d2ae
commit
fca7aa43b0
2 changed files with 36 additions and 115 deletions
|
@ -1,3 +1,12 @@
|
||||||
|
2004-02-27 Andrew Cagney <cagney@redhat.com>
|
||||||
|
|
||||||
|
* hppa-tdep.c (hppa_gdbarch_init): On 32-bit systems always
|
||||||
|
"return_value" and "push_dummy_call".
|
||||||
|
(hppa32_use_struct_convention): Delete unused function.
|
||||||
|
(hppa32_store_return_value): Delete unused function.
|
||||||
|
(hppa32_extract_return_value): Delete unused function.
|
||||||
|
(hppa32_stack_align): Delete function.
|
||||||
|
|
||||||
2004-02-27 Eli Zaretskii <eliz@elta.co.il>
|
2004-02-27 Eli Zaretskii <eliz@elta.co.il>
|
||||||
|
|
||||||
* coffread.c (enter_linenos): Don't let rawptr reference memory
|
* coffread.c (enter_linenos): Don't let rawptr reference memory
|
||||||
|
|
142
gdb/hppa-tdep.c
142
gdb/hppa-tdep.c
|
@ -183,7 +183,6 @@ int hppa_in_solib_call_trampoline (CORE_ADDR pc, char *name);
|
||||||
int hppa_in_solib_return_trampoline (CORE_ADDR pc, char *name);
|
int hppa_in_solib_return_trampoline (CORE_ADDR pc, char *name);
|
||||||
CORE_ADDR hppa_saved_pc_after_call (struct frame_info *frame);
|
CORE_ADDR hppa_saved_pc_after_call (struct frame_info *frame);
|
||||||
int hppa_inner_than (CORE_ADDR lhs, CORE_ADDR rhs);
|
int hppa_inner_than (CORE_ADDR lhs, CORE_ADDR rhs);
|
||||||
CORE_ADDR hppa32_stack_align (CORE_ADDR sp);
|
|
||||||
CORE_ADDR hppa64_stack_align (CORE_ADDR sp);
|
CORE_ADDR hppa64_stack_align (CORE_ADDR sp);
|
||||||
int hppa_pc_requires_run_before_use (CORE_ADDR pc);
|
int hppa_pc_requires_run_before_use (CORE_ADDR pc);
|
||||||
int hppa_instruction_nullified (void);
|
int hppa_instruction_nullified (void);
|
||||||
|
@ -192,13 +191,9 @@ int hppa_register_byte (int reg_nr);
|
||||||
struct type * hppa32_register_virtual_type (int reg_nr);
|
struct type * hppa32_register_virtual_type (int reg_nr);
|
||||||
struct type * hppa64_register_virtual_type (int reg_nr);
|
struct type * hppa64_register_virtual_type (int reg_nr);
|
||||||
void hppa_store_struct_return (CORE_ADDR addr, CORE_ADDR sp);
|
void hppa_store_struct_return (CORE_ADDR addr, CORE_ADDR sp);
|
||||||
void hppa32_extract_return_value (struct type *type, char *regbuf,
|
|
||||||
char *valbuf);
|
|
||||||
void hppa64_extract_return_value (struct type *type, char *regbuf,
|
void hppa64_extract_return_value (struct type *type, char *regbuf,
|
||||||
char *valbuf);
|
char *valbuf);
|
||||||
int hppa32_use_struct_convention (int gcc_p, struct type *type);
|
|
||||||
int hppa64_use_struct_convention (int gcc_p, struct type *type);
|
int hppa64_use_struct_convention (int gcc_p, struct type *type);
|
||||||
void hppa32_store_return_value (struct type *type, char *valbuf);
|
|
||||||
void hppa64_store_return_value (struct type *type, char *valbuf);
|
void hppa64_store_return_value (struct type *type, char *valbuf);
|
||||||
int hppa_cannot_store_register (int regnum);
|
int hppa_cannot_store_register (int regnum);
|
||||||
void hppa_init_extra_frame_info (int fromleaf, struct frame_info *frame);
|
void hppa_init_extra_frame_info (int fromleaf, struct frame_info *frame);
|
||||||
|
@ -240,14 +235,6 @@ extern int exception_catchpoints_are_fragile;
|
||||||
|
|
||||||
/* Should call_function allocate stack space for a struct return? */
|
/* Should call_function allocate stack space for a struct return? */
|
||||||
|
|
||||||
int
|
|
||||||
hppa32_use_struct_convention (int gcc_p, struct type *type)
|
|
||||||
{
|
|
||||||
return (TYPE_LENGTH (type) > 2 * DEPRECATED_REGISTER_SIZE);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Same as hppa32_use_struct_convention() for the PA64 ABI. */
|
|
||||||
|
|
||||||
int
|
int
|
||||||
hppa64_use_struct_convention (int gcc_p, struct type *type)
|
hppa64_use_struct_convention (int gcc_p, struct type *type)
|
||||||
{
|
{
|
||||||
|
@ -5446,30 +5433,6 @@ hppa_skip_permanent_breakpoint (void)
|
||||||
/* We can leave the tail's space the same, since there's no jump. */
|
/* We can leave the tail's space the same, since there's no jump. */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Copy the function value from VALBUF into the proper location
|
|
||||||
for a function return.
|
|
||||||
|
|
||||||
Called only in the context of the "return" command. */
|
|
||||||
|
|
||||||
void
|
|
||||||
hppa32_store_return_value (struct type *type, char *valbuf)
|
|
||||||
{
|
|
||||||
/* For software floating point, the return value goes into the
|
|
||||||
integer registers. But we do not have any flag to key this on,
|
|
||||||
so we always store the value into the integer registers.
|
|
||||||
|
|
||||||
If its a float value, then we also store it into the floating
|
|
||||||
point registers. */
|
|
||||||
deprecated_write_register_bytes (DEPRECATED_REGISTER_BYTE (28)
|
|
||||||
+ (TYPE_LENGTH (type) > 4
|
|
||||||
? (8 - TYPE_LENGTH (type))
|
|
||||||
: (4 - TYPE_LENGTH (type))),
|
|
||||||
valbuf, TYPE_LENGTH (type));
|
|
||||||
if (TYPE_CODE (type) == TYPE_CODE_FLT)
|
|
||||||
deprecated_write_register_bytes (DEPRECATED_REGISTER_BYTE (FP4_REGNUM),
|
|
||||||
valbuf, TYPE_LENGTH (type));
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Same as hppa32_store_return_value(), but for the PA64 ABI. */
|
/* Same as hppa32_store_return_value(), but for the PA64 ABI. */
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -5496,28 +5459,6 @@ hppa64_store_return_value (struct type *type, char *valbuf)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Copy the function's return value into VALBUF.
|
|
||||||
|
|
||||||
This function is called only in the context of "target function calls",
|
|
||||||
ie. when the debugger forces a function to be called in the child, and
|
|
||||||
when the debugger forces a fucntion to return prematurely via the
|
|
||||||
"return" command. */
|
|
||||||
|
|
||||||
void
|
|
||||||
hppa32_extract_return_value (struct type *type, char *regbuf, char *valbuf)
|
|
||||||
{
|
|
||||||
if (TYPE_CODE (type) == TYPE_CODE_FLT)
|
|
||||||
memcpy (valbuf, regbuf + DEPRECATED_REGISTER_BYTE (FP4_REGNUM), TYPE_LENGTH (type));
|
|
||||||
else
|
|
||||||
memcpy (valbuf,
|
|
||||||
(regbuf
|
|
||||||
+ DEPRECATED_REGISTER_BYTE (28)
|
|
||||||
+ (TYPE_LENGTH (type) > 4
|
|
||||||
? (8 - TYPE_LENGTH (type))
|
|
||||||
: (4 - TYPE_LENGTH (type)))),
|
|
||||||
TYPE_LENGTH (type));
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Same as hppa32_extract_return_value but for the PA64 ABI case. */
|
/* Same as hppa32_extract_return_value but for the PA64 ABI case. */
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -5563,15 +5504,6 @@ hppa_inner_than (CORE_ADDR lhs, CORE_ADDR rhs)
|
||||||
return (lhs > rhs);
|
return (lhs > rhs);
|
||||||
}
|
}
|
||||||
|
|
||||||
CORE_ADDR
|
|
||||||
hppa32_stack_align (CORE_ADDR sp)
|
|
||||||
{
|
|
||||||
/* elz: adjust the quantity to the next highest value which is
|
|
||||||
64-bit aligned. This is used in valops.c, when the sp is adjusted.
|
|
||||||
On hppa the sp must always be kept 64-bit aligned */
|
|
||||||
return ((sp % 8) ? (sp + 7) & -8 : sp);
|
|
||||||
}
|
|
||||||
|
|
||||||
CORE_ADDR
|
CORE_ADDR
|
||||||
hppa64_stack_align (CORE_ADDR sp)
|
hppa64_stack_align (CORE_ADDR sp)
|
||||||
{
|
{
|
||||||
|
@ -5844,74 +5776,54 @@ hppa_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
|
||||||
set_gdbarch_have_nonsteppable_watchpoint (gdbarch, 1);
|
set_gdbarch_have_nonsteppable_watchpoint (gdbarch, 1);
|
||||||
|
|
||||||
/* Inferior function call methods. */
|
/* Inferior function call methods. */
|
||||||
if (0)
|
switch (tdep->bytes_per_address)
|
||||||
{
|
{
|
||||||
switch (tdep->bytes_per_address)
|
case 4:
|
||||||
|
set_gdbarch_push_dummy_call (gdbarch, hppa32_push_dummy_call);
|
||||||
|
set_gdbarch_frame_align (gdbarch, hppa32_frame_align);
|
||||||
|
break;
|
||||||
|
case 8:
|
||||||
|
if (0)
|
||||||
{
|
{
|
||||||
case 4:
|
|
||||||
set_gdbarch_push_dummy_call (gdbarch, hppa32_push_dummy_call);
|
|
||||||
set_gdbarch_frame_align (gdbarch, hppa32_frame_align);
|
|
||||||
break;
|
|
||||||
case 8:
|
|
||||||
set_gdbarch_push_dummy_call (gdbarch, hppa64_push_dummy_call);
|
set_gdbarch_push_dummy_call (gdbarch, hppa64_push_dummy_call);
|
||||||
set_gdbarch_frame_align (gdbarch, hppa64_frame_align);
|
set_gdbarch_frame_align (gdbarch, hppa64_frame_align);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
else
|
||||||
else
|
|
||||||
{
|
|
||||||
switch (tdep->bytes_per_address)
|
|
||||||
{
|
{
|
||||||
case 4:
|
|
||||||
set_gdbarch_deprecated_call_dummy_length (gdbarch, hppa32_call_dummy_length);
|
|
||||||
set_gdbarch_deprecated_stack_align (gdbarch, hppa32_stack_align);
|
|
||||||
set_gdbarch_deprecated_reg_struct_has_addr (gdbarch, hppa_reg_struct_has_addr);
|
|
||||||
break;
|
|
||||||
case 8:
|
|
||||||
set_gdbarch_deprecated_call_dummy_breakpoint_offset (gdbarch, hppa64_call_dummy_breakpoint_offset);
|
set_gdbarch_deprecated_call_dummy_breakpoint_offset (gdbarch, hppa64_call_dummy_breakpoint_offset);
|
||||||
set_gdbarch_deprecated_call_dummy_length (gdbarch, hppa64_call_dummy_length);
|
set_gdbarch_deprecated_call_dummy_length (gdbarch, hppa64_call_dummy_length);
|
||||||
set_gdbarch_deprecated_stack_align (gdbarch, hppa64_stack_align);
|
set_gdbarch_deprecated_stack_align (gdbarch, hppa64_stack_align);
|
||||||
break;
|
break;
|
||||||
|
set_gdbarch_deprecated_push_dummy_frame (gdbarch, hppa_push_dummy_frame);
|
||||||
|
/* set_gdbarch_deprecated_fix_call_dummy (gdbarch, hppa_fix_call_dummy); */
|
||||||
|
set_gdbarch_deprecated_push_arguments (gdbarch, hppa_push_arguments);
|
||||||
|
set_gdbarch_deprecated_use_generic_dummy_frames (gdbarch, 0);
|
||||||
|
set_gdbarch_deprecated_pc_in_call_dummy (gdbarch, deprecated_pc_in_call_dummy_on_stack);
|
||||||
|
set_gdbarch_call_dummy_location (gdbarch, ON_STACK);
|
||||||
}
|
}
|
||||||
set_gdbarch_deprecated_push_dummy_frame (gdbarch, hppa_push_dummy_frame);
|
break;
|
||||||
/* set_gdbarch_deprecated_fix_call_dummy (gdbarch, hppa_fix_call_dummy); */
|
|
||||||
set_gdbarch_deprecated_push_arguments (gdbarch, hppa_push_arguments);
|
|
||||||
set_gdbarch_deprecated_use_generic_dummy_frames (gdbarch, 0);
|
|
||||||
set_gdbarch_deprecated_pc_in_call_dummy (gdbarch, deprecated_pc_in_call_dummy_on_stack);
|
|
||||||
set_gdbarch_call_dummy_location (gdbarch, ON_STACK);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Struct return methods. */
|
/* Struct return methods. */
|
||||||
if (0)
|
switch (tdep->bytes_per_address)
|
||||||
{
|
{
|
||||||
switch (tdep->bytes_per_address)
|
case 4:
|
||||||
|
set_gdbarch_return_value (gdbarch, hppa32_return_value);
|
||||||
|
break;
|
||||||
|
case 8:
|
||||||
|
if (0)
|
||||||
|
set_gdbarch_return_value (gdbarch, hppa64_return_value);
|
||||||
|
else
|
||||||
{
|
{
|
||||||
case 4:
|
|
||||||
set_gdbarch_return_value (gdbarch, hppa32_return_value);
|
|
||||||
break;
|
|
||||||
case 8:
|
|
||||||
set_gdbarch_return_value (gdbarch, hppa64_return_value);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
internal_error (__FILE__, __LINE__, "bad switch");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
switch (tdep->bytes_per_address)
|
|
||||||
{
|
|
||||||
case 4:
|
|
||||||
set_gdbarch_deprecated_extract_return_value (gdbarch, hppa32_extract_return_value);
|
|
||||||
set_gdbarch_use_struct_convention (gdbarch, hppa32_use_struct_convention);
|
|
||||||
set_gdbarch_deprecated_store_return_value (gdbarch, hppa32_store_return_value);
|
|
||||||
break;
|
|
||||||
case 8:
|
|
||||||
set_gdbarch_deprecated_extract_return_value (gdbarch, hppa64_extract_return_value);
|
set_gdbarch_deprecated_extract_return_value (gdbarch, hppa64_extract_return_value);
|
||||||
set_gdbarch_use_struct_convention (gdbarch, hppa64_use_struct_convention);
|
set_gdbarch_use_struct_convention (gdbarch, hppa64_use_struct_convention);
|
||||||
set_gdbarch_deprecated_store_return_value (gdbarch, hppa64_store_return_value);
|
set_gdbarch_deprecated_store_return_value (gdbarch, hppa64_store_return_value);
|
||||||
break;
|
set_gdbarch_deprecated_store_struct_return (gdbarch, hppa_store_struct_return);
|
||||||
}
|
}
|
||||||
set_gdbarch_deprecated_store_struct_return (gdbarch, hppa_store_struct_return);
|
break;
|
||||||
|
default:
|
||||||
|
internal_error (__FILE__, __LINE__, "bad switch");
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Frame unwind methods. */
|
/* Frame unwind methods. */
|
||||||
|
|
Loading…
Reference in a new issue