Author: Hemang Gadhavi Date: 2025-06-20T20:18:39+05:30 New Revision: 20d57e77f6709ef32791391bc064d3ed5663272a
URL: https://github.com/llvm/llvm-project/commit/20d57e77f6709ef32791391bc064d3ed5663272a DIFF: https://github.com/llvm/llvm-project/commit/20d57e77f6709ef32791391bc064d3ed5663272a.diff LOG: [lldb][AIX] Added base file for AIX Register Context (#144645) This PR is in reference to porting LLDB on AIX. Link to discussions on llvm discourse and github: 1. https://discourse.llvm.org/t/port-lldb-to-ibm-aix/80640 2. https://github.com/llvm/llvm-project/issues/101657 The complete changes for porting are present in this draft PR: https://github.com/llvm/llvm-project/pull/102601 - Added skeleton for Registercontext file for AIX. (Later we will add implementation respectively) Added: lldb/source/Plugins/Process/AIX/NativeRegisterContextAIX.cpp lldb/source/Plugins/Process/AIX/NativeRegisterContextAIX.h Modified: lldb/source/Plugins/Process/AIX/CMakeLists.txt Removed: ################################################################################ diff --git a/lldb/source/Plugins/Process/AIX/CMakeLists.txt b/lldb/source/Plugins/Process/AIX/CMakeLists.txt index 6b3151edbd1ef..3a6d9ec118e60 100644 --- a/lldb/source/Plugins/Process/AIX/CMakeLists.txt +++ b/lldb/source/Plugins/Process/AIX/CMakeLists.txt @@ -1,6 +1,7 @@ add_lldb_library(lldbPluginProcessAIX NativeProcessAIX.cpp NativeThreadAIX.cpp + NativeRegisterContextAIX.cpp LINK_COMPONENTS Support diff --git a/lldb/source/Plugins/Process/AIX/NativeRegisterContextAIX.cpp b/lldb/source/Plugins/Process/AIX/NativeRegisterContextAIX.cpp new file mode 100644 index 0000000000000..e44cd7b5a30f5 --- /dev/null +++ b/lldb/source/Plugins/Process/AIX/NativeRegisterContextAIX.cpp @@ -0,0 +1,54 @@ +//===---- NativeRegisterContextAIX.cpp ------------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#include "NativeRegisterContextAIX.h" +#include "Plugins/Process/AIX/NativeProcessAIX.h" + +using namespace lldb_private; +using namespace lldb_private::process_aix; + +lldb::ByteOrder NativeRegisterContextAIX::GetByteOrder() const { + return lldb::eByteOrderInvalid; +} + +Status NativeRegisterContextAIX::ReadRegisterRaw(uint32_t reg_index, + RegisterValue ®_value) { + return Status("unimplemented"); +} + +Status +NativeRegisterContextAIX::WriteRegisterRaw(uint32_t reg_index, + const RegisterValue ®_value) { + return Status("unimplemented"); +} + +Status NativeRegisterContextAIX::ReadGPR() { return Status("unimplemented"); } + +Status NativeRegisterContextAIX::WriteGPR() { return Status("unimplemented"); } + +Status NativeRegisterContextAIX::ReadFPR() { return Status("unimplemented"); } + +Status NativeRegisterContextAIX::WriteFPR() { return Status("unimplemented"); } + +Status NativeRegisterContextAIX::ReadVMX() { return Status("unimplemented"); } + +Status NativeRegisterContextAIX::WriteVMX() { return Status("unimplemented"); } + +Status NativeRegisterContextAIX::ReadVSX() { return Status("unimplemented"); } + +Status NativeRegisterContextAIX::WriteVSX() { return Status("unimplemented"); } + +Status NativeRegisterContextAIX::ReadRegisterSet(void *buf, size_t buf_size, + unsigned int regset) { + return Status("unimplemented"); +} + +Status NativeRegisterContextAIX::WriteRegisterSet(void *buf, size_t buf_size, + unsigned int regset) { + return Status("unimplemented"); +} diff --git a/lldb/source/Plugins/Process/AIX/NativeRegisterContextAIX.h b/lldb/source/Plugins/Process/AIX/NativeRegisterContextAIX.h new file mode 100644 index 0000000000000..e78483a7670f6 --- /dev/null +++ b/lldb/source/Plugins/Process/AIX/NativeRegisterContextAIX.h @@ -0,0 +1,62 @@ +//===---- NativeRegisterContextAIX.h ----------------------------*- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef LLDB_SOURCE_PLUGINS_PROCESS_AIX_NATIVEREGISTERCONTEXTAIX_H +#define LLDB_SOURCE_PLUGINS_PROCESS_AIX_NATIVEREGISTERCONTEXTAIX_H + +#include "Plugins/Process/Utility/NativeRegisterContextRegisterInfo.h" + +namespace lldb_private::process_aix { + +class NativeRegisterContextAIX + : public virtual NativeRegisterContextRegisterInfo { +protected: + NativeRegisterContextAIX(NativeThreadProtocol &thread) + : NativeRegisterContextRegisterInfo(thread, nullptr) {} + + lldb::ByteOrder GetByteOrder() const; + + virtual Status ReadRegisterRaw(uint32_t reg_index, RegisterValue ®_value); + + virtual Status WriteRegisterRaw(uint32_t reg_index, + const RegisterValue ®_value); + + virtual Status ReadRegisterSet(void *buf, size_t buf_size, + unsigned int regset); + + virtual Status WriteRegisterSet(void *buf, size_t buf_size, + unsigned int regset); + + virtual Status ReadGPR(); + + virtual Status WriteGPR(); + + virtual Status ReadFPR(); + + virtual Status WriteFPR(); + + virtual Status ReadVMX(); + + virtual Status WriteVMX(); + + virtual Status ReadVSX(); + + virtual Status WriteVSX(); + + virtual void *GetGPRBuffer() = 0; + + virtual size_t GetGPRSize() = 0; + + virtual void *GetFPRBuffer() = 0; + + virtual size_t GetFPRSize() = 0; +}; + +} // namespace lldb_private::process_aix + +#endif // #ifndef LLDB_SOURCE_PLUGINS_PROCESS_AIX_NATIVEREGISTERCONTEXTAIX_H _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits