|
|
|
|
|
|
|
|
|
|
xen-changelog
[Xen-changelog] [xen-unstable] [XEN][EMUL] x86 emulator should support 3
# HG changeset patch
# User kfraser@xxxxxxxxxxxxxxxxxxxxxxx
# Node ID 869937819ed95ead0468a6c64b4aa753a4b8ab76
# Parent 9158ecb9045fd533f602378adb4abe41947ef781
[XEN][EMUL] x86 emulator should support 32-bit offsets in real mode.
Signed-off-by: Keir Fraser <keir@xxxxxxxxxxxxx>
---
xen/arch/x86/x86_emulate.c | 9 ++-------
1 files changed, 2 insertions(+), 7 deletions(-)
diff -r 9158ecb9045f -r 869937819ed9 xen/arch/x86/x86_emulate.c
--- a/xen/arch/x86/x86_emulate.c Tue Jun 27 09:54:05 2006 +0100
+++ b/xen/arch/x86/x86_emulate.c Tue Jun 27 10:36:51 2006 +0100
@@ -374,9 +374,8 @@ do{ __asm__ __volatile__ (
/* Access/update address held in a register, based on addressing mode. */
#define register_address(sel, reg) \
- ((ad_bytes == sizeof(unsigned long)) ? (reg) : \
- ((mode == X86EMUL_MODE_REAL) ? /* implies ad_bytes == 2 */ \
- (((unsigned long)(sel) << 4) + ((reg) & 0xffff)) : \
+ (((mode == X86EMUL_MODE_REAL) ? ((unsigned long)(sel) << 4) : 0) + \
+ ((ad_bytes == sizeof(unsigned long)) ? (reg) : \
((reg) & ((1UL << (ad_bytes << 3)) - 1))))
#define register_address_increment(reg, inc) \
do { \
@@ -510,10 +509,6 @@ x86_emulate_memop(
}
done_prefixes:
- /* Note quite the same as 80386 real mode, but hopefully good enough. */
- if ( (mode == X86EMUL_MODE_REAL) && (ad_bytes != 2) )
- goto cannot_emulate;
-
/* REX prefix. */
if ( (mode == X86EMUL_MODE_PROT64) && ((b & 0xf0) == 0x40) )
{
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|
<Prev in Thread] |
Current Thread |
[Next in Thread> |
- [Xen-changelog] [xen-unstable] [XEN][EMUL] x86 emulator should support 32-bit offsets in real mode.,
Xen patchbot-unstable <=
|
|
|
|
|