gdbserver: Add a function to set the XSAVE mask and size.
authorJohn Baldwin <jhb@FreeBSD.org>
Mon, 28 Aug 2023 21:18:19 +0000 (14:18 -0700)
committerJohn Baldwin <jhb@FreeBSD.org>
Mon, 28 Aug 2023 21:18:19 +0000 (14:18 -0700)
commit03e6fe7e0a6fc4adccf59681962490a10fb31f7c
tree264e4e5f5946d0836d8f27f4e31c9ff54806a29c
parent8938f5311757ebd7dc88edb860d568d26756ac3b
gdbserver: Add a function to set the XSAVE mask and size.

Make x86_xcr0 private to i387-fp.cc and use i387_set_xsave_mask to set
the value instead.  Add a static global instance of x86_xsave_layout
and initialize it in the new function as well to be used in a future
commit to parse XSAVE extended state regions.

Update the Linux port to use this function rather than setting
x86_xcr0 directly.  In the case that XML is not supported, don't
bother setting x86_xcr0 to the default value but just omit the call to
i387_set_xsave_mask as i387-fp.cc defaults to the SSE case used for
non-XML.

In addition, use x86_xsave_length to determine the size of the XSAVE
register set via CPUID.

Approved-By: Simon Marchi <simon.marchi@efficios.com>
gdbserver/configure.srv
gdbserver/i387-fp.cc
gdbserver/i387-fp.h
gdbserver/linux-x86-low.cc