@@ -2423,12 +2423,12 @@ rs6000_pseudo_register_reggroup_p (struct gdbarch *gdbarch, int regnum,
|| IS_VSX_PSEUDOREG (tdep, regnum)
|| IS_EFP_PSEUDOREG (tdep, regnum));
- /* These are the e500 pseudo-registers or the POWER7 VSX registers. */
- if (IS_SPE_PSEUDOREG (tdep, regnum) || IS_VSX_PSEUDOREG (tdep, regnum))
- return group == all_reggroup || group == vector_reggroup;
- else
- /* PPC decimal128 or Extended FP pseudo-registers. */
- return group == all_reggroup || group == float_reggroup;
+ /* builtin_declong doesn't have TYPE_CODE_FLT, so it won't be
+ detected as a float register by default_register_reggroup_p. */
+ if (IS_DFP_PSEUDOREG (tdep, regnum) && group == float_reggroup)
+ return 1;
+
+ return default_register_reggroup_p (gdbarch, regnum, group);
}
/* The register format for RS/6000 floating point registers is always