xref: /netbsd-src/external/gpl3/gcc/dist/libgcc/config/msp430/t-msp430 (revision b1e838363e3c6fc78a55519254d99869742dd33c)
1# Makefile fragment for building LIBGCC for the TI MSP430 processor.
2# Copyright (C) 2011-2022 Free Software Foundation, Inc.
3# Contributed by Red Hat.
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
13# WITHOUT ANY WARRANTY; without even the implied warranty of
14# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.   See
15# the GNU General Public License for more details.
16#
17# You should have received a copy of the  GNU General Public
18# License along with GCC; see the file COPYING3.  If not see
19# <http://www.gnu.org/licenses/>.
20
21# Note - we have separate versions of the lib2div<mode> files
22# as the functions are quite large and we do not want to pull
23# in unneeded division routines.
24
25LIB2ADD = \
26	$(srcdir)/config/msp430/lib2divQI.c \
27	$(srcdir)/config/msp430/lib2divHI.c \
28	$(srcdir)/config/msp430/lib2divSI.c \
29	$(srcdir)/config/msp430/lib2bitcountHI.c \
30	$(srcdir)/config/msp430/lib2mul.c \
31	$(srcdir)/config/msp430/lib2shift.c \
32	$(srcdir)/config/msp430/epilogue.S \
33	$(srcdir)/config/msp430/slli.S \
34	$(srcdir)/config/msp430/srai.S \
35	$(srcdir)/config/msp430/srli.S \
36	$(srcdir)/config/msp430/cmpsi2.S \
37	$(srcdir)/config/msp430/floatunhisf.c \
38	$(srcdir)/config/msp430/floatunhidf.c \
39	$(srcdir)/config/msp430/floathidf.c \
40	$(srcdir)/config/msp430/floathisf.c \
41	$(srcdir)/config/msp430/cmpd.c
42
43# 32-bit and F5series hardware multiply have their own version of this function.
44# To handle the case when there is no hardware multiply or only 16-bit hardware
45# multiply, the libgcc version has been copied to lib2mul.c.
46LIB2FUNCS_EXCLUDE += _muldi3
47
48HOST_LIBGCC2_CFLAGS += -Os -ffunction-sections -fdata-sections -mhwmult=none
49
50crtbegin_no_eh.o: $(srcdir)/crtstuff.c
51	$(crt_compile) -U__LIBGCC_EH_FRAME_SECTION_NAME__ -c $< -DCRT_BEGIN
52
53crtend_no_eh.o: $(srcdir)/crtstuff.c
54	$(crt_compile) -U__LIBGCC_EH_FRAME_SECTION_NAME__ -c $< -DCRT_END
55
56mpy.o: $(srcdir)/config/msp430/mpy.c
57	$(gcc_compile) $< -c
58
59lib2_mul_none.o: $(srcdir)/config/msp430/lib2mul.c
60	$(gcc_compile) $< -c -DMUL_NONE
61
62lib2_mul_16bit.o: $(srcdir)/config/msp430/lib2mul.c
63	$(gcc_compile) $< -c -DMUL_16
64
65lib2hw_mul_16.o: $(srcdir)/config/msp430/lib2hw_mul.S
66	$(gcc_compile) $< -c -DMUL_16
67
68lib2hw_mul_32.o: $(srcdir)/config/msp430/lib2hw_mul.S
69	$(gcc_compile) $< -c -DMUL_32
70
71lib2hw_mul_f5.o: $(srcdir)/config/msp430/lib2hw_mul.S
72	$(gcc_compile) $< -c -DMUL_F5
73
74libmul_none.a: lib2_mul_none.o mpy.o
75	$(AR_CREATE_FOR_TARGET) $@ $(filter %.o,$^)
76
77libmul_16.a: lib2hw_mul_16.o lib2_mul_16bit.o
78	$(AR_CREATE_FOR_TARGET) $@ $(filter %.o,$^)
79
80libmul_32.a: lib2hw_mul_32.o
81	$(AR_CREATE_FOR_TARGET) $@ $(filter %.o,$^)
82
83libmul_f5.a: lib2hw_mul_f5.o
84	$(AR_CREATE_FOR_TARGET) $@ $(filter %.o,$^)
85
86# Local Variables:
87# mode: Makefile
88# End:
89