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.

icamin_power8.S 6.2 kB

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