diff options
author | Izik Eidus <izike@qumranet.com> | 2007-11-11 14:40:48 +0200 |
---|---|---|
committer | Avi Kivity <avi@qumranet.com> | 2007-11-27 15:08:22 +0200 |
commit | e826ec9ae2baf9980402e85f0bbe1dac53ceb110 (patch) | |
tree | d931387123cef2bec18115e1a710b60068c68efa /drivers/kvm | |
parent | 8c27eba54970c6ebbb408186e5baa2274435e869 (diff) | |
download | op-kernel-dev-e826ec9ae2baf9980402e85f0bbe1dac53ceb110.zip op-kernel-dev-e826ec9ae2baf9980402e85f0bbe1dac53ceb110.tar.gz |
KVM: x86 emulator: fix JMP_REL
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>
Diffstat (limited to 'drivers/kvm')
-rw-r--r-- | drivers/kvm/x86_emulate.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/drivers/kvm/x86_emulate.c b/drivers/kvm/x86_emulate.c index 33b1814..a1a9c9b 100644 --- a/drivers/kvm/x86_emulate.c +++ b/drivers/kvm/x86_emulate.c @@ -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) /* |