]>
Commit | Line | Data |
---|---|---|
ad1c1eeb | 1 | ;; Constraint definitions for the FR30. |
8d9254fc | 2 | ;; Copyright (C) 2011-2020 Free Software Foundation, Inc. |
ad1c1eeb NF |
3 | |
4 | ;; This file is part of GCC. | |
5 | ||
6 | ;; GCC is free software; you can redistribute it and/or modify | |
7 | ;; it under the terms of the GNU General Public License as published by | |
8 | ;; the Free Software Foundation; either version 3, or (at your option) | |
9 | ;; any later version. | |
10 | ||
11 | ;; GCC is distributed in the hope that it will be useful, | |
12 | ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 | ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
14 | ;; GNU General Public License for more details. | |
15 | ||
16 | ;; You should have received a copy of the GNU General Public License | |
17 | ;; along with GCC; see the file COPYING3. If not see | |
18 | ;; <http://www.gnu.org/licenses/>. | |
19 | ||
20 | ;; Register constraints. | |
21 | (define_register_constraint "d" "MULTIPLY_64_REG" | |
22 | "The MDH,MDL register pair as used by MUL and MULU.") | |
23 | ||
24 | (define_register_constraint "e" "MULTIPLY_32_REG" | |
25 | "The MDL register as used by MULH and MULUH.") | |
26 | ||
27 | (define_register_constraint "h" "HIGH_REGS" | |
28 | "Registers 8 through 15.") | |
29 | ||
30 | (define_register_constraint "l" "LOW_REGS" | |
31 | "Registers 0 through 7.") | |
32 | ||
33 | (define_register_constraint "a" "ALL_REGS" | |
34 | "@internal") | |
35 | ||
36 | ;; Integer constraints. | |
37 | (define_constraint "I" | |
38 | "An integer in the range 0 to 15." | |
39 | (and (match_code "const_int") | |
40 | (match_test "IN_RANGE (ival, 0, 15)"))) | |
41 | ||
42 | (define_constraint "J" | |
43 | "An integer in the range -16 to -1." | |
44 | (and (match_code "const_int") | |
45 | (match_test "IN_RANGE (ival, -16, -1)"))) | |
46 | ||
47 | (define_constraint "K" | |
48 | "An integer in the range 16 to 31." | |
49 | (and (match_code "const_int") | |
50 | (match_test "IN_RANGE (ival, 16, 31)"))) | |
51 | ||
52 | (define_constraint "L" | |
53 | "An integer in the range 0 to 255." | |
54 | (and (match_code "const_int") | |
55 | (match_test "IN_RANGE (ival, 0, 255)"))) | |
56 | ||
57 | (define_constraint "M" | |
58 | "An integer in the range 0 to 1048575." | |
59 | (and (match_code "const_int") | |
60 | (match_test "IN_RANGE (ival, 0, 1048575)"))) | |
61 | ||
62 | (define_constraint "P" | |
63 | "An integer in the range -256 to 255." | |
64 | (and (match_code "const_int") | |
65 | (match_test "IN_RANGE (ival, -256, 255)"))) | |
66 | ||
67 | ;; Extra constraints. | |
68 | (define_constraint "Q" | |
69 | "@internal" | |
70 | (and (match_code "mem") | |
71 | (match_code "symbol_ref" "0"))) |