Mercurial > hg > CbC > CbC_gcc
comparison gcc/config/pa/quadlib.c @ 67:f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
author | nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 22 Mar 2011 17:18:12 +0900 |
parents | a06113de4d67 |
children |
comparison
equal
deleted
inserted
replaced
65:65488c3d617d | 67:f6334be47118 |
---|---|
56 int _U_Qford (long double, long double); | 56 int _U_Qford (long double, long double); |
57 | 57 |
58 int _U_Qfcomp (long double, long double); | 58 int _U_Qfcomp (long double, long double); |
59 | 59 |
60 long double _U_Qfneg (long double); | 60 long double _U_Qfneg (long double); |
61 long double _U_Qfcopysign (long double, long double); | |
61 | 62 |
62 #ifdef __LP64__ | 63 #ifdef __LP64__ |
63 int __U_Qfcnvfxt_quad_to_sgl (long double); | 64 int __U_Qfcnvfxt_quad_to_sgl (long double); |
64 #endif | 65 #endif |
65 unsigned int _U_Qfcnvfxt_quad_to_usgl(long double); | 66 unsigned int _U_Qfcnvfxt_quad_to_usgl(long double); |
158 return 0; | 159 return 0; |
159 | 160 |
160 return (_U_Qfcmp (a, b, QCMP_UNORD | QCMP_EQ | QCMP_GT) != 0 ? 1 : -1); | 161 return (_U_Qfcmp (a, b, QCMP_UNORD | QCMP_EQ | QCMP_GT) != 0 ? 1 : -1); |
161 } | 162 } |
162 | 163 |
163 | |
164 /* Negate long double A. */ | 164 /* Negate long double A. */ |
165 long double | 165 long double |
166 _U_Qfneg (long double a) | 166 _U_Qfneg (long double a) |
167 { | 167 { |
168 union | 168 union |
174 u.ld = a; | 174 u.ld = a; |
175 u.i[0] ^= 0x80000000; | 175 u.i[0] ^= 0x80000000; |
176 return u.ld; | 176 return u.ld; |
177 } | 177 } |
178 | 178 |
179 /* Return long double A with sign changed to sign of long double B. */ | |
180 long double | |
181 _U_Qfcopysign (long double a, long double b) | |
182 { | |
183 union | |
184 { | |
185 long double ld; | |
186 int i[4]; | |
187 } ua, ub; | |
188 | |
189 ua.ld = a; | |
190 ub.ld = b; | |
191 ua.i[0] &= 0x7fffffff; | |
192 ua.i[0] |= (0x80000000 & ub.i[0]); | |
193 return ua.ld; | |
194 } | |
195 | |
179 #ifdef __LP64__ | 196 #ifdef __LP64__ |
180 /* This routine is only necessary for the PA64 port; for reasons unknown | 197 /* This routine is only necessary for the PA64 port; for reasons unknown |
181 _U_Qfcnvfxt_quad_to_sgl returns the integer in the high 32bits of the | 198 _U_Qfcnvfxt_quad_to_sgl returns the integer in the high 32bits of the |
182 return value. Ugh. */ | 199 return value. Ugh. */ |
183 int | 200 int |