xref: /netbsd-src/external/gpl3/gcc/dist/libgcc/config/nds32/t-nds32-isr (revision b1e838363e3c6fc78a55519254d99869742dd33c)
1# Rules of c-isr library stuff of Andes NDS32 cpu for GNU compiler
2# Copyright (C) 2012-2022 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.
27ISR_CFLAGS = $(CFLAGS) -c
28
29# The object files we would like to create.
30LIBNDS32_ISR_VEC_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
51LIBNDS32_ISR_JMP_OBJS = \
52		jmptbl_vid00.o jmptbl_vid01.o jmptbl_vid02.o jmptbl_vid03.o \
53		jmptbl_vid04.o jmptbl_vid05.o jmptbl_vid06.o jmptbl_vid07.o \
54		jmptbl_vid08.o jmptbl_vid09.o jmptbl_vid10.o jmptbl_vid11.o \
55		jmptbl_vid12.o jmptbl_vid13.o jmptbl_vid14.o jmptbl_vid15.o \
56		jmptbl_vid16.o jmptbl_vid17.o jmptbl_vid18.o jmptbl_vid19.o \
57		jmptbl_vid20.o jmptbl_vid21.o jmptbl_vid22.o jmptbl_vid23.o \
58		jmptbl_vid24.o jmptbl_vid25.o jmptbl_vid26.o jmptbl_vid27.o \
59		jmptbl_vid28.o jmptbl_vid29.o jmptbl_vid30.o jmptbl_vid31.o \
60		jmptbl_vid32.o jmptbl_vid33.o jmptbl_vid34.o jmptbl_vid35.o \
61		jmptbl_vid36.o jmptbl_vid37.o jmptbl_vid38.o jmptbl_vid39.o \
62		jmptbl_vid40.o jmptbl_vid41.o jmptbl_vid42.o jmptbl_vid43.o \
63		jmptbl_vid44.o jmptbl_vid45.o jmptbl_vid46.o jmptbl_vid47.o \
64		jmptbl_vid48.o jmptbl_vid49.o jmptbl_vid50.o jmptbl_vid51.o \
65		jmptbl_vid52.o jmptbl_vid53.o jmptbl_vid54.o jmptbl_vid55.o \
66		jmptbl_vid56.o jmptbl_vid57.o jmptbl_vid58.o jmptbl_vid59.o \
67		jmptbl_vid60.o jmptbl_vid61.o jmptbl_vid62.o jmptbl_vid63.o \
68		jmptbl_vid64.o jmptbl_vid65.o jmptbl_vid66.o jmptbl_vid67.o \
69		jmptbl_vid68.o jmptbl_vid69.o jmptbl_vid70.o jmptbl_vid71.o \
70		jmptbl_vid72.o
71
72LIBNDS32_ISR_COMMON_OBJS = \
73		excp_isr_ps_nn.o excp_isr_ps_ns.o excp_isr_ps_nr.o \
74		excp_isr_sa_nn.o excp_isr_sa_ns.o excp_isr_sa_nr.o \
75		intr_isr_ps_nn.o intr_isr_ps_ns.o intr_isr_ps_nr.o \
76		intr_isr_sa_nn.o intr_isr_sa_ns.o intr_isr_sa_nr.o \
77		reset.o \
78		nmih.o \
79		wrh.o
80
81LIBNDS32_ISR_COMPLETE_OBJS = $(LIBNDS32_ISR_VEC_OBJS) $(LIBNDS32_ISR_JMP_OBJS) $(LIBNDS32_ISR_COMMON_OBJS)
82
83
84
85# Build vector vid objects for ISR library.
86vec_vid%.o: $(srcdir)/config/nds32/isr-library/vec_vid%.S
87	$(GCC_FOR_TARGET) $(ISR_CFLAGS) $< -o $@
88
89
90# Build jump table objects for ISR library.
91jmptbl_vid%.o: $(srcdir)/config/nds32/isr-library/jmptbl_vid%.S
92	$(GCC_FOR_TARGET) $(ISR_CFLAGS) $< -o $@
93
94
95# Build commen objects for ISR library.
96excp_isr_ps_nn.o: $(srcdir)/config/nds32/isr-library/excp_isr.S
97	$(GCC_FOR_TARGET) $(ISR_CFLAGS) $(srcdir)/config/nds32/isr-library/excp_isr.S -o excp_isr_ps_nn.o
98
99excp_isr_ps_ns.o: $(srcdir)/config/nds32/isr-library/excp_isr.S
100	$(GCC_FOR_TARGET) $(ISR_CFLAGS) -DNDS32_NESTED $(srcdir)/config/nds32/isr-library/excp_isr.S -o excp_isr_ps_ns.o
101
102excp_isr_ps_nr.o: $(srcdir)/config/nds32/isr-library/excp_isr.S
103	$(GCC_FOR_TARGET) $(ISR_CFLAGS) -DNDS32_NESTED_READY $(srcdir)/config/nds32/isr-library/excp_isr.S -o excp_isr_ps_nr.o
104
105excp_isr_sa_nn.o: $(srcdir)/config/nds32/isr-library/excp_isr.S
106	$(GCC_FOR_TARGET) $(ISR_CFLAGS) -DNDS32_SAVE_ALL_REGS $(srcdir)/config/nds32/isr-library/excp_isr.S -o excp_isr_sa_nn.o
107
108excp_isr_sa_ns.o: $(srcdir)/config/nds32/isr-library/excp_isr.S
109	$(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
110
111excp_isr_sa_nr.o: $(srcdir)/config/nds32/isr-library/excp_isr.S
112	$(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
113
114intr_isr_ps_nn.o: $(srcdir)/config/nds32/isr-library/intr_isr.S
115	$(GCC_FOR_TARGET) $(ISR_CFLAGS) $(srcdir)/config/nds32/isr-library/intr_isr.S -o intr_isr_ps_nn.o
116
117intr_isr_ps_ns.o: $(srcdir)/config/nds32/isr-library/intr_isr.S
118	$(GCC_FOR_TARGET) $(ISR_CFLAGS) -DNDS32_NESTED $(srcdir)/config/nds32/isr-library/intr_isr.S -o intr_isr_ps_ns.o
119
120intr_isr_ps_nr.o: $(srcdir)/config/nds32/isr-library/intr_isr.S
121	$(GCC_FOR_TARGET) $(ISR_CFLAGS) -DNDS32_NESTED_READY $(srcdir)/config/nds32/isr-library/intr_isr.S -o intr_isr_ps_nr.o
122
123intr_isr_sa_nn.o: $(srcdir)/config/nds32/isr-library/intr_isr.S
124	$(GCC_FOR_TARGET) $(ISR_CFLAGS) -DNDS32_SAVE_ALL_REGS $(srcdir)/config/nds32/isr-library/intr_isr.S -o intr_isr_sa_nn.o
125
126intr_isr_sa_ns.o: $(srcdir)/config/nds32/isr-library/intr_isr.S
127	$(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
128
129intr_isr_sa_nr.o: $(srcdir)/config/nds32/isr-library/intr_isr.S
130	$(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
131
132reset.o: $(srcdir)/config/nds32/isr-library/reset.S
133	$(GCC_FOR_TARGET) $(ISR_CFLAGS) $(srcdir)/config/nds32/isr-library/reset.S -o reset.o
134
135nmih.o: $(srcdir)/config/nds32/isr-library/nmih.S
136	$(GCC_FOR_TARGET) $(ISR_CFLAGS) $(srcdir)/config/nds32/isr-library/nmih.S -o nmih.o
137
138wrh.o: $(srcdir)/config/nds32/isr-library/wrh.S
139	$(GCC_FOR_TARGET) $(ISR_CFLAGS) $(srcdir)/config/nds32/isr-library/wrh.S -o wrh.o
140
141
142
143# The rule to create libnds32_isr.a file
144libnds32_isr.a: $(LIBNDS32_ISR_COMPLETE_OBJS)
145	$(AR) rc libnds32_isr.a $(LIBNDS32_ISR_COMPLETE_OBJS)
146
147
148# ------------------------------------------------------------------------
149