| .text |
| .globl _start |
| .type _start,@function |
| _start: |
| ilhu $3,f5@h |
| iohl $3,f5@l |
| br f1 |
| |
| .data |
| .word f1, f2, f3, f4 |
| |
| .section ".f1.part1","ax",@progbits |
| .globl f1 |
| .type f1,@function |
| f1: |
| nop |
| stqd $0,16($1) |
| ai $1,$1,-64 |
| stqd $1,0($1) |
| brsl $0,f2 |
| brsl $0,f3 |
| .fill 800 |
| br .Lf1.part2 |
| .size f1,.-f1 |
| |
| .section ".f1.part2","ax",@progbits |
| .Lf1.part2: |
| ai $1,$1,64 |
| lqd $0,16($1) |
| bi $0 |
| .fill 800 |
| .size .Lf1.part2,.-.Lf1.part2 |
| |
| .section ".f2.part1","ax",@progbits |
| .globl f2 |
| .type f2,@function |
| f2: |
| ai $1,$1,-128 |
| stqd $1,0($1) |
| .fill 512 |
| ai $1,$1,128 |
| bi $0 |
| .size f2,.-f2 |
| |
| .section ".f3.part1","ax",@progbits |
| .type f3,@function |
| f3: |
| .fill 256 |
| bi $0 |
| .size f3,.-f3 |
| |
| .section ".f4.part1","ax",@progbits |
| .type f4,@function |
| f4: |
| stqd $(0),16($1) |
| stqd $1,-512($1) |
| ai $1,$1,-512 |
| brasl $0,f2 |
| .fill 800 |
| br .Lf4.part2 |
| .size f4,.-f4 |
| |
| .section ".f4.part2","ax",@progbits |
| .Lf4.part2: |
| #alloca |
| ilhu $3,-4000@h |
| iohl $3,-4000@l |
| a $4,$1,$3 |
| lnop |
| ori $1,$4,0 |
| stqd $4,0($4) |
| brsl $0,f5 |
| #recursion |
| brsl $0,f4 |
| lqd $1,0($1) |
| .fill 800 |
| br .Lf4.part3 |
| .size .Lf4.part2,.-.Lf4.part2 |
| |
| .section ".f4.part3","ax",@progbits |
| .Lf4.part3: |
| #recursion |
| brasl $0,f4 |
| brsl $0,f4 |
| .fill 800 |
| br .Lf4.part4 |
| .size .Lf4.part3,.-.Lf4.part3 |
| |
| .section ".f4.part4","ax",@progbits |
| .Lf4.part4: |
| .fill 800 |
| ila $3,512 |
| a $1,$1,$3 |
| lqd $0,16($1) |
| #sibling call |
| bra f5 |
| .size .Lf4.part4,.-.Lf4.part4 |
| |
| .section ".f5.part1","ax",@progbits |
| .type f5,@function |
| f5: |
| stqd $(0),16($1) |
| stqd $1,-512($1) |
| ai $1,$1,-512 |
| brsl $0,f5 |
| .fill 800 |
| ila $3,512 |
| a $1,$1,$3 |
| lqd $0,16($1) |
| bi $0 |
| .size f5,.-f5 |