[Lldb-commits] [PATCH] D123269: debugserver would never write modified xmm/ymm/zmm register values into the inferior

Jason Molenda via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Wed Apr 6 16:40:49 PDT 2022


jasonmolenda created this revision.
jasonmolenda added a project: LLDB.
Herald added subscribers: JDevlieghere, pengfei.
Herald added a project: All.
jasonmolenda requested review of this revision.
Herald added a subscriber: lldb-commits.

A small mistake in the method that accepts new xmm/ymm/zmm register values caused them to not be thread_set_state'd so the changes never took effect.

Update the three shell tests that test this functionality so they are xfail'ed with the system debugserver (which won't have this fix yet), but do pass with in-tree debugserver now on x86_64 darwin systems.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D123269

Files:
  lldb/test/Shell/Register/x86-64-write.test
  lldb/test/Shell/Register/x86-64-ymm-write.test
  lldb/test/Shell/Register/x86-64-zmm-write.test
  lldb/tools/debugserver/source/MacOSX/x86_64/DNBArchImplX86_64.cpp


Index: lldb/tools/debugserver/source/MacOSX/x86_64/DNBArchImplX86_64.cpp
===================================================================
--- lldb/tools/debugserver/source/MacOSX/x86_64/DNBArchImplX86_64.cpp
+++ lldb/tools/debugserver/source/MacOSX/x86_64/DNBArchImplX86_64.cpp
@@ -2632,7 +2632,8 @@
                &value->value.uint8, 16);
         memcpy(&m_state.context.fpu.avx.__fpu_ymmh0 + (reg - fpu_ymm0),
                (&value->value.uint8) + 16, 16);
-        return true;
+        success = true;
+        break;
       case fpu_k0:
       case fpu_k1:
       case fpu_k2:
@@ -2643,7 +2644,8 @@
       case fpu_k7:
         memcpy(&m_state.context.fpu.avx512f.__fpu_k0 + (reg - fpu_k0),
                &value->value.uint8, 8);
-        return true;
+        success = true;
+        break;
       case fpu_zmm0:
       case fpu_zmm1:
       case fpu_zmm2:
@@ -2666,7 +2668,8 @@
                &value->value.uint8 + 16, 16);
         memcpy(&m_state.context.fpu.avx512f.__fpu_zmmh0 + (reg - fpu_zmm0),
                &value->value.uint8 + 32, 32);
-        return true;
+        success = true;
+        break;
       case fpu_zmm16:
       case fpu_zmm17:
       case fpu_zmm18:
@@ -2685,7 +2688,8 @@
       case fpu_zmm31:
         memcpy(&m_state.context.fpu.avx512f.__fpu_zmm16 + (reg - fpu_zmm16),
                &value->value.uint8, 64);
-        return true;
+        success = true;
+        break;
       }
       break;
 
Index: lldb/test/Shell/Register/x86-64-zmm-write.test
===================================================================
--- lldb/test/Shell/Register/x86-64-zmm-write.test
+++ lldb/test/Shell/Register/x86-64-zmm-write.test
@@ -1,4 +1,4 @@
-# XFAIL: system-darwin
+# XFAIL: system-debugserver
 # XFAIL: system-freebsd
 # XFAIL: system-linux
 # XFAIL: system-netbsd
Index: lldb/test/Shell/Register/x86-64-ymm-write.test
===================================================================
--- lldb/test/Shell/Register/x86-64-ymm-write.test
+++ lldb/test/Shell/Register/x86-64-ymm-write.test
@@ -1,4 +1,4 @@
-# XFAIL: system-darwin
+# XFAIL: system-debugserver
 # XFAIL: system-windows
 # REQUIRES: native && target-x86_64 && native-cpu-avx
 # RUN: %clangxx_host %p/Inputs/x86-ymm-write.cpp -o %t
Index: lldb/test/Shell/Register/x86-64-write.test
===================================================================
--- lldb/test/Shell/Register/x86-64-write.test
+++ lldb/test/Shell/Register/x86-64-write.test
@@ -1,4 +1,4 @@
-# XFAIL: system-darwin
+# XFAIL: system-debugserver
 # XFAIL: system-windows
 # REQUIRES: native && target-x86_64
 # RUN: %clangxx_host %p/Inputs/x86-64-write.cpp -o %t


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D123269.421043.patch
Type: text/x-patch
Size: 2644 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20220406/5ef7168f/attachment.bin>


More information about the lldb-commits mailing list