1 //===-- RegisterInfoPOSIX_arm64.h -------------------------------*- C++ -*-===//
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 #ifndef liblldb_RegisterContextLinux_arm64_H_
10 #define liblldb_RegisterContextLinux_arm64_H_
12 #include "RegisterInfoInterface.h"
13 #include "lldb/Target/RegisterContext.h"
14 #include "lldb/lldb-private.h"
16 class RegisterInfoPOSIX_arm64 : public lldb_private::RegisterInfoInterface {
18 // based on RegisterContextDarwin_arm64.h
20 uint64_t x[29]; // x0-x28
25 uint32_t cpsr; // cpsr
28 // based on RegisterContextDarwin_arm64.h
33 // based on RegisterContextDarwin_arm64.h
40 // based on RegisterContextDarwin_arm64.h
42 uint64_t far; // Virtual Fault Address
43 uint32_t esr; // Exception syndrome
44 uint32_t exception; // number of arm exception token
47 // based on RegisterContextDarwin_arm64.h
56 RegisterInfoPOSIX_arm64(const lldb_private::ArchSpec &target_arch);
58 size_t GetGPRSize() const override;
60 const lldb_private::RegisterInfo *GetRegisterInfo() const override;
62 uint32_t GetRegisterCount() const override;
65 const lldb_private::RegisterInfo *m_register_info_p;
66 uint32_t m_register_info_count;