0011-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384
  1. From 77f1c90d67a2f8852184fb8fd95cb0ed63065dc7 Mon Sep 17 00:00:00 2001
  2. From: Khem Raj <raj.khem@gmail.com>
  3. Date: Wed, 18 Mar 2015 00:16:38 +0000
  4. Subject: [PATCH] __ieee754_sqrt{,f} are now inline functions and call out
  5. __slow versions
  6. Upstream-Status: Pending
  7. Signed-off-by: Khem Raj <raj.khem@gmail.com>
  8. ---
  9. sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c | 12 ++++++++++--
  10. sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c | 8 +++++++-
  11. sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c | 14 +++++++++++---
  12. sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c | 12 ++++++++++--
  13. sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c | 14 +++++++++++---
  14. sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c | 12 ++++++++++--
  15. sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c | 8 ++++++++
  16. sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c | 8 ++++++++
  17. sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c | 12 ++++++++++--
  18. sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c | 9 ++++++++-
  19. sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c | 14 +++++++++++---
  20. sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c | 12 ++++++++++--
  21. 12 files changed, 114 insertions(+), 21 deletions(-)
  22. diff --git a/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c
  23. index 1795fd6c3e..daa83f3fe8 100644
  24. --- a/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c
  25. +++ b/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c
  26. @@ -40,7 +40,7 @@ static const float half = 0.5;
  27. simultaneously. */
  28. double
  29. -__ieee754_sqrt (double b)
  30. +__slow_ieee754_sqrt (double b)
  31. {
  32. if (__builtin_expect (b > 0, 1))
  33. {
  34. @@ -77,7 +77,7 @@ __ieee754_sqrt (double b)
  35. /* Handle small numbers by scaling. */
  36. if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0))
  37. - return __ieee754_sqrt (b * two108) * twom54;
  38. + return __slow_ieee754_sqrt (b * two108) * twom54;
  39. #define FMADD(a_, c_, b_) \
  40. ({ double __r; \
  41. @@ -126,4 +126,12 @@ __ieee754_sqrt (double b)
  42. }
  43. return f_wash (b);
  44. }
  45. +
  46. +#undef __ieee754_sqrt
  47. +double
  48. +__ieee754_sqrt (double x)
  49. +{
  50. + return __slow_ieee754_sqrt (x);
  51. +}
  52. +
  53. strong_alias (__ieee754_sqrt, __sqrt_finite)
  54. diff --git a/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c
  55. index a917f313ab..b812cf1705 100644
  56. --- a/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c
  57. +++ b/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c
  58. @@ -38,7 +38,7 @@ static const float threehalf = 1.5;
  59. square root. */
  60. float
  61. -__ieee754_sqrtf (float b)
  62. +__slow_ieee754_sqrtf (float b)
  63. {
  64. if (__builtin_expect (b > 0, 1))
  65. {
  66. @@ -93,4 +93,10 @@ __ieee754_sqrtf (float b)
  67. }
  68. return f_washf (b);
  69. }
  70. +#undef __ieee754_sqrtf
  71. +float
  72. +__ieee754_sqrtf (float x)
  73. +{
  74. + return __slow_ieee754_sqrtf (x);
  75. +}
  76. strong_alias (__ieee754_sqrtf, __sqrtf_finite)
  77. diff --git a/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c
  78. index fc4a74990e..7038a70b47 100644
  79. --- a/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c
  80. +++ b/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c
  81. @@ -41,10 +41,10 @@ static const float half = 0.5;
  82. #ifdef __STDC__
  83. double
  84. -__ieee754_sqrt (double b)
  85. +__slow_ieee754_sqrt (double b)
  86. #else
  87. double
  88. -__ieee754_sqrt (b)
  89. +__slow_ieee754_sqrt (b)
  90. double b;
  91. #endif
  92. {
  93. @@ -83,7 +83,7 @@ __ieee754_sqrt (b)
  94. /* Handle small numbers by scaling. */
  95. if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0))
  96. - return __ieee754_sqrt (b * two108) * twom54;
  97. + return __slow_ieee754_sqrt (b * two108) * twom54;
  98. #define FMADD(a_, c_, b_) \
  99. ({ double __r; \
  100. @@ -132,4 +132,12 @@ __ieee754_sqrt (b)
  101. }
  102. return f_wash (b);
  103. }
  104. +
  105. +#undef __ieee754_sqrt
  106. +double
  107. +__ieee754_sqrt (double x)
  108. +{
  109. + return __slow_ieee754_sqrt (x);
  110. +}
  111. +
  112. strong_alias (__ieee754_sqrt, __sqrt_finite)
  113. diff --git a/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c
  114. index 9d175122a8..10de1f0cc3 100644
  115. --- a/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c
  116. +++ b/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c
  117. @@ -39,10 +39,10 @@ static const float threehalf = 1.5;
  118. #ifdef __STDC__
  119. float
  120. -__ieee754_sqrtf (float b)
  121. +__slow_ieee754_sqrtf (float b)
  122. #else
  123. float
  124. -__ieee754_sqrtf (b)
  125. +__slow_ieee754_sqrtf (b)
  126. float b;
  127. #endif
  128. {
  129. @@ -99,4 +99,12 @@ __ieee754_sqrtf (b)
  130. }
  131. return f_washf (b);
  132. }
  133. +
  134. +#undef __ieee754_sqrtf
  135. +float
  136. +__ieee754_sqrtf (float x)
  137. +{
  138. + return __slow_ieee754_sqrtf (x);
  139. +}
  140. +
  141. strong_alias (__ieee754_sqrtf, __sqrtf_finite)
  142. diff --git a/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c
  143. index fc4a74990e..7038a70b47 100644
  144. --- a/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c
  145. +++ b/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c
  146. @@ -41,10 +41,10 @@ static const float half = 0.5;
  147. #ifdef __STDC__
  148. double
  149. -__ieee754_sqrt (double b)
  150. +__slow_ieee754_sqrt (double b)
  151. #else
  152. double
  153. -__ieee754_sqrt (b)
  154. +__slow_ieee754_sqrt (b)
  155. double b;
  156. #endif
  157. {
  158. @@ -83,7 +83,7 @@ __ieee754_sqrt (b)
  159. /* Handle small numbers by scaling. */
  160. if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0))
  161. - return __ieee754_sqrt (b * two108) * twom54;
  162. + return __slow_ieee754_sqrt (b * two108) * twom54;
  163. #define FMADD(a_, c_, b_) \
  164. ({ double __r; \
  165. @@ -132,4 +132,12 @@ __ieee754_sqrt (b)
  166. }
  167. return f_wash (b);
  168. }
  169. +
  170. +#undef __ieee754_sqrt
  171. +double
  172. +__ieee754_sqrt (double x)
  173. +{
  174. + return __slow_ieee754_sqrt (x);
  175. +}
  176. +
  177. strong_alias (__ieee754_sqrt, __sqrt_finite)
  178. diff --git a/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c
  179. index 9d175122a8..10de1f0cc3 100644
  180. --- a/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c
  181. +++ b/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c
  182. @@ -39,10 +39,10 @@ static const float threehalf = 1.5;
  183. #ifdef __STDC__
  184. float
  185. -__ieee754_sqrtf (float b)
  186. +__slow_ieee754_sqrtf (float b)
  187. #else
  188. float
  189. -__ieee754_sqrtf (b)
  190. +__slow_ieee754_sqrtf (b)
  191. float b;
  192. #endif
  193. {
  194. @@ -99,4 +99,12 @@ __ieee754_sqrtf (b)
  195. }
  196. return f_washf (b);
  197. }
  198. +
  199. +#undef __ieee754_sqrtf
  200. +float
  201. +__ieee754_sqrtf (float x)
  202. +{
  203. + return __slow_ieee754_sqrtf (x);
  204. +}
  205. +
  206. strong_alias (__ieee754_sqrtf, __sqrtf_finite)
  207. diff --git a/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c
  208. index fc4a74990e..1c34244bd8 100644
  209. --- a/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c
  210. +++ b/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c
  211. @@ -132,4 +132,12 @@ __ieee754_sqrt (b)
  212. }
  213. return f_wash (b);
  214. }
  215. +
  216. +#undef __ieee754_sqrt
  217. +double
  218. +__ieee754_sqrt (double x)
  219. +{
  220. + return __slow_ieee754_sqrt (x);
  221. +}
  222. +
  223. strong_alias (__ieee754_sqrt, __sqrt_finite)
  224. diff --git a/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c
  225. index 9d175122a8..812653558f 100644
  226. --- a/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c
  227. +++ b/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c
  228. @@ -99,4 +99,12 @@ __ieee754_sqrtf (b)
  229. }
  230. return f_washf (b);
  231. }
  232. +
  233. +#undef __ieee754_sqrtf
  234. +float
  235. +__ieee754_sqrtf (float x)
  236. +{
  237. + return __slow_ieee754_sqrtf (x);
  238. +}
  239. +
  240. strong_alias (__ieee754_sqrtf, __sqrtf_finite)
  241. diff --git a/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c
  242. index 1795fd6c3e..13a81973e3 100644
  243. --- a/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c
  244. +++ b/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c
  245. @@ -40,7 +40,7 @@ static const float half = 0.5;
  246. simultaneously. */
  247. double
  248. -__ieee754_sqrt (double b)
  249. +__slow_ieee754_sqrt (double b)
  250. {
  251. if (__builtin_expect (b > 0, 1))
  252. {
  253. @@ -77,7 +77,7 @@ __ieee754_sqrt (double b)
  254. /* Handle small numbers by scaling. */
  255. if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0))
  256. - return __ieee754_sqrt (b * two108) * twom54;
  257. + return __slow_ieee754_sqrt (b * two108) * twom54;
  258. #define FMADD(a_, c_, b_) \
  259. ({ double __r; \
  260. @@ -126,4 +126,12 @@ __ieee754_sqrt (double b)
  261. }
  262. return f_wash (b);
  263. }
  264. +
  265. +#undef __ieee754_sqrt
  266. +double
  267. +__ieee754_sqrt (double x)
  268. +{
  269. + return __slow_ieee754_sqrt (x);
  270. +}
  271. +
  272. strong_alias (__ieee754_sqrt, __sqrt_finite)
  273. diff --git a/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c
  274. index a917f313ab..fae2d81210 100644
  275. --- a/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c
  276. +++ b/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c
  277. @@ -38,7 +38,7 @@ static const float threehalf = 1.5;
  278. square root. */
  279. float
  280. -__ieee754_sqrtf (float b)
  281. +__slow_ieee754_sqrtf (float b)
  282. {
  283. if (__builtin_expect (b > 0, 1))
  284. {
  285. @@ -93,4 +93,11 @@ __ieee754_sqrtf (float b)
  286. }
  287. return f_washf (b);
  288. }
  289. +#undef __ieee754_sqrtf
  290. +float
  291. +__ieee754_sqrtf (float x)
  292. +{
  293. + return __slow_ieee754_sqrtf (x);
  294. +}
  295. +
  296. strong_alias (__ieee754_sqrtf, __sqrtf_finite)
  297. diff --git a/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c
  298. index fc4a74990e..7038a70b47 100644
  299. --- a/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c
  300. +++ b/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c
  301. @@ -41,10 +41,10 @@ static const float half = 0.5;
  302. #ifdef __STDC__
  303. double
  304. -__ieee754_sqrt (double b)
  305. +__slow_ieee754_sqrt (double b)
  306. #else
  307. double
  308. -__ieee754_sqrt (b)
  309. +__slow_ieee754_sqrt (b)
  310. double b;
  311. #endif
  312. {
  313. @@ -83,7 +83,7 @@ __ieee754_sqrt (b)
  314. /* Handle small numbers by scaling. */
  315. if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0))
  316. - return __ieee754_sqrt (b * two108) * twom54;
  317. + return __slow_ieee754_sqrt (b * two108) * twom54;
  318. #define FMADD(a_, c_, b_) \
  319. ({ double __r; \
  320. @@ -132,4 +132,12 @@ __ieee754_sqrt (b)
  321. }
  322. return f_wash (b);
  323. }
  324. +
  325. +#undef __ieee754_sqrt
  326. +double
  327. +__ieee754_sqrt (double x)
  328. +{
  329. + return __slow_ieee754_sqrt (x);
  330. +}
  331. +
  332. strong_alias (__ieee754_sqrt, __sqrt_finite)
  333. diff --git a/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c
  334. index 9d175122a8..10de1f0cc3 100644
  335. --- a/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c
  336. +++ b/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c
  337. @@ -39,10 +39,10 @@ static const float threehalf = 1.5;
  338. #ifdef __STDC__
  339. float
  340. -__ieee754_sqrtf (float b)
  341. +__slow_ieee754_sqrtf (float b)
  342. #else
  343. float
  344. -__ieee754_sqrtf (b)
  345. +__slow_ieee754_sqrtf (b)
  346. float b;
  347. #endif
  348. {
  349. @@ -99,4 +99,12 @@ __ieee754_sqrtf (b)
  350. }
  351. return f_washf (b);
  352. }
  353. +
  354. +#undef __ieee754_sqrtf
  355. +float
  356. +__ieee754_sqrtf (float x)
  357. +{
  358. + return __slow_ieee754_sqrtf (x);
  359. +}
  360. +
  361. strong_alias (__ieee754_sqrtf, __sqrtf_finite)