pixel.asm
上传用户:lctgjx
上传日期:2022-06-04
资源大小:8887k
文件大小:19k
源码类别:

流媒体/Mpeg4/MP4

开发平台:

Visual C++

  1. /*****************************************************************************
  2.  * pixel.asm: h264 encoder library
  3.  *****************************************************************************
  4.  * Copyright (C) 2005 Phil Jensen <philj@csufresno.edu>
  5.  *
  6.  * This program is free software; you can redistribute it and/or modify
  7.  * it under the terms of the GNU General Public License as published by
  8.  * the Free Software Foundation; either version 2 of the License, or
  9.  * (at your option) any later version.
  10.  *
  11.  * This program is distributed in the hope that it will be useful,
  12.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14.  * GNU General Public License for more details.
  15.  *
  16.  * You should have received a copy of the GNU General Public License
  17.  * along with this program; if not, write to the Free Software
  18.  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02111, USA.
  19.  *****************************************************************************/
  20. ! VIS optimized SAD for UltraSPARC
  21. .text
  22. .global x264_pixel_sad_8x8_vis
  23. x264_pixel_sad_8x8_vis:
  24. save %sp, -120, %sp
  25. fzero %f12
  26. alignaddr %i0, %g0, %l0
  27. ldd [%l0], %f0
  28. ldd [%l0+8], %f2
  29. faligndata %f0, %f2, %f4
  30. alignaddr %i2, %g0, %l2
  31. ldd [%l2], %f6
  32. ldd [%l2+8], %f8
  33. faligndata %f6, %f8, %f10
  34. add %i0, %i1, %i0
  35. add %i2, %i3, %i2
  36. pdist %f4, %f10, %f12
  37. alignaddr %i0, %g0, %l0
  38. ldd [%l0], %f0
  39. ldd [%l0+8], %f2
  40. faligndata %f0, %f2, %f4
  41. alignaddr %i2, %g0, %l2
  42. ldd [%l2], %f6
  43. ldd [%l2+8], %f8
  44. faligndata %f6, %f8, %f10
  45. add %i0, %i1, %i0
  46. add %i2, %i3, %i2
  47. pdist %f4, %f10, %f12
  48. alignaddr %i0, %g0, %l0
  49. ldd [%l0], %f0
  50. ldd [%l0+8], %f2
  51. faligndata %f0, %f2, %f4
  52. alignaddr %i2, %g0, %l2
  53. ldd [%l2], %f6
  54. ldd [%l2+8], %f8
  55. faligndata %f6, %f8, %f10
  56. add %i0, %i1, %i0
  57. add %i2, %i3, %i2
  58. pdist %f4, %f10, %f12
  59. alignaddr %i0, %g0, %l0
  60. ldd [%l0], %f0
  61. ldd [%l0+8], %f2
  62. faligndata %f0, %f2, %f4
  63. alignaddr %i2, %g0, %l2
  64. ldd [%l2], %f6
  65. ldd [%l2+8], %f8
  66. faligndata %f6, %f8, %f10
  67. add %i0, %i1, %i0
  68. add %i2, %i3, %i2
  69. pdist %f4, %f10, %f12
  70. alignaddr %i0, %g0, %l0
  71. ldd [%l0], %f0
  72. ldd [%l0+8], %f2
  73. faligndata %f0, %f2, %f4
  74. alignaddr %i2, %g0, %l2
  75. ldd [%l2], %f6
  76. ldd [%l2+8], %f8
  77. faligndata %f6, %f8, %f10
  78. add %i0, %i1, %i0
  79. add %i2, %i3, %i2
  80. pdist %f4, %f10, %f12
  81. alignaddr %i0, %g0, %l0
  82. ldd [%l0], %f0
  83. ldd [%l0+8], %f2
  84. faligndata %f0, %f2, %f4
  85. alignaddr %i2, %g0, %l2
  86. ldd [%l2], %f6
  87. ldd [%l2+8], %f8
  88. faligndata %f6, %f8, %f10
  89. add %i0, %i1, %i0
  90. add %i2, %i3, %i2
  91. pdist %f4, %f10, %f12
  92. alignaddr %i0, %g0, %l0
  93. ldd [%l0], %f0
  94. ldd [%l0+8], %f2
  95. faligndata %f0, %f2, %f4
  96. alignaddr %i2, %g0, %l2
  97. ldd [%l2], %f6
  98. ldd [%l2+8], %f8
  99. faligndata %f6, %f8, %f10
  100. add %i0, %i1, %i0
  101. add %i2, %i3, %i2
  102. pdist %f4, %f10, %f12
  103. alignaddr %i0, %g0, %l0
  104. ldd [%l0], %f0
  105. ldd [%l0+8], %f2
  106. faligndata %f0, %f2, %f4
  107. alignaddr %i2, %g0, %l2
  108. ldd [%l2], %f6
  109. ldd [%l2+8], %f8
  110. faligndata %f6, %f8, %f10
  111. add %i0, %i1, %i0
  112. add %i2, %i3, %i2
  113. pdist %f4, %f10, %f12
  114. std %f12, [%fp-24]
  115. ld [%fp-20], %i0
  116. ret
  117. restore
  118. .global x264_pixel_sad_8x16_vis
  119. x264_pixel_sad_8x16_vis:
  120. save %sp, -120, %sp
  121. fzero %f12
  122. alignaddr %i0, %g0, %l0
  123. ldd [%l0], %f0
  124. ldd [%l0+8], %f2
  125. faligndata %f0, %f2, %f4
  126. alignaddr %i2, %g0, %l2
  127. ldd [%l2], %f6
  128. ldd [%l2+8], %f8
  129. faligndata %f6, %f8, %f10
  130. add %i0, %i1, %i0
  131. add %i2, %i3, %i2
  132. pdist %f4, %f10, %f12
  133. alignaddr %i0, %g0, %l0
  134. ldd [%l0], %f0
  135. ldd [%l0+8], %f2
  136. faligndata %f0, %f2, %f4
  137. alignaddr %i2, %g0, %l2
  138. ldd [%l2], %f6
  139. ldd [%l2+8], %f8
  140. faligndata %f6, %f8, %f10
  141. add %i0, %i1, %i0
  142. add %i2, %i3, %i2
  143. pdist %f4, %f10, %f12
  144. alignaddr %i0, %g0, %l0
  145. ldd [%l0], %f0
  146. ldd [%l0+8], %f2
  147. faligndata %f0, %f2, %f4
  148. alignaddr %i2, %g0, %l2
  149. ldd [%l2], %f6
  150. ldd [%l2+8], %f8
  151. faligndata %f6, %f8, %f10
  152. add %i0, %i1, %i0
  153. add %i2, %i3, %i2
  154. pdist %f4, %f10, %f12
  155. alignaddr %i0, %g0, %l0
  156. ldd [%l0], %f0
  157. ldd [%l0+8], %f2
  158. faligndata %f0, %f2, %f4
  159. alignaddr %i2, %g0, %l2
  160. ldd [%l2], %f6
  161. ldd [%l2+8], %f8
  162. faligndata %f6, %f8, %f10
  163. add %i0, %i1, %i0
  164. add %i2, %i3, %i2
  165. pdist %f4, %f10, %f12
  166. alignaddr %i0, %g0, %l0
  167. ldd [%l0], %f0
  168. ldd [%l0+8], %f2
  169. faligndata %f0, %f2, %f4
  170. alignaddr %i2, %g0, %l2
  171. ldd [%l2], %f6
  172. ldd [%l2+8], %f8
  173. faligndata %f6, %f8, %f10
  174. add %i0, %i1, %i0
  175. add %i2, %i3, %i2
  176. pdist %f4, %f10, %f12
  177. alignaddr %i0, %g0, %l0
  178. ldd [%l0], %f0
  179. ldd [%l0+8], %f2
  180. faligndata %f0, %f2, %f4
  181. alignaddr %i2, %g0, %l2
  182. ldd [%l2], %f6
  183. ldd [%l2+8], %f8
  184. faligndata %f6, %f8, %f10
  185. add %i0, %i1, %i0
  186. add %i2, %i3, %i2
  187. pdist %f4, %f10, %f12
  188. alignaddr %i0, %g0, %l0
  189. ldd [%l0], %f0
  190. ldd [%l0+8], %f2
  191. faligndata %f0, %f2, %f4
  192. alignaddr %i2, %g0, %l2
  193. ldd [%l2], %f6
  194. ldd [%l2+8], %f8
  195. faligndata %f6, %f8, %f10
  196. add %i0, %i1, %i0
  197. add %i2, %i3, %i2
  198. pdist %f4, %f10, %f12
  199. alignaddr %i0, %g0, %l0
  200. ldd [%l0], %f0
  201. ldd [%l0+8], %f2
  202. faligndata %f0, %f2, %f4
  203. alignaddr %i2, %g0, %l2
  204. ldd [%l2], %f6
  205. ldd [%l2+8], %f8
  206. faligndata %f6, %f8, %f10
  207. add %i0, %i1, %i0
  208. add %i2, %i3, %i2
  209. pdist %f4, %f10, %f12
  210. alignaddr %i0, %g0, %l0
  211. ldd [%l0], %f0
  212. ldd [%l0+8], %f2
  213. faligndata %f0, %f2, %f4
  214. alignaddr %i2, %g0, %l2
  215. ldd [%l2], %f6
  216. ldd [%l2+8], %f8
  217. faligndata %f6, %f8, %f10
  218. add %i0, %i1, %i0
  219. add %i2, %i3, %i2
  220. pdist %f4, %f10, %f12
  221. alignaddr %i0, %g0, %l0
  222. ldd [%l0], %f0
  223. ldd [%l0+8], %f2
  224. faligndata %f0, %f2, %f4
  225. alignaddr %i2, %g0, %l2
  226. ldd [%l2], %f6
  227. ldd [%l2+8], %f8
  228. faligndata %f6, %f8, %f10
  229. add %i0, %i1, %i0
  230. add %i2, %i3, %i2
  231. pdist %f4, %f10, %f12
  232. alignaddr %i0, %g0, %l0
  233. ldd [%l0], %f0
  234. ldd [%l0+8], %f2
  235. faligndata %f0, %f2, %f4
  236. alignaddr %i2, %g0, %l2
  237. ldd [%l2], %f6
  238. ldd [%l2+8], %f8
  239. faligndata %f6, %f8, %f10
  240. add %i0, %i1, %i0
  241. add %i2, %i3, %i2
  242. pdist %f4, %f10, %f12
  243. alignaddr %i0, %g0, %l0
  244. ldd [%l0], %f0
  245. ldd [%l0+8], %f2
  246. faligndata %f0, %f2, %f4
  247. alignaddr %i2, %g0, %l2
  248. ldd [%l2], %f6
  249. ldd [%l2+8], %f8
  250. faligndata %f6, %f8, %f10
  251. add %i0, %i1, %i0
  252. add %i2, %i3, %i2
  253. pdist %f4, %f10, %f12
  254. alignaddr %i0, %g0, %l0
  255. ldd [%l0], %f0
  256. ldd [%l0+8], %f2
  257. faligndata %f0, %f2, %f4
  258. alignaddr %i2, %g0, %l2
  259. ldd [%l2], %f6
  260. ldd [%l2+8], %f8
  261. faligndata %f6, %f8, %f10
  262. add %i0, %i1, %i0
  263. add %i2, %i3, %i2
  264. pdist %f4, %f10, %f12
  265. alignaddr %i0, %g0, %l0
  266. ldd [%l0], %f0
  267. ldd [%l0+8], %f2
  268. faligndata %f0, %f2, %f4
  269. alignaddr %i2, %g0, %l2
  270. ldd [%l2], %f6
  271. ldd [%l2+8], %f8
  272. faligndata %f6, %f8, %f10
  273. add %i0, %i1, %i0
  274. add %i2, %i3, %i2
  275. pdist %f4, %f10, %f12
  276. alignaddr %i0, %g0, %l0
  277. ldd [%l0], %f0
  278. ldd [%l0+8], %f2
  279. faligndata %f0, %f2, %f4
  280. alignaddr %i2, %g0, %l2
  281. ldd [%l2], %f6
  282. ldd [%l2+8], %f8
  283. faligndata %f6, %f8, %f10
  284. add %i0, %i1, %i0
  285. add %i2, %i3, %i2
  286. pdist %f4, %f10, %f12
  287. alignaddr %i0, %g0, %l0
  288. ldd [%l0], %f0
  289. ldd [%l0+8], %f2
  290. faligndata %f0, %f2, %f4
  291. alignaddr %i2, %g0, %l2
  292. ldd [%l2], %f6
  293. ldd [%l2+8], %f8
  294. faligndata %f6, %f8, %f10
  295. add %i0, %i1, %i0
  296. add %i2, %i3, %i2
  297. pdist %f4, %f10, %f12
  298. std %f12, [%fp-24]
  299. ld [%fp-20], %i0
  300. ret
  301. restore
  302. .global x264_pixel_sad_16x8_vis
  303. x264_pixel_sad_16x8_vis:
  304. save %sp, -120, %sp
  305. fzero %f12 ! zero out the accumulator used for pdist
  306. sub %i1, 8, %i1 ! reduce stride by 8, since we are moving forward 8 each block
  307. sub %i3, 8, %i3 ! same here, reduce stride by 8
  308. alignaddr %i0, %g0, %l0
  309. ldd [%l0], %f0
  310. ldd [%l0+8], %f2
  311. faligndata %f0, %f2, %f4
  312. alignaddr %i2, %g0, %l2
  313. ldd [%l2], %f6
  314. ldd [%l2+8], %f8
  315. faligndata %f6, %f8, %f10
  316. add %i0, 8, %i0
  317. add %i2, 8, %i2
  318. pdist %f4, %f10, %f12
  319. alignaddr %i0, %g0, %l0
  320. ldd [%l0], %f0
  321. ldd [%l0+8], %f2
  322. faligndata %f0, %f2, %f4
  323. alignaddr %i2, %g0, %l2
  324. ldd [%l2], %f6
  325. ldd [%l2+8], %f8
  326. faligndata %f6, %f8, %f10
  327. add %i0, %i1, %i0
  328.         add %i2, %i3, %i2
  329. pdist %f4, %f10, %f12
  330. alignaddr %i0, %g0, %l0
  331. ldd [%l0], %f0
  332. ldd [%l0+8], %f2
  333. faligndata %f0, %f2, %f4
  334. alignaddr %i2, %g0, %l2
  335. ldd [%l2], %f6
  336. ldd [%l2+8], %f8
  337. faligndata %f6, %f8, %f10
  338. add %i0, 8, %i0
  339. add %i2, 8, %i2
  340. pdist %f4, %f10, %f12
  341. alignaddr %i0, %g0, %l0
  342. ldd [%l0], %f0
  343. ldd [%l0+8], %f2
  344. faligndata %f0, %f2, %f4
  345. alignaddr %i2, %g0, %l2
  346. ldd [%l2], %f6
  347. ldd [%l2+8], %f8
  348. faligndata %f6, %f8, %f10
  349. add %i0, %i1, %i0
  350.         add %i2, %i3, %i2
  351. pdist %f4, %f10, %f12
  352. alignaddr %i0, %g0, %l0
  353. ldd [%l0], %f0
  354. ldd [%l0+8], %f2
  355. faligndata %f0, %f2, %f4
  356. alignaddr %i2, %g0, %l2
  357. ldd [%l2], %f6
  358. ldd [%l2+8], %f8
  359. faligndata %f6, %f8, %f10
  360. add %i0, 8, %i0
  361. add %i2, 8, %i2
  362. pdist %f4, %f10, %f12
  363. alignaddr %i0, %g0, %l0
  364. ldd [%l0], %f0
  365. ldd [%l0+8], %f2
  366. faligndata %f0, %f2, %f4
  367. alignaddr %i2, %g0, %l2
  368. ldd [%l2], %f6
  369. ldd [%l2+8], %f8
  370. faligndata %f6, %f8, %f10
  371. add %i0, %i1, %i0
  372.         add %i2, %i3, %i2
  373. pdist %f4, %f10, %f12
  374. alignaddr %i0, %g0, %l0
  375. ldd [%l0], %f0
  376. ldd [%l0+8], %f2
  377. faligndata %f0, %f2, %f4
  378. alignaddr %i2, %g0, %l2
  379. ldd [%l2], %f6
  380. ldd [%l2+8], %f8
  381. faligndata %f6, %f8, %f10
  382. add %i0, 8, %i0
  383. add %i2, 8, %i2
  384. pdist %f4, %f10, %f12
  385. alignaddr %i0, %g0, %l0
  386. ldd [%l0], %f0
  387. ldd [%l0+8], %f2
  388. faligndata %f0, %f2, %f4
  389. alignaddr %i2, %g0, %l2
  390. ldd [%l2], %f6
  391. ldd [%l2+8], %f8
  392. faligndata %f6, %f8, %f10
  393. add %i0, %i1, %i0
  394.         add %i2, %i3, %i2
  395. pdist %f4, %f10, %f12
  396. alignaddr %i0, %g0, %l0
  397. ldd [%l0], %f0
  398. ldd [%l0+8], %f2
  399. faligndata %f0, %f2, %f4
  400. alignaddr %i2, %g0, %l2
  401. ldd [%l2], %f6
  402. ldd [%l2+8], %f8
  403. faligndata %f6, %f8, %f10
  404. add %i0, 8, %i0
  405. add %i2, 8, %i2
  406. pdist %f4, %f10, %f12
  407. alignaddr %i0, %g0, %l0
  408. ldd [%l0], %f0
  409. ldd [%l0+8], %f2
  410. faligndata %f0, %f2, %f4
  411. alignaddr %i2, %g0, %l2
  412. ldd [%l2], %f6
  413. ldd [%l2+8], %f8
  414. faligndata %f6, %f8, %f10
  415. add %i0, %i1, %i0
  416.         add %i2, %i3, %i2
  417. pdist %f4, %f10, %f12
  418. alignaddr %i0, %g0, %l0
  419. ldd [%l0], %f0
  420. ldd [%l0+8], %f2
  421. faligndata %f0, %f2, %f4
  422. alignaddr %i2, %g0, %l2
  423. ldd [%l2], %f6
  424. ldd [%l2+8], %f8
  425. faligndata %f6, %f8, %f10
  426. add %i0, 8, %i0
  427. add %i2, 8, %i2
  428. pdist %f4, %f10, %f12
  429. alignaddr %i0, %g0, %l0
  430. ldd [%l0], %f0
  431. ldd [%l0+8], %f2
  432. faligndata %f0, %f2, %f4
  433. alignaddr %i2, %g0, %l2
  434. ldd [%l2], %f6
  435. ldd [%l2+8], %f8
  436. faligndata %f6, %f8, %f10
  437. add %i0, %i1, %i0
  438.         add %i2, %i3, %i2
  439. pdist %f4, %f10, %f12
  440. alignaddr %i0, %g0, %l0
  441. ldd [%l0], %f0
  442. ldd [%l0+8], %f2
  443. faligndata %f0, %f2, %f4
  444. alignaddr %i2, %g0, %l2
  445. ldd [%l2], %f6
  446. ldd [%l2+8], %f8
  447. faligndata %f6, %f8, %f10
  448. add %i0, 8, %i0
  449. add %i2, 8, %i2
  450. pdist %f4, %f10, %f12
  451. alignaddr %i0, %g0, %l0
  452. ldd [%l0], %f0
  453. ldd [%l0+8], %f2
  454. faligndata %f0, %f2, %f4
  455. alignaddr %i2, %g0, %l2
  456. ldd [%l2], %f6
  457. ldd [%l2+8], %f8
  458. faligndata %f6, %f8, %f10
  459. add %i0, %i1, %i0
  460.         add %i2, %i3, %i2
  461. pdist %f4, %f10, %f12
  462. alignaddr %i0, %g0, %l0
  463. ldd [%l0], %f0
  464. ldd [%l0+8], %f2
  465. faligndata %f0, %f2, %f4
  466. alignaddr %i2, %g0, %l2
  467. ldd [%l2], %f6
  468. ldd [%l2+8], %f8
  469. faligndata %f6, %f8, %f10
  470. add %i0, 8, %i0
  471. add %i2, 8, %i2
  472. pdist %f4, %f10, %f12
  473. alignaddr %i0, %g0, %l0
  474. ldd [%l0], %f0
  475. ldd [%l0+8], %f2
  476. faligndata %f0, %f2, %f4
  477. alignaddr %i2, %g0, %l2
  478. ldd [%l2], %f6
  479. ldd [%l2+8], %f8
  480. faligndata %f6, %f8, %f10
  481. add %i0, %i1, %i0
  482.         add %i2, %i3, %i2
  483. pdist %f4, %f10, %f12
  484. std %f12, [%fp-24]
  485. ld [%fp-20], %i0
  486. ret
  487. restore
  488. .global x264_pixel_sad_16x16_vis
  489. x264_pixel_sad_16x16_vis:
  490. save %sp, -120, %sp
  491. fzero %f12 ! zero out the accumulator used for pdist
  492. sub %i1, 8, %i1 ! reduce stride by 8, since we are moving forward 8 each block
  493. sub %i3, 8, %i3 ! same here, reduce stride by 8
  494. alignaddr %i0, %g0, %l0
  495. ldd [%l0], %f0
  496. ldd [%l0+8], %f2
  497. faligndata %f0, %f2, %f4
  498. alignaddr %i2, %g0, %l2
  499. ldd [%l2], %f6
  500. ldd [%l2+8], %f8
  501. faligndata %f6, %f8, %f10
  502. add %i0, 8, %i0
  503. add %i2, 8, %i2
  504. pdist %f4, %f10, %f12
  505. alignaddr %i0, %g0, %l0
  506. ldd [%l0], %f0
  507. ldd [%l0+8], %f2
  508. faligndata %f0, %f2, %f4
  509. alignaddr %i2, %g0, %l2
  510. ldd [%l2], %f6
  511. ldd [%l2+8], %f8
  512. faligndata %f6, %f8, %f10
  513. add %i0, %i1, %i0
  514.         add %i2, %i3, %i2
  515. pdist %f4, %f10, %f12
  516. alignaddr %i0, %g0, %l0
  517. ldd [%l0], %f0
  518. ldd [%l0+8], %f2
  519. faligndata %f0, %f2, %f4
  520. alignaddr %i2, %g0, %l2
  521. ldd [%l2], %f6
  522. ldd [%l2+8], %f8
  523. faligndata %f6, %f8, %f10
  524. add %i0, 8, %i0
  525. add %i2, 8, %i2
  526. pdist %f4, %f10, %f12
  527. alignaddr %i0, %g0, %l0
  528. ldd [%l0], %f0
  529. ldd [%l0+8], %f2
  530. faligndata %f0, %f2, %f4
  531. alignaddr %i2, %g0, %l2
  532. ldd [%l2], %f6
  533. ldd [%l2+8], %f8
  534. faligndata %f6, %f8, %f10
  535. add %i0, %i1, %i0
  536.         add %i2, %i3, %i2
  537. pdist %f4, %f10, %f12
  538. alignaddr %i0, %g0, %l0
  539. ldd [%l0], %f0
  540. ldd [%l0+8], %f2
  541. faligndata %f0, %f2, %f4
  542. alignaddr %i2, %g0, %l2
  543. ldd [%l2], %f6
  544. ldd [%l2+8], %f8
  545. faligndata %f6, %f8, %f10
  546. add %i0, 8, %i0
  547. add %i2, 8, %i2
  548. pdist %f4, %f10, %f12
  549. alignaddr %i0, %g0, %l0
  550. ldd [%l0], %f0
  551. ldd [%l0+8], %f2
  552. faligndata %f0, %f2, %f4
  553. alignaddr %i2, %g0, %l2
  554. ldd [%l2], %f6
  555. ldd [%l2+8], %f8
  556. faligndata %f6, %f8, %f10
  557. add %i0, %i1, %i0
  558.         add %i2, %i3, %i2
  559. pdist %f4, %f10, %f12
  560. alignaddr %i0, %g0, %l0
  561. ldd [%l0], %f0
  562. ldd [%l0+8], %f2
  563. faligndata %f0, %f2, %f4
  564. alignaddr %i2, %g0, %l2
  565. ldd [%l2], %f6
  566. ldd [%l2+8], %f8
  567. faligndata %f6, %f8, %f10
  568. add %i0, 8, %i0
  569. add %i2, 8, %i2
  570. pdist %f4, %f10, %f12
  571. alignaddr %i0, %g0, %l0
  572. ldd [%l0], %f0
  573. ldd [%l0+8], %f2
  574. faligndata %f0, %f2, %f4
  575. alignaddr %i2, %g0, %l2
  576. ldd [%l2], %f6
  577. ldd [%l2+8], %f8
  578. faligndata %f6, %f8, %f10
  579. add %i0, %i1, %i0
  580.         add %i2, %i3, %i2
  581. pdist %f4, %f10, %f12
  582. alignaddr %i0, %g0, %l0
  583. ldd [%l0], %f0
  584. ldd [%l0+8], %f2
  585. faligndata %f0, %f2, %f4
  586. alignaddr %i2, %g0, %l2
  587. ldd [%l2], %f6
  588. ldd [%l2+8], %f8
  589. faligndata %f6, %f8, %f10
  590. add %i0, 8, %i0
  591. add %i2, 8, %i2
  592. pdist %f4, %f10, %f12
  593. alignaddr %i0, %g0, %l0
  594. ldd [%l0], %f0
  595. ldd [%l0+8], %f2
  596. faligndata %f0, %f2, %f4
  597. alignaddr %i2, %g0, %l2
  598. ldd [%l2], %f6
  599. ldd [%l2+8], %f8
  600. faligndata %f6, %f8, %f10
  601. add %i0, %i1, %i0
  602.         add %i2, %i3, %i2
  603. pdist %f4, %f10, %f12
  604. alignaddr %i0, %g0, %l0
  605. ldd [%l0], %f0
  606. ldd [%l0+8], %f2
  607. faligndata %f0, %f2, %f4
  608. alignaddr %i2, %g0, %l2
  609. ldd [%l2], %f6
  610. ldd [%l2+8], %f8
  611. faligndata %f6, %f8, %f10
  612. add %i0, 8, %i0
  613. add %i2, 8, %i2
  614. pdist %f4, %f10, %f12
  615. alignaddr %i0, %g0, %l0
  616. ldd [%l0], %f0
  617. ldd [%l0+8], %f2
  618. faligndata %f0, %f2, %f4
  619. alignaddr %i2, %g0, %l2
  620. ldd [%l2], %f6
  621. ldd [%l2+8], %f8
  622. faligndata %f6, %f8, %f10
  623. add %i0, %i1, %i0
  624.         add %i2, %i3, %i2
  625. pdist %f4, %f10, %f12
  626. alignaddr %i0, %g0, %l0
  627. ldd [%l0], %f0
  628. ldd [%l0+8], %f2
  629. faligndata %f0, %f2, %f4
  630. alignaddr %i2, %g0, %l2
  631. ldd [%l2], %f6
  632. ldd [%l2+8], %f8
  633. faligndata %f6, %f8, %f10
  634. add %i0, 8, %i0
  635. add %i2, 8, %i2
  636. pdist %f4, %f10, %f12
  637. alignaddr %i0, %g0, %l0
  638. ldd [%l0], %f0
  639. ldd [%l0+8], %f2
  640. faligndata %f0, %f2, %f4
  641. alignaddr %i2, %g0, %l2
  642. ldd [%l2], %f6
  643. ldd [%l2+8], %f8
  644. faligndata %f6, %f8, %f10
  645. add %i0, %i1, %i0
  646.         add %i2, %i3, %i2
  647. pdist %f4, %f10, %f12
  648. alignaddr %i0, %g0, %l0
  649. ldd [%l0], %f0
  650. ldd [%l0+8], %f2
  651. faligndata %f0, %f2, %f4
  652. alignaddr %i2, %g0, %l2
  653. ldd [%l2], %f6
  654. ldd [%l2+8], %f8
  655. faligndata %f6, %f8, %f10
  656. add %i0, 8, %i0
  657. add %i2, 8, %i2
  658. pdist %f4, %f10, %f12
  659. alignaddr %i0, %g0, %l0
  660. ldd [%l0], %f0
  661. ldd [%l0+8], %f2
  662. faligndata %f0, %f2, %f4
  663. alignaddr %i2, %g0, %l2
  664. ldd [%l2], %f6
  665. ldd [%l2+8], %f8
  666. faligndata %f6, %f8, %f10
  667. add %i0, %i1, %i0
  668.         add %i2, %i3, %i2
  669. pdist %f4, %f10, %f12
  670. alignaddr %i0, %g0, %l0
  671. ldd [%l0], %f0
  672. ldd [%l0+8], %f2
  673. faligndata %f0, %f2, %f4
  674. alignaddr %i2, %g0, %l2
  675. ldd [%l2], %f6
  676. ldd [%l2+8], %f8
  677. faligndata %f6, %f8, %f10
  678. add %i0, 8, %i0
  679. add %i2, 8, %i2
  680. pdist %f4, %f10, %f12
  681. alignaddr %i0, %g0, %l0
  682. ldd [%l0], %f0
  683. ldd [%l0+8], %f2
  684. faligndata %f0, %f2, %f4
  685. alignaddr %i2, %g0, %l2
  686. ldd [%l2], %f6
  687. ldd [%l2+8], %f8
  688. faligndata %f6, %f8, %f10
  689. add %i0, %i1, %i0
  690.         add %i2, %i3, %i2
  691. pdist %f4, %f10, %f12
  692. alignaddr %i0, %g0, %l0
  693. ldd [%l0], %f0
  694. ldd [%l0+8], %f2
  695. faligndata %f0, %f2, %f4
  696. alignaddr %i2, %g0, %l2
  697. ldd [%l2], %f6
  698. ldd [%l2+8], %f8
  699. faligndata %f6, %f8, %f10
  700. add %i0, 8, %i0
  701. add %i2, 8, %i2
  702. pdist %f4, %f10, %f12
  703. alignaddr %i0, %g0, %l0
  704. ldd [%l0], %f0
  705. ldd [%l0+8], %f2
  706. faligndata %f0, %f2, %f4
  707. alignaddr %i2, %g0, %l2
  708. ldd [%l2], %f6
  709. ldd [%l2+8], %f8
  710. faligndata %f6, %f8, %f10
  711. add %i0, %i1, %i0
  712.         add %i2, %i3, %i2
  713. pdist %f4, %f10, %f12
  714. alignaddr %i0, %g0, %l0
  715. ldd [%l0], %f0
  716. ldd [%l0+8], %f2
  717. faligndata %f0, %f2, %f4
  718. alignaddr %i2, %g0, %l2
  719. ldd [%l2], %f6
  720. ldd [%l2+8], %f8
  721. faligndata %f6, %f8, %f10
  722. add %i0, 8, %i0
  723. add %i2, 8, %i2
  724. pdist %f4, %f10, %f12
  725. alignaddr %i0, %g0, %l0
  726. ldd [%l0], %f0
  727. ldd [%l0+8], %f2
  728. faligndata %f0, %f2, %f4
  729. alignaddr %i2, %g0, %l2
  730. ldd [%l2], %f6
  731. ldd [%l2+8], %f8
  732. faligndata %f6, %f8, %f10
  733. add %i0, %i1, %i0
  734.         add %i2, %i3, %i2
  735. pdist %f4, %f10, %f12
  736. alignaddr %i0, %g0, %l0
  737. ldd [%l0], %f0
  738. ldd [%l0+8], %f2
  739. faligndata %f0, %f2, %f4
  740. alignaddr %i2, %g0, %l2
  741. ldd [%l2], %f6
  742. ldd [%l2+8], %f8
  743. faligndata %f6, %f8, %f10
  744. add %i0, 8, %i0
  745. add %i2, 8, %i2
  746. pdist %f4, %f10, %f12
  747. alignaddr %i0, %g0, %l0
  748. ldd [%l0], %f0
  749. ldd [%l0+8], %f2
  750. faligndata %f0, %f2, %f4
  751. alignaddr %i2, %g0, %l2
  752. ldd [%l2], %f6
  753. ldd [%l2+8], %f8
  754. faligndata %f6, %f8, %f10
  755. add %i0, %i1, %i0
  756.         add %i2, %i3, %i2
  757. pdist %f4, %f10, %f12
  758. alignaddr %i0, %g0, %l0
  759. ldd [%l0], %f0
  760. ldd [%l0+8], %f2
  761. faligndata %f0, %f2, %f4
  762. alignaddr %i2, %g0, %l2
  763. ldd [%l2], %f6
  764. ldd [%l2+8], %f8
  765. faligndata %f6, %f8, %f10
  766. add %i0, 8, %i0
  767. add %i2, 8, %i2
  768. pdist %f4, %f10, %f12
  769. alignaddr %i0, %g0, %l0
  770. ldd [%l0], %f0
  771. ldd [%l0+8], %f2
  772. faligndata %f0, %f2, %f4
  773. alignaddr %i2, %g0, %l2
  774. ldd [%l2], %f6
  775. ldd [%l2+8], %f8
  776. faligndata %f6, %f8, %f10
  777. add %i0, %i1, %i0
  778.         add %i2, %i3, %i2
  779. pdist %f4, %f10, %f12
  780. alignaddr %i0, %g0, %l0
  781. ldd [%l0], %f0
  782. ldd [%l0+8], %f2
  783. faligndata %f0, %f2, %f4
  784. alignaddr %i2, %g0, %l2
  785. ldd [%l2], %f6
  786. ldd [%l2+8], %f8
  787. faligndata %f6, %f8, %f10
  788. add %i0, 8, %i0
  789. add %i2, 8, %i2
  790. pdist %f4, %f10, %f12
  791. alignaddr %i0, %g0, %l0
  792. ldd [%l0], %f0
  793. ldd [%l0+8], %f2
  794. faligndata %f0, %f2, %f4
  795. alignaddr %i2, %g0, %l2
  796. ldd [%l2], %f6
  797. ldd [%l2+8], %f8
  798. faligndata %f6, %f8, %f10
  799. add %i0, %i1, %i0
  800.         add %i2, %i3, %i2
  801. pdist %f4, %f10, %f12
  802. alignaddr %i0, %g0, %l0
  803. ldd [%l0], %f0
  804. ldd [%l0+8], %f2
  805. faligndata %f0, %f2, %f4
  806. alignaddr %i2, %g0, %l2
  807. ldd [%l2], %f6
  808. ldd [%l2+8], %f8
  809. faligndata %f6, %f8, %f10
  810. add %i0, 8, %i0
  811. add %i2, 8, %i2
  812. pdist %f4, %f10, %f12
  813. alignaddr %i0, %g0, %l0
  814. ldd [%l0], %f0
  815. ldd [%l0+8], %f2
  816. faligndata %f0, %f2, %f4
  817. alignaddr %i2, %g0, %l2
  818. ldd [%l2], %f6
  819. ldd [%l2+8], %f8
  820. faligndata %f6, %f8, %f10
  821. add %i0, %i1, %i0
  822.         add %i2, %i3, %i2
  823. pdist %f4, %f10, %f12
  824. alignaddr %i0, %g0, %l0
  825. ldd [%l0], %f0
  826. ldd [%l0+8], %f2
  827. faligndata %f0, %f2, %f4
  828. alignaddr %i2, %g0, %l2
  829. ldd [%l2], %f6
  830. ldd [%l2+8], %f8
  831. faligndata %f6, %f8, %f10
  832. add %i0, 8, %i0
  833. add %i2, 8, %i2
  834. pdist %f4, %f10, %f12
  835. alignaddr %i0, %g0, %l0
  836. ldd [%l0], %f0
  837. ldd [%l0+8], %f2
  838. faligndata %f0, %f2, %f4
  839. alignaddr %i2, %g0, %l2
  840. ldd [%l2], %f6
  841. ldd [%l2+8], %f8
  842. faligndata %f6, %f8, %f10
  843. add %i0, %i1, %i0
  844.         add %i2, %i3, %i2
  845. pdist %f4, %f10, %f12
  846. std %f12, [%fp-24]
  847. ld [%fp-20], %i0
  848. ret
  849. restore