https://github.com/sedymrak updated 
https://github.com/llvm/llvm-project/pull/163646

From b2fb3922d6857815fb757db73036675194bcaced Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Matej=20Ko=C5=A1=C3=ADk?= <[email protected]>
Date: Wed, 15 Oct 2025 23:52:48 +0200
Subject: [PATCH 1/7] [lldb] fix the "RegisterValue::SetValueFromData" method

Fix the "RegisterValue::SetValueFromData" so that it works
also for 128-bit registers that contain integers.
---
 lldb/source/Utility/RegisterValue.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lldb/source/Utility/RegisterValue.cpp 
b/lldb/source/Utility/RegisterValue.cpp
index 0e99451c3b700..12c349a143c0f 100644
--- a/lldb/source/Utility/RegisterValue.cpp
+++ b/lldb/source/Utility/RegisterValue.cpp
@@ -199,7 +199,7 @@ Status RegisterValue::SetValueFromData(const RegisterInfo 
&reg_info,
     else if (reg_info.byte_size <= 16) {
       uint64_t data1 = src.GetU64(&src_offset);
       uint64_t data2 = src.GetU64(&src_offset);
-      if (src.GetByteOrder() == eByteOrderBig) {
+      if (src.GetByteOrder() == eByteOrderLittle) {
         int128.x[0] = data1;
         int128.x[1] = data2;
       } else {

From cc54084674d4a64d803194b39765bb76589028ba Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Matej=20Ko=C5=A1=C3=ADk?= <[email protected]>
Date: Fri, 17 Oct 2025 11:28:12 +0200
Subject: [PATCH 2/7] [lldb] add tests for the
 "RegisterValue::SetValueFromData" method

---
 lldb/unittests/Utility/RegisterValueTest.cpp | 53 ++++++++++++++++++++
 1 file changed, 53 insertions(+)

diff --git a/lldb/unittests/Utility/RegisterValueTest.cpp 
b/lldb/unittests/Utility/RegisterValueTest.cpp
index e0863a41605e6..e34a8c2b8bdf8 100644
--- a/lldb/unittests/Utility/RegisterValueTest.cpp
+++ b/lldb/unittests/Utility/RegisterValueTest.cpp
@@ -7,6 +7,8 @@
 
//===----------------------------------------------------------------------===//
 
 #include "lldb/Utility/RegisterValue.h"
+#include "lldb/lldb-private-types.h"
+#include "lldb/Utility/DataExtractor.h"
 #include "gtest/gtest.h"
 #include <optional>
 
@@ -54,3 +56,54 @@ TEST(RegisterValueTest, GetScalarValue) {
             Scalar((APInt(128, 0xffeeddccbbaa9988ull) << 64) |
                    APInt(128, 0x7766554433221100)));
 }
+
+static const Scalar etalon128(APInt(128, 0xffeeddccbbaa9988ull) << 64 |
+                              APInt(128, 0x7766554433221100ull));
+
+// Test that the "RegisterValue::SetValueFromData" method works correctly
+// with 128-bit little-endian data that represents an integer.
+TEST(RegisterValueTest, SetValueFromData_128_le) {
+  RegisterValue rv;
+  RegisterInfo ri{"uint128_register",
+                  nullptr,
+                  16,
+                  0,
+                  lldb::Encoding::eEncodingUint,
+                  lldb::Format::eFormatDefault,
+                  {0, 0, 0, LLDB_INVALID_REGNUM, 0},
+                  nullptr,
+                  nullptr,
+                  nullptr};
+
+  uint8_t src[] = {0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77,
+                   0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff};
+  DataExtractor src_extractor(src, 16, lldb::ByteOrder::eByteOrderLittle, 8);
+  EXPECT_TRUE(rv.SetValueFromData(ri, src_extractor, 0, false).Success());
+  Scalar s;
+  EXPECT_TRUE(rv.GetScalarValue(s));
+  EXPECT_EQ(s, etalon128);
+}
+
+// Test that the "RegisterValue::SetValueFromData" method works correctly
+// with 128-bit big-endian data that represents an integer.
+TEST(RegisterValueTest, SetValueFromData_128_be) {
+  RegisterValue rv;
+  RegisterInfo ri{"uint128_register",
+                  nullptr,
+                  16,
+                  0,
+                  lldb::Encoding::eEncodingUint,
+                  lldb::Format::eFormatDefault,
+                  {0, 0, 0, LLDB_INVALID_REGNUM, 0},
+                  nullptr,
+                  nullptr,
+                  nullptr};
+
+  uint8_t src[] = {0xff, 0xee, 0xdd, 0xcc, 0xbb, 0xaa, 0x99, 0x88,
+                   0x77, 0x66, 0x55, 0x44, 0x33, 0x22, 0x11, 0x00};
+  DataExtractor src_extractor(src, 16, lldb::ByteOrder::eByteOrderBig, 8);
+  EXPECT_TRUE(rv.SetValueFromData(ri, src_extractor, 0, false).Success());
+  Scalar s;
+  EXPECT_TRUE(rv.GetScalarValue(s));
+  EXPECT_EQ(s, etalon128);
+}

From fdae92f0f68b1f20690ddb8461d7e621353cf029 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Matej=20Ko=C5=A1=C3=ADk?= <[email protected]>
Date: Fri, 17 Oct 2025 14:49:45 +0200
Subject: [PATCH 3/7] [lldb] fixing formatting

---
 lldb/unittests/Utility/RegisterValueTest.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lldb/unittests/Utility/RegisterValueTest.cpp 
b/lldb/unittests/Utility/RegisterValueTest.cpp
index e34a8c2b8bdf8..f34a87fd47f0c 100644
--- a/lldb/unittests/Utility/RegisterValueTest.cpp
+++ b/lldb/unittests/Utility/RegisterValueTest.cpp
@@ -7,8 +7,8 @@
 
//===----------------------------------------------------------------------===//
 
 #include "lldb/Utility/RegisterValue.h"
-#include "lldb/lldb-private-types.h"
 #include "lldb/Utility/DataExtractor.h"
+#include "lldb/lldb-private-types.h"
 #include "gtest/gtest.h"
 #include <optional>
 

From 592b8f88e68b0aa79e62233469e2dacadea9bab2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Matej=20Ko=C5=A1=C3=ADk?= <[email protected]>
Date: Fri, 17 Oct 2025 15:48:59 +0200
Subject: [PATCH 4/7] [lldb] refactoring

---
 lldb/unittests/Utility/RegisterValueTest.cpp | 22 +++++++++++---------
 1 file changed, 12 insertions(+), 10 deletions(-)

diff --git a/lldb/unittests/Utility/RegisterValueTest.cpp 
b/lldb/unittests/Utility/RegisterValueTest.cpp
index f34a87fd47f0c..83b08f0b7cd00 100644
--- a/lldb/unittests/Utility/RegisterValueTest.cpp
+++ b/lldb/unittests/Utility/RegisterValueTest.cpp
@@ -60,6 +60,16 @@ TEST(RegisterValueTest, GetScalarValue) {
 static const Scalar etalon128(APInt(128, 0xffeeddccbbaa9988ull) << 64 |
                               APInt(128, 0x7766554433221100ull));
 
+void TestSetValueFromData128(const RegisterInfo &ri, void *src,
+                              const lldb::ByteOrder endianness) {
+  DataExtractor src_extractor(src, 16, endianness, 8);
+  RegisterValue rv;
+  EXPECT_TRUE(rv.SetValueFromData(ri, src_extractor, 0, false).Success());
+  Scalar s;
+  EXPECT_TRUE(rv.GetScalarValue(s));
+  EXPECT_EQ(s, etalon128);
+}
+
 // Test that the "RegisterValue::SetValueFromData" method works correctly
 // with 128-bit little-endian data that represents an integer.
 TEST(RegisterValueTest, SetValueFromData_128_le) {
@@ -77,11 +87,7 @@ TEST(RegisterValueTest, SetValueFromData_128_le) {
 
   uint8_t src[] = {0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77,
                    0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff};
-  DataExtractor src_extractor(src, 16, lldb::ByteOrder::eByteOrderLittle, 8);
-  EXPECT_TRUE(rv.SetValueFromData(ri, src_extractor, 0, false).Success());
-  Scalar s;
-  EXPECT_TRUE(rv.GetScalarValue(s));
-  EXPECT_EQ(s, etalon128);
+  TestSetValueFromData128(ri, src, lldb::ByteOrder::eByteOrderLittle);
 }
 
 // Test that the "RegisterValue::SetValueFromData" method works correctly
@@ -101,9 +107,5 @@ TEST(RegisterValueTest, SetValueFromData_128_be) {
 
   uint8_t src[] = {0xff, 0xee, 0xdd, 0xcc, 0xbb, 0xaa, 0x99, 0x88,
                    0x77, 0x66, 0x55, 0x44, 0x33, 0x22, 0x11, 0x00};
-  DataExtractor src_extractor(src, 16, lldb::ByteOrder::eByteOrderBig, 8);
-  EXPECT_TRUE(rv.SetValueFromData(ri, src_extractor, 0, false).Success());
-  Scalar s;
-  EXPECT_TRUE(rv.GetScalarValue(s));
-  EXPECT_EQ(s, etalon128);
+  TestSetValueFromData128(ri, src, lldb::ByteOrder::eByteOrderBig);
 }

From 08ddc99b36e52e27ce73f66ba9ac061f53354942 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Matej=20Ko=C5=A1=C3=ADk?= <[email protected]>
Date: Fri, 17 Oct 2025 15:53:06 +0200
Subject: [PATCH 5/7] [lldb] fixing formatting

---
 lldb/unittests/Utility/RegisterValueTest.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lldb/unittests/Utility/RegisterValueTest.cpp 
b/lldb/unittests/Utility/RegisterValueTest.cpp
index 83b08f0b7cd00..36f75601c53ab 100644
--- a/lldb/unittests/Utility/RegisterValueTest.cpp
+++ b/lldb/unittests/Utility/RegisterValueTest.cpp
@@ -61,7 +61,7 @@ static const Scalar etalon128(APInt(128, 
0xffeeddccbbaa9988ull) << 64 |
                               APInt(128, 0x7766554433221100ull));
 
 void TestSetValueFromData128(const RegisterInfo &ri, void *src,
-                              const lldb::ByteOrder endianness) {
+                             const lldb::ByteOrder endianness) {
   DataExtractor src_extractor(src, 16, endianness, 8);
   RegisterValue rv;
   EXPECT_TRUE(rv.SetValueFromData(ri, src_extractor, 0, false).Success());

From 812a1834e7af04b8b3b3e0fbb6bddf32e6543c08 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Matej=20Ko=C5=A1=C3=ADk?= <[email protected]>
Date: Fri, 17 Oct 2025 16:09:03 +0200
Subject: [PATCH 6/7] [lldb] refactoring

---
 lldb/unittests/Utility/RegisterValueTest.cpp | 37 +++++++-------------
 1 file changed, 13 insertions(+), 24 deletions(-)

diff --git a/lldb/unittests/Utility/RegisterValueTest.cpp 
b/lldb/unittests/Utility/RegisterValueTest.cpp
index 36f75601c53ab..d7174cda074b8 100644
--- a/lldb/unittests/Utility/RegisterValueTest.cpp
+++ b/lldb/unittests/Utility/RegisterValueTest.cpp
@@ -60,8 +60,17 @@ TEST(RegisterValueTest, GetScalarValue) {
 static const Scalar etalon128(APInt(128, 0xffeeddccbbaa9988ull) << 64 |
                               APInt(128, 0x7766554433221100ull));
 
-void TestSetValueFromData128(const RegisterInfo &ri, void *src,
-                             const lldb::ByteOrder endianness) {
+void TestSetValueFromData128(void *src, const lldb::ByteOrder endianness) {
+  RegisterInfo ri{"uint128_register",
+                  nullptr,
+                  16,
+                  0,
+                  lldb::Encoding::eEncodingUint,
+                  lldb::Format::eFormatDefault,
+                  {0, 0, 0, LLDB_INVALID_REGNUM, 0},
+                  nullptr,
+                  nullptr,
+                  nullptr};
   DataExtractor src_extractor(src, 16, endianness, 8);
   RegisterValue rv;
   EXPECT_TRUE(rv.SetValueFromData(ri, src_extractor, 0, false).Success());
@@ -74,38 +83,18 @@ void TestSetValueFromData128(const RegisterInfo &ri, void 
*src,
 // with 128-bit little-endian data that represents an integer.
 TEST(RegisterValueTest, SetValueFromData_128_le) {
   RegisterValue rv;
-  RegisterInfo ri{"uint128_register",
-                  nullptr,
-                  16,
-                  0,
-                  lldb::Encoding::eEncodingUint,
-                  lldb::Format::eFormatDefault,
-                  {0, 0, 0, LLDB_INVALID_REGNUM, 0},
-                  nullptr,
-                  nullptr,
-                  nullptr};
 
   uint8_t src[] = {0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77,
                    0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff};
-  TestSetValueFromData128(ri, src, lldb::ByteOrder::eByteOrderLittle);
+  TestSetValueFromData128(src, lldb::ByteOrder::eByteOrderLittle);
 }
 
 // Test that the "RegisterValue::SetValueFromData" method works correctly
 // with 128-bit big-endian data that represents an integer.
 TEST(RegisterValueTest, SetValueFromData_128_be) {
   RegisterValue rv;
-  RegisterInfo ri{"uint128_register",
-                  nullptr,
-                  16,
-                  0,
-                  lldb::Encoding::eEncodingUint,
-                  lldb::Format::eFormatDefault,
-                  {0, 0, 0, LLDB_INVALID_REGNUM, 0},
-                  nullptr,
-                  nullptr,
-                  nullptr};
 
   uint8_t src[] = {0xff, 0xee, 0xdd, 0xcc, 0xbb, 0xaa, 0x99, 0x88,
                    0x77, 0x66, 0x55, 0x44, 0x33, 0x22, 0x11, 0x00};
-  TestSetValueFromData128(ri, src, lldb::ByteOrder::eByteOrderBig);
+  TestSetValueFromData128(src, lldb::ByteOrder::eByteOrderBig);
 }

From 86e81ee2333a4bd3904648ce7dc9835fcab74344 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Matej=20Ko=C5=A1=C3=ADk?= <[email protected]>
Date: Fri, 17 Oct 2025 16:10:02 +0200
Subject: [PATCH 7/7] [lldb] refactoring

---
 lldb/unittests/Utility/RegisterValueTest.cpp | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/lldb/unittests/Utility/RegisterValueTest.cpp 
b/lldb/unittests/Utility/RegisterValueTest.cpp
index d7174cda074b8..6239dbe21634a 100644
--- a/lldb/unittests/Utility/RegisterValueTest.cpp
+++ b/lldb/unittests/Utility/RegisterValueTest.cpp
@@ -82,8 +82,6 @@ void TestSetValueFromData128(void *src, const lldb::ByteOrder 
endianness) {
 // Test that the "RegisterValue::SetValueFromData" method works correctly
 // with 128-bit little-endian data that represents an integer.
 TEST(RegisterValueTest, SetValueFromData_128_le) {
-  RegisterValue rv;
-
   uint8_t src[] = {0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77,
                    0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff};
   TestSetValueFromData128(src, lldb::ByteOrder::eByteOrderLittle);
@@ -92,8 +90,6 @@ TEST(RegisterValueTest, SetValueFromData_128_le) {
 // Test that the "RegisterValue::SetValueFromData" method works correctly
 // with 128-bit big-endian data that represents an integer.
 TEST(RegisterValueTest, SetValueFromData_128_be) {
-  RegisterValue rv;
-
   uint8_t src[] = {0xff, 0xee, 0xdd, 0xcc, 0xbb, 0xaa, 0x99, 0x88,
                    0x77, 0x66, 0x55, 0x44, 0x33, 0x22, 0x11, 0x00};
   TestSetValueFromData128(src, lldb::ByteOrder::eByteOrderBig);

_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to