]> granicus.if.org Git - clang/commit
Implement __stosb intrinsic as a volatile memset
authorAlbert Gutowski <agutowski@google.com>
Fri, 14 Oct 2016 17:33:05 +0000 (17:33 +0000)
committerAlbert Gutowski <agutowski@google.com>
Fri, 14 Oct 2016 17:33:05 +0000 (17:33 +0000)
commiteeed5f637da41dc691c3192f3b99e22e5cb76543
tree42210c685082088cb9cdb7aa14ecb01e495378ad
parent9c7db0323d4e9cbf391b8d738a5b2c5094e89d9f
Implement __stosb intrinsic as a volatile memset

Summary: We need `__stosb` to be an intrinsic, because SecureZeroMemory function uses it without including intrin.h. Implementing it as a volatile memset is not consistent with MSDN specification, but it gives us target-independent IR while keeping the most important properties of `__stosb`.

Reviewers: rnk, hans, thakis, majnemer

Subscribers: cfe-commits

Differential Revision: https://reviews.llvm.org/D25334

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@284253 91177308-0d34-0410-b5e6-96231b3b80d8
include/clang/Basic/BuiltinsX86.def
lib/CodeGen/CGBuiltin.cpp
lib/Headers/intrin.h
test/CodeGen/ms-intrinsics.c
test/Headers/ms-intrin.cpp