summaryrefslogtreecommitdiffstats
path: root/include/clang/Basic
diff options
context:
space:
mode:
authorSaleem Abdulrasool <compnerd@compnerd.org>2014-12-17 17:52:30 +0000
committerSaleem Abdulrasool <compnerd@compnerd.org>2014-12-17 17:52:30 +0000
commit2bc89cf1f02daac1e207e8dea4fcb7fb9481701c (patch)
treec39070d958ad0d243c46c35721206c99efecf75f /include/clang/Basic
parentafbb57ffcb8181b3baa5b18dc2b1603ad845720c (diff)
CodeGen: implement __emit intrinsic
For MSVC compatibility, add the `__emit' builtin. This is used in the Windows SDK headers, and must therefore be implemented as a builtin rather than an intrinsic. The `__emit' builtin provides a mechanism to emit a 16-bit opcode instruction into the stream. The value must be a compile time constant expression. No guarantees are made about the CPU and memory states after the execution of the instruction. Due to the unchecked nature of the builtin, only support this on Windows on ARM. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@224438 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/clang/Basic')
-rw-r--r--include/clang/Basic/BuiltinsARM.def2
1 files changed, 2 insertions, 0 deletions
diff --git a/include/clang/Basic/BuiltinsARM.def b/include/clang/Basic/BuiltinsARM.def
index 1f2f9a3840..9091ad4d75 100644
--- a/include/clang/Basic/BuiltinsARM.def
+++ b/include/clang/Basic/BuiltinsARM.def
@@ -85,6 +85,8 @@ BUILTIN(__builtin_arm_isb, "vUi", "nc")
BUILTIN(__builtin_arm_prefetch, "vvC*UiUi", "nc")
// MSVC
+LANGBUILTIN(__emit, "vIUiC", "", ALL_MS_LANGUAGES)
+
LANGBUILTIN(__yield, "v", "", ALL_MS_LANGUAGES)
LANGBUILTIN(__wfe, "v", "", ALL_MS_LANGUAGES)
LANGBUILTIN(__wfi, "v", "", ALL_MS_LANGUAGES)