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_power9.S 5.2 kB

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