diff options
author | jsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-11-22 00:38:30 +0000 |
---|---|---|
committer | jsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-11-22 00:38:30 +0000 |
commit | 4f5bcdbdf334ba80e3f4890bb752e457601f3e9e (patch) | |
tree | cf1224f63a9636c4333be5cb2d3cabfe2eec233d /gcc/libgcc2.h | |
parent | 624e1eec9297f70ad0a205f71092eaa6863dc87b (diff) | |
download | gcc-4f5bcdbdf334ba80e3f4890bb752e457601f3e9e.tar.gz |
* config/fp-bit.c (clzusi): New function.
(si_to_float, usi_to_float): Use it to compute proper shift.
(usi_to_float): Preserve guard bits when shifting right.
* libgcc-std.ver (GCC_4.2.0): New version.
* libgcc2.c (__floatundixf, __floatunditf, __floatundidf,
__floatundisf): New functions.
* libgcc2.h (__floatundixf, __floatunditf, __floatundidf,
__floatundisf): Declare.
* mklibgcc.in (lib2funcs): Add _floatundidf, _floatundisf,
_floatundixf, and _floatunditf.
* optabs.c (expand_float): If target does not define a pattern for
signed or unsigned conversion, use an unsigned libcall instead of
a signed one.
(init_optabs): Initialize ufloat_optab.
testsuite:
* gcc.c-torture/execute/floatunsisf-1.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@107345 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/libgcc2.h')
-rw-r--r-- | gcc/libgcc2.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/gcc/libgcc2.h b/gcc/libgcc2.h index 56ffc61f4be..11a1d9a3ff8 100644 --- a/gcc/libgcc2.h +++ b/gcc/libgcc2.h @@ -238,6 +238,10 @@ typedef int word_type __attribute__ ((mode (__word__))); #define __floatditf __NDW(float,tf) #define __floatdidf __NDW(float,df) #define __floatdisf __NDW(float,sf) +#define __floatundixf __NDW(floatun,xf) +#define __floatunditf __NDW(floatun,tf) +#define __floatundidf __NDW(floatun,df) +#define __floatundisf __NDW(floatun,sf) #define __fixunsxfSI __NW(fixunsxf,) #define __fixunstfSI __NW(fixunstf,) #define __fixunsdfSI __NW(fixunsdf,) @@ -318,6 +322,7 @@ extern SItype __negvsi2 (SItype); #if LIBGCC2_HAS_SF_MODE extern DWtype __fixsfdi (SFtype); extern SFtype __floatdisf (DWtype); +extern SFtype __floatundisf (UDWtype); extern UWtype __fixunssfSI (SFtype); extern DWtype __fixunssfDI (SFtype); extern SFtype __powisf2 (SFtype, int); @@ -327,6 +332,7 @@ extern SCtype __mulsc3 (SFtype, SFtype, SFtype, SFtype); #if LIBGCC2_HAS_DF_MODE extern DWtype __fixdfdi (DFtype); extern DFtype __floatdidf (DWtype); +extern DFtype __floatundidf (UDWtype); extern UWtype __fixunsdfSI (DFtype); extern DWtype __fixunsdfDI (DFtype); extern DFtype __powidf2 (DFtype, int); @@ -338,6 +344,7 @@ extern DCtype __muldc3 (DFtype, DFtype, DFtype, DFtype); extern DWtype __fixxfdi (XFtype); extern DWtype __fixunsxfDI (XFtype); extern XFtype __floatdixf (DWtype); +extern XFtype __floatundixf (UDWtype); extern UWtype __fixunsxfSI (XFtype); extern XFtype __powixf2 (XFtype, int); extern XCtype __divxc3 (XFtype, XFtype, XFtype, XFtype); @@ -348,6 +355,7 @@ extern XCtype __mulxc3 (XFtype, XFtype, XFtype, XFtype); extern DWtype __fixunstfDI (TFtype); extern DWtype __fixtfdi (TFtype); extern TFtype __floatditf (DWtype); +extern TFtype __floatunditf (UDWtype); extern TFtype __powitf2 (TFtype, int); extern TCtype __divtc3 (TFtype, TFtype, TFtype, TFtype); extern TCtype __multc3 (TFtype, TFtype, TFtype, TFtype); |