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 TurnerNativeRegisterContextRegisterInfo::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 Turneruint32_t NativeRegisterContextRegisterInfo::GetRegisterCount() const { 2490bf36f9SZachary Turner return m_register_info_interface_up->GetRegisterCount(); 2590bf36f9SZachary Turner } 2690bf36f9SZachary Turner GetUserRegisterCount() const2790bf36f9SZachary Turneruint32_t NativeRegisterContextRegisterInfo::GetUserRegisterCount() const { 2890bf36f9SZachary Turner return m_register_info_interface_up->GetUserRegisterCount(); 2990bf36f9SZachary Turner } 3090bf36f9SZachary Turner GetRegisterInfoAtIndex(uint32_t reg_index) const3190bf36f9SZachary Turnerconst 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 TurnerNativeRegisterContextRegisterInfo::GetRegisterInfoInterface() const { 4190bf36f9SZachary Turner return *m_register_info_interface_up; 4290bf36f9SZachary Turner } 43