# Makefile fragment for building LIBGCC for the Renesas CR16 target.
# Copyright (C) 2012-2021 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
# GCC is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published
# by the Free Software Foundation; either version 3, or (at your
# option) any later version.
#
# GCC is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.   See
# the GNU General Public License for more details.
#
# You should have received a copy of the  GNU General Public
# License along with GCC; see the file COPYING3.  If not see
# <http://www.gnu.org/licenses/>.

LIB1ASMSRC = cr16/lib1funcs.S
LIB1ASMFUNCS =  _mulsi3 _lshrdi3 _muldi3 _divdi3 _udivdi3 _udivmoddi3 \
                _umoddi3 _moddi3

LIB2ADD = $(srcdir)/config/cr16/divmodhi3.c  \
	  $(srcdir)/udivmodsi4.c \
	  $(srcdir)/udivmod.c   \
	  $(srcdir)/divmod.c

LIB2ADDEH = $(srcdir)/config/cr16/unwind-cr16.c 
