]>
Commit | Line | Data |
---|---|---|
0969ec7d | 1 | ;; Constraint definitions for Visium. |
a5544970 | 2 | ;; Copyright (C) 2006-2019 Free Software Foundation, Inc. |
0969ec7d EB |
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 | ||
22 | (define_register_constraint "b" "MDB" | |
23 | "EAM register mdb") | |
24 | ||
25 | (define_register_constraint "c" "MDC" | |
26 | "EAM register mdc") | |
27 | ||
28 | (define_register_constraint "f" "TARGET_FPU ? FP_REGS : NO_REGS" | |
29 | "Floating point register") | |
30 | ||
31 | (define_register_constraint "k" "SIBCALL_REGS" | |
32 | "Register for sibcall optimization") | |
33 | ||
34 | (define_register_constraint "l" "LOW_REGS" | |
35 | "General register, but not r29, r30 and r31") | |
36 | ||
37 | (define_register_constraint "t" "R1" | |
38 | "Register r1") | |
39 | ||
40 | (define_register_constraint "u" "R2" | |
41 | "Register r2") | |
42 | ||
43 | (define_register_constraint "v" "R3" | |
44 | "Register r3") | |
45 | ||
46 | ;; Immediate integer operand constraints | |
47 | ||
48 | (define_constraint "J" | |
49 | "Integer constant in the range 0 .. 65535 (16-bit immediate)" | |
50 | (and (match_code "const_int") | |
98f8b67f | 51 | (match_test "IN_RANGE (ival, 0, 65535)"))) |
0969ec7d EB |
52 | |
53 | (define_constraint "K" | |
54 | "Integer constant in the range 1 .. 31 (5-bit immediate)" | |
55 | (and (match_code "const_int") | |
98f8b67f | 56 | (match_test "IN_RANGE (ival, 1, 31)"))) |
0969ec7d EB |
57 | |
58 | (define_constraint "L" | |
59 | "Integer constant in the range -65535 .. -1 (16-bit negative immediate)" | |
60 | (and (match_code "const_int") | |
98f8b67f | 61 | (match_test "IN_RANGE (ival, -65535, -1)"))) |
0969ec7d EB |
62 | |
63 | (define_constraint "M" | |
64 | "Integer constant -1" | |
65 | (and (match_code "const_int") | |
66 | (match_test "ival == -1"))) | |
67 | ||
68 | (define_constraint "O" | |
69 | "Integer constant 0" | |
70 | (and (match_code "const_int") | |
71 | (match_test "ival == 0"))) | |
72 | ||
73 | (define_constraint "P" | |
74 | "Integer constant 32" | |
75 | (and (match_code "const_int") | |
76 | (match_test "ival == 32"))) | |
77 | ||
78 | ;; Immediate FP operand constraints | |
79 | ||
80 | (define_constraint "G" | |
81 | "Floating-point constant 0.0" | |
82 | (and (match_code "const_double") | |
83 | (match_test "op == CONST0_RTX (mode)"))) |