Report the actual user register count from NativeRegisterContextLinux_x86_64
authorTamas Berghammer <tberghammer@google.com>
Mon, 9 Mar 2015 10:48:23 +0000 (10:48 +0000)
committerTamas Berghammer <tberghammer@google.com>
Mon, 9 Mar 2015 10:48:23 +0000 (10:48 +0000)
Thic change have effect wehn the AVX registers aren't available with
reporting the count of user registers without them.

Differential revision: http://reviews.llvm.org/D8111

llvm-svn: 231638

lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_x86_64.cpp
lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_x86_64.h

index 272b86a..fa6dfd6 100644 (file)
@@ -408,6 +408,19 @@ NativeRegisterContextLinux_x86_64::GetRegisterSetCount () const
     return sets;
 }
 
+uint32_t
+NativeRegisterContextLinux_x86_64::GetUserRegisterCount() const
+{
+    uint32_t count = 0;
+    for (uint32_t set_index = 0; set_index < k_num_register_sets; ++set_index)
+    {
+        const lldb_private::RegisterSet* set = GetRegisterSet(set_index);
+        if (set)
+            count += set->num_registers;
+    }
+    return count;
+}
+
 const lldb_private::RegisterSet *
 NativeRegisterContextLinux_x86_64::GetRegisterSet (uint32_t set_index) const
 {
index 23d192c..b671a32 100644 (file)
@@ -30,6 +30,9 @@ namespace lldb_private
         const RegisterSet *
         GetRegisterSet (uint32_t set_index) const override;
 
+        uint32_t
+        GetUserRegisterCount() const override;
+
         Error
         ReadRegister (const RegisterInfo *reg_info, RegisterValue &reg_value) override;