diff mbox series

[09/10] i386: hvf: simplify and fix in/out handling

Message ID 20171003134540.21625-10-pbonzini@redhat.com
State New
Headers show
Series i386: hvf: miscellaneous cleanups | expand

Commit Message

Paolo Bonzini Oct. 3, 2017, 1:45 p.m. UTC
Reading a 32-bit port should clear the upper 32-bits of the register.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 target/i386/hvf/hvf.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
diff mbox series

Patch

diff --git a/target/i386/hvf/hvf.c b/target/i386/hvf/hvf.c
index 5194b94591..35e39afefd 100644
--- a/target/i386/hvf/hvf.c
+++ b/target/i386/hvf/hvf.c
@@ -748,16 +748,16 @@  int hvf_vcpu_exec(CPUState *cpu)
                 } else if (size == 2) {
                     AX(env) = val;
                 } else if (size == 4) {
-                    RAX(env) = (uint32_t)val;
+                    RRX(env) = (uint32_t)val;
                 } else {
-                    VM_PANIC("size");
+                    RRX(env) = (uint64_t)val;
                 }
                 RIP(env) += ins_len;
                 store_regs(cpu);
                 break;
             } else if (!string && !in) {
-                RAX(env) = rreg(cpu->hvf_fd, HV_X86_RAX);
-                hvf_handle_io(env, port, &RAX(env), 1, size, 1);
+                RRX(env) = rreg(cpu->hvf_fd, HV_X86_RAX);
+                hvf_handle_io(env, port, &RRX(env), 1, size, 1);
                 macvm_set_rip(cpu, rip + ins_len);
                 break;
             }