aboutsummaryrefslogtreecommitdiff
path: root/ports/sysdeps/tile/tilegx/string-endian.h
diff options
context:
space:
mode:
authorChris Metcalf <cmetcalf@tilera.com>2014-02-10 10:54:47 -0500
committerChris Metcalf <cmetcalf@tilera.com>2014-02-10 11:04:39 -0500
commit4372980f5881e7d537a52e3c49588ce116088061 (patch)
tree138fbc88313c8cb0cabee393e0c08afd67dac6f1 /ports/sysdeps/tile/tilegx/string-endian.h
parenta1ffb40e32741f992c743e7b16c061fefa3747ac (diff)
downloadglibc-4372980f5881e7d537a52e3c49588ce116088061.tar
glibc-4372980f5881e7d537a52e3c49588ce116088061.tar.gz
glibc-4372980f5881e7d537a52e3c49588ce116088061.tar.bz2
glibc-4372980f5881e7d537a52e3c49588ce116088061.zip
Move tilegx, tilepro, and linux-generic from ports to libc.
I've moved the TILE-Gx and TILEPro ports to the main sysdeps hierarchy, along with the linux-generic ports infrastructure. Beyond the README update, the move was just git mv ports/sysdeps/tile sysdeps/tile git mv ports/sysdeps/unix/sysv/linux/tile \ sysdeps/unix/sysv/linux/tile git mv ports/sysdeps/unix/sysv/linux/generic \ sysdeps/unix/sysv/linux/generic I updated the relevant ChangeLogs along the lines of the ARM move in commit c6bfe5c4d75 and tested the 64-bit tilegx build to confirm that there were no changes in "objdump -dr" output in the shared objects.
Diffstat (limited to 'ports/sysdeps/tile/tilegx/string-endian.h')
-rw-r--r--ports/sysdeps/tile/tilegx/string-endian.h47
1 files changed, 0 insertions, 47 deletions
diff --git a/ports/sysdeps/tile/tilegx/string-endian.h b/ports/sysdeps/tile/tilegx/string-endian.h
deleted file mode 100644
index 0c4d51766d..0000000000
--- a/ports/sysdeps/tile/tilegx/string-endian.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/* Copyright (C) 2011-2014 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
-
-/* Provide a mask based on the pointer alignment that
- sets up non-zero bytes before the beginning of the string.
- The MASK expression works because shift counts are taken mod 64.
- Also, specify how to count "first" and "last" bits
- when the bits have been read as a word. */
-
-#include <stdint.h>
-
-#ifndef __BIG_ENDIAN__
-#define MASK(x) (__insn_shl(1ULL, (x << 3)) - 1)
-#define NULMASK(x) ((2ULL << x) - 1)
-#define CFZ(x) __insn_ctz(x)
-#define REVCZ(x) __insn_clz(x)
-#else
-#define MASK(x) (__insn_shl(-2LL, ((-x << 3) - 1)))
-#define NULMASK(x) (-2LL << (63 - x))
-#define CFZ(x) __insn_clz(x)
-#define REVCZ(x) __insn_ctz(x)
-#endif
-
-/* Create eight copies of the byte in a uint64_t. */
-static inline uint64_t copy_byte(uint8_t byte)
-{
- uint64_t word = byte;
- word = __insn_bfins(word, word, 8, 15);
- word = __insn_bfins(word, word, 16, 31);
- word = __insn_bfins(word, word, 32, 63);
- return word;
-}