lilium-voyager/lcc/sparc/solaris/tst/stdarg.sbk
2005-08-26 04:48:05 +00:00

376 lines
5 KiB
Text
Executable file

.section ".data"
.global x
.type x,#object
.size x,16
.align 4
x:
.word 0x1
.word 0x2
.word 0x3
.word 0x4
.global main
.section ".text"
.align 4
main:
save %sp,-192,%sp
set .L2,%o0
call print; nop
set .L3,%o0
set .L4,%o1
call print; nop
set .L5,%o0
set 3,%o1
set 10,%o2
call print; nop
set .L6,%o0
set .L7,%o1
set .L8,%o2
set 4,%o3
set 10,%o4
call print; nop
set .L9,%o0
set .L7,%o1
set .L8,%o2
set .L10,%i5
ld2 [%i5],%f30
st %f30,[%sp+4*3+68]
st %f31,[%sp+4*4+68]
ld [%sp+4*3+68],%o3
ld [%sp+4*4+68],%o4
set 10,%o5
call print; nop
set .L11,%o0
set x,%i5
add -16,%fp,%i4
ld [%r29+0],%r1
ld [%r29+4],%r2
st %r1,[%r28+0]
st %r2,[%r28+4]
ld [%r29+8],%r1
ld [%r29+12],%r2
st %r1,[%r28+8]
st %r2,[%r28+12]
add -16,%fp,%o1
add -32,%fp,%i4
ld [%r29+0],%r1
ld [%r29+4],%r2
st %r1,[%r28+0]
st %r2,[%r28+4]
ld [%r29+8],%r1
ld [%r29+12],%r2
st %r1,[%r28+8]
st %r2,[%r28+12]
add -32,%fp,%o2
add -48,%fp,%i4
ld [%r29+0],%r1
ld [%r29+4],%r2
st %r1,[%r28+0]
st %r2,[%r28+4]
ld [%r29+8],%r1
ld [%r29+12],%r2
st %r1,[%r28+8]
st %r2,[%r28+12]
add -48,%fp,%o3
add -64,%fp,%i4
ld [%r29+0],%r1
ld [%r29+4],%r2
st %r1,[%r28+0]
st %r2,[%r28+4]
ld [%r29+8],%r1
ld [%r29+12],%r2
st %r1,[%r28+8]
st %r2,[%r28+12]
add -64,%fp,%o4
add -80,%fp,%i4
ld [%r29+0],%r1
ld [%r29+4],%r2
st %r1,[%r28+0]
st %r2,[%r28+4]
ld [%r29+8],%r1
ld [%r29+12],%r2
st %r1,[%r28+8]
st %r2,[%r28+12]
add -80,%fp,%o5
add -96,%fp,%i4
ld [%r29+0],%r1
ld [%r29+4],%r2
st %r1,[%r28+0]
st %r2,[%r28+4]
ld [%r29+8],%r1
ld [%r29+12],%r2
st %r1,[%r28+8]
st %r2,[%r28+12]
add -96,%fp,%i5
st %i5,[%sp+4*6+68]
call print; nop
mov %g0,%i0
.L1:
ret; restore
.type main,#function
.size main,.-main
.global print
.align 4
print:
save %sp,-112,%sp
st %i1,[%fp+72]
st %i2,[%fp+76]
st %i3,[%fp+80]
st %i4,[%fp+84]
st %i5,[%fp+88]
st %i0,[%fp+68]
add 72,%fp,%i5
ba .L18; nop
.L15:
ld [%fp+68],%i4
ldsb [%i4],%i4
cmp %i4,37; bne .L19; nop
ld [%fp+68],%i3
add %i3,1,%i3
st %i3,[%fp+68]
ldsb [%i3],%i4
cmp %i4,115; be .L35; nop
cmp %i4,115; bg .L40; nop
.L39:
cmp %i4,98; bl .L21; nop
cmp %i4,102; bg .L21; nop
sll %i4,2,%i3
set .L41-392,%i2
ld [%i3+%i2],%i3
jmp %i3; nop
.section ".rodata"
.align 4
.L41:
.word .L24
.word .L29
.word .L31
.word .L21
.word .L37
.section ".text"
.L40:
cmp %i4,119; be .L33; nop
ba .L21; nop
.L24:
add %i5,4,%i3
mov %i3,%i5
add -16,%fp,%i2
ld [%i3+-4],%i3
ld [%r27+0],%r1
ld [%r27+4],%r2
st %r1,[%r26+0]
st %r2,[%r26+4]
ld [%r27+8],%r1
ld [%r27+12],%r2
st %r1,[%r26+8]
st %r2,[%r26+12]
set .L25,%o0
ld [%fp+-16],%o1
ld [%fp+-12],%o2
ld [%fp+-8],%o3
ld [%fp+-4],%o4
call printf; nop
ba .L20; nop
.L29:
set .L30,%o0
add %i5,4,%i3
mov %i3,%i5
ldsb [%i3+-1],%o1
call printf; nop
ba .L20; nop
.L31:
set .L32,%o0
set 4,%i3
add %i5,%i3,%i3
mov %i3,%i5
ld [%i3+-4],%o1
call printf; nop
ba .L20; nop
.L33:
set .L34,%o0
add %i5,4,%i3
mov %i3,%i5
ldsh [%i3+-2],%o1
call printf; nop
ba .L20; nop
.L35:
set .L36,%o0
set 4,%i3
add %i5,%i3,%i3
mov %i3,%i5
ld [%i3+-4],%o1
call printf; nop
ba .L20; nop
.L37:
set .L38,%o0
set 8,%i3
add %i5,%i3,%i3
mov %i3,%i5
ld2 [%i3+-8],%f30
st %f30,[%sp+4*1+68]
st %f31,[%sp+4*2+68]
ld [%sp+4*1+68],%o1
ld [%sp+4*2+68],%o2
call printf; nop
ba .L20; nop
.L21:
set .L30,%o0
ld [%fp+68],%i3
ldsb [%i3],%o1
call printf; nop
ba .L20; nop
.L19:
set .L30,%o0
ld [%fp+68],%i3
ldsb [%i3],%o1
call printf; nop
.L20:
.L16:
ld [%fp+68],%i3
add %i3,1,%i3
st %i3,[%fp+68]
.L18:
ld [%fp+68],%i3
ldsb [%i3],%i3
cmp %i3,0; bne .L15; nop
mov %g0,%i0
.L12:
ret; restore
.type print,#function
.size print,.-print
.section ".rodata"
.align 1
.L38:
.byte 37
.byte 102
.byte 0
.align 1
.L36:
.byte 37
.byte 115
.byte 0
.align 1
.L34:
.byte 37
.byte 120
.byte 0
.align 1
.L32:
.byte 37
.byte 100
.byte 0
.align 1
.L30:
.byte 37
.byte 99
.byte 0
.align 1
.L25:
.byte 123
.byte 37
.byte 100
.byte 32
.byte 37
.byte 100
.byte 32
.byte 37
.byte 100
.byte 32
.byte 37
.byte 100
.byte 125
.byte 0
.align 1
.L11:
.byte 37
.byte 98
.byte 32
.byte 37
.byte 98
.byte 32
.byte 37
.byte 98
.byte 32
.byte 37
.byte 98
.byte 32
.byte 37
.byte 98
.byte 32
.byte 37
.byte 98
.byte 10
.byte 0
.align 8
.L10:
.word 0x40140000
.word 0x0
.align 1
.L9:
.byte 37
.byte 115
.byte 37
.byte 115
.byte 32
.byte 37
.byte 102
.byte 37
.byte 99
.byte 0
.align 1
.L8:
.byte 115
.byte 116
.byte 0
.align 1
.L7:
.byte 116
.byte 101
.byte 0
.align 1
.L6:
.byte 37
.byte 115
.byte 37
.byte 115
.byte 32
.byte 37
.byte 119
.byte 37
.byte 99
.byte 0
.align 1
.L5:
.byte 116
.byte 101
.byte 115
.byte 116
.byte 32
.byte 37
.byte 100
.byte 37
.byte 99
.byte 0
.align 1
.L4:
.byte 50
.byte 0
.align 1
.L3:
.byte 116
.byte 101
.byte 115
.byte 116
.byte 32
.byte 37
.byte 115
.byte 10
.byte 0
.align 1
.L2:
.byte 116
.byte 101
.byte 115
.byte 116
.byte 32
.byte 49
.byte 10
.byte 0