1*80814287SRaphael Isemann //===-- NativeRegisterContextRegisterInfo.cpp -----------------------------===//
290bf36f9SZachary Turner //
32946cd70SChandler Carruth // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
42946cd70SChandler Carruth // See https://llvm.org/LICENSE.txt for license information.
52946cd70SChandler Carruth // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
690bf36f9SZachary Turner //
790bf36f9SZachary Turner //===----------------------------------------------------------------------===//
890bf36f9SZachary Turner 
990bf36f9SZachary Turner #include "NativeRegisterContextRegisterInfo.h"
1090bf36f9SZachary Turner #include "lldb/lldb-private-forward.h"
1190bf36f9SZachary Turner #include "lldb/lldb-types.h"
1290bf36f9SZachary Turner 
1390bf36f9SZachary Turner using namespace lldb_private;
1490bf36f9SZachary Turner 
NativeRegisterContextRegisterInfo(NativeThreadProtocol & thread,RegisterInfoInterface * register_info_interface)1590bf36f9SZachary Turner NativeRegisterContextRegisterInfo::NativeRegisterContextRegisterInfo(
16d37349f3SPavel Labath     NativeThreadProtocol &thread,
1790bf36f9SZachary Turner     RegisterInfoInterface *register_info_interface)
18d37349f3SPavel Labath     : NativeRegisterContext(thread),
1990bf36f9SZachary Turner       m_register_info_interface_up(register_info_interface) {
2090bf36f9SZachary Turner   assert(register_info_interface && "null register_info_interface");
2190bf36f9SZachary Turner }
2290bf36f9SZachary Turner 
GetRegisterCount() const2390bf36f9SZachary Turner uint32_t NativeRegisterContextRegisterInfo::GetRegisterCount() const {
2490bf36f9SZachary Turner   return m_register_info_interface_up->GetRegisterCount();
2590bf36f9SZachary Turner }
2690bf36f9SZachary Turner 
GetUserRegisterCount() const2790bf36f9SZachary Turner uint32_t NativeRegisterContextRegisterInfo::GetUserRegisterCount() const {
2890bf36f9SZachary Turner   return m_register_info_interface_up->GetUserRegisterCount();
2990bf36f9SZachary Turner }
3090bf36f9SZachary Turner 
GetRegisterInfoAtIndex(uint32_t reg_index) const3190bf36f9SZachary Turner const RegisterInfo *NativeRegisterContextRegisterInfo::GetRegisterInfoAtIndex(
3290bf36f9SZachary Turner     uint32_t reg_index) const {
3390bf36f9SZachary Turner   if (reg_index <= GetRegisterCount())
3490bf36f9SZachary Turner     return m_register_info_interface_up->GetRegisterInfo() + reg_index;
3590bf36f9SZachary Turner   else
3690bf36f9SZachary Turner     return nullptr;
3790bf36f9SZachary Turner }
3890bf36f9SZachary Turner 
3990bf36f9SZachary Turner const RegisterInfoInterface &
GetRegisterInfoInterface() const4090bf36f9SZachary Turner NativeRegisterContextRegisterInfo::GetRegisterInfoInterface() const {
4190bf36f9SZachary Turner   return *m_register_info_interface_up;
4290bf36f9SZachary Turner }
43