1 //===-- RegisterContextLinux_arm64.h ----------------------------*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 #ifndef liblldb_RegisterContextLinux_arm64_H_
11 #define liblldb_RegisterContextLinux_arm64_H_
13 #include "lldb/lldb-private.h"
14 #include "lldb/Target/RegisterContext.h"
15 #include "RegisterContextPOSIX.h"
16 #include "RegisterInfoInterface.h"
18 class RegisterContextLinux_arm64
19 : public lldb_private::RegisterInfoInterface
22 // based on RegisterContextDarwin_arm64.h
25 uint64_t x[29]; // x0-x28
30 uint32_t cpsr; // cpsr
33 // based on RegisterContextDarwin_arm64.h
39 // based on RegisterContextDarwin_arm64.h
47 // based on RegisterContextDarwin_arm64.h
50 uint64_t far; // Virtual Fault Address
51 uint32_t esr; // Exception syndrome
52 uint32_t exception; // number of arm exception token
55 // based on RegisterContextDarwin_arm64.h
65 RegisterContextLinux_arm64(const lldb_private::ArchSpec &target_arch);
68 GetGPRSize() const override;
70 const lldb_private::RegisterInfo *
71 GetRegisterInfo() const override;
74 GetRegisterCount () const override;
77 const lldb_private::RegisterInfo *m_register_info_p;
78 uint32_t m_register_info_count;