Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | RSS feed

  1. /* Copyright (C) 2007-2015 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
  1172.