Index: lldb/trunk/packages/Python/lldbsuite/test/functionalities/register/intel_avx/TestYMMRegister.py
===================================================================
--- lldb/trunk/packages/Python/lldbsuite/test/functionalities/register/intel_avx/TestYMMRegister.py
+++ lldb/trunk/packages/Python/lldbsuite/test/functionalities/register/intel_avx/TestYMMRegister.py
@@ -22,6 +22,7 @@
     @skipIfTargetAndroid()
     @skipIf(archs=no_match(['i386', 'x86_64']))
     @expectedFailureAll(oslist=["linux"], bugnumber="rdar://30523153")
+    @expectedFailureAll(oslist=["windows"], bugnumber="llvm.org/pr37995")
     def test(self):
         self.build(dictionary={"CFLAGS_EXTRAS": "-march=haswell"})
         self.setTearDownCleanup()
Index: lldb/trunk/packages/Python/lldbsuite/test/functionalities/register/register_command/TestRegisters.py
===================================================================
--- lldb/trunk/packages/Python/lldbsuite/test/functionalities/register/register_command/TestRegisters.py
+++ lldb/trunk/packages/Python/lldbsuite/test/functionalities/register/register_command/TestRegisters.py
@@ -59,7 +59,7 @@
     # problem
     @skipIfTargetAndroid(archs=["i386"])
     @skipIf(archs=no_match(['amd64', 'arm', 'i386', 'x86_64']))
-    @expectedFailureAll(oslist=["windows"], bugnumber="llvm.org/pr37683")
+    @expectedFailureAll(oslist=["windows"], bugnumber="llvm.org/pr37995")
     def test_fp_register_write(self):
         """Test commands that write to registers, in particular floating-point registers."""
         self.build()
@@ -71,7 +71,7 @@
     @skipIfFreeBSD  # llvm.org/pr25057
     @skipIf(archs=no_match(['amd64', 'i386', 'x86_64']))
     @skipIfOutOfTreeDebugserver
-    @expectedFailureAll(oslist=["windows"], bugnumber="llvm.org/pr37683")
+    @expectedFailureAll(oslist=["windows"], bugnumber="llvm.org/pr37995")
     def test_fp_special_purpose_register_read(self):
         """Test commands that read fpu special purpose registers."""
         self.build()
Index: lldb/trunk/packages/Python/lldbsuite/test/lang/cpp/trivial_abi/TestTrivialABI.py
===================================================================
--- lldb/trunk/packages/Python/lldbsuite/test/lang/cpp/trivial_abi/TestTrivialABI.py
+++ lldb/trunk/packages/Python/lldbsuite/test/lang/cpp/trivial_abi/TestTrivialABI.py
@@ -9,25 +9,26 @@
 import time
 import re
 import lldb
-import lldbsuite.test.lldbutil as lldbutil
+from lldbsuite.test.decorators import *
 from lldbsuite.test.lldbtest import *
-from lldbsuite.test import decorators
+from lldbsuite.test import lldbutil
+
 
 class TestTrivialABI(TestBase):
 
     mydir = TestBase.compute_mydir(__file__)
-
     NO_DEBUG_INFO_TESTCASE = True
 
-    @decorators.skipUnlessSupportedTypeAttribute("trivial_abi")
+    @skipUnlessSupportedTypeAttribute("trivial_abi")
+    @expectedFailureAll(oslist=["windows"], bugnumber="llvm.org/pr37995")
     def test_call_trivial(self):
         """Test that we can print a variable & call a function with a trivial ABI class."""
         self.build()
         self.main_source_file = lldb.SBFileSpec("main.cpp")
         self.expr_test(True)
 
-    @decorators.skipUnlessSupportedTypeAttribute("trivial_abi")
-    @decorators.expectedFailureAll(bugnumber="llvm.org/pr36870")
+    @skipUnlessSupportedTypeAttribute("trivial_abi")
+    @expectedFailureAll(bugnumber="llvm.org/pr36870")
     def test_call_nontrivial(self):
         """Test that we can print a variable & call a function on the same class w/o the trivial ABI marker."""
         self.build()
@@ -43,7 +44,7 @@
         ivar = test_var.GetChildMemberWithName("ivar")
         self.assertTrue(test_var.GetError().Success(), "Failed to fetch ivar")
         self.assertEqual(ivar_value, ivar.GetValueAsSigned(), "Got the right value for ivar")
-        
+
     def check_frame(self, thread):
         frame = thread.frames[0]
         inVal_var = frame.FindVariable("inVal")
@@ -56,7 +57,7 @@
         thread.StepOut()
         outVal_ret = thread.GetStopReturnValue()
         self.check_value(outVal_ret, 30)
-        
+
     def expr_test(self, trivial):
         (target, process, thread, bkpt) = lldbutil.run_to_source_breakpoint(self,
                                    "Set a breakpoint here", self.main_source_file) 
@@ -71,5 +72,3 @@
         self.assertEqual(len(threads), 1, "Hit my breakpoint the second time.")
 
         self.check_frame(threads[0])
-        
-
Index: lldb/trunk/source/Plugins/Process/Windows/Common/x64/RegisterContextWindows_x64.cpp
===================================================================
--- lldb/trunk/source/Plugins/Process/Windows/Common/x64/RegisterContextWindows_x64.cpp
+++ lldb/trunk/source/Plugins/Process/Windows/Common/x64/RegisterContextWindows_x64.cpp
@@ -206,6 +206,9 @@
   if (!CacheAllRegisterValues())
     return false;
 
+  if (reg_info == nullptr)
+    return false;
+
   switch (reg_info->kinds[eRegisterKindLLDB]) {
   case lldb_rax_x86_64:
     reg_value.SetUInt64(m_context.Rax);
Index: lldb/trunk/source/Plugins/Process/Windows/Common/x86/RegisterContextWindows_x86.cpp
===================================================================
--- lldb/trunk/source/Plugins/Process/Windows/Common/x86/RegisterContextWindows_x86.cpp
+++ lldb/trunk/source/Plugins/Process/Windows/Common/x86/RegisterContextWindows_x86.cpp
@@ -176,6 +176,9 @@
   if (!CacheAllRegisterValues())
     return false;
 
+  if (reg_info == nullptr)
+    return false;
+
   uint32_t reg = reg_info->kinds[eRegisterKindLLDB];
   switch (reg) {
   case lldb_eax_i386: