.set noat .set noreorder .set nomacro .text .align 2 .align 4 .globl gcd_ll .ent gcd_ll gcd_ll: .frame $30,0,$26,0 ldah $29,0($27) !gpdisp!3 lda $29,0($29) !gpdisp!3 $gcd_ll..ng: .prologue 1 mov $16,$1 mov $17,$2 .align 4 $L2: mov $1,$0 beq $2,$L1 mov $1,$24 ldq $27,__remqu($29) !literal!2 mov $2,$25 mov $2,$0 jsr $23,($27),__remqu !lituse_jsr!2 bis $31,$31,$31 mov $27,$1 beq $27,$L1 mov $27,$25 ldq $27,__remqu($29) !literal!1 mov $2,$24 jsr $23,($27),__remqu !lituse_jsr!1 mov $27,$2 br $31,$L2 $L1: ret $31,($26),1 .end gcd_ll .align 2 .align 4 .globl powmod_ll .ent powmod_ll powmod_ll: .frame $30,0,$26,0 ldah $29,0($27) !gpdisp!6 lda $29,0($29) !gpdisp!6 $powmod_ll..ng: .prologue 1 mov $18,$25 cpys $f31,$f31,$f31 lda $0,1($31) beq $17,$L7 zapnot $17,15,$2 mov $31,$3 beq $2,$L21 .align 4 $L13: srl $2,1,$1 addl $3,1,$3 mov $1,$2 bne $1,$L13 $L21: subl $3,2,$3 cpys $f31,$f31,$f31 mov $16,$27 blt $3,$L23 lda $2,1($31) .align 4 $L19: mulq $27,$27,$24 ldq $27,__remqu($29) !literal!5 sll $2,$3,$1 subl $3,1,$3 and $1,$17,$1 zapnot $1,15,$1 jsr $23,($27),__remqu !lituse_jsr!5 beq $1,$L16 mulq $27,$16,$24 ldq $27,__remqu($29) !literal!4 jsr $23,($27),__remqu !lituse_jsr!4 $L16: bge $3,$L19 $L23: mov $27,$0 $L7: ret $31,($26),1 .end powmod_ll .align 2 .align 4 .globl facts .ent facts facts: .frame $30,0,$26,0 .mask 0x400fe00,0 ldah $29,0($27) !gpdisp!9 lda $29,0($29) !gpdisp!9 $facts..ng: lda $30,-96($30) ldq $1,factab($29) !literal stq $9,8($30) mov $18,$9 stq $10,16($30) mov $16,$10 stq $11,24($30) mov $18,$11 stq $12,32($30) mov $19,$12 stq $13,40($30) mov $17,$13 stq $14,48($30) lda $14,1($31) stq $15,56($30) lda $15,1($31) stq $26,0($30) .prologue 1 stq $1,64($30) stq $15,72($30) stq $31,80($30) .align 4 $L34: mov $11,$16 mov $10,$18 mov $12,$17 cpys $f31,$f31,$f31 bsr $26,$powmod_ll..ng mov $12,$17 mov $9,$16 mov $10,$18 addq $0,$13,$11 bsr $26,$powmod_ll..ng mov $12,$17 addq $0,$13,$9 mov $9,$16 mov $10,$18 bsr $26,$powmod_ll..ng mov $10,$17 mov $10,$25 ldq $27,__remqu($29) !literal!8 addq $0,$13,$9 cmpule $11,$9,$2 subq $9,$11,$1 subq $11,$9,$24 cmovne $2,$1,$24 ldq $2,72($30) mulq $15,$24,$24 cmpeq $14,$2,$1 jsr $23,($27),__remqu !lituse_jsr!8 mov $27,$15 mov $27,$16 bne $1,$L36 $L27: addl $14,1,$14 lda $1,-9999($14) ble $1,$L34 $L24: ldq $26,0($30) ldq $9,8($30) ldq $10,16($30) ldq $11,24($30) ldq $12,32($30) ldq $13,40($30) ldq $14,48($30) ldq $15,56($30) lda $30,96($30) ret $31,($26),1 .align 4 $L36: bsr $26,$gcd_ll..ng ldq $1,80($30) mov $0,$25 addl $1,1,$1 stq $1,80($30) cpys $f31,$f31,$f31 cmpeq $0,1,$1 ldq $2,80($30) addl $14,$2,$2 stq $2,72($30) bne $1,$L27 mov $10,$24 ldq $27,__divqu($29) !literal!7 ldq $2,64($30) jsr $23,($27),__divqu !lituse_jsr!7 stq $0,0($2) lda $2,8($2) cmpeq $27,1,$1 stq $2,64($30) cpys $f31,$f31,$f31 mov $27,$10 beq $1,$L27 br $31,$L24 .end facts .align 2 .align 4 .globl main .ent main main: .frame $30,0,$26,0 .mask 0x4000000,0 ldah $29,0($27) !gpdisp!10 lda $29,0($29) !gpdisp!10 $main..ng: lda $30,-16($30) ldah $16,2048($31) lda $16,-1($16) stq $26,0($30) .prologue 1 lda $17,-1($31) lda $18,3($31) lda $19,27($31) bsr $26,$facts..ng ldq $2,factab($29) !literal ldq $1,0($2) cmpeq $1,7,$1 beq $1,$L39 ldq $1,8($2) cmpeq $1,73,$1 bne $1,$L40 $L39: ldq $27,abort($29) !literal!12 jsr $26,($27),abort !lituse_jsr!12 .align 4 $L40: ldah $1,4($31) ldq $2,16($2) lda $1,513($1) cmpeq $2,$1,$2 beq $2,$L39 mov $31,$16 ldq $27,exit($29) !literal!11 jsr $26,($27),exit !lituse_jsr!11 .end main .comm factab,80,8 .ident "GCC: (GNU) 3.3.2"