target-i386: fix decoding of negative 4-byte displacements Negative four byte displacements need to be sign-extended after c086b783eb7a578993d6d2ab62c4c2666800b63d. Do so. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Acked-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
diff --git a/target-i386/translate.c b/target-i386/translate.c index 38c6016..708b0a1 100644 --- a/target-i386/translate.c +++ b/target-i386/translate.c
@@ -2016,7 +2016,7 @@ break; default: case 2: - disp = ldl_code(s->pc); + disp = (int32_t)ldl_code(s->pc); s->pc += 4; break; }