1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-08 11:38:21 +02:00
Beef/IDEHelper/Compiler/BfTargetTriple.cpp
2022-07-26 13:27:03 -04:00

42 lines
No EOL
923 B
C++

#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;
}