array.sbk (2221B)
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