Import pre-release gcc-5.0 to new vendor branch
[dragonfly.git] / contrib / gcc-5.0 / libgcc / config / nds32 / t-nds32-isr
1 # Rules of c-isr library stuff of Andes NDS32 cpu for GNU compiler
2 # Copyright (C) 2012-2015 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 ###############################################################################
23 # Makfile fragment rules for libnds32_isr.a to support ISR attribute extension
24 ###############################################################################
25
26 # basic flags setting
27 ISR_CFLAGS = $(CFLAGS) -c
28
29 # the object files we would like to create
30 LIBNDS32_ISR_16B_OBJS = \
31                 vec_vid00.o vec_vid01.o vec_vid02.o vec_vid03.o \
32                 vec_vid04.o vec_vid05.o vec_vid06.o vec_vid07.o \
33                 vec_vid08.o vec_vid09.o vec_vid10.o vec_vid11.o \
34                 vec_vid12.o vec_vid13.o vec_vid14.o vec_vid15.o \
35                 vec_vid16.o vec_vid17.o vec_vid18.o vec_vid19.o \
36                 vec_vid20.o vec_vid21.o vec_vid22.o vec_vid23.o \
37                 vec_vid24.o vec_vid25.o vec_vid26.o vec_vid27.o \
38                 vec_vid28.o vec_vid29.o vec_vid30.o vec_vid31.o \
39                 vec_vid32.o vec_vid33.o vec_vid34.o vec_vid35.o \
40                 vec_vid36.o vec_vid37.o vec_vid38.o vec_vid39.o \
41                 vec_vid40.o vec_vid41.o vec_vid42.o vec_vid43.o \
42                 vec_vid44.o vec_vid45.o vec_vid46.o vec_vid47.o \
43                 vec_vid48.o vec_vid49.o vec_vid50.o vec_vid51.o \
44                 vec_vid52.o vec_vid53.o vec_vid54.o vec_vid55.o \
45                 vec_vid56.o vec_vid57.o vec_vid58.o vec_vid59.o \
46                 vec_vid60.o vec_vid61.o vec_vid62.o vec_vid63.o \
47                 vec_vid64.o vec_vid65.o vec_vid66.o vec_vid67.o \
48                 vec_vid68.o vec_vid69.o vec_vid70.o vec_vid71.o \
49                 vec_vid72.o \
50                 excp_isr_ps_nn.o excp_isr_ps_ns.o excp_isr_ps_nr.o \
51                 excp_isr_sa_nn.o excp_isr_sa_ns.o excp_isr_sa_nr.o \
52                 intr_isr_ps_nn.o intr_isr_ps_ns.o intr_isr_ps_nr.o \
53                 intr_isr_sa_nn.o intr_isr_sa_ns.o intr_isr_sa_nr.o \
54                 reset.o
55
56 LIBNDS32_ISR_4B_OBJS = \
57                 vec_vid00_4b.o vec_vid01_4b.o vec_vid02_4b.o vec_vid03_4b.o \
58                 vec_vid04_4b.o vec_vid05_4b.o vec_vid06_4b.o vec_vid07_4b.o \
59                 vec_vid08_4b.o vec_vid09_4b.o vec_vid10_4b.o vec_vid11_4b.o \
60                 vec_vid12_4b.o vec_vid13_4b.o vec_vid14_4b.o vec_vid15_4b.o \
61                 vec_vid16_4b.o vec_vid17_4b.o vec_vid18_4b.o vec_vid19_4b.o \
62                 vec_vid20_4b.o vec_vid21_4b.o vec_vid22_4b.o vec_vid23_4b.o \
63                 vec_vid24_4b.o vec_vid25_4b.o vec_vid26_4b.o vec_vid27_4b.o \
64                 vec_vid28_4b.o vec_vid29_4b.o vec_vid30_4b.o vec_vid31_4b.o \
65                 vec_vid32_4b.o vec_vid33_4b.o vec_vid34_4b.o vec_vid35_4b.o \
66                 vec_vid36_4b.o vec_vid37_4b.o vec_vid38_4b.o vec_vid39_4b.o \
67                 vec_vid40_4b.o vec_vid41_4b.o vec_vid42_4b.o vec_vid43_4b.o \
68                 vec_vid44_4b.o vec_vid45_4b.o vec_vid46_4b.o vec_vid47_4b.o \
69                 vec_vid48_4b.o vec_vid49_4b.o vec_vid50_4b.o vec_vid51_4b.o \
70                 vec_vid52_4b.o vec_vid53_4b.o vec_vid54_4b.o vec_vid55_4b.o \
71                 vec_vid56_4b.o vec_vid57_4b.o vec_vid58_4b.o vec_vid59_4b.o \
72                 vec_vid60_4b.o vec_vid61_4b.o vec_vid62_4b.o vec_vid63_4b.o \
73                 vec_vid64_4b.o vec_vid65_4b.o vec_vid66_4b.o vec_vid67_4b.o \
74                 vec_vid68_4b.o vec_vid69_4b.o vec_vid70_4b.o vec_vid71_4b.o \
75                 vec_vid72_4b.o \
76                 excp_isr_ps_nn_4b.o excp_isr_ps_ns_4b.o excp_isr_ps_nr_4b.o \
77                 excp_isr_sa_nn_4b.o excp_isr_sa_ns_4b.o excp_isr_sa_nr_4b.o \
78                 intr_isr_ps_nn_4b.o intr_isr_ps_ns_4b.o intr_isr_ps_nr_4b.o \
79                 intr_isr_sa_nn_4b.o intr_isr_sa_ns_4b.o intr_isr_sa_nr_4b.o \
80                 reset_4b.o
81
82 LIBNDS32_ISR_COMMON_OBJS = \
83                 jmptbl_vid00.o jmptbl_vid01.o jmptbl_vid02.o jmptbl_vid03.o \
84                 jmptbl_vid04.o jmptbl_vid05.o jmptbl_vid06.o jmptbl_vid07.o \
85                 jmptbl_vid08.o jmptbl_vid09.o jmptbl_vid10.o jmptbl_vid11.o \
86                 jmptbl_vid12.o jmptbl_vid13.o jmptbl_vid14.o jmptbl_vid15.o \
87                 jmptbl_vid16.o jmptbl_vid17.o jmptbl_vid18.o jmptbl_vid19.o \
88                 jmptbl_vid20.o jmptbl_vid21.o jmptbl_vid22.o jmptbl_vid23.o \
89                 jmptbl_vid24.o jmptbl_vid25.o jmptbl_vid26.o jmptbl_vid27.o \
90                 jmptbl_vid28.o jmptbl_vid29.o jmptbl_vid30.o jmptbl_vid31.o \
91                 jmptbl_vid32.o jmptbl_vid33.o jmptbl_vid34.o jmptbl_vid35.o \
92                 jmptbl_vid36.o jmptbl_vid37.o jmptbl_vid38.o jmptbl_vid39.o \
93                 jmptbl_vid40.o jmptbl_vid41.o jmptbl_vid42.o jmptbl_vid43.o \
94                 jmptbl_vid44.o jmptbl_vid45.o jmptbl_vid46.o jmptbl_vid47.o \
95                 jmptbl_vid48.o jmptbl_vid49.o jmptbl_vid50.o jmptbl_vid51.o \
96                 jmptbl_vid52.o jmptbl_vid53.o jmptbl_vid54.o jmptbl_vid55.o \
97                 jmptbl_vid56.o jmptbl_vid57.o jmptbl_vid58.o jmptbl_vid59.o \
98                 jmptbl_vid60.o jmptbl_vid61.o jmptbl_vid62.o jmptbl_vid63.o \
99                 jmptbl_vid64.o jmptbl_vid65.o jmptbl_vid66.o jmptbl_vid67.o \
100                 jmptbl_vid68.o jmptbl_vid69.o jmptbl_vid70.o jmptbl_vid71.o \
101                 jmptbl_vid72.o \
102                 nmih.o \
103                 wrh.o
104
105 LIBNDS32_ISR_COMPLETE_OBJS = $(LIBNDS32_ISR_16B_OBJS) $(LIBNDS32_ISR_4B_OBJS) $(LIBNDS32_ISR_COMMON_OBJS)
106
107
108 # Build common objects for ISR library
109 nmih.o: $(srcdir)/config/nds32/isr-library/nmih.S
110         $(GCC_FOR_TARGET) $(ISR_CFLAGS) $(srcdir)/config/nds32/isr-library/nmih.S -o nmih.o
111
112 wrh.o: $(srcdir)/config/nds32/isr-library/wrh.S
113         $(GCC_FOR_TARGET) $(ISR_CFLAGS) $(srcdir)/config/nds32/isr-library/wrh.S -o wrh.o
114
115 jmptbl_vid%.o: $(srcdir)/config/nds32/isr-library/jmptbl_vid%.S
116         $(GCC_FOR_TARGET) $(ISR_CFLAGS) $< -o $@
117
118
119
120 # Build 16b version objects for ISR library. (no "_4b" postfix string)
121 vec_vid%.o: $(srcdir)/config/nds32/isr-library/vec_vid%.S
122         $(GCC_FOR_TARGET) $(ISR_CFLAGS) $< -o $@
123
124 excp_isr_ps_nn.o: $(srcdir)/config/nds32/isr-library/excp_isr.S
125         $(GCC_FOR_TARGET) $(ISR_CFLAGS) $(srcdir)/config/nds32/isr-library/excp_isr.S -o excp_isr_ps_nn.o
126
127 excp_isr_ps_ns.o: $(srcdir)/config/nds32/isr-library/excp_isr.S
128         $(GCC_FOR_TARGET) $(ISR_CFLAGS) -DNDS32_NESTED $(srcdir)/config/nds32/isr-library/excp_isr.S -o excp_isr_ps_ns.o
129
130 excp_isr_ps_nr.o: $(srcdir)/config/nds32/isr-library/excp_isr.S
131         $(GCC_FOR_TARGET) $(ISR_CFLAGS) -DNDS32_NESTED_READY $(srcdir)/config/nds32/isr-library/excp_isr.S -o excp_isr_ps_nr.o
132
133 excp_isr_sa_nn.o: $(srcdir)/config/nds32/isr-library/excp_isr.S
134         $(GCC_FOR_TARGET) $(ISR_CFLAGS) -DNDS32_SAVE_ALL_REGS $(srcdir)/config/nds32/isr-library/excp_isr.S -o excp_isr_sa_nn.o
135
136 excp_isr_sa_ns.o: $(srcdir)/config/nds32/isr-library/excp_isr.S
137         $(GCC_FOR_TARGET) $(ISR_CFLAGS) -DNDS32_SAVE_ALL_REGS -DNDS32_NESTED $(srcdir)/config/nds32/isr-library/excp_isr.S -o excp_isr_sa_ns.o
138
139 excp_isr_sa_nr.o: $(srcdir)/config/nds32/isr-library/excp_isr.S
140         $(GCC_FOR_TARGET) $(ISR_CFLAGS) -DNDS32_SAVE_ALL_REGS -DNDS32_NESTED_READY $(srcdir)/config/nds32/isr-library/excp_isr.S -o excp_isr_sa_nr.o
141
142 intr_isr_ps_nn.o: $(srcdir)/config/nds32/isr-library/intr_isr.S
143         $(GCC_FOR_TARGET) $(ISR_CFLAGS) $(srcdir)/config/nds32/isr-library/intr_isr.S -o intr_isr_ps_nn.o
144
145 intr_isr_ps_ns.o: $(srcdir)/config/nds32/isr-library/intr_isr.S
146         $(GCC_FOR_TARGET) $(ISR_CFLAGS) -DNDS32_NESTED $(srcdir)/config/nds32/isr-library/intr_isr.S -o intr_isr_ps_ns.o
147
148 intr_isr_ps_nr.o: $(srcdir)/config/nds32/isr-library/intr_isr.S
149         $(GCC_FOR_TARGET) $(ISR_CFLAGS) -DNDS32_NESTED_READY $(srcdir)/config/nds32/isr-library/intr_isr.S -o intr_isr_ps_nr.o
150
151 intr_isr_sa_nn.o: $(srcdir)/config/nds32/isr-library/intr_isr.S
152         $(GCC_FOR_TARGET) $(ISR_CFLAGS) -DNDS32_SAVE_ALL_REGS $(srcdir)/config/nds32/isr-library/intr_isr.S -o intr_isr_sa_nn.o
153
154 intr_isr_sa_ns.o: $(srcdir)/config/nds32/isr-library/intr_isr.S
155         $(GCC_FOR_TARGET) $(ISR_CFLAGS) -DNDS32_SAVE_ALL_REGS -DNDS32_NESTED $(srcdir)/config/nds32/isr-library/intr_isr.S -o intr_isr_sa_ns.o
156
157 intr_isr_sa_nr.o: $(srcdir)/config/nds32/isr-library/intr_isr.S
158         $(GCC_FOR_TARGET) $(ISR_CFLAGS) -DNDS32_SAVE_ALL_REGS -DNDS32_NESTED_READY $(srcdir)/config/nds32/isr-library/intr_isr.S -o intr_isr_sa_nr.o
159
160 reset.o: $(srcdir)/config/nds32/isr-library/reset.S
161         $(GCC_FOR_TARGET) $(ISR_CFLAGS) $(srcdir)/config/nds32/isr-library/reset.S -o reset.o
162
163 # Build 4b version objects for ISR library.
164 vec_vid%_4b.o: $(srcdir)/config/nds32/isr-library/vec_vid%_4b.S
165         $(GCC_FOR_TARGET) $(ISR_CFLAGS) $< -o $@
166
167 excp_isr_ps_nn_4b.o: $(srcdir)/config/nds32/isr-library/excp_isr_4b.S
168         $(GCC_FOR_TARGET) $(ISR_CFLAGS) $(srcdir)/config/nds32/isr-library/excp_isr_4b.S -o excp_isr_ps_nn_4b.o
169
170 excp_isr_ps_ns_4b.o: $(srcdir)/config/nds32/isr-library/excp_isr_4b.S
171         $(GCC_FOR_TARGET) $(ISR_CFLAGS) -DNDS32_NESTED $(srcdir)/config/nds32/isr-library/excp_isr_4b.S -o excp_isr_ps_ns_4b.o
172
173 excp_isr_ps_nr_4b.o: $(srcdir)/config/nds32/isr-library/excp_isr_4b.S
174         $(GCC_FOR_TARGET) $(ISR_CFLAGS) -DNDS32_NESTED_READY $(srcdir)/config/nds32/isr-library/excp_isr_4b.S -o excp_isr_ps_nr_4b.o
175
176 excp_isr_sa_nn_4b.o: $(srcdir)/config/nds32/isr-library/excp_isr_4b.S
177         $(GCC_FOR_TARGET) $(ISR_CFLAGS) -DNDS32_SAVE_ALL_REGS $(srcdir)/config/nds32/isr-library/excp_isr_4b.S -o excp_isr_sa_nn_4b.o
178
179 excp_isr_sa_ns_4b.o: $(srcdir)/config/nds32/isr-library/excp_isr_4b.S
180         $(GCC_FOR_TARGET) $(ISR_CFLAGS) -DNDS32_SAVE_ALL_REGS -DNDS32_NESTED $(srcdir)/config/nds32/isr-library/excp_isr_4b.S -o excp_isr_sa_ns_4b.o
181
182 excp_isr_sa_nr_4b.o: $(srcdir)/config/nds32/isr-library/excp_isr_4b.S
183         $(GCC_FOR_TARGET) $(ISR_CFLAGS) -DNDS32_SAVE_ALL_REGS -DNDS32_NESTED_READY $(srcdir)/config/nds32/isr-library/excp_isr_4b.S -o excp_isr_sa_nr_4b.o
184
185 intr_isr_ps_nn_4b.o: $(srcdir)/config/nds32/isr-library/intr_isr_4b.S
186         $(GCC_FOR_TARGET) $(ISR_CFLAGS) $(srcdir)/config/nds32/isr-library/intr_isr_4b.S -o intr_isr_ps_nn_4b.o
187
188 intr_isr_ps_ns_4b.o: $(srcdir)/config/nds32/isr-library/intr_isr_4b.S
189         $(GCC_FOR_TARGET) $(ISR_CFLAGS) -DNDS32_NESTED $(srcdir)/config/nds32/isr-library/intr_isr_4b.S -o intr_isr_ps_ns_4b.o
190
191 intr_isr_ps_nr_4b.o: $(srcdir)/config/nds32/isr-library/intr_isr_4b.S
192         $(GCC_FOR_TARGET) $(ISR_CFLAGS) -DNDS32_NESTED_READY $(srcdir)/config/nds32/isr-library/intr_isr_4b.S -o intr_isr_ps_nr_4b.o
193
194 intr_isr_sa_nn_4b.o: $(srcdir)/config/nds32/isr-library/intr_isr_4b.S
195         $(GCC_FOR_TARGET) $(ISR_CFLAGS) -DNDS32_SAVE_ALL_REGS $(srcdir)/config/nds32/isr-library/intr_isr_4b.S -o intr_isr_sa_nn_4b.o
196
197 intr_isr_sa_ns_4b.o: $(srcdir)/config/nds32/isr-library/intr_isr_4b.S
198         $(GCC_FOR_TARGET) $(ISR_CFLAGS) -DNDS32_SAVE_ALL_REGS -DNDS32_NESTED $(srcdir)/config/nds32/isr-library/intr_isr_4b.S -o intr_isr_sa_ns_4b.o
199
200 intr_isr_sa_nr_4b.o: $(srcdir)/config/nds32/isr-library/intr_isr_4b.S
201         $(GCC_FOR_TARGET) $(ISR_CFLAGS) -DNDS32_SAVE_ALL_REGS -DNDS32_NESTED_READY $(srcdir)/config/nds32/isr-library/intr_isr_4b.S -o intr_isr_sa_nr_4b.o
202
203 reset_4b.o: $(srcdir)/config/nds32/isr-library/reset_4b.S
204         $(GCC_FOR_TARGET) $(ISR_CFLAGS) $(srcdir)/config/nds32/isr-library/reset_4b.S -o reset_4b.o
205
206
207 # The rule to create libnds32_isr.a file
208 libnds32_isr.a: $(LIBNDS32_ISR_COMPLETE_OBJS)
209         $(AR) rc libnds32_isr.a $(LIBNDS32_ISR_COMPLETE_OBJS)
210
211
212 # ------------------------------------------------------------------------