]>
Commit | Line | Data |
---|---|---|
aa4945c1 JB |
1 | ;; Constraint definitions for Lattice Mico32 architecture. |
2 | ;; Contributed by Jon Beniston <jon@beniston.com> | |
3 | ;; | |
a5544970 | 4 | ;; Copyright (C) 2009-2019 Free Software Foundation, Inc. |
aa4945c1 JB |
5 | ;; |
6 | ;; This file is part of GCC. | |
7 | ;; | |
8 | ;; GCC is free software; you can redistribute it and/or modify | |
9 | ;; it under the terms of the GNU General Public License as published by | |
10 | ;; the Free Software Foundation; either version 3, or (at your option) | |
11 | ;; any later version. | |
12 | ;; | |
13 | ;; GCC is distributed in the hope that it will be useful, | |
14 | ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
15 | ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
16 | ;; GNU General Public License for more details. | |
17 | ;; | |
18 | ;; You should have received a copy of the GNU General Public License | |
19 | ;; along with GCC; see the file COPYING3. If not see | |
20 | ;; <http://www.gnu.org/licenses/>. | |
21 | ||
22 | (define_constraint "J" | |
23 | "The value 0." | |
24 | (and (match_code "const_int") | |
25 | (match_test "ival == 0"))) | |
26 | ||
27 | (define_constraint "K" | |
28 | "A signed 16-bit immediate in the range -32768 to 32767." | |
29 | (and (match_code "const_int") | |
30 | (match_test "IN_RANGE (ival, -32768, 32767)"))) | |
31 | ||
32 | (define_constraint "L" | |
33 | "An unsigned 16-bit immediate in the range 0 to 65535." | |
34 | (and (match_code "const_int") | |
35 | (match_test "IN_RANGE (ival, 0, 65535)"))) | |
36 | ||
37 | (define_constraint "M" | |
38 | "The value 1." | |
39 | (and (match_code "const_int") | |
40 | (match_test "ival == 1"))) | |
41 | ||
42 | (define_constraint "U" | |
43 | "A shifted signed 16-bit constant appropriate for orhi." | |
44 | (and (match_code "const_int") | |
45 | (match_test "(ival & 0xffff) == 0 | |
46 | && (ival >> 31 == -1 || ival >> 31 == 0)"))) | |
47 | ||
48 | (define_constraint "S" | |
49 | "A symbol in the small data section." | |
50 | (match_operand 0 "no_pic_small_symbol")) | |
51 | ||
52 | (define_constraint "Y" | |
53 | "A high part of a symbol." | |
54 | (and (match_code "high") | |
55 | (ior (ior (match_code "symbol_ref" "0") | |
56 | (match_code "label_ref" "0")) | |
57 | (match_code "const" "0")))) |