.section ".text" .align 4 .global add .type add, #function add: !#PROLOGUE# 0 save %sp, -120, %sp !#PROLOGUE# 1 mov %i0, %i0 mov 8, %o0 call malloc nop mov %o0, %o0 mov %o0, %i3 mov %i0, %i1 mov %i3, %i3 st %i1, [%i3] mov %g0, %i1 mov %i3, %i3 st %i1, [%i3+4] sethi %hi(head), %i2 or %i2, %lo(head), %i2 ldsw [%i2], %i2 mov %g0, %i1 cmp %i2, %i1 bne .L1 nop .L2: mov %i3, %i3 sethi %hi(head), %i1 or %i1, %lo(head), %i1 st %i3, [%i1] mov %i3, %i3 sethi %hi(tail), %i1 or %i1, %lo(tail), %i1 st %i3, [%i1] ba .L3 nop .L1: mov %i3, %i3 sethi %hi(tail), %i1 or %i1, %lo(tail), %i1 ldsw [%i1], %i1 st %i3, [%i1+4] mov %i3, %i3 sethi %hi(tail), %i1 or %i1, %lo(tail), %i1 st %i3, [%i1] .L3: .L4: .L5: ret restore .size add, .-add .align 4 .global printList .type printList, #function printList: !#PROLOGUE# 0 save %sp, -112, %sp !#PROLOGUE# 1 mov %i0, %i0 mov %i0, %i2 sethi %hi(tail), %i1 or %i1, %lo(tail), %i1 ldsw [%i1], %i1 cmp %i2, %i1 bne .L6 nop .L7: mov %i0, %i1 ldsw [%i1], %o1 sethi %hi(.LLC1), %i1 or %i1, %lo(.LLC1), %o0 mov %o1, %o1 call printf nop ba .L8 nop .L6: mov %i0, %i1 ldsw [%i1], %o1 sethi %hi(.LLC0), %i1 or %i1, %lo(.LLC0), %o0 mov %o1, %o1 call printf nop mov %i0, %i1 ldsw [%i1+4], %o0 mov %o0, %o0 call printList nop .L8: .L9: .L10: ret restore .size printList, .-printList .align 4 .global del .type del, #function del: !#PROLOGUE# 0 save %sp, -120, %sp !#PROLOGUE# 1 mov %i0, %i0 mov %i1, %i1 mov %i0, %i3 mov %g0, %i2 cmp %i3, %i2 bne .L11 nop ba .L12 nop .L11: sethi %hi(head), %i2 or %i2, %lo(head), %i2 ldsw [%i2], %i2 ldsw [%i2], %i2 mov %i1, %i1 cmp %i2, %i1 bne .L13 nop .L14: sethi %hi(head), %i3 or %i3, %lo(head), %i3 ldsw [%i3], %i3 mov %i3, %i3 sethi %hi(head), %i1 or %i1, %lo(head), %i1 ldsw [%i1], %i1 ldsw [%i1+4], %i2 sethi %hi(head), %i1 or %i1, %lo(head), %i1 st %i2, [%i1] mov %i3, %o0 mov %o0, %o0 call free nop ba .L15 nop .L13: mov %i0, %i2 ldsw [%i2+4], %i3 sethi %hi(tail), %i2 or %i2, %lo(tail), %i2 ldsw [%i2], %i2 cmp %i3, %i2 bne .L16 nop .L17: sethi %hi(tail), %i1 or %i1, %lo(tail), %i1 ldsw [%i1], %i1 mov %i1, %i3 mov %i0, %i2 sethi %hi(tail), %i1 or %i1, %lo(tail), %i1 st %i2, [%i1] mov %g0, %i2 sethi %hi(tail), %i1 or %i1, %lo(tail), %i1 ldsw [%i1], %i1 st %i2, [%i1+4] mov %i3, %o0 mov %o0, %o0 call free nop ba .L18 nop .L16: mov %i0, %i2 ldsw [%i2+4], %i2 ldsw [%i2], %i2 mov %i1, %i1 cmp %i2, %i1 bne .L19 nop .L20: mov %i0, %i1 ldsw [%i1+4], %i1 mov %i1, %i3 mov %i0, %i1 ldsw [%i1+4], %i1 ldsw [%i1+4], %i2 mov %i0, %i1 st %i2, [%i1+4] mov %i3, %o0 mov %o0, %o0 call free nop ba .L21 nop .L19: mov %i0, %i2 ldsw [%i2+4], %o0 mov %i1, %o1 mov %o0, %o0 mov %o1, %o1 call del nop .L21: .L22: .L18: .L23: .L15: .L24: .L12: .L25: .L26: ret restore .size del, .-del .align 4 .global main .type main, #function main: !#PROLOGUE# 0 save %sp, -128, %sp !#PROLOGUE# 1 add %fp, -28, %o1 sethi %hi(.LLC2), %i0 or %i0, %lo(.LLC2), %o0 mov %o1, %o1 call scanf nop ldsw [%fp-28], %i1 add %fp, -24, %o1 sethi %hi(.LLC2), %i0 or %i0, %lo(.LLC2), %o0 mov %o1, %o1 call scanf nop ldsw [%fp-24], %i2 mov 1, %o0 mov %o0, %o0 call add nop mov 10, %o0 mov %o0, %o0 call add nop mov 3, %o0 mov %o0, %o0 call add nop mov 4, %o0 mov %o0, %o0 call add nop mov %i1, %i1 mov %i1, %o0 call add nop sethi %hi(head), %o0 or %o0, %lo(head), %o0 ldsw [%o0], %o0 mov %o0, %o0 call printList nop mov %g0, %i1 mov %i1, %i1 mov %i1, %i1 sethi %hi(50000000), %i0 or %i0, %lo(50000000), %i0 cmp %i1, %i0 bge .L27 nop .L28: mov %i1, %o0 mov %o0, %o0 call add nop mov %i1, %i1 mov 1, %i0 add %i1, %i0, %i0 mov %i0, %i1 mov %i1, %i1 sethi %hi(50000000), %i0 or %i0, %lo(50000000), %i0 cmp %i1, %i0 bl .L28 nop .L27: mov %g0, %i0 mov %i0, %i1 mov %i1, %i1 sethi %hi(50000000), %i0 or %i0, %lo(50000000), %i0 cmp %i1, %i0 bge .L29 nop .L30: sethi %hi(head), %o0 or %o0, %lo(head), %o0 ldsw [%o0], %o0 mov %i1, %o1 mov %o0, %o0 mov %o1, %o1 call del nop mov %i1, %i1 mov 1, %i0 add %i1, %i0, %i0 mov %i0, %i1 mov %i1, %i1 sethi %hi(50000000), %i0 or %i0, %lo(50000000), %i0 cmp %i1, %i0 bl .L30 nop .L29: sethi %hi(head), %o0 or %o0, %lo(head), %o0 ldsw [%o0], %o0 mov %i2, %i2 mov %o0, %o0 mov %i2, %o1 call del nop sethi %hi(head), %o0 or %o0, %lo(head), %o0 ldsw [%o0], %o0 mov %o0, %o0 call printList nop mov %g0, %i0 mov %i0, %i0 .L31: .L32: ret restore .size main, .-main .common tail,4,4 .common head,4,4 .section ".rodata" .align 8 .LLC0: .asciz "%d " .align 8 .LLC1: .asciz "%d\n" .align 8 .LLC2: .asciz "%d"