9#ifndef LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_REGISTERFLAGSDETECTOR_ARM64_H
10#define LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_REGISTERFLAGSDETECTOR_ARM64_H
13#include "llvm/ADT/StringRef.h"
43 void DetectFields(uint64_t hwcap, uint64_t hwcap2, uint64_t hwcap3);
55 using Fields = std::vector<RegisterFlags::Field>;
75 :
m_name(name),
m_flags(std::string(name) +
"_flags", size, {}),
This class manages the storage and detection of register field information.
static Fields DetectFPCRFields(uint64_t hwcap, uint64_t hwcap2, uint64_t hwcap3)
std::vector< RegisterFlags::Field > Fields
void DetectFields(uint64_t hwcap, uint64_t hwcap2, uint64_t hwcap3)
For the registers listed in this class, detect which fields are present.
void UpdateRegisterInfo(const RegisterInfo *reg_info, uint32_t num_regs)
Add the field information of any registers named in this class, to the relevant RegisterInfo instance...
static Fields DetectSVCRFields(uint64_t hwcap, uint64_t hwcap2, uint64_t hwcap3)
std::function< Fields(uint64_t, uint64_t, uint64_t)> DetectorFn
static Fields DetectFPMRFields(uint64_t hwcap, uint64_t hwcap2, uint64_t hwcap3)
static Fields DetectFPSRFields(uint64_t hwcap, uint64_t hwcap2, uint64_t hwcap3)
struct lldb_private::Arm64RegisterFlagsDetector::RegisterEntry m_registers[8]
static Fields DetectMTECtrlFields(uint64_t hwcap, uint64_t hwcap2, uint64_t hwcap3)
static Fields DetectGCSFeatureFields(uint64_t hwcap, uint64_t hwcap2, uint64_t hwcap3)
static Fields DetectCPSRFields(uint64_t hwcap, uint64_t hwcap2, uint64_t hwcap3)
bool HasDetected() const
Returns true if field detection has been run at least once.
A class that represents a running process on the host machine.
RegisterEntry(llvm::StringRef name, unsigned size, DetectorFn detector)
Every register is described in detail including its name, alternate name (optional),...