Skip to content

Qemu does not force SSE data alignment

This bug has been copied automatically from: https://bugs.launchpad.net/qemu/+bug/1699567
Reported by 'Anatol Pomozov' on 2017-06-21 :

I have an OS that tries to use SSE operations. It works fine in qemu. But
it crashes when I try to run the OS at the host cpu using KVM.

The instruction that crahes with #GP(0) is
 movaps ADDR,%xmm0

The documentation says ADDR has to be 16-bytes alignment otherwise #GP is
generated. And indeed the problem was with the data alignment. After
adjusting it at my side the OS works fine both with Qemu and KVM.

It would be great if QEMU followed specification more closely and forced
SSE data alignment requirements. It will help to catch alignment issues
early and debug it easier.


$ qemu-system-x86_64 -version
QEMU emulator version 2.9.50 (v2.9.0-1363-g95eef1c68b)
Copyright (c) 2003-2017 Fabrice Bellard and the QEMU Project developers
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information