003 File Manager
Current Path:
/usr/src/contrib/llvm-project/llvm/lib/TextAPI/MachO
usr
/
src
/
contrib
/
llvm-project
/
llvm
/
lib
/
TextAPI
/
MachO
/
📁
..
📄
Architecture.cpp
(3.12 KB)
📄
ArchitectureSet.cpp
(1.71 KB)
📄
InterfaceFile.cpp
(3.83 KB)
📄
PackedVersion.cpp
(2.64 KB)
📄
Platform.cpp
(2.83 KB)
📄
Symbol.cpp
(1.62 KB)
📄
Target.cpp
(2.5 KB)
📄
TextAPIContext.h
(861 B)
📄
TextStub.cpp
(43.79 KB)
📄
TextStubCommon.cpp
(7.25 KB)
📄
TextStubCommon.h
(2.79 KB)
Editing: Architecture.cpp
//===- Architecture.cpp ---------------------------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // // Implements the architecture helper functions. // //===----------------------------------------------------------------------===// #include "llvm/TextAPI/MachO/Architecture.h" #include "llvm/ADT/StringSwitch.h" #include "llvm/ADT/Triple.h" #include "llvm/BinaryFormat/MachO.h" #include "llvm/Support/raw_ostream.h" #include "llvm/TextAPI/MachO/ArchitectureSet.h" namespace llvm { namespace MachO { Architecture getArchitectureFromCpuType(uint32_t CPUType, uint32_t CPUSubType) { #define ARCHINFO(Arch, Type, Subtype, NumBits) \ if (CPUType == (Type) && \ (CPUSubType & ~MachO::CPU_SUBTYPE_MASK) == (Subtype)) \ return AK_##Arch; #include "llvm/TextAPI/MachO/Architecture.def" #undef ARCHINFO return AK_unknown; } Architecture getArchitectureFromName(StringRef Name) { return StringSwitch<Architecture>(Name) #define ARCHINFO(Arch, Type, Subtype, NumBits) .Case(#Arch, AK_##Arch) #include "llvm/TextAPI/MachO/Architecture.def" #undef ARCHINFO .Default(AK_unknown); } StringRef getArchitectureName(Architecture Arch) { switch (Arch) { #define ARCHINFO(Arch, Type, Subtype, NumBits) \ case AK_##Arch: \ return #Arch; #include "llvm/TextAPI/MachO/Architecture.def" #undef ARCHINFO case AK_unknown: return "unknown"; } // Appease some compilers that cannot figure out that this is a fully covered // switch statement. return "unknown"; } std::pair<uint32_t, uint32_t> getCPUTypeFromArchitecture(Architecture Arch) { switch (Arch) { #define ARCHINFO(Arch, Type, Subtype, NumBits) \ case AK_##Arch: \ return std::make_pair(Type, Subtype); #include "llvm/TextAPI/MachO/Architecture.def" #undef ARCHINFO case AK_unknown: return std::make_pair(0, 0); } // Appease some compilers that cannot figure out that this is a fully covered // switch statement. return std::make_pair(0, 0); } Architecture mapToArchitecture(const Triple &Target) { return getArchitectureFromName(Target.getArchName()); } bool is64Bit(Architecture Arch) { switch (Arch) { #define ARCHINFO(Arch, Type, Subtype, NumBits) \ case AK_##Arch: \ return NumBits == 64; #include "llvm/TextAPI/MachO/Architecture.def" #undef ARCHINFO case AK_unknown: return false; } llvm_unreachable("Fully handled switch case above."); } raw_ostream &operator<<(raw_ostream &OS, Architecture Arch) { OS << getArchitectureName(Arch); return OS; } } // end namespace MachO. } // end namespace llvm.
Upload File
Create Folder