summaryrefslogtreecommitdiffstats
path: root/clang/include
diff options
context:
space:
mode:
authorAlbert Gutowski <agutowski@google.com>2016-10-14 17:33:05 +0000
committerAlbert Gutowski <agutowski@google.com>2016-10-14 17:33:05 +0000
commit1deab387170a0877485e9aca7461acac79b33be3 (patch)
treefd89d89caffae48b6add6cfd403cc7ea4b4dfb42 /clang/include
parentc39f8b0a3a1dd8bab1ddcfd865eaf092b2a8507f (diff)
downloadbcm5719-llvm-1deab387170a0877485e9aca7461acac79b33be3.tar.gz
bcm5719-llvm-1deab387170a0877485e9aca7461acac79b33be3.zip
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 llvm-svn: 284253
Diffstat (limited to 'clang/include')
-rw-r--r--clang/include/clang/Basic/BuiltinsX86.def2
1 files changed, 2 insertions, 0 deletions
diff --git a/clang/include/clang/Basic/BuiltinsX86.def b/clang/include/clang/Basic/BuiltinsX86.def
index 06c590a1718..8e3fa3d74bb 100644
--- a/clang/include/clang/Basic/BuiltinsX86.def
+++ b/clang/include/clang/Basic/BuiltinsX86.def
@@ -2041,6 +2041,8 @@ TARGET_HEADER_BUILTIN(__emulu, "ULLiUiUi", "nh", "intrin.h", ALL_MS_LANGUAGES, "
TARGET_HEADER_BUILTIN(_AddressOfReturnAddress, "v*", "nh", "intrin.h", ALL_MS_LANGUAGES, "")
+TARGET_HEADER_BUILTIN(__stosb, "vUc*Ucz", "nh", "intrin.h", ALL_MS_LANGUAGES, "")
+
#undef BUILTIN
#undef TARGET_BUILTIN
#undef TARGET_HEADER_BUILTIN
OpenPOWER on IntegriCloud