Translate dwarf register numbers to internal register numbers
before trying to look them up in register contexts, in the 
emulation callback functions that read & write the frame registers.

llvm-svn: 129037
diff --git a/lldb/source/Core/EmulateInstruction.cpp b/lldb/source/Core/EmulateInstruction.cpp
index 93c2bcc..8c3456e 100644
--- a/lldb/source/Core/EmulateInstruction.cpp
+++ b/lldb/source/Core/EmulateInstruction.cpp
@@ -272,8 +272,12 @@
     RegisterContext *reg_context = frame->GetRegisterContext().get();
     Scalar value;
     
+    uint32_t internal_reg_num = reg_context->ConvertRegisterKindToRegisterNumber (reg_kind, reg_num);
     
-    if (reg_context->ReadRegisterValue (reg_num, value))
+    if (internal_reg_num == LLDB_INVALID_REGNUM)
+        return false;
+    
+    if (reg_context->ReadRegisterValue (internal_reg_num, value))
     {
         reg_value = value.GetRawBits64 (0);
         return true;
@@ -296,7 +300,11 @@
     RegisterContext *reg_context = frame->GetRegisterContext().get();
     Scalar value (reg_value);
     
-    return reg_context->WriteRegisterValue (reg_num, value);
+    uint32_t internal_reg_num = reg_context->ConvertRegisterKindToRegisterNumber (reg_kind, reg_num);
+    if (internal_reg_num != LLDB_INVALID_REGNUM)
+        return reg_context->WriteRegisterValue (internal_reg_num, value);
+    else
+        return false;
 }
 
 size_t