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 "RegisterInfoInterface.h"
17 class RegisterContextLinux_arm64
18 : public lldb_private::RegisterInfoInterface
21 // based on RegisterContextDarwin_arm64.h
24 uint64_t x[29]; // x0-x28
29 uint32_t cpsr; // cpsr
32 // based on RegisterContextDarwin_arm64.h
38 // based on RegisterContextDarwin_arm64.h
46 // based on RegisterContextDarwin_arm64.h
49 uint64_t far; // Virtual Fault Address
50 uint32_t esr; // Exception syndrome
51 uint32_t exception; // number of arm exception token
54 // based on RegisterContextDarwin_arm64.h
64 RegisterContextLinux_arm64(const lldb_private::ArchSpec &target_arch);
67 GetGPRSize() const override;
69 const lldb_private::RegisterInfo *
70 GetRegisterInfo() const override;
73 GetRegisterCount () const override;
76 const lldb_private::RegisterInfo *m_register_info_p;
77 uint32_t m_register_info_count;