Files
riscy-rust/test/fibonacci.s
2023-07-14 00:23:12 +01:00

77 lines
1.0 KiB
ArmAsm

.file "fibonacci.c"
.option nopic
.text
.align 2
.globl fib
.type fib, @function
fib:
addi sp,sp,-32
sw ra,28(sp)
sw s0,24(sp)
sw s1,20(sp)
addi s0,sp,32
sw a0,-20(s0)
lw a4,-20(s0)
li a5,1
bgt a4,a5,.L2
lw a5,-20(s0)
j .L3
.L2:
lw a5,-20(s0)
addi a5,a5,-1
mv a0,a5
call fib
mv s1,a0
lw a5,-20(s0)
addi a5,a5,-2
mv a0,a5
call fib
mv a5,a0
add a5,s1,a5
.L3:
mv a0,a5
lw ra,28(sp)
lw s0,24(sp)
lw s1,20(sp)
addi sp,sp,32
jr ra
.size fib, .-fib
.align 2
.globl return_function
.type return_function, @function
return_function:
addi sp,sp,-32
sw s0,28(sp)
addi s0,sp,32
sw a0,-20(s0)
lw a5,-20(s0)
mv a0,a5
lw s0,28(sp)
addi sp,sp,32
jr ra
.size return_function, .-return_function
.align 2
.globl main
.type main, @function
main:
addi sp,sp,-32
sw ra,28(sp)
sw s0,24(sp)
addi s0,sp,32
li a5,18
sw a5,-20(s0)
lw a0,-20(s0)
call fib
mv a5,a0
mv a0,a5
call return_function
sw a0,-24(s0)
lw a5,-24(s0)
mv a0,a5
lw ra,28(sp)
lw s0,24(sp)
addi sp,sp,32
jr ra
.size main, .-main
.ident "GCC: (GNU) 7.2.0"