Reuse the PPC64 HVA detection algorithm for ARM and AArch64. This is a
nice code deduplication, since they are roughly identical. A few virtual
method extension points are needed to understand how big an HVA can be
and what element types it can have for a given architecture.
Also make the record expansion code work in the presence of non-virtual
bases.
Crud, this is incorrect. We need to know which base class has the field so we can do the adjustment for non-primary bases. This code ends up passing the x field twice and losing the y field: