* [patch] gdbserver for x86-64
@ 2002-07-03 8:02 Michal Ludvig
2002-07-03 8:05 ` Daniel Jacobowitz
0 siblings, 1 reply; 4+ messages in thread
From: Michal Ludvig @ 2002-07-03 8:02 UTC (permalink / raw)
To: GDB Patches
[-- Attachment #1: Type: text/plain, Size: 173 bytes --]
Hi all,
Pretty obvious one. If noone complains, I'll commit it tomorrow.
Michal Ludvig
--
* SuSE CR, s.r.o * mludvig@suse.cz
* +420 2 9654 5373 * http://www.suse.cz
[-- Attachment #2: gdbserver-1.diff --]
[-- Type: text/plain, Size: 1643 bytes --]
2002-07-03 Michal Ludvig <mludvig@suse.cz>
* gdbserver/linux-x86-64-low.c (x86_64_fill_gregset): Change type in
explicit cast to CORE_ADDR so that pointer arithmetic works.
(x86_64_store_gregset): Ditto + parameter made const.
(x86_64_store_fpregset): Parameter made const.
Index: gdbserver/linux-x86-64-low.c
===================================================================
RCS file: /cvs/src/src/gdb/gdbserver/linux-x86-64-low.c,v
retrieving revision 1.5
diff -c -3 -p -r1.5 linux-x86-64-low.c
*** gdbserver/linux-x86-64-low.c 11 Jun 2002 17:32:39 -0000 1.5
--- gdbserver/linux-x86-64-low.c 3 Jul 2002 14:36:19 -0000
*************** x86_64_fill_gregset (void *buf)
*** 45,60 ****
int i;
for (i = 0; i < X86_64_NUM_GREGS; i++)
! collect_register (i, ((char *) buf) + x86_64_regmap[i]);
}
static void
! x86_64_store_gregset (void *buf)
{
int i;
for (i = 0; i < X86_64_NUM_GREGS; i++)
! supply_register (i, ((char *) buf) + x86_64_regmap[i]);
}
static void
--- 45,60 ----
int i;
for (i = 0; i < X86_64_NUM_GREGS; i++)
! collect_register (i, ((CORE_ADDR *) buf) + x86_64_regmap[i]);
}
static void
! x86_64_store_gregset (const void *buf)
{
int i;
for (i = 0; i < X86_64_NUM_GREGS; i++)
! supply_register (i, ((CORE_ADDR *) buf) + x86_64_regmap[i]);
}
static void
*************** x86_64_fill_fpregset (void *buf)
*** 64,70 ****
}
static void
! x86_64_store_fpregset (void *buf)
{
i387_fxsave_to_cache (buf);
}
--- 64,70 ----
}
static void
! x86_64_store_fpregset (const void *buf)
{
i387_fxsave_to_cache (buf);
}
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [patch] gdbserver for x86-64
2002-07-03 8:02 [patch] gdbserver for x86-64 Michal Ludvig
@ 2002-07-03 8:05 ` Daniel Jacobowitz
2002-07-04 0:22 ` Michal Ludvig
0 siblings, 1 reply; 4+ messages in thread
From: Daniel Jacobowitz @ 2002-07-03 8:05 UTC (permalink / raw)
To: Michal Ludvig; +Cc: GDB Patches
On Wed, Jul 03, 2002 at 04:40:58PM +0200, Michal Ludvig wrote:
> Hi all,
> Pretty obvious one. If noone complains, I'll commit it tomorrow.
>
> Michal Ludvig
> --
> * SuSE CR, s.r.o * mludvig@suse.cz
> * +420 2 9654 5373 * http://www.suse.cz
> 2002-07-03 Michal Ludvig <mludvig@suse.cz>
>
> * gdbserver/linux-x86-64-low.c (x86_64_fill_gregset): Change type in
> explicit cast to CORE_ADDR so that pointer arithmetic works.
> (x86_64_store_gregset): Ditto + parameter made const.
> (x86_64_store_fpregset): Parameter made const.
Could you change the reg_map instead, please? It's used outside of
this file and expected to be in byte offsets. Just add *4 or *8 where
appropriate as I did in the i386 file.
--
Daniel Jacobowitz Carnegie Mellon University
MontaVista Software Debian GNU/Linux Developer
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [patch] gdbserver for x86-64
2002-07-03 8:05 ` Daniel Jacobowitz
@ 2002-07-04 0:22 ` Michal Ludvig
2002-07-04 7:48 ` Daniel Jacobowitz
0 siblings, 1 reply; 4+ messages in thread
From: Michal Ludvig @ 2002-07-04 0:22 UTC (permalink / raw)
To: Daniel Jacobowitz; +Cc: GDB Patches
[-- Attachment #1: Type: text/plain, Size: 813 bytes --]
Daniel Jacobowitz wrote:
> On Wed, Jul 03, 2002 at 04:40:58PM +0200, Michal Ludvig wrote:
>>2002-07-03 Michal Ludvig <mludvig@suse.cz>
>>
>> * gdbserver/linux-x86-64-low.c (x86_64_fill_gregset): Change type in
>> explicit cast to CORE_ADDR so that pointer arithmetic works.
>> (x86_64_store_gregset): Ditto + parameter made const.
>> (x86_64_store_fpregset): Parameter made const.
>
>
> Could you change the reg_map instead, please? It's used outside of
> this file and expected to be in byte offsets.
Where is it used? It seems to be a static array without any reference
from outside.
> Just add *4 or *8 where appropriate as I did in the i386 file.
OK, changed and committed as in the attached file.
Michal Ludvig
--
* SuSE CR, s.r.o * mludvig@suse.cz
* +420 2 9654 5373 * http://www.suse.cz
[-- Attachment #2: gdbserver-2.diff --]
[-- Type: text/plain, Size: 1312 bytes --]
2002-07-04 Michal Ludvig <mludvig@suse.cz>
* gdbserver/linux-x86-64-low.c (x86_64_regmap): Make it an array of
byte offsets instead of an array of indexes.
(x86_64_store_gregset, x86_64_store_fpregset): Parameter made const.
Index: gdbserver/linux-x86-64-low.c
===================================================================
RCS file: /cvs/src/src/gdb/gdbserver/linux-x86-64-low.c,v
retrieving revision 1.5
diff -c -3 -p -u -r1.5 linux-x86-64-low.c
--- gdbserver/linux-x86-64-low.c 11 Jun 2002 17:32:39 -0000 1.5
+++ gdbserver/linux-x86-64-low.c 4 Jul 2002 05:53:37 -0000
@@ -31,12 +31,12 @@
#define X86_64_NUM_GREGS 22
static int x86_64_regmap[X86_64_NUM_GREGS] = {
- RAX, RBX, RCX, RDX,
- RSI, RDI, RBP, RSP,
- R8, R9, R10, R11,
- R12, R13, R14, R15,
- RIP, EFLAGS,
- DS, ES, FS, GS
+ RAX * 8, RBX * 8, RCX * 8, RDX * 8,
+ RSI * 8, RDI * 8, RBP * 8, RSP * 8,
+ R8 * 8, R9 * 8, R10 * 8, R11 * 8,
+ R12 * 8, R13 * 8, R14 * 8, R15 * 8,
+ RIP * 8, EFLAGS * 8,
+ DS * 8, ES * 8, FS * 8, GS * 8
};
static void
@@ -49,7 +49,7 @@
}
static void
-x86_64_store_gregset (void *buf)
+x86_64_store_gregset (const void *buf)
{
int i;
@@ -64,7 +64,7 @@
}
static void
-x86_64_store_fpregset (void *buf)
+x86_64_store_fpregset (const void *buf)
{
i387_fxsave_to_cache (buf);
}
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [patch] gdbserver for x86-64
2002-07-04 0:22 ` Michal Ludvig
@ 2002-07-04 7:48 ` Daniel Jacobowitz
0 siblings, 0 replies; 4+ messages in thread
From: Daniel Jacobowitz @ 2002-07-04 7:48 UTC (permalink / raw)
To: Michal Ludvig; +Cc: GDB Patches
On Thu, Jul 04, 2002 at 08:04:46AM +0200, Michal Ludvig wrote:
> Daniel Jacobowitz wrote:
> >On Wed, Jul 03, 2002 at 04:40:58PM +0200, Michal Ludvig wrote:
> >>2002-07-03 Michal Ludvig <mludvig@suse.cz>
> >>
> >> * gdbserver/linux-x86-64-low.c (x86_64_fill_gregset): Change type in
> >> explicit cast to CORE_ADDR so that pointer arithmetic works.
> >> (x86_64_store_gregset): Ditto + parameter made const.
> >> (x86_64_store_fpregset): Parameter made const.
> >
> >
> >Could you change the reg_map instead, please? It's used outside of
> >this file and expected to be in byte offsets.
>
> Where is it used? It seems to be a static array without any reference
> from outside.
Oh, you're right. Because x86-64 only uses GETREGS, it doesn't expose
the regmap.
> >Just add *4 or *8 where appropriate as I did in the i386 file.
>
> OK, changed and committed as in the attached file.
Thanks!
--
Daniel Jacobowitz Carnegie Mellon University
MontaVista Software Debian GNU/Linux Developer
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2002-07-04 13:45 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-07-03 8:02 [patch] gdbserver for x86-64 Michal Ludvig
2002-07-03 8:05 ` Daniel Jacobowitz
2002-07-04 0:22 ` Michal Ludvig
2002-07-04 7:48 ` Daniel Jacobowitz
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox