BuiltinsARM.def revision 263508
1//===--- BuiltinsARM.def - ARM Builtin function database ----*- C++ -*-===//
2//
3//                     The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9//
10// This file defines the ARM-specific builtin function database.  Users of
11// this file must define the BUILTIN macro to make use of this information.
12//
13//===----------------------------------------------------------------------===//
14
15// The format of this database matches clang/Basic/Builtins.def.
16
17// In libgcc
18BUILTIN(__clear_cache, "vv*v*", "i")
19BUILTIN(__builtin_thread_pointer, "v*", "")
20
21// Saturating arithmetic
22BUILTIN(__builtin_arm_qadd, "iii", "nc")
23BUILTIN(__builtin_arm_qsub, "iii", "nc")
24BUILTIN(__builtin_arm_ssat, "iiUi", "nc")
25BUILTIN(__builtin_arm_usat, "UiUiUi", "nc")
26
27// Store and load exclusive
28BUILTIN(__builtin_arm_ldrexd, "LLUiv*", "")
29BUILTIN(__builtin_arm_strexd, "iLLUiv*", "")
30
31BUILTIN(__builtin_arm_ldrex, "v.", "t")
32BUILTIN(__builtin_arm_strex, "i.", "t")
33BUILTIN(__builtin_arm_clrex, "v", "")
34
35// VFP
36BUILTIN(__builtin_arm_get_fpscr, "Ui", "nc")
37BUILTIN(__builtin_arm_set_fpscr, "vUi", "nc")
38BUILTIN(__builtin_arm_vcvtr_f, "ffi", "nc")
39BUILTIN(__builtin_arm_vcvtr_d, "fdi", "nc")
40
41// Coprocessor
42BUILTIN(__builtin_arm_mcr, "vUiUiUiUiUiUi", "")
43BUILTIN(__builtin_arm_mcr2, "vUiUiUiUiUiUi", "")
44BUILTIN(__builtin_arm_mrc, "UiUiUiUiUiUi", "")
45BUILTIN(__builtin_arm_mrc2, "UiUiUiUiUiUi", "")
46BUILTIN(__builtin_arm_cdp, "vUiUiUiUiUiUi", "")
47BUILTIN(__builtin_arm_cdp2, "vUiUiUiUiUiUi", "")
48BUILTIN(__builtin_arm_mcrr, "vUiUiUiUiUi", "")
49BUILTIN(__builtin_arm_mcrr2, "vUiUiUiUiUi", "")
50
51// CRC32
52BUILTIN(__builtin_arm_crc32b, "UiUiUc", "nc")
53BUILTIN(__builtin_arm_crc32cb, "UiUiUc", "nc")
54BUILTIN(__builtin_arm_crc32h, "UiUiUs", "nc")
55BUILTIN(__builtin_arm_crc32ch, "UiUiUs", "nc")
56BUILTIN(__builtin_arm_crc32w, "UiUiUi", "nc")
57BUILTIN(__builtin_arm_crc32cw, "UiUiUi", "nc")
58BUILTIN(__builtin_arm_crc32d, "UiUiLLUi", "nc")
59BUILTIN(__builtin_arm_crc32cd, "UiUiLLUi", "nc")
60
61// HINT
62BUILTIN(__builtin_arm_sevl, "v", "")
63
64// Data barrier
65BUILTIN(__builtin_arm_dmb, "vUi", "nc")
66BUILTIN(__builtin_arm_dsb, "vUi", "nc")
67
68// NEON
69#define GET_NEON_BUILTINS
70#include "clang/Basic/arm_neon.inc"
71#undef GET_NEON_BUILTINS
72
73#undef BUILTIN
74