| .global addpoint |
| .section ".text" |
| .align 4 |
| addpoint: |
| save %sp,-96,%sp |
| ld [%i0],%i5 |
| ld [%i1],%i4 |
| add %i5,%i4,%i5 |
| st %i5,[%i0] |
| add %i0,4,%i5 |
| ld [%i5],%i4 |
| ld [%i1+4],%i3 |
| add %i4,%i3,%i4 |
| st %i4,[%i5] |
| ld [%fp+64],%i5 |
| ld [%r24+0],%r1 |
| ld [%r24+4],%r2 |
| st %r1,[%r29+0] |
| st %r2,[%r29+4] |
| .L1: |
| jmp %i7+12; restore |
| .type addpoint,#function |
| .size addpoint,.-addpoint |
| .global canonrect |
| .align 4 |
| canonrect: |
| save %sp,-112,%sp |
| ld [%i0],%i3 |
| ld [%i0+8],%i2 |
| cmp %i3,%i2; bge .L6; nop |
| ld [%i0],%i5 |
| ba .L7; nop |
| .L6: |
| ld [%i0+8],%i5 |
| .L7: |
| st %i5,[%fp+-16] |
| ld [%i0+4],%i3 |
| ld [%i0+12],%i2 |
| cmp %i3,%i2; bge .L10; nop |
| ld [%i0+4],%i4 |
| ba .L11; nop |
| .L10: |
| ld [%i0+12],%i4 |
| .L11: |
| st %i4,[%fp+-12] |
| ld [%i0],%i2 |
| ld [%i0+8],%i1 |
| cmp %i2,%i1; ble .L14; nop |
| ld [%i0],%i3 |
| ba .L15; nop |
| .L14: |
| ld [%i0+8],%i3 |
| .L15: |
| st %i3,[%fp+-8] |
| ld [%i0+4],%i1 |
| ld [%i0+12],%l7 |
| cmp %i1,%l7; ble .L19; nop |
| ld [%i0+4],%i2 |
| ba .L20; nop |
| .L19: |
| ld [%i0+12],%i2 |
| .L20: |
| st %i2,[%fp+-4] |
| ld [%fp+64],%i1 |
| add -16,%fp,%l7 |
| ld [%r23+0],%r1 |
| ld [%r23+4],%r2 |
| st %r1,[%r25+0] |
| st %r2,[%r25+4] |
| ld [%r23+8],%r1 |
| ld [%r23+12],%r2 |
| st %r1,[%r25+8] |
| st %r2,[%r25+12] |
| .L3: |
| jmp %i7+12; restore |
| .type canonrect,#function |
| .size canonrect,.-canonrect |
| .global makepoint |
| .align 4 |
| makepoint: |
| save %sp,-104,%sp |
| st %i0,[%fp+-8] |
| st %i1,[%fp+-4] |
| ld [%fp+64],%i5 |
| add -8,%fp,%i4 |
| ld [%r28+0],%r1 |
| ld [%r28+4],%r2 |
| st %r1,[%r29+0] |
| st %r2,[%r29+4] |
| .L21: |
| jmp %i7+12; restore |
| .type makepoint,#function |
| .size makepoint,.-makepoint |
| .global makerect |
| .align 4 |
| makerect: |
| save %sp,-128,%sp |
| add -16,%fp,%i5 |
| ld [%r24+0],%r1 |
| ld [%r24+4],%r2 |
| st %r1,[%r29+0] |
| st %r2,[%r29+4] |
| add -8,%fp,%i5 |
| ld [%r25+0],%r1 |
| ld [%r25+4],%r2 |
| st %r1,[%r29+0] |
| st %r2,[%r29+4] |
| add -32,%fp,%i5 |
| add -16,%fp,%i4 |
| ld [%r28+0],%r1 |
| ld [%r28+4],%r2 |
| st %r1,[%r29+0] |
| st %r2,[%r29+4] |
| ld [%r28+8],%r1 |
| ld [%r28+12],%r2 |
| st %r1,[%r29+8] |
| st %r2,[%r29+12] |
| add -32,%fp,%o0 |
| ld [%fp+64],%i5 |
| call canonrect; st %i5,[%sp+64]; unimp 16&0xfff |
| .L24: |
| jmp %i7+12; restore |
| .type makerect,#function |
| .size makerect,.-makerect |
| .global ptinrect |
| .align 4 |
| ptinrect: |
| ld [%o0],%o4 |
| ld [%o1],%o3 |
| cmp %o4,%o3; bl .L29; nop |
| ld [%o1+8],%o3 |
| cmp %o4,%o3; bge .L29; nop |
| ld [%o0+4],%o4 |
| ld [%o1+4],%o3 |
| cmp %o4,%o3; bl .L29; nop |
| ld [%o1+12],%o3 |
| cmp %o4,%o3; bge .L29; nop |
| set 1,%o5 |
| ba .L30; nop |
| .L29: |
| mov %g0,%o5 |
| .L30: |
| mov %o5,%o0 |
| .L27: |
| retl; nop |
| .type ptinrect,#function |
| .size ptinrect,.-ptinrect |
| .section ".data" |
| .global y |
| .type y,#object |
| .size y,3 |
| .align 1 |
| y: |
| .byte 97 |
| .byte 98 |
| .byte 0 |
| .global odd |
| .section ".text" |
| .align 4 |
| odd: |
| save %sp,-96,%sp |
| add -3,%fp,%i5 |
| ldub [%r24+0],%r1 |
| ldub [%r24+1],%r2 |
| stb %r1,[%r29+0] |
| stb %r2,[%r29+1] |
| ldub [%r24+2],%r1 |
| stb %r1,[%r29+2] |
| set .L32,%o0 |
| add -3,%fp,%o1 |
| call printf; nop |
| mov %g0,%i0 |
| .L31: |
| ret; restore |
| .type odd,#function |
| .size odd,.-odd |
| .section ".rodata" |
| .align 4 |
| .L34: |
| .word 0x0 |
| .word 0x0 |
| .align 4 |
| .L35: |
| .word 0x140 |
| .word 0x140 |
| .align 4 |
| .L36: |
| .word 0xffffffff |
| .word 0xffffffff |
| .word 0x1 |
| .word 0x1 |
| .word 0x14 |
| .word 0x12c |
| .word 0x1f4 |
| .word 0x190 |
| .global main |
| .section ".text" |
| .align 4 |
| main: |
| save %sp,-240,%sp |
| add -64,%fp,%i4 |
| set .L34,%i3 |
| ld [%r27+0],%r1 |
| ld [%r27+4],%r2 |
| st %r1,[%r28+0] |
| st %r2,[%r28+4] |
| add -72,%fp,%i4 |
| set .L35,%i3 |
| ld [%r27+0],%r1 |
| ld [%r27+4],%r2 |
| st %r1,[%r28+0] |
| st %r2,[%r28+4] |
| add -32,%fp,%i4 |
| set .L36,%i3 |
| add %r27,32,%r27 |
| add %r28,32,%r3 |
| 1: dec 8,%r3 |
| ld [%r27+-8],%r1 |
| ld [%r27+-4],%r2 |
| st %r1,[%r3+0] |
| st %r2,[%r3+4] |
| cmp %r3,%r28; bgt 1b; dec 8,%r27 |
| set -10,%i4 |
| mov %i4,%o0 |
| mov %i4,%o1 |
| add -80,%fp,%i4 |
| call makepoint; st %i4,[%sp+64]; unimp 8&0xfff |
| add -88,%fp,%i4 |
| add -72,%fp,%i3 |
| ld [%r27+0],%r1 |
| ld [%r27+4],%r2 |
| st %r1,[%r28+0] |
| st %r2,[%r28+4] |
| add -88,%fp,%o0 |
| add -80,%fp,%o1 |
| add -96,%fp,%i4 |
| call addpoint; st %i4,[%sp+64]; unimp 8&0xfff |
| set 10,%i4 |
| mov %i4,%o0 |
| mov %i4,%o1 |
| add -104,%fp,%i4 |
| call makepoint; st %i4,[%sp+64]; unimp 8&0xfff |
| add -112,%fp,%i4 |
| add -64,%fp,%i3 |
| ld [%r27+0],%r1 |
| ld [%r27+4],%r2 |
| st %r1,[%r28+0] |
| st %r2,[%r28+4] |
| add -112,%fp,%o0 |
| add -104,%fp,%o1 |
| add -120,%fp,%i4 |
| call addpoint; st %i4,[%sp+64]; unimp 8&0xfff |
| add -96,%fp,%o0 |
| add -120,%fp,%o1 |
| add -48,%fp,%i4 |
| call makerect; st %i4,[%sp+64]; unimp 16&0xfff |
| mov %g0,%i5 |
| ba .L40; nop |
| .L37: |
| sll %i5,3,%i4 |
| add -32,%fp,%i3 |
| ld [%i4+%i3],%o0 |
| add -28,%fp,%i3 |
| ld [%i4+%i3],%o1 |
| add -56,%fp,%i4 |
| call makepoint; st %i4,[%sp+64]; unimp 8&0xfff |
| set .L41,%o0 |
| sll %i5,3,%i4 |
| add -32,%fp,%i3 |
| ld [%i4+%i3],%o1 |
| ld [%fp+-52],%o2 |
| call printf; nop |
| add -128,%fp,%i4 |
| add -56,%fp,%i3 |
| ld [%r27+0],%r1 |
| ld [%r27+4],%r2 |
| st %r1,[%r28+0] |
| st %r2,[%r28+4] |
| add -128,%fp,%o0 |
| add -144,%fp,%i4 |
| add -48,%fp,%i3 |
| ld [%r27+0],%r1 |
| ld [%r27+4],%r2 |
| st %r1,[%r28+0] |
| st %r2,[%r28+4] |
| ld [%r27+8],%r1 |
| ld [%r27+12],%r2 |
| st %r1,[%r28+8] |
| st %r2,[%r28+12] |
| add -144,%fp,%o1 |
| call ptinrect; nop |
| cmp %o0,0; bne .L44; nop |
| set .L46,%o0 |
| call printf; nop |
| .L44: |
| set .L47,%o0 |
| ld [%fp+-48],%o1 |
| ld [%fp+-44],%o2 |
| ld [%fp+-40],%o3 |
| ld [%fp+-36],%o4 |
| call printf; nop |
| .L38: |
| add %i5,1,%i5 |
| .L40: |
| mov %i5,%i4 |
| set 4,%i3 |
| cmp %i4,%i3; blu .L37; nop |
| add -123,%fp,%i4 |
| set y,%i3 |
| ldub [%r27+0],%r1 |
| ldub [%r27+1],%r2 |
| stb %r1,[%r28+0] |
| stb %r2,[%r28+1] |
| ldub [%r27+2],%r1 |
| stb %r1,[%r28+2] |
| add -123,%fp,%o0 |
| call odd; nop |
| mov %g0,%o0 |
| call exit; nop |
| mov %g0,%i0 |
| .L33: |
| ret; restore |
| .type main,#function |
| .size main,.-main |
| .section ".rodata" |
| .align 1 |
| .L47: |
| .byte 119 |
| .byte 105 |
| .byte 116 |
| .byte 104 |
| .byte 105 |
| .byte 110 |
| .byte 32 |
| .byte 91 |
| .byte 37 |
| .byte 100 |
| .byte 44 |
| .byte 37 |
| .byte 100 |
| .byte 59 |
| .byte 32 |
| .byte 37 |
| .byte 100 |
| .byte 44 |
| .byte 37 |
| .byte 100 |
| .byte 93 |
| .byte 10 |
| .byte 0 |
| .align 1 |
| .L46: |
| .byte 110 |
| .byte 111 |
| .byte 116 |
| .byte 32 |
| .byte 0 |
| .align 1 |
| .L41: |
| .byte 40 |
| .byte 37 |
| .byte 100 |
| .byte 44 |
| .byte 37 |
| .byte 100 |
| .byte 41 |
| .byte 32 |
| .byte 105 |
| .byte 115 |
| .byte 32 |
| .byte 0 |
| .align 1 |
| .L32: |
| .byte 37 |
| .byte 115 |
| .byte 10 |
| .byte 0 |