2019-10-17 06:30:17 -07:00
|
|
|
#include "BfTargetTriple.h"
|
|
|
|
|
|
|
|
USING_NS_BF;
|
|
|
|
|
|
|
|
BfTargetTriple::BfTargetTriple()
|
|
|
|
{
|
|
|
|
mParsed = true;
|
|
|
|
mMachineType = BfMachineType_Unknown;
|
|
|
|
}
|
|
|
|
|
|
|
|
BfTargetTriple::BfTargetTriple(const StringImpl& targetTriple)
|
|
|
|
{
|
|
|
|
mParsed = false;
|
|
|
|
mMachineType = BfMachineType_Unknown;
|
|
|
|
mTargetTriple = targetTriple;
|
|
|
|
}
|
|
|
|
|
|
|
|
void BfTargetTriple::Parse()
|
|
|
|
{
|
|
|
|
if (mTargetTriple.StartsWith("x86_64"))
|
|
|
|
mMachineType = BfMachineType_x64;
|
|
|
|
else if ((mTargetTriple.StartsWith("i686")) || (mTargetTriple.StartsWith("x86")))
|
|
|
|
mMachineType = BfMachineType_x64;
|
|
|
|
else if ((mTargetTriple.StartsWith("aarch64")) || (mTargetTriple.StartsWith("arm64")))
|
|
|
|
mMachineType = BfMachineType_AArch64;
|
|
|
|
else
|
|
|
|
mMachineType = BfMachineType_Unknown;
|
|
|
|
mParsed = true;
|
|
|
|
}
|
|
|
|
|
|
|
|
void BfTargetTriple::Set(const StringImpl& targetTriple)
|
|
|
|
{
|
|
|
|
mTargetTriple = targetTriple;
|
|
|
|
mParsed = false;
|
|
|
|
}
|
|
|
|
|
|
|
|
BfMachineType BfTargetTriple::GetMachineType()
|
|
|
|
{
|
|
|
|
if (!mParsed)
|
|
|
|
Parse();
|
|
|
|
return mMachineType;
|
2022-07-26 13:27:03 -04:00
|
|
|
}
|