1//===- Architecture.cpp ---------------------------------------------------===// 3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4// See https://llvm.org/LICENSE.txt for license information. 5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 7//===----------------------------------------------------------------------===// 9// Implements the architecture helper functions. 11//===----------------------------------------------------------------------===// 24#define ARCHINFO(Arch, Type, Subtype, NumBits) \ 25 if (CPUType == (Type) && \ 26 (CPUSubType & ~MachO::CPU_SUBTYPE_MASK) == (Subtype)) \ 28#include "llvm/TextAPI/Architecture.def" 36#define ARCHINFO(Arch, Type, Subtype, NumBits) .Case(#Arch, AK_##Arch) 37#include "llvm/TextAPI/Architecture.def" 44#define ARCHINFO(Arch, Type, Subtype, NumBits) \ 47#include "llvm/TextAPI/Architecture.def" 53// Appease some compilers that cannot figure out that this is a fully covered 60#define ARCHINFO(Arch, Type, Subtype, NumBits) \ 62 return std::make_pair(Type, Subtype); 63#include "llvm/TextAPI/Architecture.def" 66return std::make_pair(0, 0);
69// Appease some compilers that cannot figure out that this is a fully covered 71return std::make_pair(0, 0);
80#define ARCHINFO(Arch, Type, Subtype, NumBits) \ 83#include "llvm/TextAPI/Architecture.def" 97}
// end namespace MachO. 98}
// end namespace llvm. This file implements the StringSwitch template, which mimics a switch() statement whose cases are str...
StringRef - Represent a constant reference to a string, i.e.
A switch()-like statement whose cases are string literals.
Triple - Helper class for working with autoconf configuration names.
This class implements an extremely fast bulk output stream that can only output to a stream.
#define llvm_unreachable(msg)
Marks that the current location is not supposed to be reachable.
Architecture getArchitectureFromName(StringRef Name)
Convert a name to an architecture slice.
StringRef getArchitectureName(Architecture Arch)
Convert an architecture slice to a string.
std::pair< uint32_t, uint32_t > getCPUTypeFromArchitecture(Architecture Arch)
Convert an architecture slice to a CPU Type and Subtype pair.
bool is64Bit(Architecture)
Check if architecture is 64 bit.
Architecture
Defines the architecture slices that are supported by Text-based Stub files.
raw_ostream & operator<<(raw_ostream &OS, Architecture Arch)
Architecture mapToArchitecture(const llvm::Triple &Target)
Convert a target to an architecture slice.
Architecture getArchitectureFromCpuType(uint32_t CPUType, uint32_t CPUSubType)
Convert a CPU Type and Subtype pair to an architecture slice.
This is an optimization pass for GlobalISel generic memory operations.