acron.s 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440
  1. .file 1 "acron.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 w
  10. .data
  11. .align 2
  12. w:
  13. .word $LC0
  14. .word $LC1
  15. .word $LC2
  16. .word $LC3
  17. .word $LC4
  18. .word $LC5
  19. .sdata
  20. .align 2
  21. $LC5:
  22. .ascii "Eephole\000"
  23. .rdata
  24. .align 2
  25. $LC4:
  26. .ascii "Peephole\000"
  27. .align 2
  28. $LC3:
  29. .ascii "Optimization\000"
  30. .align 2
  31. $LC2:
  32. .ascii "Practicum\000"
  33. .align 2
  34. $LC1:
  35. .ascii "Ertalerbouw\000"
  36. .align 2
  37. $LC0:
  38. .ascii "Vertalerbouw\000"
  39. .text
  40. .align 2
  41. .globl is_vowel
  42. .sdata
  43. .align 2
  44. $LC6:
  45. .ascii "%s\000"
  46. .align 2
  47. $LC7:
  48. .ascii " %s\000"
  49. .align 2
  50. $LC8:
  51. .ascii "\n\000"
  52. .text
  53. .align 2
  54. .globl do_perm
  55. .align 2
  56. .globl main
  57. .comm acron,12
  58. .comm command,100
  59. .comm done,24
  60. .comm pindex,28
  61. .text
  62. .loc 1 10
  63. .ent is_vowel
  64. is_vowel:
  65. .frame $fp,16,$31 # vars= 8, regs= 1/0, args= 0, extra= 0
  66. .mask 0x40000000,-8
  67. .fmask 0x00000000,0
  68. subu $sp,$sp,16
  69. sw $fp,8($sp)
  70. move $fp,$sp
  71. move $3,$4
  72. sb $3,0($fp)
  73. move $2,$0
  74. lb $4,0($fp)
  75. li $5,0x00000041 # 65
  76. beq $4,$5,$L3
  77. lb $4,0($fp)
  78. li $5,0x00000045 # 69
  79. beq $4,$5,$L3
  80. lb $4,0($fp)
  81. li $5,0x00000049 # 73
  82. beq $4,$5,$L3
  83. lb $4,0($fp)
  84. li $5,0x0000004f # 79
  85. beq $4,$5,$L3
  86. lb $4,0($fp)
  87. li $5,0x00000055 # 85
  88. beq $4,$5,$L3
  89. lb $4,0($fp)
  90. li $5,0x00000059 # 89
  91. beq $4,$5,$L3
  92. j $L2
  93. $L3:
  94. li $2,0x00000001 # 1
  95. $L2:
  96. j $L1
  97. $L1:
  98. move $sp,$fp # sp not trusted here
  99. lw $fp,8($sp)
  100. addu $sp,$sp,16
  101. j $31
  102. .end is_vowel
  103. .loc 1 15
  104. .ent do_perm
  105. do_perm:
  106. .frame $fp,56,$31 # vars= 24, regs= 4/0, args= 16, extra= 0
  107. .mask 0xc0030000,-4
  108. .fmask 0x00000000,0
  109. subu $sp,$sp,56
  110. sw $31,52($sp)
  111. sw $fp,48($sp)
  112. sw $17,44($sp)
  113. sw $16,40($sp)
  114. move $fp,$sp
  115. sw $4,56($fp)
  116. sw $5,60($fp)
  117. sw $6,64($fp)
  118. sw $7,68($fp)
  119. sw $0,24($fp)
  120. lw $2,64($fp)
  121. li $3,0x00000001 # 1
  122. bne $2,$3,$L5
  123. lw $2,pindex
  124. move $3,$2
  125. sll $2,$3,2
  126. la $3,w
  127. addu $2,$2,$3
  128. lw $3,0($2)
  129. lb $2,0($3)
  130. move $4,$2
  131. jal is_vowel
  132. bne $2,$0,$L5
  133. lw $2,56($fp)
  134. move $3,$2
  135. sll $2,$3,2
  136. la $3,w
  137. addu $2,$2,$3
  138. lw $3,0($2)
  139. lb $2,0($3)
  140. move $4,$2
  141. jal is_vowel
  142. bne $2,$0,$L5
  143. j $L4
  144. $L5:
  145. lw $2,64($fp)
  146. slt $3,$2,2
  147. bne $3,$0,$L6
  148. lw $2,64($fp)
  149. move $3,$2
  150. sll $2,$3,2
  151. la $3,pindex-8
  152. addu $2,$2,$3
  153. lw $3,0($2)
  154. move $2,$3
  155. sll $3,$2,2
  156. la $4,w
  157. addu $2,$3,$4
  158. lw $3,0($2)
  159. lb $2,0($3)
  160. move $4,$2
  161. jal is_vowel
  162. move $16,$2
  163. lw $2,64($fp)
  164. move $3,$2
  165. sll $2,$3,2
  166. la $3,pindex-4
  167. addu $2,$2,$3
  168. lw $3,0($2)
  169. move $2,$3
  170. sll $3,$2,2
  171. la $4,w
  172. addu $2,$3,$4
  173. lw $3,0($2)
  174. lb $2,0($3)
  175. move $4,$2
  176. jal is_vowel
  177. move $17,$2
  178. lw $2,56($fp)
  179. move $3,$2
  180. sll $2,$3,2
  181. la $3,w
  182. addu $2,$2,$3
  183. lw $3,0($2)
  184. lb $2,0($3)
  185. move $4,$2
  186. jal is_vowel
  187. addu $3,$16,$17
  188. addu $2,$3,$2
  189. sw $2,24($fp)
  190. lw $2,24($fp)
  191. beq $2,$0,$L8
  192. lw $2,24($fp)
  193. li $3,0x00000003 # 3
  194. beq $2,$3,$L8
  195. j $L7
  196. $L8:
  197. j $L4
  198. $L7:
  199. $L6:
  200. lw $2,64($fp)
  201. addu $3,$2,1
  202. sw $3,64($fp)
  203. sll $3,$2,2
  204. la $4,pindex
  205. addu $2,$3,$4
  206. lw $3,56($fp)
  207. sw $3,0($2)
  208. lw $2,64($fp)
  209. slt $3,$2,6
  210. beq $3,$0,$L9
  211. lw $3,68($fp)
  212. subu $2,$3,1
  213. move $3,$2
  214. sw $3,68($fp)
  215. beq $3,$0,$L9
  216. sw $0,16($fp)
  217. $L10:
  218. lw $2,16($fp)
  219. slt $3,$2,6
  220. bne $3,$0,$L13
  221. j $L11
  222. $L13:
  223. lw $2,16($fp)
  224. move $3,$2
  225. sll $2,$3,2
  226. lw $3,60($fp)
  227. addu $2,$2,$3
  228. lw $3,0($2)
  229. bne $3,$0,$L14
  230. lw $2,16($fp)
  231. move $3,$2
  232. sll $2,$3,2
  233. lw $3,60($fp)
  234. addu $2,$2,$3
  235. li $3,0x00000001 # 1
  236. sw $3,0($2)
  237. lw $4,16($fp)
  238. lw $5,60($fp)
  239. lw $6,64($fp)
  240. lw $7,68($fp)
  241. jal do_perm
  242. lw $2,16($fp)
  243. move $3,$2
  244. sll $2,$3,2
  245. lw $3,60($fp)
  246. addu $2,$2,$3
  247. sw $0,0($2)
  248. $L14:
  249. $L12:
  250. lw $3,16($fp)
  251. addu $2,$3,1
  252. move $3,$2
  253. sw $3,16($fp)
  254. j $L10
  255. $L11:
  256. j $L15
  257. $L9:
  258. sw $0,28($fp)
  259. sw $0,20($fp)
  260. $L16:
  261. lw $2,20($fp)
  262. lw $3,64($fp)
  263. slt $2,$2,$3
  264. bne $2,$0,$L19
  265. j $L17
  266. $L19:
  267. sw $0,32($fp)
  268. $L20:
  269. lw $2,20($fp)
  270. move $3,$2
  271. sll $2,$3,2
  272. la $3,pindex
  273. addu $2,$2,$3
  274. lw $3,0($2)
  275. move $2,$3
  276. sll $3,$2,2
  277. la $4,w
  278. addu $2,$3,$4
  279. lw $3,0($2)
  280. lw $4,32($fp)
  281. addu $2,$3,$4
  282. lb $3,0($2)
  283. move $4,$3
  284. jal isupper
  285. bne $2,$0,$L22
  286. j $L21
  287. $L22:
  288. lw $2,28($fp)
  289. addu $3,$2,1
  290. sw $3,28($fp)
  291. lw $3,20($fp)
  292. move $4,$3
  293. sll $3,$4,2
  294. la $4,pindex
  295. addu $3,$3,$4
  296. lw $4,0($3)
  297. move $3,$4
  298. sll $4,$3,2
  299. la $5,w
  300. addu $3,$4,$5
  301. lw $4,32($fp)
  302. addu $5,$4,1
  303. sw $5,32($fp)
  304. lw $5,0($3)
  305. addu $3,$4,$5
  306. lbu $4,0($3)
  307. sb $4,acron($2)
  308. j $L20
  309. $L21:
  310. $L18:
  311. lw $3,20($fp)
  312. addu $2,$3,1
  313. move $3,$2
  314. sw $3,20($fp)
  315. j $L16
  316. $L17:
  317. lw $2,28($fp)
  318. la $3,acron
  319. addu $2,$2,$3
  320. sb $0,0($2)
  321. la $4,$LC6
  322. la $5,acron
  323. jal printf
  324. sw $0,20($fp)
  325. $L23:
  326. lw $2,20($fp)
  327. lw $3,64($fp)
  328. slt $2,$2,$3
  329. bne $2,$0,$L26
  330. j $L24
  331. $L26:
  332. lw $2,20($fp)
  333. move $3,$2
  334. sll $2,$3,2
  335. la $3,pindex
  336. addu $2,$2,$3
  337. lw $3,0($2)
  338. move $2,$3
  339. sll $3,$2,2
  340. la $4,w
  341. addu $2,$3,$4
  342. la $4,$LC7
  343. lw $5,0($2)
  344. jal printf
  345. $L25:
  346. lw $3,20($fp)
  347. addu $2,$3,1
  348. move $3,$2
  349. sw $3,20($fp)
  350. j $L23
  351. $L24:
  352. la $4,$LC8
  353. jal printf
  354. $L15:
  355. $L4:
  356. move $sp,$fp # sp not trusted here
  357. lw $31,52($sp)
  358. lw $fp,48($sp)
  359. lw $17,44($sp)
  360. lw $16,40($sp)
  361. addu $sp,$sp,56
  362. j $31
  363. .end do_perm
  364. .loc 1 53
  365. .ent main
  366. main:
  367. .frame $fp,32,$31 # vars= 8, regs= 2/0, args= 16, extra= 0
  368. .mask 0xc0000000,-4
  369. .fmask 0x00000000,0
  370. subu $sp,$sp,32
  371. sw $31,28($sp)
  372. sw $fp,24($sp)
  373. move $fp,$sp
  374. jal __main
  375. li $2,0x00000004 # 4
  376. sw $2,20($fp)
  377. $L28:
  378. lw $2,20($fp)
  379. slt $3,$2,7
  380. bne $3,$0,$L31
  381. j $L29
  382. $L31:
  383. sw $0,16($fp)
  384. $L32:
  385. lw $2,16($fp)
  386. slt $3,$2,6
  387. bne $3,$0,$L35
  388. j $L33
  389. $L35:
  390. lw $2,16($fp)
  391. move $3,$2
  392. sll $2,$3,2
  393. la $3,done
  394. addu $2,$2,$3
  395. li $3,0x00000001 # 1
  396. sw $3,0($2)
  397. lw $4,16($fp)
  398. la $5,done
  399. move $6,$0
  400. lw $7,20($fp)
  401. jal do_perm
  402. lw $2,16($fp)
  403. move $3,$2
  404. sll $2,$3,2
  405. la $3,done
  406. addu $2,$2,$3
  407. sw $0,0($2)
  408. $L34:
  409. lw $3,16($fp)
  410. addu $2,$3,1
  411. move $3,$2
  412. sw $3,16($fp)
  413. j $L32
  414. $L33:
  415. $L30:
  416. lw $3,20($fp)
  417. addu $2,$3,1
  418. move $3,$2
  419. sw $3,20($fp)
  420. j $L28
  421. $L29:
  422. $L27:
  423. move $sp,$fp # sp not trusted here
  424. lw $31,28($sp)
  425. lw $fp,24($sp)
  426. addu $sp,$sp,32
  427. j $31
  428. .end main