You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

isamin_power8.S 5.6 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423
  1. /* .file "isamin.c"
  2. .abiversion 2
  3. .section ".text"
  4. .align 2
  5. .p2align 4,,15
  6. .globl isamin_k
  7. .type isamin_k, @function
  8. */
  9. #define ASSEMBLER
  10. #include "common.h"
  11. PROLOGUE
  12. #if _CALL_ELF ==2
  13. isamin_k:
  14. #endif
  15. .LCF0:
  16. 0: addis 2,12,.TOC.-.LCF0@ha
  17. addi 2,2,.TOC.-.LCF0@l
  18. #if _CALL_ELF ==2
  19. .localentry isamin_k,.-isamin_k
  20. #endif
  21. mr. 11,3
  22. ble 0,.L36
  23. cmpdi 7,5,0
  24. li 3,0
  25. blelr 7
  26. lfs 0,0(4)
  27. li 0,-48
  28. cmpdi 7,5,1
  29. stvx 30,1,0
  30. li 0,-32
  31. stvx 31,1,0
  32. fabs 0,0
  33. beq 7,.L62
  34. rldicr. 6,11,0,61
  35. beq 0,.L40
  36. sldi 0,5,1
  37. sldi 12,5,2
  38. std 31,-8(1)
  39. add 0,0,5
  40. neg 31,5
  41. sldi 3,5,4
  42. sldi 0,0,2
  43. add 7,4,12
  44. sldi 31,31,2
  45. sldi 5,5,3
  46. li 9,0
  47. li 10,0
  48. b .L24
  49. .p2align 4,,15
  50. .L41:
  51. mr 10,9
  52. .L25:
  53. fmr 0,12
  54. add 7,7,3
  55. .L24:
  56. lfs 12,0(7)
  57. fabs 12,12
  58. fcmpu 7,12,0
  59. bnl 7,.L26
  60. fmr 0,12
  61. addi 10,9,1
  62. .L26:
  63. add 8,31,7
  64. lfsx 12,8,5
  65. fabs 12,12
  66. fcmpu 7,12,0
  67. bnl 7,.L28
  68. fmr 0,12
  69. addi 10,9,2
  70. .L28:
  71. lfsx 12,8,0
  72. fabs 12,12
  73. fcmpu 7,12,0
  74. bnl 7,.L30
  75. fmr 0,12
  76. addi 10,9,3
  77. .L30:
  78. addi 9,9,4
  79. cmpd 7,6,9
  80. ble 7,.L63
  81. lfsx 12,8,3
  82. fabs 12,12
  83. fcmpu 7,12,0
  84. blt 7,.L41
  85. fmr 12,0
  86. b .L25
  87. .p2align 4,,15
  88. .L36:
  89. li 3,0
  90. blr
  91. .p2align 4,,15
  92. .L63:
  93. addi 6,6,-1
  94. ld 31,-8(1)
  95. srdi 6,6,2
  96. addi 6,6,1
  97. sldi 9,6,2
  98. mulld 6,12,6
  99. cmpd 7,11,9
  100. ble 7,.L33
  101. .L23:
  102. addi 8,9,1
  103. sldi 6,6,2
  104. cmpd 7,8,11
  105. subf 8,9,11
  106. mtctr 8
  107. add 4,4,6
  108. bgt 7,.L52
  109. li 3,-1
  110. rldicr 3,3,0,0
  111. cmpd 7,11,3
  112. beq 7,.L52
  113. .p2align 4,,15
  114. .L35:
  115. lfs 12,0(4)
  116. add 4,4,12
  117. fabs 12,12
  118. fcmpu 7,12,0
  119. bnl 7,.L34
  120. fmr 0,12
  121. mr 10,9
  122. .L34:
  123. addi 9,9,1
  124. bdnz .L35
  125. .L33:
  126. li 0,-48
  127. addi 3,10,1
  128. lvx 30,1,0
  129. li 0,-32
  130. lvx 31,1,0
  131. blr
  132. .p2align 4,,15
  133. .L62:
  134. rldicr. 8,11,0,57
  135. li 10,0
  136. bne 0,.L64
  137. .L4:
  138. addi 7,8,1
  139. sldi 9,8,2
  140. cmpd 7,7,11
  141. add 4,4,9
  142. subf 9,8,11
  143. mtctr 9
  144. bgt 7,.L51
  145. li 3,-1
  146. rldicr 3,3,0,0
  147. cmpd 7,11,3
  148. beq 7,.L51
  149. .p2align 4,,15
  150. .L22:
  151. lfs 12,0(4)
  152. addi 4,4,4
  153. fabs 12,12
  154. fcmpu 7,0,12
  155. bng 7,.L21
  156. fmr 0,12
  157. mr 10,8
  158. .L21:
  159. addi 8,8,1
  160. bdnz .L22
  161. li 0,-48
  162. addi 3,10,1
  163. lvx 30,1,0
  164. li 0,-32
  165. lvx 31,1,0
  166. blr
  167. .p2align 4,,15
  168. .L64:
  169. lxvd2x 4,0,4
  170. addis 10,2,.LC2@toc@ha
  171. addis 5,2,.LC3@toc@ha
  172. std 31,-8(1)
  173. vspltisw 2,0
  174. addi 10,10,.LC2@toc@l
  175. addis 7,2,.LC4@toc@ha
  176. addis 9,2,.LC5@toc@ha
  177. addis 6,2,.LC6@toc@ha
  178. lxvd2x 51,0,10
  179. addis 10,2,.LC7@toc@ha
  180. addi 7,7,.LC4@toc@l
  181. addi 9,9,.LC5@toc@l
  182. addi 5,5,.LC3@toc@l
  183. xvabssp 4,4
  184. addi 6,6,.LC6@toc@l
  185. addi 10,10,.LC7@toc@l
  186. lxvd2x 36,0,7
  187. vspltisw 18,8
  188. lxvd2x 37,0,9
  189. lxvd2x 35,0,5
  190. mr 9,4
  191. li 7,0
  192. lxvd2x 48,0,6
  193. lxvd2x 49,0,10
  194. vadduwm 18,18,18
  195. xxlor 38,51,51
  196. xxlor 40,4,4
  197. b .L6
  198. .p2align 4,,15
  199. .L65:
  200. lxvd2x 5,0,9
  201. xvabssp 40,5
  202. .L6:
  203. addi 5,9,16
  204. addi 6,9,32
  205. vadduwm 14,2,16
  206. addi 10,9,64
  207. addi 12,9,48
  208. addi 31,9,80
  209. addi 3,9,96
  210. lxvd2x 5,0,5
  211. lxvd2x 42,0,6
  212. addi 5,9,112
  213. addi 6,9,128
  214. lxvd2x 44,0,10
  215. lxvd2x 9,0,12
  216. addi 10,9,160
  217. addi 12,9,144
  218. lxvd2x 6,0,31
  219. lxvd2x 1,0,3
  220. addi 31,9,176
  221. addi 3,9,192
  222. lxvd2x 11,0,5
  223. lxvd2x 13,0,6
  224. addi 5,9,208
  225. addi 6,9,224
  226. lxvd2x 2,0,10
  227. lxvd2x 7,0,12
  228. addi 10,9,240
  229. lxvd2x 10,0,31
  230. lxvd2x 3,0,3
  231. xvabssp 42,42
  232. xvabssp 5,5
  233. addi 7,7,64
  234. lxvd2x 8,0,5
  235. lxvd2x 0,0,6
  236. xvabssp 44,44
  237. xvabssp 9,9
  238. cmpd 7,8,7
  239. addi 9,9,256
  240. lxvd2x 12,0,10
  241. xvabssp 6,6
  242. xvabssp 1,1
  243. xvabssp 11,11
  244. xvabssp 13,13
  245. xvabssp 7,7
  246. xvabssp 2,2
  247. xvabssp 10,10
  248. xvabssp 3,3
  249. xvabssp 8,8
  250. xvabssp 0,0
  251. xvabssp 12,12
  252. xvcmpgtsp 32,40,5
  253. xvcmpgtsp 62,42,9
  254. xvcmpgtsp 45,44,6
  255. xvcmpgtsp 63,1,11
  256. xvcmpgtsp 39,13,7
  257. xvcmpgtsp 47,2,10
  258. xvcmpgtsp 41,3,8
  259. xvcmpgtsp 33,0,12
  260. xxsel 5,40,5,32
  261. xxsel 32,38,35,32
  262. xxsel 9,42,9,62
  263. xxsel 6,44,6,45
  264. xxsel 11,1,11,63
  265. xxsel 44,38,35,45
  266. xxsel 7,13,7,39
  267. xvcmpgtsp 42,5,9
  268. xxsel 10,2,10,47
  269. xvcmpgtsp 45,6,11
  270. xxsel 8,3,8,41
  271. xxsel 63,36,37,63
  272. xxsel 0,0,12,33
  273. xvcmpgtsp 43,7,10
  274. xxsel 40,36,37,33
  275. xxsel 62,36,37,62
  276. xvcmpgtsp 33,8,0
  277. xxsel 41,38,35,41
  278. xxsel 39,38,35,39
  279. xxsel 47,36,37,47
  280. xxsel 9,5,9,42
  281. xxsel 42,32,62,42
  282. xxsel 12,6,11,45
  283. xxsel 45,44,63,45
  284. xxsel 11,7,10,43
  285. xvcmpgtsp 32,9,12
  286. vadduwm 13,13,18
  287. xxsel 43,39,47,43
  288. xxsel 0,8,0,33
  289. xxsel 33,41,40,33
  290. xvcmpgtsp 44,11,0
  291. vadduwm 1,1,18
  292. xxsel 12,9,12,32
  293. xxsel 32,42,45,32
  294. vadduwm 0,2,0
  295. vadduwm 2,2,17
  296. xxsel 0,11,0,44
  297. xxsel 33,43,33,44
  298. xvcmpgtsp 45,12,0
  299. vadduwm 1,14,1
  300. xxsel 0,12,0,45
  301. xxsel 32,32,33,45
  302. xvcmpgtsp 33,4,0
  303. xxsel 51,51,32,33
  304. xxsel 4,4,0,33
  305. bgt 7,.L65
  306. xxsldwi 0,4,4,1
  307. xscvspdp 10,4
  308. vspltw 0,19,0
  309. xxsldwi 12,4,4,3
  310. xscvspdp 0,0
  311. mfvsrwz 3,51
  312. mfvsrwz 6,32
  313. vspltw 0,19,3
  314. xscvspdp 12,12
  315. xxsldwi 4,4,4,2
  316. mfvsrwz 7,32
  317. vspltw 0,19,2
  318. xscvspdp 4,4
  319. mfvsrwz 9,32
  320. fcmpu 7,0,10
  321. rldicl 10,3,0,32
  322. rldicl 31,6,0,32
  323. fmr 11,12
  324. rldicl 5,7,0,32
  325. rldicl 0,9,0,32
  326. beq 7,.L66
  327. bng 7,.L9
  328. fmr 0,10
  329. mr 10,31
  330. .L9:
  331. fcmpu 7,12,4
  332. bne 7,.L12
  333. cmplw 7,7,9
  334. ble 7,.L13
  335. mr 7,9
  336. .L13:
  337. rldicl 5,7,0,32
  338. .L14:
  339. fcmpu 7,0,11
  340. beq 7,.L67
  341. bng 7,.L19
  342. fmr 0,11
  343. mr 10,5
  344. .L19:
  345. cmpd 7,11,8
  346. ld 31,-8(1)
  347. bgt 7,.L4
  348. b .L33
  349. .p2align 4,,15
  350. .L66:
  351. cmplw 7,3,6
  352. ble 7,.L8
  353. mr 3,6
  354. .L8:
  355. rldicl 10,3,0,32
  356. b .L9
  357. .p2align 4,,15
  358. .L40:
  359. sldi 12,5,2
  360. li 10,0
  361. li 9,0
  362. b .L23
  363. .p2align 4,,15
  364. .L12:
  365. bng 7,.L14
  366. fmr 11,4
  367. mr 5,0
  368. b .L14
  369. .p2align 4,,15
  370. .L67:
  371. cmpd 7,10,5
  372. ble 7,.L19
  373. mr 10,5
  374. b .L19
  375. .L51:
  376. li 9,1
  377. mtctr 9
  378. b .L22
  379. .L52:
  380. li 8,1
  381. mtctr 8
  382. b .L35
  383. .long 0
  384. .byte 0,0,0,0,0,1,0,0
  385. #if _CALL_ELF ==2
  386. .size isamin_k,.-isamin_k
  387. #endif
  388. .section .rodata.cst16,"aM",@progbits,16
  389. .align 4
  390. .LC2:
  391. .long 0
  392. .long 1
  393. .long 2
  394. .long 3
  395. .LC3:
  396. .long 4
  397. .long 5
  398. .long 6
  399. .long 7
  400. .LC4:
  401. .long 8
  402. .long 9
  403. .long 10
  404. .long 11
  405. .LC5:
  406. .long 12
  407. .long 13
  408. .long 14
  409. .long 15
  410. .LC6:
  411. .long 32
  412. .long 32
  413. .long 32
  414. .long 32
  415. .LC7:
  416. .long 64
  417. .long 64
  418. .long 64
  419. .long 64
  420. .ident "GCC: (SUSE Linux) 7.3.1 20180323 [gcc-7-branch revision 258812]"
  421. .section .note.GNU-stack,"",@progbits