]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/config/arm/arm-modes.def
Update copyright years.
[thirdparty/gcc.git] / gcc / config / arm / arm-modes.def
CommitLineData
6f432b58 1/* Definitions of target machine for GNU compiler, for ARM.
fbd26352 2 Copyright (C) 2002-2019 Free Software Foundation, Inc.
6f432b58 3 Contributed by Pieter `Tiggr' Schoenmakers (rcpieter@win.tue.nl)
4 and Martin Simmons (@harleqn.co.uk).
5 More major hacks by Richard Earnshaw (rearnsha@arm.com)
6 Minor hacks by Nick Clifton (nickc@cygnus.com)
7
acf6ed70 8 This file is part of GCC.
6f432b58 9
acf6ed70 10 GCC is free software; you can redistribute it and/or modify it
11 under the terms of the GNU General Public License as published
038d1e19 12 by the Free Software Foundation; either version 3, or (at your
acf6ed70 13 option) any later version.
6f432b58 14
acf6ed70 15 GCC is distributed in the hope that it will be useful, but WITHOUT
16 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
17 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
18 License for more details.
6f432b58 19
acf6ed70 20 You should have received a copy of the GNU General Public License
038d1e19 21 along with GCC; see the file COPYING3. If not see
22 <http://www.gnu.org/licenses/>. */
6f432b58 23
15460c97 24
9b8516be 25/* Half-precision floating point */
26FLOAT_MODE (HF, 2, 0);
27ADJUST_FLOAT_FORMAT (HF, ((arm_fp16_format == ARM_FP16_FORMAT_ALTERNATIVE)
28 ? &arm_half_format : &ieee_half_format));
29
6f432b58 30/* CCFPEmode should be used with floating inequalities,
31 CCFPmode should be used with floating equalities.
32 CC_NOOVmode should be used with SImode integer equalities.
33 CC_Zmode should be used if only the Z flag is set correctly
2df9477b 34 CC_Cmode should be used if only the C flag is set correctly, after an
35 addition.
58d6528b 36 CC_Nmode should be used if only the N (sign) flag is set correctly
a8045a4f 37 CC_CZmode should be used if only the C and Z flags are correct
38 (used for DImode unsigned comparisons).
39 CC_NCVmode should be used if only the N, C, and V flags are correct
40 (used for DImode signed comparisons).
674a8f0b 41 CCmode should be used otherwise. */
6f432b58 42
15460c97 43CC_MODE (CC_NOOV);
44CC_MODE (CC_Z);
a8045a4f 45CC_MODE (CC_CZ);
46CC_MODE (CC_NCV);
15460c97 47CC_MODE (CC_SWP);
48CC_MODE (CCFP);
49CC_MODE (CCFPE);
50CC_MODE (CC_DNE);
51CC_MODE (CC_DEQ);
52CC_MODE (CC_DLE);
53CC_MODE (CC_DLT);
54CC_MODE (CC_DGE);
55CC_MODE (CC_DGT);
56CC_MODE (CC_DLEU);
57CC_MODE (CC_DLTU);
58CC_MODE (CC_DGEU);
59CC_MODE (CC_DGTU);
60CC_MODE (CC_C);
58d6528b 61CC_MODE (CC_N);
f6c98a9a 62CC_MODE (CC_V);
c40d47cc 63
64/* Vector modes. */
65VECTOR_MODES (INT, 4); /* V4QI V2HI */
66VECTOR_MODES (INT, 8); /* V8QI V4HI V2SI */
67VECTOR_MODES (INT, 16); /* V16QI V8HI V4SI V2DI */
68VECTOR_MODES (FLOAT, 8); /* V4HF V2SF */
69VECTOR_MODES (FLOAT, 16); /* V8HF V4SF V2DF */
00b2ca01 70VECTOR_MODE (FLOAT, HF, 2); /* V2HF */
c40d47cc 71
bbbe4599 72/* Fraction and accumulator vector modes. */
73VECTOR_MODES (FRACT, 4); /* V4QQ V2HQ */
74VECTOR_MODES (UFRACT, 4); /* V4UQQ V2UHQ */
75VECTOR_MODES (ACCUM, 4); /* V2HA */
76VECTOR_MODES (UACCUM, 4); /* V2UHA */
77
d98a3884 78/* Opaque integer modes for 3, 4, 6 or 8 Neon double registers (2 is
79 TImode). */
80INT_MODE (EI, 24);
81INT_MODE (OI, 32);
82INT_MODE (CI, 48);
33a0b99d 83INT_MODE (XI, 64);