aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/nds32/constants.md
blob: 6d42f50c882e1b442fa5151349e10086383ae9e7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
;; Constant defintions of Andes NDS32 cpu for GNU compiler
;; Copyright (C) 2012-2018 Free Software Foundation, Inc.
;; Contributed by Andes Technology Corporation.
;;
;; This file is part of GCC.
;;
;; GCC is free software; you can redistribute it and/or modify it
;; under the terms of the GNU General Public License as published
;; by the Free Software Foundation; either version 3, or (at your
;; option) any later version.
;;
;; GCC is distributed in the hope that it will be useful, but WITHOUT
;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
;; or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
;; License for more details.
;;
;; You should have received a copy of the GNU General Public License
;; along with GCC; see the file COPYING3.  If not see
;; <http://www.gnu.org/licenses/>.


;; Register numbers.
(define_constants
  [(R8_REGNUM  8)
   (TA_REGNUM 15)
   (TP_REGNUM 25)
   (FP_REGNUM 28)
   (GP_REGNUM 29)
   (LP_REGNUM 30)
   (SP_REGNUM 31)
  ])


;; The unpec operation index.
(define_c_enum "unspec_element" [
  UNSPEC_COPYSIGN
  UNSPEC_FCPYNSD
  UNSPEC_FCPYNSS
  UNSPEC_FCPYSD
  UNSPEC_FCPYSS
  UNSPEC_CLIP
  UNSPEC_CLIPS
  UNSPEC_CLO
  UNSPEC_PBSAD
  UNSPEC_PBSADA
  UNSPEC_BSE
  UNSPEC_BSE_2
  UNSPEC_BSP
  UNSPEC_BSP_2
  UNSPEC_FFB
  UNSPEC_FFMISM
  UNSPEC_FLMISM
  UNSPEC_KDMBB
  UNSPEC_KDMBT
  UNSPEC_KDMTB
  UNSPEC_KDMTT
  UNSPEC_KHMBB
  UNSPEC_KHMBT
  UNSPEC_KHMTB
  UNSPEC_KHMTT
  UNSPEC_KSLRAW
  UNSPEC_KSLRAWU
  UNSPEC_SVA
  UNSPEC_SVS
  UNSPEC_WSBH
  UNSPEC_LWUP
  UNSPEC_LBUP
  UNSPEC_SWUP
  UNSPEC_SBUP
  UNSPEC_UALOAD_HW
  UNSPEC_UALOAD_W
  UNSPEC_UALOAD_DW
  UNSPEC_UASTORE_HW
  UNSPEC_UASTORE_W
  UNSPEC_UASTORE_DW
  UNSPEC_GOTINIT
  UNSPEC_GOT
  UNSPEC_GOTOFF
  UNSPEC_PLT
  UNSPEC_TLSGD
  UNSPEC_TLSLD
  UNSPEC_TLSIE
  UNSPEC_TLSLE
  UNSPEC_ROUND
  UNSPEC_VEC_COMPARE
  UNSPEC_KHM
  UNSPEC_KHMX
  UNSPEC_CLIP_OV
  UNSPEC_CLIPS_OV
  UNSPEC_BITREV
  UNSPEC_KABS
  UNSPEC_LOOP_END
  UNSPEC_TLS_DESC
  UNSPEC_TLS_IE
  UNSPEC_ADD32
  UNSPEC_ICT
  UNSPEC_KADDH
  UNSPEC_KSUBH
])

;; The unspec_volatile operation index.
(define_c_enum "unspec_volatile_element" [
  UNSPEC_VOLATILE_EH_RETURN
  UNSPEC_VOLATILE_ISYNC
  UNSPEC_VOLATILE_ISB
  UNSPEC_VOLATILE_DSB
  UNSPEC_VOLATILE_MSYNC
  UNSPEC_VOLATILE_MSYNC_ALL
  UNSPEC_VOLATILE_MSYNC_STORE
  UNSPEC_VOLATILE_MFSR
  UNSPEC_VOLATILE_MFUSR
  UNSPEC_VOLATILE_MTSR
  UNSPEC_VOLATILE_MTUSR
  UNSPEC_VOLATILE_SETGIE_EN
  UNSPEC_VOLATILE_SETGIE_DIS
  UNSPEC_VOLATILE_FMFCSR
  UNSPEC_VOLATILE_FMTCSR
  UNSPEC_VOLATILE_FMFCFG
  UNSPEC_VOLATILE_JR_ITOFF
  UNSPEC_VOLATILE_JR_TOFF
  UNSPEC_VOLATILE_JRAL_ITON
  UNSPEC_VOLATILE_JRAL_TON
  UNSPEC_VOLATILE_RET_ITOFF
  UNSPEC_VOLATILE_RET_TOFF
  UNSPEC_VOLATILE_STANDBY_NO_WAKE_GRANT
  UNSPEC_VOLATILE_STANDBY_WAKE_GRANT
  UNSPEC_VOLATILE_STANDBY_WAKE_DONE
  UNSPEC_VOLATILE_TEQZ
  UNSPEC_VOLATILE_TNEZ
  UNSPEC_VOLATILE_TRAP
  UNSPEC_VOLATILE_SETEND_BIG
  UNSPEC_VOLATILE_SETEND_LITTLE
  UNSPEC_VOLATILE_BREAK
  UNSPEC_VOLATILE_SYSCALL
  UNSPEC_VOLATILE_NOP
  UNSPEC_VOLATILE_LLW
  UNSPEC_VOLATILE_SCW
  UNSPEC_VOLATILE_CCTL_L1D_INVALALL
  UNSPEC_VOLATILE_CCTL_L1D_WBALL_ALVL
  UNSPEC_VOLATILE_CCTL_L1D_WBALL_ONE_LVL
  UNSPEC_VOLATILE_CCTL_IDX_WRITE
  UNSPEC_VOLATILE_CCTL_IDX_READ
  UNSPEC_VOLATILE_CCTL_VA_WBINVAL_L1
  UNSPEC_VOLATILE_CCTL_VA_WBINVAL_LA
  UNSPEC_VOLATILE_CCTL_IDX_WBINVAL
  UNSPEC_VOLATILE_CCTL_VA_LCK
  UNSPEC_VOLATILE_DPREF_QW
  UNSPEC_VOLATILE_DPREF_HW
  UNSPEC_VOLATILE_DPREF_W
  UNSPEC_VOLATILE_DPREF_DW
  UNSPEC_VOLATILE_TLBOP_TRD
  UNSPEC_VOLATILE_TLBOP_TWR
  UNSPEC_VOLATILE_TLBOP_RWR
  UNSPEC_VOLATILE_TLBOP_RWLK
  UNSPEC_VOLATILE_TLBOP_UNLK
  UNSPEC_VOLATILE_TLBOP_PB
  UNSPEC_VOLATILE_TLBOP_INV
  UNSPEC_VOLATILE_TLBOP_FLUA
  UNSPEC_VOLATILE_ENABLE_INT
  UNSPEC_VOLATILE_DISABLE_INT
  UNSPEC_VOLATILE_SET_PENDING_SWINT
  UNSPEC_VOLATILE_CLR_PENDING_SWINT
  UNSPEC_VOLATILE_CLR_PENDING_HWINT
  UNSPEC_VOLATILE_GET_ALL_PENDING_INT
  UNSPEC_VOLATILE_GET_PENDING_INT
  UNSPEC_VOLATILE_SET_INT_PRIORITY
  UNSPEC_VOLATILE_GET_INT_PRIORITY
  UNSPEC_VOLATILE_SET_TRIG_LEVEL
  UNSPEC_VOLATILE_SET_TRIG_EDGE
  UNSPEC_VOLATILE_GET_TRIG_TYPE
  UNSPEC_VOLATILE_RELAX_GROUP
  UNSPEC_VOLATILE_OMIT_FP_BEGIN
  UNSPEC_VOLATILE_OMIT_FP_END
  UNSPEC_VOLATILE_POP25_RETURN
  UNSPEC_VOLATILE_UNALIGNED_FEATURE
  UNSPEC_VOLATILE_ENABLE_UNALIGNED
  UNSPEC_VOLATILE_DISABLE_UNALIGNED
  UNSPEC_VOLATILE_RDOV
  UNSPEC_VOLATILE_CLROV
])

;; ------------------------------------------------------------------------