summaryrefslogtreecommitdiffstats
path: root/compiler-rt/lib
diff options
context:
space:
mode:
authorReid Kleckner <rnk@google.com>2019-04-04 21:08:02 +0000
committerReid Kleckner <rnk@google.com>2019-04-04 21:08:02 +0000
commit955b5a633138370cb5877f853f22ea86545adc36 (patch)
tree1c887c8464996d02019bbd7e8faeb1c583aaa857 /compiler-rt/lib
parent04347d848d270737b183060b2ba488eef84d3a16 (diff)
downloadbcm5719-llvm-955b5a633138370cb5877f853f22ea86545adc36.tar.gz
bcm5719-llvm-955b5a633138370cb5877f853f22ea86545adc36.zip
[winasan] Fix strrchr interception with vs2019 CRT
strrchr in vs2019 CRT begins with unrecognized instructions. VCRUNTIME140!strrchr: 4533c9 xor r9d, r9d 4c8bc1 mov r8, rcx Patch by Christopher Reid! Differential Revision: https://reviews.llvm.org/D60217 llvm-svn: 357725
Diffstat (limited to 'compiler-rt/lib')
-rw-r--r--compiler-rt/lib/interception/interception_win.cc2
1 files changed, 2 insertions, 0 deletions
diff --git a/compiler-rt/lib/interception/interception_win.cc b/compiler-rt/lib/interception/interception_win.cc
index ea38ea88c5b..40bde008052 100644
--- a/compiler-rt/lib/interception/interception_win.cc
+++ b/compiler-rt/lib/interception/interception_win.cc
@@ -512,10 +512,12 @@ static size_t GetInstructionSize(uptr address, size_t* rel_offset = nullptr) {
case 0xc0854d: // 4d 85 c0 : test r8, r8
case 0xc2b60f: // 0f b6 c2 : movzx eax, dl
case 0xc03345: // 45 33 c0 : xor r8d, r8d
+ case 0xc93345: // 45 33 c9 : xor r9d, r9d
case 0xdb3345: // 45 33 DB : xor r11d, r11d
case 0xd98b4c: // 4c 8b d9 : mov r11, rcx
case 0xd28b4c: // 4c 8b d2 : mov r10, rdx
case 0xc98b4c: // 4C 8B C9 : mov r9, rcx
+ case 0xc18b4c: // 4C 8B C1 : mov r8, rcx
case 0xd2b60f: // 0f b6 d2 : movzx edx, dl
case 0xca2b48: // 48 2b ca : sub rcx, rdx
case 0x10b70f: // 0f b7 10 : movzx edx, WORD PTR [rax]
OpenPOWER on IntegriCloud