Add support for AArch64 and ARM backends for v8.1 architecture extension. Briefly it is described on
http://community.arm.com/groups/processors/blog/2014/12/02/the-armv8-a-architecture-and-its-ongoing-development
[AArch64] Refactor AArch64NamedImmMapper to become dependent on subtarget features.
In order to introduce v8.1-specific entities, Mappers should be aware of SubtargetFeatures available.
This patch introduces refactoring, that will then allow to easily introduce:
- v8.1-specific "pan" PState for PStateMapper (PAN extension)
- v8.1-specific sysregs for SysRegMapper (LOR,VHE extensions)
[AArch64] Add v8.1a "Privileged Access Never" extension
[AArch64] Add v8.1a "Limited Ordering Regions" extension
[AArch64] Add v8.1a "Virtualization Host Extensions"
[AArch64] Add v8.1a atomic instructions
[AArch64] Add v8.1a "Rounding Double Multiply Add/Subtract" extension
[ARM] Add v8.1a "Rounding Double Multiply Add/Subtract" extension
[ARM] Add v8.1a "Privileged Access Never" extension
[AArch64, ARM] Add v8.1a architecture and generic cpu
We don't usually put commented code in, and there's basically not the slightest hope that i16 is going to become a legal type in the current SelectionDAG framework.