dhrystone.s 14 KB

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