[Lldb-commits] [lldb] 4d3cc27 - Correct debugserver to write xmm/ymm/zmm reg values
Jason Molenda via lldb-commits
lldb-commits at lists.llvm.org
Wed Apr 6 23:37:14 PDT 2022
Author: Jason Molenda
Date: 2022-04-06T23:36:52-07:00
New Revision: 4d3cc27831383987b38e60875573982af5e0538b
URL: https://github.com/llvm/llvm-project/commit/4d3cc27831383987b38e60875573982af5e0538b
DIFF: https://github.com/llvm/llvm-project/commit/4d3cc27831383987b38e60875573982af5e0538b.diff
LOG: Correct debugserver to write xmm/ymm/zmm reg values
debugserver does not call thread_set_state when changing xmm/ymm/zmm
register values, so the register contents are never updated. Fix
that. Mark the shell tests which xfail'ed these tests on darwin systems
to xfail them when the system debugserver, they will pass when using
the in-tree debugserver. When this makes it into the installed
system debugservers, we'll remove the xfails.
Differential Revision: https://reviews.llvm.org/D123269
rdar://91258333
rdar://31294382
Added:
Modified:
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
Removed:
################################################################################
diff --git a/lldb/test/Shell/Register/x86-64-write.test b/lldb/test/Shell/Register/x86-64-write.test
index 29dd7bc71b3b2..1b6b1e8fb1806 100644
--- a/lldb/test/Shell/Register/x86-64-write.test
+++ b/lldb/test/Shell/Register/x86-64-write.test
@@ -1,4 +1,9 @@
-# XFAIL: system-darwin
+# xfail with system debugserver until the fix for
+# https://reviews.llvm.org/D123269 in
+# lldb/tools/debugserver/source/MacOSX/x86_64/DNBArchImplX86_64.cpp
+# has made it into released tools.
+# XFAIL: system-debugserver
+
# XFAIL: system-windows
# REQUIRES: native && target-x86_64
# RUN: %clangxx_host %p/Inputs/x86-64-write.cpp -o %t
diff --git a/lldb/test/Shell/Register/x86-64-ymm-write.test b/lldb/test/Shell/Register/x86-64-ymm-write.test
index 05b3c2f52d2c6..9d9f3451b41a8 100644
--- a/lldb/test/Shell/Register/x86-64-ymm-write.test
+++ b/lldb/test/Shell/Register/x86-64-ymm-write.test
@@ -1,4 +1,9 @@
-# XFAIL: system-darwin
+# xfail with system debugserver until the fix for
+# https://reviews.llvm.org/D123269 in
+# lldb/tools/debugserver/source/MacOSX/x86_64/DNBArchImplX86_64.cpp
+# has made it into released tools.
+# 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
diff --git a/lldb/test/Shell/Register/x86-64-zmm-write.test b/lldb/test/Shell/Register/x86-64-zmm-write.test
index 4b22235c1b926..6304205779234 100644
--- a/lldb/test/Shell/Register/x86-64-zmm-write.test
+++ b/lldb/test/Shell/Register/x86-64-zmm-write.test
@@ -1,4 +1,9 @@
-# XFAIL: system-darwin
+# xfail with system debugserver until the fix for
+# https://reviews.llvm.org/D123269 in
+# lldb/tools/debugserver/source/MacOSX/x86_64/DNBArchImplX86_64.cpp
+# has made it into released tools.
+# XFAIL: system-debugserver
+
# XFAIL: system-freebsd
# XFAIL: system-linux
# XFAIL: system-netbsd
diff --git a/lldb/tools/debugserver/source/MacOSX/x86_64/DNBArchImplX86_64.cpp b/lldb/tools/debugserver/source/MacOSX/x86_64/DNBArchImplX86_64.cpp
index 7270ecb55cc06..5a62e2a8d12e2 100644
--- a/lldb/tools/debugserver/source/MacOSX/x86_64/DNBArchImplX86_64.cpp
+++ b/lldb/tools/debugserver/source/MacOSX/x86_64/DNBArchImplX86_64.cpp
@@ -2632,7 +2632,8 @@ bool DNBArchImplX86_64::SetRegisterValue(uint32_t set, uint32_t reg,
&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 @@ bool DNBArchImplX86_64::SetRegisterValue(uint32_t set, uint32_t reg,
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 @@ bool DNBArchImplX86_64::SetRegisterValue(uint32_t set, uint32_t reg,
&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 @@ bool DNBArchImplX86_64::SetRegisterValue(uint32_t set, uint32_t reg,
case fpu_zmm31:
memcpy(&m_state.context.fpu.avx512f.__fpu_zmm16 + (reg - fpu_zmm16),
&value->value.uint8, 64);
- return true;
+ success = true;
+ break;
}
break;
More information about the lldb-commits
mailing list