stdarg.sbk 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377
  1. .section ".data"
  2. .global x
  3. .type x,#object
  4. .size x,16
  5. .align 4
  6. x:
  7. .word 0x1
  8. .word 0x2
  9. .word 0x3
  10. .word 0x4
  11. .global main
  12. .section ".text"
  13. .align 4
  14. main:
  15. save %sp,-192,%sp
  16. set .L2,%o0
  17. call print; nop
  18. set .L3,%o0
  19. set .L4,%o1
  20. call print; nop
  21. set .L5,%o0
  22. set 3,%o1
  23. set 10,%o2
  24. call print; nop
  25. set .L6,%o0
  26. set .L7,%o1
  27. set .L8,%o2
  28. set 4,%o3
  29. set 10,%o4
  30. call print; nop
  31. set .L9,%o0
  32. set .L7,%o1
  33. set .L8,%o2
  34. set .L10,%i5
  35. ld2 [%i5],%f30
  36. st %f30,[%sp+4*3+68]
  37. st %f31,[%sp+4*4+68]
  38. ld [%sp+4*3+68],%o3
  39. ld [%sp+4*4+68],%o4
  40. set 10,%o5
  41. call print; nop
  42. set .L11,%o0
  43. set x,%i5
  44. add -16,%fp,%i4
  45. ld [%r29+0],%r1
  46. ld [%r29+4],%r2
  47. st %r1,[%r28+0]
  48. st %r2,[%r28+4]
  49. ld [%r29+8],%r1
  50. ld [%r29+12],%r2
  51. st %r1,[%r28+8]
  52. st %r2,[%r28+12]
  53. add -16,%fp,%o1
  54. add -32,%fp,%i4
  55. ld [%r29+0],%r1
  56. ld [%r29+4],%r2
  57. st %r1,[%r28+0]
  58. st %r2,[%r28+4]
  59. ld [%r29+8],%r1
  60. ld [%r29+12],%r2
  61. st %r1,[%r28+8]
  62. st %r2,[%r28+12]
  63. add -32,%fp,%o2
  64. add -48,%fp,%i4
  65. ld [%r29+0],%r1
  66. ld [%r29+4],%r2
  67. st %r1,[%r28+0]
  68. st %r2,[%r28+4]
  69. ld [%r29+8],%r1
  70. ld [%r29+12],%r2
  71. st %r1,[%r28+8]
  72. st %r2,[%r28+12]
  73. add -48,%fp,%o3
  74. add -64,%fp,%i4
  75. ld [%r29+0],%r1
  76. ld [%r29+4],%r2
  77. st %r1,[%r28+0]
  78. st %r2,[%r28+4]
  79. ld [%r29+8],%r1
  80. ld [%r29+12],%r2
  81. st %r1,[%r28+8]
  82. st %r2,[%r28+12]
  83. add -64,%fp,%o4
  84. add -80,%fp,%i4
  85. ld [%r29+0],%r1
  86. ld [%r29+4],%r2
  87. st %r1,[%r28+0]
  88. st %r2,[%r28+4]
  89. ld [%r29+8],%r1
  90. ld [%r29+12],%r2
  91. st %r1,[%r28+8]
  92. st %r2,[%r28+12]
  93. add -80,%fp,%o5
  94. add -96,%fp,%i4
  95. ld [%r29+0],%r1
  96. ld [%r29+4],%r2
  97. st %r1,[%r28+0]
  98. st %r2,[%r28+4]
  99. ld [%r29+8],%r1
  100. ld [%r29+12],%r2
  101. st %r1,[%r28+8]
  102. st %r2,[%r28+12]
  103. add -96,%fp,%i5
  104. st %i5,[%sp+4*6+68]
  105. call print; nop
  106. mov %g0,%i0
  107. .L1:
  108. ret; restore
  109. .type main,#function
  110. .size main,.-main
  111. .global print
  112. .align 4
  113. print:
  114. save %sp,-112,%sp
  115. st %i1,[%fp+72]
  116. st %i2,[%fp+76]
  117. st %i3,[%fp+80]
  118. st %i4,[%fp+84]
  119. st %i5,[%fp+88]
  120. st %i0,[%fp+68]
  121. add 72,%fp,%i5
  122. ba .L18; nop
  123. .L15:
  124. ld [%fp+68],%i4
  125. ldsb [%i4],%i4
  126. cmp %i4,37; bne .L19; nop
  127. ld [%fp+68],%i3
  128. add %i3,1,%i3
  129. st %i3,[%fp+68]
  130. ldsb [%i3],%i4
  131. cmp %i4,115; be .L35; nop
  132. cmp %i4,115; bg .L40; nop
  133. .L39:
  134. cmp %i4,98; bl .L21; nop
  135. cmp %i4,102; bg .L21; nop
  136. sll %i4,2,%i3
  137. set .L41-392,%i2
  138. ld [%i3+%i2],%i3
  139. jmp %i3; nop
  140. .section ".rodata"
  141. .align 4
  142. .L41:
  143. .word .L24
  144. .word .L29
  145. .word .L31
  146. .word .L21
  147. .word .L37
  148. .section ".text"
  149. .L40:
  150. cmp %i4,119; be .L33; nop
  151. ba .L21; nop
  152. .L24:
  153. add %i5,4,%i3
  154. mov %i3,%i5
  155. add -16,%fp,%i2
  156. ld [%i3+-4],%i3
  157. ld [%r27+0],%r1
  158. ld [%r27+4],%r2
  159. st %r1,[%r26+0]
  160. st %r2,[%r26+4]
  161. ld [%r27+8],%r1
  162. ld [%r27+12],%r2
  163. st %r1,[%r26+8]
  164. st %r2,[%r26+12]
  165. set .L25,%o0
  166. ld [%fp+-16],%o1
  167. ld [%fp+-12],%o2
  168. ld [%fp+-8],%o3
  169. ld [%fp+-4],%o4
  170. call printf; nop
  171. ba .L20; nop
  172. .L29:
  173. set .L30,%o0
  174. add %i5,4,%i3
  175. mov %i3,%i5
  176. ldsb [%i3+-1],%o1
  177. call printf; nop
  178. ba .L20; nop
  179. .L31:
  180. set .L32,%o0
  181. set 4,%i3
  182. add %i5,%i3,%i3
  183. mov %i3,%i5
  184. ld [%i3+-4],%o1
  185. call printf; nop
  186. ba .L20; nop
  187. .L33:
  188. set .L34,%o0
  189. add %i5,4,%i3
  190. mov %i3,%i5
  191. ldsh [%i3+-2],%o1
  192. call printf; nop
  193. ba .L20; nop
  194. .L35:
  195. set .L36,%o0
  196. set 4,%i3
  197. add %i5,%i3,%i3
  198. mov %i3,%i5
  199. ld [%i3+-4],%o1
  200. call printf; nop
  201. ba .L20; nop
  202. .L37:
  203. set .L38,%o0
  204. set 8,%i3
  205. add %i5,%i3,%i3
  206. mov %i3,%i5
  207. ld2 [%i3+-8],%f30
  208. st %f30,[%sp+4*1+68]
  209. st %f31,[%sp+4*2+68]
  210. ld [%sp+4*1+68],%o1
  211. ld [%sp+4*2+68],%o2
  212. call printf; nop
  213. ba .L20; nop
  214. .L21:
  215. set .L30,%o0
  216. ld [%fp+68],%i3
  217. ldsb [%i3],%o1
  218. call printf; nop
  219. ba .L20; nop
  220. .L19:
  221. set .L30,%o0
  222. ld [%fp+68],%i3
  223. ldsb [%i3],%o1
  224. call printf; nop
  225. .L20:
  226. .L16:
  227. ld [%fp+68],%i3
  228. add %i3,1,%i3
  229. st %i3,[%fp+68]
  230. .L18:
  231. ld [%fp+68],%i3
  232. ldsb [%i3],%i3
  233. cmp %i3,0; bne .L15; nop
  234. mov %g0,%i0
  235. .L12:
  236. ret; restore
  237. .type print,#function
  238. .size print,.-print
  239. .section ".rodata"
  240. .align 1
  241. .L38:
  242. .byte 37
  243. .byte 102
  244. .byte 0
  245. .align 1
  246. .L36:
  247. .byte 37
  248. .byte 115
  249. .byte 0
  250. .align 1
  251. .L34:
  252. .byte 37
  253. .byte 120
  254. .byte 0
  255. .align 1
  256. .L32:
  257. .byte 37
  258. .byte 100
  259. .byte 0
  260. .align 1
  261. .L30:
  262. .byte 37
  263. .byte 99
  264. .byte 0
  265. .align 1
  266. .L25:
  267. .byte 123
  268. .byte 37
  269. .byte 100
  270. .byte 32
  271. .byte 37
  272. .byte 100
  273. .byte 32
  274. .byte 37
  275. .byte 100
  276. .byte 32
  277. .byte 37
  278. .byte 100
  279. .byte 125
  280. .byte 0
  281. .align 1
  282. .L11:
  283. .byte 37
  284. .byte 98
  285. .byte 32
  286. .byte 37
  287. .byte 98
  288. .byte 32
  289. .byte 37
  290. .byte 98
  291. .byte 32
  292. .byte 37
  293. .byte 98
  294. .byte 32
  295. .byte 37
  296. .byte 98
  297. .byte 32
  298. .byte 37
  299. .byte 98
  300. .byte 10
  301. .byte 0
  302. .align 8
  303. .L10:
  304. .word 0x40140000
  305. .word 0x0
  306. .align 1
  307. .L9:
  308. .byte 37
  309. .byte 115
  310. .byte 37
  311. .byte 115
  312. .byte 32
  313. .byte 37
  314. .byte 102
  315. .byte 37
  316. .byte 99
  317. .byte 0
  318. .align 1
  319. .L8:
  320. .byte 115
  321. .byte 116
  322. .byte 0
  323. .align 1
  324. .L7:
  325. .byte 116
  326. .byte 101
  327. .byte 0
  328. .align 1
  329. .L6:
  330. .byte 37
  331. .byte 115
  332. .byte 37
  333. .byte 115
  334. .byte 32
  335. .byte 37
  336. .byte 119
  337. .byte 37
  338. .byte 99
  339. .byte 0
  340. .align 1
  341. .L5:
  342. .byte 116
  343. .byte 101
  344. .byte 115
  345. .byte 116
  346. .byte 32
  347. .byte 37
  348. .byte 100
  349. .byte 37
  350. .byte 99
  351. .byte 0
  352. .align 1
  353. .L4:
  354. .byte 50
  355. .byte 0
  356. .align 1
  357. .L3:
  358. .byte 116
  359. .byte 101
  360. .byte 115
  361. .byte 116
  362. .byte 32
  363. .byte 37
  364. .byte 115
  365. .byte 10
  366. .byte 0
  367. .align 1
  368. .L2:
  369. .byte 116
  370. .byte 101
  371. .byte 115
  372. .byte 116
  373. .byte 32
  374. .byte 49
  375. .byte 10
  376. .byte 0