This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: [patch] gdbserver for x86-64
- From: Michal Ludvig <mludvig at suse dot cz>
- To: Daniel Jacobowitz <drow at mvista dot com>
- Cc: GDB Patches <gdb-patches at sources dot redhat dot com>
- Date: Thu, 04 Jul 2002 08:04:46 +0200
- Subject: Re: [patch] gdbserver for x86-64
- Organization: SuSE CR
- References: <3D230CFA.5060602@suse.cz> <20020703150155.GA9114@nevyn.them.org>
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
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);
}