123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378 |
- .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
|