# HG changeset patch
# User kfraser@xxxxxxxxxxxxxxxxxxxxx
# Node ID e5cdebf9d8ef6f3d3da97da527e8a87921354dca
# Parent 058f4a2a864264aea7cc0bd9e95947c9287142f8
[VMXASSIST] Fix data32/addr32 instruction decode issue.
Signed-off-by: Yunhong Jiang <yunhong.jiang@xxxxxxxxx>
---
tools/firmware/vmxassist/vm86.c | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)
diff -r 058f4a2a8642 -r e5cdebf9d8ef tools/firmware/vmxassist/vm86.c
--- a/tools/firmware/vmxassist/vm86.c Fri Sep 29 11:10:14 2006 +0100
+++ b/tools/firmware/vmxassist/vm86.c Fri Sep 29 11:11:49 2006 +0100
@@ -1412,12 +1412,14 @@ opcode(struct regs *regs)
{
int addr, data;
int seg = segment(prefix, regs, regs->vds);
+ int offset = prefix & ADDR32? fetch32(regs) :
fetch16(regs);
+
if (prefix & DATA32) {
- addr = address(regs, seg,
fetch32(regs));
+ addr = address(regs, seg, offset);
data = read32(addr);
setreg32(regs, 0, data);
} else {
- addr = address(regs, seg,
fetch16(regs));
+ addr = address(regs, seg, offset);
data = read16(addr);
setreg16(regs, 0, data);
}
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|