Commit 5d39821d by Kazu Hirata Committed by Kazu Hirata

h8300.h (LONG_LONG_TYPE_SIZE): Set to 64.

	* config/h8300/h8300.h (LONG_LONG_TYPE_SIZE): Set to 64.
	* config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _floatdisf
	_fixsfdi _fixunssfdi.
	(LIB2FUNCS_EXTRA): Add entries for clzhi2, ctzhi2, parityhi2,
	popcounthi2.
	(TARGET_LIBGCC2_CFLAGS): Remove -DDI=SI.
	* config/h8300/clzhi2.c: New.
	* config/h8300/ctzhi2.c: Likewise.
	* config/h8300/parityhi2.c: Likewise.
	* config/h8300/popcounthi2.c: Likewise.

From-SVN: r67636
parent 8fc98a46
2003-06-08 Kazu Hirata <kazu@cs.umass.edu>
* config/h8300/h8300.h (LONG_LONG_TYPE_SIZE): Set to 64.
* config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _floatdisf
_fixsfdi _fixunssfdi.
(LIB2FUNCS_EXTRA): Add entries for clzhi2, ctzhi2, parityhi2,
popcounthi2.
(TARGET_LIBGCC2_CFLAGS): Remove -DDI=SI.
* config/h8300/clzhi2.c: New.
* config/h8300/ctzhi2.c: Likewise.
* config/h8300/parityhi2.c: Likewise.
* config/h8300/popcounthi2.c: Likewise.
Sun Jun 8 15:52:17 CEST 2003 Jan Hubicka <jh@suse.cz> Sun Jun 8 15:52:17 CEST 2003 Jan Hubicka <jh@suse.cz>
* i386.md (subsi_3_zext, sse2_nandv2di3): Fix predicates. * i386.md (subsi_3_zext, sse2_nandv2di3): Fix predicates.
......
/* The implementation of __clzhi2.
Copyright (C) 2003 Free Software Foundation, Inc.
This file is part of GNU CC.
GNU CC 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 2, or (at your option)
any later version.
In addition to the permissions in the GNU General Public License, the
Free Software Foundation gives you unlimited permission to link the
compiled version of this file into combinations with other programs,
and to distribute those combinations without any restriction coming
from the use of this file. (The General Public License restrictions
do apply in other respects; for example, they cover modification of
the file, and distribution when not linked into a combine
executable.)
GNU CC 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 GNU CC; see the file COPYING. If not, write to
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
int
__clzhi2 (unsigned short x)
{
int i;
for (i = 0; i < 16; i++)
if (x & ((unsigned short) 1 << (15 - i)))
break;
return i;
}
/* The implementation of __ctzhi2.
Copyright (C) 2003 Free Software Foundation, Inc.
This file is part of GNU CC.
GNU CC 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 2, or (at your option)
any later version.
In addition to the permissions in the GNU General Public License, the
Free Software Foundation gives you unlimited permission to link the
compiled version of this file into combinations with other programs,
and to distribute those combinations without any restriction coming
from the use of this file. (The General Public License restrictions
do apply in other respects; for example, they cover modification of
the file, and distribution when not linked into a combine
executable.)
GNU CC 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 GNU CC; see the file COPYING. If not, write to
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
int
__ctzhi2 (unsigned short x)
{
int i;
for (i = 0; i < 16; i++)
if (x & ((unsigned short) 1 << i))
break;
return i;
}
...@@ -244,7 +244,7 @@ extern int target_flags; ...@@ -244,7 +244,7 @@ extern int target_flags;
#define SHORT_TYPE_SIZE 16 #define SHORT_TYPE_SIZE 16
#define INT_TYPE_SIZE (TARGET_INT32 ? 32 : 16) #define INT_TYPE_SIZE (TARGET_INT32 ? 32 : 16)
#define LONG_TYPE_SIZE 32 #define LONG_TYPE_SIZE 32
#define LONG_LONG_TYPE_SIZE 32 #define LONG_LONG_TYPE_SIZE 64
#define FLOAT_TYPE_SIZE 32 #define FLOAT_TYPE_SIZE 32
#define DOUBLE_TYPE_SIZE 32 #define DOUBLE_TYPE_SIZE 32
#define LONG_DOUBLE_TYPE_SIZE DOUBLE_TYPE_SIZE #define LONG_DOUBLE_TYPE_SIZE DOUBLE_TYPE_SIZE
......
/* The implementation of __parityhi2.
Copyright (C) 2003 Free Software Foundation, Inc.
This file is part of GNU CC.
GNU CC 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 2, or (at your option)
any later version.
In addition to the permissions in the GNU General Public License, the
Free Software Foundation gives you unlimited permission to link the
compiled version of this file into combinations with other programs,
and to distribute those combinations without any restriction coming
from the use of this file. (The General Public License restrictions
do apply in other respects; for example, they cover modification of
the file, and distribution when not linked into a combine
executable.)
GNU CC 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 GNU CC; see the file COPYING. If not, write to
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
int
__parityhi2 (unsigned short x)
{
int i;
int count = 0;
for (i = 0; i < 16; i++)
if (x & ((unsigned short) 1 << i))
count++;
return count & 1;
}
/* The implementation of __popcounthi2.
Copyright (C) 2003 Free Software Foundation, Inc.
This file is part of GNU CC.
GNU CC 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 2, or (at your option)
any later version.
In addition to the permissions in the GNU General Public License, the
Free Software Foundation gives you unlimited permission to link the
compiled version of this file into combinations with other programs,
and to distribute those combinations without any restriction coming
from the use of this file. (The General Public License restrictions
do apply in other respects; for example, they cover modification of
the file, and distribution when not linked into a combine
executable.)
GNU CC 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 GNU CC; see the file COPYING. If not, write to
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
int
__popcounthi2 (unsigned short x)
{
int i;
int count = 0;
for (i = 0; i < 16; i++)
if (x & ((unsigned short) 1 << i))
count++;
return count;
}
...@@ -3,12 +3,17 @@ ...@@ -3,12 +3,17 @@
# from libgcc2.c. They do not actually exist in lib1funcs.asm. # from libgcc2.c. They do not actually exist in lib1funcs.asm.
LIB1ASMSRC = h8300/lib1funcs.asm LIB1ASMSRC = h8300/lib1funcs.asm
LIB1ASMFUNCS = _cmpsi2 _ucmpsi2 _divhi3 _divsi3 _mulhi3 _mulsi3 \ LIB1ASMFUNCS = _cmpsi2 _ucmpsi2 _divhi3 _divsi3 _mulhi3 _mulsi3 \
_floatdisf _fixsfdi _fixunssfdi _fixunssfsi_asm _fixunssfsi_asm
LIB2FUNCS_EXTRA = $(srcdir)/config/h8300/fixunssfsi.c LIB2FUNCS_EXTRA = \
$(srcdir)/config/h8300/clzhi2.c \
$(srcdir)/config/h8300/ctzhi2.c \
$(srcdir)/config/h8300/parityhi2.c \
$(srcdir)/config/h8300/popcounthi2.c \
$(srcdir)/config/h8300/fixunssfsi.c
# We do not have DF or DI types, so fake out the libgcc2 compilation. # We do not have DF type, so fake out the libgcc2 compilation.
TARGET_LIBGCC2_CFLAGS = -DDF=SF -DDI=SI TARGET_LIBGCC2_CFLAGS = -DDF=SF
# We want fine grained libraries, so use the new code to build the # We want fine grained libraries, so use the new code to build the
# floating point emulation libraries. # floating point emulation libraries.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment