* 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.
This commit is contained in:
Mark Kettenis 2004-01-10 12:52:41 +00:00
parent 13d40af009
commit af23364752
10 changed files with 87 additions and 40 deletions

View file

@ -1,5 +1,27 @@
2004-01-10 Mark Kettenis <kettenis@gnu.org> 2004-01-10 Mark Kettenis <kettenis@gnu.org>
* 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.
* blockframe.c (inside_entry_func): Reformat. Introduce new local * blockframe.c (inside_entry_func): Reformat. Introduce new local
variables to prevent long lines. Update comments to reflect variables to prevent long lines. Update comments to reflect
reality. reality.

View file

@ -1,6 +1,6 @@
/* Native-dependent code for FreeBSD/amd64. /* 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. This file is part of GDB.
@ -74,6 +74,8 @@ static int reg_offset[] =
REG_OFFSET (r_r15), REG_OFFSET (r_r15),
REG_OFFSET (r_rip), REG_OFFSET (r_rip),
REG_OFFSET (r_rflags), REG_OFFSET (r_rflags),
REG_OFFSET (r_cs),
REG_OFFSET (r_ss),
-1, -1,
-1, -1,
-1, -1,

View file

@ -1,6 +1,6 @@
/* Target-dependent code for FreeBSD/amd64. /* 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. This file is part of GDB.
@ -58,15 +58,30 @@ amd64fbsd_sigcontext_addr (struct frame_info *next_frame)
/* From <machine/reg.h>. */ /* From <machine/reg.h>. */
static int amd64fbsd_r_reg_offset[] = static int amd64fbsd_r_reg_offset[] =
{ {
14 * 8, 11 * 8, /* %rax, %rbx */ 14 * 8, /* %rax */
13 * 8, 12 * 8, /* %rcx, %rdx */ 11 * 8, /* %rbx */
9 * 8, 8 * 8, /* %rsi, %rdi */ 13 * 8, /* %rcx */
10 * 8, 20 * 8, /* %rbp, %rsp */ 12 * 8, /* %rdx */
7 * 8, 6 * 8, 5 * 8, 4 * 8, /* %r8 ... */ 9 * 8, /* %rsi */
3 * 8, 2 * 8, 1 * 8, 0 * 8, /* ... %r15 */ 8 * 8, /* %rdi */
17 * 8, 19 * 8, /* %rip, %eflags */ 10 * 8, /* %rbp */
-1, -1, /* %ds, %es */ 20 * 8, /* %rsp */
-1, -1 /* %fs, %gs */ 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. */ /* Location of the signal trampoline. */
@ -74,7 +89,7 @@ CORE_ADDR amd64fbsd_sigtramp_start = 0x7fffffffffc0;
CORE_ADDR amd64fbsd_sigtramp_end = 0x7fffffffffe0; CORE_ADDR amd64fbsd_sigtramp_end = 0x7fffffffffe0;
/* From <machine/signal.h>. */ /* From <machine/signal.h>. */
int amd64fbsd_sc_reg_offset[X86_64_NUM_GREGS] = int amd64fbsd_sc_reg_offset[] =
{ {
24 + 6 * 8, /* %rax */ 24 + 6 * 8, /* %rax */
24 + 7 * 8, /* %rbx */ 24 + 7 * 8, /* %rbx */
@ -84,16 +99,18 @@ int amd64fbsd_sc_reg_offset[X86_64_NUM_GREGS] =
24 + 0 * 8, /* %rdi */ 24 + 0 * 8, /* %rdi */
24 + 8 * 8, /* %rbp */ 24 + 8 * 8, /* %rbp */
24 + 22 * 8, /* %rsp */ 24 + 22 * 8, /* %rsp */
24 + 4 * 8, /* %r8 */ 24 + 4 * 8, /* %r8 ... */
24 + 5 * 8, /* %r9 */ 24 + 5 * 8,
24 + 9 * 8, /* %r10 */ 24 + 9 * 8,
24 + 10 * 8, /* %r11 */ 24 + 10 * 8,
24 + 11 * 8, /* %r12 */ 24 + 11 * 8,
24 + 12 * 8, /* %r13 */ 24 + 12 * 8,
24 + 13 * 8, /* %r14 */ 24 + 13 * 8,
24 + 14 * 8, /* %r15 */ 24 + 14 * 8, /* ... %r15 */
24 + 19 * 8, /* %rip */ 24 + 19 * 8, /* %rip */
24 + 21 * 8, /* %eflags */ 24 + 21 * 8, /* %eflags */
24 + 20 * 8, /* %cs */
24 + 23 * 8, /* %ss */
-1, /* %ds */ -1, /* %ds */
-1, /* %es */ -1, /* %es */
-1, /* %fs */ -1, /* %fs */

View file

@ -1,6 +1,6 @@
/* Native-dependent code for NetBSD/amd64. /* 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. This file is part of GDB.
@ -47,8 +47,8 @@ static int amd64nbsd32_r_reg_offset[] =
0 * 8, /* %edi */ 0 * 8, /* %edi */
21 * 8, /* %eip */ 21 * 8, /* %eip */
23 * 8, /* %eflags */ 23 * 8, /* %eflags */
-1, /* %cs */ 22 * 8, /* %cs */
-1, /* %ss */ 25 * 8, /* %ss */
18 * 8, /* %ds */ 18 * 8, /* %ds */
17 * 8, /* %es */ 17 * 8, /* %es */
16 * 8, /* %fs */ 16 * 8, /* %fs */

View file

@ -1,6 +1,6 @@
/* Target-dependent code for NetBSD/amd64. /* 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. This file is part of GDB.
@ -72,6 +72,8 @@ int amd64nbsd_r_reg_offset[] =
11 * 8, /* ... %r15 */ 11 * 8, /* ... %r15 */
21 * 8, /* %rip */ 21 * 8, /* %rip */
23 * 8, /* %eflags */ 23 * 8, /* %eflags */
22 * 8, /* %cs */
25 * 8, /* %ss */
18 * 8, /* %ds */ 18 * 8, /* %ds */
17 * 8, /* %es */ 17 * 8, /* %es */
16 * 8, /* %fs */ 16 * 8, /* %fs */

View file

@ -18,6 +18,8 @@ expedite:rbp,rsp,rip
64:r15 64:r15
64:rip 64:rip
32:eflags 32:eflags
32:cs
32:ss
32:ds 32:ds
32:es 32:es
32:fs 32:fs

View file

@ -1,7 +1,6 @@
/* Native-dependent code for GNU/Linux x86-64. /* 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. Contributed by Jiri Smid, SuSE Labs.
This file is part of GDB. This file is part of GDB.
@ -67,6 +66,7 @@ static int x86_64_linux_gregset64_reg_offset[] =
R12 * 8, R13 * 8, R12 * 8, R13 * 8,
R14 * 8, R15 * 8, /* ... %r15 */ R14 * 8, R15 * 8, /* ... %r15 */
RIP * 8, EFLAGS * 8, /* %rip, %eflags */ RIP * 8, EFLAGS * 8, /* %rip, %eflags */
CS * 8, SS * 8, /* %cs, %ss */
DS * 8, ES * 8, /* %ds, %es */ DS * 8, ES * 8, /* %ds, %es */
FS * 8, GS * 8 /* %fs, %gs */ FS * 8, GS * 8 /* %fs, %gs */
}; };

View file

@ -1,7 +1,6 @@
/* Target-dependent code for GNU/Linux running on x86-64, for GDB. /* 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. Contributed by Jiri Smid, SuSE Labs.
This file is part of GDB. 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_R8, USER_R9, USER_R10, USER_R11,
USER_R12, USER_R13, USER_R14, USER_R15, USER_R12, USER_R13, USER_R14, USER_R15,
USER_RIP, USER_EFLAGS, USER_RIP, USER_EFLAGS,
USER_CS, USER_SS,
USER_DS, USER_ES, USER_FS, USER_GS USER_DS, USER_ES, USER_FS, USER_GS
}; };
@ -254,13 +254,15 @@ static int x86_64_linux_sc_reg_offset[] =
7 * 8, /* %r15 */ 7 * 8, /* %r15 */
16 * 8, /* %rip */ 16 * 8, /* %rip */
17 * 8, /* %eflags */ 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 available in `struct sigcontext'. However, they only occupy two
bytes instead of four, which makes using them here rather bytes instead of four, which makes using them here rather
difficult. Leave them out for now. */ difficult. Leave them out for now. */
-1, /* %cs */
-1, /* %ss */
-1, /* %ds */
-1, /* %es */
-1, /* %fs */ -1, /* %fs */
-1 /* %gs */ -1 /* %gs */
}; };

View file

@ -77,12 +77,14 @@ static struct amd64_register_info amd64_register_info[] =
{ "r15", &builtin_type_int64 }, { "r15", &builtin_type_int64 },
{ "rip", &builtin_type_void_func_ptr }, { "rip", &builtin_type_void_func_ptr },
{ "eflags", &builtin_type_int32 }, { "eflags", &builtin_type_int32 },
{ "cs", &builtin_type_int32 },
{ "ss", &builtin_type_int32 },
{ "ds", &builtin_type_int32 }, { "ds", &builtin_type_int32 },
{ "es", &builtin_type_int32 }, { "es", &builtin_type_int32 },
{ "fs", &builtin_type_int32 }, { "fs", &builtin_type_int32 },
{ "gs", &builtin_type_int32 }, { "gs", &builtin_type_int32 },
/* %st0 is register number 22. */ /* %st0 is register number 24. */
{ "st0", &builtin_type_i387_ext }, { "st0", &builtin_type_i387_ext },
{ "st1", &builtin_type_i387_ext }, { "st1", &builtin_type_i387_ext },
{ "st2", &builtin_type_i387_ext }, { "st2", &builtin_type_i387_ext },
@ -100,7 +102,7 @@ static struct amd64_register_info amd64_register_info[] =
{ "fooff", &builtin_type_int32 }, { "fooff", &builtin_type_int32 },
{ "fop", &builtin_type_int32 }, { "fop", &builtin_type_int32 },
/* %xmm0 is register number 38. */ /* %xmm0 is register number 40. */
{ "xmm0", &builtin_type_v4sf }, { "xmm0", &builtin_type_v4sf },
{ "xmm1", &builtin_type_v4sf }, { "xmm1", &builtin_type_v4sf },
{ "xmm2", &builtin_type_v4sf }, { "xmm2", &builtin_type_v4sf },

View file

@ -1,8 +1,6 @@
/* Target-dependent code for the x86-64. /* Target-dependent code for the x86-64.
Copyright 2001, 2003 Copyright 2001, 2003, 2004 Free Software Foundation, Inc.
Free Software Foundation, Inc.
Contributed by Jiri Smid, SuSE Labs. Contributed by Jiri Smid, SuSE Labs.
This file is part of GDB. This file is part of GDB.
@ -40,12 +38,12 @@ struct regcache;
#define X86_64_RSP_REGNUM 7 /* %rsp */ #define X86_64_RSP_REGNUM 7 /* %rsp */
#define X86_64_RIP_REGNUM 16 /* %rip */ #define X86_64_RIP_REGNUM 16 /* %rip */
#define X86_64_EFLAGS_REGNUM 17 /* %eflags */ #define X86_64_EFLAGS_REGNUM 17 /* %eflags */
#define X86_64_ST0_REGNUM 22 /* %st0 */ #define X86_64_ST0_REGNUM 24 /* %st0 */
#define X86_64_XMM0_REGNUM 38 /* %xmm0 */ #define X86_64_XMM0_REGNUM 40 /* %xmm0 */
#define X86_64_XMM1_REGNUM 39 /* %xmm1 */ #define X86_64_XMM1_REGNUM 41 /* %xmm1 */
/* Number of general purpose registers. */ /* 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); void x86_64_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch);