[Lldb-commits] [lldb] [lldb] fix the "RegisterValue::SetValueFromData" method for 128-bit integer registers (PR #163646)

David Spickett via lldb-commits lldb-commits at lists.llvm.org
Fri Oct 17 06:58:33 PDT 2025


Matej =?utf-8?q?Ko=C5=A1=C3=ADk?= <matej.kosik at codasip.com>,
Matej =?utf-8?q?Ko=C5=A1=C3=ADk?= <matej.kosik at codasip.com>,
Matej =?utf-8?q?Ko=C5=A1=C3=ADk?= <matej.kosik at codasip.com>,
Matej =?utf-8?q?Ko=C5=A1=C3=ADk?= <matej.kosik at codasip.com>
Message-ID:
In-Reply-To: <llvm.org/llvm/llvm-project/pull/163646 at github.com>


================
@@ -54,3 +56,56 @@ TEST(RegisterValueTest, GetScalarValue) {
             Scalar((APInt(128, 0xffeeddccbbaa9988ull) << 64) |
                    APInt(128, 0x7766554433221100)));
 }
+
+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) {
+  RegisterValue rv;
----------------
DavidSpickett wrote:

Is now unused.

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


More information about the lldb-commits mailing list