⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 libgcc.texi

📁 理解和实践操作系统的一本好书
💻 TEXI
📖 第 1 页 / 共 5 页
字号:
@deftypefn {Runtime Function} long __dpd_fixsddi (_Decimal32 @var{a})@deftypefnx {Runtime Function} long __bid_fixsddi (_Decimal32 @var{a})@deftypefnx {Runtime Function} long __dpd_fixdddi (_Decimal64 @var{a})@deftypefnx {Runtime Function} long __bid_fixdddi (_Decimal64 @var{a})@deftypefnx {Runtime Function} long __dpd_fixtddi (_Decimal128 @var{a})@deftypefnx {Runtime Function} long __bid_fixtddi (_Decimal128 @var{a})These functions convert @var{a} to a signed long.@end deftypefn@deftypefn {Runtime Function} {unsigned int} __dpd_fixunssdsi (_Decimal32 @var{a})@deftypefnx {Runtime Function} {unsigned int} __bid_fixunssdsi (_Decimal32 @var{a})@deftypefnx {Runtime Function} {unsigned int} __dpd_fixunsddsi (_Decimal64 @var{a})@deftypefnx {Runtime Function} {unsigned int} __bid_fixunsddsi (_Decimal64 @var{a})@deftypefnx {Runtime Function} {unsigned int} __dpd_fixunstdsi (_Decimal128 @var{a})@deftypefnx {Runtime Function} {unsigned int} __bid_fixunstdsi (_Decimal128 @var{a})These functions convert @var{a} to an unsigned integer.  Negative values all become zero.@end deftypefn@deftypefn {Runtime Function} {unsigned long} __dpd_fixunssddi (_Decimal32 @var{a})@deftypefnx {Runtime Function} {unsigned long} __bid_fixunssddi (_Decimal32 @var{a})@deftypefnx {Runtime Function} {unsigned long} __dpd_fixunsdddi (_Decimal64 @var{a})@deftypefnx {Runtime Function} {unsigned long} __bid_fixunsdddi (_Decimal64 @var{a})@deftypefnx {Runtime Function} {unsigned long} __dpd_fixunstddi (_Decimal128 @var{a})@deftypefnx {Runtime Function} {unsigned long} __bid_fixunstddi (_Decimal128 @var{a})These functions convert @var{a} to an unsigned long.  Negative valuesall become zero.@end deftypefn@deftypefn {Runtime Function} _Decimal32 __dpd_floatsisd (int @var{i})@deftypefnx {Runtime Function} _Decimal32 __bid_floatsisd (int @var{i})@deftypefnx {Runtime Function} _Decimal64 __dpd_floatsidd (int @var{i})@deftypefnx {Runtime Function} _Decimal64 __bid_floatsidd (int @var{i})@deftypefnx {Runtime Function} _Decimal128 __dpd_floatsitd (int @var{i})@deftypefnx {Runtime Function} _Decimal128 __bid_floatsitd (int @var{i})These functions convert @var{i}, a signed integer, to decimal floating point.@end deftypefn@deftypefn {Runtime Function} _Decimal32 __dpd_floatdisd (long @var{i})@deftypefnx {Runtime Function} _Decimal32 __bid_floatdisd (long @var{i})@deftypefnx {Runtime Function} _Decimal64 __dpd_floatdidd (long @var{i})@deftypefnx {Runtime Function} _Decimal64 __bid_floatdidd (long @var{i})@deftypefnx {Runtime Function} _Decimal128 __dpd_floatditd (long @var{i})@deftypefnx {Runtime Function} _Decimal128 __bid_floatditd (long @var{i})These functions convert @var{i}, a signed long, to decimal floating point.@end deftypefn@deftypefn {Runtime Function} _Decimal32 __dpd_floatunssisd (unsigned int @var{i})@deftypefnx {Runtime Function} _Decimal32 __bid_floatunssisd (unsigned int @var{i})@deftypefnx {Runtime Function} _Decimal64 __dpd_floatunssidd (unsigned int @var{i})@deftypefnx {Runtime Function} _Decimal64 __bid_floatunssidd (unsigned int @var{i})@deftypefnx {Runtime Function} _Decimal128 __dpd_floatunssitd (unsigned int @var{i})@deftypefnx {Runtime Function} _Decimal128 __bid_floatunssitd (unsigned int @var{i})These functions convert @var{i}, an unsigned integer, to decimal floating point.@end deftypefn@deftypefn {Runtime Function} _Decimal32 __dpd_floatunsdisd (unsigned long @var{i})@deftypefnx {Runtime Function} _Decimal32 __bid_floatunsdisd (unsigned long @var{i})@deftypefnx {Runtime Function} _Decimal64 __dpd_floatunsdidd (unsigned long @var{i})@deftypefnx {Runtime Function} _Decimal64 __bid_floatunsdidd (unsigned long @var{i})@deftypefnx {Runtime Function} _Decimal128 __dpd_floatunsditd (unsigned long @var{i})@deftypefnx {Runtime Function} _Decimal128 __bid_floatunsditd (unsigned long @var{i})These functions convert @var{i}, an unsigned long, to decimal floating point.@end deftypefn@subsection Comparison functions@deftypefn {Runtime Function} int __dpd_unordsd2 (_Decimal32 @var{a}, _Decimal32 @var{b})@deftypefnx {Runtime Function} int __bid_unordsd2 (_Decimal32 @var{a}, _Decimal32 @var{b})@deftypefnx {Runtime Function} int __dpd_unorddd2 (_Decimal64 @var{a}, _Decimal64 @var{b})@deftypefnx {Runtime Function} int __bid_unorddd2 (_Decimal64 @var{a}, _Decimal64 @var{b})@deftypefnx {Runtime Function} int __dpd_unordtd2 (_Decimal128 @var{a}, _Decimal128 @var{b})@deftypefnx {Runtime Function} int __bid_unordtd2 (_Decimal128 @var{a}, _Decimal128 @var{b})These functions return a nonzero value if either argument is NaN, otherwise 0.@end deftypefnThere is also a complete group of higher level functions whichcorrespond directly to comparison operators.  They implement the ISO Csemantics for floating-point comparisons, taking NaN into account.Pay careful attention to the return values defined for each set.Under the hood, all of these routines are implemented as@smallexample  if (__bid_unord@var{X}d2 (a, b))    return @var{E};  return __bid_cmp@var{X}d2 (a, b);@end smallexample@noindentwhere @var{E} is a constant chosen to give the proper behavior forNaN@.  Thus, the meaning of the return value is different for each set.Do not rely on this implementation; only the semantics documentedbelow are guaranteed.@deftypefn {Runtime Function} int __dpd_eqsd2 (_Decimal32 @var{a}, _Decimal32 @var{b})@deftypefnx {Runtime Function} int __bid_eqsd2 (_Decimal32 @var{a}, _Decimal32 @var{b})@deftypefnx {Runtime Function} int __dpd_eqdd2 (_Decimal64 @var{a}, _Decimal64 @var{b})@deftypefnx {Runtime Function} int __bid_eqdd2 (_Decimal64 @var{a}, _Decimal64 @var{b})@deftypefnx {Runtime Function} int __dpd_eqtd2 (_Decimal128 @var{a}, _Decimal128 @var{b})@deftypefnx {Runtime Function} int __bid_eqtd2 (_Decimal128 @var{a}, _Decimal128 @var{b})These functions return zero if neither argument is NaN, and @var{a} and@var{b} are equal.@end deftypefn@deftypefn {Runtime Function} int __dpd_nesd2 (_Decimal32 @var{a}, _Decimal32 @var{b})@deftypefnx {Runtime Function} int __bid_nesd2 (_Decimal32 @var{a}, _Decimal32 @var{b})@deftypefnx {Runtime Function} int __dpd_nedd2 (_Decimal64 @var{a}, _Decimal64 @var{b})@deftypefnx {Runtime Function} int __bid_nedd2 (_Decimal64 @var{a}, _Decimal64 @var{b})@deftypefnx {Runtime Function} int __dpd_netd2 (_Decimal128 @var{a}, _Decimal128 @var{b})@deftypefnx {Runtime Function} int __bid_netd2 (_Decimal128 @var{a}, _Decimal128 @var{b})These functions return a nonzero value if either argument is NaN, orif @var{a} and @var{b} are unequal.@end deftypefn@deftypefn {Runtime Function} int __dpd_gesd2 (_Decimal32 @var{a}, _Decimal32 @var{b})@deftypefnx {Runtime Function} int __bid_gesd2 (_Decimal32 @var{a}, _Decimal32 @var{b})@deftypefnx {Runtime Function} int __dpd_gedd2 (_Decimal64 @var{a}, _Decimal64 @var{b})@deftypefnx {Runtime Function} int __bid_gedd2 (_Decimal64 @var{a}, _Decimal64 @var{b})@deftypefnx {Runtime Function} int __dpd_getd2 (_Decimal128 @var{a}, _Decimal128 @var{b})@deftypefnx {Runtime Function} int __bid_getd2 (_Decimal128 @var{a}, _Decimal128 @var{b})These functions return a value greater than or equal to zero ifneither argument is NaN, and @var{a} is greater than or equal to@var{b}.@end deftypefn@deftypefn {Runtime Function} int __dpd_ltsd2 (_Decimal32 @var{a}, _Decimal32 @var{b})@deftypefnx {Runtime Function} int __bid_ltsd2 (_Decimal32 @var{a}, _Decimal32 @var{b})@deftypefnx {Runtime Function} int __dpd_ltdd2 (_Decimal64 @var{a}, _Decimal64 @var{b})@deftypefnx {Runtime Function} int __bid_ltdd2 (_Decimal64 @var{a}, _Decimal64 @var{b})@deftypefnx {Runtime Function} int __dpd_lttd2 (_Decimal128 @var{a}, _Decimal128 @var{b})@deftypefnx {Runtime Function} int __bid_lttd2 (_Decimal128 @var{a}, _Decimal128 @var{b})These functions return a value less than zero if neither argument isNaN, and @var{a} is strictly less than @var{b}.@end deftypefn@deftypefn {Runtime Function} int __dpd_lesd2 (_Decimal32 @var{a}, _Decimal32 @var{b})@deftypefnx {Runtime Function} int __bid_lesd2 (_Decimal32 @var{a}, _Decimal32 @var{b})@deftypefnx {Runtime Function} int __dpd_ledd2 (_Decimal64 @var{a}, _Decimal64 @var{b})@deftypefnx {Runtime Function} int __bid_ledd2 (_Decimal64 @var{a}, _Decimal64 @var{b})@deftypefnx {Runtime Function} int __dpd_letd2 (_Decimal128 @var{a}, _Decimal128 @var{b})@deftypefnx {Runtime Function} int __bid_letd2 (_Decimal128 @var{a}, _Decimal128 @var{b})These functions return a value less than or equal to zero if neitherargument is NaN, and @var{a} is less than or equal to @var{b}.@end deftypefn@deftypefn {Runtime Function} int __dpd_gtsd2 (_Decimal32 @var{a}, _Decimal32 @var{b})@deftypefnx {Runtime Function} int __bid_gtsd2 (_Decimal32 @var{a}, _Decimal32 @var{b})@deftypefnx {Runtime Function} int __dpd_gtdd2 (_Decimal64 @var{a}, _Decimal64 @var{b})@deftypefnx {Runtime Function} int __bid_gtdd2 (_Decimal64 @var{a}, _Decimal64 @var{b})@deftypefnx {Runtime Function} int __dpd_gttd2 (_Decimal128 @var{a}, _Decimal128 @var{b})@deftypefnx {Runtime Function} int __bid_gttd2 (_Decimal128 @var{a}, _Decimal128 @var{b})These functions return a value greater than zero if neither argumentis NaN, and @var{a} is strictly greater than @var{b}.@end deftypefn@node Fixed-point fractional library routines@section Routines for fixed-point fractional emulation@cindex fixed-point fractional library@cindex fractional types@cindex Embedded CThe software fixed-point library implements fixed-point fractionalarithmetic, and is only activated on selected targets.For ease of comprehension @code{fract} is an alias for the@code{_Fract} type, @code{accum} an alias for @code{_Accum}, and@code{sat} an alias for @code{_Sat}.For illustrative purposes, in this section the fixed-point fractional type@code{@w{short fract}} is assumed to correspond to machine mode @code{QQmode};@code{@w{unsigned short fract}} to @code{UQQmode};@code{fract} to @code{HQmode};@code{@w{unsigned fract}} to @code{UHQmode};@code{@w{long fract}} to @code{SQmode};@code{@w{unsigned long fract}} to @code{USQmode};@code{@w{long long fract}} to @code{DQmode};and @code{@w{unsigned long long fract}} to @code{UDQmode}.Similarly the fixed-point accumulator type@code{@w{short accum}} corresponds to @code{HAmode};@code{@w{unsigned short accum}} to @code{UHAmode};@code{accum} to @code{SAmode};@code{@w{unsigned accum}} to @code{USAmode};@code{@w{long accum}} to @code{DAmode};@code{@w{unsigned long accum}} to @code{UDAmode};@code{@w{long long accum}} to @code{TAmode};and @code{@w{unsigned long long accum}} to @code{UTAmode}.@subsection Arithmetic functions@deftypefn {Runtime Function} {short fract} __addqq3 (short fract @var{a}, short fract @var{b})@deftypefnx {Runtime Function} {fract} __addhq3 (fract @var{a}, fract @var{b})@deftypefnx {Runtime Function} {long fract} __addsq3 (long fract @var{a}, long fract @var{b})@deftypefnx {Runtime Function} {long long fract} __adddq3 (long long fract @var{a}, long long fract @var{b})@deftypefnx {Runtime Function} {unsigned short fract} __adduqq3 (unsigned short fract @var{a}, unsigned short fract @var{b})@deftypefnx {Runtime Function} {unsigned fract} __adduhq3 (unsigned fract @var{a}, unsigned fract @var{b})@deftypefnx {Runtime Function} {unsigned long fract} __addusq3 (unsigned long fract @var{a}, unsigned long fract @var{b})@deftypefnx {Runtime Function} {unsigned long long fract} __addudq3 (unsigned long long fract @var{a}, unsigned long long fract @var{b})@deftypefnx {Runtime Function} {short accum} __addha3 (short accum @var{a}, short accum @var{b})@deftypefnx {Runtime Function} {accum} __addsa3 (accum @var{a}, accum @var{b})@deftypefnx {Runtime Function} {long accum} __addda3 (long accum @var{a}, long accum @var{b})@deftypefnx {Runtime Function} {long long accum} __addta3 (long long accum @var{a}, long long accum @var{b})@deftypefnx {Runtime Function} {unsigned short accum} __adduha3 (unsigned short accum @var{a}, unsigned short accum @var{b})@deftypefnx {Runtime Function} {unsigned accum} __addusa3 (unsigned accum @var{a}, unsigned accum @var{b})@deftypefnx {Runtime Function} {unsigned long accum} __adduda3 (unsigned long accum @var{a}, unsigned long accum @var{b})@deftypefnx {Runtime Function} {unsigned long long accum} __adduta3 (unsigned long long accum @var{a}, unsigned long long accum @var{b})These functions return the sum of @var{a} and @var{b}.@end deftypefn@deftypefn {Runtime Function} {short fract} __ssaddqq3 (short fract @var{a}, short fract @var{b})@deftypefnx {Runtime Function} {fract} __ssaddhq3 (fract @var{a}, fract @var{b})@deftypefnx {Runtime Function} {long fract} __ssaddsq3 (long fract @var{a}, long fract @var{b})@deftypefnx {Runtime Function} {long long fract} __ssadddq3 (long long fract @var{a}, long long fract @var{b})@deftypefnx {Runtime Function} {short accum} __ssaddha3 (short accum @var{a}, short accum @var{b})@deftypefnx {Runtime Function} {accum} __ssaddsa3 (accum @var{a}, accum @var{b})@deftypefnx {Runtime Function} {long accum} __ssaddda3 (long accum @var{a}, long accum @var{b})@deftypefnx {Runtime Function} {long long accum} __ssaddta3 (long long accum @var{a}, long long accum @var{b})

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -