LLDB  mainline
RegisterInfoPOSIX_arm.h
Go to the documentation of this file.
1 //===-- RegisterInfoPOSIX_arm.h ---------------------------------*- C++ -*-===//
2 //
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
6 //
7 //===----------------------------------------------------------------------===//
8 
9 #ifndef LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_REGISTERINFOPOSIX_ARM_H
10 #define LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_REGISTERINFOPOSIX_ARM_H
11 
14 #include "lldb/lldb-private.h"
15 
17 public:
18  enum { GPRegSet = 0, FPRegSet};
19 
20  struct GPR {
21  uint32_t r[16]; // R0-R15
22  uint32_t cpsr; // CPSR
23  };
24 
25  struct QReg {
26  uint8_t bytes[16];
27  };
28 
29  struct FPU {
30  union {
31  uint32_t s[32];
32  uint64_t d[32];
33  QReg q[16]; // the 128-bit NEON registers
34  } floats;
36  };
37  struct EXC {
39  uint32_t fsr; /* Fault status */
40  uint32_t far; /* Virtual Fault Address */
41  };
42 
43  struct DBG {
48  };
49 
51 
52  size_t GetGPRSize() const override;
53 
54  size_t GetFPRSize() const override;
55 
56  const lldb_private::RegisterInfo *GetRegisterInfo() const override;
57 
58  uint32_t GetRegisterCount() const override;
59 
60  const lldb_private::RegisterSet *
61  GetRegisterSet(size_t reg_set) const override;
62 
63  size_t GetRegisterSetCount() const override;
64 
65  size_t GetRegisterSetFromRegisterIndex(uint32_t reg_index) const override;
66 
67 private:
68  const lldb_private::RegisterInfo *m_register_info_p;
70 };
71 
72 #endif // LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_REGISTERINFOPOSIX_ARM_H
RegisterInfoPOSIX_arm::DBG
Definition: RegisterInfoPOSIX_arm.h:43
lldb_private::ArchSpec
Definition: ArchSpec.h:33
RegisterInfoPOSIX_arm::FPRegSet
@ FPRegSet
Definition: RegisterInfoPOSIX_arm.h:18
RegisterInfoPOSIX_arm::FPU::d
uint64_t d[32]
Definition: RegisterInfoPOSIX_arm.h:32
RegisterInfoPOSIX_arm::FPU
Definition: RegisterInfoPOSIX_arm.h:29
RegisterInfoPOSIX_arm::GetRegisterSetFromRegisterIndex
size_t GetRegisterSetFromRegisterIndex(uint32_t reg_index) const override
Definition: RegisterInfoPOSIX_arm.cpp:175
RegisterInfoPOSIX_arm::DBG::bcr
uint32_t bcr[16]
Definition: RegisterInfoPOSIX_arm.h:45
RegisterInfoPOSIX_arm::DBG::wvr
uint32_t wvr[16]
Definition: RegisterInfoPOSIX_arm.h:46
RegisterInfoPOSIX_arm
Definition: RegisterInfoPOSIX_arm.h:16
lldb_private::RegisterInfoAndSetInterface
Definition: RegisterInfoAndSetInterface.h:20
RegisterInfoPOSIX_arm::EXC::exception
uint32_t exception
Definition: RegisterInfoPOSIX_arm.h:38
RegisterInfoPOSIX_arm::RegisterInfoPOSIX_arm
RegisterInfoPOSIX_arm(const lldb_private::ArchSpec &target_arch)
Definition: RegisterInfoPOSIX_arm.cpp:152
RegisterInfoPOSIX_arm::GPR::cpsr
uint32_t cpsr
Definition: RegisterInfoPOSIX_arm.h:22
RegisterInfoPOSIX_arm::QReg
Definition: RegisterInfoPOSIX_arm.h:25
RegisterInfoPOSIX_arm::GetGPRSize
size_t GetGPRSize() const override
Definition: RegisterInfoPOSIX_arm.cpp:158
RegisterInfoPOSIX_arm::EXC
Definition: RegisterInfoPOSIX_arm.h:37
RegisterInfoPOSIX_arm::EXC::far
uint32_t far
Definition: RegisterInfoPOSIX_arm.h:40
RegisterInfoAndSetInterface.h
RegisterInfoPOSIX_arm::DBG::bvr
uint32_t bvr[16]
Definition: RegisterInfoPOSIX_arm.h:44
RegisterInfoPOSIX_arm::GPRegSet
@ GPRegSet
Definition: RegisterInfoPOSIX_arm.h:18
RegisterInfoPOSIX_arm::m_register_info_count
uint32_t m_register_info_count
Definition: RegisterInfoPOSIX_arm.h:69
RegisterInfoPOSIX_arm::GetRegisterCount
uint32_t GetRegisterCount() const override
Definition: RegisterInfoPOSIX_arm.cpp:191
lldb-private.h
RegisterInfoPOSIX_arm::EXC::fsr
uint32_t fsr
Definition: RegisterInfoPOSIX_arm.h:39
RegisterInfoPOSIX_arm::GetFPRSize
size_t GetFPRSize() const override
Definition: RegisterInfoPOSIX_arm.cpp:162
RegisterInfoPOSIX_arm::FPU::s
uint32_t s[32]
Definition: RegisterInfoPOSIX_arm.h:31
RegisterInfoPOSIX_arm::GetRegisterSet
const lldb_private::RegisterSet * GetRegisterSet(size_t reg_set) const override
Definition: RegisterInfoPOSIX_arm.cpp:185
uint32_t
RegisterInfoPOSIX_arm::GetRegisterInfo
const lldb_private::RegisterInfo * GetRegisterInfo() const override
Definition: RegisterInfoPOSIX_arm.cpp:167
RegisterInfoPOSIX_arm::FPU::fpscr
uint32_t fpscr
Definition: RegisterInfoPOSIX_arm.h:35
RegisterInfoPOSIX_arm::QReg::bytes
uint8_t bytes[16]
Definition: RegisterInfoPOSIX_arm.h:26
RegisterInfoPOSIX_arm::FPU::q
QReg q[16]
Definition: RegisterInfoPOSIX_arm.h:33
RegisterInfoPOSIX_arm::m_register_info_p
const lldb_private::RegisterInfo * m_register_info_p
Definition: RegisterInfoPOSIX_arm.h:68
RegisterContext.h
RegisterInfoPOSIX_arm::GetRegisterSetCount
size_t GetRegisterSetCount() const override
Definition: RegisterInfoPOSIX_arm.cpp:171
RegisterInfoPOSIX_arm::GPR
Definition: RegisterInfoPOSIX_arm.h:20
RegisterInfoPOSIX_arm::FPU::floats
union RegisterInfoPOSIX_arm::FPU::@140 floats
RegisterInfoPOSIX_arm::GPR::r
uint32_t r[16]
Definition: RegisterInfoPOSIX_arm.h:21
RegisterInfoPOSIX_arm::DBG::wcr
uint32_t wcr[16]
Definition: RegisterInfoPOSIX_arm.h:47