dhrystone.s 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923
  1. .file 1 "dhrystone.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. .globl Version
  10. .sdata
  11. .align 2
  12. Version:
  13. .ascii "1.1\000"
  14. .text
  15. .align 2
  16. .globl main
  17. .rdata
  18. .align 2
  19. $LC0:
  20. .ascii "DHRYSTONE PROGRAM, SOME STRING\000"
  21. .align 2
  22. $LC1:
  23. .ascii "DHRYSTONE PROGRAM, 1'ST STRING\000"
  24. .align 2
  25. $LC2:
  26. .ascii "DHRYSTONE PROGRAM, 2'ND STRING\000"
  27. .align 2
  28. $LC3:
  29. .ascii "Dhrystone(%s) time for %ld passes = %ld\n\000"
  30. .align 2
  31. $LC4:
  32. .ascii "This machine benchmarks at %ld dhrystones/second\n\000"
  33. .text
  34. .align 2
  35. .globl Proc0
  36. .align 2
  37. .globl Proc1
  38. .align 2
  39. .globl Proc2
  40. .align 2
  41. .globl Proc3
  42. .align 2
  43. .globl Proc4
  44. .align 2
  45. .globl Proc5
  46. .align 2
  47. .globl Proc6
  48. .align 2
  49. .globl Proc7
  50. .align 2
  51. .globl Proc8
  52. .align 2
  53. .globl Func1
  54. .align 2
  55. .globl Func2
  56. .align 2
  57. .globl Func3
  58. .comm IntGlob,4
  59. .comm BoolGlob,4
  60. .comm Char1Glob,1
  61. .comm Char2Glob,1
  62. .comm Array1Glob,204
  63. .comm Array2Glob,10404
  64. .comm PtrGlb,4
  65. .comm PtrGlbNext,4
  66. .text
  67. .loc 1 414
  68. .ent main
  69. main:
  70. .frame $fp,24,$31 # vars= 0, regs= 2/0, args= 16, extra= 0
  71. .mask 0xc0000000,-4
  72. .fmask 0x00000000,0
  73. subu $sp,$sp,24
  74. sw $31,20($sp)
  75. sw $fp,16($sp)
  76. move $fp,$sp
  77. jal __main
  78. jal Proc0
  79. move $4,$0
  80. jal exit
  81. $L1:
  82. move $sp,$fp # sp not trusted here
  83. lw $31,20($sp)
  84. lw $fp,16($sp)
  85. addu $sp,$sp,24
  86. j $31
  87. .end main
  88. .loc 1 432
  89. .ent Proc0
  90. Proc0:
  91. .frame $fp,152,$31 # vars= 120, regs= 3/0, args= 16, extra= 0
  92. .mask 0xc0010000,-8
  93. .fmask 0x00000000,0
  94. subu $sp,$sp,152
  95. sw $31,144($sp)
  96. sw $fp,140($sp)
  97. sw $16,136($sp)
  98. move $fp,$sp
  99. addu $2,$fp,120
  100. move $4,$2
  101. jal times
  102. lw $2,120($fp)
  103. sw $2,104($fp)
  104. move $16,$0
  105. $L3:
  106. sltu $2,$16,5000
  107. bne $2,$0,$L6
  108. j $L4
  109. $L6:
  110. $L5:
  111. addu $16,$16,1
  112. j $L3
  113. $L4:
  114. addu $2,$fp,120
  115. move $4,$2
  116. jal times
  117. lw $2,120($fp)
  118. lw $3,104($fp)
  119. subu $2,$2,$3
  120. sw $2,112($fp)
  121. li $4,0x00000030 # 48
  122. jal malloc
  123. sw $2,PtrGlbNext
  124. li $4,0x00000030 # 48
  125. jal malloc
  126. sw $2,PtrGlb
  127. lw $2,PtrGlb
  128. lw $3,PtrGlbNext
  129. sw $3,0($2)
  130. lw $2,PtrGlb
  131. sw $0,4($2)
  132. lw $2,PtrGlb
  133. li $3,0x00000002 # 2
  134. sw $3,8($2)
  135. lw $2,PtrGlb
  136. li $3,0x00000028 # 40
  137. sw $3,12($2)
  138. lw $3,PtrGlb
  139. addu $2,$3,16
  140. move $4,$2
  141. la $5,$LC0
  142. jal strcpy
  143. addu $2,$fp,40
  144. move $4,$2
  145. la $5,$LC1
  146. jal strcpy
  147. li $2,0x0000000a # 10
  148. sw $2,Array2Glob+1660
  149. addu $2,$fp,120
  150. move $4,$2
  151. jal times
  152. lw $2,120($fp)
  153. sw $2,104($fp)
  154. move $16,$0
  155. $L7:
  156. sltu $2,$16,5000
  157. bne $2,$0,$L10
  158. j $L8
  159. $L10:
  160. jal Proc5
  161. jal Proc4
  162. li $2,0x00000002 # 2
  163. sw $2,16($fp)
  164. li $2,0x00000003 # 3
  165. sw $2,20($fp)
  166. addu $2,$fp,72
  167. move $4,$2
  168. la $5,$LC2
  169. jal strcpy
  170. li $2,0x00000001 # 1
  171. sw $2,32($fp)
  172. addu $2,$fp,40
  173. addu $3,$fp,72
  174. move $4,$2
  175. move $5,$3
  176. jal Func2
  177. xori $3,$2,0x0000
  178. sltu $2,$3,1
  179. sw $2,BoolGlob
  180. $L11:
  181. lw $2,16($fp)
  182. lw $3,20($fp)
  183. slt $2,$2,$3
  184. bne $2,$0,$L13
  185. j $L12
  186. $L13:
  187. lw $2,16($fp)
  188. move $4,$2
  189. sll $3,$4,2
  190. addu $3,$3,$2
  191. lw $2,20($fp)
  192. subu $3,$3,$2
  193. sw $3,24($fp)
  194. addu $2,$fp,24
  195. lw $4,16($fp)
  196. lw $5,20($fp)
  197. move $6,$2
  198. jal Proc7
  199. lw $3,16($fp)
  200. addu $2,$3,1
  201. move $3,$2
  202. sw $3,16($fp)
  203. j $L11
  204. $L12:
  205. la $4,Array1Glob
  206. la $5,Array2Glob
  207. lw $6,16($fp)
  208. lw $7,24($fp)
  209. jal Proc8
  210. lw $4,PtrGlb
  211. jal Proc1
  212. li $2,0x00000041 # 65
  213. sb $2,29($fp)
  214. $L14:
  215. lb $2,29($fp)
  216. lb $3,Char2Glob
  217. slt $2,$3,$2
  218. beq $2,$0,$L17
  219. j $L15
  220. $L17:
  221. lb $2,29($fp)
  222. move $4,$2
  223. li $5,0x00000043 # 67
  224. jal Func1
  225. lw $3,32($fp)
  226. bne $3,$2,$L18
  227. addu $2,$fp,32
  228. move $4,$0
  229. move $5,$2
  230. jal Proc6
  231. $L18:
  232. $L16:
  233. lbu $2,29($fp)
  234. addu $3,$2,1
  235. move $2,$3
  236. sb $2,29($fp)
  237. j $L14
  238. $L15:
  239. lw $2,20($fp)
  240. lw $3,16($fp)
  241. mult $2,$3
  242. mflo $2
  243. sw $2,24($fp)
  244. lw $2,24($fp)
  245. lw $3,16($fp)
  246. div $2,$2,$3
  247. sw $2,20($fp)
  248. lw $2,24($fp)
  249. lw $3,20($fp)
  250. subu $2,$2,$3
  251. move $4,$2
  252. sll $3,$4,3
  253. subu $3,$3,$2
  254. lw $2,16($fp)
  255. subu $3,$3,$2
  256. sw $3,20($fp)
  257. addu $4,$fp,16
  258. jal Proc2
  259. $L9:
  260. addu $16,$16,1
  261. j $L7
  262. $L8:
  263. addu $2,$fp,120
  264. move $4,$2
  265. jal times
  266. lw $2,120($fp)
  267. lw $3,104($fp)
  268. subu $2,$2,$3
  269. lw $3,112($fp)
  270. subu $2,$2,$3
  271. sw $2,108($fp)
  272. lw $2,108($fp)
  273. li $6,0x51eb851f # 1374389535
  274. mult $2,$6
  275. mfhi $5
  276. mflo $4
  277. srl $6,$5,0
  278. move $7,$0
  279. sra $3,$6,5
  280. sra $4,$2,31
  281. subu $2,$3,$4
  282. la $4,$LC3
  283. la $5,Version
  284. li $6,0x00001388 # 5000
  285. move $7,$2
  286. jal printf
  287. li $2,0x0007a120 # 500000
  288. lw $3,108($fp)
  289. div $2,$2,$3
  290. la $4,$LC4
  291. move $5,$2
  292. jal printf
  293. $L2:
  294. move $sp,$fp # sp not trusted here
  295. lw $31,144($sp)
  296. lw $fp,140($sp)
  297. lw $16,136($sp)
  298. addu $sp,$sp,152
  299. j $31
  300. .end Proc0
  301. .loc 1 540
  302. .ent Proc1
  303. Proc1:
  304. .frame $fp,24,$31 # vars= 0, regs= 2/0, args= 16, extra= 0
  305. .mask 0xc0000000,-4
  306. .fmask 0x00000000,0
  307. subu $sp,$sp,24
  308. sw $31,20($sp)
  309. sw $fp,16($sp)
  310. move $fp,$sp
  311. sw $4,24($fp)
  312. lw $2,24($fp)
  313. lw $3,0($2)
  314. lw $2,PtrGlb
  315. move $4,$3
  316. move $5,$2
  317. li $6,0x00000030 # 48
  318. jal memcpy
  319. lw $2,24($fp)
  320. li $3,0x00000005 # 5
  321. sw $3,12($2)
  322. lw $3,24($fp)
  323. lw $2,0($3)
  324. lw $3,24($fp)
  325. lw $4,12($3)
  326. sw $4,12($2)
  327. lw $3,24($fp)
  328. lw $2,0($3)
  329. lw $3,24($fp)
  330. lw $4,0($3)
  331. sw $4,0($2)
  332. lw $2,24($fp)
  333. lw $3,0($2)
  334. lw $4,0($3)
  335. jal Proc3
  336. lw $2,24($fp)
  337. lw $3,0($2)
  338. lw $2,4($3)
  339. bne $2,$0,$L20
  340. lw $2,24($fp)
  341. lw $3,0($2)
  342. li $2,0x00000006 # 6
  343. sw $2,12($3)
  344. lw $2,24($fp)
  345. lw $3,24($fp)
  346. lw $4,0($3)
  347. addu $3,$4,8
  348. lw $4,8($2)
  349. move $5,$3
  350. jal Proc6
  351. lw $3,24($fp)
  352. lw $2,0($3)
  353. lw $3,PtrGlb
  354. lw $4,0($3)
  355. sw $4,0($2)
  356. lw $3,24($fp)
  357. lw $2,0($3)
  358. lw $3,24($fp)
  359. lw $4,0($3)
  360. addu $3,$4,12
  361. lw $4,12($2)
  362. li $5,0x0000000a # 10
  363. move $6,$3
  364. jal Proc7
  365. j $L21
  366. $L20:
  367. lw $2,24($fp)
  368. lw $3,24($fp)
  369. lw $4,0($3)
  370. move $3,$4
  371. move $4,$2
  372. move $5,$3
  373. li $6,0x00000030 # 48
  374. jal memcpy
  375. $L21:
  376. $L19:
  377. move $sp,$fp # sp not trusted here
  378. lw $31,20($sp)
  379. lw $fp,16($sp)
  380. addu $sp,$sp,24
  381. j $31
  382. .end Proc1
  383. .loc 1 563
  384. .ent Proc2
  385. Proc2:
  386. .frame $fp,16,$31 # vars= 8, regs= 1/0, args= 0, extra= 0
  387. .mask 0x40000000,-8
  388. .fmask 0x00000000,0
  389. subu $sp,$sp,16
  390. sw $fp,8($sp)
  391. move $fp,$sp
  392. sw $4,16($fp)
  393. lw $2,16($fp)
  394. lw $3,0($2)
  395. addu $2,$3,10
  396. sw $2,0($fp)
  397. $L23:
  398. lb $2,Char1Glob
  399. li $3,0x00000041 # 65
  400. bne $2,$3,$L26
  401. lw $3,0($fp)
  402. subu $2,$3,1
  403. move $3,$2
  404. sw $3,0($fp)
  405. lw $2,16($fp)
  406. lw $3,0($fp)
  407. lw $4,IntGlob
  408. subu $3,$3,$4
  409. sw $3,0($2)
  410. sw $0,4($fp)
  411. $L26:
  412. lw $2,4($fp)
  413. bne $2,$0,$L27
  414. j $L24
  415. $L27:
  416. $L25:
  417. j $L23
  418. $L24:
  419. $L22:
  420. move $sp,$fp # sp not trusted here
  421. lw $fp,8($sp)
  422. addu $sp,$sp,16
  423. j $31
  424. .end Proc2
  425. .loc 1 583
  426. .ent Proc3
  427. Proc3:
  428. .frame $fp,24,$31 # vars= 0, regs= 2/0, args= 16, extra= 0
  429. .mask 0xc0000000,-4
  430. .fmask 0x00000000,0
  431. subu $sp,$sp,24
  432. sw $31,20($sp)
  433. sw $fp,16($sp)
  434. move $fp,$sp
  435. sw $4,24($fp)
  436. lw $2,PtrGlb
  437. beq $2,$0,$L29
  438. lw $2,24($fp)
  439. lw $3,PtrGlb
  440. lw $4,0($3)
  441. sw $4,0($2)
  442. j $L30
  443. $L29:
  444. li $2,0x00000064 # 100
  445. sw $2,IntGlob
  446. $L30:
  447. lw $3,PtrGlb
  448. addu $2,$3,12
  449. li $4,0x0000000a # 10
  450. lw $5,IntGlob
  451. move $6,$2
  452. jal Proc7
  453. $L28:
  454. move $sp,$fp # sp not trusted here
  455. lw $31,20($sp)
  456. lw $fp,16($sp)
  457. addu $sp,$sp,24
  458. j $31
  459. .end Proc3
  460. .loc 1 593
  461. .ent Proc4
  462. Proc4:
  463. .frame $fp,16,$31 # vars= 8, regs= 1/0, args= 0, extra= 0
  464. .mask 0x40000000,-8
  465. .fmask 0x00000000,0
  466. subu $sp,$sp,16
  467. sw $fp,8($sp)
  468. move $fp,$sp
  469. lb $2,Char1Glob
  470. xori $3,$2,0x0041
  471. sltu $2,$3,1
  472. sw $2,0($fp)
  473. lw $2,0($fp)
  474. lw $3,BoolGlob
  475. or $2,$2,$3
  476. sw $2,0($fp)
  477. li $2,0x00000042 # 66
  478. sb $2,Char2Glob
  479. $L31:
  480. move $sp,$fp # sp not trusted here
  481. lw $fp,8($sp)
  482. addu $sp,$sp,16
  483. j $31
  484. .end Proc4
  485. .loc 1 602
  486. .ent Proc5
  487. Proc5:
  488. .frame $fp,8,$31 # vars= 0, regs= 1/0, args= 0, extra= 0
  489. .mask 0x40000000,-8
  490. .fmask 0x00000000,0
  491. subu $sp,$sp,8
  492. sw $fp,0($sp)
  493. move $fp,$sp
  494. li $2,0x00000041 # 65
  495. sb $2,Char1Glob
  496. sw $0,BoolGlob
  497. $L32:
  498. move $sp,$fp # sp not trusted here
  499. lw $fp,0($sp)
  500. addu $sp,$sp,8
  501. j $31
  502. .end Proc5
  503. .loc 1 610
  504. .ent Proc6
  505. Proc6:
  506. .frame $fp,24,$31 # vars= 0, regs= 2/0, args= 16, extra= 0
  507. .mask 0xc0000000,-4
  508. .fmask 0x00000000,0
  509. subu $sp,$sp,24
  510. sw $31,20($sp)
  511. sw $fp,16($sp)
  512. move $fp,$sp
  513. sw $4,24($fp)
  514. sw $5,28($fp)
  515. lw $2,28($fp)
  516. lw $3,24($fp)
  517. sw $3,0($2)
  518. lw $4,24($fp)
  519. jal Func3
  520. bne $2,$0,$L34
  521. lw $2,28($fp)
  522. li $3,0x00000003 # 3
  523. sw $3,0($2)
  524. $L34:
  525. lw $2,24($fp)
  526. sltu $3,$2,5
  527. beq $3,$0,$L44
  528. lw $2,24($fp)
  529. move $3,$2
  530. sll $2,$3,2
  531. la $3,$L43
  532. addu $2,$2,$3
  533. lw $3,0($2)
  534. j $3
  535. .rdata
  536. .align 3
  537. .align 2
  538. $L43:
  539. .word $L36
  540. .word $L37
  541. .word $L40
  542. .word $L41
  543. .word $L42
  544. .text
  545. $L36:
  546. lw $2,28($fp)
  547. sw $0,0($2)
  548. j $L35
  549. $L37:
  550. lw $2,IntGlob
  551. slt $3,$2,101
  552. bne $3,$0,$L38
  553. lw $2,28($fp)
  554. sw $0,0($2)
  555. j $L39
  556. $L38:
  557. lw $2,28($fp)
  558. li $3,0x00000003 # 3
  559. sw $3,0($2)
  560. $L39:
  561. j $L35
  562. $L40:
  563. lw $2,28($fp)
  564. li $3,0x00000001 # 1
  565. sw $3,0($2)
  566. j $L35
  567. $L41:
  568. j $L35
  569. $L42:
  570. lw $2,28($fp)
  571. li $3,0x00000002 # 2
  572. sw $3,0($2)
  573. $L44:
  574. $L35:
  575. $L33:
  576. move $sp,$fp # sp not trusted here
  577. lw $31,20($sp)
  578. lw $fp,16($sp)
  579. addu $sp,$sp,24
  580. j $31
  581. .end Proc6
  582. .loc 1 629
  583. .ent Proc7
  584. Proc7:
  585. .frame $fp,16,$31 # vars= 8, regs= 1/0, args= 0, extra= 0
  586. .mask 0x40000000,-8
  587. .fmask 0x00000000,0
  588. subu $sp,$sp,16
  589. sw $fp,8($sp)
  590. move $fp,$sp
  591. sw $4,16($fp)
  592. sw $5,20($fp)
  593. sw $6,24($fp)
  594. lw $2,16($fp)
  595. addu $3,$2,2
  596. sw $3,0($fp)
  597. lw $2,24($fp)
  598. lw $3,20($fp)
  599. lw $4,0($fp)
  600. addu $3,$3,$4
  601. sw $3,0($2)
  602. $L45:
  603. move $sp,$fp # sp not trusted here
  604. lw $fp,8($sp)
  605. addu $sp,$sp,16
  606. j $31
  607. .end Proc7
  608. .loc 1 640
  609. .ent Proc8
  610. Proc8:
  611. .frame $fp,16,$31 # vars= 8, regs= 1/0, args= 0, extra= 0
  612. .mask 0x40000000,-8
  613. .fmask 0x00000000,0
  614. subu $sp,$sp,16
  615. sw $fp,8($sp)
  616. move $fp,$sp
  617. sw $4,16($fp)
  618. sw $5,20($fp)
  619. sw $6,24($fp)
  620. sw $7,28($fp)
  621. lw $2,24($fp)
  622. addu $3,$2,5
  623. sw $3,0($fp)
  624. lw $2,0($fp)
  625. move $3,$2
  626. sll $2,$3,2
  627. lw $3,16($fp)
  628. addu $2,$2,$3
  629. lw $3,28($fp)
  630. sw $3,0($2)
  631. lw $2,0($fp)
  632. move $3,$2
  633. sll $2,$3,2
  634. lw $4,16($fp)
  635. addu $3,$2,$4
  636. addu $2,$3,4
  637. lw $3,0($fp)
  638. move $4,$3
  639. sll $3,$4,2
  640. lw $4,16($fp)
  641. addu $3,$3,$4
  642. lw $4,0($3)
  643. sw $4,0($2)
  644. lw $2,0($fp)
  645. move $3,$2
  646. sll $2,$3,2
  647. lw $3,16($fp)
  648. addu $2,$2,$3
  649. addu $3,$2,120
  650. lw $2,0($fp)
  651. sw $2,0($3)
  652. lw $2,0($fp)
  653. sw $2,4($fp)
  654. $L47:
  655. lw $3,0($fp)
  656. addu $2,$3,1
  657. lw $3,4($fp)
  658. slt $2,$2,$3
  659. beq $2,$0,$L50
  660. j $L48
  661. $L50:
  662. lw $3,0($fp)
  663. lw $2,4($fp)
  664. move $4,$2
  665. sll $2,$4,2
  666. move $5,$3
  667. sll $4,$5,1
  668. addu $4,$4,$3
  669. sll $3,$4,4
  670. addu $4,$4,$3
  671. sll $3,$4,2
  672. lw $4,20($fp)
  673. addu $3,$3,$4
  674. addu $2,$2,$3
  675. lw $3,0($fp)
  676. sw $3,0($2)
  677. $L49:
  678. lw $3,4($fp)
  679. addu $2,$3,1
  680. move $3,$2
  681. sw $3,4($fp)
  682. j $L47
  683. $L48:
  684. lw $3,0($fp)
  685. lw $2,0($fp)
  686. move $4,$2
  687. sll $2,$4,2
  688. move $5,$3
  689. sll $4,$5,1
  690. addu $4,$4,$3
  691. sll $3,$4,4
  692. addu $4,$4,$3
  693. sll $3,$4,2
  694. lw $4,20($fp)
  695. addu $3,$3,$4
  696. addu $4,$2,$3
  697. subu $2,$4,4
  698. lw $3,0($fp)
  699. lw $2,0($fp)
  700. move $4,$2
  701. sll $2,$4,2
  702. move $5,$3
  703. sll $4,$5,1
  704. addu $4,$4,$3
  705. sll $3,$4,4
  706. addu $4,$4,$3
  707. sll $3,$4,2
  708. lw $4,20($fp)
  709. addu $3,$3,$4
  710. addu $4,$2,$3
  711. subu $2,$4,4
  712. lw $4,0($fp)
  713. lw $3,0($fp)
  714. move $5,$3
  715. sll $3,$5,2
  716. move $6,$4
  717. sll $5,$6,1
  718. addu $5,$5,$4
  719. sll $4,$5,4
  720. addu $5,$5,$4
  721. sll $4,$5,2
  722. lw $5,20($fp)
  723. addu $4,$4,$5
  724. addu $3,$3,$4
  725. subu $4,$3,4
  726. lw $5,0($4)
  727. addu $3,$5,1
  728. move $4,$3
  729. sw $4,0($2)
  730. lw $3,0($fp)
  731. lw $2,0($fp)
  732. move $4,$2
  733. sll $2,$4,2
  734. move $5,$3
  735. sll $4,$5,1
  736. addu $4,$4,$3
  737. sll $3,$4,4
  738. addu $4,$4,$3
  739. sll $3,$4,2
  740. lw $4,20($fp)
  741. addu $3,$3,$4
  742. addu $4,$2,$3
  743. addu $2,$4,4080
  744. lw $3,0($fp)
  745. move $4,$3
  746. sll $3,$4,2
  747. lw $4,16($fp)
  748. addu $3,$3,$4
  749. lw $4,0($3)
  750. sw $4,0($2)
  751. li $2,0x00000005 # 5
  752. sw $2,IntGlob
  753. $L46:
  754. move $sp,$fp # sp not trusted here
  755. lw $fp,8($sp)
  756. addu $sp,$sp,16
  757. j $31
  758. .end Proc8
  759. .loc 1 660
  760. .ent Func1
  761. Func1:
  762. .frame $fp,16,$31 # vars= 8, regs= 1/0, args= 0, extra= 0
  763. .mask 0x40000000,-8
  764. .fmask 0x00000000,0
  765. subu $sp,$sp,16
  766. sw $fp,8($sp)
  767. move $fp,$sp
  768. move $3,$4
  769. move $4,$5
  770. sb $3,0($fp)
  771. sb $4,1($fp)
  772. lbu $2,0($fp)
  773. sb $2,2($fp)
  774. lbu $2,2($fp)
  775. sb $2,3($fp)
  776. lb $2,3($fp)
  777. lb $5,1($fp)
  778. beq $2,$5,$L52
  779. move $2,$0
  780. j $L51
  781. j $L53
  782. $L52:
  783. li $2,0x00000001 # 1
  784. j $L51
  785. $L53:
  786. $L51:
  787. move $sp,$fp # sp not trusted here
  788. lw $fp,8($sp)
  789. addu $sp,$sp,16
  790. j $31
  791. .end Func1
  792. .loc 1 675
  793. .ent Func2
  794. Func2:
  795. .frame $fp,32,$31 # vars= 8, regs= 2/0, args= 16, extra= 0
  796. .mask 0xc0000000,-4
  797. .fmask 0x00000000,0
  798. subu $sp,$sp,32
  799. sw $31,28($sp)
  800. sw $fp,24($sp)
  801. move $fp,$sp
  802. sw $4,32($fp)
  803. sw $5,36($fp)
  804. li $2,0x00000001 # 1
  805. sw $2,16($fp)
  806. $L55:
  807. lw $2,16($fp)
  808. slt $3,$2,2
  809. bne $3,$0,$L57
  810. j $L56
  811. $L57:
  812. lw $2,32($fp)
  813. lw $4,16($fp)
  814. addu $3,$2,$4
  815. lb $2,0($3)
  816. lw $3,16($fp)
  817. lw $4,36($fp)
  818. addu $3,$3,$4
  819. addu $4,$3,1
  820. lb $3,0($4)
  821. move $4,$2
  822. move $5,$3
  823. jal Func1
  824. bne $2,$0,$L58
  825. li $2,0x00000041 # 65
  826. sb $2,20($fp)
  827. lw $3,16($fp)
  828. addu $2,$3,1
  829. move $3,$2
  830. sw $3,16($fp)
  831. $L58:
  832. j $L55
  833. $L56:
  834. lb $2,20($fp)
  835. slt $3,$2,87
  836. bne $3,$0,$L59
  837. lb $2,20($fp)
  838. slt $3,$2,91
  839. beq $3,$0,$L59
  840. li $2,0x00000007 # 7
  841. sw $2,16($fp)
  842. $L59:
  843. lb $2,20($fp)
  844. li $3,0x00000058 # 88
  845. bne $2,$3,$L60
  846. li $2,0x00000001 # 1
  847. j $L54
  848. j $L61
  849. $L60:
  850. lw $4,32($fp)
  851. lw $5,36($fp)
  852. jal strcmp
  853. blez $2,$L62
  854. lw $2,16($fp)
  855. addu $3,$2,7
  856. sw $3,16($fp)
  857. li $2,0x00000001 # 1
  858. j $L54
  859. j $L63
  860. $L62:
  861. move $2,$0
  862. j $L54
  863. $L63:
  864. $L61:
  865. $L54:
  866. move $sp,$fp # sp not trusted here
  867. lw $31,28($sp)
  868. lw $fp,24($sp)
  869. addu $sp,$sp,32
  870. j $31
  871. .end Func2
  872. .loc 1 705
  873. .ent Func3
  874. Func3:
  875. .frame $fp,16,$31 # vars= 8, regs= 1/0, args= 0, extra= 0
  876. .mask 0x40000000,-8
  877. .fmask 0x00000000,0
  878. subu $sp,$sp,16
  879. sw $fp,8($sp)
  880. move $fp,$sp
  881. sw $4,16($fp)
  882. lw $2,16($fp)
  883. sw $2,0($fp)
  884. lw $2,0($fp)
  885. li $3,0x00000002 # 2
  886. bne $2,$3,$L65
  887. li $2,0x00000001 # 1
  888. j $L64
  889. $L65:
  890. move $2,$0
  891. j $L64
  892. $L64:
  893. move $sp,$fp # sp not trusted here
  894. lw $fp,8($sp)
  895. addu $sp,$sp,16
  896. j $31
  897. .end Func3