1 # Makefile fragment for building LIBGCC for the TI MSP430 processor. 2 # Copyright (C) 2011-2024 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 25 LIB2ADD = \ 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. 46 LIB2FUNCS_EXCLUDE += _muldi3 47 48 HOST_LIBGCC2_CFLAGS += -Os -ffunction-sections -fdata-sections -mhwmult=none 49 50 crtbegin_no_eh.o: $(srcdir)/crtstuff.c 51 $(crt_compile) -U__LIBGCC_EH_FRAME_SECTION_NAME__ -c $< -DCRT_BEGIN 52 53 crtend_no_eh.o: $(srcdir)/crtstuff.c 54 $(crt_compile) -U__LIBGCC_EH_FRAME_SECTION_NAME__ -c $< -DCRT_END 55 56 mpy.o: $(srcdir)/config/msp430/mpy.c 57 $(gcc_compile) $< -c 58 59 lib2_mul_none.o: $(srcdir)/config/msp430/lib2mul.c 60 $(gcc_compile) $< -c -DMUL_NONE 61 62 lib2_mul_16bit.o: $(srcdir)/config/msp430/lib2mul.c 63 $(gcc_compile) $< -c -DMUL_16 64 65 lib2hw_mul_16.o: $(srcdir)/config/msp430/lib2hw_mul.S 66 $(gcc_compile) $< -c -DMUL_16 67 68 lib2hw_mul_32.o: $(srcdir)/config/msp430/lib2hw_mul.S 69 $(gcc_compile) $< -c -DMUL_32 70 71 lib2hw_mul_f5.o: $(srcdir)/config/msp430/lib2hw_mul.S 72 $(gcc_compile) $< -c -DMUL_F5 73 74 libmul_none.a: lib2_mul_none.o mpy.o 75 $(AR_CREATE_FOR_TARGET) $@ $(filter %.o,$^) 76 77 libmul_16.a: lib2hw_mul_16.o lib2_mul_16bit.o 78 $(AR_CREATE_FOR_TARGET) $@ $(filter %.o,$^) 79 80 libmul_32.a: lib2hw_mul_32.o 81 $(AR_CREATE_FOR_TARGET) $@ $(filter %.o,$^) 82 83 libmul_f5.a: lib2hw_mul_f5.o 84 $(AR_CREATE_FOR_TARGET) $@ $(filter %.o,$^) 85 86 # Local Variables: 87 # mode: Makefile 88 # End: 89