Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
* [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