BfTargetTriple.cpp 923 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #include "BfTargetTriple.h"
  2. USING_NS_BF;
  3. BfTargetTriple::BfTargetTriple()
  4. {
  5. mParsed = true;
  6. mMachineType = BfMachineType_Unknown;
  7. }
  8. BfTargetTriple::BfTargetTriple(const StringImpl& targetTriple)
  9. {
  10. mParsed = false;
  11. mMachineType = BfMachineType_Unknown;
  12. mTargetTriple = targetTriple;
  13. }
  14. void BfTargetTriple::Parse()
  15. {
  16. if (mTargetTriple.StartsWith("x86_64"))
  17. mMachineType = BfMachineType_x64;
  18. else if ((mTargetTriple.StartsWith("i686")) || (mTargetTriple.StartsWith("x86")))
  19. mMachineType = BfMachineType_x64;
  20. else if ((mTargetTriple.StartsWith("aarch64")) || (mTargetTriple.StartsWith("arm64")))
  21. mMachineType = BfMachineType_AArch64;
  22. else
  23. mMachineType = BfMachineType_Unknown;
  24. mParsed = true;
  25. }
  26. void BfTargetTriple::Set(const StringImpl& targetTriple)
  27. {
  28. mTargetTriple = targetTriple;
  29. mParsed = false;
  30. }
  31. BfMachineType BfTargetTriple::GetMachineType()
  32. {
  33. if (!mParsed)
  34. Parse();
  35. return mMachineType;
  36. }