1;; Constant defintions of Andes NDS32 cpu for GNU compiler
2;; Copyright (C) 2012-2021 Free Software Foundation, Inc.
3;; Contributed by Andes Technology Corporation.
4;;
5;; This file is part of GCC.
6;;
7;; GCC is free software; you can redistribute it and/or modify it
8;; under the terms of the GNU General Public License as published
9;; by the Free Software Foundation; either version 3, or (at your
10;; option) any later version.
11;;
12;; GCC is distributed in the hope that it will be useful, but WITHOUT
13;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
14;; or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
15;; License for more details.
16;;
17;; You should have received a copy of the GNU General Public License
18;; along with GCC; see the file COPYING3.  If not see
19;; <http://www.gnu.org/licenses/>.
20
21
22;; Register numbers.
23(define_constants
24  [(R8_REGNUM  8)
25   (TA_REGNUM 15)
26   (TP_REGNUM 25)
27   (FP_REGNUM 28)
28   (GP_REGNUM 29)
29   (LP_REGNUM 30)
30   (SP_REGNUM 31)
31  ])
32
33
34;; The unpec operation index.
35(define_c_enum "unspec_element" [
36  UNSPEC_COPYSIGN
37  UNSPEC_FCPYNSD
38  UNSPEC_FCPYNSS
39  UNSPEC_FCPYSD
40  UNSPEC_FCPYSS
41  UNSPEC_CLIP
42  UNSPEC_CLIPS
43  UNSPEC_CLO
44  UNSPEC_PBSAD
45  UNSPEC_PBSADA
46  UNSPEC_BSE
47  UNSPEC_BSE_2
48  UNSPEC_BSP
49  UNSPEC_BSP_2
50  UNSPEC_FFB
51  UNSPEC_FFMISM
52  UNSPEC_FLMISM
53  UNSPEC_KDMBB
54  UNSPEC_KDMBT
55  UNSPEC_KDMTB
56  UNSPEC_KDMTT
57  UNSPEC_KHMBB
58  UNSPEC_KHMBT
59  UNSPEC_KHMTB
60  UNSPEC_KHMTT
61  UNSPEC_KSLRAW
62  UNSPEC_KSLRAWU
63  UNSPEC_SVA
64  UNSPEC_SVS
65  UNSPEC_WSBH
66  UNSPEC_LWUP
67  UNSPEC_LBUP
68  UNSPEC_SWUP
69  UNSPEC_SBUP
70  UNSPEC_UALOAD_HW
71  UNSPEC_UALOAD_W
72  UNSPEC_UALOAD_DW
73  UNSPEC_UASTORE_HW
74  UNSPEC_UASTORE_W
75  UNSPEC_UASTORE_DW
76  UNSPEC_GOTINIT
77  UNSPEC_GOT
78  UNSPEC_GOTOFF
79  UNSPEC_PLT
80  UNSPEC_TLSGD
81  UNSPEC_TLSLD
82  UNSPEC_TLSIE
83  UNSPEC_TLSLE
84  UNSPEC_ROUND
85  UNSPEC_VEC_COMPARE
86  UNSPEC_KHM
87  UNSPEC_KHMX
88  UNSPEC_CLIP_OV
89  UNSPEC_CLIPS_OV
90  UNSPEC_BITREV
91  UNSPEC_KABS
92  UNSPEC_LOOP_END
93  UNSPEC_TLS_DESC
94  UNSPEC_TLS_IE
95  UNSPEC_ADD32
96  UNSPEC_ICT
97  UNSPEC_KADDH
98  UNSPEC_KSUBH
99])
100
101;; The unspec_volatile operation index.
102(define_c_enum "unspec_volatile_element" [
103  UNSPEC_VOLATILE_EH_RETURN
104  UNSPEC_VOLATILE_ISYNC
105  UNSPEC_VOLATILE_ISB
106  UNSPEC_VOLATILE_DSB
107  UNSPEC_VOLATILE_MSYNC
108  UNSPEC_VOLATILE_MSYNC_ALL
109  UNSPEC_VOLATILE_MSYNC_STORE
110  UNSPEC_VOLATILE_MFSR
111  UNSPEC_VOLATILE_MFUSR
112  UNSPEC_VOLATILE_MTSR
113  UNSPEC_VOLATILE_MTUSR
114  UNSPEC_VOLATILE_SETGIE_EN
115  UNSPEC_VOLATILE_SETGIE_DIS
116  UNSPEC_VOLATILE_FMFCSR
117  UNSPEC_VOLATILE_FMTCSR
118  UNSPEC_VOLATILE_FMFCFG
119  UNSPEC_VOLATILE_JR_ITOFF
120  UNSPEC_VOLATILE_JR_TOFF
121  UNSPEC_VOLATILE_JRAL_ITON
122  UNSPEC_VOLATILE_JRAL_TON
123  UNSPEC_VOLATILE_RET_ITOFF
124  UNSPEC_VOLATILE_RET_TOFF
125  UNSPEC_VOLATILE_STANDBY_NO_WAKE_GRANT
126  UNSPEC_VOLATILE_STANDBY_WAKE_GRANT
127  UNSPEC_VOLATILE_STANDBY_WAKE_DONE
128  UNSPEC_VOLATILE_TEQZ
129  UNSPEC_VOLATILE_TNEZ
130  UNSPEC_VOLATILE_TRAP
131  UNSPEC_VOLATILE_SETEND_BIG
132  UNSPEC_VOLATILE_SETEND_LITTLE
133  UNSPEC_VOLATILE_BREAK
134  UNSPEC_VOLATILE_SYSCALL
135  UNSPEC_VOLATILE_NOP
136  UNSPEC_VOLATILE_LLW
137  UNSPEC_VOLATILE_SCW
138  UNSPEC_VOLATILE_CCTL_L1D_INVALALL
139  UNSPEC_VOLATILE_CCTL_L1D_WBALL_ALVL
140  UNSPEC_VOLATILE_CCTL_L1D_WBALL_ONE_LVL
141  UNSPEC_VOLATILE_CCTL_IDX_WRITE
142  UNSPEC_VOLATILE_CCTL_IDX_READ
143  UNSPEC_VOLATILE_CCTL_VA_WBINVAL_L1
144  UNSPEC_VOLATILE_CCTL_VA_WBINVAL_LA
145  UNSPEC_VOLATILE_CCTL_IDX_WBINVAL
146  UNSPEC_VOLATILE_CCTL_VA_LCK
147  UNSPEC_VOLATILE_DPREF_QW
148  UNSPEC_VOLATILE_DPREF_HW
149  UNSPEC_VOLATILE_DPREF_W
150  UNSPEC_VOLATILE_DPREF_DW
151  UNSPEC_VOLATILE_TLBOP_TRD
152  UNSPEC_VOLATILE_TLBOP_TWR
153  UNSPEC_VOLATILE_TLBOP_RWR
154  UNSPEC_VOLATILE_TLBOP_RWLK
155  UNSPEC_VOLATILE_TLBOP_UNLK
156  UNSPEC_VOLATILE_TLBOP_PB
157  UNSPEC_VOLATILE_TLBOP_INV
158  UNSPEC_VOLATILE_TLBOP_FLUA
159  UNSPEC_VOLATILE_ENABLE_INT
160  UNSPEC_VOLATILE_DISABLE_INT
161  UNSPEC_VOLATILE_SET_PENDING_SWINT
162  UNSPEC_VOLATILE_CLR_PENDING_SWINT
163  UNSPEC_VOLATILE_CLR_PENDING_HWINT
164  UNSPEC_VOLATILE_GET_ALL_PENDING_INT
165  UNSPEC_VOLATILE_GET_PENDING_INT
166  UNSPEC_VOLATILE_SET_INT_PRIORITY
167  UNSPEC_VOLATILE_GET_INT_PRIORITY
168  UNSPEC_VOLATILE_SET_TRIG_LEVEL
169  UNSPEC_VOLATILE_SET_TRIG_EDGE
170  UNSPEC_VOLATILE_GET_TRIG_TYPE
171  UNSPEC_VOLATILE_RELAX_GROUP
172  UNSPEC_VOLATILE_OMIT_FP_BEGIN
173  UNSPEC_VOLATILE_OMIT_FP_END
174  UNSPEC_VOLATILE_POP25_RETURN
175  UNSPEC_VOLATILE_UNALIGNED_FEATURE
176  UNSPEC_VOLATILE_ENABLE_UNALIGNED
177  UNSPEC_VOLATILE_DISABLE_UNALIGNED
178  UNSPEC_VOLATILE_RDOV
179  UNSPEC_VOLATILE_CLROV
180])
181
182;; ------------------------------------------------------------------------
183