mirror of
https://github.com/UberGames/lilium-voyager.git
synced 2024-12-13 21:51:09 +00:00
713 lines
8.5 KiB
Text
713 lines
8.5 KiB
Text
.global main
|
|
.section ".text"
|
|
.align 4
|
|
main:
|
|
save %sp,-96,%sp
|
|
set .L6,%i5
|
|
ba .L5; nop
|
|
.L2:
|
|
ldsb [%i5],%o0
|
|
call backslash; nop
|
|
mov %o0,%i3
|
|
set .L7,%o0
|
|
ldsb [%i5],%o1
|
|
mov %i3,%o2
|
|
call printf; nop
|
|
.L3:
|
|
add %i5,1,%i5
|
|
.L5:
|
|
ldsb [%i5],%i3
|
|
cmp %i3,0; bne .L2; nop
|
|
call f; nop
|
|
call g; nop
|
|
call h; nop
|
|
set 16777216,%i4
|
|
ba .L11; nop
|
|
.L8:
|
|
mov %i4,%o0
|
|
call big; nop
|
|
.L9:
|
|
set 16777216,%i3
|
|
add %i4,%i3,%i4
|
|
.L11:
|
|
set 117440512,%i3
|
|
and %i4,%i3,%i3
|
|
cmp %i3,0; bne .L8; nop
|
|
call limit; nop
|
|
mov %g0,%i0
|
|
.L1:
|
|
ret; restore
|
|
.type main,#function
|
|
.size main,.-main
|
|
.global backslash
|
|
.align 4
|
|
backslash:
|
|
cmp %o0,102; be .L16; nop
|
|
cmp %o0,102; bg .L22; nop
|
|
.L21:
|
|
cmp %o0,98; be .L15; nop
|
|
ba .L13; nop
|
|
.L22:
|
|
cmp %o0,110; be .L17; nop
|
|
cmp %o0,110; bl .L13; nop
|
|
.L23:
|
|
cmp %o0,114; be .L18; nop
|
|
cmp %o0,116; be .L19; nop
|
|
cmp %o0,118; be .L20; nop
|
|
ba .L13; nop
|
|
.L15:
|
|
set 8,%o0
|
|
ba .L12; nop
|
|
.L16:
|
|
set 12,%o0
|
|
ba .L12; nop
|
|
.L17:
|
|
set 10,%o0
|
|
ba .L12; nop
|
|
.L18:
|
|
set 13,%o0
|
|
ba .L12; nop
|
|
.L19:
|
|
set 9,%o0
|
|
ba .L12; nop
|
|
.L20:
|
|
set 11,%o0
|
|
ba .L12; nop
|
|
.L13:
|
|
.L12:
|
|
retl; nop
|
|
.type backslash,#function
|
|
.size backslash,.-backslash
|
|
.global f
|
|
.align 4
|
|
f:
|
|
save %sp,-96,%sp
|
|
mov %g0,%i4
|
|
set .L25,%o0
|
|
call printf; nop
|
|
mov %g0,%i5
|
|
.L26:
|
|
mov %i5,%i3
|
|
cmp %i5,1; bl .L30; nop
|
|
cmp %i5,20; bg .L30; nop
|
|
sll %i5,2,%i2
|
|
set .L42-4,%i1
|
|
ld [%i2+%i1],%i2
|
|
jmp %i2; nop
|
|
.section ".rodata"
|
|
.align 4
|
|
.L42:
|
|
.word .L32
|
|
.word .L33
|
|
.word .L30
|
|
.word .L30
|
|
.word .L30
|
|
.word .L30
|
|
.word .L34
|
|
.word .L35
|
|
.word .L36
|
|
.word .L30
|
|
.word .L30
|
|
.word .L30
|
|
.word .L30
|
|
.word .L30
|
|
.word .L30
|
|
.word .L37
|
|
.word .L38
|
|
.word .L39
|
|
.word .L40
|
|
.word .L41
|
|
.section ".text"
|
|
.L32:
|
|
mov %i5,%i4
|
|
ba .L31; nop
|
|
.L33:
|
|
mov %i5,%i4
|
|
ba .L31; nop
|
|
.L34:
|
|
mov %i5,%i4
|
|
ba .L31; nop
|
|
.L35:
|
|
mov %i5,%i4
|
|
ba .L31; nop
|
|
.L36:
|
|
mov %i5,%i4
|
|
ba .L31; nop
|
|
.L37:
|
|
mov %i5,%i4
|
|
ba .L31; nop
|
|
.L38:
|
|
mov %i5,%i4
|
|
ba .L31; nop
|
|
.L39:
|
|
mov %i5,%i4
|
|
ba .L31; nop
|
|
.L40:
|
|
mov %i5,%i4
|
|
ba .L31; nop
|
|
.L41:
|
|
mov %i5,%i4
|
|
.L30:
|
|
.L31:
|
|
set .L44,%o0
|
|
mov %i4,%o1
|
|
call printf; nop
|
|
.L27:
|
|
add %i5,1,%i5
|
|
cmp %i5,20; ble .L26; nop
|
|
mov %g0,%i0
|
|
.L24:
|
|
ret; restore
|
|
.type f,#function
|
|
.size f,.-f
|
|
.global g
|
|
.align 4
|
|
g:
|
|
save %sp,-96,%sp
|
|
set .L46,%o0
|
|
call printf; nop
|
|
set 1,%i5
|
|
.L47:
|
|
cmp %i5,1001; bl .L64; nop
|
|
cmp %i5,1004; bg .L65; nop
|
|
sll %i5,2,%i4
|
|
set .L66-4004,%i3
|
|
ld [%i4+%i3],%i4
|
|
jmp %i4; nop
|
|
.section ".rodata"
|
|
.align 4
|
|
.L66:
|
|
.word .L60
|
|
.word .L60
|
|
.word .L60
|
|
.word .L60
|
|
.section ".text"
|
|
.L64:
|
|
cmp %i5,1; bl .L51; nop
|
|
cmp %i5,8; bg .L51; nop
|
|
sll %i5,2,%i4
|
|
set .L68-4,%i3
|
|
ld [%i4+%i3],%i4
|
|
jmp %i4; nop
|
|
.section ".rodata"
|
|
.align 4
|
|
.L68:
|
|
.word .L53
|
|
.word .L53
|
|
.word .L55
|
|
.word .L55
|
|
.word .L55
|
|
.word .L57
|
|
.word .L57
|
|
.word .L57
|
|
.section ".text"
|
|
.L65:
|
|
cmp %i5,3001; bl .L51; nop
|
|
cmp %i5,3004; bg .L51; nop
|
|
sll %i5,2,%i4
|
|
set .L70-12004,%i3
|
|
ld [%i4+%i3],%i4
|
|
jmp %i4; nop
|
|
.section ".rodata"
|
|
.align 4
|
|
.L70:
|
|
.word .L62
|
|
.word .L62
|
|
.word .L62
|
|
.word .L62
|
|
.section ".text"
|
|
.L53:
|
|
set .L54,%o0
|
|
mov %i5,%o1
|
|
call printf; nop
|
|
ba .L52; nop
|
|
.L55:
|
|
set .L56,%o0
|
|
mov %i5,%o1
|
|
call printf; nop
|
|
ba .L52; nop
|
|
.L57:
|
|
set .L58,%o0
|
|
mov %i5,%o1
|
|
call printf; nop
|
|
.L51:
|
|
set .L59,%o0
|
|
mov %i5,%o1
|
|
call printf; nop
|
|
ba .L52; nop
|
|
.L60:
|
|
set .L61,%o0
|
|
mov %i5,%o1
|
|
call printf; nop
|
|
ba .L52; nop
|
|
.L62:
|
|
set .L63,%o0
|
|
mov %i5,%o1
|
|
call printf; nop
|
|
.L52:
|
|
.L48:
|
|
add %i5,1,%i5
|
|
cmp %i5,10; ble .L47; nop
|
|
mov %g0,%i0
|
|
.L45:
|
|
ret; restore
|
|
.type g,#function
|
|
.size g,.-g
|
|
.global h
|
|
.align 4
|
|
h:
|
|
save %sp,-96,%sp
|
|
mov %g0,%i4
|
|
set .L73,%o0
|
|
call printf; nop
|
|
set 1,%i5
|
|
.L74:
|
|
cmp %i5,264; be .L86; nop
|
|
cmp %i5,264; bg .L94; nop
|
|
.L93:
|
|
cmp %i5,120; be .L84; nop
|
|
cmp %i5,120; bg .L96; nop
|
|
.L95:
|
|
cmp %i5,8; be .L83; nop
|
|
cmp %i5,8; bl .L78; nop
|
|
.L97:
|
|
cmp %i5,16; be .L82; nop
|
|
ba .L78; nop
|
|
.L96:
|
|
cmp %i5,128; be .L80; nop
|
|
cmp %i5,128; bl .L78; nop
|
|
.L98:
|
|
cmp %i5,248; be .L87; nop
|
|
ba .L78; nop
|
|
.L94:
|
|
cmp %i5,288; be .L91; nop
|
|
cmp %i5,288; bg .L100; nop
|
|
.L99:
|
|
cmp %i5,272; be .L88; nop
|
|
cmp %i5,272; bl .L78; nop
|
|
.L101:
|
|
cmp %i5,280; be .L85; nop
|
|
ba .L78; nop
|
|
.L100:
|
|
cmp %i5,304; be .L89; nop
|
|
cmp %i5,304; bg .L103; nop
|
|
.L102:
|
|
cmp %i5,296; be .L90; nop
|
|
ba .L78; nop
|
|
.L103:
|
|
cmp %i5,312; be .L92; nop
|
|
ba .L78; nop
|
|
.L78:
|
|
add %i4,1,%i4
|
|
ba .L75; nop
|
|
.L80:
|
|
set .L81,%o0
|
|
mov %i5,%o1
|
|
call printf; nop
|
|
ba .L79; nop
|
|
.L82:
|
|
set .L81,%o0
|
|
mov %i5,%o1
|
|
call printf; nop
|
|
ba .L79; nop
|
|
.L83:
|
|
set .L81,%o0
|
|
mov %i5,%o1
|
|
call printf; nop
|
|
ba .L79; nop
|
|
.L84:
|
|
set .L81,%o0
|
|
mov %i5,%o1
|
|
call printf; nop
|
|
ba .L79; nop
|
|
.L85:
|
|
set .L81,%o0
|
|
mov %i5,%o1
|
|
call printf; nop
|
|
ba .L79; nop
|
|
.L86:
|
|
set .L81,%o0
|
|
mov %i5,%o1
|
|
call printf; nop
|
|
ba .L79; nop
|
|
.L87:
|
|
set .L81,%o0
|
|
mov %i5,%o1
|
|
call printf; nop
|
|
ba .L79; nop
|
|
.L88:
|
|
set .L81,%o0
|
|
mov %i5,%o1
|
|
call printf; nop
|
|
ba .L79; nop
|
|
.L89:
|
|
set .L81,%o0
|
|
mov %i5,%o1
|
|
call printf; nop
|
|
ba .L79; nop
|
|
.L90:
|
|
set .L81,%o0
|
|
mov %i5,%o1
|
|
call printf; nop
|
|
ba .L79; nop
|
|
.L91:
|
|
set .L81,%o0
|
|
mov %i5,%o1
|
|
call printf; nop
|
|
ba .L79; nop
|
|
.L92:
|
|
set .L81,%o0
|
|
mov %i5,%o1
|
|
call printf; nop
|
|
.L79:
|
|
.L75:
|
|
add %i5,1,%i5
|
|
cmp %i5,500; ble .L74; nop
|
|
set .L104,%o0
|
|
mov %i4,%o1
|
|
call printf; nop
|
|
mov %g0,%i0
|
|
.L72:
|
|
ret; restore
|
|
.type h,#function
|
|
.size h,.-h
|
|
.global big
|
|
.align 4
|
|
big:
|
|
save %sp,-96,%sp
|
|
set 0x6000000,%i4
|
|
and %i0,%i4,%i5
|
|
set 33554432,%i3
|
|
cmp %i5,%i3; be .L111; nop
|
|
cmp %i5,%i3; bg .L115; nop
|
|
.L114:
|
|
cmp %i5,-2; be .L109; nop
|
|
cmp %i5,-1; be .L109; nop
|
|
cmp %i5,0; be .L109; nop
|
|
ba .L106; nop
|
|
.L115:
|
|
mov %i5,%i4
|
|
set 67108864,%i3
|
|
cmp %i4,%i3; be .L112; nop
|
|
ba .L106; nop
|
|
.L109:
|
|
set .L110,%o0
|
|
mov %i0,%o1
|
|
call printf; nop
|
|
ba .L107; nop
|
|
.L111:
|
|
set .L110,%o0
|
|
mov %i0,%o1
|
|
call printf; nop
|
|
ba .L107; nop
|
|
.L112:
|
|
set .L110,%o0
|
|
mov %i0,%o1
|
|
call printf; nop
|
|
ba .L107; nop
|
|
.L106:
|
|
set .L113,%o0
|
|
mov %i0,%o1
|
|
call printf; nop
|
|
.L107:
|
|
mov %g0,%i0
|
|
.L105:
|
|
ret; restore
|
|
.type big,#function
|
|
.size big,.-big
|
|
.global limit
|
|
.align 4
|
|
limit:
|
|
save %sp,-96,%sp
|
|
set -2147483648,%i5
|
|
.L117:
|
|
set -2147483648,%i4
|
|
cmp %i5,%i4; bl .L121; nop
|
|
set -2147483644,%i3
|
|
cmp %i5,%i3; bg .L121; nop
|
|
sll %i5,2,%i3
|
|
sll %i4,2,%i4
|
|
sub %i3,%i4,%i4
|
|
set .L134,%i3
|
|
ld [%i4+%i3],%i4
|
|
jmp %i4; nop
|
|
.section ".rodata"
|
|
.align 4
|
|
.L134:
|
|
.word .L123
|
|
.word .L125
|
|
.word .L127
|
|
.word .L129
|
|
.word .L131
|
|
.section ".text"
|
|
.L123:
|
|
set .L124,%o0
|
|
call printf; nop
|
|
ba .L122; nop
|
|
.L125:
|
|
set .L126,%o0
|
|
call printf; nop
|
|
ba .L122; nop
|
|
.L127:
|
|
set .L128,%o0
|
|
call printf; nop
|
|
ba .L122; nop
|
|
.L129:
|
|
set .L130,%o0
|
|
call printf; nop
|
|
ba .L122; nop
|
|
.L131:
|
|
set .L132,%o0
|
|
call printf; nop
|
|
ba .L122; nop
|
|
.L121:
|
|
set .L133,%o0
|
|
call printf; nop
|
|
.L122:
|
|
.L118:
|
|
add %i5,1,%i5
|
|
set -2147483643,%i4
|
|
cmp %i5,%i4; ble .L117; nop
|
|
set 2147483647,%i5
|
|
.L135:
|
|
set 2147483643,%i4
|
|
cmp %i5,%i4; bl .L139; nop
|
|
set 2147483647,%i3
|
|
cmp %i5,%i3; bg .L139; nop
|
|
sll %i5,2,%i3
|
|
sll %i4,2,%i4
|
|
sub %i3,%i4,%i4
|
|
set .L146,%i3
|
|
ld [%i4+%i3],%i4
|
|
jmp %i4; nop
|
|
.section ".rodata"
|
|
.align 4
|
|
.L146:
|
|
.word .L145
|
|
.word .L144
|
|
.word .L143
|
|
.word .L142
|
|
.word .L141
|
|
.section ".text"
|
|
.L141:
|
|
set .L124,%o0
|
|
call printf; nop
|
|
ba .L140; nop
|
|
.L142:
|
|
set .L126,%o0
|
|
call printf; nop
|
|
ba .L140; nop
|
|
.L143:
|
|
set .L128,%o0
|
|
call printf; nop
|
|
ba .L140; nop
|
|
.L144:
|
|
set .L130,%o0
|
|
call printf; nop
|
|
ba .L140; nop
|
|
.L145:
|
|
set .L132,%o0
|
|
call printf; nop
|
|
ba .L140; nop
|
|
.L139:
|
|
set .L133,%o0
|
|
call printf; nop
|
|
.L140:
|
|
.L136:
|
|
sub %i5,1,%i5
|
|
set 2147483642,%i4
|
|
cmp %i5,%i4; bge .L135; nop
|
|
mov %g0,%i0
|
|
.L116:
|
|
ret; restore
|
|
.type limit,#function
|
|
.size limit,.-limit
|
|
.section ".rodata"
|
|
.align 1
|
|
.L133:
|
|
.byte 53
|
|
.byte 10
|
|
.byte 0
|
|
.align 1
|
|
.L132:
|
|
.byte 52
|
|
.byte 10
|
|
.byte 0
|
|
.align 1
|
|
.L130:
|
|
.byte 51
|
|
.byte 10
|
|
.byte 0
|
|
.align 1
|
|
.L128:
|
|
.byte 50
|
|
.byte 10
|
|
.byte 0
|
|
.align 1
|
|
.L126:
|
|
.byte 49
|
|
.byte 10
|
|
.byte 0
|
|
.align 1
|
|
.L124:
|
|
.byte 48
|
|
.byte 10
|
|
.byte 0
|
|
.align 1
|
|
.L113:
|
|
.byte 120
|
|
.byte 32
|
|
.byte 61
|
|
.byte 32
|
|
.byte 48
|
|
.byte 120
|
|
.byte 37
|
|
.byte 120
|
|
.byte 32
|
|
.byte 40
|
|
.byte 100
|
|
.byte 101
|
|
.byte 102
|
|
.byte 97
|
|
.byte 117
|
|
.byte 108
|
|
.byte 116
|
|
.byte 41
|
|
.byte 10
|
|
.byte 0
|
|
.align 1
|
|
.L110:
|
|
.byte 120
|
|
.byte 32
|
|
.byte 61
|
|
.byte 32
|
|
.byte 48
|
|
.byte 120
|
|
.byte 37
|
|
.byte 120
|
|
.byte 10
|
|
.byte 0
|
|
.align 1
|
|
.L104:
|
|
.byte 37
|
|
.byte 100
|
|
.byte 32
|
|
.byte 100
|
|
.byte 101
|
|
.byte 102
|
|
.byte 97
|
|
.byte 117
|
|
.byte 108
|
|
.byte 116
|
|
.byte 115
|
|
.byte 10
|
|
.byte 0
|
|
.align 1
|
|
.L81:
|
|
.byte 105
|
|
.byte 32
|
|
.byte 61
|
|
.byte 32
|
|
.byte 37
|
|
.byte 100
|
|
.byte 10
|
|
.byte 0
|
|
.align 1
|
|
.L73:
|
|
.byte 104
|
|
.byte 58
|
|
.byte 10
|
|
.byte 0
|
|
.align 1
|
|
.L63:
|
|
.byte 54
|
|
.byte 32
|
|
.byte 37
|
|
.byte 100
|
|
.byte 10
|
|
.byte 0
|
|
.align 1
|
|
.L61:
|
|
.byte 53
|
|
.byte 32
|
|
.byte 37
|
|
.byte 100
|
|
.byte 10
|
|
.byte 0
|
|
.align 1
|
|
.L59:
|
|
.byte 100
|
|
.byte 32
|
|
.byte 37
|
|
.byte 100
|
|
.byte 10
|
|
.byte 0
|
|
.align 1
|
|
.L58:
|
|
.byte 51
|
|
.byte 32
|
|
.byte 37
|
|
.byte 100
|
|
.byte 10
|
|
.byte 0
|
|
.align 1
|
|
.L56:
|
|
.byte 50
|
|
.byte 32
|
|
.byte 37
|
|
.byte 100
|
|
.byte 10
|
|
.byte 0
|
|
.align 1
|
|
.L54:
|
|
.byte 49
|
|
.byte 32
|
|
.byte 37
|
|
.byte 100
|
|
.byte 10
|
|
.byte 0
|
|
.align 1
|
|
.L46:
|
|
.byte 103
|
|
.byte 58
|
|
.byte 10
|
|
.byte 0
|
|
.align 1
|
|
.L44:
|
|
.byte 120
|
|
.byte 32
|
|
.byte 61
|
|
.byte 32
|
|
.byte 37
|
|
.byte 100
|
|
.byte 10
|
|
.byte 0
|
|
.align 1
|
|
.L25:
|
|
.byte 102
|
|
.byte 58
|
|
.byte 10
|
|
.byte 0
|
|
.align 1
|
|
.L7:
|
|
.byte 37
|
|
.byte 99
|
|
.byte 32
|
|
.byte 61
|
|
.byte 32
|
|
.byte 48
|
|
.byte 120
|
|
.byte 37
|
|
.byte 120
|
|
.byte 10
|
|
.byte 0
|
|
.align 1
|
|
.L6:
|
|
.byte 98
|
|
.byte 102
|
|
.byte 110
|
|
.byte 114
|
|
.byte 116
|
|
.byte 118
|
|
.byte 120
|
|
.byte 0
|