whet.s 15 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058
  1. .file 1 "whet.c"
  2. # GNU C 2.7.2.3 [AL 1.1, MM 40, tma 0.1] SimpleScalar running sstrix compiled by GNU C
  3. # Cc1 defaults:
  4. # -mgas -mgpOPT
  5. # Cc1 arguments (-G value = 8, Cpu = default, ISA = 1):
  6. # -quiet -dumpbase -O0 -o
  7. gcc2_compiled.:
  8. __gnu_compiled_c:
  9. .sdata
  10. .align 3
  11. $LC0:
  12. .word 0x00000000 # 1000000
  13. .word 0x412e8480
  14. .text
  15. .align 2
  16. .globl second
  17. .rdata
  18. .align 2
  19. $LC1:
  20. .ascii "\n"
  21. .ascii " %7.1ld%7.1ld%7.1ld%12.4e%12.4e%12.4e%12.4e%8.2f\000"
  22. .text
  23. .align 2
  24. .globl POUT
  25. .align 2
  26. .globl PA
  27. .align 2
  28. .globl P0
  29. .align 2
  30. .globl P3
  31. .rdata
  32. .align 2
  33. $LC2:
  34. .ascii "Start timing.\000"
  35. .align 2
  36. $LC13:
  37. .ascii "\n"
  38. .ascii " %g whetstones per second\n\000"
  39. .sdata
  40. .align 2
  41. $LC3:
  42. .word 0x3f001062 # 0.50024998188 (float)
  43. .align 2
  44. $LC4:
  45. .word 0x3efffcb9 # 0.499974995852 (float)
  46. .align 2
  47. $LC5:
  48. .word 0x40000000 # 2 (float)
  49. .align 2
  50. $LC6:
  51. .word 0x3f800000 # 1 (float)
  52. .align 2
  53. $LC7:
  54. .word 0xbf800000 # -1 (float)
  55. .align 2
  56. $LC8:
  57. .word 0x3f000000 # 0.5 (float)
  58. .align 3
  59. $LC9:
  60. .word 0x00000000 # 1
  61. .word 0x3ff00000
  62. .align 2
  63. $LC10:
  64. .word 0x40400000 # 3 (float)
  65. .align 2
  66. $LC11:
  67. .word 0x3f400000 # 0.75 (float)
  68. .align 3
  69. $LC12:
  70. .word 0x00000000 # 100000000
  71. .word 0x4197d784
  72. .text
  73. .align 2
  74. .globl main
  75. .comm T,4
  76. .comm T1,4
  77. .comm T2,4
  78. .comm E1,16
  79. .comm J,4
  80. .comm K,4
  81. .comm L,4
  82. .text
  83. .loc 1 20
  84. .ent second
  85. second:
  86. .frame $fp,24,$31 # vars= 0, regs= 2/0, args= 16, extra= 0
  87. .mask 0xc0000000,-4
  88. .fmask 0x00000000,0
  89. subu $sp,$sp,24
  90. sw $31,20($sp)
  91. sw $fp,16($sp)
  92. move $fp,$sp
  93. jal clock
  94. mtc1 $2,$f0
  95. #nop
  96. cvt.s.w $f0,$f0
  97. cvt.d.s $f2,$f0
  98. l.d $f4,$LC0
  99. div.d $f0,$f2,$f4
  100. cvt.s.d $f2,$f0
  101. mov.s $f0,$f2
  102. j $L1
  103. $L1:
  104. move $sp,$fp # sp not trusted here
  105. lw $31,20($sp)
  106. lw $fp,16($sp)
  107. addu $sp,$sp,24
  108. j $31
  109. .end second
  110. .loc 1 30
  111. .ent POUT
  112. POUT:
  113. .frame $fp,64,$31 # vars= 0, regs= 2/0, args= 56, extra= 0
  114. .mask 0xc0000000,-4
  115. .fmask 0x00000000,0
  116. subu $sp,$sp,64
  117. sw $31,60($sp)
  118. sw $fp,56($sp)
  119. move $fp,$sp
  120. sw $4,64($fp)
  121. sw $5,68($fp)
  122. sw $6,72($fp)
  123. sw $7,76($fp)
  124. jal second
  125. mov.s $f2,$f0
  126. cvt.d.s $f0,$f2
  127. l.s $f2,76($fp)
  128. cvt.d.s $f4,$f2
  129. s.d $f4,16($sp)
  130. l.s $f2,80($fp)
  131. cvt.d.s $f4,$f2
  132. s.d $f4,24($sp)
  133. l.s $f2,84($fp)
  134. cvt.d.s $f4,$f2
  135. s.d $f4,32($sp)
  136. l.s $f2,88($fp)
  137. cvt.d.s $f4,$f2
  138. s.d $f4,40($sp)
  139. s.d $f0,48($sp)
  140. la $4,$LC1
  141. lw $5,64($fp)
  142. lw $6,68($fp)
  143. lw $7,72($fp)
  144. jal printf
  145. $L2:
  146. move $sp,$fp # sp not trusted here
  147. lw $31,60($sp)
  148. lw $fp,56($sp)
  149. addu $sp,$sp,64
  150. j $31
  151. .end POUT
  152. .loc 1 36
  153. .ent PA
  154. PA:
  155. .frame $fp,16,$31 # vars= 8, regs= 1/0, args= 0, extra= 0
  156. .mask 0x40000000,-8
  157. .fmask 0x00000000,0
  158. subu $sp,$sp,16
  159. sw $fp,8($sp)
  160. move $fp,$sp
  161. sw $4,16($fp)
  162. sw $0,0($fp)
  163. $L4:
  164. lw $2,16($fp)
  165. lw $3,16($fp)
  166. lw $5,16($fp)
  167. addu $4,$5,4
  168. l.s $f0,0($3)
  169. l.s $f2,0($4)
  170. add.s $f0,$f0,$f2
  171. lw $4,16($fp)
  172. addu $3,$4,8
  173. l.s $f2,0($3)
  174. add.s $f0,$f0,$f2
  175. lw $4,16($fp)
  176. addu $3,$4,12
  177. l.s $f2,0($3)
  178. sub.s $f0,$f0,$f2
  179. l.s $f2,T
  180. mul.s $f0,$f0,$f2
  181. s.s $f0,0($2)
  182. lw $3,16($fp)
  183. addu $2,$3,4
  184. lw $3,16($fp)
  185. lw $5,16($fp)
  186. addu $4,$5,4
  187. l.s $f0,0($3)
  188. l.s $f2,0($4)
  189. add.s $f0,$f0,$f2
  190. lw $4,16($fp)
  191. addu $3,$4,8
  192. l.s $f2,0($3)
  193. sub.s $f0,$f0,$f2
  194. lw $4,16($fp)
  195. addu $3,$4,12
  196. l.s $f2,0($3)
  197. add.s $f0,$f0,$f2
  198. l.s $f2,T
  199. mul.s $f0,$f0,$f2
  200. s.s $f0,0($2)
  201. lw $3,16($fp)
  202. addu $2,$3,8
  203. lw $3,16($fp)
  204. lw $5,16($fp)
  205. addu $4,$5,4
  206. l.s $f0,0($3)
  207. l.s $f2,0($4)
  208. sub.s $f0,$f0,$f2
  209. lw $4,16($fp)
  210. addu $3,$4,8
  211. l.s $f2,0($3)
  212. add.s $f0,$f0,$f2
  213. lw $4,16($fp)
  214. addu $3,$4,12
  215. l.s $f2,0($3)
  216. add.s $f0,$f0,$f2
  217. l.s $f2,T
  218. mul.s $f0,$f0,$f2
  219. s.s $f0,0($2)
  220. lw $3,16($fp)
  221. addu $2,$3,12
  222. lw $3,16($fp)
  223. l.s $f2,0($3)
  224. neg.s $f0,$f2
  225. lw $4,16($fp)
  226. addu $3,$4,4
  227. l.s $f2,0($3)
  228. add.s $f0,$f0,$f2
  229. lw $4,16($fp)
  230. addu $3,$4,8
  231. l.s $f2,0($3)
  232. add.s $f0,$f0,$f2
  233. lw $4,16($fp)
  234. addu $3,$4,12
  235. l.s $f2,0($3)
  236. add.s $f0,$f0,$f2
  237. l.s $f2,T2
  238. div.s $f0,$f0,$f2
  239. s.s $f0,0($2)
  240. lw $2,0($fp)
  241. addu $3,$2,1
  242. sw $3,0($fp)
  243. $L6:
  244. lw $2,0($fp)
  245. slt $3,$2,6
  246. bne $3,$0,$L7
  247. j $L5
  248. $L7:
  249. j $L4
  250. $L5:
  251. $L3:
  252. move $sp,$fp # sp not trusted here
  253. lw $fp,8($sp)
  254. addu $sp,$sp,16
  255. j $31
  256. .end PA
  257. .loc 1 51
  258. .ent P0
  259. P0:
  260. .frame $fp,8,$31 # vars= 0, regs= 1/0, args= 0, extra= 0
  261. .mask 0x40000000,-8
  262. .fmask 0x00000000,0
  263. subu $sp,$sp,8
  264. sw $fp,0($sp)
  265. move $fp,$sp
  266. lw $2,J
  267. move $3,$2
  268. sll $2,$3,2
  269. la $3,E1-4
  270. addu $2,$2,$3
  271. lw $3,K
  272. move $4,$3
  273. sll $3,$4,2
  274. la $4,E1-4
  275. addu $3,$3,$4
  276. l.s $f0,0($3)
  277. s.s $f0,0($2)
  278. lw $2,K
  279. move $3,$2
  280. sll $2,$3,2
  281. la $3,E1-4
  282. addu $2,$2,$3
  283. lw $3,L
  284. move $4,$3
  285. sll $3,$4,2
  286. la $4,E1-4
  287. addu $3,$3,$4
  288. l.s $f0,0($3)
  289. s.s $f0,0($2)
  290. lw $2,L
  291. move $3,$2
  292. sll $2,$3,2
  293. la $3,E1-4
  294. addu $2,$2,$3
  295. lw $3,J
  296. move $4,$3
  297. sll $3,$4,2
  298. la $4,E1-4
  299. addu $3,$3,$4
  300. l.s $f0,0($3)
  301. s.s $f0,0($2)
  302. $L8:
  303. move $sp,$fp # sp not trusted here
  304. lw $fp,0($sp)
  305. addu $sp,$sp,8
  306. j $31
  307. .end P0
  308. .loc 1 58
  309. .ent P3
  310. P3:
  311. .frame $fp,16,$31 # vars= 8, regs= 1/0, args= 0, extra= 0
  312. .mask 0x40000000,-8
  313. .fmask 0x00000000,0
  314. subu $sp,$sp,16
  315. sw $fp,8($sp)
  316. move $fp,$sp
  317. sw $4,16($fp)
  318. sw $5,20($fp)
  319. sw $6,24($fp)
  320. lw $2,16($fp)
  321. l.s $f0,0($2)
  322. s.s $f0,0($fp)
  323. lw $2,20($fp)
  324. l.s $f0,0($2)
  325. s.s $f0,4($fp)
  326. l.s $f0,0($fp)
  327. l.s $f2,4($fp)
  328. add.s $f0,$f0,$f2
  329. l.s $f2,T
  330. mul.s $f0,$f2,$f0
  331. s.s $f0,0($fp)
  332. l.s $f0,0($fp)
  333. l.s $f2,4($fp)
  334. add.s $f0,$f0,$f2
  335. l.s $f2,T
  336. mul.s $f0,$f2,$f0
  337. s.s $f0,4($fp)
  338. lw $2,24($fp)
  339. l.s $f0,0($fp)
  340. l.s $f2,4($fp)
  341. add.s $f0,$f0,$f2
  342. l.s $f2,T2
  343. div.s $f0,$f0,$f2
  344. s.s $f0,0($2)
  345. $L9:
  346. move $sp,$fp # sp not trusted here
  347. lw $fp,8($sp)
  348. addu $sp,$sp,16
  349. j $31
  350. .end P3
  351. .loc 1 85
  352. .ent main
  353. main:
  354. .frame $fp,176,$31 # vars= 88, regs= 2/6, args= 32, extra= 0
  355. .mask 0xc0000000,-52
  356. .fmask 0xfff00000,-4
  357. subu $sp,$sp,176
  358. sw $31,124($sp)
  359. sw $fp,120($sp)
  360. s.d $f30,168($sp)
  361. s.d $f28,160($sp)
  362. s.d $f26,152($sp)
  363. s.d $f24,144($sp)
  364. s.d $f22,136($sp)
  365. s.d $f20,128($sp)
  366. move $fp,$sp
  367. jal __main
  368. la $4,$LC2
  369. jal printf
  370. li $2,0x0000000a # 10
  371. sw $2,60($fp)
  372. l.s $f0,$LC3
  373. s.s $f0,T1
  374. l.s $f0,$LC4
  375. s.s $f0,T
  376. l.s $f0,$LC5
  377. s.s $f0,T2
  378. lw $2,60($fp)
  379. sw $2,64($fp)
  380. sw $0,68($fp)
  381. lw $2,60($fp)
  382. move $4,$2
  383. sll $3,$4,1
  384. addu $3,$3,$2
  385. sll $2,$3,2
  386. sw $2,72($fp)
  387. lw $2,60($fp)
  388. move $4,$2
  389. sll $3,$4,3
  390. subu $3,$3,$2
  391. sll $2,$3,1
  392. sw $2,76($fp)
  393. lw $2,60($fp)
  394. move $4,$2
  395. sll $3,$4,1
  396. addu $3,$3,$2
  397. sll $4,$3,2
  398. subu $4,$4,$2
  399. sll $3,$4,3
  400. subu $3,$3,$2
  401. sll $2,$3,2
  402. sw $2,80($fp)
  403. sw $0,84($fp)
  404. lw $2,60($fp)
  405. move $4,$2
  406. sll $3,$4,3
  407. subu $3,$3,$2
  408. sll $2,$3,4
  409. subu $2,$2,$3
  410. sll $3,$2,1
  411. sw $3,88($fp)
  412. lw $2,60($fp)
  413. move $3,$2
  414. sll $2,$3,5
  415. sw $2,92($fp)
  416. lw $2,60($fp)
  417. move $4,$2
  418. sll $3,$4,3
  419. subu $3,$3,$2
  420. sll $4,$3,5
  421. addu $4,$4,$2
  422. sll $3,$4,2
  423. subu $2,$3,$2
  424. sw $2,96($fp)
  425. lw $2,60($fp)
  426. move $4,$2
  427. sll $3,$4,7
  428. addu $3,$3,$2
  429. sll $2,$3,2
  430. sw $2,100($fp)
  431. sw $0,104($fp)
  432. lw $2,60($fp)
  433. move $4,$2
  434. sll $3,$4,1
  435. addu $3,$3,$2
  436. sll $2,$3,5
  437. subu $3,$2,$3
  438. sw $3,108($fp)
  439. sw $0,112($fp)
  440. l.s $f0,$LC6
  441. s.s $f0,32($fp)
  442. l.s $f0,$LC7
  443. s.s $f0,36($fp)
  444. l.s $f0,$LC7
  445. s.s $f0,40($fp)
  446. l.s $f0,$LC7
  447. s.s $f0,44($fp)
  448. sw $0,60($fp)
  449. $L11:
  450. lw $2,60($fp)
  451. lw $3,68($fp)
  452. slt $2,$2,$3
  453. bne $2,$0,$L14
  454. j $L12
  455. $L14:
  456. l.s $f0,32($fp)
  457. l.s $f2,36($fp)
  458. add.s $f0,$f0,$f2
  459. l.s $f2,40($fp)
  460. add.s $f0,$f0,$f2
  461. l.s $f2,44($fp)
  462. sub.s $f0,$f0,$f2
  463. l.s $f2,T
  464. mul.s $f0,$f0,$f2
  465. s.s $f0,32($fp)
  466. l.s $f0,32($fp)
  467. l.s $f2,36($fp)
  468. add.s $f0,$f0,$f2
  469. l.s $f2,40($fp)
  470. sub.s $f0,$f0,$f2
  471. l.s $f2,44($fp)
  472. add.s $f0,$f0,$f2
  473. l.s $f2,T
  474. mul.s $f0,$f0,$f2
  475. s.s $f0,36($fp)
  476. l.s $f2,32($fp)
  477. neg.s $f0,$f2
  478. l.s $f2,36($fp)
  479. add.s $f0,$f0,$f2
  480. l.s $f2,40($fp)
  481. add.s $f0,$f0,$f2
  482. l.s $f2,44($fp)
  483. add.s $f0,$f0,$f2
  484. l.s $f2,T
  485. mul.s $f0,$f0,$f2
  486. s.s $f0,44($fp)
  487. l.s $f0,32($fp)
  488. l.s $f2,36($fp)
  489. sub.s $f0,$f0,$f2
  490. l.s $f2,40($fp)
  491. add.s $f0,$f0,$f2
  492. l.s $f2,44($fp)
  493. add.s $f0,$f0,$f2
  494. l.s $f2,T
  495. mul.s $f0,$f0,$f2
  496. s.s $f0,40($fp)
  497. $L13:
  498. lw $3,60($fp)
  499. addu $2,$3,1
  500. move $3,$2
  501. sw $3,60($fp)
  502. j $L11
  503. $L12:
  504. l.s $f0,36($fp)
  505. s.s $f0,16($sp)
  506. l.s $f0,40($fp)
  507. s.s $f0,20($sp)
  508. l.s $f0,44($fp)
  509. s.s $f0,24($sp)
  510. lw $4,68($fp)
  511. lw $5,68($fp)
  512. lw $6,68($fp)
  513. lw $7,32($fp)
  514. jal POUT
  515. l.s $f0,$LC6
  516. s.s $f0,E1
  517. l.s $f0,$LC7
  518. s.s $f0,E1+4
  519. l.s $f0,$LC7
  520. s.s $f0,E1+8
  521. l.s $f0,$LC7
  522. s.s $f0,E1+12
  523. sw $0,60($fp)
  524. $L15:
  525. lw $2,60($fp)
  526. lw $3,72($fp)
  527. slt $2,$2,$3
  528. bne $2,$0,$L18
  529. j $L16
  530. $L18:
  531. l.s $f0,E1
  532. l.s $f2,E1+4
  533. add.s $f0,$f0,$f2
  534. l.s $f2,E1+8
  535. add.s $f0,$f0,$f2
  536. l.s $f2,E1+12
  537. sub.s $f0,$f0,$f2
  538. l.s $f2,T
  539. mul.s $f0,$f0,$f2
  540. s.s $f0,E1
  541. l.s $f0,E1
  542. l.s $f2,E1+4
  543. add.s $f0,$f0,$f2
  544. l.s $f2,E1+8
  545. sub.s $f0,$f0,$f2
  546. l.s $f2,E1+12
  547. add.s $f0,$f0,$f2
  548. l.s $f2,T
  549. mul.s $f0,$f0,$f2
  550. s.s $f0,E1+4
  551. l.s $f0,E1
  552. l.s $f2,E1+4
  553. sub.s $f0,$f0,$f2
  554. l.s $f2,E1+8
  555. add.s $f0,$f0,$f2
  556. l.s $f2,E1+12
  557. add.s $f0,$f0,$f2
  558. l.s $f2,T
  559. mul.s $f0,$f0,$f2
  560. s.s $f0,E1+8
  561. l.s $f2,E1
  562. neg.s $f0,$f2
  563. l.s $f2,E1+4
  564. add.s $f0,$f0,$f2
  565. l.s $f2,E1+8
  566. add.s $f0,$f0,$f2
  567. l.s $f2,E1+12
  568. add.s $f0,$f0,$f2
  569. l.s $f2,T
  570. mul.s $f0,$f0,$f2
  571. s.s $f0,E1+12
  572. $L17:
  573. lw $3,60($fp)
  574. addu $2,$3,1
  575. move $3,$2
  576. sw $3,60($fp)
  577. j $L15
  578. $L16:
  579. l.s $f0,E1+4
  580. s.s $f0,16($sp)
  581. l.s $f0,E1+8
  582. s.s $f0,20($sp)
  583. l.s $f0,E1+12
  584. s.s $f0,24($sp)
  585. lw $4,72($fp)
  586. lw $5,76($fp)
  587. lw $6,72($fp)
  588. lw $7,E1
  589. jal POUT
  590. sw $0,60($fp)
  591. $L19:
  592. lw $2,60($fp)
  593. lw $3,76($fp)
  594. slt $2,$2,$3
  595. bne $2,$0,$L22
  596. j $L20
  597. $L22:
  598. la $4,E1
  599. jal PA
  600. $L21:
  601. lw $3,60($fp)
  602. addu $2,$3,1
  603. move $3,$2
  604. sw $3,60($fp)
  605. j $L19
  606. $L20:
  607. l.s $f0,E1+4
  608. s.s $f0,16($sp)
  609. l.s $f0,E1+8
  610. s.s $f0,20($sp)
  611. l.s $f0,E1+12
  612. s.s $f0,24($sp)
  613. lw $4,76($fp)
  614. lw $5,72($fp)
  615. lw $6,72($fp)
  616. lw $7,E1
  617. jal POUT
  618. li $2,0x00000001 # 1
  619. sw $2,J
  620. sw $0,60($fp)
  621. $L23:
  622. lw $2,60($fp)
  623. lw $3,80($fp)
  624. slt $2,$2,$3
  625. bne $2,$0,$L26
  626. j $L24
  627. $L26:
  628. lw $2,J
  629. li $3,0x00000001 # 1
  630. bne $2,$3,$L27
  631. li $2,0x00000002 # 2
  632. sw $2,J
  633. j $L28
  634. $L27:
  635. li $2,0x00000003 # 3
  636. sw $2,J
  637. $L28:
  638. lw $2,J
  639. slt $3,$2,2
  640. beq $3,$0,$L29
  641. sw $0,J
  642. j $L30
  643. $L29:
  644. li $2,0x00000001 # 1
  645. sw $2,J
  646. $L30:
  647. lw $2,J
  648. bgtz $2,$L31
  649. li $2,0x00000001 # 1
  650. sw $2,J
  651. j $L32
  652. $L31:
  653. sw $0,J
  654. $L32:
  655. $L25:
  656. lw $3,60($fp)
  657. addu $2,$3,1
  658. move $3,$2
  659. sw $3,60($fp)
  660. j $L23
  661. $L24:
  662. l.s $f0,36($fp)
  663. s.s $f0,16($sp)
  664. l.s $f0,40($fp)
  665. s.s $f0,20($sp)
  666. l.s $f0,44($fp)
  667. s.s $f0,24($sp)
  668. lw $4,80($fp)
  669. lw $5,J
  670. lw $6,J
  671. lw $7,32($fp)
  672. jal POUT
  673. li $2,0x00000001 # 1
  674. sw $2,J
  675. li $2,0x00000002 # 2
  676. sw $2,K
  677. li $2,0x00000003 # 3
  678. sw $2,L
  679. sw $0,60($fp)
  680. $L33:
  681. lw $2,60($fp)
  682. lw $3,88($fp)
  683. slt $2,$2,$3
  684. bne $2,$0,$L36
  685. j $L34
  686. $L36:
  687. lw $2,K
  688. lw $3,J
  689. subu $2,$2,$3
  690. lw $3,J
  691. mult $2,$3
  692. mflo $2
  693. lw $3,L
  694. lw $4,K
  695. subu $3,$3,$4
  696. mult $2,$3
  697. mflo $2
  698. sw $2,J
  699. lw $2,L
  700. lw $3,J
  701. subu $2,$2,$3
  702. lw $3,L
  703. subu $2,$3,$2
  704. lw $3,K
  705. mult $3,$2
  706. mflo $2
  707. sw $2,K
  708. lw $2,L
  709. lw $3,K
  710. subu $2,$2,$3
  711. lw $3,K
  712. lw $4,J
  713. addu $3,$3,$4
  714. mult $2,$3
  715. mflo $2
  716. sw $2,L
  717. lw $2,L
  718. move $3,$2
  719. sll $2,$3,2
  720. la $3,E1-8
  721. addu $2,$2,$3
  722. lw $3,J
  723. lw $4,K
  724. addu $3,$3,$4
  725. lw $4,L
  726. addu $3,$3,$4
  727. mtc1 $3,$f0
  728. #nop
  729. cvt.s.w $f0,$f0
  730. s.s $f0,0($2)
  731. lw $2,K
  732. move $3,$2
  733. sll $2,$3,2
  734. la $3,E1-8
  735. addu $2,$2,$3
  736. lw $3,J
  737. lw $4,K
  738. mult $3,$4
  739. mflo $3
  740. lw $4,L
  741. mult $3,$4
  742. mflo $3
  743. mtc1 $3,$f0
  744. #nop
  745. cvt.s.w $f0,$f0
  746. s.s $f0,0($2)
  747. $L35:
  748. lw $3,60($fp)
  749. addu $2,$3,1
  750. move $3,$2
  751. sw $3,60($fp)
  752. j $L33
  753. $L34:
  754. l.s $f0,E1+4
  755. s.s $f0,16($sp)
  756. l.s $f0,E1+8
  757. s.s $f0,20($sp)
  758. l.s $f0,E1+12
  759. s.s $f0,24($sp)
  760. lw $4,88($fp)
  761. lw $5,J
  762. lw $6,K
  763. lw $7,E1
  764. jal POUT
  765. l.s $f0,$LC8
  766. s.s $f0,48($fp)
  767. l.s $f0,$LC8
  768. s.s $f0,52($fp)
  769. l.s $f20,48($fp)
  770. l.s $f22,52($fp)
  771. l.s $f24,T2
  772. l.s $f26,T
  773. sw $0,60($fp)
  774. $L37:
  775. lw $2,60($fp)
  776. lw $3,92($fp)
  777. slt $2,$2,$3
  778. bne $2,$0,$L40
  779. j $L38
  780. $L40:
  781. cvt.d.s $f28,$f24
  782. cvt.d.s $f0,$f20
  783. mov.d $f12,$f0
  784. jal sin
  785. mul.d $f28,$f28,$f0
  786. cvt.d.s $f0,$f20
  787. mov.d $f12,$f0
  788. jal cos
  789. mul.d $f28,$f28,$f0
  790. add.s $f0,$f20,$f22
  791. cvt.d.s $f2,$f0
  792. mov.d $f12,$f2
  793. jal cos
  794. mov.d $f30,$f0
  795. sub.s $f0,$f20,$f22
  796. cvt.d.s $f2,$f0
  797. mov.d $f12,$f2
  798. jal cos
  799. add.d $f2,$f30,$f0
  800. l.d $f4,$LC9
  801. sub.d $f0,$f2,$f4
  802. div.d $f2,$f28,$f0
  803. mov.d $f12,$f2
  804. jal atan
  805. cvt.d.s $f2,$f26
  806. mul.d $f0,$f2,$f0
  807. cvt.s.d $f20,$f0
  808. cvt.d.s $f28,$f24
  809. cvt.d.s $f0,$f22
  810. mov.d $f12,$f0
  811. jal sin
  812. mul.d $f28,$f28,$f0
  813. cvt.d.s $f0,$f22
  814. mov.d $f12,$f0
  815. jal cos
  816. mul.d $f28,$f28,$f0
  817. add.s $f0,$f20,$f22
  818. cvt.d.s $f2,$f0
  819. mov.d $f12,$f2
  820. jal cos
  821. mov.d $f30,$f0
  822. sub.s $f0,$f20,$f22
  823. cvt.d.s $f2,$f0
  824. mov.d $f12,$f2
  825. jal cos
  826. add.d $f2,$f30,$f0
  827. l.d $f4,$LC9
  828. sub.d $f0,$f2,$f4
  829. div.d $f2,$f28,$f0
  830. mov.d $f12,$f2
  831. jal atan
  832. cvt.d.s $f2,$f26
  833. mul.d $f0,$f2,$f0
  834. cvt.s.d $f22,$f0
  835. $L39:
  836. lw $3,60($fp)
  837. addu $2,$3,1
  838. move $3,$2
  839. sw $3,60($fp)
  840. j $L37
  841. $L38:
  842. s.s $f20,48($fp)
  843. s.s $f22,52($fp)
  844. l.s $f0,48($fp)
  845. s.s $f0,16($sp)
  846. l.s $f0,52($fp)
  847. s.s $f0,20($sp)
  848. l.s $f0,52($fp)
  849. s.s $f0,24($sp)
  850. lw $4,92($fp)
  851. lw $5,J
  852. lw $6,K
  853. lw $7,48($fp)
  854. jal POUT
  855. l.s $f0,$LC6
  856. s.s $f0,48($fp)
  857. l.s $f0,$LC6
  858. s.s $f0,52($fp)
  859. l.s $f0,$LC6
  860. s.s $f0,56($fp)
  861. sw $0,60($fp)
  862. $L41:
  863. lw $2,60($fp)
  864. lw $3,96($fp)
  865. slt $2,$2,$3
  866. bne $2,$0,$L44
  867. j $L42
  868. $L44:
  869. addu $2,$fp,48
  870. addu $3,$fp,52
  871. addu $6,$fp,56
  872. move $4,$2
  873. move $5,$3
  874. jal P3
  875. $L43:
  876. lw $3,60($fp)
  877. addu $2,$3,1
  878. move $3,$2
  879. sw $3,60($fp)
  880. j $L41
  881. $L42:
  882. l.s $f0,52($fp)
  883. s.s $f0,16($sp)
  884. l.s $f0,56($fp)
  885. s.s $f0,20($sp)
  886. l.s $f0,56($fp)
  887. s.s $f0,24($sp)
  888. lw $4,96($fp)
  889. lw $5,J
  890. lw $6,K
  891. lw $7,48($fp)
  892. jal POUT
  893. li $2,0x00000001 # 1
  894. sw $2,J
  895. li $2,0x00000002 # 2
  896. sw $2,K
  897. li $2,0x00000003 # 3
  898. sw $2,L
  899. l.s $f0,$LC6
  900. s.s $f0,E1
  901. l.s $f0,$LC5
  902. s.s $f0,E1+4
  903. l.s $f0,$LC10
  904. s.s $f0,E1+8
  905. sw $0,60($fp)
  906. $L45:
  907. lw $2,60($fp)
  908. lw $3,100($fp)
  909. slt $2,$2,$3
  910. bne $2,$0,$L48
  911. j $L46
  912. $L48:
  913. jal P0
  914. $L47:
  915. lw $3,60($fp)
  916. addu $2,$3,1
  917. move $3,$2
  918. sw $3,60($fp)
  919. j $L45
  920. $L46:
  921. l.s $f0,E1+4
  922. s.s $f0,16($sp)
  923. l.s $f0,E1+8
  924. s.s $f0,20($sp)
  925. l.s $f0,E1+12
  926. s.s $f0,24($sp)
  927. lw $4,100($fp)
  928. lw $5,J
  929. lw $6,K
  930. lw $7,E1
  931. jal POUT
  932. li $2,0x00000002 # 2
  933. sw $2,J
  934. li $2,0x00000003 # 3
  935. sw $2,K
  936. sw $0,60($fp)
  937. $L49:
  938. lw $2,60($fp)
  939. lw $3,104($fp)
  940. slt $2,$2,$3
  941. bne $2,$0,$L52
  942. j $L50
  943. $L52:
  944. lw $2,J
  945. lw $3,K
  946. addu $2,$2,$3
  947. sw $2,J
  948. lw $2,K
  949. lw $3,J
  950. addu $2,$2,$3
  951. sw $2,K
  952. lw $2,J
  953. lw $3,K
  954. subu $2,$2,$3
  955. sw $2,J
  956. lw $2,J
  957. lw $3,J
  958. addu $2,$2,$3
  959. lw $3,K
  960. subu $2,$3,$2
  961. sw $2,K
  962. $L51:
  963. lw $3,60($fp)
  964. addu $2,$3,1
  965. move $3,$2
  966. sw $3,60($fp)
  967. j $L49
  968. $L50:
  969. l.s $f0,36($fp)
  970. s.s $f0,16($sp)
  971. l.s $f0,40($fp)
  972. s.s $f0,20($sp)
  973. l.s $f0,44($fp)
  974. s.s $f0,24($sp)
  975. lw $4,104($fp)
  976. lw $5,J
  977. lw $6,K
  978. lw $7,32($fp)
  979. jal POUT
  980. l.s $f0,$LC11
  981. s.s $f0,48($fp)
  982. l.s $f20,48($fp)
  983. l.s $f22,T1
  984. sw $0,60($fp)
  985. $L53:
  986. lw $2,60($fp)
  987. lw $3,108($fp)
  988. slt $2,$2,$3
  989. bne $2,$0,$L56
  990. j $L54
  991. $L56:
  992. cvt.d.s $f0,$f20
  993. mov.d $f12,$f0
  994. jal log
  995. cvt.d.s $f2,$f22
  996. div.d $f0,$f0,$f2
  997. mov.d $f12,$f0
  998. jal exp
  999. mov.d $f12,$f0
  1000. jal sqrt
  1001. cvt.s.d $f20,$f0
  1002. $L55:
  1003. lw $3,60($fp)
  1004. addu $2,$3,1
  1005. move $3,$2
  1006. sw $3,60($fp)
  1007. j $L53
  1008. $L54:
  1009. s.s $f20,48($fp)
  1010. l.s $f0,48($fp)
  1011. s.s $f0,16($sp)
  1012. l.s $f0,48($fp)
  1013. s.s $f0,20($sp)
  1014. l.s $f0,48($fp)
  1015. s.s $f0,24($sp)
  1016. lw $4,108($fp)
  1017. lw $5,J
  1018. lw $6,K
  1019. lw $7,48($fp)
  1020. jal POUT
  1021. jal second
  1022. cvt.d.s $f2,$f0
  1023. l.d $f4,$LC12
  1024. div.d $f0,$f4,$f2
  1025. la $4,$LC13
  1026. dmfc1 $6,$f0
  1027. jal printf
  1028. $L10:
  1029. move $sp,$fp # sp not trusted here
  1030. lw $31,124($sp)
  1031. lw $fp,120($sp)
  1032. l.d $f30,168($sp)
  1033. l.d $f28,160($sp)
  1034. l.d $f26,152($sp)
  1035. l.d $f24,144($sp)
  1036. l.d $f22,136($sp)
  1037. l.d $f20,128($sp)
  1038. addu $sp,$sp,176
  1039. j $31
  1040. .end main