This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
[patch] Obvious patches for x86-64
- From: Michal Ludvig <mludvig at suse dot cz>
- To: gdb-patches at sources dot redhat dot com
- Date: Mon, 29 Apr 2002 20:30:55 +0200
- Subject: [patch] Obvious patches for x86-64
- Organization: SuSE CR
Hi,
I have committed these simple patches. Two of them are explicit
typecasts to prevent warnings, while the largest one adds comments with
regnumbers to prevent my mistakes :-)
Michal Ludvig
--
* SuSE CR, s.r.o * mludvig@suse.cz
* +420 2 9654 5373 * http://www.suse.cz
2002-04-29 Michal Ludvig <mludvig@suse.cz>
* x86-64-linux-nat.c (fill_gregset): Explicit cast to avoid warning.
* x86-64-tdep.c (i386_gdbarch_init): Ditto.
(x86_64_register_info_table): Added comments with register numbers.
Index: x86-64-linux-nat.c
===================================================================
RCS file: /cvs/src/src/gdb/x86-64-linux-nat.c,v
retrieving revision 1.9
diff -c -3 -p -r1.9 x86-64-linux-nat.c
*** x86-64-linux-nat.c 10 Apr 2002 12:12:33 -0000 1.9
--- x86-64-linux-nat.c 29 Apr 2002 18:21:45 -0000
*************** fill_gregset (elf_gregset_t * gregsetp,
*** 158,164 ****
for (i = 0; i < x86_64_num_gregs; i++)
if ((regno == -1 || regno == i))
! read_register_gen (i, regp + x86_64_regmap[i]);
}
/* Fetch all general-purpose registers from process/thread TID and
--- 158,164 ----
for (i = 0; i < x86_64_num_gregs; i++)
if ((regno == -1 || regno == i))
! read_register_gen (i, (char *) (regp + x86_64_regmap[i]));
}
/* Fetch all general-purpose registers from process/thread TID and
*************** kernel_u_size (void)
*** 446,449 ****
{
return (sizeof (struct user));
}
-
--- 446,448 ----
Index: x86-64-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/x86-64-tdep.c,v
retrieving revision 1.14
diff -c -3 -p -r1.14 x86-64-tdep.c
*** x86-64-tdep.c 27 Apr 2002 00:12:54 -0000 1.14
--- x86-64-tdep.c 29 Apr 2002 18:21:45 -0000
*************** struct register_info
*** 49,109 ****
/* x86_64_register_raw_size_table[i] is the number of bytes of storage in
GDB's register array occupied by register i. */
static struct register_info x86_64_register_info_table[] = {
! {8, "rax", &builtin_type_int64},
! {8, "rbx", &builtin_type_int64},
! {8, "rcx", &builtin_type_int64},
! {8, "rdx", &builtin_type_int64},
! {8, "rsi", &builtin_type_int64},
! {8, "rdi", &builtin_type_int64},
! {8, "rbp", &builtin_type_void_func_ptr},
! {8, "rsp", &builtin_type_void_func_ptr},
! {8, "r8", &builtin_type_int64},
! {8, "r9", &builtin_type_int64},
! {8, "r10", &builtin_type_int64},
! {8, "r11", &builtin_type_int64},
! {8, "r12", &builtin_type_int64},
! {8, "r13", &builtin_type_int64},
! {8, "r14", &builtin_type_int64},
! {8, "r15", &builtin_type_int64},
! {8, "rip", &builtin_type_void_func_ptr},
! {4, "eflags", &builtin_type_int32},
! {4, "ds", &builtin_type_int32},
! {4, "es", &builtin_type_int32},
! {4, "fs", &builtin_type_int32},
! {4, "gs", &builtin_type_int32},
! {10, "st0", &builtin_type_i387_ext},
! {10, "st1", &builtin_type_i387_ext},
! {10, "st2", &builtin_type_i387_ext},
! {10, "st3", &builtin_type_i387_ext},
! {10, "st4", &builtin_type_i387_ext},
! {10, "st5", &builtin_type_i387_ext},
! {10, "st6", &builtin_type_i387_ext},
! {10, "st7", &builtin_type_i387_ext},
! {4, "fctrl", &builtin_type_int32},
! {4, "fstat", &builtin_type_int32},
! {4, "ftag", &builtin_type_int32},
! {4, "fiseg", &builtin_type_int32},
! {4, "fioff", &builtin_type_int32},
! {4, "foseg", &builtin_type_int32},
! {4, "fooff", &builtin_type_int32},
! {4, "fop", &builtin_type_int32},
! {16, "xmm0", &builtin_type_v4sf},
! {16, "xmm1", &builtin_type_v4sf},
! {16, "xmm2", &builtin_type_v4sf},
! {16, "xmm3", &builtin_type_v4sf},
! {16, "xmm4", &builtin_type_v4sf},
! {16, "xmm5", &builtin_type_v4sf},
! {16, "xmm6", &builtin_type_v4sf},
! {16, "xmm7", &builtin_type_v4sf},
! {16, "xmm8", &builtin_type_v4sf},
! {16, "xmm9", &builtin_type_v4sf},
! {16, "xmm10", &builtin_type_v4sf},
! {16, "xmm11", &builtin_type_v4sf},
! {16, "xmm12", &builtin_type_v4sf},
! {16, "xmm13", &builtin_type_v4sf},
! {16, "xmm14", &builtin_type_v4sf},
! {16, "xmm15", &builtin_type_v4sf},
! {4, "mxcsr", &builtin_type_int32}
};
/* Number of all registers */
--- 49,109 ----
/* x86_64_register_raw_size_table[i] is the number of bytes of storage in
GDB's register array occupied by register i. */
static struct register_info x86_64_register_info_table[] = {
! /* 0 */ {8, "rax", &builtin_type_int64},
! /* 1 */ {8, "rbx", &builtin_type_int64},
! /* 2 */ {8, "rcx", &builtin_type_int64},
! /* 3 */ {8, "rdx", &builtin_type_int64},
! /* 4 */ {8, "rsi", &builtin_type_int64},
! /* 5 */ {8, "rdi", &builtin_type_int64},
! /* 6 */ {8, "rbp", &builtin_type_void_func_ptr},
! /* 7 */ {8, "rsp", &builtin_type_void_func_ptr},
! /* 8 */ {8, "r8", &builtin_type_int64},
! /* 9 */ {8, "r9", &builtin_type_int64},
! /* 10 */ {8, "r10", &builtin_type_int64},
! /* 11 */ {8, "r11", &builtin_type_int64},
! /* 12 */ {8, "r12", &builtin_type_int64},
! /* 13 */ {8, "r13", &builtin_type_int64},
! /* 14 */ {8, "r14", &builtin_type_int64},
! /* 15 */ {8, "r15", &builtin_type_int64},
! /* 16 */ {8, "rip", &builtin_type_void_func_ptr},
! /* 17 */ {4, "eflags", &builtin_type_int32},
! /* 18 */ {4, "ds", &builtin_type_int32},
! /* 19 */ {4, "es", &builtin_type_int32},
! /* 20 */ {4, "fs", &builtin_type_int32},
! /* 21 */ {4, "gs", &builtin_type_int32},
! /* 22 */ {10, "st0", &builtin_type_i387_ext},
! /* 23 */ {10, "st1", &builtin_type_i387_ext},
! /* 24 */ {10, "st2", &builtin_type_i387_ext},
! /* 25 */ {10, "st3", &builtin_type_i387_ext},
! /* 26 */ {10, "st4", &builtin_type_i387_ext},
! /* 27 */ {10, "st5", &builtin_type_i387_ext},
! /* 28 */ {10, "st6", &builtin_type_i387_ext},
! /* 29 */ {10, "st7", &builtin_type_i387_ext},
! /* 30 */ {4, "fctrl", &builtin_type_int32},
! /* 31 */ {4, "fstat", &builtin_type_int32},
! /* 32 */ {4, "ftag", &builtin_type_int32},
! /* 33 */ {4, "fiseg", &builtin_type_int32},
! /* 34 */ {4, "fioff", &builtin_type_int32},
! /* 35 */ {4, "foseg", &builtin_type_int32},
! /* 36 */ {4, "fooff", &builtin_type_int32},
! /* 37 */ {4, "fop", &builtin_type_int32},
! /* 38 */ {16, "xmm0", &builtin_type_v4sf},
! /* 39 */ {16, "xmm1", &builtin_type_v4sf},
! /* 40 */ {16, "xmm2", &builtin_type_v4sf},
! /* 41 */ {16, "xmm3", &builtin_type_v4sf},
! /* 42 */ {16, "xmm4", &builtin_type_v4sf},
! /* 43 */ {16, "xmm5", &builtin_type_v4sf},
! /* 44 */ {16, "xmm6", &builtin_type_v4sf},
! /* 45 */ {16, "xmm7", &builtin_type_v4sf},
! /* 46 */ {16, "xmm8", &builtin_type_v4sf},
! /* 47 */ {16, "xmm9", &builtin_type_v4sf},
! /* 48 */ {16, "xmm10", &builtin_type_v4sf},
! /* 49 */ {16, "xmm11", &builtin_type_v4sf},
! /* 50 */ {16, "xmm12", &builtin_type_v4sf},
! /* 51 */ {16, "xmm13", &builtin_type_v4sf},
! /* 52 */ {16, "xmm14", &builtin_type_v4sf},
! /* 53 */ {16, "xmm15", &builtin_type_v4sf},
! /* 54 */ {4, "mxcsr", &builtin_type_int32}
};
/* Number of all registers */
*************** x86_64_push_arguments (int nargs, struct
*** 609,615 ****
static int int_parameter_registers[INT_REGS] = {
5 /* RDI */ , 4 /* RSI */ ,
3 /* RDX */ , 2 /* RCX */ ,
! 8 /* R8 */ , 9 /* R9 */
};
/* XMM0 - XMM15 */
static int sse_parameter_registers[SSE_REGS] = {
--- 609,615 ----
static int int_parameter_registers[INT_REGS] = {
5 /* RDI */ , 4 /* RSI */ ,
3 /* RDX */ , 2 /* RCX */ ,
! 8 /* R8 */ , 9 /* R9 */
};
/* XMM0 - XMM15 */
static int sse_parameter_registers[SSE_REGS] = {
*************** i386_gdbarch_init (struct gdbarch_info i
*** 1064,1070 ****
set_gdbarch_inner_than (gdbarch, core_addr_lessthan);
! set_gdbarch_breakpoint_from_pc (gdbarch, x86_64_breakpoint_from_pc);
/* Amount PC must be decremented by after a breakpoint. This is often the
--- 1064,1072 ----
set_gdbarch_inner_than (gdbarch, core_addr_lessthan);
! set_gdbarch_breakpoint_from_pc (gdbarch,
! (gdbarch_breakpoint_from_pc_ftype *)
! x86_64_breakpoint_from_pc);
/* Amount PC must be decremented by after a breakpoint. This is often the