diff options
author | Will Cohen <wcohen@redhat.com> | 2001-02-21 05:05:25 +0000 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 2001-02-20 22:05:25 -0700 |
commit | 75beacf8857ecce10fcfdaf4e00dbe21cb56e224 (patch) | |
tree | 14cce2eb5e6754f2aa1439ec07c12abe2e8eb43a /gcc | |
parent | 33011c358ecb53978ad9d93f1d1dc5e9cd1ad551 (diff) | |
download | gcc-75beacf8857ecce10fcfdaf4e00dbe21cb56e224.zip gcc-75beacf8857ecce10fcfdaf4e00dbe21cb56e224.tar.gz gcc-75beacf8857ecce10fcfdaf4e00dbe21cb56e224.tar.bz2 |
quadlib.c (_U_Qfcnvfxt_quad_to_usgl): New function.
* config/pa/quadlib.c (_U_Qfcnvfxt_quad_to_usgl): New function.
* config/pa/long_double.h (FIXUNS_TRUNCTFSI2_LIBCALL): Added.
(INIT_TARGET_OPTABS): Use FIXUNS_TRUNCTFSI2_LIBCALL for
fixunstfsi_libfunc.
From-SVN: r39937
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/config/pa/long_double.h | 3 | ||||
-rw-r--r-- | gcc/config/pa/quadlib.c | 9 |
3 files changed, 18 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e70bd83..af11506 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2001-02-20 Will Cohen <wcohen@redhat.com> + + * config/pa/quadlib.c (_U_Qfcnvfxt_quad_to_usgl): New function. + * config/pa/long_double.h (FIXUNS_TRUNCTFSI2_LIBCALL): Added. + (INIT_TARGET_OPTABS): Use FIXUNS_TRUNCTFSI2_LIBCALL for + fixunstfsi_libfunc. + 2001-02-20 Stan Shebs <shebs@apple.com> * config/rs6000/rs6000.c (output_cbranch): Output branches diff --git a/gcc/config/pa/long_double.h b/gcc/config/pa/long_double.h index 92d0376..e65f15f 100644 --- a/gcc/config/pa/long_double.h +++ b/gcc/config/pa/long_double.h @@ -52,6 +52,7 @@ do { long value[4]; \ we can massage its return value for PA64. */ #define FIX_TRUNCTFSI2_LIBCALL \ (TARGET_64BIT ? "__U_Qfcnvfxt_quad_to_sgl" : "_U_Qfcnvfxt_quad_to_sgl") +#define FIXUNS_TRUNCTFSI2_LIBCALL "_U_Qfcnvfxt_quad_to_usgl" #define FIX_TRUNCTFDI2_LIBCALL "_U_Qfcnvfxt_quad_to_dbl" #define EQTF2_LIBCALL "_U_Qfeq" #define NETF2_LIBCALL "_U_Qfne" @@ -89,7 +90,7 @@ do { long value[4]; \ floatditf_libfunc = gen_rtx_SYMBOL_REF (Pmode, FLOATDITF2_LIBCALL); \ fixtfsi_libfunc = gen_rtx_SYMBOL_REF (Pmode, FIX_TRUNCTFSI2_LIBCALL);\ fixtfdi_libfunc = gen_rtx_SYMBOL_REF (Pmode, FIX_TRUNCTFDI2_LIBCALL);\ - fixunstfsi_libfunc = gen_rtx_SYMBOL_REF (Pmode, FIX_TRUNCTFSI2_LIBCALL); \ + fixunstfsi_libfunc = gen_rtx_SYMBOL_REF (Pmode, FIXUNS_TRUNCTFSI2_LIBCALL);\ fixunstfdi_libfunc = gen_rtx_SYMBOL_REF (Pmode, FIX_TRUNCTFDI2_LIBCALL); \ eqtf2_libfunc = gen_rtx_SYMBOL_REF (Pmode, EQTF2_LIBCALL); \ netf2_libfunc = gen_rtx_SYMBOL_REF (Pmode, NETF2_LIBCALL); \ diff --git a/gcc/config/pa/quadlib.c b/gcc/config/pa/quadlib.c index 598e0c2..cdf3ea9 100644 --- a/gcc/config/pa/quadlib.c +++ b/gcc/config/pa/quadlib.c @@ -92,3 +92,12 @@ __U_Qfcnvfxt_quad_to_sgl (long double a) return _U_Qfcnvfxt_quad_to_sgl (a) >> 32; } #endif + +/* HP only has signed conversion in library, so need to synthesize an + unsigned version */ +unsigned int +_U_Qfcnvfxt_quad_to_usgl(long double a) +{ + extern long long _U_Qfcnvfxt_quad_to_dbl (long double a); + return (unsigned int) _U_Qfcnvfxt_quad_to_dbl (a); +} |