On 12/10/19 9:24 PM, Suravee Suthikulpanit wrote:
The value returned by ECX[1] indicates the alignment of state
component i when the compacted format of the extended region of an
XSAVE area is used (see Section 13.4.3). If ECX[1] returns 0, state
component i is located immediately following the preceding state
component; if ECX[1] returns 1, state component i is located on the
next 64-byte boundary following the preceding state component.
Essentially, if an implementation needs state alignment or (up to) 64
bytes of padding, it could use this existing architecture for it.
Please correct me if I am wrong, but I believe this is similar to the
case mentioned in the commit ef78f2a4bf84 ('x86/fpu: Check
CPU-provided sizes against struct declarations'), where it mentions
inconsistency b/w the MPX 'bndcsr' state and the C structures.
Yep, but I fixed that by padding the C structure, not silencing the
warning. Also *ALL* MPX implementations have had the same size for that
state.