arm64: Detect more new processor features.

This one is somewhat tricky, as the existing ProcessorFeatures array is limited to PROCESSOR_FEATURE_MAX aka 64 entries, while this now defines features up to index 88.

To handle the higher number of features, this patch extends KUSER_SHARED_DATA with a separate second array for the later features. This requires updating an assert about its size.

If there's a better place to store the excess feature bits, I'm open for suggestions. As far as I can see, there's no obvious place that would be ABI visible where it should be stored. (I also see that upstream definitions of KUSER_SHARED_DATA has been extended with another new field that Wine doesn't have - so having our own data there probably isn't ideal.)

So if there's some other convenient way of storing this (e.g. a global variable in ntdll) that also works, but it would need to be accessible from both the PE and unix sides, so it's probably not very straightforward either?

Merge request reports

Loading