I would prefer feature-based. TARGET_HARD_FLOAT represents the presence of FPUs.
TARGET_FPRS represents the presence of FP register set because one variant used GPRs for FP operations. E500 then added another variant with double-precision FP in the GPRs. PowerPC is an architecture and the mess of FP variants clearly is not a architecture allowing compatibility. David