* [PATCH] mips gdbarch-ify REGISTER_NAMES, SKIP_TRAMPOLINE_CODE...
@ 2002-08-20 15:46 Michael Snyder
2002-08-20 17:27 ` Andrew Cagney
0 siblings, 1 reply; 4+ messages in thread
From: Michael Snyder @ 2002-08-20 15:46 UTC (permalink / raw)
To: gdb-patches; +Cc: cagney
Only tm-mips.h seems to define REGISTER_NAME, so this should be safe.
2002-08-20 Michael Snyder <msnyder@redhat.com>
* mips-tdep.c (mips_skip_stub, mips_in_call_stub): Make static.
(mips_gdbarch_init): Set skip_trampoline_code,
in_solib_call_trampoline.
* config/mips/tm-mips.h (REGISTER_NAME): Delete.
(IN_SOLIB_CALL_TRAMPOLINE, SKIP_TRAMPOLINE_CODE): Delete.
Index: mips-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/mips-tdep.c,v
retrieving revision 1.113
diff -c -3 -p -r1.113 mips-tdep.c
*** mips-tdep.c 20 Aug 2002 21:58:44 -0000 1.113
--- mips-tdep.c 20 Aug 2002 22:41:27 -0000
*************** mips_breakpoint_from_pc (CORE_ADDR * pcp
*** 5218,5224 ****
This function implements the SKIP_TRAMPOLINE_CODE macro.
*/
! CORE_ADDR
mips_skip_stub (CORE_ADDR pc)
{
char *name;
--- 5227,5233 ----
This function implements the SKIP_TRAMPOLINE_CODE macro.
*/
! static CORE_ADDR
mips_skip_stub (CORE_ADDR pc)
{
char *name;
*************** mips_skip_stub (CORE_ADDR pc)
*** 5301,5307 ****
/* Return non-zero if the PC is inside a call thunk (aka stub or trampoline).
This implements the IN_SOLIB_CALL_TRAMPOLINE macro. */
! int
mips_in_call_stub (CORE_ADDR pc, char *name)
{
CORE_ADDR start_addr;
--- 5310,5316 ----
/* Return non-zero if the PC is inside a call thunk (aka stub or trampoline).
This implements the IN_SOLIB_CALL_TRAMPOLINE macro. */
! static int
mips_in_call_stub (CORE_ADDR pc, char *name)
{
CORE_ADDR start_addr;
*************** mips_gdbarch_init (struct gdbarch_info i
*** 5998,6003 ****
--- 6007,6018 ----
set_gdbarch_store_struct_return (gdbarch, mips_store_struct_return);
set_gdbarch_extract_struct_value_address (gdbarch,
mips_extract_struct_value_address);
+
+ set_gdbarch_skip_trampoline_code (gdbarch, mips_skip_stub);
+
+ set_gdbarch_in_solib_call_trampoline (gdbarch, mips_in_call_stub);
+ /* set_gdbarch_in_solib_return_trampoline (gdbarch, mips_in_return_stub); */
+
return gdbarch;
}
Index: config/mips/tm-mips.h
===================================================================
RCS file: /cvs/src/src/gdb/config/mips/tm-mips.h,v
retrieving revision 1.39
diff -c -3 -p -r1.39 tm-mips.h
*** config/mips/tm-mips.h 20 Aug 2002 21:58:44 -0000 1.39
--- config/mips/tm-mips.h 20 Aug 2002 22:41:27 -0000
*************** extern int mips_step_skips_delay (CORE_A
*** 77,87 ****
#define NUM_REGS 90
#endif
- /* Given the register index, return the name of the corresponding
- register. */
- extern const char *mips_register_name (int regnr);
- #define REGISTER_NAME(i) mips_register_name (i)
-
/* Initializer for an array of names of registers.
There should be NUM_REGS strings in this initializer. */
--- 77,82 ----
*************** extern void fixup_sigtramp (void);
*** 223,231 ****
extern char *mips_read_processor_type (void);
/* Functions for dealing with MIPS16 call and return stubs. */
- #define IN_SOLIB_CALL_TRAMPOLINE(pc, name) mips_in_call_stub (pc, name)
#define IN_SOLIB_RETURN_TRAMPOLINE(pc, name) mips_in_return_stub (pc, name)
- #define SKIP_TRAMPOLINE_CODE(pc) mips_skip_stub (pc)
#define IGNORE_HELPER_CALL(pc) mips_ignore_helper (pc)
extern int mips_in_call_stub (CORE_ADDR pc, char *name);
extern int mips_in_return_stub (CORE_ADDR pc, char *name);
--- 218,224 ----
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] mips gdbarch-ify REGISTER_NAMES, SKIP_TRAMPOLINE_CODE...
2002-08-20 15:46 [PATCH] mips gdbarch-ify REGISTER_NAMES, SKIP_TRAMPOLINE_CODE Michael Snyder
@ 2002-08-20 17:27 ` Andrew Cagney
2002-08-20 18:12 ` Michael Snyder
0 siblings, 1 reply; 4+ messages in thread
From: Andrew Cagney @ 2002-08-20 17:27 UTC (permalink / raw)
To: Michael Snyder; +Cc: gdb-patches, cagney
> Only tm-mips.h seems to define REGISTER_NAME, so this should be safe.
>
> 2002-08-20 Michael Snyder <msnyder@redhat.com>
>
> * mips-tdep.c (mips_skip_stub, mips_in_call_stub): Make static.
> (mips_gdbarch_init): Set skip_trampoline_code,
> in_solib_call_trampoline.
> * config/mips/tm-mips.h (REGISTER_NAME): Delete.
> (IN_SOLIB_CALL_TRAMPOLINE, SKIP_TRAMPOLINE_CODE): Delete.
Just add a comment pointing out that most embedded mips targets don't
use this, instead they override it using the REGISTER_NAMES macro.
I would also steer well clear of REGISTER_VIRTUAL_TYPE,
REGISTER_RAW_SIZE and REGISTER_VIRTUAL_SIZE and anything else related to
register numbers.
Andrew
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] mips gdbarch-ify REGISTER_NAMES, SKIP_TRAMPOLINE_CODE...
2002-08-20 17:27 ` Andrew Cagney
@ 2002-08-20 18:12 ` Michael Snyder
2002-08-20 18:55 ` Andrew Cagney
0 siblings, 1 reply; 4+ messages in thread
From: Michael Snyder @ 2002-08-20 18:12 UTC (permalink / raw)
To: Andrew Cagney; +Cc: gdb-patches
Andrew Cagney wrote:
>
> > Only tm-mips.h seems to define REGISTER_NAME, so this should be safe.
> >
> > 2002-08-20 Michael Snyder <msnyder@redhat.com>
> >
> > * mips-tdep.c (mips_skip_stub, mips_in_call_stub): Make static.
> > (mips_gdbarch_init): Set skip_trampoline_code,
> > in_solib_call_trampoline.
> > * config/mips/tm-mips.h (REGISTER_NAME): Delete.
> > (IN_SOLIB_CALL_TRAMPOLINE, SKIP_TRAMPOLINE_CODE): Delete.
>
> Just add a comment pointing out that most embedded mips targets don't
> use this, instead they override it using the REGISTER_NAMES macro.
OK.
> I would also steer well clear of REGISTER_VIRTUAL_TYPE,
> REGISTER_RAW_SIZE and REGISTER_VIRTUAL_SIZE and anything else related to
> register numbers.
When you say "steer well clear of", do you mean "don't touch them"?
All but register_virtual_type have already been gdbarch-ified, and
I was building up my courage to do that one (see separate thread).
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] mips gdbarch-ify REGISTER_NAMES, SKIP_TRAMPOLINE_CODE...
2002-08-20 18:12 ` Michael Snyder
@ 2002-08-20 18:55 ` Andrew Cagney
0 siblings, 0 replies; 4+ messages in thread
From: Andrew Cagney @ 2002-08-20 18:55 UTC (permalink / raw)
To: Michael Snyder; +Cc: gdb-patches
> Andrew Cagney wrote:
>
>>
>
>> > Only tm-mips.h seems to define REGISTER_NAME, so this should be safe.
>> >
>> > 2002-08-20 Michael Snyder <msnyder@redhat.com>
>> >
>> > * mips-tdep.c (mips_skip_stub, mips_in_call_stub): Make static.
>> > (mips_gdbarch_init): Set skip_trampoline_code,
>> > in_solib_call_trampoline.
>> > * config/mips/tm-mips.h (REGISTER_NAME): Delete.
>> > (IN_SOLIB_CALL_TRAMPOLINE, SKIP_TRAMPOLINE_CODE): Delete.
>
>>
>> Just add a comment pointing out that most embedded mips targets don't
>> use this, instead they override it using the REGISTER_NAMES macro.
>
>
> OK.
>
>
>> I would also steer well clear of REGISTER_VIRTUAL_TYPE,
>> REGISTER_RAW_SIZE and REGISTER_VIRTUAL_SIZE and anything else related to
>> register numbers.
>
>
> When you say "steer well clear of", do you mean "don't touch them"?
> All but register_virtual_type have already been gdbarch-ified, and
> I was building up my courage to do that one (see separate thread).
Then please don't change that! Mult-arching the mips properly depends
on changes to remote.c and on figuring out exactly what all the include
header spagetti in config/mips actually does.
It is simply too easy to introduce a change that modifies the layout of
the register cache and, as a consequence, break GDB's ability to talk to
specific remote targets.
Andrew
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2002-08-21 1:55 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-08-20 15:46 [PATCH] mips gdbarch-ify REGISTER_NAMES, SKIP_TRAMPOLINE_CODE Michael Snyder
2002-08-20 17:27 ` Andrew Cagney
2002-08-20 18:12 ` Michael Snyder
2002-08-20 18:55 ` Andrew Cagney
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox