Skip to content

Conversation

@bernhardu
Copy link
Contributor

No description provided.

@llvmbot
Copy link
Member

llvmbot commented Aug 6, 2025

@llvm/pr-subscribers-compiler-rt-sanitizer

Author: None (bernhardu)

Changes

Full diff: https://github.com/llvm/llvm-project/pull/152361.diff

2 Files Affected:

  • (modified) compiler-rt/lib/interception/interception_win.cpp (+5)
  • (modified) compiler-rt/lib/interception/tests/interception_win_test.cpp (+1)
diff --git a/compiler-rt/lib/interception/interception_win.cpp b/compiler-rt/lib/interception/interception_win.cpp index 246a22c56c31a..5402f8368a409 100644 --- a/compiler-rt/lib/interception/interception_win.cpp +++ b/compiler-rt/lib/interception/interception_win.cpp @@ -684,6 +684,11 @@ static size_t GetInstructionSize(uptr address, size_t* rel_offset = nullptr) { return 3; } + switch (*(u32 *)address) { + case 0x2474290f : // 0f 29 74 24 XX : movaps %xmm6, XX(%rsp) + return 5; + } + # if SANITIZER_WINDOWS_x64 switch (*(u8*)address) { case 0xA1: // A1 XX XX XX XX XX XX XX XX : diff --git a/compiler-rt/lib/interception/tests/interception_win_test.cpp b/compiler-rt/lib/interception/tests/interception_win_test.cpp index f11c1d1458556..ef1e94d02b793 100644 --- a/compiler-rt/lib/interception/tests/interception_win_test.cpp +++ b/compiler-rt/lib/interception/tests/interception_win_test.cpp @@ -867,6 +867,7 @@ const struct InstructionSizeData { { 3, {0xc2, 0x71, 0x72}, 0, "C2 XX XX : ret XX (needed for registering weak functions)"}, { 4, {0x8D, 0x4C, 0x24, 0x73}, 0, "8D 4C 24 XX : lea ecx, [esp + XX]"}, { 4, {0xFF, 0x74, 0x24, 0x73}, 0, "FF 74 24 XX : push qword ptr [rsp + XX]"}, + { 5, {0x0f, 0x29, 0x74, 0x24, 0x74}, 0, "0f 29 74 24 XX : movaps %xmm6, XX(%rsp)"}, { 5, {0x68, 0x71, 0x72, 0x73, 0x74}, 0, "68 XX XX XX XX : push imm32"}, { 5, {0xb8, 0x71, 0x72, 0x73, 0x74}, 0, "b8 XX XX XX XX : mov eax, XX XX XX XX"}, { 5, {0xB9, 0x71, 0x72, 0x73, 0x74}, 0, "b9 XX XX XX XX : mov ecx, XX XX XX XX"}, 
@bernhardu
Copy link
Contributor Author

bernhardu commented Aug 6, 2025

This instruction appeared in CI here,
while trying to run the Windows ASan tests for i686 and amd64.

==5976==interception_win: unhandled instruction at 0x7ff7662a48d4: 0f 29 74 24 30 0f 28 f0 ==2188==interception_win: unhandled instruction at 0x7ff7dc8848d4: 0f 29 74 24 30 0f 28 f0 

Unfortunately this did not show up in any other run before or afterwards,
so I cannot say from which file this instruction originates from.

This is how lldb interprets them:

(lldb) disassemble --bytes --start-address 0x0000555555556004 --end-address 0x0000555555556024 0x555555556004: 0f 29 74 24 30 movaps %xmm6, 0x30(%rsp) 

CC: @zmodem

@github-actions
Copy link

github-actions bot commented Aug 6, 2025

✅ With the latest revision this PR passed the C/C++ code formatter.

@bernhardu bernhardu force-pushed the instruction-0f-29-74-24-XX branch from 21ceb02 to 4cb22d4 Compare August 6, 2025 18:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment