diff options
author | Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> | 2016-12-19 16:00:42 +0000 |
---|---|---|
committer | François-Xavier Coudert <fxcoudert@gcc.gnu.org> | 2016-12-19 16:00:42 +0000 |
commit | bed192f40a5e2ff8edc9375c443473c0a966c5b5 (patch) | |
tree | 0da44bab7461c408d7d0870d9b556ebabea525c6 /libgfortran/intrinsics | |
parent | 7e294024ad7b92b888fc067ccb71cf2efe1c441b (diff) | |
download | gcc-bed192f40a5e2ff8edc9375c443473c0a966c5b5.tar.gz |
Makefile.am: Remove intrinsics/bit_intrinsics.c.
* Makefile.am: Remove intrinsics/bit_intrinsics.c.
* Makefile.in: Regenerate.
* gfortran.map: Remove _gfortran_clz128 and _gfortran_ctz128.
* intrinsics/bit_intrinsics.c: Remove.
From-SVN: r243800
Diffstat (limited to 'libgfortran/intrinsics')
-rw-r--r-- | libgfortran/intrinsics/bit_intrinsics.c | 138 |
1 files changed, 0 insertions, 138 deletions
diff --git a/libgfortran/intrinsics/bit_intrinsics.c b/libgfortran/intrinsics/bit_intrinsics.c deleted file mode 100644 index 5f347fb0e81..00000000000 --- a/libgfortran/intrinsics/bit_intrinsics.c +++ /dev/null @@ -1,138 +0,0 @@ -/* Implementation of the bit intrinsics not implemented as GCC builtins. - Copyright (C) 2009-2016 Free Software Foundation, Inc. - -This file is part of the GNU Fortran runtime library (libgfortran). - -Libgfortran 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 of the License, or (at your option) any later version. - -Libgfortran 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. - -Under Section 7 of GPL version 3, you are granted additional -permissions described in the GCC Runtime Library Exception, version -3.1, as published by the Free Software Foundation. - -You should have received a copy of the GNU General Public License and -a copy of the GCC Runtime Library Exception along with this program; -see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -<http://www.gnu.org/licenses/>. */ - -#include "libgfortran.h" - - -#ifdef HAVE_GFC_INTEGER_16 -extern int clz128 (GFC_INTEGER_16); -export_proto(clz128); - -int -clz128 (GFC_INTEGER_16 x) -{ - int res = 127; - - // We can't write 0xFFFFFFFFFFFFFFFF0000000000000000, so we work around it - if (x & ((__uint128_t) 0xFFFFFFFFFFFFFFFF << 64)) - { - res -= 64; - x >>= 64; - } - - if (x & 0xFFFFFFFF00000000) - { - res -= 32; - x >>= 32; - } - - if (x & 0xFFFF0000) - { - res -= 16; - x >>= 16; - } - - if (x & 0xFF00) - { - res -= 8; - x >>= 8; - } - - if (x & 0xF0) - { - res -= 4; - x >>= 4; - } - - if (x & 0xC) - { - res -= 2; - x >>= 2; - } - - if (x & 0x2) - { - res -= 1; - x >>= 1; - } - - return res; -} -#endif - - -#ifdef HAVE_GFC_INTEGER_16 -extern int ctz128 (GFC_INTEGER_16); -export_proto(ctz128); - -int -ctz128 (GFC_INTEGER_16 x) -{ - int res = 0; - - if ((x & 0xFFFFFFFFFFFFFFFF) == 0) - { - res += 64; - x >>= 64; - } - - if ((x & 0xFFFFFFFF) == 0) - { - res += 32; - x >>= 32; - } - - if ((x & 0xFFFF) == 0) - { - res += 16; - x >>= 16; - } - - if ((x & 0xFF) == 0) - { - res += 8; - x >>= 8; - } - - if ((x & 0xF) == 0) - { - res += 4; - x >>= 4; - } - - if ((x & 0x3) == 0) - { - res += 2; - x >>= 2; - } - - if ((x & 0x1) == 0) - { - res += 1; - x >>= 1; - } - - return res; -} -#endif |