Add register context for i386 on Linux.

Patch by Marco Minutoli!



git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@126696 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/source/Plugins/Process/Linux/LinuxThread.cpp b/source/Plugins/Process/Linux/LinuxThread.cpp
index 397d31b..ebda0d8 100644
--- a/source/Plugins/Process/Linux/LinuxThread.cpp
+++ b/source/Plugins/Process/Linux/LinuxThread.cpp
@@ -12,6 +12,7 @@
 
 // C++ Includes
 // Other libraries and framework includes
+#include "lldb/Host/Host.h"
 #include "lldb/Target/Process.h"
 #include "lldb/Target/StopInfo.h"
 #include "lldb/Target/Target.h"
@@ -19,6 +20,7 @@
 #include "LinuxThread.h"
 #include "ProcessLinux.h"
 #include "ProcessMonitor.h"
+#include "RegisterContextLinux_i386.h"
 #include "RegisterContextLinux_x86_64.h"
 #include "UnwindLLDB.h"
 
@@ -59,11 +61,9 @@
 lldb::RegisterContextSP
 LinuxThread::GetRegisterContext()
 {
-    ProcessLinux &process = static_cast<ProcessLinux&>(GetProcess());
-
     if (!m_reg_context_sp)
     {
-        ArchSpec arch = process.GetTarget().GetArchitecture();
+        ArchSpec arch = Host::GetArchitecture();
 
         switch (arch.GetCore())
         {
@@ -71,6 +71,12 @@
             assert(false && "CPU type not supported!");
             break;
 
+        case ArchSpec::eCore_x86_32_i386:
+        case ArchSpec::eCore_x86_32_i486:
+        case ArchSpec::eCore_x86_32_i486sx:
+            m_reg_context_sp.reset(new RegisterContextLinux_i386(*this, 0));
+            break;
+
         case ArchSpec::eCore_x86_64_x86_64:
             m_reg_context_sp.reset(new RegisterContextLinux_x86_64(*this, 0));
             break;
@@ -99,7 +105,7 @@
 
     if (frame)
         concrete_frame_idx = frame->GetConcreteFrameIndex();
-        
+
     if (concrete_frame_idx == 0)
         reg_ctx_sp = GetRegisterContext();
     else