From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 5946 invoked by alias); 10 Jan 2004 12:54:27 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 5935 invoked from network); 10 Jan 2004 12:54:24 -0000 Received: from unknown (HELO walton.kettenis.dyndns.org) (213.93.115.144) by sources.redhat.com with SMTP; 10 Jan 2004 12:54:24 -0000 Received: from elgar.kettenis.dyndns.org (elgar.kettenis.dyndns.org [192.168.0.2]) by walton.kettenis.dyndns.org (8.12.6p3/8.12.6) with ESMTP id i0ACsNjv004163 for ; Sat, 10 Jan 2004 13:54:23 +0100 (CET) (envelope-from kettenis@elgar.kettenis.dyndns.org) Received: from elgar.kettenis.dyndns.org (localhost [127.0.0.1]) by elgar.kettenis.dyndns.org (8.12.6p3/8.12.6) with ESMTP id i0ACsNLA025984 for ; Sat, 10 Jan 2004 13:54:23 +0100 (CET) (envelope-from kettenis@elgar.kettenis.dyndns.org) Received: (from kettenis@localhost) by elgar.kettenis.dyndns.org (8.12.6p3/8.12.6/Submit) id i0ACsNnq025981; Sat, 10 Jan 2004 13:54:23 +0100 (CET) Date: Sat, 10 Jan 2004 12:54:00 -0000 Message-Id: <200401101254.i0ACsNnq025981@elgar.kettenis.dyndns.org> From: Mark Kettenis To: gdb-patches@sources.redhat.com Subject: [PATCH] Add %cs and %ss for AMD64 X-SW-Source: 2004-01/txt/msg00262.txt.bz2 There were no objections, so I went ahead. You'll need to recompile gdbserver on GNU/Linux x86-64 if you want to see the correct floating-point and SSE registers. Committed, Mark Index: ChangeLog from Mark Kettenis * x86-64-tdep.c (amd64_register_info): Add %cs and %ss. Adjust register numbers in comments. * x86-64-tdep.h: Update copyright year. (X86_64_ST0_REGNUM, X86_64_XMM0_REGNUM, X86_64_XMM1_REGNUM): Adjust for addition of %cs and %ss. * amd64fbsd-nat.c: Update copyright year. (reg_offset): Add register offsets for %cs and %ss. * amd64fbsd-tdep.c: Update copyright year. (amd64fbsd_r_reg_offset): Add register offsets for %cs and %ss. (amd64fbsd_sc_reg_offset): Likewise. * x86-64-linux-nat.c: Update copyright year. (x86_64_linux_gregset64_reg_offset): Add register offsets for %cs and %ss. * amd64nbsd-nat.c: Update copyright year. (amd64nbsd32_r_reg_offset): Add register offsets for %cs and %ss. * amd64nbsd-tdep.c: Update copyright year. (amd64nbsd_r_reg_offset): Add register offsets for %cs and %ss. * x86-64-linux-tdep.c: Update copyright year. (user_to_gdb_regmap): Add mapping for %cs and %ss. (x86_64_linux_sc_reg_offset): Adjust for addition of %cs and %ss. * regformats/reg-x86-64.dat: Add %cs and %ss. Index: x86-64-linux-nat.c =================================================================== RCS file: /cvs/src/src/gdb/x86-64-linux-nat.c,v retrieving revision 1.30 diff -u -p -r1.30 x86-64-linux-nat.c --- x86-64-linux-nat.c 28 Sep 2003 13:35:44 -0000 1.30 +++ x86-64-linux-nat.c 10 Jan 2004 12:52:05 -0000 @@ -1,7 +1,6 @@ /* Native-dependent code for GNU/Linux x86-64. - Copyright 2001, 2002, 2003 Free Software Foundation, Inc. - + Copyright 2001, 2002, 2003, 2004 Free Software Foundation, Inc. Contributed by Jiri Smid, SuSE Labs. This file is part of GDB. @@ -67,6 +66,7 @@ static int x86_64_linux_gregset64_reg_of R12 * 8, R13 * 8, R14 * 8, R15 * 8, /* ... %r15 */ RIP * 8, EFLAGS * 8, /* %rip, %eflags */ + CS * 8, SS * 8, /* %cs, %ss */ DS * 8, ES * 8, /* %ds, %es */ FS * 8, GS * 8 /* %fs, %gs */ }; Index: x86-64-linux-tdep.c =================================================================== RCS file: /cvs/src/src/gdb/x86-64-linux-tdep.c,v retrieving revision 1.24 diff -u -p -r1.24 x86-64-linux-tdep.c --- x86-64-linux-tdep.c 31 Oct 2003 22:26:29 -0000 1.24 +++ x86-64-linux-tdep.c 10 Jan 2004 12:52:05 -0000 @@ -1,7 +1,6 @@ /* Target-dependent code for GNU/Linux running on x86-64, for GDB. - Copyright 2001, 2003 Free Software Foundation, Inc. - + Copyright 2001, 2003, 2004 Free Software Foundation, Inc. Contributed by Jiri Smid, SuSE Labs. This file is part of GDB. @@ -69,6 +68,7 @@ static int user_to_gdb_regmap[] = USER_R8, USER_R9, USER_R10, USER_R11, USER_R12, USER_R13, USER_R14, USER_R15, USER_RIP, USER_EFLAGS, + USER_CS, USER_SS, USER_DS, USER_ES, USER_FS, USER_GS }; @@ -254,13 +254,15 @@ static int x86_64_linux_sc_reg_offset[] 7 * 8, /* %r15 */ 16 * 8, /* %rip */ 17 * 8, /* %eflags */ - -1, /* %ds */ - -1, /* %es */ - /* FIXME: kettenis/2002030531: The registers %fs and %gs are + /* FIXME: kettenis/2002030531: The registers %cs, %fs and %gs are available in `struct sigcontext'. However, they only occupy two bytes instead of four, which makes using them here rather difficult. Leave them out for now. */ + -1, /* %cs */ + -1, /* %ss */ + -1, /* %ds */ + -1, /* %es */ -1, /* %fs */ -1 /* %gs */ }; Index: x86-64-tdep.c =================================================================== RCS file: /cvs/src/src/gdb/x86-64-tdep.c,v retrieving revision 1.107 diff -u -p -r1.107 x86-64-tdep.c --- x86-64-tdep.c 4 Jan 2004 19:07:02 -0000 1.107 +++ x86-64-tdep.c 10 Jan 2004 12:52:06 -0000 @@ -77,12 +77,14 @@ static struct amd64_register_info amd64_ { "r15", &builtin_type_int64 }, { "rip", &builtin_type_void_func_ptr }, { "eflags", &builtin_type_int32 }, + { "cs", &builtin_type_int32 }, + { "ss", &builtin_type_int32 }, { "ds", &builtin_type_int32 }, { "es", &builtin_type_int32 }, { "fs", &builtin_type_int32 }, { "gs", &builtin_type_int32 }, - /* %st0 is register number 22. */ + /* %st0 is register number 24. */ { "st0", &builtin_type_i387_ext }, { "st1", &builtin_type_i387_ext }, { "st2", &builtin_type_i387_ext }, @@ -100,7 +102,7 @@ static struct amd64_register_info amd64_ { "fooff", &builtin_type_int32 }, { "fop", &builtin_type_int32 }, - /* %xmm0 is register number 38. */ + /* %xmm0 is register number 40. */ { "xmm0", &builtin_type_v4sf }, { "xmm1", &builtin_type_v4sf }, { "xmm2", &builtin_type_v4sf }, Index: x86-64-tdep.h =================================================================== RCS file: /cvs/src/src/gdb/x86-64-tdep.h,v retrieving revision 1.21 diff -u -p -r1.21 x86-64-tdep.h --- x86-64-tdep.h 18 Oct 2003 18:41:22 -0000 1.21 +++ x86-64-tdep.h 10 Jan 2004 12:52:06 -0000 @@ -1,8 +1,6 @@ /* Target-dependent code for the x86-64. - Copyright 2001, 2003 - Free Software Foundation, Inc. - + Copyright 2001, 2003, 2004 Free Software Foundation, Inc. Contributed by Jiri Smid, SuSE Labs. This file is part of GDB. @@ -40,12 +38,12 @@ struct regcache; #define X86_64_RSP_REGNUM 7 /* %rsp */ #define X86_64_RIP_REGNUM 16 /* %rip */ #define X86_64_EFLAGS_REGNUM 17 /* %eflags */ -#define X86_64_ST0_REGNUM 22 /* %st0 */ -#define X86_64_XMM0_REGNUM 38 /* %xmm0 */ -#define X86_64_XMM1_REGNUM 39 /* %xmm1 */ +#define X86_64_ST0_REGNUM 24 /* %st0 */ +#define X86_64_XMM0_REGNUM 40 /* %xmm0 */ +#define X86_64_XMM1_REGNUM 41 /* %xmm1 */ /* Number of general purpose registers. */ -#define X86_64_NUM_GREGS 22 +#define X86_64_NUM_GREGS 24 void x86_64_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch); Index: amd64fbsd-nat.c =================================================================== RCS file: /cvs/src/src/gdb/amd64fbsd-nat.c,v retrieving revision 1.8 diff -u -p -r1.8 amd64fbsd-nat.c --- amd64fbsd-nat.c 19 Oct 2003 10:39:49 -0000 1.8 +++ amd64fbsd-nat.c 10 Jan 2004 12:52:06 -0000 @@ -1,6 +1,6 @@ /* Native-dependent code for FreeBSD/amd64. - Copyright 2003 Free Software Foundation, Inc. + Copyright 2003, 2004 Free Software Foundation, Inc. This file is part of GDB. @@ -74,6 +74,8 @@ static int reg_offset[] = REG_OFFSET (r_r15), REG_OFFSET (r_rip), REG_OFFSET (r_rflags), + REG_OFFSET (r_cs), + REG_OFFSET (r_ss), -1, -1, -1, Index: amd64fbsd-tdep.c =================================================================== RCS file: /cvs/src/src/gdb/amd64fbsd-tdep.c,v retrieving revision 1.4 diff -u -p -r1.4 amd64fbsd-tdep.c --- amd64fbsd-tdep.c 5 Nov 2003 22:54:46 -0000 1.4 +++ amd64fbsd-tdep.c 10 Jan 2004 12:52:06 -0000 @@ -1,6 +1,6 @@ /* Target-dependent code for FreeBSD/amd64. - Copyright 2003 Free Software Foundation, Inc. + Copyright 2003, 2004 Free Software Foundation, Inc. This file is part of GDB. @@ -58,15 +58,30 @@ amd64fbsd_sigcontext_addr (struct frame_ /* From . */ static int amd64fbsd_r_reg_offset[] = { - 14 * 8, 11 * 8, /* %rax, %rbx */ - 13 * 8, 12 * 8, /* %rcx, %rdx */ - 9 * 8, 8 * 8, /* %rsi, %rdi */ - 10 * 8, 20 * 8, /* %rbp, %rsp */ - 7 * 8, 6 * 8, 5 * 8, 4 * 8, /* %r8 ... */ - 3 * 8, 2 * 8, 1 * 8, 0 * 8, /* ... %r15 */ - 17 * 8, 19 * 8, /* %rip, %eflags */ - -1, -1, /* %ds, %es */ - -1, -1 /* %fs, %gs */ + 14 * 8, /* %rax */ + 11 * 8, /* %rbx */ + 13 * 8, /* %rcx */ + 12 * 8, /* %rdx */ + 9 * 8, /* %rsi */ + 8 * 8, /* %rdi */ + 10 * 8, /* %rbp */ + 20 * 8, /* %rsp */ + 7 * 8, /* %r8 ... */ + 6 * 8, + 5 * 8, + 4 * 8, + 3 * 8, + 2 * 8, + 1 * 8, + 0 * 8, /* ... %r15 */ + 17 * 8, /* %rip */ + 19 * 8, /* %eflags */ + 18 * 8, /* %cs */ + 21 * 8, /* %ss */ + -1, /* %ds */ + -1, /* %es */ + -1, /* %fs */ + -1 /* %gs */ }; /* Location of the signal trampoline. */ @@ -74,7 +89,7 @@ CORE_ADDR amd64fbsd_sigtramp_start = 0x7 CORE_ADDR amd64fbsd_sigtramp_end = 0x7fffffffffe0; /* From . */ -int amd64fbsd_sc_reg_offset[X86_64_NUM_GREGS] = +int amd64fbsd_sc_reg_offset[] = { 24 + 6 * 8, /* %rax */ 24 + 7 * 8, /* %rbx */ @@ -84,16 +99,18 @@ int amd64fbsd_sc_reg_offset[X86_64_NUM_G 24 + 0 * 8, /* %rdi */ 24 + 8 * 8, /* %rbp */ 24 + 22 * 8, /* %rsp */ - 24 + 4 * 8, /* %r8 */ - 24 + 5 * 8, /* %r9 */ - 24 + 9 * 8, /* %r10 */ - 24 + 10 * 8, /* %r11 */ - 24 + 11 * 8, /* %r12 */ - 24 + 12 * 8, /* %r13 */ - 24 + 13 * 8, /* %r14 */ - 24 + 14 * 8, /* %r15 */ + 24 + 4 * 8, /* %r8 ... */ + 24 + 5 * 8, + 24 + 9 * 8, + 24 + 10 * 8, + 24 + 11 * 8, + 24 + 12 * 8, + 24 + 13 * 8, + 24 + 14 * 8, /* ... %r15 */ 24 + 19 * 8, /* %rip */ 24 + 21 * 8, /* %eflags */ + 24 + 20 * 8, /* %cs */ + 24 + 23 * 8, /* %ss */ -1, /* %ds */ -1, /* %es */ -1, /* %fs */ Index: amd64nbsd-nat.c =================================================================== RCS file: /cvs/src/src/gdb/amd64nbsd-nat.c,v retrieving revision 1.1 diff -u -p -r1.1 amd64nbsd-nat.c --- amd64nbsd-nat.c 18 Oct 2003 18:41:22 -0000 1.1 +++ amd64nbsd-nat.c 10 Jan 2004 12:52:06 -0000 @@ -1,6 +1,6 @@ /* Native-dependent code for NetBSD/amd64. - Copyright 2003 Free Software Foundation, Inc. + Copyright 2003, 2004 Free Software Foundation, Inc. This file is part of GDB. @@ -47,8 +47,8 @@ static int amd64nbsd32_r_reg_offset[] = 0 * 8, /* %edi */ 21 * 8, /* %eip */ 23 * 8, /* %eflags */ - -1, /* %cs */ - -1, /* %ss */ + 22 * 8, /* %cs */ + 25 * 8, /* %ss */ 18 * 8, /* %ds */ 17 * 8, /* %es */ 16 * 8, /* %fs */ Index: amd64nbsd-tdep.c =================================================================== RCS file: /cvs/src/src/gdb/amd64nbsd-tdep.c,v retrieving revision 1.1 diff -u -p -r1.1 amd64nbsd-tdep.c --- amd64nbsd-tdep.c 18 Oct 2003 18:41:22 -0000 1.1 +++ amd64nbsd-tdep.c 10 Jan 2004 12:52:06 -0000 @@ -1,6 +1,6 @@ /* Target-dependent code for NetBSD/amd64. - Copyright 2003 Free Software Foundation, Inc. + Copyright 2003, 2004 Free Software Foundation, Inc. This file is part of GDB. @@ -72,6 +72,8 @@ int amd64nbsd_r_reg_offset[] = 11 * 8, /* ... %r15 */ 21 * 8, /* %rip */ 23 * 8, /* %eflags */ + 22 * 8, /* %cs */ + 25 * 8, /* %ss */ 18 * 8, /* %ds */ 17 * 8, /* %es */ 16 * 8, /* %fs */ Index: regformats/reg-x86-64.dat =================================================================== RCS file: /cvs/src/src/gdb/regformats/reg-x86-64.dat,v retrieving revision 1.2 diff -u -p -r1.2 reg-x86-64.dat --- regformats/reg-x86-64.dat 27 Mar 2002 10:21:29 -0000 1.2 +++ regformats/reg-x86-64.dat 10 Jan 2004 12:52:06 -0000 @@ -18,6 +18,8 @@ expedite:rbp,rsp,rip 64:r15 64:rip 32:eflags +32:cs +32:ss 32:ds 32:es 32:fs