labath created this revision. labath added reviewers: clayborg, dvlahovski. labath added a subscriber: lldb-commits.
While adding FPR support to x86 elf core files (https://reviews.llvm.org/D26300), we ended up adding a very x86-specific function to the general RegisterInfoInterface class, which I didn't catch in review. This removes that function. The only reason we needed it was to find the offset of the FXSAVE area. This is the same as the offset of the first register within that area, so we might as well use that. https://reviews.llvm.org/D27222 Files: source/Plugins/Process/Utility/RegisterContextLinux_i386.cpp source/Plugins/Process/Utility/RegisterContextLinux_i386.h source/Plugins/Process/Utility/RegisterContextLinux_x86_64.cpp source/Plugins/Process/Utility/RegisterContextLinux_x86_64.h source/Plugins/Process/Utility/RegisterContextPOSIX_x86.cpp source/Plugins/Process/Utility/RegisterInfoInterface.h Index: source/Plugins/Process/Utility/RegisterInfoInterface.h =================================================================== --- source/Plugins/Process/Utility/RegisterInfoInterface.h +++ source/Plugins/Process/Utility/RegisterInfoInterface.h @@ -29,8 +29,6 @@ virtual size_t GetGPRSize() const = 0; - virtual size_t GetFXSAVEOffset() const { return 0; } - virtual const lldb_private::RegisterInfo *GetRegisterInfo() const = 0; // Returns the number of registers including the user registers and the Index: source/Plugins/Process/Utility/RegisterContextPOSIX_x86.cpp =================================================================== --- source/Plugins/Process/Utility/RegisterContextPOSIX_x86.cpp +++ source/Plugins/Process/Utility/RegisterContextPOSIX_x86.cpp @@ -415,7 +415,7 @@ } size_t RegisterContextPOSIX_x86::GetFXSAVEOffset() { - return m_register_info_ap->GetFXSAVEOffset(); + return GetRegisterInfo()[m_reg_info.first_fpr].byte_offset; } const RegisterInfo *RegisterContextPOSIX_x86::GetRegisterInfo() { Index: source/Plugins/Process/Utility/RegisterContextLinux_x86_64.h =================================================================== --- source/Plugins/Process/Utility/RegisterContextLinux_x86_64.h +++ source/Plugins/Process/Utility/RegisterContextLinux_x86_64.h @@ -18,8 +18,6 @@ size_t GetGPRSize() const override; - size_t GetFXSAVEOffset() const override; - const lldb_private::RegisterInfo *GetRegisterInfo() const override; uint32_t GetRegisterCount() const override; Index: source/Plugins/Process/Utility/RegisterContextLinux_x86_64.cpp =================================================================== --- source/Plugins/Process/Utility/RegisterContextLinux_x86_64.cpp +++ source/Plugins/Process/Utility/RegisterContextLinux_x86_64.cpp @@ -179,11 +179,6 @@ size_t RegisterContextLinux_x86_64::GetGPRSize() const { return sizeof(GPR); } -size_t RegisterContextLinux_x86_64::GetFXSAVEOffset() const { - return (LLVM_EXTENSION offsetof(UserArea, fpr) + - LLVM_EXTENSION offsetof(FPR, xstate)); -} - const std::vector<lldb_private::RegisterInfo> * RegisterContextLinux_x86_64::GetDynamicRegisterInfoP() const { return &d_register_infos; Index: source/Plugins/Process/Utility/RegisterContextLinux_i386.h =================================================================== --- source/Plugins/Process/Utility/RegisterContextLinux_i386.h +++ source/Plugins/Process/Utility/RegisterContextLinux_i386.h @@ -18,8 +18,6 @@ size_t GetGPRSize() const override; - size_t GetFXSAVEOffset() const override; - const lldb_private::RegisterInfo *GetRegisterInfo() const override; uint32_t GetRegisterCount() const override; Index: source/Plugins/Process/Utility/RegisterContextLinux_i386.cpp =================================================================== --- source/Plugins/Process/Utility/RegisterContextLinux_i386.cpp +++ source/Plugins/Process/Utility/RegisterContextLinux_i386.cpp @@ -111,10 +111,6 @@ size_t RegisterContextLinux_i386::GetGPRSize() const { return sizeof(GPR); } -size_t RegisterContextLinux_i386::GetFXSAVEOffset() const { - return (LLVM_EXTENSION offsetof(UserArea, i387)); -} - const RegisterInfo *RegisterContextLinux_i386::GetRegisterInfo() const { switch (m_target_arch.GetMachine()) { case llvm::Triple::x86:
Index: source/Plugins/Process/Utility/RegisterInfoInterface.h =================================================================== --- source/Plugins/Process/Utility/RegisterInfoInterface.h +++ source/Plugins/Process/Utility/RegisterInfoInterface.h @@ -29,8 +29,6 @@ virtual size_t GetGPRSize() const = 0; - virtual size_t GetFXSAVEOffset() const { return 0; } - virtual const lldb_private::RegisterInfo *GetRegisterInfo() const = 0; // Returns the number of registers including the user registers and the Index: source/Plugins/Process/Utility/RegisterContextPOSIX_x86.cpp =================================================================== --- source/Plugins/Process/Utility/RegisterContextPOSIX_x86.cpp +++ source/Plugins/Process/Utility/RegisterContextPOSIX_x86.cpp @@ -415,7 +415,7 @@ } size_t RegisterContextPOSIX_x86::GetFXSAVEOffset() { - return m_register_info_ap->GetFXSAVEOffset(); + return GetRegisterInfo()[m_reg_info.first_fpr].byte_offset; } const RegisterInfo *RegisterContextPOSIX_x86::GetRegisterInfo() { Index: source/Plugins/Process/Utility/RegisterContextLinux_x86_64.h =================================================================== --- source/Plugins/Process/Utility/RegisterContextLinux_x86_64.h +++ source/Plugins/Process/Utility/RegisterContextLinux_x86_64.h @@ -18,8 +18,6 @@ size_t GetGPRSize() const override; - size_t GetFXSAVEOffset() const override; - const lldb_private::RegisterInfo *GetRegisterInfo() const override; uint32_t GetRegisterCount() const override; Index: source/Plugins/Process/Utility/RegisterContextLinux_x86_64.cpp =================================================================== --- source/Plugins/Process/Utility/RegisterContextLinux_x86_64.cpp +++ source/Plugins/Process/Utility/RegisterContextLinux_x86_64.cpp @@ -179,11 +179,6 @@ size_t RegisterContextLinux_x86_64::GetGPRSize() const { return sizeof(GPR); } -size_t RegisterContextLinux_x86_64::GetFXSAVEOffset() const { - return (LLVM_EXTENSION offsetof(UserArea, fpr) + - LLVM_EXTENSION offsetof(FPR, xstate)); -} - const std::vector<lldb_private::RegisterInfo> * RegisterContextLinux_x86_64::GetDynamicRegisterInfoP() const { return &d_register_infos; Index: source/Plugins/Process/Utility/RegisterContextLinux_i386.h =================================================================== --- source/Plugins/Process/Utility/RegisterContextLinux_i386.h +++ source/Plugins/Process/Utility/RegisterContextLinux_i386.h @@ -18,8 +18,6 @@ size_t GetGPRSize() const override; - size_t GetFXSAVEOffset() const override; - const lldb_private::RegisterInfo *GetRegisterInfo() const override; uint32_t GetRegisterCount() const override; Index: source/Plugins/Process/Utility/RegisterContextLinux_i386.cpp =================================================================== --- source/Plugins/Process/Utility/RegisterContextLinux_i386.cpp +++ source/Plugins/Process/Utility/RegisterContextLinux_i386.cpp @@ -111,10 +111,6 @@ size_t RegisterContextLinux_i386::GetGPRSize() const { return sizeof(GPR); } -size_t RegisterContextLinux_i386::GetFXSAVEOffset() const { - return (LLVM_EXTENSION offsetof(UserArea, i387)); -} - const RegisterInfo *RegisterContextLinux_i386::GetRegisterInfo() const { switch (m_target_arch.GetMachine()) { case llvm::Triple::x86:
_______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits