1/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
2|* *|
3|* Register Information Header Fragment *|
4|* *|
5|* Automatically generated file, do not edit! *|
6|* *|
7\*===----------------------------------------------------------------------===*/
8
9#include "llvm/CodeGen/TargetRegisterInfo.h"
10
11namespace llvm {
12
13class PPCFrameLowering;
14
15struct PPCGenRegisterInfo : public TargetRegisterInfo {
16 explicit PPCGenRegisterInfo(unsigned RA, unsigned D = 0, unsigned E = 0,
17 unsigned PC = 0, unsigned HwMode = 0);
18 unsigned composeSubRegIndicesImpl(unsigned, unsigned) const override;
19 unsigned reverseComposeSubRegIndicesImpl(unsigned, unsigned) const override;
20 LaneBitmask composeSubRegIndexLaneMaskImpl(unsigned, LaneBitmask) const override;
21 LaneBitmask reverseComposeSubRegIndexLaneMaskImpl(unsigned, LaneBitmask) const override;
22 const TargetRegisterClass *getSubClassWithSubReg(const TargetRegisterClass *, unsigned) const override;
23 const TargetRegisterClass *getSubRegisterClass(const TargetRegisterClass *, unsigned) const override;
24 const RegClassWeight &getRegClassWeight(const TargetRegisterClass *RC) const override;
25 unsigned getRegUnitWeight(MCRegUnit RegUnit) const override;
26 unsigned getNumRegPressureSets() const override;
27 const char *getRegPressureSetName(unsigned Idx) const override;
28 unsigned getRegPressureSetLimit(const MachineFunction &MF, unsigned Idx) const override;
29 const int *getRegClassPressureSets(const TargetRegisterClass *RC) const override;
30 const int *getRegUnitPressureSets(MCRegUnit RegUnit) const override;
31 ArrayRef<const char *> getRegMaskNames() const override;
32 ArrayRef<const uint32_t *> getRegMasks() const override;
33 bool isGeneralPurposeRegister(const MachineFunction &, MCRegister) const override;
34 bool isGeneralPurposeRegisterClass(const TargetRegisterClass *RC) const override;
35 bool isFixedRegister(const MachineFunction &, MCRegister) const override;
36 bool isArgumentRegister(const MachineFunction &, MCRegister) const override;
37 bool isConstantPhysReg(MCRegister PhysReg) const override final;
38 /// Devirtualized TargetFrameLowering.
39 static const PPCFrameLowering *getFrameLowering(
40 const MachineFunction &MF);
41};
42
43namespace PPC { // Register classes
44 extern const TargetRegisterClass VSSRCRegClass;
45 extern const TargetRegisterClass GPRCRegClass;
46 extern const TargetRegisterClass GPRC_NOR0RegClass;
47 extern const TargetRegisterClass GPRC_and_GPRC_NOR0RegClass;
48 extern const TargetRegisterClass CRBITRCRegClass;
49 extern const TargetRegisterClass F4RCRegClass;
50 extern const TargetRegisterClass GPRC32RegClass;
51 extern const TargetRegisterClass CRRCRegClass;
52 extern const TargetRegisterClass CARRYRCRegClass;
53 extern const TargetRegisterClass CTRRCRegClass;
54 extern const TargetRegisterClass LRRCRegClass;
55 extern const TargetRegisterClass VRSAVERCRegClass;
56 extern const TargetRegisterClass SPILLTOVSRRCRegClass;
57 extern const TargetRegisterClass VSFRCRegClass;
58 extern const TargetRegisterClass G8RCRegClass;
59 extern const TargetRegisterClass G8RC_NOX0RegClass;
60 extern const TargetRegisterClass SPILLTOVSRRC_and_VSFRCRegClass;
61 extern const TargetRegisterClass G8RC_and_G8RC_NOX0RegClass;
62 extern const TargetRegisterClass F8RCRegClass;
63 extern const TargetRegisterClass FHRCRegClass;
64 extern const TargetRegisterClass SPERCRegClass;
65 extern const TargetRegisterClass VFHRCRegClass;
66 extern const TargetRegisterClass VFRCRegClass;
67 extern const TargetRegisterClass SPERC_with_sub_32_in_GPRC_NOR0RegClass;
68 extern const TargetRegisterClass SPILLTOVSRRC_and_VFRCRegClass;
69 extern const TargetRegisterClass SPILLTOVSRRC_and_F4RCRegClass;
70 extern const TargetRegisterClass CTRRC8RegClass;
71 extern const TargetRegisterClass LR8RCRegClass;
72 extern const TargetRegisterClass DMRROWRCRegClass;
73 extern const TargetRegisterClass VSRCRegClass;
74 extern const TargetRegisterClass VSRC_with_sub_64_in_SPILLTOVSRRCRegClass;
75 extern const TargetRegisterClass VRRCRegClass;
76 extern const TargetRegisterClass VSLRCRegClass;
77 extern const TargetRegisterClass VRRC_with_sub_64_in_SPILLTOVSRRCRegClass;
78 extern const TargetRegisterClass FpRCRegClass;
79 extern const TargetRegisterClass G8pRCRegClass;
80 extern const TargetRegisterClass G8pRC_with_sub_32_in_GPRC_NOR0RegClass;
81 extern const TargetRegisterClass VSLRC_with_sub_64_in_SPILLTOVSRRCRegClass;
82 extern const TargetRegisterClass FpRC_with_sub_fp0_in_SPILLTOVSRRCRegClass;
83 extern const TargetRegisterClass DMRROWpRCRegClass;
84 extern const TargetRegisterClass VSRpRCRegClass;
85 extern const TargetRegisterClass VSRpRC_with_sub_64_in_SPILLTOVSRRCRegClass;
86 extern const TargetRegisterClass VSRpRC_with_sub_64_in_F4RCRegClass;
87 extern const TargetRegisterClass VSRpRC_with_sub_64_in_VFRCRegClass;
88 extern const TargetRegisterClass VSRpRC_with_sub_64_in_SPILLTOVSRRC_and_VFRCRegClass;
89 extern const TargetRegisterClass VSRpRC_with_sub_64_in_SPILLTOVSRRC_and_F4RCRegClass;
90 extern const TargetRegisterClass ACCRCRegClass;
91 extern const TargetRegisterClass UACCRCRegClass;
92 extern const TargetRegisterClass WACCRCRegClass;
93 extern const TargetRegisterClass WACC_HIRCRegClass;
94 extern const TargetRegisterClass ACCRC_with_sub_64_in_SPILLTOVSRRCRegClass;
95 extern const TargetRegisterClass UACCRC_with_sub_64_in_SPILLTOVSRRCRegClass;
96 extern const TargetRegisterClass ACCRC_with_sub_pair1_then_sub_64_in_SPILLTOVSRRCRegClass;
97 extern const TargetRegisterClass UACCRC_with_sub_pair1_then_sub_64_in_SPILLTOVSRRCRegClass;
98 extern const TargetRegisterClass DMRRCRegClass;
99 extern const TargetRegisterClass DMRpRCRegClass;
100} // end namespace PPC
101
102} // end namespace llvm
103
104