diff options
Diffstat (limited to 'code/tools/lcc/sparc/solaris/tst/stdarg.sbk')
-rw-r--r-- | code/tools/lcc/sparc/solaris/tst/stdarg.sbk | 376 |
1 files changed, 376 insertions, 0 deletions
diff --git a/code/tools/lcc/sparc/solaris/tst/stdarg.sbk b/code/tools/lcc/sparc/solaris/tst/stdarg.sbk new file mode 100644 index 0000000..2cbe140 --- /dev/null +++ b/code/tools/lcc/sparc/solaris/tst/stdarg.sbk @@ -0,0 +1,376 @@ +.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 |