Move ABI handling and 64-bitness to the PowerPC target machine.

This required changing how the computation of the ABI is handled
and how some of the checks for ABI/target are done.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@229471 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Eric Christopher
2015-02-17 06:45:15 +00:00
parent cdc4c07360
commit fb031eee53
6 changed files with 46 additions and 36 deletions

View File

@@ -114,11 +114,6 @@ protected:
bool HasICBT;
bool HasInvariantFunctionDescriptors;
enum {
PPC_ABI_UNKNOWN,
PPC_ABI_ELFv1,
PPC_ABI_ELFv2
} TargetABI;
const PPCTargetMachine &TM;
PPCFrameLowering FrameLowering;
PPCInstrInfo InstrInfo;
@@ -177,7 +172,7 @@ private:
public:
/// isPPC64 - Return true if we are generating code for 64-bit pointer mode.
///
bool isPPC64() const { return IsPPC64; }
bool isPPC64() const;
/// has64BitSupport - Return true if the selected CPU supports 64-bit
/// instructions, regardless of whether we are in 32-bit or 64-bit mode.
@@ -245,9 +240,9 @@ public:
bool isTargetELF() const { return TargetTriple.isOSBinFormatELF(); }
bool isTargetMachO() const { return TargetTriple.isOSBinFormatMachO(); }
bool isDarwinABI() const { return isDarwin(); }
bool isSVR4ABI() const { return !isDarwin(); }
bool isELFv2ABI() const { return TargetABI == PPC_ABI_ELFv2; }
bool isDarwinABI() const { return isTargetMachO() || isDarwin(); }
bool isSVR4ABI() const { return !isDarwinABI(); }
bool isELFv2ABI() const;
bool enableEarlyIfConversion() const override { return hasISEL(); }