mirror of https://gitlab.com/qemu-project/qemu
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
7cac7aa704
The call to xgetbv() is passing the ecx value for cpuid function 0xD, index 0. The xgetbv call thus returns false (OSXSAVE is bit 27, which is well out of the range of CPUID[0xD,0].ECX) and eax is not modified. While fixing it, cache the whole computation of supported XCR0 bits since it will be used for more than just CPUID leaf 0xD. Furthermore, unsupported subleafs of CPUID 0xD (including all those corresponding to zero bits in host's XCR0) must be hidden; if OSXSAVE is not set at all, the whole of CPUID leaf 0xD plus the XSAVE bit must be hidden. Finally, unconditionally drop XSTATE_BNDREGS_MASK and XSTATE_BNDCSR_MASK; real hardware will only show them if the MPX bit is set in CPUID; this is never the case for hvf_get_supported_cpuid() because QEMU's Hypervisor.framework support does not handle the VMX fields related to MPX (even in the unlikely possibility that the host has MPX enabled). So hide those bits in the new cache_host_xcr0(). Cc: Phil Dennis-Jordan <lists@philjordan.eu> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> |
1 month ago | |
---|---|---|
.. | ||
aio-posix.c | 2 months ago | |
aio-posix.h | 2 years ago | |
aio-wait.c | 2 years ago | |
aio-win32.c | 2 months ago | |
aiocb.c | ||
async.c | 2 months ago | |
atomic64.c | 3 years ago | |
base64.c | 4 years ago | |
bitmap.c | 2 years ago | |
bitops.c | 2 years ago | |
block-helpers.c | 2 months ago | |
block-helpers.h | 2 months ago | |
buffer.c | 4 years ago | |
bufferiszero.c | 6 months ago | |
cacheflush.c | 1 year ago | |
chardev_open.c | 12 months ago | |
compatfd.c | 3 years ago | |
coroutine-sigaltstack.c | 1 year ago | |
coroutine-ucontext.c | 11 months ago | |
coroutine-windows.c | 2 years ago | |
cpuinfo-aarch64.c | 4 months ago | |
cpuinfo-i386.c | 1 month ago | |
cpuinfo-loongarch.c | 6 months ago | |
cpuinfo-ppc.c | 4 months ago | |
cpuinfo-riscv.c | 1 month ago | |
crc-ccitt.c | 4 years ago | |
crc32c.c | 2 years ago | |
cutils.c | 3 months ago | |
dbus.c | 5 years ago | |
defer-call.c | 1 year ago | |
drm.c | 4 years ago | |
envlist.c | 3 months ago | |
error-report.c | 7 months ago | |
error.c | 2 years ago | |
event_notifier-posix.c | 3 years ago | |
event_notifier-win32.c | 3 years ago | |
fdmon-epoll.c | 2 months ago | |
fdmon-io_uring.c | 11 months ago | |
fdmon-poll.c | 2 years ago | |
fifo8.c | 3 months ago | |
filemonitor-inotify.c | 1 year ago | |
filemonitor-stub.c | 4 years ago | |
getauxval.c | 4 months ago | |
guest-random.c | 1 year ago | |
hbitmap.c | 3 months ago | |
hexdump.c | 6 months ago | |
host-utils.c | 2 years ago | |
id.c | 4 years ago | |
int128.c | 2 years ago | |
interval-tree.c | 1 year ago | |
iov.c | 2 months ago | |
iova-tree.c | 2 months ago | |
keyval.c | 3 years ago | |
lockcnt.c | 2 months ago | |
log.c | 7 months ago | |
main-loop.c | 11 months ago | |
memalign.c | 3 years ago | |
memfd.c | 2 months ago | |
meson.build | 5 months ago | |
mmap-alloc.c | 2 years ago | |
module.c | 4 months ago | |
notify.c | 9 months ago | |
nvdimm-utils.c | 4 years ago | |
osdep.c | 6 months ago | |
oslib-posix.c | 4 months ago | |
oslib-win32.c | 10 months ago | |
path.c | 6 years ago | |
qdist.c | 1 year ago | |
qemu-co-shared-resource.c | 2 months ago | |
qemu-co-timeout.c | 2 years ago | |
qemu-config.c | 8 months ago | |
qemu-coroutine-io.c | 2 years ago | |
qemu-coroutine-lock.c | 2 years ago | |
qemu-coroutine-sleep.c | 2 years ago | |
qemu-coroutine.c | 2 months ago | |
qemu-option.c | 7 months ago | |
qemu-print.c | 4 years ago | |
qemu-progress.c | 3 years ago | |
qemu-sockets.c | 1 month ago | |
qemu-thread-common.h | 6 years ago | |
qemu-thread-posix.c | 2 years ago | |
qemu-thread-win32.c | 2 years ago | |
qemu-timer-common.c | 4 years ago | |
qemu-timer.c | 2 months ago | |
qht.c | 2 years ago | |
qsp.c | 11 months ago | |
qtree.c | 2 years ago | |
range.c | 1 year ago | |
rcu.c | 11 months ago | |
readline.c | 6 months ago | |
reserved-region.c | 1 year ago | |
selfmap.c | 1 year ago | |
stats64.c | 2 years ago | |
sys_membarrier.c | ||
systemd.c | 2 years ago | |
thread-context.c | 2 years ago | |
thread-pool.c | 1 year ago | |
throttle.c | 1 year ago | |
timed-average.c | 3 months ago | |
trace-events | 1 year ago | |
trace.h | 4 years ago | |
transactions.c | 3 years ago | |
unicode.c | 6 years ago | |
userfaultfd.c | 2 months ago | |
uuid.c | 1 year ago | |
vfio-helpers.c | 2 years ago | |
vhost-user-server.c | 5 months ago | |
yank.c | 10 months ago |