aboutsummaryrefslogtreecommitdiff
path: root/libgfortran/intrinsics/mvbits.c
diff options
context:
space:
mode:
authorTobias Schlüter <tobias.schlueter@physik.uni-muenchen.de>2004-12-27 17:43:25 +0100
committerTobias Schlüter <tobi@gcc.gnu.org>2004-12-27 17:43:25 +0100
commit56746a074523e783b1f1de26b4c23c1be9616ac1 (patch)
treeb88e393afbb9bf77f96b70a52f9243489d970d7c /libgfortran/intrinsics/mvbits.c
parent64092f8bc204184c4a78740dab1625753d61318e (diff)
downloadgcc-56746a074523e783b1f1de26b4c23c1be9616ac1.zip
gcc-56746a074523e783b1f1de26b4c23c1be9616ac1.tar.gz
gcc-56746a074523e783b1f1de26b4c23c1be9616ac1.tar.bz2
trans-intrinsic.c (gfc_conv_intrinsic_ishft): Change to logicalshift.
gcc/fortran/ * trans-intrinsic.c (gfc_conv_intrinsic_ishft): Change to logicalshift. Call fold. Remove 0-bit shift shortcut. (gfc_conv_intrinsic_ishftc): Convert first argument to at least 4 bytes bits. Convert 2nd and 3rd argument to 4 bytes. Convert result if width(arg 1) < 4 bytes. Call fold. libgfortran/ * libgfortran/libgfortran.h (GFC_UINTEGER_1, GFC_UINTEGER_2): Define. * intrinsics/ishftc.c: Update copyright years. (ishftc8): Change 'shift' and 'size' to GFC_INTEGER_4. * intrinsics/mvbits.c: Correcty non-ASCII character in my name. Add implementations for GFC_INTEGER_1 and GFC_INTEGER_2. gcc/testsuite/ * gfortran.dg/g77/f90-intrinsic-bit.f: New. From-SVN: r92642
Diffstat (limited to 'libgfortran/intrinsics/mvbits.c')
-rw-r--r--libgfortran/intrinsics/mvbits.c18
1 files changed, 17 insertions, 1 deletions
diff --git a/libgfortran/intrinsics/mvbits.c b/libgfortran/intrinsics/mvbits.c
index 140547b..e1e3e40 100644
--- a/libgfortran/intrinsics/mvbits.c
+++ b/libgfortran/intrinsics/mvbits.c
@@ -1,6 +1,6 @@
/* Implementation of the MVBITS intrinsic
Copyright (C) 2004 Free Software Foundation, Inc.
- Contributed by Tobias Schlüter
+ Contributed by Tobias Schlüter
This file is part of the GNU Fortran 95 runtime library (libgfortran).
@@ -48,6 +48,22 @@ SUB_NAME (const TYPE *from, const GFC_INTEGER_4 *frompos,
#endif
#ifndef SUB_NAME
+# define TYPE GFC_INTEGER_1
+# define UTYPE GFC_UINTEGER_1
+# define SUB_NAME mvbits_i1
+# include "mvbits.c"
+# undef SUB_NAME
+# undef TYPE
+# undef UTYPE
+
+# define TYPE GFC_INTEGER_2
+# define UTYPE GFC_UINTEGER_2
+# define SUB_NAME mvbits_i2
+# include "mvbits.c"
+# undef SUB_NAME
+# undef TYPE
+# undef UTYPE
+
# define TYPE GFC_INTEGER_4
# define UTYPE GFC_UINTEGER_4
# define SUB_NAME mvbits_i4