Mercurial > hg > CbC > CbC_gcc
comparison gcc/config/iq2000/constraints.md @ 68:561a7518be6b
update gcc-4.6
author | Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Sun, 21 Aug 2011 07:07:55 +0900 |
parents | |
children | 04ced10e8804 |
comparison
equal
deleted
inserted
replaced
67:f6334be47118 | 68:561a7518be6b |
---|---|
1 ;; Constraints for Vitesse IQ2000 processors | |
2 ;; Copyright (C) 2011 Free Software Foundation, Inc. | |
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 "b" "ALL_REGS" | |
22 "@internal") | |
23 | |
24 (define_register_constraint "d" "GR_REGS" | |
25 "@internal") | |
26 | |
27 (define_register_constraint "y" "GR_REGS" | |
28 "@internal") | |
29 | |
30 ;; Integer constraints. | |
31 (define_constraint "I" | |
32 "A 16-bit signed integer." | |
33 (and (match_code "const_int") | |
34 (match_test "IN_RANGE (ival, -32768, 32767)"))) | |
35 | |
36 (define_constraint "J" | |
37 "Zero." | |
38 (and (match_code "const_int") | |
39 (match_test "ival == 0"))) | |
40 | |
41 (define_constraint "K" | |
42 "A 16-bit unsigned integer" | |
43 (and (match_code "const_int") | |
44 (match_test "IN_RANGE (ival, 0, 65535)"))) | |
45 | |
46 (define_constraint "L" | |
47 "A 32-bit constant whose bottom 16 bits are zero." | |
48 (and (match_code "const_int") | |
49 (ior (match_test "(ival | 0x7fff0000) == 0x7fff0000") | |
50 (match_test "(ival | 0x7fff0000) + 0x10000 == 0")))) | |
51 | |
52 (define_constraint "M" | |
53 "Any constant not matched by 'I', 'K', or 'L'." | |
54 (and (match_code "const_int") | |
55 (match_test "!insn_const_int_ok_for_constraint (ival, CONSTRAINT_I)") | |
56 (match_test "!insn_const_int_ok_for_constraint (ival, CONSTRAINT_K)") | |
57 (match_test "!insn_const_int_ok_for_constraint (ival, CONSTRAINT_L)"))) | |
58 | |
59 (define_constraint "N" | |
60 "Any constant whose lower or upper 16 bits are 0xffff." | |
61 (and (match_code "const_int") | |
62 (ior (match_test "(ival & 0xffff) == 0xffff") | |
63 (match_test "(ival & 0xffff0000) == 0xffff0000")))) | |
64 | |
65 (define_constraint "O" | |
66 "A 5-bit signed integer." | |
67 (and (match_code "const_int") | |
68 (match_test "IN_RANGE (ival, -31, 31)"))) | |
69 | |
70 ;; Floating-point constraints. | |
71 (define_constraint "G" | |
72 "Floating-point zero." | |
73 (and (match_code "const_double") | |
74 (match_test "op == CONST0_RTX (mode)"))) | |
75 | |
76 ;; Extra constraints. | |
77 (define_constraint "R" | |
78 "A memory reference which takes one word for the instruction." | |
79 (match_test "simple_memory_operand (op, mode)")) |