The end goal of the series is to change the definition of aarch64_feature_flags from a uint64_t typedef to a class with 128 bits of storage. This class is a new template bitmap type that uses operator overloading to mimic the existing integer interface as much as possible.
The changes are mostly in the backend, but patch 10/11 introduces this new bitmap type in the middle end. Compared to the previous version: Patches 01-03 are the previous patches 01, 02 and 05. Patch 04 is a rebased version of the previous 06. Patch 05-06 are the previous 07-08. Patches 07 and 09 are a couple of hunks from the old 03/04. Patch 08 redefines the TARGET_* macros in the manner suggested by Richard S. Patch 10 intoduces the new templated bbitmap type. Patch 11 is a replacement for the old 12, using the new type from patch 10. This is bootstrapped and regression tested on aarch64. Is it ok for master?