This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH][1/n] Always-64bit HWI cleanups


On Wed, 7 May 2014, Richard Biener wrote:

> 
> This removes the need_64bit_hwi logic, nothing else (well, brings
> libcpp in line with gcc).
> 
> Bootstrap / regtest pending on x86_64-unknown-linux-gnu.

Bootstrapped and tested on x86_64-unknown-linux-gnu, ok for trunk?

Thanks,
Richard.

> Just as I promised to send this before committing the "let's try this"
> patch (which is now said to fix wide-int fallout).
> 
> Richard.
> 
> 2014-05-07  Richard Biener  <rguenther@suse.de>
> 
> 	gcc/
> 	* config.gcc: Remove need_64bit_hwint.
> 	* configure.ac: Do not define NEED_64BIT_HOST_WIDE_INT.
> 	* hwint.h: Do not check NEED_64BIT_HOST_WIDE_INT but assume
> 	it to be true.
> 	* config.in: Regenerate.
> 	* configure: Likewise.
> 
> 	libcpp/
> 	* configure.ac: Copy gcc logic of detecting a 64bit type.
> 	Remove HOST_WIDE_INT define.
> 	* include/cpplib.h: typedef cpp_num_part to a 64bit type,
> 	similar to how hwint.h does it.
> 	* config.in: Regenerate.
> 	* configure: Likewise.
> 
> Index: trunk/gcc/config.gcc
> ===================================================================
> *** trunk.orig/gcc/config.gcc	2014-04-30 10:16:58.491135331 +0200
> --- trunk/gcc/config.gcc	2014-04-30 10:24:43.902103288 +0200
> ***************
> *** 164,176 ****
>   #  gas			Set to yes or no depending on whether the target
>   #			system normally uses GNU as.
>   #
> - #  need_64bit_hwint	Set to yes if HOST_WIDE_INT must be 64 bits wide
> - #			for this target.  This is true if this target
> - #			supports "long" or "wchar_t" wider than 32 bits,
> - #			or BITS_PER_WORD is wider than 32 bits.
> - #			The setting made here must match the one made in
> - #			other locations such as libcpp/configure.ac
> - #
>   #  configure_default_options
>   #			Set to an initializer for configure_default_options
>   #			in configargs.h, based on --with-cpu et cetera.
> --- 164,169 ----
> *************** gnu_ld="$gnu_ld_flag"
> *** 233,239 ****
>   default_use_cxa_atexit=no
>   default_gnu_indirect_function=no
>   target_gtfiles=
> - need_64bit_hwint=yes
>   need_64bit_isa=
>   native_system_header_dir=/usr/include
>   target_type_format_char='@'
> --- 226,231 ----
> *************** m32c*-*-*)
> *** 310,323 ****
>           ;;
>   aarch64*-*-*)
>   	cpu_type=aarch64
> - 	need_64bit_hwint=yes
>   	extra_headers="arm_neon.h"
>   	extra_objs="aarch64-builtins.o aarch-common.o"
>   	target_has_targetm_common=yes
>   	;;
>   alpha*-*-*)
>   	cpu_type=alpha
> - 	need_64bit_hwint=yes
>   	extra_options="${extra_options} g.opt"
>   	;;
>   am33_2.0-*-linux*)
> --- 302,313 ----
> *************** arm*-*-*)
> *** 333,339 ****
>   	target_type_format_char='%'
>   	c_target_objs="arm-c.o"
>   	cxx_target_objs="arm-c.o"
> - 	need_64bit_hwint=yes
>   	extra_options="${extra_options} arm/arm-tables.opt"
>   	;;
>   avr-*-*)
> --- 323,328 ----
> *************** i[34567]86-*-*)
> *** 363,369 ****
>   	cpu_type=i386
>   	c_target_objs="i386-c.o"
>   	cxx_target_objs="i386-c.o"
> - 	need_64bit_hwint=yes
>   	extra_options="${extra_options} fused-madd.opt"
>   	extra_headers="cpuid.h mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h
>   		       pmmintrin.h tmmintrin.h ammintrin.h smmintrin.h
> --- 352,357 ----
> *************** x86_64-*-*)
> *** 393,403 ****
>   		       adxintrin.h fxsrintrin.h xsaveintrin.h xsaveoptintrin.h
>   		       avx512cdintrin.h avx512erintrin.h avx512pfintrin.h
>   		       shaintrin.h"
> - 	need_64bit_hwint=yes
>   	;;
>   ia64-*-*)
>   	extra_headers=ia64intrin.h
> - 	need_64bit_hwint=yes
>   	extra_options="${extra_options} g.opt fused-madd.opt"
>   	;;
>   hppa*-*-*)
> --- 381,389 ----
> *************** microblaze*-*-*)
> *** 420,426 ****
>           ;;
>   mips*-*-*)
>   	cpu_type=mips
> - 	need_64bit_hwint=yes
>   	extra_headers="loongson.h"
>   	extra_options="${extra_options} g.opt mips/mips-tables.opt"
>   	;;
> --- 406,411 ----
> *************** picochip-*-*)
> *** 438,444 ****
>   powerpc*-*-*)
>   	cpu_type=rs6000
>   	extra_headers="ppc-asm.h altivec.h spe.h ppu_intrinsics.h paired.h spu2vmx.h vec_types.h si2vmx.h htmintrin.h htmxlintrin.h"
> - 	need_64bit_hwint=yes
>   	case x$with_cpu in
>   	    xpowerpc64|xdefault64|x6[23]0|x970|xG5|xpower[345678]|xpower6x|xrs64a|xcell|xa2|xe500mc64|xe5500|Xe6500)
>   		cpu_is_64bit=yes
> --- 423,428 ----
> *************** powerpc*-*-*)
> *** 447,453 ****
>   	extra_options="${extra_options} g.opt fused-madd.opt rs6000/rs6000-tables.opt"
>   	;;
>   rs6000*-*-*)
> - 	need_64bit_hwint=yes
>   	extra_options="${extra_options} g.opt fused-madd.opt rs6000/rs6000-tables.opt"
>   	;;
>   score*-*-*)
> --- 431,436 ----
> *************** sparc*-*-*)
> *** 459,480 ****
>   	c_target_objs="sparc-c.o"
>   	cxx_target_objs="sparc-c.o"
>   	extra_headers="visintrin.h"
> - 	need_64bit_hwint=yes
>   	;;
>   spu*-*-*)
>   	cpu_type=spu
> - 	need_64bit_hwint=yes
>   	;;
>   s390*-*-*)
>   	cpu_type=s390
> - 	need_64bit_hwint=yes
>   	extra_options="${extra_options} fused-madd.opt"
>   	extra_headers="s390intrin.h htmintrin.h htmxlintrin.h"
>   	;;
>   # Note the 'l'; we need to be able to match e.g. "shle" or "shl".
>   sh[123456789lbe]*-*-* | sh-*-*)
>   	cpu_type=sh
> - 	need_64bit_hwint=yes
>   	extra_options="${extra_options} fused-madd.opt"
>   	extra_objs="${extra_objs} sh_treg_combine.o sh-mem.o sh_optimize_sett_clrt.o"
>   	;;
> --- 442,459 ----
> *************** xtensa*-*-*)
> *** 491,501 ****
>   	;;
>   tilegx*-*-*)
>   	cpu_type=tilegx
> - 	need_64bit_hwint=yes
>   	;;
>   tilepro*-*-*)
>   	cpu_type=tilepro
> - 	need_64bit_hwint=yes
>   	;;
>   esac
>   
> --- 470,478 ----
> *************** case ${target} in
> *** 683,689 ****
>       *)
>         default_use_cxa_atexit=yes;;
>     esac
> -   # need_64bit_hwint=yes # system compiler has this for all arch!
>     use_gcc_stdint=wrap
>     ;;
>   *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu)
> --- 660,665 ----
> *************** hppa*64*-*-linux*)
> *** 1183,1189 ****
>   		 glibc-stdint.h pa/pa-linux.h pa/pa64-regs.h pa/pa-64.h \
>   		 pa/pa64-linux.h"
>   	gas=yes gnu_ld=yes
> - 	need_64bit_hwint=yes
>   	;;
>   hppa*-*-linux*)
>   	target_cpu_default="MASK_PA_11|MASK_NO_SPACE_REGS"
> --- 1159,1164 ----
> *************** hppa*64*-*-hpux11*)
> *** 1258,1264 ****
>   	esac
>   	extra_options="${extra_options} pa/pa-hpux.opt \
>   		       pa/pa-hpux1010.opt pa/pa64-hpux.opt hpux11.opt"
> - 	need_64bit_hwint=yes
>   	tmake_file="t-slibgcc"
>   	case x${enable_threads} in
>   	x | xyes | xposix )
> --- 1233,1238 ----
> *************** mipstx39-*-elf* | mipstx39el-*-elf*)
> *** 2092,2098 ****
>   	;;
>   mmix-knuth-mmixware)
>   	tm_file="${tm_file} newlib-stdint.h"
> - 	need_64bit_hwint=yes
>   	use_gcc_stdint=wrap
>   	;;
>   mn10300-*-*)
> --- 2066,2071 ----
> Index: trunk/gcc/config.in
> ===================================================================
> *** trunk.orig/gcc/config.in	2014-04-28 11:53:47.560632455 +0200
> --- trunk/gcc/config.in	2014-04-30 10:26:38.000000000 +0200
> ***************
> *** 1729,1740 ****
>   #endif
>   
>   
> - /* Define to 1 if HOST_WIDE_INT must be 64 bits wide (see hwint.h). */
> - #ifndef USED_FOR_TARGET
> - #undef NEED_64BIT_HOST_WIDE_INT
> - #endif
> - 
> - 
>   /* Define to the address where bug reports for this package should be sent. */
>   #ifndef USED_FOR_TARGET
>   #undef PACKAGE_BUGREPORT
> --- 1729,1734 ----
> Index: trunk/gcc/configure
> ===================================================================
> *** trunk.orig/gcc/configure	2014-04-28 13:26:42.395248635 +0200
> --- trunk/gcc/configure	2014-04-30 10:26:36.287095551 +0200
> *************** else
> *** 11150,11161 ****
>   	done
>   fi
>   
> - if test x$need_64bit_hwint = xyes; then
> - 
> - $as_echo "#define NEED_64BIT_HOST_WIDE_INT 1" >>confdefs.h
> - 
> - fi
> - 
>   if test x$use_long_long_for_widest_fast_int = xyes; then
>   
>   $as_echo "#define USE_LONG_LONG_FOR_WIDEST_FAST_INT 1" >>confdefs.h
> --- 11150,11155 ----
> *************** else
> *** 17994,18000 ****
>     lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
>     lt_status=$lt_dlunknown
>     cat > conftest.$ac_ext <<_LT_EOF
> ! #line 17997 "configure"
>   #include "confdefs.h"
>   
>   #if HAVE_DLFCN_H
> --- 17988,17994 ----
>     lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
>     lt_status=$lt_dlunknown
>     cat > conftest.$ac_ext <<_LT_EOF
> ! #line 17991 "configure"
>   #include "confdefs.h"
>   
>   #if HAVE_DLFCN_H
> *************** else
> *** 18100,18106 ****
>     lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
>     lt_status=$lt_dlunknown
>     cat > conftest.$ac_ext <<_LT_EOF
> ! #line 18103 "configure"
>   #include "confdefs.h"
>   
>   #if HAVE_DLFCN_H
> --- 18094,18100 ----
>     lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
>     lt_status=$lt_dlunknown
>     cat > conftest.$ac_ext <<_LT_EOF
> ! #line 18097 "configure"
>   #include "confdefs.h"
>   
>   #if HAVE_DLFCN_H
> Index: trunk/gcc/configure.ac
> ===================================================================
> *** trunk.orig/gcc/configure.ac	2014-04-28 13:26:42.397248634 +0200
> --- trunk/gcc/configure.ac	2014-04-30 10:54:47.723979097 +0200
> *************** else
> *** 1372,1382 ****
>   	done
>   fi
>   
> - if test x$need_64bit_hwint = xyes; then
> - 	AC_DEFINE(NEED_64BIT_HOST_WIDE_INT, 1,
> - [Define to 1 if HOST_WIDE_INT must be 64 bits wide (see hwint.h).])
> - fi
> - 
>   if test x$use_long_long_for_widest_fast_int = xyes; then
>   	AC_DEFINE(USE_LONG_LONG_FOR_WIDEST_FAST_INT, 1,
>   [Define to 1 if the 'long long' (or '__int64') is wider than 'long' but still
> --- 1372,1377 ----
> Index: trunk/gcc/hwint.h
> ===================================================================
> *** trunk.orig/gcc/hwint.h	2014-01-07 10:20:15.790453288 +0100
> --- trunk/gcc/hwint.h	2014-04-30 10:27:31.640091740 +0200
> *************** extern char sizeof_long_long_must_be_8[s
> *** 56,62 ****
>      Thus, we use that unless we have to use 'long long' or '__int64'
>      because we're targeting a 64-bit machine from a 32-bit host.  */
>   
> ! #if HOST_BITS_PER_LONG >= 64 || !defined NEED_64BIT_HOST_WIDE_INT
>   #   define HOST_BITS_PER_WIDE_INT HOST_BITS_PER_LONG
>   #   define HOST_WIDE_INT long
>   #   define HOST_WIDE_INT_C(X) X ## L
> --- 56,62 ----
>      Thus, we use that unless we have to use 'long long' or '__int64'
>      because we're targeting a 64-bit machine from a 32-bit host.  */
>   
> ! #if HOST_BITS_PER_LONG >= 64
>   #   define HOST_BITS_PER_WIDE_INT HOST_BITS_PER_LONG
>   #   define HOST_WIDE_INT long
>   #   define HOST_WIDE_INT_C(X) X ## L
> Index: trunk/libcpp/config.in
> ===================================================================
> *** trunk.orig/libcpp/config.in	2013-03-01 12:05:05.628540226 +0100
> --- trunk/libcpp/config.in	2014-04-30 11:09:46.000000000 +0200
> ***************
> *** 180,185 ****
> --- 180,188 ----
>   /* Define to 1 if you have the <locale.h> header file. */
>   #undef HAVE_LOCALE_H
>   
> + /* Define to 1 if the system has the type `long long'. */
> + #undef HAVE_LONG_LONG
> + 
>   /* Define to 1 if you have the <memory.h> header file. */
>   #undef HAVE_MEMORY_H
>   
> ***************
> *** 228,236 ****
>   /* Define to 1 if you have the <unistd.h> header file. */
>   #undef HAVE_UNISTD_H
>   
> ! /* Define to the widest efficient host integer type at least as wide as the
> !    target's size_t type. */
> ! #undef HOST_WIDE_INT
>   
>   /* Define as const if the declaration of iconv() needs const. */
>   #undef ICONV_CONST
> --- 231,238 ----
>   /* Define to 1 if you have the <unistd.h> header file. */
>   #undef HAVE_UNISTD_H
>   
> ! /* Define to 1 if the system has the type `__int64'. */
> ! #undef HAVE___INT64
>   
>   /* Define as const if the declaration of iconv() needs const. */
>   #undef ICONV_CONST
> ***************
> *** 262,267 ****
> --- 264,275 ----
>   /* The size of `long', as computed by sizeof. */
>   #undef SIZEOF_LONG
>   
> + /* The size of `long long', as computed by sizeof. */
> + #undef SIZEOF_LONG_LONG
> + 
> + /* The size of `__int64', as computed by sizeof. */
> + #undef SIZEOF___INT64
> + 
>   /* If using the C implementation of alloca, define if you know the
>      direction of stack growth for your system; otherwise it will be
>      automatically deduced at runtime.
> Index: trunk/libcpp/configure
> ===================================================================
> *** trunk.orig/libcpp/configure	2014-02-24 17:40:11.060711433 +0100
> --- trunk/libcpp/configure	2014-04-30 11:09:43.683917411 +0200
> *************** _ACEOF
> *** 5566,5571 ****
> --- 5566,5657 ----
>   
>   fi
>   
> + ac_fn_c_check_type "$LINENO" "long long" "ac_cv_type_long_long" "$ac_includes_default"
> + if test "x$ac_cv_type_long_long" = x""yes; then :
> + 
> + cat >>confdefs.h <<_ACEOF
> + #define HAVE_LONG_LONG 1
> + _ACEOF
> + 
> + # The cast to long int works around a bug in the HP C Compiler
> + # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
> + # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
> + # This bug is HP SR number 8606223364.
> + { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long long" >&5
> + $as_echo_n "checking size of long long... " >&6; }
> + if test "${ac_cv_sizeof_long_long+set}" = set; then :
> +   $as_echo_n "(cached) " >&6
> + else
> +   if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long long))" "ac_cv_sizeof_long_long"        "$ac_includes_default"; then :
> + 
> + else
> +   if test "$ac_cv_type_long_long" = yes; then
> +      { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
> + $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
> + { as_fn_set_status 77
> + as_fn_error "cannot compute sizeof (long long)
> + See \`config.log' for more details." "$LINENO" 5; }; }
> +    else
> +      ac_cv_sizeof_long_long=0
> +    fi
> + fi
> + 
> + fi
> + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long_long" >&5
> + $as_echo "$ac_cv_sizeof_long_long" >&6; }
> + 
> + 
> + 
> + cat >>confdefs.h <<_ACEOF
> + #define SIZEOF_LONG_LONG $ac_cv_sizeof_long_long
> + _ACEOF
> + 
> + 
> + fi
> + 
> + ac_fn_c_check_type "$LINENO" "__int64" "ac_cv_type___int64" "$ac_includes_default"
> + if test "x$ac_cv_type___int64" = x""yes; then :
> + 
> + cat >>confdefs.h <<_ACEOF
> + #define HAVE___INT64 1
> + _ACEOF
> + 
> + # The cast to long int works around a bug in the HP C Compiler
> + # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
> + # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
> + # This bug is HP SR number 8606223364.
> + { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of __int64" >&5
> + $as_echo_n "checking size of __int64... " >&6; }
> + if test "${ac_cv_sizeof___int64+set}" = set; then :
> +   $as_echo_n "(cached) " >&6
> + else
> +   if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (__int64))" "ac_cv_sizeof___int64"        "$ac_includes_default"; then :
> + 
> + else
> +   if test "$ac_cv_type___int64" = yes; then
> +      { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
> + $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
> + { as_fn_set_status 77
> + as_fn_error "cannot compute sizeof (__int64)
> + See \`config.log' for more details." "$LINENO" 5; }; }
> +    else
> +      ac_cv_sizeof___int64=0
> +    fi
> + fi
> + 
> + fi
> + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof___int64" >&5
> + $as_echo "$ac_cv_sizeof___int64" >&6; }
> + 
> + 
> + 
> + cat >>confdefs.h <<_ACEOF
> + #define SIZEOF___INT64 $ac_cv_sizeof___int64
> + _ACEOF
> + 
> + 
> + fi
> + 
>   { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5
>   $as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; }
>   if test "${ac_cv_struct_tm+set}" = set; then :
> *************** $as_echo "#define ENABLE_CANONICAL_SYSTE
> *** 7151,7191 ****
>   
>   fi
>   
> - 
> - case $target in
> - 	aarch64*-*-* | \
> - 	alpha*-*-* | \
> - 	arm*-*-* | \
> - 	x86_64-*-* | \
> - 	ia64-*-* | \
> - 	hppa*64*-*-* | \
> - 	i[34567]86-*-* | x86_64-*-solaris2.1[0-9]* | \
> - 	mips*-*-* | \
> - 	mmix-*-* | \
> - 	powerpc*-*-* | \
> - 	rs6000*-*-* | \
> - 	s390*-*-* | \
> - 	sparc*-*-* | \
> - 	spu-*-* | \
> - 	sh[123456789lbe]*-*-* | sh-*-* | \
> - 	tilegx*-*-* | tilepro*-*-* )
> - 		need_64bit_hwint=yes ;;
> - 	*)
> - 		need_64bit_hwint=no ;;
> - esac
> - 
> - case $need_64bit_hwint:$ac_cv_sizeof_long in
> - 	*:8 | no:*) host_wide_int=long ;;
> - 	*) host_wide_int='long long' ;;
> - esac
> - 
> - 
> - 
> - cat >>confdefs.h <<_ACEOF
> - #define HOST_WIDE_INT $host_wide_int
> - _ACEOF
> - 
> - 
>   case $target in
>     i?86-* | x86_64-*)
>       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
> --- 7237,7242 ----
> Index: trunk/libcpp/configure.ac
> ===================================================================
> *** trunk.orig/libcpp/configure.ac	2014-04-30 10:16:58.480135332 +0200
> --- trunk/libcpp/configure.ac	2014-04-30 10:56:21.677972629 +0200
> *************** AC_TYPE_SIZE_T
> *** 64,69 ****
> --- 64,71 ----
>   AC_TYPE_SSIZE_T
>   AC_TYPE_UINTPTR_T
>   AC_CHECK_TYPE(ptrdiff_t, int)
> + AC_CHECK_TYPES([long long], [AC_CHECK_SIZEOF(long long)])
> + AC_CHECK_TYPES([__int64], [AC_CHECK_SIZEOF(__int64)])
>   AC_STRUCT_TM
>   AC_CHECK_SIZEOF(int)
>   AC_CHECK_SIZEOF(long)
> *************** if test $enable_canonical_system_headers
> *** 180,218 ****
>               1, [Define to enable system headers canonicalization.])
>   fi
>   
> - m4_changequote(,)
> - case $target in
> - 	aarch64*-*-* | \
> - 	alpha*-*-* | \
> - 	arm*-*-* | \
> - 	x86_64-*-* | \
> - 	ia64-*-* | \
> - 	hppa*64*-*-* | \
> - 	i[34567]86-*-* | x86_64-*-solaris2.1[0-9]* | \
> - 	mips*-*-* | \
> - 	mmix-*-* | \
> - 	powerpc*-*-* | \
> - 	rs6000*-*-* | \
> - 	s390*-*-* | \
> - 	sparc*-*-* | \
> - 	spu-*-* | \
> - 	sh[123456789lbe]*-*-* | sh-*-* | \
> - 	tilegx*-*-* | tilepro*-*-* )
> - 		need_64bit_hwint=yes ;;
> - 	*)
> - 		need_64bit_hwint=yes ;;
> - esac
> - 
> - case $need_64bit_hwint:$ac_cv_sizeof_long in
> - 	*:8 | no:*) host_wide_int=long ;;
> - 	*) host_wide_int='long long' ;;
> - esac
> - m4_changequote([,])
> - 
> - AC_DEFINE_UNQUOTED(HOST_WIDE_INT, $host_wide_int,
> - [Define to the widest efficient host integer type at least
> -    as wide as the target's size_t type.])
> - 
>   case $target in
>     i?86-* | x86_64-*)
>       AC_TRY_COMPILE([], [asm ("pcmpestri %0, %%xmm0, %%xmm1" : : "i"(0))],
> --- 182,187 ----
> Index: trunk/libcpp/include/cpplib.h
> ===================================================================
> *** trunk.orig/libcpp/include/cpplib.h	2014-01-07 10:20:27.942452756 +0100
> --- trunk/libcpp/include/cpplib.h	2014-04-30 11:09:27.230918544 +0200
> *************** extern int cpp_defined (cpp_reader *, co
> *** 819,825 ****
>   
>   /* A preprocessing number.  Code assumes that any unused high bits of
>      the double integer are set to zero.  */
> ! typedef unsigned HOST_WIDE_INT cpp_num_part;
>   typedef struct cpp_num cpp_num;
>   struct cpp_num
>   {
> --- 819,842 ----
>   
>   /* A preprocessing number.  Code assumes that any unused high bits of
>      the double integer are set to zero.  */
> ! 
> ! /* Find a type with at least 64bit precision, mimicking hwint.h.
> !    This type has to be equal to unsigned HOST_WIDE_INT, see
> !    gcc/c-family/c-lex.c.  */
> ! #if SIZEOF_LONG >= 8
> ! typedef unsigned long cpp_num_part;
> ! #else
> ! # if SIZEOF_LONG_LONG >= 8
> ! typedef unsigned long long cpp_num_part;
> ! # else
> ! #  if SIZEOF___INT64 >= 8
> ! typedef unsigned __int64 cpp_num_part;
> ! #  else
> !     #error "This line should be impossible to reach"
> ! #  endif
> ! # endif
> ! #endif
> ! 
>   typedef struct cpp_num cpp_num;
>   struct cpp_num
>   {
> 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]