array.sbk 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. .global main
  2. .section ".text"
  3. .align 4
  4. main:
  5. save %sp,-144,%sp
  6. mov %g0,%i4
  7. .L2:
  8. mov %g0,%i5
  9. .L6:
  10. sll %i5,2,%i2
  11. sll %i4,4,%i1
  12. set x,%i0
  13. add %i1,%i0,%i1
  14. smul %i4,1000,%i0
  15. add %i0,%i5,%i0
  16. st %i0,[%i2+%i1]
  17. .L7:
  18. add %i5,1,%i5
  19. cmp %i5,4; bl .L6; nop
  20. sll %i4,2,%i2
  21. set y,%i1
  22. sll %i4,4,%i0
  23. set x,%l7
  24. add %i0,%l7,%i0
  25. st %i0,[%i2+%i1]
  26. .L3:
  27. add %i4,1,%i4
  28. cmp %i4,3; bl .L2; nop
  29. call f; nop
  30. mov %g0,%i4
  31. .L10:
  32. sll %i4,4,%i2
  33. add -48,%fp,%i1
  34. add %i2,%i1,%i2
  35. mov %i2,%i3
  36. sll %i4,2,%i1
  37. set y,%i0
  38. st %i2,[%i1+%i0]
  39. mov %g0,%i5
  40. .L14:
  41. sll %i5,2,%i2
  42. sll %i4,4,%i1
  43. set x,%i0
  44. add %i1,%i0,%i1
  45. ld [%i2+%i1],%i1
  46. st %i1,[%i2+%i3]
  47. .L15:
  48. add %i5,1,%i5
  49. cmp %i5,4; bl .L14; nop
  50. .L11:
  51. add %i4,1,%i4
  52. cmp %i4,3; bl .L10; nop
  53. add -48,%fp,%o0
  54. set y,%o1
  55. call g; nop
  56. mov %g0,%i0
  57. .L1:
  58. ret; restore
  59. .type main,#function
  60. .size main,.-main
  61. .global f
  62. .align 4
  63. f:
  64. save %sp,-96,%sp
  65. mov %g0,%i4
  66. .L19:
  67. mov %g0,%i5
  68. .L23:
  69. set .L27,%o0
  70. sll %i5,2,%i3
  71. sll %i4,4,%i2
  72. set x,%i1
  73. add %i2,%i1,%i2
  74. ld [%i3+%i2],%o1
  75. call printf; nop
  76. .L24:
  77. add %i5,1,%i5
  78. cmp %i5,4; bl .L23; nop
  79. .L20:
  80. add %i4,1,%i4
  81. cmp %i4,3; bl .L19; nop
  82. set .L28,%o0
  83. call printf; nop
  84. mov %g0,%i4
  85. .L29:
  86. mov %g0,%i5
  87. .L33:
  88. set .L27,%o0
  89. sll %i5,2,%i3
  90. sll %i4,2,%i2
  91. set y,%i1
  92. ld [%i2+%i1],%i2
  93. ld [%i3+%i2],%o1
  94. call printf; nop
  95. .L34:
  96. add %i5,1,%i5
  97. cmp %i5,4; bl .L33; nop
  98. .L30:
  99. add %i4,1,%i4
  100. cmp %i4,3; bl .L29; nop
  101. set .L28,%o0
  102. call printf; nop
  103. mov %g0,%i0
  104. .L18:
  105. ret; restore
  106. .type f,#function
  107. .size f,.-f
  108. .global g
  109. .align 4
  110. g:
  111. save %sp,-96,%sp
  112. mov %g0,%i4
  113. .L38:
  114. mov %g0,%i5
  115. .L42:
  116. set .L27,%o0
  117. sll %i5,2,%i3
  118. sll %i4,4,%i2
  119. add %i2,%i0,%i2
  120. ld [%i3+%i2],%o1
  121. call printf; nop
  122. .L43:
  123. add %i5,1,%i5
  124. cmp %i5,4; bl .L42; nop
  125. .L39:
  126. add %i4,1,%i4
  127. cmp %i4,3; bl .L38; nop
  128. set .L28,%o0
  129. call printf; nop
  130. mov %g0,%i4
  131. .L46:
  132. mov %g0,%i5
  133. .L50:
  134. set .L27,%o0
  135. sll %i5,2,%i3
  136. sll %i4,2,%i2
  137. ld [%i2+%i1],%i2
  138. ld [%i3+%i2],%o1
  139. call printf; nop
  140. .L51:
  141. add %i5,1,%i5
  142. cmp %i5,4; bl .L50; nop
  143. .L47:
  144. add %i4,1,%i4
  145. cmp %i4,3; bl .L46; nop
  146. set .L28,%o0
  147. call printf; nop
  148. mov %g0,%i0
  149. .L37:
  150. ret; restore
  151. .type g,#function
  152. .size g,.-g
  153. .section ".bss"
  154. .global y
  155. .type y,#object
  156. .size y,12
  157. .common y,12,4
  158. .global x
  159. .type x,#object
  160. .size x,48
  161. .common x,48,4
  162. .section ".rodata"
  163. .align 1
  164. .L28:
  165. .byte 10
  166. .byte 0
  167. .align 1
  168. .L27:
  169. .byte 32
  170. .byte 37
  171. .byte 100
  172. .byte 0