* 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:
parent
13d40af009
commit
af23364752
10 changed files with 87 additions and 40 deletions
|
@ -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.
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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 */
|
||||||
|
|
|
@ -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 */
|
||||||
|
|
|
@ -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 */
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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 */
|
||||||
};
|
};
|
||||||
|
|
|
@ -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 */
|
||||||
};
|
};
|
||||||
|
|
|
@ -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 },
|
||||||
|
|
|
@ -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);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue