OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [config/] [frv/] [constraints.md] - Blame information for rev 709

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 709 jeremybenn
;; Constraint definitions for FRV.
2
;; Copyright (C) 2001 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
;; .
19
 
20
;; Register constraints.
21
(define_register_constraint "a" "ACC_REGS"
22
  "@internal")
23
 
24
(define_register_constraint "b" "EVEN_ACC_REGS"
25
  "@internal")
26
 
27
(define_register_constraint "c" "CC_REGS"
28
  "@internal")
29
 
30
(define_register_constraint "d" "GPR_REGS"
31
  "@internal")
32
 
33
(define_register_constraint "e" "EVEN_REGS"
34
  "@internal")
35
 
36
(define_register_constraint "f" "FPR_REGS"
37
  "@internal")
38
 
39
(define_register_constraint "h" "FEVEN_REGS"
40
  "@internal")
41
 
42
(define_register_constraint "l" "LR_REG"
43
  "@internal")
44
 
45
(define_register_constraint "q" "QUAD_REGS"
46
  "@internal")
47
 
48
(define_register_constraint "t" "ICC_REGS"
49
  "@internal")
50
 
51
(define_register_constraint "u" "FCC_REGS"
52
  "@internal")
53
 
54
(define_register_constraint "v" "ICR_REGS"
55
  "@internal")
56
 
57
(define_register_constraint "w" "FCR_REGS"
58
  "@internal")
59
 
60
(define_register_constraint "x" "QUAD_FPR_REGS"
61
  "@internal")
62
 
63
(define_register_constraint "y" "LCR_REG"
64
  "@internal")
65
 
66
(define_register_constraint "z" "SPR_REGS"
67
  "@internal")
68
 
69
(define_register_constraint "A" "QUAD_ACC_REGS"
70
  "@internal")
71
 
72
(define_register_constraint "B" "ACCG_REGS"
73
  "@internal")
74
 
75
(define_register_constraint "C" "CR_REGS"
76
  "@internal")
77
 
78
(define_register_constraint "D89" "GR89_REGS"
79
  "@internal")
80
 
81
(define_register_constraint "D09" "GR9_REGS"
82
  "@internal")
83
 
84
(define_register_constraint "D08" "GR8_REGS"
85
  "@internal")
86
 
87
(define_register_constraint "D14" "FDPIC_FPTR_REGS"
88
  "@internal")
89
 
90
(define_register_constraint "D15" "FDPIC_REGS"
91
  "@internal")
92
 
93
(define_register_constraint "W" "FDPIC_CALL_REGS"
94
  "@internal")
95
 
96
(define_register_constraint "Z" "FDPIC_REGS"
97
  "@internal")
98
 
99
;; Integer constraints.
100
(define_constraint "I"
101
  "A signed 6-bit immediate."
102
  (and (match_code "const_int")
103
       (match_test "IN_RANGE (ival, -32, 31)")))
104
 
105
(define_constraint "J"
106
  "A signed 10-bit immediate."
107
  (and (match_code "const_int")
108
       (match_test "IN_RANGE (ival, -512, 511)")))
109
 
110
(define_constraint "K"
111
  "@internal"
112
  ;; Unused.
113
  (and (match_code "const_int")
114
       (match_test "0")))
115
 
116
(define_constraint "L"
117
  "A signed 16-bit immediate."
118
  (and (match_code "const_int")
119
       (match_test "IN_RANGE (ival, -32768, 32767)")))
120
 
121
(define_constraint "M"
122
  "An unsigned 16-bit immediate."
123
  (and (match_code "const_int")
124
       (match_test "IN_RANGE (ival, 0, 65535)")))
125
 
126
(define_constraint "N"
127
  "A signed 12-bit immediate that is negative."
128
  (and (match_code "const_int")
129
       (match_test "IN_RANGE (ival, -2048, -1)")))
130
 
131
(define_constraint "O"
132
  "Zero."
133
  (and (match_code "const_int")
134
       (match_test "ival == 0")))
135
 
136
(define_constraint "P"
137
  "A signed 12-bit immediate that is positive."
138
  (and (match_code "const_int")
139
       (match_test "IN_RANGE (ival, 1, 2047)")))
140
 
141
;; Floating-point constraints.
142
(define_constraint "G"
143
  "Floating-point zero."
144
  (and (match_code "const_double")
145
       (ior (and (match_test "mode == VOIDmode")
146
                 (match_test "hval == 0 && lval == 0"))
147
            (and (match_test "mode == SFmode || mode == DFmode")
148
                 (match_test "op == CONST0_RTX (mode)")))))
149
 
150
(define_constraint "H"
151
  "@internal"
152
  ;; Unused.
153
  (and (match_code "const_double")
154
       (match_test "0")))
155
 
156
(define_constraint "Q"
157
  "12-bit relocations."
158
  (match_test "got12_operand (op, mode)"))
159
 
160
(define_memory_constraint "R"
161
  "Double word memory ops that take one instruction."
162
  (match_test "dbl_memory_one_insn_operand (op, mode)"))
163
 
164
(define_constraint "S"
165
  "SYMBOL_REF."
166
  (match_test "CONSTANT_P (op) && call_operand (op, VOIDmode)"))
167
 
168
(define_memory_constraint "T"
169
  "Double word memory ops that take two instructions."
170
  (match_test "dbl_memory_two_insn_operand (op, mode)"))
171
 
172
(define_memory_constraint "U"
173
  "Memory operand for conditional execution."
174
  (match_test "condexec_memory_operand (op, mode)"))

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.