- /* On PPC and RS6000 variants that have no floating-point
- registers, the next two members will be -1. */
- int ppc_fp0_regnum; /* floating-point register 0 */
- int ppc_fpscr_regnum; /* Floating point status and condition
- register */
-
- int ppc_sr0_regnum; /* segment register 0, or -1 on
- variants that have no segment
- registers. */
-
- int ppc_mq_regnum; /* Multiply/Divide extension register */
- int ppc_vr0_regnum; /* First AltiVec register */
- int ppc_vrsave_regnum; /* Last AltiVec register */
- int ppc_ev0_regnum; /* First ev register */
- int ppc_ev31_regnum; /* Last ev register */
- int ppc_acc_regnum; /* SPE 'acc' register */
- int ppc_spefscr_regnum; /* SPE 'spefscr' register */
- int lr_frame_offset; /* Offset to ABI specific location where
- link register is saved. */
+ /* Not all PPC and RS6000 variants will have the registers
+ represented below. A -1 is used to indicate that the register
+ is not present in this variant. */
+
+ /* Floating-point registers. */
+ int ppc_fp0_regnum; /* Floating-point register 0. */
+ int ppc_fpscr_regnum; /* fp status and condition register. */
+
+ /* Multiplier-Quotient Register (older POWER architectures only). */
+ int ppc_mq_regnum;
+
+ /* POWER7 VSX registers. */
+ int ppc_vsr0_regnum; /* First VSX register. */
+ int ppc_vsr0_upper_regnum; /* First right most dword vsx register. */
+ int ppc_efpr0_regnum; /* First Extended FP register. */
+
+ /* Altivec registers. */
+ int ppc_vr0_regnum; /* First AltiVec register. */
+ int ppc_vrsave_regnum; /* Last AltiVec register. */
+
+ /* Altivec pseudo-register vX aliases for the raw vrX
+ registers. */
+ int ppc_v0_alias_regnum;
+
+ /* SPE registers. */
+ int ppc_ev0_upper_regnum; /* First GPR upper half register. */
+ int ppc_ev0_regnum; /* First ev register. */
+ int ppc_acc_regnum; /* SPE 'acc' register. */
+ int ppc_spefscr_regnum; /* SPE 'spefscr' register. */
+
+ /* Program Priority Register. */
+ int ppc_ppr_regnum;
+
+ /* Data Stream Control Register. */
+ int ppc_dscr_regnum;
+
+ /* Target Address Register. */
+ int ppc_tar_regnum;
+
+ /* Decimal 128 registers. */
+ int ppc_dl0_regnum; /* First Decimal128 argument register pair. */
+
+ int have_ebb;
+
+ /* PMU registers. */
+ int ppc_mmcr0_regnum;
+ int ppc_mmcr2_regnum;
+ int ppc_siar_regnum;
+ int ppc_sdar_regnum;
+ int ppc_sier_regnum;
+
+ /* Hardware Transactional Memory registers. */
+ int have_htm_spr;
+ int have_htm_core;
+ int have_htm_fpu;
+ int have_htm_altivec;
+ int have_htm_vsx;
+ int ppc_cppr_regnum;
+ int ppc_cdscr_regnum;
+ int ppc_ctar_regnum;
+
+ /* HTM pseudo registers. */
+ int ppc_cdl0_regnum;
+ int ppc_cvsr0_regnum;
+ int ppc_cefpr0_regnum;
+
+ /* Offset to ABI specific location where link register is saved. */
+ int lr_frame_offset;
+
+ /* An array of integers, such that sim_regno[I] is the simulator
+ register number for GDB register number I, or -1 if the
+ simulator does not implement that register. */
+ int *sim_regno;
+
+ /* ISA-specific types. */
+ struct type *ppc_builtin_type_vec64;
+ struct type *ppc_builtin_type_vec128;
+
+ int (*ppc_syscall_record) (struct regcache *regcache);