aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHui Zhu <teawater@gmail.com>2009-09-07 11:09:33 +0000
committerHui Zhu <teawater@gmail.com>2009-09-07 11:09:33 +0000
commitd7877f7ecfac904cf3ad238099c63db9e561b047 (patch)
tree9276feb190725395a7b79d488f100de9a4c003ac
parent2eee559322944130e16808a3049f60f80561f69a (diff)
downloadgdb-d7877f7ecfac904cf3ad238099c63db9e561b047.zip
gdb-d7877f7ecfac904cf3ad238099c63db9e561b047.tar.gz
gdb-d7877f7ecfac904cf3ad238099c63db9e561b047.tar.bz2
2009-09-06 Hui Zhu <teawater@gmail.com>
* i386-tdep.c (i386_record_check_override): Deleted. (i386_record_lea_modrm): Ditto. (i386_process_record): Ditto.
-rw-r--r--gdb/ChangeLog6
-rw-r--r--gdb/i386-tdep.c37
2 files changed, 17 insertions, 26 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 353bfc0..362428e 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,9 @@
+2009-09-06 Hui Zhu <teawater@gmail.com>
+
+ * i386-tdep.c (i386_record_check_override): Deleted.
+ (i386_record_lea_modrm): Ditto.
+ (i386_process_record): Ditto.
+
2009-09-05 Eli Zaretskii <eliz@gnu.org>
* config/djgpp/djconfig.sh: Fix for Autoconf 2.64.
diff --git a/gdb/i386-tdep.c b/gdb/i386-tdep.c
index 8b58a50..ab628c4 100644
--- a/gdb/i386-tdep.c
+++ b/gdb/i386-tdep.c
@@ -3148,26 +3148,6 @@ no_rm:
return 0;
}
-static int
-i386_record_check_override (struct i386_record_s *irp)
-{
- if (irp->override >= 0 && irp->override != X86_RECORD_DS_REGNUM)
- {
- ULONGEST orv, ds;
-
- regcache_raw_read_unsigned (irp->regcache,
- irp->regmap[irp->override],
- &orv);
- regcache_raw_read_unsigned (irp->regcache,
- irp->regmap[X86_RECORD_DS_REGNUM],
- &ds);
- if (orv != ds)
- return 1;
- }
-
- return 0;
-}
-
/* Record the value of the memory that willbe changed in current instruction
to "record_arch_list".
Return -1 if something wrong. */
@@ -3178,7 +3158,7 @@ i386_record_lea_modrm (struct i386_record_s *irp)
struct gdbarch *gdbarch = irp->gdbarch;
uint64_t addr;
- if (i386_record_check_override (irp))
+ if (irp->override >= 0)
{
warning (_("Process record ignores the memory change "
"of instruction at address %s because it "
@@ -4060,7 +4040,7 @@ reswitch:
/* mov EAX */
case 0xa2:
case 0xa3:
- if (i386_record_check_override (&ir))
+ if (ir.override >= 0)
{
warning (_("Process record ignores the memory change "
"of instruction at address 0x%s because "
@@ -4478,8 +4458,13 @@ reswitch:
ir.regmap[X86_RECORD_REDI_REGNUM],
&tmpulongest);
- ir.override = X86_RECORD_ES_REGNUM;
- if (ir.aflag && i386_record_check_override (&ir))
+ regcache_raw_read_unsigned (ir.regcache,
+ ir.regmap[X86_RECORD_ES_REGNUM],
+ &es);
+ regcache_raw_read_unsigned (ir.regcache,
+ ir.regmap[X86_RECORD_DS_REGNUM],
+ &ds);
+ if (ir.aflag && (es != ds))
{
/* addr += ((uint32_t) read_register (I386_ES_REGNUM)) << 4; */
warning (_("Process record ignores the memory "
@@ -5103,7 +5088,7 @@ reswitch:
opcode = opcode << 8 | ir.modrm;
goto no_support;
}
- if (i386_record_check_override (&ir))
+ if (ir.override >= 0)
{
warning (_("Process record ignores the memory "
"change of instruction at "
@@ -5154,7 +5139,7 @@ reswitch:
else
{
/* sidt */
- if (i386_record_check_override (&ir))
+ if (ir.override >= 0)
{
warning (_("Process record ignores the memory "
"change of instruction at "