From 7ad10968513bdf1f4af09a74f6b51547547ad2bd Mon Sep 17 00:00:00 2001 From: Hui Zhu Date: Thu, 30 Apr 2009 03:12:17 +0000 Subject: I386 architecture process record and replay support. * i386-tdep.c (PREFIX_REPZ, PREFIX_REPNZ, PREFIX_LOCK, PREFIX_DATA, PREFIX_ADDR): New macros. Help decode the i386 instruction set. (aflag, dflag, override, modrm, mod, reg, rm, ot, i386_record_pc): New variables. Ditto. (i386_record_modrm, i386_record_lea_modrm_addr, i386_record_lea_modrm): New functions. Ditto. (i386_process_record): New function. Parse the instruction in address "addr" and record the values of registers and memory that will be changed by this instruction. (i386_gdbarch_init): Set "i386_process_record" to GDBARCH "process_record" interface. * i386-tdep.h (gdbarch_tdep): New function pointers "i386_intx80_record" and "i386_sysenter_record" that point to the function that can record "intx80" and "sysenter" execute log. --- gdb/i386-tdep.h | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'gdb/i386-tdep.h') diff --git a/gdb/i386-tdep.h b/gdb/i386-tdep.h index 6bebdfc..c73e7d9 100644 --- a/gdb/i386-tdep.h +++ b/gdb/i386-tdep.h @@ -106,6 +106,12 @@ struct gdbarch_tdep /* ISA-specific data types. */ struct type *i386_mmx_type; struct type *i386_sse_type; + + /* Process record/replay target. */ + /* Parse intx80 args. */ + int (*i386_intx80_record) (struct regcache *regcache); + /* Parse sysenter args. */ + int (*i386_sysenter_record) (struct regcache *regcache); }; /* Floating-point registers. */ -- cgit v1.1