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