.section ".text" .align 4 .global mod .type mod, #function mod: !#PROLOGUE# 0 save %sp, -128, %sp !#PROLOGUE# 1 mov %i0, %i0 mov %i1, %i1 mov %i0, %o1 mov %i1, %o0 sra %o1, %g0, %o1 sra %o0, %g0, %o0 sdivx %o1, %o0, %o0 mov %o0, %o0 mov %o0, %i2 mov %i1, %i1 sra %i2, %g0, %i2 sra %i1, %g0, %i1 mulx %i2, %i1, %i2 mov %i2, %i2 mov %i0, %i1 mov %i2, %i0 sub %i1, %i0, %i0 mov %i0, %i0 mov %i0, %i0 mov %i0, %i0 .L1: .L2: ret restore .size mod, .-mod .align 4 .global factorize .type factorize, #function factorize: !#PROLOGUE# 0 save %sp, -120, %sp !#PROLOGUE# 1 mov %i0, %i0 mov 2, %i5 mov %i5, %i5 mov %g0, %i3 mov %i3, %i3 mov %i5, %i2 mov %i0, %i1 mov %g0, %i4 cmp %i2, %i1 movle %icc, 1, %i4 mov %i3, %i3 mov %g0, %i2 mov %g0, %i1 cmp %i3, %i2 move %icc, 1, %i1 and %i4, %i1, %i1 brz %i1, .L3 nop .L4: mov %i0, %o0 mov %i5, %o1 mov %o0, %o0 mov %o1, %o1 call mod nop mov %o0, %o0 mov %g0, %i1 cmp %o0, %i1 bne .L5 nop .L6: mov %i5, %o1 sethi %hi(.LLC0), %i1 or %i1, %lo(.LLC0), %o0 mov %o1, %o1 call printf nop mov %i0, %o1 mov %i5, %o0 sra %o1, %g0, %o1 sra %o0, %g0, %o0 sdivx %o1, %o0, %o0 mov %o0, %o0 call factorize nop mov 1, %i1 mov %i1, %i3 ba .L7 nop .L5: mov %i5, %i2 mov 1, %i1 add %i2, %i1, %i1 mov %i1, %i5 .L7: .L8: mov %i5, %i2 mov %i0, %i1 mov %g0, %i4 cmp %i2, %i1 movle %icc, 1, %i4 mov %i3, %i3 mov %g0, %i2 mov %g0, %i1 cmp %i3, %i2 move %icc, 1, %i1 and %i4, %i1, %i1 brnz %i1, .L4 nop .L3: .L9: ret restore .size factorize, .-factorize .align 4 .global main .type main, #function main: !#PROLOGUE# 0 save %sp, -120, %sp !#PROLOGUE# 1 add %fp, -20, %o1 sethi %hi(.LLC2), %i0 or %i0, %lo(.LLC2), %o0 mov %o1, %o1 call scanf nop ldsw [%fp-20], %i0 mov %i0, %i0 mov %i0, %o0 call factorize nop mov %g0, %o1 sethi %hi(.LLC1), %i0 or %i0, %lo(.LLC1), %o0 mov %o1, %o1 call printf nop mov 1, %i0 mov %i0, %i0 .L10: .L11: ret restore .size main, .-main .section ".rodata" .align 8 .LLC0: .asciz "%d " .align 8 .LLC1: .asciz "%d\n" .align 8 .LLC2: .asciz "%d"