]>
Commit | Line | Data |
---|---|---|
15460c97 | 1 | /* MIPS extra machine modes. |
71e45bc2 | 2 | Copyright (C) 2003, 2004, 2007, 2008, 2011, 2012 |
3 | Free Software Foundation, Inc. | |
15460c97 | 4 | |
5 | This file is part of GCC. | |
6 | ||
7 | GCC is free software; you can redistribute it and/or modify | |
8 | it under the terms of the GNU General Public License as published by | |
038d1e19 | 9 | the Free Software Foundation; either version 3, or (at your option) |
15460c97 | 10 | any later version. |
11 | ||
12 | GCC is distributed in the hope that it will be useful, | |
13 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
15 | GNU General Public License for more details. | |
16 | ||
17 | You should have received a copy of the GNU General Public License | |
038d1e19 | 18 | along with GCC; see the file COPYING3. If not see |
19 | <http://www.gnu.org/licenses/>. */ | |
15460c97 | 20 | |
21 | /* MIPS has a quirky almost-IEEE format for all its | |
22 | floating point. */ | |
23 | RESET_FLOAT_FORMAT (SF, mips_single_format); | |
24 | RESET_FLOAT_FORMAT (DF, mips_double_format); | |
25 | ||
15460c97 | 26 | FLOAT_MODE (TF, 16, mips_quad_format); |
8ff58a85 | 27 | |
28 | /* Vector modes. */ | |
54e21214 | 29 | VECTOR_MODES (INT, 4); /* V4QI V2HI */ |
30 | VECTOR_MODES (INT, 8); /* V8QI V4HI V2SI */ | |
31 | VECTOR_MODES (FLOAT, 8); /* V4HF V2SF */ | |
32 | ||
33 | /* Double-sized vector modes for vec_concat. */ | |
34 | VECTOR_MODE (INT, QI, 16); /* V16QI */ | |
35 | VECTOR_MODE (INT, HI, 8); /* V8HI */ | |
36 | VECTOR_MODE (INT, SI, 4); /* V4SI */ | |
37 | VECTOR_MODE (FLOAT, SF, 4); /* V4SF */ | |
8ff58a85 | 38 | |
d20b198f | 39 | VECTOR_MODES (FRACT, 4); /* V4QQ V2HQ */ |
40 | VECTOR_MODES (UFRACT, 4); /* V4UQQ V2UHQ */ | |
41 | VECTOR_MODES (ACCUM, 4); /* V2HA */ | |
42 | VECTOR_MODES (UACCUM, 4); /* V2UHA */ | |
43 | ||
8ff58a85 | 44 | /* Paired single comparison instructions use 2 or 4 CC. */ |
45 | CC_MODE (CCV2); | |
46 | ADJUST_BYTESIZE (CCV2, 8); | |
47 | ADJUST_ALIGNMENT (CCV2, 8); | |
48 | ||
49 | CC_MODE (CCV4); | |
50 | ADJUST_BYTESIZE (CCV4, 16); | |
51 | ADJUST_ALIGNMENT (CCV4, 16); | |
b7efe757 | 52 | |
53 | /* For MIPS DSP control registers. */ | |
54 | CC_MODE (CCDSP); |