]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/doc/gcc/extensions-to-the-c-language-family/target-builtins/alpha-built-in-functions.rst
sphinx: add missing trailing newline
[thirdparty/gcc.git] / gcc / doc / gcc / extensions-to-the-c-language-family / target-builtins / alpha-built-in-functions.rst
1 ..
2 Copyright 1988-2022 Free Software Foundation, Inc.
3 This is part of the GCC manual.
4 For copying conditions, see the copyright.rst file.
5
6 .. _alpha-built-in-functions:
7
8 Alpha Built-in Functions
9 ^^^^^^^^^^^^^^^^^^^^^^^^
10
11 These built-in functions are available for the Alpha family of
12 processors, depending on the command-line switches used.
13
14 The following built-in functions are always available. They
15 all generate the machine instruction that is part of the name.
16
17 .. code-block:: c++
18
19 long __builtin_alpha_implver (void);
20 long __builtin_alpha_rpcc (void);
21 long __builtin_alpha_amask (long);
22 long __builtin_alpha_cmpbge (long, long);
23 long __builtin_alpha_extbl (long, long);
24 long __builtin_alpha_extwl (long, long);
25 long __builtin_alpha_extll (long, long);
26 long __builtin_alpha_extql (long, long);
27 long __builtin_alpha_extwh (long, long);
28 long __builtin_alpha_extlh (long, long);
29 long __builtin_alpha_extqh (long, long);
30 long __builtin_alpha_insbl (long, long);
31 long __builtin_alpha_inswl (long, long);
32 long __builtin_alpha_insll (long, long);
33 long __builtin_alpha_insql (long, long);
34 long __builtin_alpha_inswh (long, long);
35 long __builtin_alpha_inslh (long, long);
36 long __builtin_alpha_insqh (long, long);
37 long __builtin_alpha_mskbl (long, long);
38 long __builtin_alpha_mskwl (long, long);
39 long __builtin_alpha_mskll (long, long);
40 long __builtin_alpha_mskql (long, long);
41 long __builtin_alpha_mskwh (long, long);
42 long __builtin_alpha_msklh (long, long);
43 long __builtin_alpha_mskqh (long, long);
44 long __builtin_alpha_umulh (long, long);
45 long __builtin_alpha_zap (long, long);
46 long __builtin_alpha_zapnot (long, long);
47
48 The following built-in functions are always with :option:`-mmax`
49 or :option:`-mcpu=cpu` where :samp:`{cpu}` is ``pca56`` or
50 later. They all generate the machine instruction that is part
51 of the name.
52
53 .. code-block:: c++
54
55 long __builtin_alpha_pklb (long);
56 long __builtin_alpha_pkwb (long);
57 long __builtin_alpha_unpkbl (long);
58 long __builtin_alpha_unpkbw (long);
59 long __builtin_alpha_minub8 (long, long);
60 long __builtin_alpha_minsb8 (long, long);
61 long __builtin_alpha_minuw4 (long, long);
62 long __builtin_alpha_minsw4 (long, long);
63 long __builtin_alpha_maxub8 (long, long);
64 long __builtin_alpha_maxsb8 (long, long);
65 long __builtin_alpha_maxuw4 (long, long);
66 long __builtin_alpha_maxsw4 (long, long);
67 long __builtin_alpha_perr (long, long);
68
69 The following built-in functions are always with :option:`-mcix`
70 or :option:`-mcpu=cpu` where :samp:`{cpu}` is ``ev67`` or
71 later. They all generate the machine instruction that is part
72 of the name.
73
74 .. code-block:: c++
75
76 long __builtin_alpha_cttz (long);
77 long __builtin_alpha_ctlz (long);
78 long __builtin_alpha_ctpop (long);
79
80 The following built-in functions are available on systems that use the OSF/1
81 PALcode. Normally they invoke the ``rduniq`` and ``wruniq``
82 PAL calls, but when invoked with :option:`-mtls-kernel`, they invoke
83 ``rdval`` and ``wrval``.
84
85 .. code-block:: c++
86
87 void *__builtin_thread_pointer (void);
88 void __builtin_set_thread_pointer (void *);