KVM: x86 emulator: fix JMP_REL
authorIzik Eidus <izike@qumranet.com>
Sun, 11 Nov 2007 12:40:48 +0000 (14:40 +0200)
committerAvi Kivity <avi@qumranet.com>
Tue, 27 Nov 2007 13:08:22 +0000 (15:08 +0200)
Change JMP_REL to call to register_address_increment(): the operands size
should not effect the calculation of the eip, instead the ad_bytes should
affect it.

Signed-off-by: Izik Eidus <izike@qumranet.com>
Signed-off-by: Avi Kivity <avi@qumranet.com>
drivers/kvm/x86_emulate.c

index 33b181451557ad926df9c09a4a401c7fc71ae933..a1a9c9be39b3a549a6ca35d7ae13dfab6d0ef96a 100644 (file)
@@ -448,8 +448,7 @@ struct operand {
 
 #define JMP_REL(rel)                                                   \
        do {                                                            \
-               _eip += (int)(rel);                                     \
-               _eip = ((op_bytes == 2) ? (uint16_t)_eip : (uint32_t)_eip); \
+               register_address_increment(_eip, rel);                  \
        } while (0)
 
 /*