(root)/
gcc-13.2.0/
libgcc/
config/
libbid/
bid_conf.h
       1  /* Copyright (C) 2007-2023 Free Software Foundation, Inc.
       2  
       3  This file is part of GCC.
       4  
       5  GCC is free software; you can redistribute it and/or modify it under
       6  the terms of the GNU General Public License as published by the Free
       7  Software Foundation; either version 3, or (at your option) any later
       8  version.
       9  
      10  GCC is distributed in the hope that it will be useful, but WITHOUT ANY
      11  WARRANTY; without even the implied warranty of MERCHANTABILITY or
      12  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
      13  for more details.
      14  
      15  Under Section 7 of GPL version 3, you are granted additional
      16  permissions described in the GCC Runtime Library Exception, version
      17  3.1, as published by the Free Software Foundation.
      18  
      19  You should have received a copy of the GNU General Public License and
      20  a copy of the GCC Runtime Library Exception along with this program;
      21  see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
      22  <http://www.gnu.org/licenses/>.  */
      23  
      24  #ifndef _BID_CONF_H
      25  #define _BID_CONF_H
      26  
      27  // Name Changes
      28  
      29  #define _IDEC_glbflags __bid_IDEC_glbflags
      30  #define _IDEC_glbround __bid_IDEC_glbround
      31  #define _IDEC_glbexcepthandling __bid_IDEC_glbexcepthandling
      32  #define _IDEC_glbexceptionmasks __bid_IDEC_glbexceptionmasks
      33  #define bid64_add __bid64_add
      34  #define bid64_sub __bid64_sub
      35  #define bid64_mul __bid64_mul
      36  #define bid64_div __bid64_div
      37  #define bid64dq_div __bid64dq_div
      38  #define bid64qd_div __bid64qd_div
      39  #define bid64qq_div __bid64qq_div
      40  #define bid64q_sqrt __bid64q_sqrt
      41  #define bid64_sqrt __bid64_sqrt
      42  #define bid64_rem __bid64_rem
      43  #define bid64_fma __bid64_fma
      44  #define bid64_scalb __bid64_scalb
      45  #define round128_19_38 __bid_round128_19_38
      46  #define round192_39_57 __bid_round192_39_57
      47  #define round256_58_76 __bid_round256_58_76
      48  #define round64_2_18 __bid_round64_2_18
      49  #define bid64_nextafter __bid64_nextafter
      50  #define bid64_nextdown __bid64_nextdown
      51  #define bid64_nextup __bid64_nextup
      52  #define b2d __bid_b2d
      53  #define b2d2 __bid_b2d2
      54  #define b2d3 __bid_b2d3
      55  #define b2d4 __bid_b2d4
      56  #define b2d5 __bid_b2d5
      57  #define bid128_canonize __bid128_canonize
      58  #define bid32_canonize __bid32_canonize
      59  #define bid64_canonize __bid64_canonize
      60  #define bid_to_bid128 __bid_to_bid128
      61  #define bid_to_bid32 __bid_to_bid32
      62  #define bid_to_bid64 __bid_to_bid64
      63  #define bid_to_dpd128 __bid_to_dpd128
      64  #define bid_to_dpd32 __bid_to_dpd32
      65  #define bid_to_dpd64 __bid_to_dpd64
      66  #define d2b __bid_d2b
      67  #define d2b2 __bid_d2b2
      68  #define d2b3 __bid_d2b3
      69  #define d2b4 __bid_d2b4
      70  #define d2b5 __bid_d2b5
      71  #define d2b6 __bid_d2b6
      72  #define dpd_to_bid128 __bid_dpd_to_bid128
      73  #define dpd_to_bid32 __bid_dpd_to_bid32
      74  #define dpd_to_bid64 __bid_dpd_to_bid64
      75  #define bid128_nextafter __bid128_nextafter
      76  #define bid128_nextdown __bid128_nextdown
      77  #define bid128_nextup __bid128_nextup
      78  #define bid64_logb __bid64_logb
      79  #define bid64_quantize __bid64_quantize
      80  #define estimate_bin_expon __bid_estimate_bin_expon
      81  #define estimate_decimal_digits __bid_estimate_decimal_digits
      82  #define power10_index_binexp __bid_power10_index_binexp
      83  #define power10_index_binexp_128 __bid_power10_index_binexp_128
      84  #define power10_table_128 __bid_power10_table_128
      85  #define reciprocals10_128 __bid_reciprocals10_128
      86  #define reciprocals10_64 __bid_reciprocals10_64
      87  #define recip_scale __bid_recip_scale
      88  #define round_const_table __bid_round_const_table
      89  #define round_const_table_128 __bid_round_const_table_128
      90  #define short_recip_scale __bid_short_recip_scale
      91  #define bid64_from_string __bid64_from_string
      92  #define bid64_to_string __bid64_to_string
      93  #define Inv_Tento9 __bid_Inv_Tento9
      94  #define midi_tbl __bid_midi_tbl
      95  #define Tento3 __bid_Tento3
      96  #define Tento6 __bid_Tento6
      97  #define Tento9 __bid_Tento9
      98  #define Twoto30_m_10to9 __bid_Twoto30_m_10to9
      99  #define Twoto60 __bid_Twoto60
     100  #define Twoto60_m_10to18 __bid_Twoto60_m_10to18
     101  #define convert_table __bid_convert_table
     102  #define factors __bid_factors
     103  #define packed_10000_zeros __bid_packed_10000_zeros
     104  #define char_table2 __bid_char_table2
     105  #define char_table3 __bid_char_table3
     106  #define Ex128m128 __bid_Ex128m128
     107  #define Ex192m192 __bid_Ex192m192
     108  #define Ex256m256 __bid_Ex256m256
     109  #define Ex64m64 __bid_Ex64m64
     110  #define half128 __bid_half128
     111  #define half192 __bid_half192
     112  #define half256 __bid_half256
     113  #define half64 __bid_half64
     114  #define Kx128 __bid_Kx128
     115  #define Kx192 __bid_Kx192
     116  #define Kx256 __bid_Kx256
     117  #define Kx64 __bid_Kx64
     118  #define mask128 __bid_mask128
     119  #define mask192 __bid_mask192
     120  #define mask256 __bid_mask256
     121  #define mask64 __bid_mask64
     122  #define maskhigh128 __bid_maskhigh128
     123  #define maskhigh128M __bid_maskhigh128M
     124  #define maskhigh192M __bid_maskhigh192M
     125  #define maskhigh256M __bid_maskhigh256M
     126  #define midpoint128 __bid_midpoint128
     127  #define midpoint192 __bid_midpoint192
     128  #define midpoint256 __bid_midpoint256
     129  #define midpoint64 __bid_midpoint64
     130  #define nr_digits __bid_nr_digits
     131  #define onehalf128 __bid_onehalf128
     132  #define onehalf128M __bid_onehalf128M
     133  #define onehalf192M __bid_onehalf192M
     134  #define onehalf256M __bid_onehalf256M
     135  #define shiftright128 __bid_shiftright128
     136  #define shiftright128M __bid_shiftright128M
     137  #define shiftright192M __bid_shiftright192M
     138  #define shiftright256M __bid_shiftright256M
     139  #define shift_ten2m3k128 __bid_shift_ten2m3k128
     140  #define shift_ten2m3k64 __bid_shift_ten2m3k64
     141  #define ten2k128 __bid_ten2k128
     142  #define ten2k256 __bid_ten2k256
     143  #define ten2k64 __bid_ten2k64
     144  #define ten2m3k128 __bid_ten2m3k128
     145  #define ten2m3k64 __bid_ten2m3k64
     146  #define ten2mk128 __bid_ten2mk128
     147  #define ten2mk128M __bid_ten2mk128M
     148  #define ten2mk128trunc __bid_ten2mk128trunc
     149  #define ten2mk128truncM __bid_ten2mk128truncM
     150  #define ten2mk192M __bid_ten2mk192M
     151  #define ten2mk192truncM __bid_ten2mk192truncM
     152  #define ten2mk256M __bid_ten2mk256M
     153  #define ten2mk256truncM __bid_ten2mk256truncM
     154  #define ten2mk64 __bid_ten2mk64
     155  #define ten2mxtrunc128 __bid_ten2mxtrunc128
     156  #define ten2mxtrunc192 __bid_ten2mxtrunc192
     157  #define ten2mxtrunc256 __bid_ten2mxtrunc256
     158  #define ten2mxtrunc64 __bid_ten2mxtrunc64
     159  #define bid128_add __bid128_add
     160  #define bid128dd_add __bid128dd_add
     161  #define bid128dd_sub __bid128dd_sub
     162  #define bid128dq_add __bid128dq_add
     163  #define bid128dq_sub __bid128dq_sub
     164  #define bid128qd_add __bid128qd_add
     165  #define bid128qd_sub __bid128qd_sub
     166  #define bid128_sub __bid128_sub
     167  #define bid64dq_add __bid64dq_add
     168  #define bid64dq_sub __bid64dq_sub
     169  #define bid64qd_add __bid64qd_add
     170  #define bid64qd_sub __bid64qd_sub
     171  #define bid64qq_add __bid64qq_add
     172  #define bid64qq_sub __bid64qq_sub
     173  #define bid128dd_mul __bid128dd_mul
     174  #define bid128dq_mul __bid128dq_mul
     175  #define bid128_mul __bid128_mul
     176  #define bid128qd_mul __bid128qd_mul
     177  #define bid64dq_mul __bid64dq_mul
     178  #define bid64qd_mul __bid64qd_mul
     179  #define bid64qq_mul __bid64qq_mul
     180  #define bid128dd_div __bid128dd_div
     181  #define bid128_div __bid128_div
     182  #define bid128dq_div __bid128dq_div
     183  #define bid128qd_div __bid128qd_div
     184  #define bid128d_sqrt __bid128d_sqrt
     185  #define bid128_sqrt __bid128_sqrt
     186  #define bid128ddd_fma __bid128ddd_fma
     187  #define bid128ddq_fma __bid128ddq_fma
     188  #define bid128dqd_fma __bid128dqd_fma
     189  #define bid128dqq_fma __bid128dqq_fma
     190  #define bid128_fma __bid128_fma
     191  #define bid128qdd_fma __bid128qdd_fma
     192  #define bid128qdq_fma __bid128qdq_fma
     193  #define bid128qqd_fma __bid128qqd_fma
     194  #define bid64ddq_fma __bid64ddq_fma
     195  #define bid64dqd_fma __bid64dqd_fma
     196  #define bid64dqq_fma __bid64dqq_fma
     197  #define bid64qdd_fma __bid64qdd_fma
     198  #define bid64qdq_fma __bid64qdq_fma
     199  #define bid64qqd_fma __bid64qqd_fma
     200  #define bid64qqq_fma __bid64qqq_fma
     201  #define bid128_round_integral_exact __bid128_round_integral_exact
     202  #define bid128_round_integral_nearest_away __bid128_round_integral_nearest_away
     203  #define bid128_round_integral_nearest_even __bid128_round_integral_nearest_even
     204  #define bid128_round_integral_negative __bid128_round_integral_negative
     205  #define bid128_round_integral_positive __bid128_round_integral_positive
     206  #define bid128_round_integral_zero __bid128_round_integral_zero
     207  #define bid64_round_integral_exact __bid64_round_integral_exact
     208  #define bid64_round_integral_nearest_away __bid64_round_integral_nearest_away
     209  #define bid64_round_integral_nearest_even __bid64_round_integral_nearest_even
     210  #define bid64_round_integral_negative __bid64_round_integral_negative
     211  #define bid64_round_integral_positive __bid64_round_integral_positive
     212  #define bid64_round_integral_zero __bid64_round_integral_zero
     213  #define bid128_quantize __bid128_quantize
     214  #define bid128_scalb __bid128_scalb
     215  #define bid64_maxnum __bid64_maxnum
     216  #define bid64_maxnum_mag __bid64_maxnum_mag
     217  #define bid64_minnum __bid64_minnum
     218  #define bid64_minnum_mag __bid64_minnum_mag
     219  #define bid128_maxnum __bid128_maxnum
     220  #define bid128_maxnum_mag __bid128_maxnum_mag
     221  #define bid128_minnum __bid128_minnum
     222  #define bid128_minnum_mag __bid128_minnum_mag
     223  #define bid128_rem __bid128_rem
     224  #define bid128_logb __bid128_logb
     225  #define getDecimalRoundingDirection __bid_getDecimalRoundingDirection
     226  #define is754 __bid_is754
     227  #define is754R __bid_is754R
     228  #define signalException __bid_signalException
     229  #define lowerFlags __bid_lowerFlags
     230  #define restoreFlags __bid_restoreFlags
     231  #define saveFlags __bid_saveFlags
     232  #define setDecimalRoundingDirection __bid_setDecimalRoundingDirection
     233  #define testFlags __bid_testFlags
     234  #define testSavedFlags __bid_testSavedFlags
     235  #define bid32_to_bid64 __bid32_to_bid64
     236  #define bid64_to_bid32 __bid64_to_bid32
     237  #define bid128_to_string __bid128_to_string
     238  #define mod10_18_tbl __bid_mod10_18_tbl
     239  #define bid128_to_bid32 __bid128_to_bid32
     240  #define bid32_to_bid128 __bid32_to_bid128
     241  #define bid128_to_bid64 __bid128_to_bid64
     242  #define bid64_to_bid128 __bid64_to_bid128
     243  #define bid128_from_string __bid128_from_string
     244  #define bid128_from_int32 __bid128_from_int32
     245  #define bid128_from_int64 __bid128_from_int64
     246  #define bid128_from_uint32 __bid128_from_uint32
     247  #define bid128_from_uint64 __bid128_from_uint64
     248  #define bid64_from_int32 __bid64_from_int32
     249  #define bid64_from_int64 __bid64_from_int64
     250  #define bid64_from_uint32 __bid64_from_uint32
     251  #define bid64_from_uint64 __bid64_from_uint64
     252  #define bid64_abs __bid64_abs
     253  #define bid64_class __bid64_class
     254  #define bid64_copy __bid64_copy
     255  #define bid64_copySign __bid64_copySign
     256  #define bid64_isCanonical __bid64_isCanonical
     257  #define bid64_isFinite __bid64_isFinite
     258  #define bid64_isInf __bid64_isInf
     259  #define bid64_isNaN __bid64_isNaN
     260  #define bid64_isNormal __bid64_isNormal
     261  #define bid64_isSignaling __bid64_isSignaling
     262  #define bid64_isSigned __bid64_isSigned
     263  #define bid64_isSubnormal __bid64_isSubnormal
     264  #define bid64_isZero __bid64_isZero
     265  #define bid64_negate __bid64_negate
     266  #define bid64_radix __bid64_radix
     267  #define bid64_sameQuantum __bid64_sameQuantum
     268  #define bid64_totalOrder __bid64_totalOrder
     269  #define bid64_totalOrderMag __bid64_totalOrderMag
     270  #define bid128_abs __bid128_abs
     271  #define bid128_class __bid128_class
     272  #define bid128_copy __bid128_copy
     273  #define bid128_copySign __bid128_copySign
     274  #define bid128_isCanonical __bid128_isCanonical
     275  #define bid128_isFinite __bid128_isFinite
     276  #define bid128_isInf __bid128_isInf
     277  #define bid128_isNaN __bid128_isNaN
     278  #define bid128_isNormal __bid128_isNormal
     279  #define bid128_isSignaling __bid128_isSignaling
     280  #define bid128_isSigned __bid128_isSigned
     281  #define bid128_isSubnormal __bid128_isSubnormal
     282  #define bid128_isZero __bid128_isZero
     283  #define bid128_negate __bid128_negate
     284  #define bid128_radix __bid128_radix
     285  #define bid128_sameQuantum __bid128_sameQuantum
     286  #define bid128_totalOrder __bid128_totalOrder
     287  #define bid128_totalOrderMag __bid128_totalOrderMag
     288  #define bid64_quiet_equal __bid64_quiet_equal
     289  #define bid64_quiet_greater __bid64_quiet_greater
     290  #define bid64_quiet_greater_equal __bid64_quiet_greater_equal
     291  #define bid64_quiet_greater_unordered __bid64_quiet_greater_unordered
     292  #define bid64_quiet_less __bid64_quiet_less
     293  #define bid64_quiet_less_equal __bid64_quiet_less_equal
     294  #define bid64_quiet_less_unordered __bid64_quiet_less_unordered
     295  #define bid64_quiet_not_equal __bid64_quiet_not_equal
     296  #define bid64_quiet_not_greater __bid64_quiet_not_greater
     297  #define bid64_quiet_not_less __bid64_quiet_not_less
     298  #define bid64_quiet_ordered __bid64_quiet_ordered
     299  #define bid64_quiet_unordered __bid64_quiet_unordered
     300  #define bid64_signaling_greater __bid64_signaling_greater
     301  #define bid64_signaling_greater_equal __bid64_signaling_greater_equal
     302  #define bid64_signaling_greater_unordered __bid64_signaling_greater_unordered
     303  #define bid64_signaling_less __bid64_signaling_less
     304  #define bid64_signaling_less_equal __bid64_signaling_less_equal
     305  #define bid64_signaling_less_unordered __bid64_signaling_less_unordered
     306  #define bid64_signaling_not_greater __bid64_signaling_not_greater
     307  #define bid64_signaling_not_less __bid64_signaling_not_less
     308  #define bid128_quiet_equal __bid128_quiet_equal
     309  #define bid128_quiet_greater __bid128_quiet_greater
     310  #define bid128_quiet_greater_equal __bid128_quiet_greater_equal
     311  #define bid128_quiet_greater_unordered __bid128_quiet_greater_unordered
     312  #define bid128_quiet_less __bid128_quiet_less
     313  #define bid128_quiet_less_equal __bid128_quiet_less_equal
     314  #define bid128_quiet_less_unordered __bid128_quiet_less_unordered
     315  #define bid128_quiet_not_equal __bid128_quiet_not_equal
     316  #define bid128_quiet_not_greater __bid128_quiet_not_greater
     317  #define bid128_quiet_not_less __bid128_quiet_not_less
     318  #define bid128_quiet_ordered __bid128_quiet_ordered
     319  #define bid128_quiet_unordered __bid128_quiet_unordered
     320  #define bid128_signaling_greater __bid128_signaling_greater
     321  #define bid128_signaling_greater_equal __bid128_signaling_greater_equal
     322  #define bid128_signaling_greater_unordered __bid128_signaling_greater_unordered
     323  #define bid128_signaling_less __bid128_signaling_less
     324  #define bid128_signaling_less_equal __bid128_signaling_less_equal
     325  #define bid128_signaling_less_unordered __bid128_signaling_less_unordered
     326  #define bid128_signaling_not_greater __bid128_signaling_not_greater
     327  #define bid128_signaling_not_less __bid128_signaling_not_less
     328  #define bid64_to_int32_ceil __bid64_to_int32_ceil
     329  #define bid64_to_int32_floor __bid64_to_int32_floor
     330  #define bid64_to_int32_int __bid64_to_int32_int
     331  #define bid64_to_int32_rnint __bid64_to_int32_rnint
     332  #define bid64_to_int32_rninta __bid64_to_int32_rninta
     333  #define bid64_to_int32_xceil __bid64_to_int32_xceil
     334  #define bid64_to_int32_xfloor __bid64_to_int32_xfloor
     335  #define bid64_to_int32_xint __bid64_to_int32_xint
     336  #define bid64_to_int32_xrnint __bid64_to_int32_xrnint
     337  #define bid64_to_int32_xrninta __bid64_to_int32_xrninta
     338  #define bid64_to_uint32_ceil __bid64_to_uint32_ceil
     339  #define bid64_to_uint32_floor __bid64_to_uint32_floor
     340  #define bid64_to_uint32_int __bid64_to_uint32_int
     341  #define bid64_to_uint32_rnint __bid64_to_uint32_rnint
     342  #define bid64_to_uint32_rninta __bid64_to_uint32_rninta
     343  #define bid64_to_uint32_xceil __bid64_to_uint32_xceil
     344  #define bid64_to_uint32_xfloor __bid64_to_uint32_xfloor
     345  #define bid64_to_uint32_xint __bid64_to_uint32_xint
     346  #define bid64_to_uint32_xrnint __bid64_to_uint32_xrnint
     347  #define bid64_to_uint32_xrninta __bid64_to_uint32_xrninta
     348  #define bid64_to_int64_ceil __bid64_to_int64_ceil
     349  #define bid64_to_int64_floor __bid64_to_int64_floor
     350  #define bid64_to_int64_int __bid64_to_int64_int
     351  #define bid64_to_int64_rnint __bid64_to_int64_rnint
     352  #define bid64_to_int64_rninta __bid64_to_int64_rninta
     353  #define bid64_to_int64_xceil __bid64_to_int64_xceil
     354  #define bid64_to_int64_xfloor __bid64_to_int64_xfloor
     355  #define bid64_to_int64_xint __bid64_to_int64_xint
     356  #define bid64_to_int64_xrnint __bid64_to_int64_xrnint
     357  #define bid64_to_int64_xrninta __bid64_to_int64_xrninta
     358  #define bid64_to_uint64_ceil __bid64_to_uint64_ceil
     359  #define bid64_to_uint64_floor __bid64_to_uint64_floor
     360  #define bid64_to_uint64_int __bid64_to_uint64_int
     361  #define bid64_to_uint64_rnint __bid64_to_uint64_rnint
     362  #define bid64_to_uint64_rninta __bid64_to_uint64_rninta
     363  #define bid64_to_uint64_xceil __bid64_to_uint64_xceil
     364  #define bid64_to_uint64_xfloor __bid64_to_uint64_xfloor
     365  #define bid64_to_uint64_xint __bid64_to_uint64_xint
     366  #define bid64_to_uint64_xrnint __bid64_to_uint64_xrnint
     367  #define bid64_to_uint64_xrninta __bid64_to_uint64_xrninta
     368  #define bid128_to_int32_ceil __bid128_to_int32_ceil
     369  #define bid128_to_int32_floor __bid128_to_int32_floor
     370  #define bid128_to_int32_int __bid128_to_int32_int
     371  #define bid128_to_int32_rnint __bid128_to_int32_rnint
     372  #define bid128_to_int32_rninta __bid128_to_int32_rninta
     373  #define bid128_to_int32_xceil __bid128_to_int32_xceil
     374  #define bid128_to_int32_xfloor __bid128_to_int32_xfloor
     375  #define bid128_to_int32_xint __bid128_to_int32_xint
     376  #define bid128_to_int32_xrnint __bid128_to_int32_xrnint
     377  #define bid128_to_int32_xrninta __bid128_to_int32_xrninta
     378  #define bid128_to_uint32_ceil __bid128_to_uint32_ceil
     379  #define bid128_to_uint32_floor __bid128_to_uint32_floor
     380  #define bid128_to_uint32_int __bid128_to_uint32_int
     381  #define bid128_to_uint32_rnint __bid128_to_uint32_rnint
     382  #define bid128_to_uint32_rninta __bid128_to_uint32_rninta
     383  #define bid128_to_uint32_xceil __bid128_to_uint32_xceil
     384  #define bid128_to_uint32_xfloor __bid128_to_uint32_xfloor
     385  #define bid128_to_uint32_xint __bid128_to_uint32_xint
     386  #define bid128_to_uint32_xrnint __bid128_to_uint32_xrnint
     387  #define bid128_to_uint32_xrninta __bid128_to_uint32_xrninta
     388  #define bid128_to_int64_ceil __bid128_to_int64_ceil
     389  #define bid128_to_int64_floor __bid128_to_int64_floor
     390  #define bid128_to_int64_int __bid128_to_int64_int
     391  #define bid128_to_int64_rnint __bid128_to_int64_rnint
     392  #define bid128_to_int64_rninta __bid128_to_int64_rninta
     393  #define bid128_to_int64_xceil __bid128_to_int64_xceil
     394  #define bid128_to_int64_xfloor __bid128_to_int64_xfloor
     395  #define bid128_to_int64_xint __bid128_to_int64_xint
     396  #define bid128_to_int64_xrnint __bid128_to_int64_xrnint
     397  #define bid128_to_int64_xrninta __bid128_to_int64_xrninta
     398  #define bid128_to_uint64_ceil __bid128_to_uint64_ceil
     399  #define bid128_to_uint64_floor __bid128_to_uint64_floor
     400  #define bid128_to_uint64_int __bid128_to_uint64_int
     401  #define bid128_to_uint64_rnint __bid128_to_uint64_rnint
     402  #define bid128_to_uint64_rninta __bid128_to_uint64_rninta
     403  #define bid128_to_uint64_xceil __bid128_to_uint64_xceil
     404  #define bid128_to_uint64_xfloor __bid128_to_uint64_xfloor
     405  #define bid128_to_uint64_xint __bid128_to_uint64_xint
     406  #define bid128_to_uint64_xrnint __bid128_to_uint64_xrnint
     407  #define bid128_to_uint64_xrninta __bid128_to_uint64_xrninta
     408  #define bid128_to_binary128 __bid128_to_binary128
     409  #define bid128_to_binary32 __bid128_to_binary32
     410  #define bid128_to_binary64 __bid128_to_binary64
     411  #define bid128_to_binary80 __bid128_to_binary80
     412  #define bid32_to_binary128 __bid32_to_binary128
     413  #define bid32_to_binary32 __bid32_to_binary32
     414  #define bid32_to_binary64 __bid32_to_binary64
     415  #define bid32_to_binary80 __bid32_to_binary80
     416  #define bid64_to_binary128 __bid64_to_binary128
     417  #define bid64_to_binary32 __bid64_to_binary32
     418  #define bid64_to_binary64 __bid64_to_binary64
     419  #define bid64_to_binary80 __bid64_to_binary80
     420  #define binary128_to_bid128 __binary128_to_bid128
     421  #define binary128_to_bid32 __binary128_to_bid32
     422  #define binary128_to_bid64 __binary128_to_bid64
     423  #define binary32_to_bid128 __binary32_to_bid128
     424  #define binary32_to_bid32 __binary32_to_bid32
     425  #define binary32_to_bid64 __binary32_to_bid64
     426  #define binary64_to_bid128 __binary64_to_bid128
     427  #define binary64_to_bid32 __binary64_to_bid32
     428  #define binary64_to_bid64 __binary64_to_bid64
     429  #define binary80_to_bid128 __binary80_to_bid128
     430  #define binary80_to_bid32 __binary80_to_bid32
     431  #define binary80_to_bid64 __binary80_to_bid64
     432  #define bid64_to_uint16_ceil __bid64_to_uint16_ceil
     433  #define bid64_to_uint16_floor __bid64_to_uint16_floor
     434  #define bid64_to_uint16_int __bid64_to_uint16_int
     435  #define bid64_to_uint16_rnint __bid64_to_uint16_rnint
     436  #define bid64_to_uint16_rninta __bid64_to_uint16_rninta
     437  #define bid64_to_uint16_xceil __bid64_to_uint16_xceil
     438  #define bid64_to_uint16_xfloor __bid64_to_uint16_xfloor
     439  #define bid64_to_uint16_xint __bid64_to_uint16_xint
     440  #define bid64_to_uint16_xrnint __bid64_to_uint16_xrnint
     441  #define bid64_to_uint16_xrninta __bid64_to_uint16_xrninta
     442  #define bid64_to_int16_ceil __bid64_to_int16_ceil
     443  #define bid64_to_int16_floor __bid64_to_int16_floor
     444  #define bid64_to_int16_int __bid64_to_int16_int
     445  #define bid64_to_int16_rnint __bid64_to_int16_rnint
     446  #define bid64_to_int16_rninta __bid64_to_int16_rninta
     447  #define bid64_to_int16_xceil __bid64_to_int16_xceil
     448  #define bid64_to_int16_xfloor __bid64_to_int16_xfloor
     449  #define bid64_to_int16_xint __bid64_to_int16_xint
     450  #define bid64_to_int16_xrnint __bid64_to_int16_xrnint
     451  #define bid64_to_int16_xrninta __bid64_to_int16_xrninta
     452  #define bid128_to_uint16_ceil __bid128_to_uint16_ceil
     453  #define bid128_to_uint16_floor __bid128_to_uint16_floor
     454  #define bid128_to_uint16_int __bid128_to_uint16_int
     455  #define bid128_to_uint16_rnint __bid128_to_uint16_rnint
     456  #define bid128_to_uint16_rninta __bid128_to_uint16_rninta
     457  #define bid128_to_uint16_xceil __bid128_to_uint16_xceil
     458  #define bid128_to_uint16_xfloor __bid128_to_uint16_xfloor
     459  #define bid128_to_uint16_xint __bid128_to_uint16_xint
     460  #define bid128_to_uint16_xrnint __bid128_to_uint16_xrnint
     461  #define bid128_to_uint16_xrninta __bid128_to_uint16_xrninta
     462  #define bid128_to_int16_ceil __bid128_to_int16_ceil
     463  #define bid128_to_int16_floor __bid128_to_int16_floor
     464  #define bid128_to_int16_int __bid128_to_int16_int
     465  #define bid128_to_int16_rnint __bid128_to_int16_rnint
     466  #define bid128_to_int16_rninta __bid128_to_int16_rninta
     467  #define bid128_to_int16_xceil __bid128_to_int16_xceil
     468  #define bid128_to_int16_xfloor __bid128_to_int16_xfloor
     469  #define bid128_to_int16_xint __bid128_to_int16_xint
     470  #define bid128_to_int16_xrnint __bid128_to_int16_xrnint
     471  #define bid128_to_int16_xrninta __bid128_to_int16_xrninta
     472  #define bid64_to_uint8_ceil __bid64_to_uint8_ceil
     473  #define bid64_to_uint8_floor __bid64_to_uint8_floor
     474  #define bid64_to_uint8_int __bid64_to_uint8_int
     475  #define bid64_to_uint8_rnint __bid64_to_uint8_rnint
     476  #define bid64_to_uint8_rninta __bid64_to_uint8_rninta
     477  #define bid64_to_uint8_xceil __bid64_to_uint8_xceil
     478  #define bid64_to_uint8_xfloor __bid64_to_uint8_xfloor
     479  #define bid64_to_uint8_xint __bid64_to_uint8_xint
     480  #define bid64_to_uint8_xrnint __bid64_to_uint8_xrnint
     481  #define bid64_to_uint8_xrninta __bid64_to_uint8_xrninta
     482  #define bid64_to_int8_ceil __bid64_to_int8_ceil
     483  #define bid64_to_int8_floor __bid64_to_int8_floor
     484  #define bid64_to_int8_int __bid64_to_int8_int
     485  #define bid64_to_int8_rnint __bid64_to_int8_rnint
     486  #define bid64_to_int8_rninta __bid64_to_int8_rninta
     487  #define bid64_to_int8_xceil __bid64_to_int8_xceil
     488  #define bid64_to_int8_xfloor __bid64_to_int8_xfloor
     489  #define bid64_to_int8_xint __bid64_to_int8_xint
     490  #define bid64_to_int8_xrnint __bid64_to_int8_xrnint
     491  #define bid64_to_int8_xrninta __bid64_to_int8_xrninta
     492  #define bid128_to_uint8_ceil __bid128_to_uint8_ceil
     493  #define bid128_to_uint8_floor __bid128_to_uint8_floor
     494  #define bid128_to_uint8_int __bid128_to_uint8_int
     495  #define bid128_to_uint8_rnint __bid128_to_uint8_rnint
     496  #define bid128_to_uint8_rninta __bid128_to_uint8_rninta
     497  #define bid128_to_uint8_xceil __bid128_to_uint8_xceil
     498  #define bid128_to_uint8_xfloor __bid128_to_uint8_xfloor
     499  #define bid128_to_uint8_xint __bid128_to_uint8_xint
     500  #define bid128_to_uint8_xrnint __bid128_to_uint8_xrnint
     501  #define bid128_to_uint8_xrninta __bid128_to_uint8_xrninta
     502  #define bid128_to_int8_ceil __bid128_to_int8_ceil
     503  #define bid128_to_int8_floor __bid128_to_int8_floor
     504  #define bid128_to_int8_int __bid128_to_int8_int
     505  #define bid128_to_int8_rnint __bid128_to_int8_rnint
     506  #define bid128_to_int8_rninta __bid128_to_int8_rninta
     507  #define bid128_to_int8_xceil __bid128_to_int8_xceil
     508  #define bid128_to_int8_xfloor __bid128_to_int8_xfloor
     509  #define bid128_to_int8_xint __bid128_to_int8_xint
     510  #define bid128_to_int8_xrnint __bid128_to_int8_xrnint
     511  #define bid128_to_int8_xrninta __bid128_to_int8_xrninta
     512  
     513  #ifdef IN_LIBGCC2
     514  #if !defined ENABLE_DECIMAL_BID_FORMAT || !ENABLE_DECIMAL_BID_FORMAT
     515  #error BID not enabled in libbid
     516  #endif
     517  
     518  #ifndef BID_BIG_ENDIAN
     519  #define BID_BIG_ENDIAN __FLOAT_WORD_ORDER__ == __ORDER_BIG_ENDIAN__
     520  #endif
     521  
     522  #ifndef BID_THREAD
     523  #if defined (HAVE_CC_TLS) && defined (USE_TLS)
     524  #define BID_THREAD __thread
     525  #endif
     526  #endif
     527  
     528  #define _intptr_t_defined
     529  #define DECIMAL_CALL_BY_REFERENCE 0
     530  #define DECIMAL_GLOBAL_ROUNDING 1
     531  #define DECIMAL_GLOBAL_ROUNDING_ACCESS_FUNCTIONS 1
     532  #define DECIMAL_GLOBAL_EXCEPTION_FLAGS 1
     533  #define DECIMAL_GLOBAL_EXCEPTION_FLAGS_ACCESS_FUNCTIONS 1
     534  #define BID_HAS_GCC_DECIMAL_INTRINSICS 1
     535  #endif /* IN_LIBGCC2 */
     536  
     537  // Configuration Options
     538  
     539  #define SET_STATUS_FLAGS
     540  
     541  #ifndef BID_THREAD
     542  #define BID_THREAD
     543  #endif
     544  
     545  #ifndef BID_HAS_GCC_DECIMAL_INTRINSICS
     546  #define BID_HAS_GCC_DECIMAL_INTRINSICS 0
     547  #endif
     548  
     549  #if !defined(WINDOWS) || defined(__INTEL_COMPILER)
     550  // #define UNCHANGED_BINARY_STATUS_FLAGS
     551  #endif
     552  // #define HPUX_OS
     553  
     554  // If DECIMAL_CALL_BY_REFERENCE is defined then numerical arguments and results
     555  // are passed by reference otherwise they are passed by value (except that
     556  // a pointer is always passed to the status flags)
     557  
     558  #ifndef DECIMAL_CALL_BY_REFERENCE
     559  #define DECIMAL_CALL_BY_REFERENCE 0
     560  #endif
     561  
     562  // If DECIMAL_GLOBAL_ROUNDING is defined then the rounding mode is a global 
     563  // variable _IDEC_glbround, otherwise it is passed as a parameter when needed
     564  
     565  #ifndef DECIMAL_GLOBAL_ROUNDING
     566  #define DECIMAL_GLOBAL_ROUNDING 0
     567  #endif
     568  
     569  #ifndef DECIMAL_GLOBAL_ROUNDING_ACCESS_FUNCTIONS
     570  #define DECIMAL_GLOBAL_ROUNDING_ACCESS_FUNCTIONS 0
     571  #endif
     572  
     573  // If DECIMAL_GLOBAL_EXCEPTION_FLAGS is defined then the exception status flags
     574  // are represented by a global variable _IDEC_glbflags, otherwise they are 
     575  // passed as a parameter when needed
     576  
     577  #ifndef DECIMAL_GLOBAL_EXCEPTION_FLAGS
     578  #define DECIMAL_GLOBAL_EXCEPTION_FLAGS 0
     579  #endif
     580  
     581  #ifndef DECIMAL_GLOBAL_EXCEPTION_FLAGS_ACCESS_FUNCTIONS
     582  #define DECIMAL_GLOBAL_EXCEPTION_FLAGS_ACCESS_FUNCTIONS 0
     583  #endif
     584  
     585  // If DECIMAL_ALTERNATE_EXCEPTION_HANDLING is defined then the exception masks
     586  // are examined and exception handling information is provided to the caller 
     587  // if alternate exception handling is necessary
     588  
     589  #ifndef DECIMAL_ALTERNATE_EXCEPTION_HANDLING
     590  #define DECIMAL_ALTERNATE_EXCEPTION_HANDLING 0
     591  #endif
     592  
     593  typedef unsigned int _IDEC_round;
     594  typedef unsigned int _IDEC_flags;	// could be a struct with diagnostic info
     595  
     596  #if DECIMAL_ALTERNATE_EXCEPTION_HANDLING
     597    // If DECIMAL_GLOBAL_EXCEPTION_MASKS is defined then the exception mask bits
     598    // are represented by a global variable _IDEC_exceptionmasks, otherwise they
     599    // are passed as a parameter when needed; DECIMAL_GLOBAL_EXCEPTION_MASKS is 
     600    // ignored
     601    // if DECIMAL_ALTERNATE_EXCEPTION_HANDLING is not defined
     602    // **************************************************************************
     603  #define DECIMAL_GLOBAL_EXCEPTION_MASKS 0
     604    // **************************************************************************
     605  
     606    // If DECIMAL_GLOBAL_EXCEPTION_INFO is defined then the alternate exception  
     607    // handling information is represented by a global data structure 
     608    // _IDEC_glbexcepthandling, otherwise it is passed by reference as a
     609    // parameter when needed; DECIMAL_GLOBAL_EXCEPTION_INFO is ignored
     610    // if DECIMAL_ALTERNATE_EXCEPTION_HANDLING is not defined
     611    // **************************************************************************
     612  #define DECIMAL_GLOBAL_EXCEPTION_INFO 0
     613    // **************************************************************************
     614  #endif
     615  
     616  // Notes: 1) rnd_mode from _RND_MODE_ARG is used by the caller of a function
     617  //           from this library, and can be any name
     618  //        2) rnd_mode and prnd_mode from _RND_MODE_PARAM are fixed names 
     619  //           and *must* be used in the library functions
     620  //        3) _IDEC_glbround is the fixed name for the global variable holding 
     621  //           the rounding mode
     622  
     623  #if !DECIMAL_GLOBAL_ROUNDING
     624  #if DECIMAL_CALL_BY_REFERENCE
     625  #define _RND_MODE_ARG , &rnd_mode
     626  #define _RND_MODE_PARAM , _IDEC_round *prnd_mode
     627  #define _RND_MODE_ARG_ALONE &rnd_mode
     628  #define _RND_MODE_PARAM_ALONE _IDEC_round *prnd_mode
     629  #else
     630  #define _RND_MODE_ARG , rnd_mode
     631  #define _RND_MODE_PARAM , _IDEC_round rnd_mode
     632  #define _RND_MODE_ARG_ALONE rnd_mode
     633  #define _RND_MODE_PARAM_ALONE _IDEC_round rnd_mode
     634  #endif
     635  #else
     636  #define _RND_MODE_ARG
     637  #define _RND_MODE_PARAM
     638  #define _RND_MODE_ARG_ALONE
     639  #define _RND_MODE_PARAM_ALONE
     640  #define rnd_mode _IDEC_glbround
     641  #endif
     642  
     643  // Notes: 1) pfpsf from _EXC_FLAGS_ARG is used by the caller of a function
     644  //           from this library, and can be any name 
     645  //        2) pfpsf from _EXC_FLAGS_PARAM is a fixed name and *must* be used  
     646  //           in the library functions
     647  //        3) _IDEC_glbflags is the fixed name for the global variable holding 
     648  //           the floating-point status flags
     649  #if !DECIMAL_GLOBAL_EXCEPTION_FLAGS
     650  #define _EXC_FLAGS_ARG , pfpsf
     651  #define _EXC_FLAGS_PARAM , _IDEC_flags *pfpsf
     652  #else
     653  #define _EXC_FLAGS_ARG
     654  #define _EXC_FLAGS_PARAM
     655  #define pfpsf &_IDEC_glbflags
     656  #endif
     657  
     658  #if DECIMAL_GLOBAL_ROUNDING
     659  extern BID_THREAD _IDEC_round _IDEC_glbround;
     660  #endif
     661  
     662  #if DECIMAL_GLOBAL_EXCEPTION_FLAGS
     663  extern BID_THREAD _IDEC_flags _IDEC_glbflags;
     664  #endif
     665  
     666  #if DECIMAL_ALTERNATE_EXCEPTION_HANDLING
     667  #if DECIMAL_GLOBAL_EXCEPTION_MASKS
     668  extern BID_THREAD _IDEC_exceptionmasks _IDEC_glbexceptionmasks;
     669  #endif
     670  #if DECIMAL_GLOBAL_EXCEPTION_INFO
     671  extern BID_THREAD _IDEC_excepthandling _IDEC_glbexcepthandling;
     672  #endif
     673  #endif
     674  
     675  #if DECIMAL_ALTERNATE_EXCEPTION_HANDLING
     676  
     677    // Notes: 1) exc_mask from _EXC_MASKS_ARG is used by the caller of a function
     678    //           from this library, and can be any name
     679    //        2) exc_mask and pexc_mask from _EXC_MASKS_PARAM are fixed names
     680    //           and *must* be used in the library functions
     681    //        3) _IDEC_glbexceptionmasks is the fixed name for the global 
     682    //           variable holding the floating-point exception masks
     683  #if !DECIMAL_GLOBAL_EXCEPTION_MASKS
     684  #if DECIMAL_CALL_BY_REFERENCE
     685  #define _EXC_MASKS_ARG , &exc_mask
     686  #define _EXC_MASKS_PARAM , _IDEC_exceptionmasks *pexc_mask
     687  #else
     688  #define _EXC_MASKS_ARG , exc_mask
     689  #define _EXC_MASKS_PARAM , _IDEC_exceptionmasks exc_mask
     690  #endif
     691  #else
     692  #define _EXC_MASKS_ARG
     693  #define _EXC_MASKS_PARAM
     694  #define exc_mask _IDEC_glbexceptionmasks
     695  #endif
     696  
     697    // Notes: 1) pexc_info from _EXC_INFO_ARG is used by the caller of a function
     698    //           from this library, and can be any name
     699    //        2) pexc_info from _EXC_INFO_PARAM is a fixed name and *must* be  
     700    //           used in the library functions
     701    //        3) _IDEC_glbexcepthandling is the fixed name for the global  
     702    //           variable holding the floating-point exception information
     703  #if !DECIMAL_GLOBAL_EXCEPTION_INFO
     704  #define _EXC_INFO_ARG , pexc_info
     705  #define _EXC_INFO_PARAM , _IDEC_excepthandling *pexc_info
     706  #else
     707  #define _EXC_INFO_ARG
     708  #define _EXC_INFO_PARAM
     709  #define pexc_info &_IDEC_glbexcepthandling
     710  #endif
     711  #else
     712  #define _EXC_MASKS_ARG
     713  #define _EXC_MASKS_PARAM
     714  #define _EXC_INFO_ARG
     715  #define _EXC_INFO_PARAM
     716  #endif
     717  
     718  
     719  #ifndef BID_BIG_ENDIAN
     720  #define BID_BIG_ENDIAN 0
     721  #endif
     722  
     723  #if BID_BIG_ENDIAN
     724  #define BID_SWAP128(x) {  \
     725    UINT64 sw;              \
     726    sw = (x).w[1];          \
     727    (x).w[1] = (x).w[0];    \
     728    (x).w[0] = sw;          \
     729    }
     730  #else
     731  #define BID_SWAP128(x)
     732  #endif
     733  
     734  #if DECIMAL_CALL_BY_REFERENCE
     735  #define BID_RETURN_VAL(x) { *pres = (x); return; }
     736  #if BID_BIG_ENDIAN && defined BID_128RES
     737  #define BID_RETURN(x) { BID_SWAP128(x); *pres = (x); return; }
     738  #else
     739  #define BID_RETURN(x) { *pres = (x); return; }
     740  #endif
     741  #else
     742  #define BID_RETURN_VAL(x) return(x);
     743  #if BID_BIG_ENDIAN && defined BID_128RES
     744  #define BID_RETURN(x) { BID_SWAP128(x); return(x); }
     745  #else
     746  #define BID_RETURN(x) return(x);
     747  #endif
     748  #endif
     749  
     750  #if DECIMAL_CALL_BY_REFERENCE
     751  #define BIDECIMAL_CALL1(_FUNC, _RES, _OP1) \
     752      _FUNC(&(_RES), &(_OP1) _RND_MODE_ARG _EXC_FLAGS_ARG _EXC_MASKS_ARG _EXC_INFO_ARG)
     753  #define BIDECIMAL_CALL1_NORND(_FUNC, _RES, _OP1) \
     754      _FUNC(&(_RES), &(_OP1) _EXC_FLAGS_ARG _EXC_MASKS_ARG _EXC_INFO_ARG)
     755  #define BIDECIMAL_CALL2(_FUNC, _RES, _OP1, _OP2) \
     756      _FUNC(&(_RES), &(_OP1), &(_OP2) _RND_MODE_ARG _EXC_FLAGS_ARG _EXC_MASKS_ARG _EXC_INFO_ARG)
     757  #define BIDECIMAL_CALL2_NORND(_FUNC, _RES, _OP1, _OP2) \
     758      _FUNC(&(_RES), &(_OP1), &(_OP2) _EXC_FLAGS_ARG _EXC_MASKS_ARG _EXC_INFO_ARG)
     759  #define BIDECIMAL_CALL1_NORND_RESREF(_FUNC, _RES, _OP1) \
     760      _FUNC((_RES), &(_OP1) _EXC_FLAGS_ARG _EXC_MASKS_ARG _EXC_INFO_ARG)
     761  #define BIDECIMAL_CALL1_RESARG(_FUNC, _RES, _OP1) \
     762      _FUNC(&(_RES), (_OP1) _RND_MODE_ARG _EXC_FLAGS_ARG _EXC_MASKS_ARG _EXC_INFO_ARG)
     763  #define BIDECIMAL_CALL1_RESREF(_FUNC, _RES, _OP1) \
     764      _FUNC((_RES), &(_OP1) _RND_MODE_ARG _EXC_FLAGS_ARG _EXC_MASKS_ARG _EXC_INFO_ARG)
     765  #define BIDECIMAL_CALL1_NORND_NOSTAT(_FUNC, _RES, _OP1) \
     766      _FUNC(&(_RES), &(_OP1) _EXC_MASKS_ARG _EXC_INFO_ARG)
     767  #define BIDECIMAL_CALL2_NORND_NOSTAT(_FUNC, _RES, _OP1, _OP2) \
     768      _FUNC(&(_RES), &(_OP1), &(_OP2) _EXC_MASKS_ARG _EXC_INFO_ARG)
     769  #define BIDECIMAL_CALL3(_FUNC, _RES, _OP1, _OP2, _OP3) \
     770      _FUNC(&(_RES), &(_OP1), &(_OP2), &(_OP3) _RND_MODE_ARG _EXC_FLAGS_ARG _EXC_MASKS_ARG _EXC_INFO_ARG)
     771  #define BIDECIMAL_CALL1_NORND_NOMASK_NOINFO(_FUNC, _RES, _OP1) \
     772      _FUNC(&(_RES), &(_OP1) _EXC_FLAGS_ARG )
     773  #define BIDECIMAL_CALL1_NORND_NOFLAGS_NOMASK_NOINFO(_FUNC, _RES, _OP1) \
     774      _FUNC(&(_RES), &(_OP1) )
     775  #define BIDECIMAL_CALL2_NORND_NOFLAGS_NOMASK_NOINFO(_FUNC, _RES, _OP1, _OP2) \
     776      _FUNC(&(_RES), &(_OP1), &(_OP2) )
     777  #define BIDECIMAL_CALL1_NORND_NOMASK_NOINFO_RESVOID(_FUNC, _OP1) \
     778      _FUNC(&(_OP1) _EXC_FLAGS_ARG )
     779  #define BIDECIMAL_CALL2_NORND_NOMASK_NOINFO_RESVOID(_FUNC, _OP1, _OP2) \
     780      _FUNC(&(_OP1), &(_OP2) _EXC_FLAGS_ARG )
     781  #define BIDECIMAL_CALLV_NOFLAGS_NOMASK_NOINFO(_FUNC, _RES) \
     782      _FUNC(&(_RES) _RND_MODE_ARG)
     783  #define BIDECIMAL_CALL1_NOFLAGS_NOMASK_NOINFO(_FUNC, _RES, _OP1) \
     784      _FUNC(&(_OP1) _RND_MODE_ARG)
     785  #else
     786  #define BIDECIMAL_CALL1(_FUNC, _RES, _OP1) \
     787      _RES = _FUNC((_OP1) _RND_MODE_ARG _EXC_FLAGS_ARG _EXC_MASKS_ARG _EXC_INFO_ARG)
     788  #define BIDECIMAL_CALL1_NORND(_FUNC, _RES, _OP1) \
     789      _RES = _FUNC((_OP1) _EXC_FLAGS_ARG _EXC_MASKS_ARG _EXC_INFO_ARG)
     790  #define BIDECIMAL_CALL2(_FUNC, _RES, _OP1, _OP2) \
     791      _RES = _FUNC((_OP1), (_OP2) _RND_MODE_ARG _EXC_FLAGS_ARG _EXC_MASKS_ARG _EXC_INFO_ARG)
     792  #define BIDECIMAL_CALL2_NORND(_FUNC, _RES, _OP1, _OP2) \
     793      _RES = _FUNC((_OP1), (_OP2) _EXC_FLAGS_ARG _EXC_MASKS_ARG _EXC_INFO_ARG)
     794  #define BIDECIMAL_CALL1_NORND_RESREF(_FUNC, _RES, _OP1) \
     795      _FUNC((_RES), _OP1 _EXC_FLAGS_ARG _EXC_MASKS_ARG _EXC_INFO_ARG)
     796  #define BIDECIMAL_CALL1_RESARG(_FUNC, _RES, _OP1) \
     797      _RES = _FUNC((_OP1) _RND_MODE_ARG _EXC_FLAGS_ARG _EXC_MASKS_ARG _EXC_INFO_ARG)
     798  #define BIDECIMAL_CALL1_RESREF(_FUNC, _RES, _OP1) \
     799      _FUNC((_RES), _OP1 _RND_MODE_ARG _EXC_FLAGS_ARG _EXC_MASKS_ARG _EXC_INFO_ARG)
     800  #define BIDECIMAL_CALL1_NORND_NOSTAT(_FUNC, _RES, _OP1) \
     801      _RES = _FUNC((_OP1) _EXC_MASKS_ARG _EXC_INFO_ARG)
     802  #define BIDECIMAL_CALL2_NORND_NOSTAT(_FUNC, _RES, _OP1, _OP2) \
     803      _RES = _FUNC((_OP1), (_OP2) _EXC_MASKS_ARG _EXC_INFO_ARG)
     804  #define BIDECIMAL_CALL3(_FUNC, _RES, _OP1, _OP2, _OP3) \
     805      _RES = _FUNC((_OP1), (_OP2), (_OP3) _RND_MODE_ARG _EXC_FLAGS_ARG _EXC_MASKS_ARG _EXC_INFO_ARG)
     806  #define BIDECIMAL_CALL1_NORND_NOMASK_NOINFO(_FUNC, _RES, _OP1) \
     807      _RES = _FUNC((_OP1) _EXC_FLAGS_ARG)
     808  #define BIDECIMAL_CALL1_NORND_NOFLAGS_NOMASK_NOINFO(_FUNC, _RES, _OP1) \
     809      _RES = _FUNC((_OP1) )
     810  #define BIDECIMAL_CALL2_NORND_NOFLAGS_NOMASK_NOINFO(_FUNC, _RES, _OP1, _OP2) \
     811      _RES = _FUNC((_OP1), (_OP2) )
     812  #define BIDECIMAL_CALL1_NORND_NOMASK_NOINFO_RESVOID(_FUNC, _OP1) \
     813      _FUNC((_OP1) _EXC_FLAGS_ARG)
     814  #define BIDECIMAL_CALL2_NORND_NOMASK_NOINFO_RESVOID(_FUNC, _OP1, _OP2) \
     815      _FUNC((_OP1), (_OP2) _EXC_FLAGS_ARG)
     816  #define BIDECIMAL_CALLV_NOFLAGS_NOMASK_NOINFO(_FUNC, _RES) \
     817      _RES = _FUNC(_RND_MODE_ARG_ALONE)
     818  #if !DECIMAL_GLOBAL_ROUNDING
     819  #define BIDECIMAL_CALL1_NOFLAGS_NOMASK_NOINFO(_FUNC, _RES, _OP1) \
     820      _RES = _FUNC((_OP1) _RND_MODE_ARG)
     821  #else
     822  #define BIDECIMAL_CALL1_NOFLAGS_NOMASK_NOINFO(_FUNC, _RES, _OP1) \
     823      _FUNC((_OP1) _RND_MODE_ARG)
     824  #endif
     825  #endif
     826  
     827  #if BID_BIG_ENDIAN
     828  #define HIGH_128W 0
     829  #define LOW_128W  1
     830  #else
     831  #define HIGH_128W 1
     832  #define LOW_128W  0
     833  #endif
     834  
     835  #if BID_BIG_ENDIAN
     836  #define COPY_ARG_REF(arg_name) \
     837         UINT128 arg_name={ pbid_##arg_name->w[1], pbid_##arg_name->w[0]};
     838  #define COPY_ARG_VAL(arg_name) \
     839         UINT128 arg_name={ bid_##arg_name.w[1], bid_##arg_name.w[0]};
     840  #else
     841  #define COPY_ARG_REF(arg_name) \
     842         UINT128 arg_name=*pbid_##arg_name;
     843  #define COPY_ARG_VAL(arg_name) \
     844         UINT128 arg_name= bid_##arg_name;
     845  #endif
     846  
     847  #define COPY_ARG_TYPE_REF(type, arg_name) \
     848         type arg_name=*pbid_##arg_name;
     849  #define COPY_ARG_TYPE_VAL(type, arg_name) \
     850         type arg_name= bid_##arg_name;
     851  
     852  #if !DECIMAL_GLOBAL_ROUNDING
     853  #define SET_RND_MODE() \
     854    _IDEC_round rnd_mode = *prnd_mode;
     855  #else
     856  #define SET_RND_MODE()
     857  #endif
     858  
     859  #define PROLOG_REF(arg_name) \
     860         COPY_ARG_REF(arg_name)
     861  
     862  #define PROLOG_VAL(arg_name) \
     863         COPY_ARG_VAL(arg_name)
     864  
     865  #define PROLOG_TYPE_REF(type, arg_name) \
     866         COPY_ARG_TYPE_REF(type, arg_name)
     867  
     868  #define PROLOG_TYPE_VAL(type, arg_name) \
     869        COPY_ARG_TYPE_VAL(type, arg_name)
     870  
     871  #define OTHER_PROLOG_REF()
     872  #define OTHER_PROLOG_VAL()
     873  
     874  #if DECIMAL_CALL_BY_REFERENCE
     875  #define       BID128_FUNCTION_ARG1(fn_name, arg_name)\
     876        void fn_name (UINT128 * pres, \
     877             UINT128 *  \
     878             pbid_##arg_name _RND_MODE_PARAM _EXC_FLAGS_PARAM _EXC_MASKS_PARAM \
     879             _EXC_INFO_PARAM) {\
     880       PROLOG_REF(arg_name)   \
     881       SET_RND_MODE()         \
     882       OTHER_PROLOG_REF()
     883  
     884  #define       BID128_FUNCTION_ARG1_NORND(fn_name, arg_name)\
     885        void fn_name (UINT128 * pres, \
     886             UINT128 *  \
     887             pbid_##arg_name _EXC_FLAGS_PARAM _EXC_MASKS_PARAM \
     888             _EXC_INFO_PARAM) {\
     889       PROLOG_REF(arg_name)   \
     890       OTHER_PROLOG_REF()
     891  
     892  #define       BID128_FUNCTION_ARG1_NORND_CUSTOMRESTYPE(restype, fn_name, arg_name)\
     893        void fn_name (restype * pres, \
     894             UINT128 *  \
     895             pbid_##arg_name _EXC_FLAGS_PARAM _EXC_MASKS_PARAM \
     896             _EXC_INFO_PARAM) {\
     897       PROLOG_REF(arg_name)   \
     898       OTHER_PROLOG_REF()
     899  
     900  #define       BID128_FUNCTION_ARG2(fn_name, arg_name1, arg_name2)\
     901        void fn_name (UINT128 * pres, \
     902             UINT128 *pbid_##arg_name1,  UINT128 *pbid_##arg_name2  \
     903             _RND_MODE_PARAM _EXC_FLAGS_PARAM _EXC_MASKS_PARAM \
     904             _EXC_INFO_PARAM) {\
     905       PROLOG_REF(arg_name1)   \
     906       PROLOG_REF(arg_name2)   \
     907       SET_RND_MODE()         \
     908       OTHER_PROLOG_REF()
     909  
     910  #define       BID128_FUNCTION_ARG2_NORND_CUSTOMRESTYPE(restype, fn_name, arg_name1, arg_name2)\
     911        void fn_name (restype * pres, \
     912             UINT128 *pbid_##arg_name1,  UINT128 *pbid_##arg_name2  \
     913             _EXC_FLAGS_PARAM _EXC_MASKS_PARAM \
     914             _EXC_INFO_PARAM) {\
     915       PROLOG_REF(arg_name1)   \
     916       PROLOG_REF(arg_name2)   \
     917       OTHER_PROLOG_REF()
     918  
     919  #define       BID128_FUNCTION_ARG128_ARGTYPE2(fn_name, arg_name1, type2, arg_name2)\
     920        void fn_name (UINT128 * pres, \
     921             UINT128 *pbid_##arg_name1,  type2 *pbid_##arg_name2  \
     922             _RND_MODE_PARAM _EXC_FLAGS_PARAM _EXC_MASKS_PARAM \
     923             _EXC_INFO_PARAM) {\
     924       PROLOG_REF(arg_name1)   \
     925       PROLOG_TYPE_REF(type2, arg_name2)   \
     926       SET_RND_MODE()         \
     927       OTHER_PROLOG_REF()
     928  
     929  #define       TYPE0_FUNCTION_ARGTYPE1_ARGTYPE2(type0, fn_name, type1, arg_name1, type2, arg_name2)\
     930        void fn_name (type0 *pres, \
     931             type1 *pbid_##arg_name1,  type2 *pbid_##arg_name2  \
     932             _RND_MODE_PARAM _EXC_FLAGS_PARAM _EXC_MASKS_PARAM \
     933             _EXC_INFO_PARAM) {\
     934       PROLOG_TYPE_REF(type1, arg_name1)   \
     935       PROLOG_TYPE_REF(type2, arg_name2)   \
     936       SET_RND_MODE()         \
     937       OTHER_PROLOG_REF()
     938  
     939  #define       BID128_FUNCTION_ARGTYPE1_ARG128(fn_name, type1, arg_name1, arg_name2)\
     940        void fn_name (UINT128 * pres, \
     941             type1 *pbid_##arg_name1,  UINT128 *pbid_##arg_name2  \
     942             _RND_MODE_PARAM _EXC_FLAGS_PARAM _EXC_MASKS_PARAM \
     943             _EXC_INFO_PARAM) {\
     944       PROLOG_TYPE_REF(type1, arg_name1)   \
     945       PROLOG_REF(arg_name2)   \
     946       SET_RND_MODE()         \
     947       OTHER_PROLOG_REF()
     948  
     949  #define       TYPE0_FUNCTION_ARG128_ARGTYPE2(type0, fn_name, arg_name1, type2, arg_name2)\
     950        void fn_name (type0 *pres, \
     951             UINT128 *pbid_##arg_name1,  type2 *pbid_##arg_name2  \
     952             _RND_MODE_PARAM _EXC_FLAGS_PARAM _EXC_MASKS_PARAM \
     953             _EXC_INFO_PARAM) {\
     954       PROLOG_REF(arg_name1)   \
     955       PROLOG_TYPE_REF(type2, arg_name2)   \
     956       SET_RND_MODE()         \
     957       OTHER_PROLOG_REF()
     958  
     959  #define       TYPE0_FUNCTION_ARGTYPE1_ARG128(type0, fn_name, type1, arg_name1, arg_name2)\
     960        void fn_name (type0 *pres, \
     961             type1 *pbid_##arg_name1,  UINT128 *pbid_##arg_name2  \
     962             _RND_MODE_PARAM _EXC_FLAGS_PARAM _EXC_MASKS_PARAM \
     963             _EXC_INFO_PARAM) {\
     964       PROLOG_TYPE_REF(type1, arg_name1)   \
     965       PROLOG_REF(arg_name2)   \
     966       SET_RND_MODE()         \
     967       OTHER_PROLOG_REF()
     968  
     969  #define       TYPE0_FUNCTION_ARG128_ARG128(type0, fn_name, arg_name1, arg_name2)\
     970        void fn_name (type0 * pres, \
     971             UINT128 *pbid_##arg_name1,  UINT128 *pbid_##arg_name2  \
     972             _RND_MODE_PARAM _EXC_FLAGS_PARAM _EXC_MASKS_PARAM \
     973             _EXC_INFO_PARAM) {\
     974       PROLOG_REF(arg_name1)   \
     975       PROLOG_REF(arg_name2)   \
     976       SET_RND_MODE()         \
     977       OTHER_PROLOG_REF()
     978  
     979  #define       TYPE0_FUNCTION_ARG1(type0, fn_name, arg_name)\
     980        void fn_name (type0 * pres, \
     981             UINT128 *  \
     982             pbid_##arg_name _RND_MODE_PARAM _EXC_FLAGS_PARAM _EXC_MASKS_PARAM \
     983             _EXC_INFO_PARAM) {\
     984       PROLOG_REF(arg_name)   \
     985       SET_RND_MODE()         \
     986       OTHER_PROLOG_REF()
     987  
     988  #define       BID128_FUNCTION_ARGTYPE1(fn_name, type1, arg_name)\
     989        void fn_name (UINT128 * pres, \
     990             type1 *  \
     991             pbid_##arg_name _RND_MODE_PARAM _EXC_FLAGS_PARAM _EXC_MASKS_PARAM \
     992             _EXC_INFO_PARAM) {\
     993       PROLOG_TYPE_REF(type1, arg_name)   \
     994       SET_RND_MODE()         \
     995       OTHER_PROLOG_REF()
     996  
     997  #define       TYPE0_FUNCTION_ARGTYPE1(type0, fn_name, type1, arg_name)\
     998        void fn_name (type0 * pres, \
     999             type1 *  \
    1000             pbid_##arg_name _RND_MODE_PARAM _EXC_FLAGS_PARAM _EXC_MASKS_PARAM \
    1001             _EXC_INFO_PARAM) {\
    1002       PROLOG_TYPE_REF(type1, arg_name)   \
    1003       SET_RND_MODE()         \
    1004       OTHER_PROLOG_REF()
    1005  
    1006  #define       TYPE0_FUNCTION_ARGTYPE1_NORND(type0, fn_name, type1, arg_name)\
    1007        void fn_name (type0 * pres, \
    1008             type1 *  \
    1009             pbid_##arg_name _EXC_FLAGS_PARAM _EXC_MASKS_PARAM \
    1010             _EXC_INFO_PARAM) {\
    1011       PROLOG_TYPE_REF(type1, arg_name)   \
    1012       OTHER_PROLOG_REF()
    1013  
    1014  //////////////////////////////////////////
    1015  /////////////////////////////////////////
    1016  ////////////////////////////////////////
    1017  
    1018  #else
    1019  
    1020  //////////////////////////////////////////
    1021  /////////////////////////////////////////
    1022  ////////////////////////////////////////
    1023  
    1024  #define       BID128_FUNCTION_ARG1(fn_name, arg_name)\
    1025       UINT128                                     \
    1026       fn_name (UINT128 bid_##arg_name _RND_MODE_PARAM _EXC_FLAGS_PARAM  \
    1027             _EXC_MASKS_PARAM _EXC_INFO_PARAM) { \
    1028       PROLOG_VAL(arg_name)                      \
    1029       OTHER_PROLOG_VAL()
    1030  
    1031  #define       BID128_FUNCTION_ARG1_NORND(fn_name, arg_name)\
    1032       UINT128                                     \
    1033       fn_name (UINT128 bid_##arg_name _EXC_FLAGS_PARAM  \
    1034             _EXC_MASKS_PARAM _EXC_INFO_PARAM) { \
    1035       PROLOG_VAL(arg_name)                      \
    1036       OTHER_PROLOG_VAL()
    1037  
    1038  #define       BID128_FUNCTION_ARG1_NORND_CUSTOMRESTYPE(restype, fn_name, arg_name)\
    1039       restype                                     \
    1040       fn_name (UINT128 bid_##arg_name _EXC_FLAGS_PARAM  \
    1041             _EXC_MASKS_PARAM _EXC_INFO_PARAM) { \
    1042       PROLOG_VAL(arg_name)                      \
    1043       OTHER_PROLOG_VAL()
    1044  
    1045  #define       BID128_FUNCTION_ARG2(fn_name, arg_name1, arg_name2)\
    1046       UINT128                                     \
    1047       fn_name (UINT128 bid_##arg_name1,      \
    1048              UINT128 bid_##arg_name2 _RND_MODE_PARAM _EXC_FLAGS_PARAM  \
    1049             _EXC_MASKS_PARAM _EXC_INFO_PARAM) {  \
    1050       PROLOG_VAL(arg_name1)                      \
    1051       PROLOG_VAL(arg_name2)                      \
    1052       OTHER_PROLOG_VAL()
    1053  
    1054  #define       BID128_FUNCTION_ARG2_NORND_CUSTOMRESTYPE(restype, fn_name, arg_name1, arg_name2)\
    1055       restype                                    \
    1056       fn_name (UINT128 bid_##arg_name1,      \
    1057              UINT128 bid_##arg_name2 _EXC_FLAGS_PARAM  \
    1058             _EXC_MASKS_PARAM _EXC_INFO_PARAM) {  \
    1059       PROLOG_VAL(arg_name1)                      \
    1060       PROLOG_VAL(arg_name2)                      \
    1061       OTHER_PROLOG_VAL()
    1062  
    1063  #define       BID128_FUNCTION_ARG128_ARGTYPE2(fn_name, arg_name1, type2, arg_name2)\
    1064       UINT128                                     \
    1065       fn_name (UINT128 bid_##arg_name1,      \
    1066              type2 bid_##arg_name2 _RND_MODE_PARAM _EXC_FLAGS_PARAM  \
    1067             _EXC_MASKS_PARAM _EXC_INFO_PARAM) {  \
    1068       PROLOG_VAL(arg_name1)                      \
    1069       PROLOG_TYPE_VAL(type2, arg_name2)          \
    1070       OTHER_PROLOG_VAL()
    1071  
    1072  #define       TYPE0_FUNCTION_ARGTYPE1_ARGTYPE2(type0, fn_name, type1, arg_name1, type2, arg_name2)\
    1073       type0                                     \
    1074       fn_name (type1 bid_##arg_name1,      \
    1075              type2 bid_##arg_name2 _RND_MODE_PARAM _EXC_FLAGS_PARAM  \
    1076             _EXC_MASKS_PARAM _EXC_INFO_PARAM) {  \
    1077       PROLOG_TYPE_VAL(type1, arg_name1)                      \
    1078       PROLOG_TYPE_VAL(type2, arg_name2)          \
    1079       OTHER_PROLOG_VAL()
    1080  
    1081  #define       BID128_FUNCTION_ARGTYPE1_ARG128(fn_name, type1, arg_name1, arg_name2)\
    1082       UINT128                                     \
    1083       fn_name (type1 bid_##arg_name1,      \
    1084              UINT128 bid_##arg_name2 _RND_MODE_PARAM _EXC_FLAGS_PARAM  \
    1085             _EXC_MASKS_PARAM _EXC_INFO_PARAM) {  \
    1086       PROLOG_TYPE_VAL(type1, arg_name1)          \
    1087       PROLOG_VAL(arg_name2)                      \
    1088       OTHER_PROLOG_VAL()
    1089  
    1090  #define       TYPE0_FUNCTION_ARG128_ARGTYPE2(type0, fn_name, arg_name1, type2, arg_name2)\
    1091       type0                                     \
    1092       fn_name (UINT128 bid_##arg_name1,      \
    1093              type2 bid_##arg_name2 _RND_MODE_PARAM _EXC_FLAGS_PARAM  \
    1094             _EXC_MASKS_PARAM _EXC_INFO_PARAM) {  \
    1095       PROLOG_VAL(arg_name1)                      \
    1096       PROLOG_TYPE_VAL(type2, arg_name2)          \
    1097       OTHER_PROLOG_VAL()
    1098  
    1099  #define       TYPE0_FUNCTION_ARGTYPE1_ARG128(type0, fn_name, type1, arg_name1, arg_name2)\
    1100       type0                                     \
    1101       fn_name (type1 bid_##arg_name1,      \
    1102              UINT128 bid_##arg_name2 _RND_MODE_PARAM _EXC_FLAGS_PARAM  \
    1103             _EXC_MASKS_PARAM _EXC_INFO_PARAM) {  \
    1104       PROLOG_TYPE_VAL(type1, arg_name1)                      \
    1105       PROLOG_VAL(arg_name2)          \
    1106       OTHER_PROLOG_VAL()
    1107  
    1108  #define       TYPE0_FUNCTION_ARG128_ARG128(type0, fn_name, arg_name1, arg_name2)\
    1109       type0                                     \
    1110       fn_name (UINT128 bid_##arg_name1,      \
    1111              UINT128 bid_##arg_name2 _RND_MODE_PARAM _EXC_FLAGS_PARAM  \
    1112             _EXC_MASKS_PARAM _EXC_INFO_PARAM) {  \
    1113       PROLOG_VAL(arg_name1)                      \
    1114       PROLOG_VAL(arg_name2)                      \
    1115       OTHER_PROLOG_VAL()
    1116  
    1117  #define       TYPE0_FUNCTION_ARG1(type0, fn_name, arg_name)\
    1118       type0                                     \
    1119       fn_name (UINT128 bid_##arg_name _RND_MODE_PARAM _EXC_FLAGS_PARAM  \
    1120             _EXC_MASKS_PARAM _EXC_INFO_PARAM) { \
    1121       PROLOG_VAL(arg_name)                      \
    1122       OTHER_PROLOG_VAL()
    1123  
    1124  #define       BID128_FUNCTION_ARGTYPE1(fn_name, type1, arg_name)\
    1125       UINT128                                     \
    1126       fn_name (type1 bid_##arg_name _RND_MODE_PARAM _EXC_FLAGS_PARAM  \
    1127             _EXC_MASKS_PARAM _EXC_INFO_PARAM) { \
    1128       PROLOG_TYPE_VAL(type1, arg_name)                      \
    1129       OTHER_PROLOG_VAL()
    1130  
    1131  #define       TYPE0_FUNCTION_ARGTYPE1(type0, fn_name, type1, arg_name)\
    1132       type0                                     \
    1133       fn_name (type1 bid_##arg_name _RND_MODE_PARAM _EXC_FLAGS_PARAM  \
    1134             _EXC_MASKS_PARAM _EXC_INFO_PARAM) { \
    1135       PROLOG_TYPE_VAL(type1, arg_name)                      \
    1136       OTHER_PROLOG_VAL()
    1137  
    1138  #define       TYPE0_FUNCTION_ARGTYPE1_NORND(type0, fn_name, type1, arg_name)\
    1139       type0                                     \
    1140       fn_name (type1 bid_##arg_name _EXC_FLAGS_PARAM  \
    1141             _EXC_MASKS_PARAM _EXC_INFO_PARAM) { \
    1142       PROLOG_TYPE_VAL(type1, arg_name)                      \
    1143       OTHER_PROLOG_VAL()
    1144  
    1145  #endif
    1146  
    1147  
    1148  
    1149  #define   BID_TO_SMALL_UINT_CVT_FUNCTION(type0, fn_name, type1, arg_name, cvt_fn_name, type2, size_mask, invalid_res)\
    1150      TYPE0_FUNCTION_ARGTYPE1_NORND(type0, fn_name, type1, arg_name)\
    1151  	type2 res;                                                    \
    1152  	_IDEC_flags saved_fpsc=*pfpsf;                                \
    1153      BIDECIMAL_CALL1_NORND(cvt_fn_name, res, arg_name);            \
    1154  	if(res & size_mask) {                                         \
    1155        *pfpsf = saved_fpsc | INVALID_EXCEPTION;                    \
    1156  	  res = invalid_res; }                                        \
    1157      BID_RETURN_VAL((type0)res);                                   \
    1158  		   }
    1159  
    1160  #define   BID_TO_SMALL_INT_CVT_FUNCTION(type0, fn_name, type1, arg_name, cvt_fn_name, type2, size_mask, invalid_res)\
    1161      TYPE0_FUNCTION_ARGTYPE1_NORND(type0, fn_name, type1, arg_name)\
    1162  	type2 res, sgn_mask;                                          \
    1163  	_IDEC_flags saved_fpsc=*pfpsf;                                \
    1164      BIDECIMAL_CALL1_NORND(cvt_fn_name, res, arg_name);            \
    1165  	sgn_mask = res & size_mask;                                   \
    1166  	if(sgn_mask && (sgn_mask != (type2)size_mask)) {                     \
    1167        *pfpsf = saved_fpsc | INVALID_EXCEPTION;                    \
    1168  	  res = invalid_res; }                                        \
    1169      BID_RETURN_VAL((type0)res);                                   \
    1170  		   }
    1171  #endif