non-gcc: Remove trailing whitespace

I've tried to build stage3 with
-Wleading-whitespace=blanks -Wtrailing-whitespace=blank -Wno-error=leading-whitespace=blanks -Wno-error=trailing-whitespace=blank
added to STRICT_WARN and that expectably resulted in about
2744 unique trailing whitespace warnings and 124837 leading whitespace
warnings when excluding *.md files (which obviously is in big part a
generator issue).  Others from that are generator related, I think those
need to be solved later.

The following patch just fixes up the easy case (trailing whitespace),
which could be easily automated:
for i in `find . -name \*.h -o -name \*.cc -o -name \*.c | xargs grep -l '[ 	]$' | grep -v testsuite/`; do sed -i -e 's/[ 	]*$//' $i; done
I've excluded files which I knew are obviously generated or go FE.

Is there anything else we'd want to avoid the changes?

Due to patch size, I've split it between gcc/ part
and rest (include/, libiberty/, libgcc/, libcpp/, libstdc++-v3/;
this part).

2024-10-24  Jakub Jelinek  <jakub@redhat.com>

include/
	* dyn-string.h: Remove trailing whitespace.
	* libiberty.h: Likewise.
	* xregex.h: Likewise.
	* splay-tree.h: Likewise.
	* partition.h: Likewise.
	* plugin-api.h: Likewise.
	* demangle.h: Likewise.
	* vtv-change-permission.h: Likewise.
	* fibheap.h: Likewise.
	* hsa_ext_image.h: Likewise.
	* hashtab.h: Likewise.
	* libcollector.h: Likewise.
	* sort.h: Likewise.
	* symcat.h: Likewise.
	* hsa_ext_amd.h: Likewise.
libcpp/
	* directives.cc: Remove trailing whitespace.
	* mkdeps.cc: Likewise.
	* line-map.cc: Likewise.
	* internal.h: Likewise.
	* files.cc: Likewise.
	* init.cc: Likewise.
	* makeucnid.cc: Likewise.
	* system.h: Likewise.
	* include/line-map.h: Likewise.
	* include/symtab.h: Likewise.
	* include/cpplib.h: Likewise.
	* expr.cc: Likewise.
	* charset.cc: Likewise.
	* macro.cc: Likewise.
	* errors.cc: Likewise.
	* lex.cc: Likewise.
	* traditional.cc: Likewise.
libgcc/
	* crtstuff.c: Remove trailing whitespace.
	* libgcov.h: Likewise.
	* config/alpha/crtfastmath.c: Likewise.
	* config/alpha/vms-gcc_shell_handler.c: Likewise.
	* config/alpha/vms-unwind.h: Likewise.
	* config/pa/linux-atomic.c: Likewise.
	* config/pa/linux-unwind.h: Likewise.
	* config/pa/quadlib.c: Likewise.
	* config/pa/fptr.c: Likewise.
	* config/s390/32/_fixsfdi.c: Likewise.
	* config/s390/32/_fixunssfdi.c: Likewise.
	* config/s390/32/_fixunsdfdi.c: Likewise.
	* config/c6x/pr-support.c: Likewise.
	* config/lm32/_udivsi3.c: Likewise.
	* config/lm32/libgcc_lm32.h: Likewise.
	* config/lm32/_udivmodsi4.c: Likewise.
	* config/lm32/_mulsi3.c: Likewise.
	* config/lm32/_modsi3.c: Likewise.
	* config/lm32/_umodsi3.c: Likewise.
	* config/lm32/_divsi3.c: Likewise.
	* config/darwin-crt3.c: Likewise.
	* config/msp430/mpy.c: Likewise.
	* config/ia64/tf-signs.c: Likewise.
	* config/ia64/fde-vms.c: Likewise.
	* config/ia64/unwind-ia64.c: Likewise.
	* config/ia64/vms-unwind.h: Likewise.
	* config/ia64/sfp-exceptions.c: Likewise.
	* config/ia64/quadlib.c: Likewise.
	* config/ia64/unwind-ia64.h: Likewise.
	* config/rl78/vregs.h: Likewise.
	* config/arm/bpabi.c: Likewise.
	* config/arm/unwind-arm.c: Likewise.
	* config/arm/pr-support.c: Likewise.
	* config/arm/linux-atomic.c: Likewise.
	* config/arm/bpabi-lib.h: Likewise.
	* config/frv/frvend.c: Likewise.
	* config/frv/cmovw.c: Likewise.
	* config/frv/frvbegin.c: Likewise.
	* config/frv/cmovd.c: Likewise.
	* config/frv/cmovh.c: Likewise.
	* config/aarch64/cpuinfo.c: Likewise.
	* config/i386/crtfastmath.c: Likewise.
	* config/i386/cygming-crtend.c: Likewise.
	* config/i386/32/tf-signs.c: Likewise.
	* config/i386/crtprec.c: Likewise.
	* config/i386/sfp-exceptions.c: Likewise.
	* config/i386/w32-unwind.h: Likewise.
	* config/m32r/initfini.c: Likewise.
	* config/sparc/crtfastmath.c: Likewise.
	* config/gcn/amdgcn_veclib.h: Likewise.
	* config/nios2/linux-atomic.c: Likewise.
	* config/nios2/linux-unwind.h: Likewise.
	* config/nios2/lib2-mul.c: Likewise.
	* config/nios2/lib2-nios2.h: Likewise.
	* config/xtensa/unwind-dw2-xtensa.c: Likewise.
	* config/rs6000/darwin-fallback.c: Likewise.
	* config/rs6000/ibm-ldouble.c: Likewise.
	* config/rs6000/sfp-machine.h: Likewise.
	* config/rs6000/darwin-asm.h: Likewise.
	* config/rs6000/darwin-crt2.c: Likewise.
	* config/rs6000/aix-unwind.h: Likewise.
	* config/rs6000/sfp-exceptions.c: Likewise.
	* config/gthr-vxworks.c: Likewise.
	* config/riscv/atomic.c: Likewise.
	* config/visium/memcpy.c: Likewise.
	* config/darwin-crt-tm.c: Likewise.
	* config/stormy16/lib2funcs.c: Likewise.
	* config/arc/ieee-754/divtab-arc-sf.c: Likewise.
	* config/arc/ieee-754/divtab-arc-df.c: Likewise.
	* config/arc/initfini.c: Likewise.
	* config/sol2/gmon.c: Likewise.
	* config/microblaze/divsi3_table.c: Likewise.
	* config/m68k/fpgnulib.c: Likewise.
	* libgcov-driver.c: Likewise.
	* unwind-dw2.c: Likewise.
	* fp-bit.c: Likewise.
	* dfp-bit.h: Likewise.
	* dfp-bit.c: Likewise.
	* libgcov-driver-system.c: Likewise.
libgcc/config/libbid/
	* _le_td.c: Remove trailing whitespace.
	* bid128_compare.c: Likewise.
	* bid_div_macros.h: Likewise.
	* bid64_to_bid128.c: Likewise.
	* bid64_to_uint32.c: Likewise.
	* bid128_to_uint64.c: Likewise.
	* bid64_div.c: Likewise.
	* bid128_round_integral.c: Likewise.
	* bid_binarydecimal.c: Likewise.
	* bid128_string.c: Likewise.
	* bid_flag_operations.c: Likewise.
	* bid128_to_int64.c: Likewise.
	* _mul_sd.c: Likewise.
	* bid64_mul.c: Likewise.
	* bid128_noncomp.c: Likewise.
	* _gt_dd.c: Likewise.
	* bid64_add.c: Likewise.
	* bid64_string.c: Likewise.
	* bid_from_int.c: Likewise.
	* bid128.c: Likewise.
	* _ge_dd.c: Likewise.
	* _ne_sd.c: Likewise.
	* _dd_to_td.c: Likewise.
	* _unord_sd.c: Likewise.
	* bid64_to_uint64.c: Likewise.
	* _gt_sd.c: Likewise.
	* _sd_to_td.c: Likewise.
	* _addsub_td.c: Likewise.
	* _ne_td.c: Likewise.
	* bid_dpd.c: Likewise.
	* bid128_add.c: Likewise.
	* bid128_next.c: Likewise.
	* _lt_sd.c: Likewise.
	* bid64_next.c: Likewise.
	* bid128_mul.c: Likewise.
	* _lt_dd.c: Likewise.
	* _ge_td.c: Likewise.
	* _unord_dd.c: Likewise.
	* bid64_sqrt.c: Likewise.
	* bid_sqrt_macros.h: Likewise.
	* bid64_fma.c: Likewise.
	* _sd_to_dd.c: Likewise.
	* bid_conf.h: Likewise.
	* bid64_noncomp.c: Likewise.
	* bid_gcc_intrinsics.h: Likewise.
	* _gt_td.c: Likewise.
	* _ge_sd.c: Likewise.
	* bid128_minmax.c: Likewise.
	* bid128_quantize.c: Likewise.
	* bid32_to_bid64.c: Likewise.
	* bid_round.c: Likewise.
	* _td_to_sd.c: Likewise.
	* bid_inline_add.h: Likewise.
	* bid128_fma.c: Likewise.
	* _eq_td.c: Likewise.
	* bid32_to_bid128.c: Likewise.
	* bid64_rem.c: Likewise.
	* bid128_2_str_tables.c: Likewise.
	* _mul_dd.c: Likewise.
	* _dd_to_sd.c: Likewise.
	* bid128_div.c: Likewise.
	* _lt_td.c: Likewise.
	* bid64_compare.c: Likewise.
	* bid64_to_int32.c: Likewise.
	* _unord_td.c: Likewise.
	* bid128_rem.c: Likewise.
	* bid_internal.h: Likewise.
	* bid64_to_int64.c: Likewise.
	* _eq_dd.c: Likewise.
	* _td_to_dd.c: Likewise.
	* bid128_to_int32.c: Likewise.
	* bid128_to_uint32.c: Likewise.
	* _ne_dd.c: Likewise.
	* bid64_quantize.c: Likewise.
	* _le_dd.c: Likewise.
	* bid64_round_integral.c: Likewise.
	* _le_sd.c: Likewise.
	* bid64_minmax.c: Likewise.
libgcc/config/avr/libf7/
	* f7-renames.h: Remove trailing whitespace.
libstdc++-v3/
	* include/debug/debug.h: Remove trailing whitespace.
	* include/parallel/base.h: Likewise.
	* include/parallel/types.h: Likewise.
	* include/parallel/settings.h: Likewise.
	* include/parallel/multiseq_selection.h: Likewise.
	* include/parallel/partition.h: Likewise.
	* include/parallel/random_number.h: Likewise.
	* include/parallel/find_selectors.h: Likewise.
	* include/parallel/partial_sum.h: Likewise.
	* include/parallel/list_partition.h: Likewise.
	* include/parallel/search.h: Likewise.
	* include/parallel/algorithmfwd.h: Likewise.
	* include/parallel/random_shuffle.h: Likewise.
	* include/parallel/multiway_mergesort.h: Likewise.
	* include/parallel/sort.h: Likewise.
	* include/parallel/algobase.h: Likewise.
	* include/parallel/numericfwd.h: Likewise.
	* include/parallel/multiway_merge.h: Likewise.
	* include/parallel/losertree.h: Likewise.
	* include/bits/basic_ios.h: Likewise.
	* include/bits/stringfwd.h: Likewise.
	* include/bits/ostream_insert.h: Likewise.
	* include/bits/stl_heap.h: Likewise.
	* include/bits/unordered_map.h: Likewise.
	* include/bits/hashtable_policy.h: Likewise.
	* include/bits/stl_iterator_base_funcs.h: Likewise.
	* include/bits/valarray_before.h: Likewise.
	* include/bits/regex.h: Likewise.
	* include/bits/postypes.h: Likewise.
	* include/bits/stl_iterator.h: Likewise.
	* include/bits/localefwd.h: Likewise.
	* include/bits/stl_algo.h: Likewise.
	* include/bits/ios_base.h: Likewise.
	* include/bits/stl_function.h: Likewise.
	* include/bits/basic_string.h: Likewise.
	* include/bits/hashtable.h: Likewise.
	* include/bits/valarray_after.h: Likewise.
	* include/bits/char_traits.h: Likewise.
	* include/bits/gslice.h: Likewise.
	* include/bits/locale_facets_nonio.h: Likewise.
	* include/bits/mask_array.h: Likewise.
	* include/bits/specfun.h: Likewise.
	* include/bits/random.h: Likewise.
	* include/bits/slice_array.h: Likewise.
	* include/bits/valarray_array.h: Likewise.
	* include/tr1/float.h: Likewise.
	* include/tr1/functional_hash.h: Likewise.
	* include/tr1/math.h: Likewise.
	* include/tr1/hashtable_policy.h: Likewise.
	* include/tr1/stdio.h: Likewise.
	* include/tr1/complex.h: Likewise.
	* include/tr1/stdbool.h: Likewise.
	* include/tr1/stdarg.h: Likewise.
	* include/tr1/inttypes.h: Likewise.
	* include/tr1/fenv.h: Likewise.
	* include/tr1/stdlib.h: Likewise.
	* include/tr1/wchar.h: Likewise.
	* include/tr1/tgmath.h: Likewise.
	* include/tr1/limits.h: Likewise.
	* include/tr1/wctype.h: Likewise.
	* include/tr1/stdint.h: Likewise.
	* include/tr1/ctype.h: Likewise.
	* include/tr1/random.h: Likewise.
	* include/tr1/shared_ptr.h: Likewise.
	* include/ext/mt_allocator.h: Likewise.
	* include/ext/sso_string_base.h: Likewise.
	* include/ext/debug_allocator.h: Likewise.
	* include/ext/vstring_fwd.h: Likewise.
	* include/ext/pointer.h: Likewise.
	* include/ext/pod_char_traits.h: Likewise.
	* include/ext/malloc_allocator.h: Likewise.
	* include/ext/vstring.h: Likewise.
	* include/ext/bitmap_allocator.h: Likewise.
	* include/ext/pool_allocator.h: Likewise.
	* include/ext/type_traits.h: Likewise.
	* include/ext/ropeimpl.h: Likewise.
	* include/ext/codecvt_specializations.h: Likewise.
	* include/ext/throw_allocator.h: Likewise.
	* include/ext/extptr_allocator.h: Likewise.
	* include/ext/atomicity.h: Likewise.
	* include/ext/concurrence.h: Likewise.
	* include/c_compatibility/wchar.h: Likewise.
	* include/c_compatibility/stdint.h: Likewise.
	* include/backward/hash_fun.h: Likewise.
	* include/backward/binders.h: Likewise.
	* include/backward/hashtable.h: Likewise.
	* include/backward/auto_ptr.h: Likewise.
	* libsupc++/eh_arm.cc: Likewise.
	* libsupc++/unwind-cxx.h: Likewise.
	* libsupc++/si_class_type_info.cc: Likewise.
	* libsupc++/vec.cc: Likewise.
	* libsupc++/class_type_info.cc: Likewise.
	* libsupc++/vmi_class_type_info.cc: Likewise.
	* libsupc++/guard_error.cc: Likewise.
	* libsupc++/bad_typeid.cc: Likewise.
	* libsupc++/eh_personality.cc: Likewise.
	* libsupc++/atexit_arm.cc: Likewise.
	* libsupc++/pmem_type_info.cc: Likewise.
	* libsupc++/vterminate.cc: Likewise.
	* libsupc++/eh_terminate.cc: Likewise.
	* libsupc++/bad_cast.cc: Likewise.
	* libsupc++/exception_ptr.h: Likewise.
	* libsupc++/eh_throw.cc: Likewise.
	* libsupc++/bad_alloc.cc: Likewise.
	* libsupc++/nested_exception.cc: Likewise.
	* libsupc++/pointer_type_info.cc: Likewise.
	* libsupc++/pbase_type_info.cc: Likewise.
	* libsupc++/bad_array_new.cc: Likewise.
	* libsupc++/pure.cc: Likewise.
	* libsupc++/eh_exception.cc: Likewise.
	* libsupc++/bad_array_length.cc: Likewise.
	* libsupc++/cxxabi.h: Likewise.
	* libsupc++/guard.cc: Likewise.
	* libsupc++/eh_catch.cc: Likewise.
	* libsupc++/cxxabi_forced.h: Likewise.
	* libsupc++/tinfo.h: Likewise.
This commit is contained in:
Jakub Jelinek 2024-10-25 09:44:10 +02:00 committed by Jakub Jelinek
parent 50332a4fdd
commit 45ab93d9af
306 changed files with 2872 additions and 2872 deletions

View File

@ -64,14 +64,14 @@ extern "C" {
/* Disable a limit on the depth of recursion in mangled strings.
Note if this limit is disabled then stack exhaustion is possible when
demangling pathologically complicated strings. Bug reports about stack
exhaustion when the option is enabled will be rejected. */
#define DMGL_NO_RECURSE_LIMIT (1 << 18)
exhaustion when the option is enabled will be rejected. */
#define DMGL_NO_RECURSE_LIMIT (1 << 18)
/* If DMGL_NO_RECURSE_LIMIT is not enabled, then this is the value used as
the maximum depth of recursion allowed. It should be enough for any
real-world mangled name. */
#define DEMANGLE_RECURSION_LIMIT 2048
/* Enumeration of possible demangling styles.
Lucid and ARM styles are still kept logically distinct, even though

View File

@ -3,7 +3,7 @@
Contributed by Mark Mitchell (mark@markmitchell.com).
This file is part of GCC.
GCC 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)

View File

@ -3,7 +3,7 @@
Contributed by Daniel Berlin (dan@cgsoftware.com).
This file is part of GCC.
GCC 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)
@ -33,8 +33,8 @@ Boston, MA 02110-1301, USA. */
Amortized and real worst case time for operations:
ExtractMin: O(lg n) amortized. O(n) worst case.
DecreaseKey: O(1) amortized. O(lg n) worst case.
Insert: O(2) amortized. O(1) actual.
DecreaseKey: O(1) amortized. O(lg n) worst case.
Insert: O(2) amortized. O(1) actual.
Union: O(1) amortized. O(1) actual. */
#ifndef _FIBHEAP_H_

View File

@ -1,4 +1,4 @@
/* An expandable hash tables datatype.
/* An expandable hash tables datatype.
Copyright (C) 1999-2024 Free Software Foundation, Inc.
Contributed by Vladimir Makarov (vmakarov@cygnus.com).
@ -56,7 +56,7 @@ typedef int (*htab_eq) (const void *, const void *);
/* Cleanup function called whenever a live element is removed from
the hash table. */
typedef void (*htab_del) (void *);
/* Function called by htab_traverse for each live element. The first
arg is the slot of the element (which can be passed to htab_clear_slot
if desired), the second arg is the auxiliary pointer handed to

View File

@ -683,7 +683,7 @@ typedef enum {
* following its memory access model. The actual placement may vary or migrate
* due to the system's NUMA policy and state, which is beyond the scope of
* HSA APIs.
*/
*/
typedef struct hsa_amd_memory_pool_s {
/**
* Opaque handle.
@ -758,7 +758,7 @@ typedef enum {
HSA_AMD_MEMORY_POOL_INFO_RUNTIME_ALLOC_ALIGNMENT = 7,
/**
* This memory_pool can be made directly accessible by all the agents in the
* system (::hsa_amd_agent_memory_pool_get_info does not return
* system (::hsa_amd_agent_memory_pool_get_info does not return
* ::HSA_AMD_MEMORY_POOL_ACCESS_NEVER_ALLOWED for any agent). The type of this
* attribute is bool.
*/

View File

@ -40,7 +40,7 @@
#ifdef __cplusplus
extern "C" {
#endif /*__cplusplus*/
#endif /*__cplusplus*/
/** \defgroup ext-images Images and Samplers
* @{
@ -253,7 +253,7 @@ typedef enum {
* @brief A fixed-size type used to represent ::hsa_ext_image_channel_type_t constants.
*/
typedef uint32_t hsa_ext_image_channel_type32_t;
/**
*
* @brief Channel order associated with the elements of an image. See
@ -289,7 +289,7 @@ typedef enum {
* @brief A fixed-size type used to represent ::hsa_ext_image_channel_order_t constants.
*/
typedef uint32_t hsa_ext_image_channel_order32_t;
/**
* @brief Image format.
@ -1156,7 +1156,7 @@ typedef enum {
* @brief A fixed-size type used to represent ::hsa_ext_sampler_coordinate_mode_t constants.
*/
typedef uint32_t hsa_ext_sampler_coordinate_mode32_t;
/**
* @brief Sampler filter modes. See the <em>Filter Mode</em> section
@ -1432,9 +1432,9 @@ typedef struct hsa_ext_images_1_pfn_s {
} hsa_ext_images_1_pfn_t;
/** @} */
#ifdef __cplusplus
} // end extern "C" block
#endif /*__cplusplus*/
#endif /*__cplusplus*/
#endif

View File

@ -75,7 +75,7 @@ extern "C"
/* Define the macros that actually get inserted in the caller's code. */
#define collector_sample(x) (collector_sample ? collector_sample(x), 0 : 0)
#define collector_pause() (collector_pause ? collector_pause(), 0 : 0)
#define collector_resume() (collector_resume ? collector_resume(),0 : 0
#define collector_resume() (collector_resume ? collector_resume(),0 : 0
#define collector_thread_pause(tid) \
(collector_thread_pause ? collector_thread_pause(tid), 0 : 0)
#define collector_thread_resume(tid) \

View File

@ -1,7 +1,7 @@
/* Function declarations for libiberty.
Copyright (C) 1997-2024 Free Software Foundation, Inc.
Note - certain prototypes declared in this header file are for
functions whoes implementation copyright does not belong to the
FSF. Those prototypes are present in this file for reference
@ -23,7 +23,7 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street - Fifth Floor,
Boston, MA 02110-1301, USA.
Written by Cygnus Support, 1994.
The libiberty library provides a number of functions which are
@ -108,7 +108,7 @@ extern int countargv (char * const *);
#if defined (__GNU_LIBRARY__ ) || defined (__linux__) \
|| defined (__FreeBSD__) || defined (__OpenBSD__) || defined (__NetBSD__) \
|| defined (__CYGWIN__) || defined (__CYGWIN32__) || defined (__MINGW32__) \
|| defined (__DragonFly__) || defined (HAVE_DECL_BASENAME)
|| defined (__DragonFly__) || defined (HAVE_DECL_BASENAME)
extern char *basename (const char *) ATTRIBUTE_RETURNS_NONNULL ATTRIBUTE_NONNULL(1);
#else
/* Do not allow basename to be used if there is no prototype seen. We
@ -210,7 +210,7 @@ extern char * getpwd (void);
#ifdef __MINGW32__
/* Forward declaration to avoid #include <sys/time.h>. */
struct timeval;
extern int gettimeofday (struct timeval *, void *);
extern int gettimeofday (struct timeval *, void *);
#endif
/* Get the amount of time the process has run, in microseconds. */
@ -460,7 +460,7 @@ extern struct pex_obj *pex_init (int flags, const char *pname,
/* Capture stderr to a pipe. The output can be read by
calling pex_read_err and reading from the returned
FILE object. This flag may be specified only for
the last program in a pipeline.
the last program in a pipeline.
This flag is supported only on Unix and Windows. */
#define PEX_STDERR_TO_PIPE 0x40

View File

@ -56,7 +56,7 @@ struct partition_elem
unsigned class_count;
};
typedef struct partition_def
typedef struct partition_def
{
/* The number of elements in this partition. */
int num_elements;

View File

@ -599,7 +599,7 @@ struct ld_plugin_tv
ld_plugin_get_input_section_contents tv_get_input_section_contents;
ld_plugin_update_section_order tv_update_section_order;
ld_plugin_allow_section_ordering tv_allow_section_ordering;
ld_plugin_allow_unique_segment_for_sections tv_allow_unique_segment_for_sections;
ld_plugin_allow_unique_segment_for_sections tv_allow_unique_segment_for_sections;
ld_plugin_unique_segment_for_sections tv_unique_segment_for_sections;
ld_plugin_get_input_section_alignment tv_get_input_section_alignment;
ld_plugin_get_input_section_size tv_get_input_section_size;

View File

@ -3,7 +3,7 @@
Contributed by Mark Mitchell <mark@codesourcery.com>.
This file is part of GCC.
GCC 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)
@ -44,5 +44,5 @@ extern void sort_pointers (size_t, void **, void **);
#endif /* SORT_H */

View File

@ -1,9 +1,9 @@
/* A splay-tree datatype.
/* A splay-tree datatype.
Copyright (C) 1998-2024 Free Software Foundation, Inc.
Contributed by Mark Mitchell (mark@markmitchell.com).
This file is part of GCC.
GCC 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)
@ -22,7 +22,7 @@
/* For an easily readable description of splay-trees, see:
Lewis, Harry R. and Denenberg, Larry. Data Structures and Their
Algorithms. Harper-Collins, Inc. 1991.
Algorithms. Harper-Collins, Inc. 1991.
The major feature of splay trees is that all basic tree operations
are amortized O(log n) time for a tree with n nodes. */

View File

@ -11,7 +11,7 @@
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 this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
@ -50,6 +50,6 @@
bar", "XSTRING(foo)", to yield "bar". Be aware that this only
works for __STDC__, not for traditional C which will still resolve
to "foo". */
#define XSTRING(s) STRINGX(s)
#define XSTRING(s) STRINGX(s)
#endif /* SYM_CAT_H */

View File

@ -1,7 +1,7 @@
/* Copyright (C) 2013-2024 Free Software Foundation, Inc.
This file is part of GCC.
modify it under the terms of the GNU Library General Public License
as published by the Free Software Foundation; either version 2, or
(at your option) any later version.
@ -45,7 +45,7 @@ extern void __VLTChangePermission (int);
#ifdef BIG_PAGE_SIZE
/* TODO - Replace '4096' below with correct big page size. */
#define VTV_PAGE_SIZE 4096
#else
#else
#if defined(__sun__) && defined(__svr4__) && defined(__sparc__)
#define VTV_PAGE_SIZE 8192
#elif defined(__loongarch_lp64)

View File

@ -4,7 +4,7 @@
#ifndef _XREGEX_H
#define _XREGEX_H 1
# define regfree xregfree
# define regfree xregfree
# define regexec xregexec
# define regcomp xregcomp
# define regerror xregerror

View File

@ -1826,7 +1826,7 @@ _cpp_valid_ucn (cpp_reader *pfile, const uchar **pstr,
(int) (str - base), base);
result = 1;
}
else if (identifier_pos && result == 0x24
else if (identifier_pos && result == 0x24
&& CPP_OPTION (pfile, dollars_in_ident)
/* In C++26 when dollars are allowed in identifiers,
we should still reject \u0024 as $ is part of the basic
@ -2994,7 +2994,7 @@ _cpp_interpret_identifier (cpp_reader *pfile, const uchar *id, size_t len)
uchar * buf = (uchar *) alloca (len + 1);
uchar * bufp = buf;
size_t idp;
for (idp = 0; idp < len; idp++)
if (id[idp] != '\\')
*bufp++ = id[idp];
@ -3060,7 +3060,7 @@ _cpp_interpret_identifier (cpp_reader *pfile, const uchar *id, size_t len)
}
}
return CPP_HASHNODE (ht_lookup (pfile->hash_table,
return CPP_HASHNODE (ht_lookup (pfile->hash_table,
buf, bufp - buf, HT_ALLOC));
}
@ -3101,7 +3101,7 @@ cpp_check_utf8_bom (const char *data, size_t data_length)
PFILE is only used to generate diagnostics; setting it to NULL suppresses
diagnostics, and causes a return of NULL if there was any error instead. */
uchar *
uchar *
_cpp_convert_input (cpp_reader *pfile, const char *input_charset,
uchar *input, size_t size, size_t len,
const unsigned char **buffer_start, off_t *st_size)

View File

@ -513,7 +513,7 @@ _cpp_handle_directive (cpp_reader *pfile, bool indented)
compiled with -save-temps, we recognize directives in
-fpreprocessed mode only if the # is in column 1. macro.cc
puts a space in front of any '#' at the start of a macro.
We exclude the -fdirectives-only case because macro expansion
has not been performed yet, and block comments can cause spaces
to precede the directive. */
@ -915,8 +915,8 @@ do_include_common (cpp_reader *pfile, enum include_type type)
/* Prevent #include recursion. */
if (pfile->line_table->depth >= CPP_OPTION (pfile, max_include_depth))
cpp_error (pfile,
CPP_DL_ERROR,
cpp_error (pfile,
CPP_DL_ERROR,
"%<#include%> nested depth %u exceeds maximum of %u"
" (use %<-fmax-include-depth=DEPTH%> to increase the maximum)",
pfile->line_table->depth,
@ -1891,7 +1891,7 @@ cpp_register_deferred_pragma (cpp_reader *pfile, const char *space,
entry->allow_expansion = allow_expansion;
entry->u.ident = ident;
}
}
}
/* Register the pragmas the preprocessor itself handles. */
void
@ -2447,7 +2447,7 @@ destringize_and_run (cpp_reader *pfile, const cpp_string *in,
pfile->directive = save_directive;
/* We always insert at least one token, the directive result. It'll
either be a CPP_PADDING or a CPP_PRAGMA. In the later case, we
either be a CPP_PADDING or a CPP_PRAGMA. In the later case, we
need to insert *all* of the tokens, including the CPP_PRAGMA_EOL. */
/* If we're not handling the pragma internally, read all of the tokens from

View File

@ -200,7 +200,7 @@ cpp_diagnostic_with_line (cpp_reader * pfile, enum cpp_diagnostic_level level,
const char *msgid, va_list *ap)
{
bool ret;
if (!pfile->cb.diagnostic)
abort ();
/* Don't override note locations, which will likely make the note

View File

@ -860,7 +860,7 @@ cpp_classify_number (cpp_reader *pfile, const cpp_token *token,
if ((result & CPP_N_WIDTH) == CPP_N_LARGE
&& CPP_OPTION (pfile, cpp_warn_long_long))
{
const char *message = CPP_OPTION (pfile, cplusplus)
const char *message = CPP_OPTION (pfile, cplusplus)
? N_("use of C++11 long long integer constant")
: N_("use of C99 long long integer constant");
@ -1723,7 +1723,7 @@ reduce (cpp_reader *pfile, struct op *top, enum cpp_ttype op)
case CPP_OPEN_PAREN:
if (op != CPP_CLOSE_PAREN)
{
cpp_error_with_line (pfile, CPP_DL_ERROR,
cpp_error_with_line (pfile, CPP_DL_ERROR,
top->token->src_loc,
0, "missing %<)%> in expression");
return 0;

View File

@ -278,7 +278,7 @@ open_file (_cpp_file *file)
/* The call to stat may have reset errno. */
errno = EACCES;
}
#endif
#endif
else if (errno == ENOTDIR)
errno = ENOENT;
@ -375,7 +375,7 @@ maybe_shorter_path (const char * file)
{
return file2;
}
else
else
{
free (file2);
return NULL;
@ -461,7 +461,7 @@ find_file_in_dir (cpp_reader *pfile, _cpp_file *file, bool *invalid_pch,
}
else
{
file->err_no = ENOENT;
file->err_no = ENOENT;
file->path = NULL;
}

View File

@ -266,7 +266,7 @@ struct GTY(()) cpp_token {
{
/* An identifier. */
struct cpp_identifier GTY ((tag ("CPP_TOKEN_FLD_NODE"))) node;
/* Inherit padding from this token. */
cpp_token * GTY ((tag ("CPP_TOKEN_FLD_SOURCE"))) source;
@ -325,7 +325,7 @@ enum cpp_normalize_level {
normalized_none
};
enum cpp_main_search
enum cpp_main_search
{
CMS_none, /* A regular source file. */
CMS_header, /* Is a directly-specified header file (eg PCH or
@ -477,7 +477,7 @@ struct cpp_options
/* Nonzero means we're looking at already preprocessed code, so don't
bother trying to do macro expansion and whatnot. */
unsigned char preprocessed;
/* Nonzero means we are going to emit debugging logs during
preprocessing. */
unsigned char debug;
@ -874,7 +874,7 @@ struct cpp_dir
/* Is this a user-supplied directory? */
bool user_supplied_p;
/* The canonicalized NAME as determined by lrealpath. This field
/* The canonicalized NAME as determined by lrealpath. This field
is only used by hosts that lack reliable inode numbers. */
char *canonical_name;
@ -904,7 +904,7 @@ enum cpp_macro_kind {
/* Each macro definition is recorded in a cpp_macro structure.
Variadic macros cannot occur with traditional cpp. */
struct GTY(()) cpp_macro {
union cpp_parm_u
union cpp_parm_u
{
/* Parameters, if any. If parameter names use extended identifiers,
the original spelling of those identifiers, not the canonical
@ -1245,7 +1245,7 @@ inline location_t cpp_macro_definition_location (cpp_hashnode *node)
return macro ? macro->line : 0;
}
/* Return an idempotent time stamp (possibly from SOURCE_DATE_EPOCH). */
enum class CPP_time_kind
enum class CPP_time_kind
{
FIXED = -1, /* Fixed time via source epoch. */
DYNAMIC = -2, /* Dynamic via time(2). */
@ -1280,7 +1280,7 @@ extern cppchar_t cpp_host_to_exec_charset (cpp_reader *, cppchar_t);
The text is the same as the command line argument. */
extern void cpp_define (cpp_reader *, const char *);
extern void cpp_define_unused (cpp_reader *, const char *);
extern void cpp_define_formatted (cpp_reader *pfile,
extern void cpp_define_formatted (cpp_reader *pfile,
const char *fmt, ...) ATTRIBUTE_PRINTF_2;
extern void cpp_define_formatted_unused (cpp_reader *pfile,
const char *fmt,

View File

@ -392,7 +392,7 @@ struct GTY((tag ("0"), desc ("MAP_ORDINARY_P (&%h) ? 1 : 2"))) line_map {
/* An ordinary line map encodes physical source locations. Those
physical source locations are called "spelling locations".
Physical source file TO_FILE at line TO_LINE at column 0 is represented
by the logical START_LOCATION. TO_LINE+L at column C is represented by
START_LOCATION+(L*(1<<m_column_and_range_bits))+(C*1<<m_range_bits), as
@ -457,7 +457,7 @@ struct cpp_hashnode;
/* A macro line map encodes location of tokens coming from a macro
expansion.
The offset from START_LOCATION is used to index into
MACRO_LOCATIONS; this holds the original location of the token. */
struct GTY((tag ("2"))) line_map_macro : public line_map {

View File

@ -52,7 +52,7 @@ struct ht
hashnode *entries;
/* Call back, allocate a node. */
hashnode (*alloc_node) (cpp_hash_table *);
/* Call back, allocate something that hangs off a node like a cpp_macro.
/* Call back, allocate something that hangs off a node like a cpp_macro.
NULL means use the usual allocator. */
void * (*alloc_subobject) (size_t);

View File

@ -883,7 +883,7 @@ read_original_directory (cpp_reader *pfile)
/* Smash the string directly, it's dead at this point */
char *smashy = (char *)text;
smashy[len - 3] = 0;
pfile->cb.dir_change (pfile, smashy + 1);
}

View File

@ -304,7 +304,7 @@ struct spec_nodes
cpp_hashnode *n__VA_OPT__; /* C++ vararg macros */
enum {M_EXPORT, M_MODULE, M_IMPORT, M__IMPORT, M_HWM};
/* C++20 modules, only set when module_directives is in effect.
incoming variants [0], outgoing ones [1] */
cpp_hashnode *n_modules[M_HWM][2];
@ -854,7 +854,7 @@ extern size_t _cpp_replacement_text_len (const cpp_macro *);
It starts initialized to all zeros, and at the end
'level' is the normalization level of the sequence. */
struct normalize_state
struct normalize_state
{
/* The previous starter character. */
cppchar_t previous;

View File

@ -104,7 +104,7 @@ add_line_note (cpp_buffer *buffer, const uchar *pos, unsigned int type)
path below. Since this loop is very hot it's worth doing these kinds
of optimizations.
One of the paths through the ifdefs should provide
One of the paths through the ifdefs should provide
const uchar *search_line_fast (const uchar *s, const uchar *end);
@ -168,7 +168,7 @@ static inline word_type
acc_char_cmp (word_type val, word_type c)
{
#if defined(__GNUC__) && defined(__alpha__)
/* We can get exact results using a compare-bytes instruction.
/* We can get exact results using a compare-bytes instruction.
Get (val == c) via (0 >= (val ^ c)). */
return __builtin_alpha_cmpbge (0, val ^ c);
#else
@ -215,7 +215,7 @@ acc_char_index (word_type cmp ATTRIBUTE_UNUSED,
}
/* A version of the fast scanner using bit fiddling techniques.
For 32-bit words, one would normally perform 16 comparisons and
16 branches. With this algorithm one performs 24 arithmetic
operations and one branch. Whether this is faster with a 32-bit
@ -236,7 +236,7 @@ search_line_acc_char (const uchar *s, const uchar *end ATTRIBUTE_UNUSED)
unsigned int misalign;
const word_type *p;
word_type val, t;
/* Align the buffer. Mask out any bytes from before the beginning. */
p = (word_type *)((uintptr_t)s & -sizeof(word_type));
val = *p;
@ -433,20 +433,20 @@ search_line_fast (const uchar *s, const uchar *end ATTRIBUTE_UNUSED)
typedef __attribute__((altivec(vector))) unsigned char vc;
const vc repl_nl = {
'\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n',
'\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n',
'\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n'
};
const vc repl_cr = {
'\r', '\r', '\r', '\r', '\r', '\r', '\r', '\r',
'\r', '\r', '\r', '\r', '\r', '\r', '\r', '\r',
'\r', '\r', '\r', '\r', '\r', '\r', '\r', '\r'
};
const vc repl_bs = {
'\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\',
'\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\',
'\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\'
};
const vc repl_qm = {
'?', '?', '?', '?', '?', '?', '?', '?',
'?', '?', '?', '?', '?', '?', '?', '?',
'?', '?', '?', '?', '?', '?', '?', '?',
'?', '?', '?', '?', '?', '?', '?', '?',
};
const vc zero = { 0 };
@ -537,20 +537,20 @@ search_line_fast (const uchar *s, const uchar *end ATTRIBUTE_UNUSED)
typedef __attribute__((altivec(vector))) unsigned char vc;
const vc repl_nl = {
'\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n',
'\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n',
'\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n'
};
const vc repl_cr = {
'\r', '\r', '\r', '\r', '\r', '\r', '\r', '\r',
'\r', '\r', '\r', '\r', '\r', '\r', '\r', '\r',
'\r', '\r', '\r', '\r', '\r', '\r', '\r', '\r'
};
const vc repl_bs = {
'\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\',
'\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\',
'\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\'
};
const vc repl_qm = {
'?', '?', '?', '?', '?', '?', '?', '?',
'?', '?', '?', '?', '?', '?', '?', '?',
'?', '?', '?', '?', '?', '?', '?', '?',
'?', '?', '?', '?', '?', '?', '?', '?',
};
const vc ones = {
-1, -1, -1, -1, -1, -1, -1, -1,
@ -786,8 +786,8 @@ search_line_fast (const uchar *s, const uchar *end ATTRIBUTE_UNUSED)
l = vpadd_u8 (vget_low_u8 (t), vget_high_u8 (t));
m = vpaddl_u8 (l);
n = vpaddl_u16 (m);
found = vget_lane_u32 ((uint32x2_t) vorr_u64 ((uint64x1_t) n,
found = vget_lane_u32 ((uint32x2_t) vorr_u64 ((uint64x1_t) n,
vshr_n_u64 ((uint64x1_t) n, 24)), 0);
found &= mask;
}
@ -2022,7 +2022,7 @@ name_p (cpp_reader *pfile, const cpp_string *string)
/* After parsing an identifier or other sequence, produce a warning about
sequences not in NFC/NFKC. */
static void
warn_about_normalization (cpp_reader *pfile,
warn_about_normalization (cpp_reader *pfile,
const cpp_token *token,
const struct normalize_state *s,
bool identifier)
@ -2587,7 +2587,7 @@ lex_raw_string (cpp_reader *pfile, cpp_token *token, const uchar *base)
++note;
lit_accum accum;
uchar prefix[17];
unsigned prefix_len = 0;
enum Phase
@ -2998,14 +2998,14 @@ cpp_get_comments (cpp_reader *pfile)
}
/* Append a comment to the end of the comment table. */
static void
store_comment (cpp_reader *pfile, cpp_token *token)
static void
store_comment (cpp_reader *pfile, cpp_token *token)
{
int len;
if (pfile->comments.allocated == 0)
{
pfile->comments.allocated = 256;
pfile->comments.allocated = 256;
pfile->comments.entries = (cpp_comment *) xmalloc
(pfile->comments.allocated * sizeof (cpp_comment));
}
@ -3021,7 +3021,7 @@ store_comment (cpp_reader *pfile, cpp_token *token)
len = token->val.str.len;
/* Copy comment. Note, token may not be NULL terminated. */
pfile->comments.entries[pfile->comments.count].comment =
pfile->comments.entries[pfile->comments.count].comment =
(char *) xmalloc (sizeof (char) * (len + 1));
memcpy (pfile->comments.entries[pfile->comments.count].comment,
token->val.str.text, len);
@ -3588,7 +3588,7 @@ cpp_maybe_module_directive (cpp_reader *pfile, cpp_token *result)
if (_cpp_defined_macro_p (node)
&& _cpp_maybe_notify_macro_use (pfile, node, tok->src_loc)
&& !cpp_fun_like_macro_p (node))
cpp_error_with_line (pfile, CPP_DL_ERROR, tok->src_loc, 0,
cpp_error_with_line (pfile, CPP_DL_ERROR, tok->src_loc, 0,
"module control-line %qs cannot be"
" an object-like macro",
NODE_NAME (node));
@ -3991,7 +3991,7 @@ _cpp_lex_direct (cpp_reader *pfile)
/* A potential block or line comment. */
comment_start = buffer->cur;
c = *buffer->cur;
if (c == '*')
{
if (_cpp_skip_block_comment (pfile))
@ -4379,21 +4379,21 @@ utf8_to_ucn (unsigned char *buffer, const unsigned char *name)
int ucn_len_c;
unsigned t;
unsigned long utf32;
/* Compute the length of the UTF-8 sequence. */
for (t = *name; t & 0x80; t <<= 1)
ucn_len++;
utf32 = *name & (0x7F >> ucn_len);
for (ucn_len_c = 1; ucn_len_c < ucn_len; ucn_len_c++)
{
utf32 = (utf32 << 6) | (*++name & 0x3F);
/* Ill-formed UTF-8. */
if ((*name & ~0x3F) != 0x80)
abort ();
}
*buffer++ = '\\';
*buffer++ = 'U';
for (j = 7; j >= 0; j--)
@ -4418,7 +4418,7 @@ _cpp_spell_ident_ucns (unsigned char *buffer, cpp_hashnode *ident)
{
size_t i;
const unsigned char *name = NODE_NAME (ident);
for (i = 0; i < NODE_LEN (ident); i++)
if (name[i] & ~0x7F)
{
@ -4492,7 +4492,7 @@ cpp_spell_token (cpp_reader *pfile, const cpp_token *token,
freed when the reader is destroyed. Useful for diagnostics. */
unsigned char *
cpp_token_as_text (cpp_reader *pfile, const cpp_token *token)
{
{
unsigned int len = cpp_token_len (token) + 1;
unsigned char *start = _cpp_unaligned_alloc (pfile, len), *end;
@ -5154,7 +5154,7 @@ do_peek_module (cpp_reader *pfile, unsigned char c,
preprocessing tokens, or module followed by identifier, ':' or
';' preprocessing tokens. */
unsigned char p = *peek++;
/* A character literal is ... single quotes, ... optionally preceded
by u8, u, U, or L */
/* A string-literal is a ... double quotes, optionally prefixed by
@ -5310,7 +5310,7 @@ cpp_directive_only_process (cpp_reader *pfile,
goto next_line;
}
goto dflt;
case '#':
if (bol)
{
@ -5648,7 +5648,7 @@ cpp_directive_only_process (cpp_reader *pfile,
bad_string:
cpp_error_with_line (pfile, CPP_DL_ERROR, sloc, 0,
"unterminated literal");
done_string:
raw = false;
lwm = pos - 1;

View File

@ -468,7 +468,7 @@ line_map_new_raw (line_maps *set, bool macro_p, unsigned num)
{
unsigned num_maps_allocated = LINEMAPS_ALLOCATED (set, macro_p);
unsigned num_maps_used = LINEMAPS_USED (set, macro_p);
if (num > num_maps_allocated - num_maps_used)
{
/* We need more space! */
@ -494,7 +494,7 @@ line_map_new_raw (line_maps *set, bool macro_p, unsigned num)
/* We are going to execute some dance to try to reduce the
overhead of the memory allocator, in case we are using the
ggc-page.cc one.
The actual size of memory we are going to get back from the
allocator may well be larger than what we ask for. Use this
hook to find what that size is. */
@ -1080,7 +1080,7 @@ linemap_position_for_loc_and_offset (line_maps *set,
if (column >= (1u << (map->m_column_and_range_bits - map->m_range_bits)))
return loc;
location_t r =
location_t r =
linemap_position_for_line_and_column (set, map, line, column);
if (linemap_assert_fails (r <= set->highest_location)
|| linemap_assert_fails (map == linemap_lookup (set, r)))
@ -1277,7 +1277,7 @@ linemap_macro_map_loc_unwind_toward_spelling (const line_maps *set,
linemap_assert (token_no < MACRO_MAP_NUM_MACRO_TOKENS (map));
location = MACRO_MAP_LOCATIONS (map)[2 * token_no];
return location;
}
@ -1580,7 +1580,7 @@ linemap_macro_loc_to_spelling_point (const line_maps *set,
macro. Otherwise, return LOCATION. SET is the set of maps
location come from. ORIGINAL_MAP is an output parm. If non NULL,
the function sets *ORIGINAL_MAP to the ordinary (non-macro) map the
returned location comes from.
returned location comes from.
This is a subroutine of linemap_resolve_location. */
@ -1768,14 +1768,14 @@ linemap_location_from_macro_definition_p (const line_maps *set,
}
}
/*
/*
Suppose that LOC is the virtual location of a token T coming from
the expansion of a macro M. This function then steps up to get the
location L of the point where M got expanded. If L is a spelling
location inside a macro expansion M', then this function returns
the locus of the point where M' was expanded. Said otherwise, this
function returns the location of T in the context that triggered
the expansion of M.
the expansion of M.
*LOC_MAP must be set to the map of LOC. This function then sets it
to the map of the returned location. */

View File

@ -586,9 +586,9 @@ _cpp_builtin_macro_text (cpp_reader *pfile, cpp_hashnode *node,
struct _cpp_file *file = cpp_get_file (pbuffer);
if (file)
{
/* Generate __TIMESTAMP__ string, that represents
the date and time of the last modification
of the current source file. The string constant
/* Generate __TIMESTAMP__ string, that represents
the date and time of the last modification
of the current source file. The string constant
looks like "Sun Sep 16 01:03:52 1973". */
struct tm *tb = NULL;
struct stat *st = _cpp_get_file_stat (file);
@ -699,7 +699,7 @@ _cpp_builtin_macro_text (cpp_reader *pfile, cpp_hashnode *node,
{
cpp_errno (pfile, CPP_DL_WARNING,
"could not determine date and time");
pfile->date = UC"\"??? ?? ????\"";
pfile->time = UC"\"??:??:??\"";
}
@ -777,7 +777,7 @@ _cpp_builtin_macro_text (cpp_reader *pfile, cpp_hashnode *node,
sprintf ((char *) result, "%u", number);
}
return result;
return result;
}
/* Get an idempotent date. Either the cached value, the value from
@ -1477,7 +1477,7 @@ funlike_invocation_p (cpp_reader *pfile, cpp_hashnode *node,
pfile->state.parsing_args = 2;
return collect_args (pfile, node, pragma_buff, num_args);
}
/* Back up. A CPP_EOF is either an EOF from an argument we're
expanding, or a fake one from lex_direct. We want to backup the
former, but not the latter. We may have skipped padding, in
@ -1784,7 +1784,7 @@ arg_token_ptr_at (const macro_arg *arg, size_t index,
case MACRO_ARG_TOKEN_NORMAL:
tokens_ptr = arg->first;
break;
case MACRO_ARG_TOKEN_STRINGIFIED:
case MACRO_ARG_TOKEN_STRINGIFIED:
tokens_ptr = (const cpp_token **) &arg->stringified;
break;
case MACRO_ARG_TOKEN_EXPANDED:
@ -1902,12 +1902,12 @@ macro_arg_token_iter_get_location (const macro_arg_token_iter *it)
want each tokens resulting from function-like macro arguments
expansion to have a different location or not.
E.g, consider this function-like macro:
E.g, consider this function-like macro:
#define M(x) x - 3
Then consider us "calling" it (and thus expanding it) like:
M(1+4)
It will be expanded into:
@ -2045,7 +2045,7 @@ replace_args (cpp_reader *pfile, cpp_hashnode *node, cpp_macro *macro,
location that records many things like the locus of the expansion
point as well as the original locus inside the definition of the
macro. This location is called a virtual location.
So the buffer BUFF holds a set of cpp_token*, and the buffer
VIRT_LOCS holds the virtual locations of the tokens held by BUFF.
@ -2053,7 +2053,7 @@ replace_args (cpp_reader *pfile, cpp_hashnode *node, cpp_macro *macro,
context, when the latter is pushed. The memory allocated to
store the tokens and their locations is going to be freed once
the context of macro expansion is popped.
As far as tokens are concerned, the memory overhead of
-ftrack-macro-expansion is proportional to the number of
macros that get expanded multiplied by sizeof (location_t).
@ -2400,7 +2400,7 @@ replace_args (cpp_reader *pfile, cpp_hashnode *node, cpp_macro *macro,
" in ISO C++98",
NODE_NAME (node), src->val.macro_arg.arg_no);
else if (CPP_OPTION (pfile, cpp_warn_c90_c99_compat))
cpp_pedwarning (pfile,
cpp_pedwarning (pfile,
CPP_OPTION (pfile, cpp_warn_c90_c99_compat) > 0
? CPP_W_C90_C99_COMPAT : CPP_W_PEDANTIC,
"invoking macro %s argument %d: "
@ -2693,7 +2693,7 @@ tokens_buff_add_token (_cpp_buff *buffer,
{
const cpp_token **result;
location_t *virt_loc_dest = NULL;
unsigned token_index =
unsigned token_index =
(BUFF_FRONT (buffer) - buffer->base) / sizeof (cpp_token *);
/* Abort if we pass the end the buffer. */
@ -2840,7 +2840,7 @@ in_macro_expansion_p (cpp_reader *pfile)
if (pfile == NULL)
return false;
return (pfile->about_to_expand_macro_p
return (pfile->about_to_expand_macro_p
|| macro_of_context (pfile->context));
}
@ -2944,7 +2944,7 @@ consume_next_token_from_context (cpp_reader *pfile,
*location = (*token)->src_loc;
FIRST (c).token++;
}
else if ((c)->tokens_kind == TOKENS_KIND_INDIRECT)
else if ((c)->tokens_kind == TOKENS_KIND_INDIRECT)
{
*token = *FIRST (c).ptoken;
*location = (*token)->src_loc;
@ -3205,7 +3205,7 @@ cpp_get_token_1 (cpp_reader *pfile, location_t *location)
_cpp_extend_buff (pfile, &pfile->u_buff, len + 1 + dotme * 2);
unsigned char *buf = BUFF_FRONT (pfile->u_buff);
size_t pos = 0;
if (dotme)
{
buf[pos++] = '.';
@ -3221,7 +3221,7 @@ cpp_get_token_1 (cpp_reader *pfile, location_t *location)
tmp->type = CPP_HEADER_NAME;
XDELETEVEC (fname);
result = tmp;
}
}
@ -3475,7 +3475,7 @@ _cpp_save_parameter (cpp_reader *pfile, unsigned n, cpp_hashnode *node,
= XRESIZEVEC (unsigned char, pfile->macro_buffer, len);
pfile->macro_buffer_len = len;
}
macro_arg_saved_data *saved = (macro_arg_saved_data *)pfile->macro_buffer;
saved[n].canonical_node = node;
saved[n].value = node->value;

View File

@ -64,7 +64,7 @@ read_ucnid (const char *fname)
{
FILE *f = fopen (fname, "r");
unsigned fl = 0;
if (!f)
fail ("opening ucnid.tab");
for (;;)
@ -130,7 +130,7 @@ static void
read_table (char *fname)
{
FILE * f = fopen (fname, "r");
if (!f)
fail ("opening UnicodeData.txt");
for (;;)
@ -163,12 +163,12 @@ read_table (char *fname)
combining_value[codepoint] = strtoul (l, &l, 10);
if (*l++ != ';')
fail ("parsing UnicodeData.txt, junk after combining class");
/* Skip over bidi value. */
do {
l++;
} while (*l != ';');
/* Decomposition mapping. */
decomp_useful = flags[codepoint];
if (*++l == '<') /* Compatibility mapping. */
@ -204,7 +204,7 @@ static void
read_derived (const char *fname)
{
FILE * f = fopen (fname, "r");
if (!f)
fail ("opening DerivedNormalizationProps.txt");
for (;;)
@ -221,7 +221,7 @@ read_derived (const char *fname)
maybe_not_NFC_p = (strstr (line, "; NFC_QC; M") != NULL);
if (! not_NFC_p && ! not_NFKC_p && ! maybe_not_NFC_p)
continue;
start = strtoul (line, &l, 16);
if (l == line)
fail ("parsing DerivedNormalizationProps.txt, reading start");
@ -233,7 +233,7 @@ read_derived (const char *fname)
end = start;
while (start <= end)
flags[start++] |= ((not_NFC_p ? not_NFC : 0)
flags[start++] |= ((not_NFC_p ? not_NFC : 0)
| (not_NFKC_p ? not_NFKC : 0)
| (maybe_not_NFC_p ? maybe_not_NFC : 0)
);
@ -250,7 +250,7 @@ static void
read_derivedcore (char *fname)
{
FILE * f = fopen (fname, "r");
if (!f)
fail ("opening DerivedCoreProperties.txt");
for (;;)
@ -269,7 +269,7 @@ read_derivedcore (char *fname)
fail ("parsing DerivedCoreProperties.txt, reading code point");
if (codepoint_start > MAX_CODE_POINT)
fail ("parsing DerivedCoreProperties.txt, code point too large");
if (*l == '.' && l[1] == '.')
{
char *l2 = l + 2;
@ -324,7 +324,7 @@ write_table (void)
unsigned char last_combine = combining_value[0];
printf ("static const struct ucnrange ucnranges[] = {\n");
for (i = 1; i <= NUM_CODE_POINTS; i++)
if (i == NUM_CODE_POINTS
|| (flags[i] != last_flag && ((flags[i] | last_flag) & all_languages))
@ -502,7 +502,7 @@ write_copyright (void)
shall not be used in advertising or otherwise to promote the sale,\n\
use or other dealings in these Data Files or Software without prior\n\
written authorization of the copyright holder. */\n";
puts (copyright);
}

View File

@ -355,7 +355,7 @@ deps_add_module_target (struct mkdeps *d, const char *m,
const char *cmi, bool is_header_unit, bool is_exported)
{
gcc_assert (!d->module_name);
d->module_name = xstrdup (m);
d->is_header_unit = is_header_unit;
d->is_exported = is_exported;

View File

@ -51,9 +51,9 @@ along with GCC; see the file COPYING3. If not see
/* Some of these are #define on some systems, e.g. on AIX to redirect
the names to 64bit capable functions for LARGE_FILES support. These
redefs are pointless here so we can override them. */
#undef fopen
#undef freopen
#undef fopen
#undef freopen
#define fopen(PATH,MODE) fopen_unlocked(PATH,MODE)
#define fdopen(FILDES,MODE) fdopen_unlocked(FILDES,MODE)

View File

@ -168,7 +168,7 @@ copy_comment (cpp_reader *pfile, const uchar *cur, int in_define)
unterminated = skip_macro_block_comment (pfile);
else
unterminated = _cpp_skip_block_comment (pfile);
if (unterminated)
cpp_error_with_line (pfile, CPP_DL_ERROR, src_loc, 0,
"unterminated comment");
@ -919,7 +919,7 @@ _cpp_replacement_text_len (const cpp_macro *macro)
}
else
len = macro->count;
return len;
}

View File

@ -16,7 +16,7 @@
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

View File

@ -6,12 +6,12 @@
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 3, or (at your option) any
* later version.
*
*
* This file 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.

View File

@ -59,7 +59,7 @@ get_dyn_handler_pointer (REG fp)
the handler_data field from there. This field contains the offset
from FP at which the address of the currently installed handler is
to be found. */
PDSCDEF * pd = PV_FOR (fp);
/* Procedure descriptor pointer for the live subprogram with FP as the frame
pointer, and to which _gcc_shell_handler is attached as a condition
@ -79,11 +79,11 @@ get_dyn_handler_pointer (REG fp)
case PDSC$K_KIND_FP_STACK: /* [3.4.2 PD for stack frame procedures] */
handler_data_offset = 40;
break;
case PDSC$K_KIND_FP_REGISTER: /* [3.4.5 PD for reg frame procedures] */
handler_data_offset = 32;
break;
default:
handler_data_offset = 0;
break;
@ -95,7 +95,7 @@ get_dyn_handler_pointer (REG fp)
/* Otherwise, fetch the fp offset at which the real handler address is to be
found, then fetch and return the latter in turn. */
handler_slot_offset = REG_AT ((REG)pd + handler_data_offset);
return (ADDR) REG_AT (fp + handler_slot_offset);
@ -120,4 +120,4 @@ __gcc_shell_handler (struct chf$signal_array *sig_arr,
return ret;
}

View File

@ -106,7 +106,7 @@ alpha_vms_fallback_frame_state (struct _Unwind_Context *context,
up if we're handed anything else. */
if (pkind != PDSC$K_KIND_FP_STACK && pkind != PDSC$K_KIND_FP_REGISTER)
return _URC_END_OF_STACK;
if (eh_debug)
printf ("FALLBACK: CTX FP = 0x%p, PV = 0x%p, EN = 0x%llx, RA = 0x%p\n",
ADDR_AT (context->reg[29]), pv, pv->pdsc$q_entry, context->ra);
@ -149,7 +149,7 @@ alpha_vms_fallback_frame_state (struct _Unwind_Context *context,
status = LIB$GET_PREV_INVO_CONTEXT (&icb);
GIVEUP_ON_FAILURE (status);
new_cfa = (ADDR) icb.libicb$q_ireg[30];
new_cfa = (ADDR) icb.libicb$q_ireg[30];
}
else
{
@ -158,10 +158,10 @@ alpha_vms_fallback_frame_state (struct _Unwind_Context *context,
register value + frame size. Note that the frame base may differ
from CONTEXT->cfa, typically if the caller has performed dynamic
stack allocations. */
int base_reg = pv->pdsc$w_flags & PDSC$M_BASE_REG_IS_FP ? 29 : 30;
ADDR base_addr = ADDR_AT (context->reg[base_reg]);
new_cfa = base_addr + pv->pdsc$l_size;
}
@ -201,7 +201,7 @@ alpha_vms_fallback_frame_state (struct _Unwind_Context *context,
for (i = 0, j = 0; i < 32; i++)
if ((1 << i) & pv->pdsc$l_ireg_mask)
UPDATE_FS_FOR_CFA_GR (fs, i, rsa_addr + 8 * ++j, new_cfa);
/* ??? floating point registers ? */
break;
@ -214,10 +214,10 @@ alpha_vms_fallback_frame_state (struct _Unwind_Context *context,
fs->regs.how[RA_COLUMN] = REG_SAVED_REG;
fs->regs.reg[RA_COLUMN].loc.reg = pv->pdsc$b_save_ra;
fs->regs.how[29] = REG_SAVED_REG;
fs->regs.reg[29].loc.reg = pv->pdsc$b_save_fp;
break;
}
@ -274,12 +274,12 @@ alpha_vms_fallback_frame_state (struct _Unwind_Context *context,
UPDATE_FS_FOR_CFA_GR (fs, 26, &mechargs->chf$q_mch_savr26, new_cfa);
UPDATE_FS_FOR_CFA_GR (fs, 27, &mechargs->chf$q_mch_savr27, new_cfa);
UPDATE_FS_FOR_CFA_GR (fs, 28, &mechargs->chf$q_mch_savr28, new_cfa);
/* Registers R2 to R7 are available from the rei frame pointer. */
for (i = 2; i <= 7; i ++)
UPDATE_FS_FOR_CFA_GR (fs, i, rei_frame_addr+(i - 2)*8, new_cfa);
/* ??? floating point registers ? */
}

View File

@ -29,7 +29,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
If this result can't be rounded to the exact result with confidence, we
round to the value between the two closest representable values, and
test if the correctly rounded value is above or below this value.
Because of the Newton-raphson iteration step, an error in the seed at X
is amplified by X. Therefore, we don't want a Tchebycheff polynom
or a polynom that is close to optimal according to the maximum norm

View File

@ -29,7 +29,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
If this result can't be rounded to the exact result with confidence, we
round to the value between the two closest representable values, and
test if the correctly rounded value is above or below this value.
Because of the Newton-raphson iteration step, an error in the seed at X
is amplified by X. Therefore, we don't want a Tchebycheff polynom
or a polynom that is close to optimal according to the maximum norm

View File

@ -50,7 +50,7 @@ static func_ptr __DTOR_LIST__[1] __attribute__ ((section (".dtors")))
= { (func_ptr) (-1) };
/* Run all the global destructors on exit from the program. */
/* Some systems place the number of pointers in the first word of the
table. On SVR4 however, that word is -1. In all cases, the table is
null-terminated. On SVR4, we start from the beginning of the list and

View File

@ -1,6 +1,6 @@
/* Configuration file for ARM BPABI targets, library renames.
Copyright (C) 2010-2024 Free Software Foundation, Inc.
Contributed by CodeSourcery, LLC
Contributed by CodeSourcery, LLC
This file is part of GCC.

View File

@ -23,14 +23,14 @@
<http://www.gnu.org/licenses/>. */
extern long long __divdi3 (long long, long long);
extern unsigned long long __udivdi3 (unsigned long long,
extern unsigned long long __udivdi3 (unsigned long long,
unsigned long long);
extern long long __gnu_ldivmod_helper (long long, long long, long long *);
long long
__gnu_ldivmod_helper (long long a,
long long b,
__gnu_ldivmod_helper (long long a,
long long b,
long long *remainder)
{
long long quotient;

View File

@ -201,7 +201,7 @@ int HIDDEN
__sync_val_compare_and_swap_4 (int *ptr, int oldval, int newval)
{
int actual_oldval, fail;
while (1)
{
actual_oldval = *ptr;
@ -210,7 +210,7 @@ __sync_val_compare_and_swap_4 (int *ptr, int oldval, int newval)
return actual_oldval;
fail = __kernel_cmpxchg (actual_oldval, newval, ptr);
if (__builtin_expect (!fail, 1))
return oldval;
}

View File

@ -1,7 +1,7 @@
/* ARM EABI compliant unwinding routines
Copyright (C) 2004-2024 Free Software Foundation, Inc.
Contributed by Paul Brook
This file 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, or (at your option) any
@ -167,7 +167,7 @@ __gnu_unwind_execute (_Unwind_Context * context, __gnu_unwind_state * uws)
_Unwind_VRS_Set (context, _UVRSC_CORE, R_SP, _UVRSD_UINT32, &reg);
continue;
}
if ((op & 0xf0) == 0x80)
{
op = (op << 8) | next_unwind_byte (uws);
@ -200,7 +200,7 @@ __gnu_unwind_execute (_Unwind_Context * context, __gnu_unwind_state * uws)
{
/* Pop r4-r[4+nnn], [lr]. */
_uw mask;
mask = (0xff0 >> (7 - (op & 7))) & 0xff0;
if (op & 8)
mask |= (1 << R_LR);

View File

@ -510,7 +510,7 @@ __gnu_unwind_get_pr_addr (int idx)
default:
return 0;
}
}
}
/* ABI defined personality routine entry points. */

View File

@ -13,9 +13,9 @@
#define F7_(name) __f7_##name
#define F7P __f7_
/* Renames for libf7.c, libf7.h. */
#define f7_fabs __f7_fabs
#define f7_neg __f7_neg
#define f7_add __f7_add
@ -173,9 +173,9 @@
#define f7_ne_impl __f7_ne_impl
#define f7_eq_impl __f7_eq_impl
#define f7_unord_impl __f7_unord_impl
/* Renames for libf7.c, libf7.h. */
#define f7_const_1 __f7_const_1
#define f7_const_1_P __f7_const_1_P
#define f7_const_2 __f7_const_2
@ -198,9 +198,9 @@
#define f7_const_1_ln10_P __f7_const_1_ln10_P
#define f7_const_sqrt2 __f7_const_sqrt2
#define f7_const_sqrt2_P __f7_const_sqrt2_P
/* Renames for libf7-asm.sx, f7-wraps.h. */
#define f7_classify_asm __f7_classify_asm
#define f7_store_expo_asm __f7_store_expo_asm
#define f7_clr_asm __f7_clr_asm

View File

@ -1,6 +1,6 @@
/* C6X ABI compliant unwinding routines
Copyright (C) 2011-2024 Free Software Foundation, Inc.
This file 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, or (at your option) any
@ -142,7 +142,7 @@ unwind_restore_pair (_Unwind_Context * context, int reg, _uw *ptr)
}
static const int
unwind_frame_regs[13] =
unwind_frame_regs[13] =
{
R_A15, R_B15, R_B14, R_B13, R_B12, R_B11, R_B10, R_B3,
R_A14, R_A13, R_A12, R_A11, R_A10
@ -456,7 +456,7 @@ __gnu_unwind_execute (_Unwind_Context * context, __gnu_unwind_state * uws)
_Unwind_VRS_Set (context, _UVRSC_CORE, R_B3, _UVRSD_UINT32, &reg);
continue;
}
/* Reserved. */
return _URC_FAILURE;
}
@ -513,7 +513,7 @@ _Unwind_Ptr
_Unwind_GetRegionStart (_Unwind_Context *context)
{
_Unwind_Control_Block *ucbp;
ucbp = (_Unwind_Control_Block *) _Unwind_GetGR (context, UNWIND_POINTER_REG);
return (_Unwind_Ptr) ucbp->pr_cache.fnstart;
}
@ -523,7 +523,7 @@ _Unwind_GetLanguageSpecificData (_Unwind_Context *context)
{
_Unwind_Control_Block *ucbp;
_uw *ptr;
ucbp = (_Unwind_Control_Block *) _Unwind_GetGR (context, UNWIND_POINTER_REG);
ptr = (_uw *) ucbp->pr_cache.ehtp;
/* Skip the personality routine address. */

View File

@ -47,25 +47,25 @@ extern void _ITM_deregisterTMCloneTable (void *) WEAK;
static inline void *getTMCloneTable (const void *f, size_t *tmct_siz)
{
char *tmct_fixed, *tmct = NULL;
unsigned int i, img_count;
unsigned int i, img_count;
struct mach_header *mh;
Dl_info info;
if (! dladdr (f, &info) || info.dli_fbase == NULL)
abort ();
mh = (struct mach_header *) info.dli_fbase;
tmct_fixed = GET_DATA_TMCT (mh, tmct_siz);
*tmct_siz /= (sizeof (size_t) * 2);
/* No tm_clone_table or no clones. */
if (tmct_fixed == NULL || *tmct_siz == 0)
return NULL;
return NULL;
img_count = _dyld_image_count();
for (i = 0; i < img_count && tmct == NULL; i++)
{
if (mh == _dyld_get_image_header(i))
tmct = tmct_fixed + (unsigned long)_dyld_get_image_vmaddr_slide(i);
tmct = tmct_fixed + (unsigned long)_dyld_get_image_vmaddr_slide(i);
}
return tmct;

View File

@ -84,13 +84,13 @@ typedef void (*cxa_atexit_callback)(void *);
/* This structure holds a routine to call. There may be extra fields
at the end of the structure that this code doesn't know about. */
struct one_atexit_routine
struct one_atexit_routine
{
union {
atexit_callback ac;
cxa_atexit_callback cac;
} callback;
/* has_arg is 0/2/4 if 'ac' is live, 1/3/5 if 'cac' is live.
/* has_arg is 0/2/4 if 'ac' is live, 1/3/5 if 'cac' is live.
Higher numbers indicate a later version of the structure that this
code doesn't understand and will ignore. */
int has_arg;
@ -141,7 +141,7 @@ struct keymgr_atexit_list
fails to call routines registered while an atexit routine is
running. Return 1 if it works properly, and -1 if an error occurred. */
struct atexit_data
struct atexit_data
{
int result;
cxa_atexit_p cxa_atexit;
@ -194,12 +194,12 @@ find_atexit_10_3 (void)
unsigned int (*dyld_image_count_fn)(void);
const char *(*dyld_get_image_name_fn)(unsigned int image_index);
const void *(*dyld_get_image_header_fn)(unsigned int image_index);
const void *(*NSLookupSymbolInImage_fn)(const void *image,
const void *(*NSLookupSymbolInImage_fn)(const void *image,
const char *symbolName,
unsigned int options);
void *(*NSAddressOfSymbol_fn)(const void *symbol);
unsigned i, count;
/* Find some dyld functions. */
_dyld_func_lookup("__dyld_image_count", &dyld_image_count_fn);
_dyld_func_lookup("__dyld_get_image_name", &dyld_get_image_name_fn);
@ -212,14 +212,14 @@ find_atexit_10_3 (void)
|| ! dyld_get_image_header_fn || ! NSLookupSymbolInImage_fn
|| ! NSAddressOfSymbol_fn)
return NULL;
count = dyld_image_count_fn ();
for (i = 0; i < count; i++)
{
const char * path = dyld_get_image_name_fn (i);
const void * image;
const void * symbol;
if (strcmp (path, "/usr/lib/libSystem.B.dylib") != 0)
continue;
image = dyld_get_image_header_fn (i);
@ -235,14 +235,14 @@ find_atexit_10_3 (void)
}
#endif
/* Create (if necessary), find, lock, fill in, and return our globals.
Return NULL on error, in which case the globals will not be locked.
/* Create (if necessary), find, lock, fill in, and return our globals.
Return NULL on error, in which case the globals will not be locked.
The caller should call keymgr_set_and_unlock. */
static struct keymgr_atexit_list *
get_globals (void)
{
struct keymgr_atexit_list * r;
#ifdef __ppc__
/* 10.3.9 doesn't have _keymgr_get_and_lock_processwide_ptr_2 so the
PPC side can't use it. On 10.4 this just means the error gets
@ -256,7 +256,7 @@ get_globals (void)
return NULL;
r = rr;
#endif
if (r == NULL)
{
r = calloc (sizeof (struct keymgr_atexit_list), 1);
@ -307,7 +307,7 @@ get_globals (void)
}
return r;
error:
_keymgr_set_and_unlock_processwide_ptr (KEYMGR_ATEXIT_LIST, r);
return NULL;
@ -325,7 +325,7 @@ add_routine (struct keymgr_atexit_list * g,
struct atexit_routine_list * s
= malloc (sizeof (struct atexit_routine_list));
int result;
if (!s)
{
_keymgr_set_and_unlock_processwide_ptr (KEYMGR_ATEXIT_LIST, g);
@ -382,7 +382,7 @@ cxa_atexit_wrapper (void* routine_param)
struct keymgr_atexit_list *g;
struct atexit_routine_list * base = NULL;
char prev_running = 0;
g = _keymgr_get_and_lock_processwide_ptr (KEYMGR_ATEXIT_LIST);
if (g)
{
@ -425,7 +425,7 @@ our_atexit (void)
g = _keymgr_get_and_lock_processwide_ptr (KEYMGR_ATEXIT_LIST);
if (! g || g->version != 0 || g->atexit_status != atexit_status_missing)
return;
prev_running = g->running_routines;
g->running_routines = 1;
g = run_routines (g, NULL);
@ -450,7 +450,7 @@ atexit_common (const struct one_atexit_routine *r, const void *dso)
if (! g)
return -1;
if (g->running_routines || g->atexit_status == atexit_status_missing)
return add_routine (g, r);
@ -497,7 +497,7 @@ atexit_common (const struct one_atexit_routine *r, const void *dso)
/* These are the actual replacement routines; they just funnel into
atexit_common. */
int __cxa_atexit (cxa_atexit_callback func, void* arg,
int __cxa_atexit (cxa_atexit_callback func, void* arg,
const void* dso) __attribute__((visibility("hidden")));
int

View File

@ -1,19 +1,19 @@
/* Move double-word library function.
Copyright (C) 2000-2024 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of GCC.
GCC 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, or (at your option)
any later version.
GCC 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.

View File

@ -1,19 +1,19 @@
/* Move half-word library function.
Copyright (C) 2000-2024 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of GCC.
GCC 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, or (at your option)
any later version.
GCC 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.

View File

@ -1,19 +1,19 @@
/* Move word library function.
Copyright (C) 2000-2024 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of GCC.
GCC 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, or (at your option)
any later version.
GCC 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.

View File

@ -1,19 +1,19 @@
/* Frv initialization file linked before all user modules
Copyright (C) 1999-2024 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of GCC.
GCC 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, or (at your option)
any later version.
GCC 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.

View File

@ -1,19 +1,19 @@
/* Frv initialization file linked after all user modules
Copyright (C) 1999-2024 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of GCC.
GCC 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, or (at your option)
any later version.
GCC 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.

View File

@ -3,7 +3,7 @@
Copyright (C) 2023-2024 Free Software Foundation, Inc.
Contributed by Siemens.
This file 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, or (at your option) any

View File

@ -58,7 +58,7 @@ __gthread_once (__gthread_once_t * __guard, void (*__func) (void))
/* Busy-wait until we have exclusive access to the state. Check if
another thread managed to perform the init call in the interim. */
while (!__TAS(&__guard->busy))
{
if (__guard->done)

View File

@ -24,7 +24,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
union _FP_UNION_Q
{
__float128 flt;
struct
struct
{
unsigned long frac0 : 32;
unsigned long frac1 : 32;

View File

@ -5,12 +5,12 @@
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 3, or (at your option) any
* later version.
*
*
* This file 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.
@ -39,7 +39,7 @@ __attribute__ ((force_align_arg_pointer))
set_fast_math_sse (unsigned int edx)
{
unsigned int mxcsr;
if (edx & bit_FXSAVE)
{
/* Check if DAZ is available. */

View File

@ -5,12 +5,12 @@
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 3, or (at your option) any
* later version.
*
*
* This file 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.

View File

@ -28,7 +28,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#define IN_LIBGCC2
/* auto-host.h is needed by cygming.h for HAVE_GAS_WEAK and here
for HAVE_LD_RO_RW_SECTION_MIXING. */
for HAVE_LD_RO_RW_SECTION_MIXING. */
#include "auto-host.h"
#include "tconfig.h"
#include "tsystem.h"
@ -53,7 +53,7 @@ static EH_FRAME_SECTION_CONST int __FRAME_END__[]
= { 0 };
#endif
extern void __gcc_register_frame (void);
extern void __gcc_register_frame (void);
extern void __gcc_deregister_frame (void);
#pragma GCC diagnostic push

View File

@ -5,12 +5,12 @@
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 3, or (at your option) any
* later version.
*
*
* This file 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.

View File

@ -45,7 +45,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
some foreign code for which no unwind frame can be found. If this is
a call from the Windows signal handler, then:
2) We must get the signal context information.
2) We must get the signal context information.
* With the standard exception filter:
@ -120,7 +120,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#define MD_FALLBACK_FRAME_STATE_FOR i386_w32_fallback_frame_state
static _Unwind_Reason_Code
i386_w32_fallback_frame_state (struct _Unwind_Context *context,
i386_w32_fallback_frame_state (struct _Unwind_Context *context,
_Unwind_FrameState *fs)
{
@ -136,7 +136,7 @@ i386_w32_fallback_frame_state (struct _Unwind_Context *context,
PCONTEXT proc_ctx_;
long new_cfa_;
if (SIG_SEH1)
if (SIG_SEH1)
proc_ctx_ = (PCONTEXT) (*(int*)(ctx_cfa_ + 56));
else if (SIG_SEH2)
proc_ctx_ = (PCONTEXT) (*(int*)(ctx_cfa_ + 8));
@ -179,9 +179,9 @@ i386_w32_fallback_frame_state (struct _Unwind_Context *context,
one of it's probes prior to the real SP adjustment. The only
operations of interest performed is "pushl %ecx", followed by
ecx clobbering. */
else if (SIG_ALLOCA)
else if (SIG_ALLOCA)
{
/* Only one push between entry in _alloca and the probe trap. */
/* Only one push between entry in _alloca and the probe trap. */
long new_cfa_ = (long) ctx_cfa_ + 4;
fs->regs.cfa_how = CFA_REG_OFFSET;

View File

@ -55,7 +55,7 @@ typedef unsigned long long uqword;
/* ENTRY is the unwind table entry found for a PC part of call chain we're
unwinding through. Return whether we should force the generic unwinder
to resort to "fallback" processing. */
static int
force_fallback_processing_for (void * pc, vms_unw_table_entry * entry)
{
@ -100,7 +100,7 @@ force_fallback_processing_for (void * pc, vms_unw_table_entry * entry)
return 0;
/* The OSSD block is found past the header, unwind descriptor area
and condition handler pointer, if any. */
and condition handler pointer, if any. */
ossd = (ossddef *)
/* Beware: uqword pointer arithmetic below. */
(unw_info_block
@ -111,16 +111,16 @@ force_fallback_processing_for (void * pc, vms_unw_table_entry * entry)
/* "A General Information segment may be omitted if all of its fields
would have their default values. If a General Information segment
is present, it must be the first in the OSSD area." So ... */
if (eh_debug)
printf ("ossd @ 0x%p\n", ossd);
if (eh_debug && ossd->ossd$v_type == OSSD$K_GENERAL_INFO)
printf ("exc_frame = %d - bot_frame = %d - base_frame = %d\n",
ossd->ossd$v_exception_frame,
ossd->ossd$v_exception_frame,
ossd->ossd$v_bottom_of_stack,
ossd->ossd$v_base_frame);
return
ossd->ossd$v_type == OSSD$K_GENERAL_INFO
&& (ossd->ossd$v_exception_frame

View File

@ -43,7 +43,7 @@ _U_Qfne (long double a, long double b)
{
return (_U_Qfcmp (a, b, 4) == 0);
}
int
_U_Qfgt (long double a, long double b)
{

View File

@ -5,12 +5,12 @@
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 3, or (at your option) any
* later version.
*
*
* This file 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.

View File

@ -24,7 +24,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
union _FP_UNION_Q
{
__float128 flt;
struct
struct
{
unsigned long frac0 : 64;
unsigned long frac1 : 48;

View File

@ -102,7 +102,7 @@ enum unw_where
UNW_WHERE_BR, /* register is saved in a branch register */
UNW_WHERE_SPREL, /* register is saved on memstack (sp-relative) */
UNW_WHERE_PSPREL, /* register is saved on memstack (psp-relative) */
/* At the end of each prologue these locations get resolved to
UNW_WHERE_PSPREL and UNW_WHERE_GR, respectively. */
UNW_WHERE_SPILL_HOME, /* register is saved in its spill home */
@ -154,7 +154,7 @@ typedef struct unw_state_record
struct unw_reg_state curr; /* current state */
_Unwind_Personality_Fn personality;
} _Unwind_FrameState;
enum unw_nat_type
@ -558,7 +558,7 @@ finish_prologue (struct unw_state_record *sr)
{
off = sr->spill_offset;
alloc_spill_area (&off, 16, sr->curr.reg + UNW_REG_F2,
sr->curr.reg + UNW_REG_F31);
sr->curr.reg + UNW_REG_F31);
alloc_spill_area (&off, 8, sr->curr.reg + UNW_REG_B1,
sr->curr.reg + UNW_REG_B5);
alloc_spill_area (&off, 8, sr->curr.reg + UNW_REG_R4,
@ -581,7 +581,7 @@ desc_prologue (int body, unw_word rlen, unsigned char mask,
sr->first_region = 0;
/* Check if we're done. */
if (sr->when_target < sr->region_start + sr->region_len)
if (sr->when_target < sr->region_start + sr->region_len)
{
sr->done = 1;
return;
@ -858,7 +858,7 @@ desc_is_active (unsigned char qp, unw_word t, struct unw_state_record *sr)
return 0;
if (qp > 0)
{
if ((sr->pr_val & (1UL << qp)) == 0)
if ((sr->pr_val & (1UL << qp)) == 0)
return 0;
sr->pr_mask |= (1UL << qp);
}
@ -988,7 +988,7 @@ desc_spill_sprel_p (unsigned char qp, unw_word t, unsigned char abreg,
* macros/constants before including this file:
*
* Types:
* unw_word Unsigned integer type with at least 64 bits
* unw_word Unsigned integer type with at least 64 bits
*
* Register names:
* UNW_REG_BSP
@ -1821,7 +1821,7 @@ uw_frame_state_for (struct _Unwind_Context *context, _Unwind_FrameState *fs)
designate "condition handlers" with very different arguments than what we
would be providing. Such cases are typically identified from OS specific
bits in the unwind information block header, and checked by the target
MD_UNW_COMPATIBLE_PERSONALITY_P macro.
MD_UNW_COMPATIBLE_PERSONALITY_P macro.
We just pretend there is no personality from our standpoint in such
situations, and expect GCC not to set the identifying bits itself so that
@ -1884,7 +1884,7 @@ skip_unwind_info:
For other frames the procedure is by definition non-leaf so the pfs
is saved and restored and thus effectively dead in the body; only
the cfm need therefore be restored.
Here we have 2 cases:
- either the pfs is saved and restored and thus effectively dead
like in regular frames; then we do nothing special and restore
@ -2112,7 +2112,7 @@ uw_advance_context (struct _Unwind_Context *context, _Unwind_FrameState *fs)
/* Fill in CONTEXT for top-of-stack. The only valid registers at this
level will be the return address and the CFA. Note that CFA = SP+16. */
#define uw_init_context(CONTEXT) \
do { \
/* ??? There is a whole lot o code in uw_install_context that \
@ -2199,7 +2199,7 @@ uw_install_context (struct _Unwind_Context *current __attribute__((unused)),
}
}
/* The value in uc_bsp that we've computed is that for the
/* The value in uc_bsp that we've computed is that for the
target function. The value that we install below will be
adjusted by the BR.RET instruction based on the contents
of AR.PFS. So we must unadjust that here. */
@ -2418,7 +2418,7 @@ uw_install_context (struct _Unwind_Context *current __attribute__((unused)),
";; \n\t"
"mov.m ar.rsc = r29 \n\t"
";; \n\t"
/* This must be done before setting AR.BSPSTORE, otherwise
/* This must be done before setting AR.BSPSTORE, otherwise
AR.BSP will be initialized with a random displacement
below the value we want, based on the current number of
dirty stacked registers. */

View File

@ -41,7 +41,7 @@ struct unw_table_entry
/* Accessors to fields of an unwind info block header. In this common file to
be visible from all the units involved in a target implementation. */
#ifndef __USING_SJLJ_EXCEPTIONS__
#define UNW_VER(x) ((x) >> 48)
#define UNW_FLAG_MASK 0x0000ffff00000000

View File

@ -72,7 +72,7 @@ ia64_vms_fallback_frame_state (struct _Unwind_Context *context,
INVO_CONTEXT_BLK local_icb;
INVO_CONTEXT_BLK *icb = &local_icb;
CHFCTX * chfctx;
CHF$MECH_ARRAY * chfmech;
CHF64$SIGNAL_ARRAY *chfsig64;
@ -90,7 +90,7 @@ ia64_vms_fallback_frame_state (struct _Unwind_Context *context,
const uint try_bs_copy_mask = (1 << 16);
eh_debug = EH_DEBUG ? atoi (EH_DEBUG) : 0;
/* Fetch and clear the try_bs_copy bit. */
try_bs_copy = (uint)eh_debug & try_bs_copy_mask;
eh_debug &= ~try_bs_copy_mask;
@ -124,9 +124,9 @@ ia64_vms_fallback_frame_state (struct _Unwind_Context *context,
/* Beware: we might be unwinding through nested condition handlers, so the
dispatcher frame we seek might not be the first one on the way up. Loop
thus. */
thus. */
do {
/* Seek the next dispatcher frame up the "current" point. Stop if we
either get past the target context or hit the bottom-of-stack along
the way. */
@ -134,7 +134,7 @@ ia64_vms_fallback_frame_state (struct _Unwind_Context *context,
FAIL_IF (status == 0);
FAIL_IF ((uw_reg)icb->libicb$ih_sp > (uw_reg)context->psp
|| DENOTES_BOTTOM_OF_STACK (icb));
if (eh_debug)
printf ("frame%s sp @ 0x%llx, pc @ 0x%llx bsp=0x%llx\n",
DENOTES_VMS_DISPATCHER_FRAME (icb) ? " (dispatcher)" : "",
@ -162,13 +162,13 @@ ia64_vms_fallback_frame_state (struct _Unwind_Context *context,
chfctx = icb->libicb$ph_chfctx_addr;
FAIL_IF (chfctx == 0);
chfmech = (CHF$MECH_ARRAY *)chfctx->chfctx$q_mcharglst;
FAIL_IF (chfmech == 0);
chfsig64 = (CHF64$SIGNAL_ARRAY *)chfmech->chf$ph_mch_sig64_addr;
FAIL_IF (chfsig64 == 0);
intstk = (INTSTK *)chfmech->chf$q_mch_esf_addr;
FAIL_IF (intstk == 0 || intstk->intstk$b_subtype == DYN$C_SSENTRY);
@ -222,7 +222,7 @@ ia64_vms_fallback_frame_state (struct _Unwind_Context *context,
context->unat_loc = (uw_loc)&intstk->intstk$q_unat;
/* Branch register locations. */
{
uw_reg * ctxregs = (uw_reg *)&intstk->intstk$q_b0;
@ -241,7 +241,7 @@ ia64_vms_fallback_frame_state (struct _Unwind_Context *context,
uw_reg q_bspstore = (uw_reg) intstk->intstk$q_bspstore;
uw_reg q_bspbase = (uw_reg) intstk->intstk$q_bspbase;
uw_reg ih_bspbase = (uw_reg) icb->libicb$ih_bspbase;
if (eh_debug)
printf ("q_bspstore = 0x%lx, q_bsp = 0x%lx, q_bspbase = 0x%lx\n"
"ih_bspbase = 0x%lx\n",
@ -263,7 +263,7 @@ ia64_vms_fallback_frame_state (struct _Unwind_Context *context,
/* Not clear if these are the proper arguments here. This is what
looked the closest to what is performed in the Linux case. */
}
}
context->bsp = (uw_reg)intstk->intstk$q_bsp;
@ -274,7 +274,7 @@ ia64_vms_fallback_frame_state (struct _Unwind_Context *context,
/* We're directly setting up the "context" for a VMS exception handler.
The "previous SP" for it is the SP upon the handler's entry, that is
the SP at the condition/interruption/exception point. */
the SP at the condition/interruption/exception point. */
context->psp = (uw_reg)icb->libicb$ih_sp;
/* Previous Frame State location. What eventually ends up in pfs_loc is
@ -305,4 +305,4 @@ ia64_vms_fallback_frame_state (struct _Unwind_Context *context,
return _URC_NO_REASON;
}

View File

@ -23,7 +23,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "bid_conf.h"
#include "bid_functions.h"
#include "bid_gcc_intrinsics.h"
#include "bid_gcc_intrinsics.h"
_Decimal128
__bid_addtd3 (_Decimal128 x, _Decimal128 y) {

View File

@ -24,7 +24,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "bid_conf.h"
#include "bid_functions.h"
#include "bid_gcc_intrinsics.h"
_Decimal32
__bid_truncddsd2 (_Decimal64 x) {
union decimal32 res;

View File

@ -24,7 +24,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "bid_conf.h"
#include "bid_functions.h"
#include "bid_gcc_intrinsics.h"
_Decimal128
__bid_extendddtd2 (_Decimal64 x) {
union decimal128 res;

View File

@ -29,7 +29,7 @@ CMPtype
__bid_eqdd2 (_Decimal64 x, _Decimal64 y) {
CMPtype res;
union decimal64 ux, uy;
ux.d = x;
uy.d = y;
res = __bid64_quiet_equal (ux.i, uy.i);

View File

@ -29,7 +29,7 @@ CMPtype
__bid_eqtd2 (_Decimal128 x, _Decimal128 y) {
CMPtype res;
union decimal128 ux, uy;
ux.d = x;
uy.d = y;
res = __bid128_quiet_equal (ux.i, uy.i);

View File

@ -29,7 +29,7 @@ CMPtype
__bid_gedd2 (_Decimal64 x, _Decimal64 y) {
CMPtype res;
union decimal64 ux, uy;
ux.d = x;
uy.d = y;
res = __bid64_quiet_greater_equal (ux.i, uy.i);

View File

@ -30,7 +30,7 @@ __bid_gesd2 (_Decimal32 x, _Decimal32 y) {
CMPtype res;
UINT64 x64, y64;
union decimal32 ux, uy;
ux.d = x;
uy.d = y;
x64 = __bid32_to_bid64 (ux.i);

View File

@ -29,7 +29,7 @@ CMPtype
__bid_getd2 (_Decimal128 x, _Decimal128 y) {
CMPtype res;
union decimal128 ux, uy;
ux.d = x;
uy.d = y;
res = __bid128_quiet_greater_equal (ux.i, uy.i);

View File

@ -29,7 +29,7 @@ CMPtype
__bid_gtdd2 (_Decimal64 x, _Decimal64 y) {
CMPtype res;
union decimal64 ux, uy;
ux.d = x;
uy.d = y;
res = __bid64_quiet_greater (ux.i, uy.i);

View File

@ -30,7 +30,7 @@ __bid_gtsd2 (_Decimal32 x, _Decimal32 y) {
CMPtype res;
UINT64 x64, y64;
union decimal32 ux, uy;
ux.d = x;
uy.d = y;
x64 = __bid32_to_bid64 (ux.i);

View File

@ -29,7 +29,7 @@ CMPtype
__bid_gttd2 (_Decimal128 x, _Decimal128 y) {
CMPtype res;
union decimal128 ux, uy;
ux.d = x;
uy.d = y;
res = __bid128_quiet_greater (ux.i, uy.i);

View File

@ -29,7 +29,7 @@ CMPtype
__bid_ledd2 (_Decimal64 x, _Decimal64 y) {
CMPtype res;
union decimal64 ux, uy;
ux.d = x;
uy.d = y;
res = __bid64_quiet_less_equal (ux.i, uy.i);

View File

@ -30,7 +30,7 @@ __bid_lesd2 (_Decimal32 x, _Decimal32 y) {
CMPtype res;
UINT64 x64, y64;
union decimal32 ux, uy;
ux.d = x;
uy.d = y;
x64 = __bid32_to_bid64 (ux.i);

View File

@ -29,7 +29,7 @@ CMPtype
__bid_letd2 (_Decimal128 x, _Decimal128 y) {
CMPtype res;
union decimal128 ux, uy;
ux.d = x;
uy.d = y;
res = __bid128_quiet_less_equal (ux.i, uy.i);

View File

@ -29,7 +29,7 @@ CMPtype
__bid_ltdd2 (_Decimal64 x, _Decimal64 y) {
CMPtype res;
union decimal64 ux, uy;
ux.d = x;
uy.d = y;
res = -__bid64_quiet_less (ux.i, uy.i);

View File

@ -30,7 +30,7 @@ __bid_ltsd2 (_Decimal32 x, _Decimal32 y) {
CMPtype res;
UINT64 x64, y64;
union decimal32 ux, uy;
ux.d = x;
uy.d = y;
x64 = __bid32_to_bid64 (ux.i);

View File

@ -29,7 +29,7 @@ CMPtype
__bid_lttd2 (_Decimal128 x, _Decimal128 y) {
CMPtype res;
union decimal128 ux, uy;
ux.d = x;
uy.d = y;
res = -__bid128_quiet_less (ux.i, uy.i);

View File

@ -28,7 +28,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
_Decimal64
__bid_muldd3 (_Decimal64 x, _Decimal64 y) {
union decimal64 ux, uy, res;
ux.d = x;
uy.d = y;
res.i = __bid64_mul (ux.i, uy.i);

View File

@ -29,7 +29,7 @@ _Decimal32
__bid_mulsd3 (_Decimal32 x, _Decimal32 y) {
UINT64 x64, y64, res64;
union decimal32 ux, uy, res;
ux.d = x;
uy.d = y;
x64 = __bid32_to_bid64 (ux.i);

View File

@ -29,7 +29,7 @@ CMPtype
__bid_nedd2 (_Decimal64 x, _Decimal64 y) {
CMPtype res;
union decimal64 ux, uy;
ux.d = x;
uy.d = y;
res = __bid64_quiet_not_equal (ux.i, uy.i);

View File

@ -30,7 +30,7 @@ __bid_nesd2 (_Decimal32 x, _Decimal32 y) {
CMPtype res;
UINT64 x64, y64;
union decimal32 ux, uy;
ux.d = x;
uy.d = y;
x64 = __bid32_to_bid64 (ux.i);

View File

@ -29,7 +29,7 @@ CMPtype
__bid_netd2 (_Decimal128 x, _Decimal128 y) {
CMPtype res;
union decimal128 ux, uy;
ux.d = x;
uy.d = y;
res = __bid128_quiet_not_equal (ux.i, uy.i);

View File

@ -24,7 +24,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "bid_conf.h"
#include "bid_functions.h"
#include "bid_gcc_intrinsics.h"
_Decimal64
__bid_extendsddd2 (_Decimal32 x) {
union decimal64 res;

View File

@ -24,7 +24,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "bid_conf.h"
#include "bid_functions.h"
#include "bid_gcc_intrinsics.h"
_Decimal128
__bid_extendsdtd2 (_Decimal32 x) {
union decimal128 res;

View File

@ -24,7 +24,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "bid_conf.h"
#include "bid_functions.h"
#include "bid_gcc_intrinsics.h"
_Decimal64
__bid_trunctddd2 (_Decimal128 x) {
union decimal128 ux;

View File

@ -24,7 +24,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "bid_conf.h"
#include "bid_functions.h"
#include "bid_gcc_intrinsics.h"
_Decimal32
__bid_trunctdsd2 (_Decimal128 x) {
union decimal128 ux;

View File

@ -29,7 +29,7 @@ CMPtype
__bid_unorddd2 (_Decimal64 x, _Decimal64 y) {
CMPtype res;
union decimal64 ux, uy;
ux.d = x;
uy.d = y;
res = __bid64_quiet_unordered (ux.i, uy.i);

View File

@ -30,7 +30,7 @@ __bid_unordsd2 (_Decimal32 x, _Decimal32 y) {
CMPtype res;
UINT64 x64, y64;
union decimal32 ux, uy;
ux.d = x;
uy.d = y;
x64 = __bid32_to_bid64 (ux.i);

View File

@ -29,7 +29,7 @@ CMPtype
__bid_unordtd2 (_Decimal128 x, _Decimal128 y) {
CMPtype res;
union decimal128 ux, uy;
ux.d = x;
uy.d = y;
res = __bid128_quiet_unordered (ux.i, uy.i);

View File

@ -23,7 +23,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "bid_internal.h"
// the first entry of nr_digits[i - 1] (where 1 <= i <= 113), indicates
// the first entry of nr_digits[i - 1] (where 1 <= i <= 113), indicates
// the number of decimal digits needed to represent a binary number with i bits;
// however, if a binary number of i bits may require either k or k + 1 decimal
// digits, then the first entry of nr_digits[i - 1] is 0; in this case if the
@ -900,7 +900,7 @@ int shiftright128[] = {
};
// maskhigh128[] contains the mask to apply to the top 128 bits of the
// maskhigh128[] contains the mask to apply to the top 128 bits of the
// 128x128-bit product in order to obtain the high bits of f2*
// the 64-bit word order is L, H
UINT64 maskhigh128[] = {
@ -941,7 +941,7 @@ UINT64 maskhigh128[] = {
};
// onehalf128[] contains the high bits of 1/2 positioned correctly for
// onehalf128[] contains the high bits of 1/2 positioned correctly for
// comparison with the high bits of f2*
// the 64-bit word order is L, H
UINT64 onehalf128[] = {
@ -983,61 +983,61 @@ UINT64 onehalf128[] = {
UINT64 ten2mk64[] = {
0x199999999999999aULL, // 10^(-1) * 2^ 64
0x028f5c28f5c28f5dULL, // 10^(-2) * 2^ 64
0x004189374bc6a7f0ULL, // 10^(-3) * 2^ 64
0x00346dc5d638865aULL, // 10^(-4) * 2^ 67
0x0029f16b11c6d1e2ULL, // 10^(-5) * 2^ 70
0x00218def416bdb1bULL, // 10^(-6) * 2^ 73
0x0035afe535795e91ULL, // 10^(-7) * 2^ 77
0x002af31dc4611874ULL, // 10^(-8) * 2^ 80
0x00225c17d04dad2aULL, // 10^(-9) * 2^ 83
0x0036f9bfb3af7b76ULL, // 10^(-10) * 2^ 87
0x002bfaffc2f2c92bULL, // 10^(-11) * 2^ 90
0x00232f33025bd423ULL, // 10^(-12) * 2^ 93
0x00384b84d092ed04ULL, // 10^(-13) * 2^ 97
0x002d09370d425737ULL, // 10^(-14) * 2^100
0x0024075f3dceac2cULL, // 10^(-15) * 2^103
0x0039a5652fb11379ULL, // 10^(-16) * 2^107
0x028f5c28f5c28f5dULL, // 10^(-2) * 2^ 64
0x004189374bc6a7f0ULL, // 10^(-3) * 2^ 64
0x00346dc5d638865aULL, // 10^(-4) * 2^ 67
0x0029f16b11c6d1e2ULL, // 10^(-5) * 2^ 70
0x00218def416bdb1bULL, // 10^(-6) * 2^ 73
0x0035afe535795e91ULL, // 10^(-7) * 2^ 77
0x002af31dc4611874ULL, // 10^(-8) * 2^ 80
0x00225c17d04dad2aULL, // 10^(-9) * 2^ 83
0x0036f9bfb3af7b76ULL, // 10^(-10) * 2^ 87
0x002bfaffc2f2c92bULL, // 10^(-11) * 2^ 90
0x00232f33025bd423ULL, // 10^(-12) * 2^ 93
0x00384b84d092ed04ULL, // 10^(-13) * 2^ 97
0x002d09370d425737ULL, // 10^(-14) * 2^100
0x0024075f3dceac2cULL, // 10^(-15) * 2^103
0x0039a5652fb11379ULL, // 10^(-16) * 2^107
};
// ten2mk128trunc[] contains T*, the top Ex >= 128 bits of 10^(-k),
// for 1 <= k <= 34
// ten2mk128trunc[] contains T*, the top Ex >= 128 bits of 10^(-k),
// for 1 <= k <= 34
// the 64-bit word order is L, H
UINT128 ten2mk128trunc[] = {
{{0x9999999999999999ULL, 0x1999999999999999ULL}}, // 10^(-1) * 2^128
{{0x28f5c28f5c28f5c2ULL, 0x028f5c28f5c28f5cULL}}, // 10^(-2) * 2^128
{{0x9db22d0e56041893ULL, 0x004189374bc6a7efULL}}, // 10^(-3) * 2^128
{{0x4af4f0d844d013a9ULL, 0x00346dc5d6388659ULL}}, // 10^(-4) * 2^131
{{0x08c3f3e0370cdc87ULL, 0x0029f16b11c6d1e1ULL}}, // 10^(-5) * 2^134
{{0x6d698fe69270b06cULL, 0x00218def416bdb1aULL}}, // 10^(-6) * 2^137
{{0xaf0f4ca41d811a46ULL, 0x0035afe535795e90ULL}}, // 10^(-7) * 2^141
{{0xbf3f70834acdae9fULL, 0x002af31dc4611873ULL}}, // 10^(-8) * 2^144
{{0x65cc5a02a23e254cULL, 0x00225c17d04dad29ULL}}, // 10^(-9) * 2^147
{{0x6fad5cd10396a213ULL, 0x0036f9bfb3af7b75ULL}}, // 10^(-10) * 2^151
{{0xbfbde3da69454e75ULL, 0x002bfaffc2f2c92aULL}}, // 10^(-11) * 2^154
{{0x32fe4fe1edd10b91ULL, 0x00232f33025bd422ULL}}, // 10^(-12) * 2^157
{{0x84ca19697c81ac1bULL, 0x00384b84d092ed03ULL}}, // 10^(-13) * 2^161
{{0x03d4e1213067bce3ULL, 0x002d09370d425736ULL}}, // 10^(-14) * 2^164
{{0x3643e74dc052fd82ULL, 0x0024075f3dceac2bULL}}, // 10^(-15) * 2^167
{{0x56d30baf9a1e626aULL, 0x0039a5652fb11378ULL}}, // 10^(-16) * 2^171
{{0x12426fbfae7eb521ULL, 0x002e1dea8c8da92dULL}}, // 10^(-17) * 2^174
{{0x41cebfcc8b9890e7ULL, 0x0024e4bba3a48757ULL}}, // 10^(-18) * 2^177
{{0x694acc7a78f41b0cULL, 0x003b07929f6da558ULL}}, // 10^(-19) * 2^181
{{0xbaa23d2ec729af3dULL, 0x002f394219248446ULL}}, // 10^(-20) * 2^184
{{0xfbb4fdbf05baf297ULL, 0x0025c768141d369eULL}}, // 10^(-21) * 2^187
{{0x2c54c931a2c4b758ULL, 0x003c7240202ebdcbULL}}, // 10^(-22) * 2^191
{{0x89dd6dc14f03c5e0ULL, 0x00305b66802564a2ULL}}, // 10^(-23) * 2^194
{{0xd4b1249aa59c9e4dULL, 0x0026af8533511d4eULL}}, // 10^(-24) * 2^197
{{0x544ea0f76f60fd48ULL, 0x003de5a1ebb4fbb1ULL}}, // 10^(-25) * 2^201
{{0x76a54d92bf80caa0ULL, 0x00318481895d9627ULL}}, // 10^(-26) * 2^204
{{0x921dd7a89933d54dULL, 0x00279d346de4781fULL}}, // 10^(-27) * 2^207
{{0x8362f2a75b862214ULL, 0x003f61ed7ca0c032ULL}}, // 10^(-28) * 2^211
{{0xcf825bb91604e810ULL, 0x0032b4bdfd4d668eULL}}, // 10^(-29) * 2^214
{{0x0c684960de6a5340ULL, 0x00289097fdd7853fULL}}, // 10^(-30) * 2^217
{{0x3d203ab3e521dc33ULL, 0x002073accb12d0ffULL}}, // 10^(-31) * 2^220
{{0x2e99f7863b696052ULL, 0x0033ec47ab514e65ULL}}, // 10^(-32) * 2^224
{{0x587b2c6b62bab375ULL, 0x002989d2ef743eb7ULL}}, // 10^(-33) * 2^227
{{0xad2f56bc4efbc2c4ULL, 0x00213b0f25f69892ULL}}, // 10^(-34) * 2^230
{{0x28f5c28f5c28f5c2ULL, 0x028f5c28f5c28f5cULL}}, // 10^(-2) * 2^128
{{0x9db22d0e56041893ULL, 0x004189374bc6a7efULL}}, // 10^(-3) * 2^128
{{0x4af4f0d844d013a9ULL, 0x00346dc5d6388659ULL}}, // 10^(-4) * 2^131
{{0x08c3f3e0370cdc87ULL, 0x0029f16b11c6d1e1ULL}}, // 10^(-5) * 2^134
{{0x6d698fe69270b06cULL, 0x00218def416bdb1aULL}}, // 10^(-6) * 2^137
{{0xaf0f4ca41d811a46ULL, 0x0035afe535795e90ULL}}, // 10^(-7) * 2^141
{{0xbf3f70834acdae9fULL, 0x002af31dc4611873ULL}}, // 10^(-8) * 2^144
{{0x65cc5a02a23e254cULL, 0x00225c17d04dad29ULL}}, // 10^(-9) * 2^147
{{0x6fad5cd10396a213ULL, 0x0036f9bfb3af7b75ULL}}, // 10^(-10) * 2^151
{{0xbfbde3da69454e75ULL, 0x002bfaffc2f2c92aULL}}, // 10^(-11) * 2^154
{{0x32fe4fe1edd10b91ULL, 0x00232f33025bd422ULL}}, // 10^(-12) * 2^157
{{0x84ca19697c81ac1bULL, 0x00384b84d092ed03ULL}}, // 10^(-13) * 2^161
{{0x03d4e1213067bce3ULL, 0x002d09370d425736ULL}}, // 10^(-14) * 2^164
{{0x3643e74dc052fd82ULL, 0x0024075f3dceac2bULL}}, // 10^(-15) * 2^167
{{0x56d30baf9a1e626aULL, 0x0039a5652fb11378ULL}}, // 10^(-16) * 2^171
{{0x12426fbfae7eb521ULL, 0x002e1dea8c8da92dULL}}, // 10^(-17) * 2^174
{{0x41cebfcc8b9890e7ULL, 0x0024e4bba3a48757ULL}}, // 10^(-18) * 2^177
{{0x694acc7a78f41b0cULL, 0x003b07929f6da558ULL}}, // 10^(-19) * 2^181
{{0xbaa23d2ec729af3dULL, 0x002f394219248446ULL}}, // 10^(-20) * 2^184
{{0xfbb4fdbf05baf297ULL, 0x0025c768141d369eULL}}, // 10^(-21) * 2^187
{{0x2c54c931a2c4b758ULL, 0x003c7240202ebdcbULL}}, // 10^(-22) * 2^191
{{0x89dd6dc14f03c5e0ULL, 0x00305b66802564a2ULL}}, // 10^(-23) * 2^194
{{0xd4b1249aa59c9e4dULL, 0x0026af8533511d4eULL}}, // 10^(-24) * 2^197
{{0x544ea0f76f60fd48ULL, 0x003de5a1ebb4fbb1ULL}}, // 10^(-25) * 2^201
{{0x76a54d92bf80caa0ULL, 0x00318481895d9627ULL}}, // 10^(-26) * 2^204
{{0x921dd7a89933d54dULL, 0x00279d346de4781fULL}}, // 10^(-27) * 2^207
{{0x8362f2a75b862214ULL, 0x003f61ed7ca0c032ULL}}, // 10^(-28) * 2^211
{{0xcf825bb91604e810ULL, 0x0032b4bdfd4d668eULL}}, // 10^(-29) * 2^214
{{0x0c684960de6a5340ULL, 0x00289097fdd7853fULL}}, // 10^(-30) * 2^217
{{0x3d203ab3e521dc33ULL, 0x002073accb12d0ffULL}}, // 10^(-31) * 2^220
{{0x2e99f7863b696052ULL, 0x0033ec47ab514e65ULL}}, // 10^(-32) * 2^224
{{0x587b2c6b62bab375ULL, 0x002989d2ef743eb7ULL}}, // 10^(-33) * 2^227
{{0xad2f56bc4efbc2c4ULL, 0x00213b0f25f69892ULL}}, // 10^(-34) * 2^230
};
// ten2mk128M[k - 1] = 10^(-k) * 2^exp (k), where 1 <= k <= 4 and
@ -1214,7 +1214,7 @@ UINT192 ten2mk192truncM[] = {
};
// shiftright192M[] contains the right shift count to obtain C2* from the top
// 192 bits of the 192x192-bit product C2 * Kx if 0 <= ind <= 14 where ind is
// 192 bits of the 192x192-bit product C2 * Kx if 0 <= ind <= 14 where ind is
// the index in the table, or from the top 128 bits if 15 <= ind <= 18
int shiftright192M[] = {
16, // 208 - 192
@ -1345,7 +1345,7 @@ UINT256 ten2mk256truncM[] = { // the 64-bit word order is LL, LH, HL, HH
};
// shiftright256M[] contains the right shift count to obtain C2* from the top
// 192 bits of the 256x256-bit product C2 * Kx
// 192 bits of the 256x256-bit product C2 * Kx
int shiftright256M[] = {
15, // 335 - 320
19, // 339 - 320
@ -1376,7 +1376,7 @@ UINT64 maskhigh256M[] = {
0x0000ffffffffffffULL // 48 = 368 - 320 bits
};
// onehalf256M[] contains 1/2 positioned correctly for comparison with the
// onehalf256M[] contains 1/2 positioned correctly for comparison with the
// high bits of f*; the high 128 bits of the 512-bit mask are 0
UINT64 onehalf256M[] = {
0x0000000000004000ULL, // 15 = 335 - 320 bits
@ -3495,303 +3495,303 @@ UINT192 ten2mxtrunc192[] = {
UINT256 Kx256[] = {
{{0xcccccccccccccccdULL, 0xccccccccccccccccULL,
0xccccccccccccccccULL, 0xccccccccccccccccULL}},
// 10^-1 ~= cccccccccccccccc cccccccccccccccc
// 10^-1 ~= cccccccccccccccc cccccccccccccccc
// cccccccccccccccccccccccccccccccd * 2^-259
{{0x70a3d70a3d70a3d8ULL, 0xd70a3d70a3d70a3dULL,
0x3d70a3d70a3d70a3ULL, 0xa3d70a3d70a3d70aULL}},
// 10^-2 ~= a3d70a3d70a3d70a 3d70a3d70a3d70a3
// 10^-2 ~= a3d70a3d70a3d70a 3d70a3d70a3d70a3
// d70a3d70a3d70a3d70a3d70a3d70a3d8 * 2^-262
{{0xc083126e978d4fe0ULL, 0x78d4fdf3b645a1caULL,
0x645a1cac083126e9ULL, 0x83126e978d4fdf3bULL}},
// 10^-3 ~= 83126e978d4fdf3b 645a1cac083126e9
// 10^-3 ~= 83126e978d4fdf3b 645a1cac083126e9
// 78d4fdf3b645a1cac083126e978d4fe0 * 2^-265
{{0x67381d7dbf487fccULL, 0xc154c985f06f6944ULL,
0xd3c36113404ea4a8ULL, 0xd1b71758e219652bULL}},
// 10^-4 ~= d1b71758e219652b d3c36113404ea4a8
// 10^-4 ~= d1b71758e219652b d3c36113404ea4a8
// c154c985f06f694467381d7dbf487fcc * 2^-269
{{0x85c67dfe32a0663dULL, 0xcddd6e04c0592103ULL,
0x0fcf80dc33721d53ULL, 0xa7c5ac471b478423ULL}},
// 10^-5 ~= a7c5ac471b478423 fcf80dc33721d53
// 10^-5 ~= a7c5ac471b478423 fcf80dc33721d53
// cddd6e04c059210385c67dfe32a0663d * 2^-272
{{0x37d1fe64f54d1e97ULL, 0xd7e45803cd141a69ULL,
0xa63f9a49c2c1b10fULL, 0x8637bd05af6c69b5ULL}},
// 10^-6 ~= 8637bd05af6c69b5 a63f9a49c2c1b10f
// 10^-6 ~= 8637bd05af6c69b5 a63f9a49c2c1b10f
// d7e45803cd141a6937d1fe64f54d1e97 * 2^-275
{{0x8c8330a1887b6425ULL, 0x8ca08cd2e1b9c3dbULL,
0x3d32907604691b4cULL, 0xd6bf94d5e57a42bcULL}},
// 10^-7 ~= d6bf94d5e57a42bc 3d32907604691b4c
// 10^-7 ~= d6bf94d5e57a42bc 3d32907604691b4c
// 8ca08cd2e1b9c3db8c8330a1887b6425 * 2^-279
{{0x7068f3b46d2f8351ULL, 0x3d4d3d758161697cULL,
0xfdc20d2b36ba7c3dULL, 0xabcc77118461cefcULL}},
// 10^-8 ~= abcc77118461cefc fdc20d2b36ba7c3d
// 10^-8 ~= abcc77118461cefc fdc20d2b36ba7c3d
// 3d4d3d758161697c7068f3b46d2f8351 * 2^-282
{{0xf387295d242602a7ULL, 0xfdd7645e011abac9ULL,
0x31680a88f8953030ULL, 0x89705f4136b4a597ULL}},
// 10^-9 ~= 89705f4136b4a597 31680a88f8953030
// 10^-9 ~= 89705f4136b4a597 31680a88f8953030
// fdd7645e011abac9f387295d242602a7 * 2^-285
{{0xb8d8422ea03cd10bULL, 0x2fbf06fcce912adcULL,
0xb573440e5a884d1bULL, 0xdbe6fecebdedd5beULL}},
// 10^-10 ~= dbe6fecebdedd5be b573440e5a884d1b
// 10^-10 ~= dbe6fecebdedd5be b573440e5a884d1b
// 2fbf06fcce912adcb8d8422ea03cd10b * 2^-289
{{0x93e034f219ca40d6ULL, 0xf2ff38ca3eda88b0ULL,
0xf78f69a51539d748ULL, 0xafebff0bcb24aafeULL}},
// 10^-11 ~= afebff0bcb24aafe f78f69a51539d748
// 10^-11 ~= afebff0bcb24aafe f78f69a51539d748
// f2ff38ca3eda88b093e034f219ca40d6 * 2^-292
{{0x4319c3f4e16e9a45ULL, 0xf598fa3b657ba08dULL,
0xf93f87b7442e45d3ULL, 0x8cbccc096f5088cbULL}},
// 10^-12 ~= 8cbccc096f5088cb f93f87b7442e45d3
// 10^-12 ~= 8cbccc096f5088cb f93f87b7442e45d3
// f598fa3b657ba08d4319c3f4e16e9a45 * 2^-295
{{0x04f606549be42a07ULL, 0x88f4c3923bf900e2ULL,
0x2865a5f206b06fb9ULL, 0xe12e13424bb40e13ULL}},
// 10^-13 ~= e12e13424bb40e13 2865a5f206b06fb9
// 10^-13 ~= e12e13424bb40e13 2865a5f206b06fb9
// 88f4c3923bf900e204f606549be42a07 * 2^-299
{{0x03f805107cb68806ULL, 0x6d909c74fcc733e8ULL,
0x538484c19ef38c94ULL, 0xb424dc35095cd80fULL}},
// 10^-14 ~= b424dc35095cd80f 538484c19ef38c94
// 10^-14 ~= b424dc35095cd80f 538484c19ef38c94
// 6d909c74fcc733e803f805107cb68806 * 2^-302
{{0x3660040d3092066bULL, 0x57a6e390ca38f653ULL,
0x0f9d37014bf60a10ULL, 0x901d7cf73ab0acd9ULL}},
// 10^-15 ~= 901d7cf73ab0acd9 f9d37014bf60a10
// 10^-15 ~= 901d7cf73ab0acd9 f9d37014bf60a10
// 57a6e390ca38f6533660040d3092066b * 2^-305
{{0x23ccd3484db670abULL, 0xbf716c1add27f085ULL,
0x4c2ebe687989a9b3ULL, 0xe69594bec44de15bULL}},
// 10^-16 ~= e69594bec44de15b 4c2ebe687989a9b3
// 10^-16 ~= e69594bec44de15b 4c2ebe687989a9b3
// bf716c1add27f08523ccd3484db670ab * 2^-309
{{0x4fd70f6d0af85a23ULL, 0xff8df0157db98d37ULL,
0x09befeb9fad487c2ULL, 0xb877aa3236a4b449ULL}},
// 10^-17 ~= b877aa3236a4b449 9befeb9fad487c2
// 10^-17 ~= b877aa3236a4b449 9befeb9fad487c2
// ff8df0157db98d374fd70f6d0af85a23 * 2^-312
{{0x0cac0c573bf9e1b6ULL, 0x32d7f344649470f9ULL,
0x3aff322e62439fcfULL, 0x9392ee8e921d5d07ULL}},
// 10^-18 ~= 9392ee8e921d5d07 3aff322e62439fcf
// 10^-18 ~= 9392ee8e921d5d07 3aff322e62439fcf
// 32d7f344649470f90cac0c573bf9e1b6 * 2^-315
{{0xe11346f1f98fcf89ULL, 0x1e2652070753e7f4ULL,
0x2b31e9e3d06c32e5ULL, 0xec1e4a7db69561a5ULL}},
// 10^-19 ~= ec1e4a7db69561a5 2b31e9e3d06c32e5
// 10^-19 ~= ec1e4a7db69561a5 2b31e9e3d06c32e5
// 1e2652070753e7f4e11346f1f98fcf89 * 2^-319
{{0x4da9058e613fd93aULL, 0x181ea8059f76532aULL,
0x88f4bb1ca6bcf584ULL, 0xbce5086492111aeaULL}},
// 10^-20 ~= bce5086492111aea 88f4bb1ca6bcf584
// 10^-20 ~= bce5086492111aea 88f4bb1ca6bcf584
// 181ea8059f76532a4da9058e613fd93a * 2^-322
{{0xa48737a51a997a95ULL, 0x467eecd14c5ea8eeULL,
0xd3f6fc16ebca5e03ULL, 0x971da05074da7beeULL}},
// 10^-21 ~= 971da05074da7bee d3f6fc16ebca5e03
// 10^-21 ~= 971da05074da7bee d3f6fc16ebca5e03
// 467eecd14c5ea8eea48737a51a997a95 * 2^-325
{{0x3a71f2a1c428c421ULL, 0x70cb148213caa7e4ULL,
0x5324c68b12dd6338ULL, 0xf1c90080baf72cb1ULL}},
// 10^-22 ~= f1c90080baf72cb1 5324c68b12dd6338
// 10^-22 ~= f1c90080baf72cb1 5324c68b12dd6338
// 70cb148213caa7e43a71f2a1c428c421 * 2^-329
{{0x2ec18ee7d0209ce8ULL, 0x8d6f439b43088650ULL,
0x75b7053c0f178293ULL, 0xc16d9a0095928a27ULL}},
// 10^-23 ~= c16d9a0095928a27 75b7053c0f178293
// 10^-23 ~= c16d9a0095928a27 75b7053c0f178293
// 8d6f439b430886502ec18ee7d0209ce8 * 2^-332
{{0xf23472530ce6e3edULL, 0xd78c3615cf3a050cULL,
0xc4926a9672793542ULL, 0x9abe14cd44753b52ULL}},
// 10^-24 ~= 9abe14cd44753b52 c4926a9672793542
// 10^-24 ~= 9abe14cd44753b52 c4926a9672793542
// d78c3615cf3a050cf23472530ce6e3ed * 2^-335
{{0xe9ed83b814a49fe1ULL, 0x8c1389bc7ec33b47ULL,
0x3a83ddbd83f52204ULL, 0xf79687aed3eec551ULL}},
// 10^-25 ~= f79687aed3eec551 3a83ddbd83f52204
// 10^-25 ~= f79687aed3eec551 3a83ddbd83f52204
// 8c1389bc7ec33b47e9ed83b814a49fe1 * 2^-339
{{0x87f1362cdd507fe7ULL, 0x3cdc6e306568fc39ULL,
0x95364afe032a819dULL, 0xc612062576589ddaULL}},
// 10^-26 ~= c612062576589dda 95364afe032a819d
// 10^-26 ~= c612062576589dda 95364afe032a819d
// 3cdc6e306568fc3987f1362cdd507fe7 * 2^-342
{{0x9ff42b5717739986ULL, 0xca49f1c05120c9c7ULL,
0x775ea264cf55347dULL, 0x9e74d1b791e07e48ULL}},
// 10^-27 ~= 9e74d1b791e07e48 775ea264cf55347d
// 10^-27 ~= 9e74d1b791e07e48 775ea264cf55347d
// ca49f1c05120c9c79ff42b5717739986 * 2^-345
{{0xccb9def1bf1f5c09ULL, 0x76dcb60081ce0fa5ULL,
0x8bca9d6e188853fcULL, 0xfd87b5f28300ca0dULL}},
// 10^-28 ~= fd87b5f28300ca0d 8bca9d6e188853fc
// 10^-28 ~= fd87b5f28300ca0d 8bca9d6e188853fc
// 76dcb60081ce0fa5ccb9def1bf1f5c09 * 2^-349
{{0xa3c7e58e327f7cd4ULL, 0x5f16f80067d80c84ULL,
0x096ee45813a04330ULL, 0xcad2f7f5359a3b3eULL}},
// 10^-29 ~= cad2f7f5359a3b3e 96ee45813a04330
// 10^-29 ~= cad2f7f5359a3b3e 96ee45813a04330
// 5f16f80067d80c84a3c7e58e327f7cd4 * 2^-352
{{0xb6398471c1ff9710ULL, 0x18df2ccd1fe00a03ULL,
0xa1258379a94d028dULL, 0xa2425ff75e14fc31ULL}},
// 10^-30 ~= a2425ff75e14fc31 a1258379a94d028d
// 10^-30 ~= a2425ff75e14fc31 a1258379a94d028d
// 18df2ccd1fe00a03b6398471c1ff9710 * 2^-355
{{0xf82e038e34cc78daULL, 0x4718f0a419800802ULL,
0x80eacf948770ced7ULL, 0x81ceb32c4b43fcf4ULL}},
// 10^-31 ~= 81ceb32c4b43fcf4 80eacf948770ced7
// 10^-31 ~= 81ceb32c4b43fcf4 80eacf948770ced7
// 4718f0a419800802f82e038e34cc78da * 2^-358
{{0x59e338e387ad8e29ULL, 0x0b5b1aa028ccd99eULL,
0x67de18eda5814af2ULL, 0xcfb11ead453994baULL}},
// 10^-32 ~= cfb11ead453994ba 67de18eda5814af2
// 10^-32 ~= cfb11ead453994ba 67de18eda5814af2
// b5b1aa028ccd99e59e338e387ad8e29 * 2^-362
{{0x47e8fa4f9fbe0b54ULL, 0x6f7c154ced70ae18ULL,
0xecb1ad8aeacdd58eULL, 0xa6274bbdd0fadd61ULL}},
// 10^-33 ~= a6274bbdd0fadd61 ecb1ad8aeacdd58e
// 10^-33 ~= a6274bbdd0fadd61 ecb1ad8aeacdd58e
// 6f7c154ced70ae1847e8fa4f9fbe0b54 * 2^-365
{{0xd320c83fb2fe6f76ULL, 0xbf967770bdf3be79ULL,
0xbd5af13bef0b113eULL, 0x84ec3c97da624ab4ULL}},
// 10^-34 ~= 84ec3c97da624ab4 bd5af13bef0b113e
// 10^-34 ~= 84ec3c97da624ab4 bd5af13bef0b113e
// bf967770bdf3be79d320c83fb2fe6f76 * 2^-368
{{0x85014065eb30b257ULL, 0x65bd8be79652ca5cULL,
0x955e4ec64b44e864ULL, 0xd4ad2dbfc3d07787ULL}},
// 10^-35 ~= d4ad2dbfc3d07787 955e4ec64b44e864
// 10^-35 ~= d4ad2dbfc3d07787 955e4ec64b44e864
// 65bd8be79652ca5c85014065eb30b257 * 2^-372
{{0xd0cdcd1e55c08eacULL, 0xeafe098611dbd516ULL,
0xdde50bd1d5d0b9e9ULL, 0xaa242499697392d2ULL}},
// 10^-36 ~= aa242499697392d2 dde50bd1d5d0b9e9
// 10^-36 ~= aa242499697392d2 dde50bd1d5d0b9e9
// eafe098611dbd516d0cdcd1e55c08eac * 2^-375
{{0x40a4a418449a0bbdULL, 0xbbfe6e04db164412ULL,
0x7e50d64177da2e54ULL, 0x881cea14545c7575ULL}},
// 10^-37 ~= 881cea14545c7575 7e50d64177da2e54
// 10^-37 ~= 881cea14545c7575 7e50d64177da2e54
// bbfe6e04db16441240a4a418449a0bbd * 2^-378
{{0x9aa1068d3a9012c8ULL, 0x2cca49a15e8a0683ULL,
0x96e7bd358c904a21ULL, 0xd9c7dced53c72255ULL}},
// 10^-38 ~= d9c7dced53c72255 96e7bd358c904a21
// 10^-38 ~= d9c7dced53c72255 96e7bd358c904a21
// 2cca49a15e8a06839aa1068d3a9012c8 * 2^-382
{{0x154d9ed7620cdbd3ULL, 0x8a3b6e1ab2080536ULL,
0xabec975e0a0d081aULL, 0xae397d8aa96c1b77ULL}},
// 10^-39 ~= ae397d8aa96c1b77 abec975e0a0d081a
// 10^-39 ~= ae397d8aa96c1b77 abec975e0a0d081a
// 8a3b6e1ab2080536154d9ed7620cdbd3 * 2^-385
{{0x443e18ac4e70afdcULL, 0x3b62be7bc1a0042bULL,
0x2323ac4b3b3da015ULL, 0x8b61313bbabce2c6ULL}},
// 10^-40 ~= 8b61313bbabce2c6 2323ac4b3b3da015
// 10^-40 ~= 8b61313bbabce2c6 2323ac4b3b3da015
// 3b62be7bc1a0042b443e18ac4e70afdc * 2^-388
{{0x6d30277a171ab2f9ULL, 0x5f0463f935ccd378ULL,
0x6b6c46dec52f6688ULL, 0xdf01e85f912e37a3ULL}},
// 10^-41 ~= df01e85f912e37a3 6b6c46dec52f6688
// 10^-41 ~= df01e85f912e37a3 6b6c46dec52f6688
// 5f0463f935ccd3786d30277a171ab2f9 * 2^-392
{{0x8a8cec61ac155bfbULL, 0x7f36b660f7d70f93ULL,
0x55f038b237591ed3ULL, 0xb267ed1940f1c61cULL}},
// 10^-42 ~= b267ed1940f1c61c 55f038b237591ed3
// 10^-42 ~= b267ed1940f1c61c 55f038b237591ed3
// 7f36b660f7d70f938a8cec61ac155bfb * 2^-395
{{0x3ba3f04e23444996ULL, 0xcc2bc51a5fdf3fa9ULL,
0x77f3608e92adb242ULL, 0x8eb98a7a9a5b04e3ULL}},
// 10^-43 ~= 8eb98a7a9a5b04e3 77f3608e92adb242
// 10^-43 ~= 8eb98a7a9a5b04e3 77f3608e92adb242
// cc2bc51a5fdf3fa93ba3f04e23444996 * 2^-398
{{0xf9064d49d206dc22ULL, 0xe046082a32fecc41ULL,
0x8cb89a7db77c506aULL, 0xe45c10c42a2b3b05ULL}},
// 10^-44 ~= e45c10c42a2b3b05 8cb89a7db77c506a
// 10^-44 ~= e45c10c42a2b3b05 8cb89a7db77c506a
// e046082a32fecc41f9064d49d206dc22 * 2^-402
{{0xfa6b7107db38b01bULL, 0x4d04d354f598a367ULL,
0x3d607b97c5fd0d22ULL, 0xb6b00d69bb55c8d1ULL}},
// 10^-45 ~= b6b00d69bb55c8d1 3d607b97c5fd0d22
// 10^-45 ~= b6b00d69bb55c8d1 3d607b97c5fd0d22
// 4d04d354f598a367fa6b7107db38b01b * 2^-405
{{0xfb8927397c2d59b0ULL, 0x3d9d75dd9146e91fULL,
0xcab3961304ca70e8ULL, 0x9226712162ab070dULL}},
// 10^-46 ~= 9226712162ab070d cab3961304ca70e8
// 10^-46 ~= 9226712162ab070d cab3961304ca70e8
// 3d9d75dd9146e91ffb8927397c2d59b0 * 2^-408
{{0xf8db71f5937bc2b2ULL, 0xc8fbefc8e87174ffULL,
0xaab8f01e6e10b4a6ULL, 0xe9d71b689dde71afULL}},
// 10^-47 ~= e9d71b689dde71af aab8f01e6e10b4a6
// 10^-47 ~= e9d71b689dde71af aab8f01e6e10b4a6
// c8fbefc8e87174fff8db71f5937bc2b2 * 2^-412
{{0x2d7c5b2adc630228ULL, 0x3a63263a538df733ULL,
0x5560c018580d5d52ULL, 0xbb127c53b17ec159ULL}},
// 10^-48 ~= bb127c53b17ec159 5560c018580d5d52
// 10^-48 ~= bb127c53b17ec159 5560c018580d5d52
// 3a63263a538df7332d7c5b2adc630228 * 2^-415
{{0x24637c2249e8ce87ULL, 0x2eb5b82ea93e5f5cULL,
0xdde7001379a44aa8ULL, 0x95a8637627989aadULL}},
// 10^-49 ~= 95a8637627989aad dde7001379a44aa8
// 10^-49 ~= 95a8637627989aad dde7001379a44aa8
// 2eb5b82ea93e5f5c24637c2249e8ce87 * 2^-418
{{0x3a38c69d430e173eULL, 0x4abc59e441fd6560ULL,
0x963e66858f6d4440ULL, 0xef73d256a5c0f77cULL}},
// 10^-50 ~= ef73d256a5c0f77c 963e66858f6d4440
// 10^-50 ~= ef73d256a5c0f77c 963e66858f6d4440
// 4abc59e441fd65603a38c69d430e173e * 2^-422
{{0x94fa387dcf3e78feULL, 0x6efd14b69b311de6ULL,
0xde98520472bdd033ULL, 0xbf8fdb78849a5f96ULL}},
// 10^-51 ~= bf8fdb78849a5f96 de98520472bdd033
// 10^-51 ~= bf8fdb78849a5f96 de98520472bdd033
// 6efd14b69b311de694fa387dcf3e78fe * 2^-425
{{0xaa61c6cb0c31fa65ULL, 0x259743c548f417ebULL,
0xe546a8038efe4029ULL, 0x993fe2c6d07b7fabULL}},
// 10^-52 ~= 993fe2c6d07b7fab e546a8038efe4029
// 10^-52 ~= 993fe2c6d07b7fab e546a8038efe4029
// 259743c548f417ebaa61c6cb0c31fa65 * 2^-428
{{0xaa360ade79e990a2ULL, 0x3c25393ba7ecf312ULL,
0xd53dd99f4b3066a8ULL, 0xf53304714d9265dfULL}},
// 10^-53 ~= f53304714d9265df d53dd99f4b3066a8
// 10^-53 ~= f53304714d9265df d53dd99f4b3066a8
// 3c25393ba7ecf312aa360ade79e990a2 * 2^-432
{{0x882b3be52e5473b5ULL, 0x96842dc95323f5a8ULL,
0xaa97e14c3c26b886ULL, 0xc428d05aa4751e4cULL}},
// 10^-54 ~= c428d05aa4751e4c aa97e14c3c26b886
// 10^-54 ~= c428d05aa4751e4c aa97e14c3c26b886
// 96842dc95323f5a8882b3be52e5473b5 * 2^-435
{{0xd355c98425105c91ULL, 0xab9cf16ddc1cc486ULL,
0x55464dd69685606bULL, 0x9ced737bb6c4183dULL}},
// 10^-55 ~= 9ced737bb6c4183d 55464dd69685606b
// 10^-55 ~= 9ced737bb6c4183d 55464dd69685606b
// ab9cf16ddc1cc486d355c98425105c91 * 2^-438
{{0xebbc75a03b4d60e7ULL, 0xac2e4f162cfad40aULL,
0xeed6e2f0f0d56712ULL, 0xfb158592be068d2eULL}},
// 10^-56 ~= fb158592be068d2e eed6e2f0f0d56712
// 10^-56 ~= fb158592be068d2e eed6e2f0f0d56712
// ac2e4f162cfad40aebbc75a03b4d60e7 * 2^-442
{{0x8963914cfc3de71fULL, 0x568b727823fbdcd5ULL,
0xf245825a5a445275ULL, 0xc8de047564d20a8bULL}},
// 10^-57 ~= c8de047564d20a8b f245825a5a445275
// 10^-57 ~= c8de047564d20a8b f245825a5a445275
// 568b727823fbdcd58963914cfc3de71f * 2^-445
{{0xd44fa770c9cb1f4cULL, 0x453c5b934ffcb0aaULL,
0x5b6aceaeae9d0ec4ULL, 0xa0b19d2ab70e6ed6ULL}},
// 10^-58 ~= a0b19d2ab70e6ed6 5b6aceaeae9d0ec4
// 10^-58 ~= a0b19d2ab70e6ed6 5b6aceaeae9d0ec4
// 453c5b934ffcb0aad44fa770c9cb1f4c * 2^-448
{{0xdd0c85f3d4a27f70ULL, 0x37637c75d996f3bbULL,
0xe2bbd88bbee40bd0ULL, 0x808e17555f3ebf11ULL}},
// 10^-59 ~= 808e17555f3ebf11 e2bbd88bbee40bd0
// 10^-59 ~= 808e17555f3ebf11 e2bbd88bbee40bd0
// 37637c75d996f3bbdd0c85f3d4a27f70 * 2^-451
{{0x61ada31fba9d98b3ULL, 0x256bfa5628f185f9ULL,
0x3792f412cb06794dULL, 0xcdb02555653131b6ULL}},
// 10^-60 ~= cdb02555653131b6 3792f412cb06794d
// 10^-60 ~= cdb02555653131b6 3792f412cb06794d
// 256bfa5628f185f961ada31fba9d98b3 * 2^-455
{{0xe7be1c196217ad5cULL, 0x51232eab53f46b2dULL,
0x5fa8c3423c052dd7ULL, 0xa48ceaaab75a8e2bULL}},
// 10^-61 ~= a48ceaaab75a8e2b 5fa8c3423c052dd7
// 10^-61 ~= a48ceaaab75a8e2b 5fa8c3423c052dd7
// 51232eab53f46b2de7be1c196217ad5c * 2^-458
{{0x52fe7ce11b46244aULL, 0x40e8f222a99055beULL,
0x1953cf68300424acULL, 0x83a3eeeef9153e89ULL}},
// 10^-62 ~= 83a3eeeef9153e89 1953cf68300424ac
// 10^-62 ~= 83a3eeeef9153e89 1953cf68300424ac
// 40e8f222a99055be52fe7ce11b46244a * 2^-461
{{0x51972e34f8703a10ULL, 0x34a7e9d10f4d55fdULL,
0x8eec7f0d19a03aadULL, 0xd29fe4b18e88640eULL}},
// 10^-63 ~= d29fe4b18e88640e 8eec7f0d19a03aad
// 10^-63 ~= d29fe4b18e88640e 8eec7f0d19a03aad
// 34a7e9d10f4d55fd51972e34f8703a10 * 2^-465
{{0x0e128b5d938cfb40ULL, 0x2a1fee40d90aab31ULL,
0x3f2398d747b36224ULL, 0xa87fea27a539e9a5ULL}},
// 10^-64 ~= a87fea27a539e9a5 3f2398d747b36224
// 10^-64 ~= a87fea27a539e9a5 3f2398d747b36224
// 2a1fee40d90aab310e128b5d938cfb40 * 2^-468
{{0x3e753c4adc70c900ULL, 0xbb4cbe9a473bbc27ULL,
0x98e947129fc2b4e9ULL, 0x86ccbb52ea94baeaULL}},
// 10^-65 ~= 86ccbb52ea94baea 98e947129fc2b4e9
// 10^-65 ~= 86ccbb52ea94baea 98e947129fc2b4e9
// bb4cbe9a473bbc273e753c4adc70c900 * 2^-471
{{0x30bb93aafa4e0e66ULL, 0x9214642a0b92c6a5ULL,
0x5b0ed81dcc6abb0fULL, 0xd7adf884aa879177ULL}},
// 10^-66 ~= d7adf884aa879177 5b0ed81dcc6abb0f
// 10^-66 ~= d7adf884aa879177 5b0ed81dcc6abb0f
// 9214642a0b92c6a530bb93aafa4e0e66 * 2^-475
{{0xc0960fbbfb71a51fULL, 0xa8105021a2dbd21dULL,
0xe272467e3d222f3fULL, 0xac8b2d36eed2dac5ULL}},
// 10^-67 ~= ac8b2d36eed2dac5 e272467e3d222f3f
// 10^-67 ~= ac8b2d36eed2dac5 e272467e3d222f3f
// a8105021a2dbd21dc0960fbbfb71a51f * 2^-478
{{0x66de72fcc927b74cULL, 0xb9a6a6814f1641b1ULL,
0x1b8e9ecb641b58ffULL, 0x8a08f0f8bf0f156bULL}},
// 10^-68 ~= 8a08f0f8bf0f156b 1b8e9ecb641b58ff
// 10^-68 ~= 8a08f0f8bf0f156b 1b8e9ecb641b58ff
// b9a6a6814f1641b166de72fcc927b74c * 2^-481
{{0xd7ca5194750c5879ULL, 0xf5d770cee4f0691bULL,
0xf8e431456cf88e65ULL, 0xdcdb1b2798182244ULL}},
// 10^-69 ~= dcdb1b2798182244 f8e431456cf88e65
// 10^-69 ~= dcdb1b2798182244 f8e431456cf88e65
// f5d770cee4f0691bd7ca5194750c5879 * 2^-485
{{0xdfd50e105da379faULL, 0x9179270bea59edafULL,
0x2d835a9df0c6d851ULL, 0xb0af48ec79ace837ULL}},
// 10^-70 ~= b0af48ec79ace837 2d835a9df0c6d851
// 10^-70 ~= b0af48ec79ace837 2d835a9df0c6d851
// 9179270bea59edafdfd50e105da379fa * 2^-488
{{0x19773e737e1c6195ULL, 0x0dfa85a321e18af3ULL,
0x579c487e5a38ad0eULL, 0x8d590723948a535fULL}},
// 10^-71 ~= 8d590723948a535f 579c487e5a38ad0e
// 10^-71 ~= 8d590723948a535f 579c487e5a38ad0e
// dfa85a321e18af319773e737e1c6195 * 2^-491
{{0xf58b971f302d68efULL, 0x165da29e9c9c1184ULL,
0x25c6da63c38de1b0ULL, 0xe2280b6c20dd5232ULL}},
// 10^-72 ~= e2280b6c20dd5232 25c6da63c38de1b0
// 10^-72 ~= e2280b6c20dd5232 25c6da63c38de1b0
// 165da29e9c9c1184f58b971f302d68ef * 2^-495
{{0xc46fac18f3578725ULL, 0x4517b54bb07cdad0ULL,
0x1e38aeb6360b1af3ULL, 0xb4ecd5f01a4aa828ULL}},
// 10^-73 ~= b4ecd5f01a4aa828 1e38aeb6360b1af3
// 10^-73 ~= b4ecd5f01a4aa828 1e38aeb6360b1af3
// 4517b54bb07cdad0c46fac18f3578725 * 2^-498
{{0x36bfbce0c2ac6c1eULL, 0x9dac910959fd7bdaULL,
0xb1c6f22b5e6f48c2ULL, 0x90bd77f3483bb9b9ULL}},
// 10^-74 ~= 90bd77f3483bb9b9 b1c6f22b5e6f48c2
// 10^-74 ~= 90bd77f3483bb9b9 b1c6f22b5e6f48c2
// 9dac910959fd7bda36bfbce0c2ac6c1e * 2^-501
{{0x2465fb01377a4696ULL, 0x2f7a81a88ffbf95dULL,
0xb60b1d1230b20e04ULL, 0xe7958cb87392c2c2ULL}}
// 10^-75 ~= e7958cb87392c2c2 b60b1d1230b20e04
// 10^-75 ~= e7958cb87392c2c2 b60b1d1230b20e04
// 2f7a81a88ffbf95d2465fb01377a4696 * 2^-505
};
@ -4032,302 +4032,302 @@ UINT64 mask256[] = {
UINT256 ten2mxtrunc256[] = {
{{0xccccccccccccccccULL, 0xccccccccccccccccULL,
0xccccccccccccccccULL, 0xccccccccccccccccULL}},
// (ten2mx >> 256) = cccccccccccccccc cccccccccccccccc
// (ten2mx >> 256) = cccccccccccccccc cccccccccccccccc
// cccccccccccccccccccccccccccccccc
{{0x70a3d70a3d70a3d7ULL, 0xd70a3d70a3d70a3dULL,
0x3d70a3d70a3d70a3ULL, 0xa3d70a3d70a3d70aULL}},
// (ten2mx >> 256) = a3d70a3d70a3d70a 3d70a3d70a3d70a3
// (ten2mx >> 256) = a3d70a3d70a3d70a 3d70a3d70a3d70a3
// d70a3d70a3d70a3d70a3d70a3d70a3d7
{{0xc083126e978d4fdfULL, 0x78d4fdf3b645a1caULL,
0x645a1cac083126e9ULL, 0x83126e978d4fdf3bULL}},
// (ten2mx >> 256) = 83126e978d4fdf3b 645a1cac083126e9
// (ten2mx >> 256) = 83126e978d4fdf3b 645a1cac083126e9
// 78d4fdf3b645a1cac083126e978d4fdf
{{0x67381d7dbf487fcbULL, 0xc154c985f06f6944ULL,
0xd3c36113404ea4a8ULL, 0xd1b71758e219652bULL}},
// (ten2mx >> 256) = d1b71758e219652b d3c36113404ea4a8
// (ten2mx >> 256) = d1b71758e219652b d3c36113404ea4a8
// c154c985f06f694467381d7dbf487fcb
{{0x85c67dfe32a0663cULL, 0xcddd6e04c0592103ULL,
0x0fcf80dc33721d53ULL, 0xa7c5ac471b478423ULL}},
// (ten2mx >> 256) = a7c5ac471b478423 fcf80dc33721d53
// (ten2mx >> 256) = a7c5ac471b478423 fcf80dc33721d53
// cddd6e04c059210385c67dfe32a0663c
{{0x37d1fe64f54d1e96ULL, 0xd7e45803cd141a69ULL,
0xa63f9a49c2c1b10fULL, 0x8637bd05af6c69b5ULL}},
// (ten2mx >> 256) = 8637bd05af6c69b5 a63f9a49c2c1b10f
// (ten2mx >> 256) = 8637bd05af6c69b5 a63f9a49c2c1b10f
// d7e45803cd141a6937d1fe64f54d1e96
{{0x8c8330a1887b6424ULL, 0x8ca08cd2e1b9c3dbULL,
0x3d32907604691b4cULL, 0xd6bf94d5e57a42bcULL}},
// (ten2mx >> 256) = d6bf94d5e57a42bc 3d32907604691b4c
// (ten2mx >> 256) = d6bf94d5e57a42bc 3d32907604691b4c
// 8ca08cd2e1b9c3db8c8330a1887b6424
{{0x7068f3b46d2f8350ULL, 0x3d4d3d758161697cULL,
0xfdc20d2b36ba7c3dULL, 0xabcc77118461cefcULL}},
// (ten2mx >> 256) = abcc77118461cefc fdc20d2b36ba7c3d
// (ten2mx >> 256) = abcc77118461cefc fdc20d2b36ba7c3d
// 3d4d3d758161697c7068f3b46d2f8350
{{0xf387295d242602a6ULL, 0xfdd7645e011abac9ULL,
0x31680a88f8953030ULL, 0x89705f4136b4a597ULL}},
// (ten2mx >> 256) = 89705f4136b4a597 31680a88f8953030
// (ten2mx >> 256) = 89705f4136b4a597 31680a88f8953030
// fdd7645e011abac9f387295d242602a6
{{0xb8d8422ea03cd10aULL, 0x2fbf06fcce912adcULL,
0xb573440e5a884d1bULL, 0xdbe6fecebdedd5beULL}},
// (ten2mx >> 256) = dbe6fecebdedd5be b573440e5a884d1b
// (ten2mx >> 256) = dbe6fecebdedd5be b573440e5a884d1b
// 2fbf06fcce912adcb8d8422ea03cd10a
{{0x93e034f219ca40d5ULL, 0xf2ff38ca3eda88b0ULL,
0xf78f69a51539d748ULL, 0xafebff0bcb24aafeULL}},
// (ten2mx >> 256) = afebff0bcb24aafe f78f69a51539d748
// (ten2mx >> 256) = afebff0bcb24aafe f78f69a51539d748
// f2ff38ca3eda88b093e034f219ca40d5
{{0x4319c3f4e16e9a44ULL, 0xf598fa3b657ba08dULL,
0xf93f87b7442e45d3ULL, 0x8cbccc096f5088cbULL}},
// (ten2mx >> 256) = 8cbccc096f5088cb f93f87b7442e45d3
// (ten2mx >> 256) = 8cbccc096f5088cb f93f87b7442e45d3
// f598fa3b657ba08d4319c3f4e16e9a44
{{0x04f606549be42a06ULL, 0x88f4c3923bf900e2ULL,
0x2865a5f206b06fb9ULL, 0xe12e13424bb40e13ULL}},
// (ten2mx >> 256) = e12e13424bb40e13 2865a5f206b06fb9
// (ten2mx >> 256) = e12e13424bb40e13 2865a5f206b06fb9
// 88f4c3923bf900e204f606549be42a06
{{0x03f805107cb68805ULL, 0x6d909c74fcc733e8ULL,
0x538484c19ef38c94ULL, 0xb424dc35095cd80fULL}},
// (ten2mx >> 256) = b424dc35095cd80f 538484c19ef38c94
// (ten2mx >> 256) = b424dc35095cd80f 538484c19ef38c94
// 6d909c74fcc733e803f805107cb68805
{{0x3660040d3092066aULL, 0x57a6e390ca38f653ULL,
0x0f9d37014bf60a10ULL, 0x901d7cf73ab0acd9ULL}},
// (ten2mx >> 256) = 901d7cf73ab0acd9 f9d37014bf60a10
// (ten2mx >> 256) = 901d7cf73ab0acd9 f9d37014bf60a10
// 57a6e390ca38f6533660040d3092066a
{{0x23ccd3484db670aaULL, 0xbf716c1add27f085ULL,
0x4c2ebe687989a9b3ULL, 0xe69594bec44de15bULL}},
// (ten2mx >> 256) = e69594bec44de15b 4c2ebe687989a9b3
// (ten2mx >> 256) = e69594bec44de15b 4c2ebe687989a9b3
// bf716c1add27f08523ccd3484db670aa
{{0x4fd70f6d0af85a22ULL, 0xff8df0157db98d37ULL,
0x09befeb9fad487c2ULL, 0xb877aa3236a4b449ULL}},
// (ten2mx >> 256) = b877aa3236a4b449 9befeb9fad487c2
// (ten2mx >> 256) = b877aa3236a4b449 9befeb9fad487c2
// ff8df0157db98d374fd70f6d0af85a22
{{0x0cac0c573bf9e1b5ULL, 0x32d7f344649470f9ULL,
0x3aff322e62439fcfULL, 0x9392ee8e921d5d07ULL}},
// (ten2mx >> 256) = 9392ee8e921d5d07 3aff322e62439fcf
// (ten2mx >> 256) = 9392ee8e921d5d07 3aff322e62439fcf
// 32d7f344649470f90cac0c573bf9e1b5
{{0xe11346f1f98fcf88ULL, 0x1e2652070753e7f4ULL,
0x2b31e9e3d06c32e5ULL, 0xec1e4a7db69561a5ULL}},
// (ten2mx >> 256) = ec1e4a7db69561a5 2b31e9e3d06c32e5
// (ten2mx >> 256) = ec1e4a7db69561a5 2b31e9e3d06c32e5
// 1e2652070753e7f4e11346f1f98fcf88
{{0x4da9058e613fd939ULL, 0x181ea8059f76532aULL,
0x88f4bb1ca6bcf584ULL, 0xbce5086492111aeaULL}},
// (ten2mx >> 256) = bce5086492111aea 88f4bb1ca6bcf584
// (ten2mx >> 256) = bce5086492111aea 88f4bb1ca6bcf584
// 181ea8059f76532a4da9058e613fd939
{{0xa48737a51a997a94ULL, 0x467eecd14c5ea8eeULL,
0xd3f6fc16ebca5e03ULL, 0x971da05074da7beeULL}},
// (ten2mx >> 256) = 971da05074da7bee d3f6fc16ebca5e03
// (ten2mx >> 256) = 971da05074da7bee d3f6fc16ebca5e03
// 467eecd14c5ea8eea48737a51a997a94
{{0x3a71f2a1c428c420ULL, 0x70cb148213caa7e4ULL,
0x5324c68b12dd6338ULL, 0xf1c90080baf72cb1ULL}},
// (ten2mx >> 256) = f1c90080baf72cb1 5324c68b12dd6338
// (ten2mx >> 256) = f1c90080baf72cb1 5324c68b12dd6338
// 70cb148213caa7e43a71f2a1c428c420
{{0x2ec18ee7d0209ce7ULL, 0x8d6f439b43088650ULL,
0x75b7053c0f178293ULL, 0xc16d9a0095928a27ULL}},
// (ten2mx >> 256) = c16d9a0095928a27 75b7053c0f178293
// (ten2mx >> 256) = c16d9a0095928a27 75b7053c0f178293
// 8d6f439b430886502ec18ee7d0209ce7
{{0xf23472530ce6e3ecULL, 0xd78c3615cf3a050cULL,
0xc4926a9672793542ULL, 0x9abe14cd44753b52ULL}},
// (ten2mx >> 256) = 9abe14cd44753b52 c4926a9672793542
// (ten2mx >> 256) = 9abe14cd44753b52 c4926a9672793542
// d78c3615cf3a050cf23472530ce6e3ec
{{0xe9ed83b814a49fe0ULL, 0x8c1389bc7ec33b47ULL,
0x3a83ddbd83f52204ULL, 0xf79687aed3eec551ULL}},
// (ten2mx >> 256) = f79687aed3eec551 3a83ddbd83f52204
// (ten2mx >> 256) = f79687aed3eec551 3a83ddbd83f52204
// 8c1389bc7ec33b47e9ed83b814a49fe0
{{0x87f1362cdd507fe6ULL, 0x3cdc6e306568fc39ULL,
0x95364afe032a819dULL, 0xc612062576589ddaULL}},
// (ten2mx >> 256) = c612062576589dda 95364afe032a819d
// (ten2mx >> 256) = c612062576589dda 95364afe032a819d
// 3cdc6e306568fc3987f1362cdd507fe6
{{0x9ff42b5717739985ULL, 0xca49f1c05120c9c7ULL,
0x775ea264cf55347dULL, 0x9e74d1b791e07e48ULL}},
// (ten2mx >> 256) = 9e74d1b791e07e48 775ea264cf55347d
// (ten2mx >> 256) = 9e74d1b791e07e48 775ea264cf55347d
// ca49f1c05120c9c79ff42b5717739985
{{0xccb9def1bf1f5c08ULL, 0x76dcb60081ce0fa5ULL,
0x8bca9d6e188853fcULL, 0xfd87b5f28300ca0dULL}},
// (ten2mx >> 256) = fd87b5f28300ca0d 8bca9d6e188853fc
// (ten2mx >> 256) = fd87b5f28300ca0d 8bca9d6e188853fc
// 76dcb60081ce0fa5ccb9def1bf1f5c08
{{0xa3c7e58e327f7cd3ULL, 0x5f16f80067d80c84ULL,
0x096ee45813a04330ULL, 0xcad2f7f5359a3b3eULL}},
// (ten2mx >> 256) = cad2f7f5359a3b3e 96ee45813a04330
// (ten2mx >> 256) = cad2f7f5359a3b3e 96ee45813a04330
// 5f16f80067d80c84a3c7e58e327f7cd3
{{0xb6398471c1ff970fULL, 0x18df2ccd1fe00a03ULL,
0xa1258379a94d028dULL, 0xa2425ff75e14fc31ULL}},
// (ten2mx >> 256) = a2425ff75e14fc31 a1258379a94d028d
// (ten2mx >> 256) = a2425ff75e14fc31 a1258379a94d028d
// 18df2ccd1fe00a03b6398471c1ff970f
{{0xf82e038e34cc78d9ULL, 0x4718f0a419800802ULL,
0x80eacf948770ced7ULL, 0x81ceb32c4b43fcf4ULL}},
// (ten2mx >> 256) = 81ceb32c4b43fcf4 80eacf948770ced7
// (ten2mx >> 256) = 81ceb32c4b43fcf4 80eacf948770ced7
// 4718f0a419800802f82e038e34cc78d9
{{0x59e338e387ad8e28ULL, 0x0b5b1aa028ccd99eULL,
0x67de18eda5814af2ULL, 0xcfb11ead453994baULL}},
// (ten2mx >> 256) = cfb11ead453994ba 67de18eda5814af2
// (ten2mx >> 256) = cfb11ead453994ba 67de18eda5814af2
// b5b1aa028ccd99e59e338e387ad8e28
{{0x47e8fa4f9fbe0b53ULL, 0x6f7c154ced70ae18ULL,
0xecb1ad8aeacdd58eULL, 0xa6274bbdd0fadd61ULL}},
// (ten2mx >> 256) = a6274bbdd0fadd61 ecb1ad8aeacdd58e
// (ten2mx >> 256) = a6274bbdd0fadd61 ecb1ad8aeacdd58e
// 6f7c154ced70ae1847e8fa4f9fbe0b53
{{0xd320c83fb2fe6f75ULL, 0xbf967770bdf3be79ULL,
0xbd5af13bef0b113eULL, 0x84ec3c97da624ab4ULL}},
// (ten2mx >> 256) = 84ec3c97da624ab4 bd5af13bef0b113e
// (ten2mx >> 256) = 84ec3c97da624ab4 bd5af13bef0b113e
// bf967770bdf3be79d320c83fb2fe6f75
{{0x85014065eb30b256ULL, 0x65bd8be79652ca5cULL,
0x955e4ec64b44e864ULL, 0xd4ad2dbfc3d07787ULL}},
// (ten2mx >> 256) = d4ad2dbfc3d07787 955e4ec64b44e864
// (ten2mx >> 256) = d4ad2dbfc3d07787 955e4ec64b44e864
// 65bd8be79652ca5c85014065eb30b256
{{0xd0cdcd1e55c08eabULL, 0xeafe098611dbd516ULL,
0xdde50bd1d5d0b9e9ULL, 0xaa242499697392d2ULL}},
// (ten2mx >> 256) = aa242499697392d2 dde50bd1d5d0b9e9
// (ten2mx >> 256) = aa242499697392d2 dde50bd1d5d0b9e9
// eafe098611dbd516d0cdcd1e55c08eab
{{0x40a4a418449a0bbcULL, 0xbbfe6e04db164412ULL,
0x7e50d64177da2e54ULL, 0x881cea14545c7575ULL}},
// (ten2mx >> 256) = 881cea14545c7575 7e50d64177da2e54
// (ten2mx >> 256) = 881cea14545c7575 7e50d64177da2e54
// bbfe6e04db16441240a4a418449a0bbc
{{0x9aa1068d3a9012c7ULL, 0x2cca49a15e8a0683ULL,
0x96e7bd358c904a21ULL, 0xd9c7dced53c72255ULL}},
// (ten2mx >> 256) = d9c7dced53c72255 96e7bd358c904a21
// (ten2mx >> 256) = d9c7dced53c72255 96e7bd358c904a21
// 2cca49a15e8a06839aa1068d3a9012c7
{{0x154d9ed7620cdbd2ULL, 0x8a3b6e1ab2080536ULL,
0xabec975e0a0d081aULL, 0xae397d8aa96c1b77ULL}},
// (ten2mx >> 256) = ae397d8aa96c1b77 abec975e0a0d081a
// (ten2mx >> 256) = ae397d8aa96c1b77 abec975e0a0d081a
// 8a3b6e1ab2080536154d9ed7620cdbd2
{{0x443e18ac4e70afdbULL, 0x3b62be7bc1a0042bULL,
0x2323ac4b3b3da015ULL, 0x8b61313bbabce2c6ULL}},
// (ten2mx >> 256) = 8b61313bbabce2c6 2323ac4b3b3da015
// (ten2mx >> 256) = 8b61313bbabce2c6 2323ac4b3b3da015
// 3b62be7bc1a0042b443e18ac4e70afdb
{{0x6d30277a171ab2f8ULL, 0x5f0463f935ccd378ULL,
0x6b6c46dec52f6688ULL, 0xdf01e85f912e37a3ULL}},
// (ten2mx >> 256) = df01e85f912e37a3 6b6c46dec52f6688
// (ten2mx >> 256) = df01e85f912e37a3 6b6c46dec52f6688
// 5f0463f935ccd3786d30277a171ab2f8
{{0x8a8cec61ac155bfaULL, 0x7f36b660f7d70f93ULL,
0x55f038b237591ed3ULL, 0xb267ed1940f1c61cULL}},
// (ten2mx >> 256) = b267ed1940f1c61c 55f038b237591ed3
// (ten2mx >> 256) = b267ed1940f1c61c 55f038b237591ed3
// 7f36b660f7d70f938a8cec61ac155bfa
{{0x3ba3f04e23444995ULL, 0xcc2bc51a5fdf3fa9ULL,
0x77f3608e92adb242ULL, 0x8eb98a7a9a5b04e3ULL}},
// (ten2mx >> 256) = 8eb98a7a9a5b04e3 77f3608e92adb242
// (ten2mx >> 256) = 8eb98a7a9a5b04e3 77f3608e92adb242
// cc2bc51a5fdf3fa93ba3f04e23444995
{{0xf9064d49d206dc21ULL, 0xe046082a32fecc41ULL,
0x8cb89a7db77c506aULL, 0xe45c10c42a2b3b05ULL}},
// (ten2mx >> 256) = e45c10c42a2b3b05 8cb89a7db77c506a
// (ten2mx >> 256) = e45c10c42a2b3b05 8cb89a7db77c506a
// e046082a32fecc41f9064d49d206dc21
{{0xfa6b7107db38b01aULL, 0x4d04d354f598a367ULL,
0x3d607b97c5fd0d22ULL, 0xb6b00d69bb55c8d1ULL}},
// (ten2mx >> 256) = b6b00d69bb55c8d1 3d607b97c5fd0d22
// (ten2mx >> 256) = b6b00d69bb55c8d1 3d607b97c5fd0d22
// 4d04d354f598a367fa6b7107db38b01a
{{0xfb8927397c2d59afULL, 0x3d9d75dd9146e91fULL,
0xcab3961304ca70e8ULL, 0x9226712162ab070dULL}},
// (ten2mx >> 256) = 9226712162ab070d cab3961304ca70e8
// (ten2mx >> 256) = 9226712162ab070d cab3961304ca70e8
// 3d9d75dd9146e91ffb8927397c2d59af
{{0xf8db71f5937bc2b1ULL, 0xc8fbefc8e87174ffULL,
0xaab8f01e6e10b4a6ULL, 0xe9d71b689dde71afULL}},
// (ten2mx >> 256) = e9d71b689dde71af aab8f01e6e10b4a6
// (ten2mx >> 256) = e9d71b689dde71af aab8f01e6e10b4a6
// c8fbefc8e87174fff8db71f5937bc2b1
{{0x2d7c5b2adc630227ULL, 0x3a63263a538df733ULL,
0x5560c018580d5d52ULL, 0xbb127c53b17ec159ULL}},
// (ten2mx >> 256) = bb127c53b17ec159 5560c018580d5d52
// (ten2mx >> 256) = bb127c53b17ec159 5560c018580d5d52
// 3a63263a538df7332d7c5b2adc630227
{{0x24637c2249e8ce86ULL, 0x2eb5b82ea93e5f5cULL,
0xdde7001379a44aa8ULL, 0x95a8637627989aadULL}},
// (ten2mx >> 256) = 95a8637627989aad dde7001379a44aa8
// (ten2mx >> 256) = 95a8637627989aad dde7001379a44aa8
// 2eb5b82ea93e5f5c24637c2249e8ce86
{{0x3a38c69d430e173dULL, 0x4abc59e441fd6560ULL,
0x963e66858f6d4440ULL, 0xef73d256a5c0f77cULL}},
// (ten2mx >> 256) = ef73d256a5c0f77c 963e66858f6d4440
// (ten2mx >> 256) = ef73d256a5c0f77c 963e66858f6d4440
// 4abc59e441fd65603a38c69d430e173d
{{0x94fa387dcf3e78fdULL, 0x6efd14b69b311de6ULL,
0xde98520472bdd033ULL, 0xbf8fdb78849a5f96ULL}},
// (ten2mx >> 256) = bf8fdb78849a5f96 de98520472bdd033
// (ten2mx >> 256) = bf8fdb78849a5f96 de98520472bdd033
// 6efd14b69b311de694fa387dcf3e78fd
{{0xaa61c6cb0c31fa64ULL, 0x259743c548f417ebULL,
0xe546a8038efe4029ULL, 0x993fe2c6d07b7fabULL}},
// (ten2mx >> 256) = 993fe2c6d07b7fab e546a8038efe4029
// (ten2mx >> 256) = 993fe2c6d07b7fab e546a8038efe4029
// 259743c548f417ebaa61c6cb0c31fa64
{{0xaa360ade79e990a1ULL, 0x3c25393ba7ecf312ULL,
0xd53dd99f4b3066a8ULL, 0xf53304714d9265dfULL}},
// (ten2mx >> 256) = f53304714d9265df d53dd99f4b3066a8
// (ten2mx >> 256) = f53304714d9265df d53dd99f4b3066a8
// 3c25393ba7ecf312aa360ade79e990a1
{{0x882b3be52e5473b4ULL, 0x96842dc95323f5a8ULL,
0xaa97e14c3c26b886ULL, 0xc428d05aa4751e4cULL}},
// (ten2mx >> 256) = c428d05aa4751e4c aa97e14c3c26b886
// (ten2mx >> 256) = c428d05aa4751e4c aa97e14c3c26b886
// 96842dc95323f5a8882b3be52e5473b4
{{0xd355c98425105c90ULL, 0xab9cf16ddc1cc486ULL,
0x55464dd69685606bULL, 0x9ced737bb6c4183dULL}},
// (ten2mx >> 256) = 9ced737bb6c4183d 55464dd69685606b
// (ten2mx >> 256) = 9ced737bb6c4183d 55464dd69685606b
// ab9cf16ddc1cc486d355c98425105c90
{{0xebbc75a03b4d60e6ULL, 0xac2e4f162cfad40aULL,
0xeed6e2f0f0d56712ULL, 0xfb158592be068d2eULL}},
// (ten2mx >> 256) = fb158592be068d2e eed6e2f0f0d56712
// (ten2mx >> 256) = fb158592be068d2e eed6e2f0f0d56712
// ac2e4f162cfad40aebbc75a03b4d60e6
{{0x8963914cfc3de71eULL, 0x568b727823fbdcd5ULL,
0xf245825a5a445275ULL, 0xc8de047564d20a8bULL}},
// (ten2mx >> 256) = c8de047564d20a8b f245825a5a445275
// (ten2mx >> 256) = c8de047564d20a8b f245825a5a445275
// 568b727823fbdcd58963914cfc3de71e
{{0xd44fa770c9cb1f4bULL, 0x453c5b934ffcb0aaULL,
0x5b6aceaeae9d0ec4ULL, 0xa0b19d2ab70e6ed6ULL}},
// (ten2mx >> 256) = a0b19d2ab70e6ed6 5b6aceaeae9d0ec4
// (ten2mx >> 256) = a0b19d2ab70e6ed6 5b6aceaeae9d0ec4
// 453c5b934ffcb0aad44fa770c9cb1f4b
{{0xdd0c85f3d4a27f6fULL, 0x37637c75d996f3bbULL,
0xe2bbd88bbee40bd0ULL, 0x808e17555f3ebf11ULL}},
// (ten2mx >> 256) = 808e17555f3ebf11 e2bbd88bbee40bd0
// (ten2mx >> 256) = 808e17555f3ebf11 e2bbd88bbee40bd0
// 37637c75d996f3bbdd0c85f3d4a27f6f
{{0x61ada31fba9d98b2ULL, 0x256bfa5628f185f9ULL,
0x3792f412cb06794dULL, 0xcdb02555653131b6ULL}},
// (ten2mx >> 256) = cdb02555653131b6 3792f412cb06794d
// (ten2mx >> 256) = cdb02555653131b6 3792f412cb06794d
// 256bfa5628f185f961ada31fba9d98b2
{{0xe7be1c196217ad5bULL, 0x51232eab53f46b2dULL,
0x5fa8c3423c052dd7ULL, 0xa48ceaaab75a8e2bULL}},
// (ten2mx >> 256) = a48ceaaab75a8e2b 5fa8c3423c052dd7
// (ten2mx >> 256) = a48ceaaab75a8e2b 5fa8c3423c052dd7
// 51232eab53f46b2de7be1c196217ad5b
{{0x52fe7ce11b462449ULL, 0x40e8f222a99055beULL,
0x1953cf68300424acULL, 0x83a3eeeef9153e89ULL}},
// (ten2mx >> 256) = 83a3eeeef9153e89 1953cf68300424ac
// (ten2mx >> 256) = 83a3eeeef9153e89 1953cf68300424ac
// 40e8f222a99055be52fe7ce11b462449
{{0x51972e34f8703a0fULL, 0x34a7e9d10f4d55fdULL,
0x8eec7f0d19a03aadULL, 0xd29fe4b18e88640eULL}},
// (ten2mx >> 256) = d29fe4b18e88640e 8eec7f0d19a03aad
// (ten2mx >> 256) = d29fe4b18e88640e 8eec7f0d19a03aad
// 34a7e9d10f4d55fd51972e34f8703a0f
{{0x0e128b5d938cfb3fULL, 0x2a1fee40d90aab31ULL,
0x3f2398d747b36224ULL, 0xa87fea27a539e9a5ULL}},
// (ten2mx >> 256) = a87fea27a539e9a5 3f2398d747b36224
// (ten2mx >> 256) = a87fea27a539e9a5 3f2398d747b36224
// 2a1fee40d90aab310e128b5d938cfb3f
{{0x3e753c4adc70c8ffULL, 0xbb4cbe9a473bbc27ULL,
0x98e947129fc2b4e9ULL, 0x86ccbb52ea94baeaULL}},
// (ten2mx >> 256) = 86ccbb52ea94baea 98e947129fc2b4e9
// (ten2mx >> 256) = 86ccbb52ea94baea 98e947129fc2b4e9
// bb4cbe9a473bbc273e753c4adc70c8ff
{{0x30bb93aafa4e0e65ULL, 0x9214642a0b92c6a5ULL,
0x5b0ed81dcc6abb0fULL, 0xd7adf884aa879177ULL}},
// (ten2mx >> 256) = d7adf884aa879177 5b0ed81dcc6abb0f
// (ten2mx >> 256) = d7adf884aa879177 5b0ed81dcc6abb0f
// 9214642a0b92c6a530bb93aafa4e0e65
{{0xc0960fbbfb71a51eULL, 0xa8105021a2dbd21dULL,
0xe272467e3d222f3fULL, 0xac8b2d36eed2dac5ULL}},
// (ten2mx >> 256) = ac8b2d36eed2dac5 e272467e3d222f3f
// (ten2mx >> 256) = ac8b2d36eed2dac5 e272467e3d222f3f
// a8105021a2dbd21dc0960fbbfb71a51e
{{0x66de72fcc927b74bULL, 0xb9a6a6814f1641b1ULL,
0x1b8e9ecb641b58ffULL, 0x8a08f0f8bf0f156bULL}},
// (ten2mx >> 256) = 8a08f0f8bf0f156b 1b8e9ecb641b58ff
// (ten2mx >> 256) = 8a08f0f8bf0f156b 1b8e9ecb641b58ff
// b9a6a6814f1641b166de72fcc927b74b
{{0xd7ca5194750c5878ULL, 0xf5d770cee4f0691bULL,
0xf8e431456cf88e65ULL, 0xdcdb1b2798182244ULL}},
// (ten2mx >> 256) = dcdb1b2798182244 f8e431456cf88e65
// (ten2mx >> 256) = dcdb1b2798182244 f8e431456cf88e65
// f5d770cee4f0691bd7ca5194750c5878
{{0xdfd50e105da379f9ULL, 0x9179270bea59edafULL,
0x2d835a9df0c6d851ULL, 0xb0af48ec79ace837ULL}},
// (ten2mx >> 256) = b0af48ec79ace837 2d835a9df0c6d851
// (ten2mx >> 256) = b0af48ec79ace837 2d835a9df0c6d851
// 9179270bea59edafdfd50e105da379f9
{{0x19773e737e1c6194ULL, 0x0dfa85a321e18af3ULL,
0x579c487e5a38ad0eULL, 0x8d590723948a535fULL}},
// (ten2mx >> 256) = 8d590723948a535f 579c487e5a38ad0e
// (ten2mx >> 256) = 8d590723948a535f 579c487e5a38ad0e
// dfa85a321e18af319773e737e1c6194
{{0xf58b971f302d68eeULL, 0x165da29e9c9c1184ULL,
0x25c6da63c38de1b0ULL, 0xe2280b6c20dd5232ULL}},
// (ten2mx >> 256) = e2280b6c20dd5232 25c6da63c38de1b0
// (ten2mx >> 256) = e2280b6c20dd5232 25c6da63c38de1b0
// 165da29e9c9c1184f58b971f302d68ee
{{0xc46fac18f3578724ULL, 0x4517b54bb07cdad0ULL,
0x1e38aeb6360b1af3ULL, 0xb4ecd5f01a4aa828ULL}},
// (ten2mx >> 256) = b4ecd5f01a4aa828 1e38aeb6360b1af3
// (ten2mx >> 256) = b4ecd5f01a4aa828 1e38aeb6360b1af3
// 4517b54bb07cdad0c46fac18f3578724
{{0x36bfbce0c2ac6c1dULL, 0x9dac910959fd7bdaULL,
0xb1c6f22b5e6f48c2ULL, 0x90bd77f3483bb9b9ULL}},
// (ten2mx >> 256) = 90bd77f3483bb9b9 b1c6f22b5e6f48c2
// (ten2mx >> 256) = 90bd77f3483bb9b9 b1c6f22b5e6f48c2
// 9dac910959fd7bda36bfbce0c2ac6c1d
{{0x2465fb01377a4695ULL, 0x2f7a81a88ffbf95dULL,
0xb60b1d1230b20e04ULL, 0xe7958cb87392c2c2ULL}}
// (ten2mx >> 256) = e7958cb87392c2c2 b60b1d1230b20e04
// (ten2mx >> 256) = e7958cb87392c2c2 b60b1d1230b20e04
// 2f7a81a88ffbf95d2465fb01377a4695
};

View File

@ -135,7 +135,7 @@ const char midi_tbl[1000][3] = {
};
const UINT64 mod10_18_tbl[9][128] = {
// 2^59 = 576460752303423488, A and B breakdown, where data = A*10^18 + B
// 2^59 = 576460752303423488, A and B breakdown, where data = A*10^18 + B
{
0LL, 0LL, 0LL, 576460752303423488LL,

View File

@ -573,15 +573,15 @@ bid128_add (UINT128 x, UINT128 y
}
// unpack the arguments
// unpack x
// unpack x
C1_hi = x.w[1] & MASK_COEFF;
C1_lo = x.w[0];
// test for non-canonical values:
// - values whose encoding begins with x00, x01, or x10 and whose
// - values whose encoding begins with x00, x01, or x10 and whose
// coefficient is larger than 10^34 -1, or
// - values whose encoding begins with x1100, x1101, x1110 (if NaNs
// and infinitis were eliminated already this test is reduced to
// checking for x10x)
// - values whose encoding begins with x1100, x1101, x1110 (if NaNs
// and infinitis were eliminated already this test is reduced to
// checking for x10x)
// x is not infinity; check for non-canonical values - treated as zero
if ((x.w[1] & 0x6000000000000000ull) == 0x6000000000000000ull) {
@ -602,21 +602,21 @@ bid128_add (UINT128 x, UINT128 y
}
}
// unpack y
// unpack y
C2_hi = y.w[1] & MASK_COEFF;
C2_lo = y.w[0];
// y is not infinity; check for non-canonical values - treated as zero
// y is not infinity; check for non-canonical values - treated as zero
if ((y.w[1] & 0x6000000000000000ull) == 0x6000000000000000ull) {
// G0_G1=11; non-canonical
// G0_G1=11; non-canonical
y_exp = (y.w[1] << 2) & MASK_EXP; // biased and shifted left 49 bits
C2_hi = 0; // significand high
C2_lo = 0; // significand low
} else { // G0_G1 != 11
C2_lo = 0; // significand low
} else { // G0_G1 != 11
y_exp = y.w[1] & MASK_EXP; // biased and shifted left 49 bits
if (C2_hi > 0x0001ed09bead87c0ull ||
(C2_hi == 0x0001ed09bead87c0ull
&& C2_lo > 0x378d8e63ffffffffull)) {
// y is non-canonical if coefficient is larger than 10^34 -1
// y is non-canonical if coefficient is larger than 10^34 -1
C2_hi = 0;
C2_lo = 0;
} else { // canonical
@ -651,7 +651,7 @@ bid128_add (UINT128 x, UINT128 y
if (C2_hi == 0) { // y_bits is the nr. of bits in C2_lo
if (C2_lo >= 0x0020000000000000ull) { // y >= 2^53
// split the 64-bit value in two 32-bit halves to avoid
// split the 64-bit value in two 32-bit halves to avoid
// rounding errors
if (C2_lo >= 0x0000000100000000ull) { // y >= 2^32
tmp2.d = (double) (C2_lo >> 32); // exact conversion
@ -690,7 +690,7 @@ bid128_add (UINT128 x, UINT128 y
if (scale == 0) {
res.w[1] = y.w[1];
res.w[0] = y.w[0];
} else if (q2 <= 19) { // y fits in 64 bits
} else if (q2 <= 19) { // y fits in 64 bits
if (scale <= 19) { // 10^scale fits in 64 bits
// 64 x 64 C2_lo * ten2k64[scale]
__mul_64x64_to_128MACH (res, C2_lo, ten2k64[scale]);
@ -698,7 +698,7 @@ bid128_add (UINT128 x, UINT128 y
// 64 x 128 C2_lo * ten2k128[scale - 20]
__mul_128x64_to_128 (res, C2_lo, ten2k128[scale - 20]);
}
} else { // y fits in 128 bits, but 10^scale must fit in 64 bits
} else { // y fits in 128 bits, but 10^scale must fit in 64 bits
// 64 x 128 ten2k64[scale] * C2
C2.w[1] = C2_hi;
C2.w[0] = C2_lo;
@ -724,7 +724,7 @@ bid128_add (UINT128 x, UINT128 y
// determine first the nr. of bits in x
if (C1_hi == 0) { // x_bits is the nr. of bits in C1_lo
if (C1_lo >= 0x0020000000000000ull) { // x >= 2^53
// split the 64-bit value in two 32-bit halves to avoid
// split the 64-bit value in two 32-bit halves to avoid
// rounding errors
if (C1_lo >= 0x0000000100000000ull) { // x >= 2^32
tmp1.d = (double) (C1_lo >> 32); // exact conversion
@ -755,7 +755,7 @@ bid128_add (UINT128 x, UINT128 y
q1++;
}
// return (C1 * 10^scale) * 10^(x_exp - scale)
// where scale = min (P34-q1, x_exp-y_exp)
// where scale = min (P34-q1, x_exp-y_exp)
scale = P34 - q1;
ind = (x_exp - y_exp) >> 49;
if (ind < scale)
@ -763,9 +763,9 @@ bid128_add (UINT128 x, UINT128 y
if (scale == 0) {
res.w[1] = x.w[1];
res.w[0] = x.w[0];
} else if (q1 <= 19) { // x fits in 64 bits
} else if (q1 <= 19) { // x fits in 64 bits
if (scale <= 19) { // 10^scale fits in 64 bits
// 64 x 64 C1_lo * ten2k64[scale]
// 64 x 64 C1_lo * ten2k64[scale]
__mul_64x64_to_128MACH (res, C1_lo, ten2k64[scale]);
} else { // 10^scale fits in 128 bits
// 64 x 128 C1_lo * ten2k128[scale - 20]
@ -786,7 +786,7 @@ bid128_add (UINT128 x, UINT128 y
} else { // x and y are not canonical, not special, and are not zero
// note that the result may still be zero, and then it has to have the
// preferred exponent
if (x_exp < y_exp) { // if exp_x < exp_y then swap x and y
if (x_exp < y_exp) { // if exp_x < exp_y then swap x and y
tmp_sign = x_sign;
tmp_exp = x_exp;
tmp_signif_hi = C1_hi;
@ -879,7 +879,7 @@ bid128_add (UINT128 x, UINT128 y
// possibly scaled up by 10^(P34-q1)
// an overflow cannot occur in this case (rounding to nearest)
if (q1 < P34) { // scale C1 up by 10^(P34-q1)
// Note: because delta >= P34+1 it is certain that
// Note: because delta >= P34+1 it is certain that
// x_exp - ((UINT64)scale << 49) will stay above e_min
scale = P34 - q1;
if (q1 <= 19) { // C1 fits in 64 bits
@ -903,10 +903,10 @@ bid128_add (UINT128 x, UINT128 y
C1_hi = C1.w[1];
C1_lo = C1.w[0];
}
// some special cases arise: if delta = P34 + 1 and C1 = 10^(P34-1)
// (after scaling) and x_sign != y_sign and C2 > 5*10^(q2-1) =>
// some special cases arise: if delta = P34 + 1 and C1 = 10^(P34-1)
// (after scaling) and x_sign != y_sign and C2 > 5*10^(q2-1) =>
// subtract 1 ulp
// Note: do this only for rounding to nearest; for other rounding
// Note: do this only for rounding to nearest; for other rounding
// modes the correction will be applied next
if ((rnd_mode == ROUNDING_TO_NEAREST
|| rnd_mode == ROUNDING_TIES_AWAY) && delta == (P34 + 1)
@ -970,7 +970,7 @@ bid128_add (UINT128 x, UINT128 y
C1_lo = C1_lo - 1;
if (C1_lo == 0xffffffffffffffffull)
C1_hi = C1_hi - 1;
// if the coefficient is 10^33 - 1 then make it 10^34 - 1 and
// if the coefficient is 10^33 - 1 then make it 10^34 - 1 and
// decrease the exponent by 1 (because delta >= P34 + 1 the
// exponent will not become less than e_min)
// 10^33 - 1 = 0x0000314dc6448d9338c15b09ffffffff
@ -991,7 +991,7 @@ bid128_add (UINT128 x, UINT128 y
// assemble the result
res.w[1] = x_sign | x_exp | C1_hi;
res.w[0] = C1_lo;
} else { // delta = P34
} else { // delta = P34
// in most cases, the smaller operand may be < or = or > 1/2 ulp of the
// larger operand
// however, the case C1 = 10^(q1-1) and x_sign != y_sign is special due
@ -1007,7 +1007,7 @@ bid128_add (UINT128 x, UINT128 y
if (q2 <= 19) { // C2 and 5*10^(q2-1) both fit in 64 bits
halfulp64 = midpoint64[q2 - 1]; // 5 * 10^(q2-1)
if (C2_lo < halfulp64) { // n2 < 1/2 ulp (n1)
// for RN the result is the operand with the larger magnitude,
// for RN the result is the operand with the larger magnitude,
// possibly scaled up by 10^(P34-q1)
// an overflow cannot occur in this case (rounding to nearest)
if (q1 < P34) { // scale C1 up by 10^(P34-q1)
@ -1067,7 +1067,7 @@ bid128_add (UINT128 x, UINT128 y
C1_lo = C1_lo - 1;
if (C1_lo == 0xffffffffffffffffull)
C1_hi = C1_hi - 1;
// if the coefficient is 10^33-1 then make it 10^34-1 and
// if the coefficient is 10^33-1 then make it 10^34-1 and
// decrease the exponent by 1 (because delta >= P34 + 1 the
// exponent will not become less than e_min)
// 10^33 - 1 = 0x0000314dc6448d9338c15b09ffffffff
@ -1102,17 +1102,17 @@ bid128_add (UINT128 x, UINT128 y
// 1 <= q1 <= 19 => 15 <= scale <= 33
if (scale <= 19) { // 10^scale fits in 64 bits
__mul_64x64_to_128MACH (C1, ten2k64[scale], C1_lo);
} else { // if 20 <= scale <= 33
} else { // if 20 <= scale <= 33
// C1 * 10^scale = (C1 * 10^(scale-19)) * 10^19 where
// (C1 * 10^(scale-19)) fits in 64 bits
// (C1 * 10^(scale-19)) fits in 64 bits
C1_lo = C1_lo * ten2k64[scale - 19];
__mul_64x64_to_128MACH (C1, ten2k64[19], C1_lo);
}
} else { //if 20 <= q1 <= 33=P34-1 then C1 fits only in 128 bits
// => 1 <= P34 - q1 <= 14 so 10^(P34-q1) fits in 64 bits
// => 1 <= P34 - q1 <= 14 so 10^(P34-q1) fits in 64 bits
C1.w[1] = C1_hi;
C1.w[0] = C1_lo;
// C1 = ten2k64[P34 - q1] * C1
// C1 = ten2k64[P34 - q1] * C1
__mul_128x64_to_128 (C1, ten2k64[P34 - q1], C1);
}
x_exp = x_exp - ((UINT64) scale << 49);
@ -1172,17 +1172,17 @@ bid128_add (UINT128 x, UINT128 y
}
// set the inexact flag
*pfpsf |= INEXACT_EXCEPTION;
// assemble the result
// assemble the result
res.w[1] = x_sign | x_exp | C1_hi;
res.w[0] = C1_lo;
} else { // if C2_lo > halfulp64 ||
} else { // if C2_lo > halfulp64 ||
// (C2_lo == halfulp64 && q1 == P34 && ((C1_lo & 0x1) == 1)), i.e.
// 1/2 ulp(n1) < n2 < 1 ulp(n1) or n2 = 1/2 ulp(n1) and C1 odd
// res = x+1 ulp if n1*n2 > 0 and res = x-1 ulp if n1*n2 < 0
if (q1 < P34) { // then 1 ulp = 10^(e1+q1-P34) < 10^e1
// Note: if (q1 == P34) then 1 ulp = 10^(e1+q1-P34) = 10^e1
// because q1 < P34 we must first replace C1 by
// C1 * 10^(P34-q1), and must decrease the exponent by
// because q1 < P34 we must first replace C1 by
// C1 * 10^(P34-q1), and must decrease the exponent by
// (P34-q1) (it will still be at least e_min)
scale = P34 - q1;
if (q1 <= 19) { // C1 fits in 64 bits
@ -1208,7 +1208,7 @@ bid128_add (UINT128 x, UINT128 y
// check for rounding overflow
if (C1_hi == 0x0001ed09bead87c0ull
&& C1_lo == 0x378d8e6400000000ull) {
// C1 = 10^34 => rounding overflow
// C1 = 10^34 => rounding overflow
C1_hi = 0x0000314dc6448d93ull;
C1_lo = 0x38c15b0a00000000ull; // 10^33
x_exp = x_exp + EXP_P1;
@ -1269,7 +1269,7 @@ bid128_add (UINT128 x, UINT128 y
res.w[1] = x_sign | x_exp | C1_hi;
res.w[0] = C1_lo;
}
} else { // if q2 >= 20 then 5*10^(q2-1) and C2 (the latter in
} else { // if q2 >= 20 then 5*10^(q2-1) and C2 (the latter in
// most cases) fit only in more than 64 bits
halfulp128 = midpoint128[q2 - 20]; // 5 * 10^(q2-1)
if ((C2_hi < halfulp128.w[1])
@ -1287,17 +1287,17 @@ bid128_add (UINT128 x, UINT128 y
// 1 <= q1 <= 19 => 15 <= scale <= 33
if (scale <= 19) { // 10^scale fits in 64 bits
__mul_64x64_to_128MACH (C1, ten2k64[scale], C1_lo);
} else { // if 20 <= scale <= 33
} else { // if 20 <= scale <= 33
// C1 * 10^scale = (C1 * 10^(scale-19)) * 10^19 where
// (C1 * 10^(scale-19)) fits in 64 bits
// (C1 * 10^(scale-19)) fits in 64 bits
C1_lo = C1_lo * ten2k64[scale - 19];
__mul_64x64_to_128MACH (C1, ten2k64[19], C1_lo);
}
} else { //if 20 <= q1 <= 33=P34-1 then C1 fits only in 128 bits
// => 1 <= P34 - q1 <= 14 so 10^(P34-q1) fits in 64 bits
// => 1 <= P34 - q1 <= 14 so 10^(P34-q1) fits in 64 bits
C1.w[1] = C1_hi;
C1.w[0] = C1_lo;
// C1 = ten2k64[P34 - q1] * C1
// C1 = ten2k64[P34 - q1] * C1
__mul_128x64_to_128 (C1, ten2k64[P34 - q1], C1);
}
C1_hi = C1.w[1];
@ -1352,9 +1352,9 @@ bid128_add (UINT128 x, UINT128 y
; // the result is already correct
}
}
// set the inexact flag
// set the inexact flag
*pfpsf |= INEXACT_EXCEPTION;
// assemble the result
// assemble the result
res.w[1] = x_sign | x_exp | C1_hi;
res.w[0] = C1_lo;
} else if ((C2_hi == halfulp128.w[1]
@ -1532,15 +1532,15 @@ bid128_add (UINT128 x, UINT128 y
// end case where C1 != 10^(q1-1)
} else { // C1 = 10^(q1-1) and x_sign != y_sign
// instead of C' = (C1 * 10^(e1-e2) + C2)rnd,P34
// calculate C' = C1 * 10^(e1-e2-x1) + (C2 * 10^(-x1))rnd,P34
// calculate C' = C1 * 10^(e1-e2-x1) + (C2 * 10^(-x1))rnd,P34
// where x1 = q2 - 1, 0 <= x1 <= P34 - 1
// Because C1 = 10^(q1-1) and x_sign != y_sign, C' will have P34
// Because C1 = 10^(q1-1) and x_sign != y_sign, C' will have P34
// digits and n = C' * 10^(e2+x1)
// If the result has P34+1 digits, redo the steps above with x1+1
// If the result has P34-1 digits or less, redo the steps above with
// If the result has P34-1 digits or less, redo the steps above with
// x1-1 but only if initially x1 >= 1
// NOTE: these two steps can be improved, e.g we could guess if
// P34+1 or P34-1 digits will be obtained by adding/subtracting
// P34+1 or P34-1 digits will be obtained by adding/subtracting
// just the top 64 bits of the two operands
// The result cannot be zero, and it cannot overflow
x1 = q2 - 1; // 0 <= x1 <= P34-1
@ -1835,14 +1835,14 @@ bid128_add (UINT128 x, UINT128 y
// The coefficient of the result is C1 * 10^(e1-e2) + C2 and the
// exponent is e2; either C1 or 10^(e1-e2) may not fit is 64 bits,
// but their product fits with certainty in 128 bits (actually in 113)
scale = delta - q1 + q2; // scale = (int)(e1 >> 49) - (int)(e2 >> 49)
scale = delta - q1 + q2; // scale = (int)(e1 >> 49) - (int)(e2 >> 49)
if (scale >= 20) { // 10^(e1-e2) does not fit in 64 bits, but C1 does
__mul_128x64_to_128 (C1, C1_lo, ten2k128[scale - 20]);
C1_hi = C1.w[1];
C1_lo = C1.w[0];
} else if (scale >= 1) {
// if 1 <= scale <= 19 then 10^(e1-e2) fits in 64 bits
// if 1 <= scale <= 19 then 10^(e1-e2) fits in 64 bits
if (q1 <= 19) { // C1 fits in 64 bits
__mul_64x64_to_128MACH (C1, C1_lo, ten2k64[scale]);
} else { // q1 >= 20
@ -1853,7 +1853,7 @@ bid128_add (UINT128 x, UINT128 y
C1_hi = C1.w[1];
C1_lo = C1.w[0];
} else { // if (scale == 0) C1 is unchanged
C1.w[0] = C1_lo; // C1.w[1] = C1_hi;
C1.w[0] = C1_lo; // C1.w[1] = C1_hi;
}
// now add C2
if (x_sign == y_sign) {
@ -1894,7 +1894,7 @@ bid128_add (UINT128 x, UINT128 y
res.w[1] = x_sign | y_exp | C1_hi;
res.w[0] = C1_lo;
} else if (delta == P34 - q2) {
// calculate C' directly; the result may be inexact if it requires
// calculate C' directly; the result may be inexact if it requires
// P34+1 decimal digits; in this case the 'cutoff' point for addition
// is at the position of the lsb of C2, so 0 <= e1-e2 <= P34-1
// The coefficient of the result is C1 * 10^(e1-e2) + C2 and the
@ -1927,8 +1927,8 @@ bid128_add (UINT128 x, UINT128 y
C1_hi++;
// test for overflow, possible only when C1 >= 10^34
if (C1_hi > 0x0001ed09bead87c0ull || (C1_hi == 0x0001ed09bead87c0ull && C1_lo >= 0x378d8e6400000000ull)) { // C1 >= 10^34
// in this case q = P34 + 1 and x = q - P34 = 1, so multiply
// C'' = C'+ 5 = C1 + 5 by k1 ~ 10^(-1) calculated for P34 + 1
// in this case q = P34 + 1 and x = q - P34 = 1, so multiply
// C'' = C'+ 5 = C1 + 5 by k1 ~ 10^(-1) calculated for P34 + 1
// decimal digits
// Calculate C'' = C' + 1/2 * 10^x
if (C1_lo >= 0xfffffffffffffffbull) { // low half add has carry
@ -1946,10 +1946,10 @@ bid128_add (UINT128 x, UINT128 y
ten2m1.w[0] = 0x9999999999999a00ull;
__mul_128x128_to_256 (P256, C1, ten2m1); // P256 = C*, f*
// C* is actually floor(C*) in this case
// the top Ex = 128 bits of 10^(-1) are
// the top Ex = 128 bits of 10^(-1) are
// T* = 0x00199999999999999999999999999999
// if (0 < f* < 10^(-x)) then
// if floor(C*) is even then C = floor(C*) - logical right
// if floor(C*) is even then C = floor(C*) - logical right
// shift; C has p decimal digits, correct by Prop. 1)
// else if floor(C*) is odd C = floor(C*) - 1 (logical right
// shift; C has p decimal digits, correct by Pr. 1)
@ -1989,9 +1989,9 @@ bid128_add (UINT128 x, UINT128 y
BID_SWAP128 (res);
BID_RETURN (res);
}
// if (0 < f* - 1/2 < 10^(-x)) then
// the result of the addition is exact
// else
// if (0 < f* - 1/2 < 10^(-x)) then
// the result of the addition is exact
// else
// the result of the addition is inexact
if (P256.w[1] > 0x8000000000000000ull || (P256.w[1] == 0x8000000000000000ull && P256.w[0] > 0x0ull)) { // the result may be exact
tmp64 = P256.w[1] - 0x8000000000000000ull; // f* - 1/2
@ -2015,7 +2015,7 @@ bid128_add (UINT128 x, UINT128 y
is_inexact_gt_midpoint = is_inexact
&& !(P256.w[1] & 0x8000000000000000ull);
}
// general correction from RN to RA, RM, RP, RZ;
// general correction from RN to RA, RM, RP, RZ;
// result uses y_exp
if (rnd_mode != ROUNDING_TO_NEAREST) {
if ((!x_sign
@ -2125,11 +2125,11 @@ bid128_add (UINT128 x, UINT128 y
res.w[0] = C1_lo;
} else { // if (delta >= P34 + 1 - q2)
// instead of C' = (C1 * 10^(e1-e2) + C2)rnd,P34
// calculate C' = C1 * 10^(e1-e2-x1) + (C2 * 10^(-x1))rnd,P34
// calculate C' = C1 * 10^(e1-e2-x1) + (C2 * 10^(-x1))rnd,P34
// where x1 = q1 + e1 - e2 - P34, 1 <= x1 <= P34 - 1
// In most cases C' will have P34 digits, and n = C' * 10^(e2+x1)
// If the result has P34+1 digits, redo the steps above with x1+1
// If the result has P34-1 digits or less, redo the steps above with
// If the result has P34-1 digits or less, redo the steps above with
// x1-1 but only if initially x1 >= 1
// NOTE: these two steps can be improved, e.g we could guess if
// P34+1 or P34-1 digits will be obtained by adding/subtracting just
@ -2160,7 +2160,7 @@ bid128_add (UINT128 x, UINT128 y
tmp64 = C1.w[0]; // C1.w[1], C1.w[0] contains C1 * 10^(e1-e2-x1)
// now round C2 to q2-x1 decimal digits, where 1<=x1<=q2-1<=P34-1
// (but if we got here a second time after x1 = x1 - 1, then
// (but if we got here a second time after x1 = x1 - 1, then
// x1 >= 0; note that for x1 = 0 C2 is unchanged)
// C2' = C2 + 1/2 * 10^x1 = C2 + 5 * 10^(x1-1)
ind = x1 - 1; // 0 <= ind <= q2-2<=P34-2=32; but note that if x1 = 0
@ -2224,8 +2224,8 @@ bid128_add (UINT128 x, UINT128 y
is_midpoint_lt_even = 0;
is_midpoint_gt_even = 0;
}
// determine inexactness of the rounding of C2* (this may be
// followed by a second rounding only if we get P34+1
// determine inexactness of the rounding of C2* (this may be
// followed by a second rounding only if we get P34+1
// decimal digits)
// if (0 < f2* - 1/2 < 10^(-x1)) then
// the result is exact
@ -2383,7 +2383,7 @@ bid128_add (UINT128 x, UINT128 y
if (C1.w[0] < tmp64)
C1.w[1]++; // carry
// if the sum has P34+1 digits, i.e. C1>=10^34 redo the calculation
// with x1=x1+1
// with x1=x1+1
if (C1.w[1] > 0x0001ed09bead87c0ull || (C1.w[1] == 0x0001ed09bead87c0ull && C1.w[0] >= 0x378d8e6400000000ull)) { // C1 >= 10^34
// chop off one more digit from the sum, but make sure there is
// no double-rounding error (see table - double rounding logic)
@ -2451,7 +2451,7 @@ bid128_add (UINT128 x, UINT128 y
}
}
tmp_inexact = 1; // in all cases
} else { // the result is not a midpoint
} else { // the result is not a midpoint
// determine inexactness of the rounding of C1 (the sum C1+C2*)
// if (0 < f1* - 1/2 < 10^(-1)) then
// the result is exact
@ -2537,9 +2537,9 @@ bid128_add (UINT128 x, UINT128 y
}
// if the difference has P34-1 digits or less, i.e. C1 < 10^33 then
// redo the calculation with x1=x1-1;
// redo the calculation also if C1 = 10^33 and
// redo the calculation also if C1 = 10^33 and
// (is_inexact_gt_midpoint or is_midpoint_lt_even);
// (the last part should have really been
// (the last part should have really been
// (is_inexact_lt_midpoint or is_midpoint_gt_even) from
// the rounding of C2, but the position flags have been reversed)
// 10^33 = 0x0000314dc6448d93 0x38c15b0a00000000
@ -2557,7 +2557,7 @@ bid128_add (UINT128 x, UINT128 y
}
}
// if the coefficient of the result is 10^34 it means that this
// must be the second pass, and we are done
// must be the second pass, and we are done
if (C1.w[1] == 0x0001ed09bead87c0ull && C1.w[0] == 0x378d8e6400000000ull) { // if C1 = 10^34
C1.w[1] = 0x0000314dc6448d93ull; // C1 = 10^33
C1.w[0] = 0x38c15b0a00000000ull;
@ -2566,8 +2566,8 @@ bid128_add (UINT128 x, UINT128 y
x_sign = tmp_sign;
if (x1 >= 1)
y_exp = y_exp + ((UINT64) x1 << 49);
// x1 = -1 is possible at the end of a second pass when the
// first pass started with x1 = 1
// x1 = -1 is possible at the end of a second pass when the
// first pass started with x1 = 1
}
C1_hi = C1.w[1];
C1_lo = C1.w[0];
@ -2650,12 +2650,12 @@ bid128_add (UINT128 x, UINT128 y
*pfpsf |= INEXACT_EXCEPTION;
}
} else { // if (-P34 + 1 <= delta <= -1) <=> 1 <= -delta <= P34 - 1
// NOTE: the following, up to "} else { // if x_sign != y_sign
// NOTE: the following, up to "} else { // if x_sign != y_sign
// the result is exact" is identical to "else if (delta == P34 - q2) {"
// from above; also, the code is not symmetric: a+b and b+a may take
// different paths (need to unify eventually!)
// calculate C' = C2 + C1 * 10^(e1-e2) directly; the result may be
// inexact if it requires P34 + 1 decimal digits; in either case the
// different paths (need to unify eventually!)
// calculate C' = C2 + C1 * 10^(e1-e2) directly; the result may be
// inexact if it requires P34 + 1 decimal digits; in either case the
// 'cutoff' point for addition is at the position of the lsb of C2
// The coefficient of the result is C1 * 10^(e1-e2) + C2 and the
// exponent is e2; either C1 or 10^(e1-e2) may not fit is 64 bits,
@ -2692,8 +2692,8 @@ bid128_add (UINT128 x, UINT128 y
C1_hi++;
// test for overflow, possible only when C1 >= 10^34
if (C1_hi > 0x0001ed09bead87c0ull || (C1_hi == 0x0001ed09bead87c0ull && C1_lo >= 0x378d8e6400000000ull)) { // C1 >= 10^34
// in this case q = P34 + 1 and x = q - P34 = 1, so multiply
// C'' = C'+ 5 = C1 + 5 by k1 ~ 10^(-1) calculated for P34 + 1
// in this case q = P34 + 1 and x = q - P34 = 1, so multiply
// C'' = C'+ 5 = C1 + 5 by k1 ~ 10^(-1) calculated for P34 + 1
// decimal digits
// Calculate C'' = C' + 1/2 * 10^x
if (C1_lo >= 0xfffffffffffffffbull) { // low half add has carry
@ -2711,10 +2711,10 @@ bid128_add (UINT128 x, UINT128 y
ten2m1.w[0] = 0x9999999999999a00ull;
__mul_128x128_to_256 (P256, C1, ten2m1); // P256 = C*, f*
// C* is actually floor(C*) in this case
// the top Ex = 128 bits of 10^(-1) are
// the top Ex = 128 bits of 10^(-1) are
// T* = 0x00199999999999999999999999999999
// if (0 < f* < 10^(-x)) then
// if floor(C*) is even then C = floor(C*) - logical right
// if floor(C*) is even then C = floor(C*) - logical right
// shift; C has p decimal digits, correct by Prop. 1)
// else if floor(C*) is odd C = floor(C*) - 1 (logical right
// shift; C has p decimal digits, correct by Pr. 1)
@ -2754,9 +2754,9 @@ bid128_add (UINT128 x, UINT128 y
BID_SWAP128 (res);
BID_RETURN (res);
}
// if (0 < f* - 1/2 < 10^(-x)) then
// the result of the addition is exact
// else
// if (0 < f* - 1/2 < 10^(-x)) then
// the result of the addition is exact
// else
// the result of the addition is inexact
if (P256.w[1] > 0x8000000000000000ull || (P256.w[1] == 0x8000000000000000ull && P256.w[0] > 0x0ull)) { // the result may be exact
tmp64 = P256.w[1] - 0x8000000000000000ull; // f* - 1/2

Some files were not shown because too many files have changed in this diff Show More