From ac2050609055d76a58b058b064f0b0c4d54e2faa Mon Sep 17 00:00:00 2001 From: Alex Rønne Petersen Date: Wed, 16 Jul 2025 11:22:46 +0200 Subject: libtsan: update to LLVM 21 --- lib/libtsan/interception/interception_win.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'lib/libtsan/interception/interception_win.cpp') diff --git a/lib/libtsan/interception/interception_win.cpp b/lib/libtsan/interception/interception_win.cpp index 002b37468a..246a22c56c 100644 --- a/lib/libtsan/interception/interception_win.cpp +++ b/lib/libtsan/interception/interception_win.cpp @@ -646,6 +646,7 @@ static size_t GetInstructionSize(uptr address, size_t* rel_offset = nullptr) { case 0xC033: // 33 C0 : xor eax, eax case 0xC933: // 33 C9 : xor ecx, ecx case 0xD233: // 33 D2 : xor edx, edx + case 0x9066: // 66 90 : xchg %ax,%ax (Two-byte NOP) case 0xDB84: // 84 DB : test bl,bl case 0xC084: // 84 C0 : test al,al case 0xC984: // 84 C9 : test cl,cl @@ -726,7 +727,6 @@ static size_t GetInstructionSize(uptr address, size_t* rel_offset = nullptr) { case 0x5541: // push r13 case 0x5641: // push r14 case 0x5741: // push r15 - case 0x9066: // Two-byte NOP case 0xc084: // test al, al case 0x018a: // mov al, byte ptr [rcx] return 2; @@ -743,6 +743,7 @@ static size_t GetInstructionSize(uptr address, size_t* rel_offset = nullptr) { case 0x058B: // 8B 05 XX XX XX XX : mov eax, dword ptr [XX XX XX XX] if (rel_offset) *rel_offset = 2; + FALLTHROUGH; case 0xB841: // 41 B8 XX XX XX XX : mov r8d, XX XX XX XX return 6; @@ -753,6 +754,12 @@ static size_t GetInstructionSize(uptr address, size_t* rel_offset = nullptr) { case 0x7B81: // 81 7B YY XX XX XX XX cmp DWORD PTR [rbx+YY], XX XX XX XX case 0x7981: // 81 79 YY XX XX XX XX cmp dword ptr [rcx+YY], XX XX XX XX return 7; + + case 0xb848: // 48 b8 XX XX XX XX XX XX XX XX : + // movabsq XX XX XX XX XX XX XX XX, rax + case 0xba48: // 48 ba XX XX XX XX XX XX XX XX : + // movabsq XX XX XX XX XX XX XX XX, rdx + return 10; } switch (0x00FFFFFF & *(u32 *)address) { -- cgit v1.2.3