Square
This commit is contained in:
parent
1a31859a31
commit
b65b33da25
5 changed files with 20 additions and 3 deletions
1
Makefile
1
Makefile
|
@ -24,6 +24,7 @@ CFLAGS += -fno-common# # Do not use common sections
|
||||||
CFLAGS += -march=rv64i# # Use RV64I ISA, i.e., integer only
|
CFLAGS += -march=rv64i# # Use RV64I ISA, i.e., integer only
|
||||||
CFLAGS += -mabi=lp64# # Use LP64 ABI, i.e., 64-bit longs and pointers, 32-bit ints
|
CFLAGS += -mabi=lp64# # Use LP64 ABI, i.e., 64-bit longs and pointers, 32-bit ints
|
||||||
CFLAGS += -Os# # Optimize for size
|
CFLAGS += -Os# # Optimize for size
|
||||||
|
CFLAGS += -Wall -Wunused -O2
|
||||||
|
|
||||||
LDFLAGS += -T link.ld # Use the linker script
|
LDFLAGS += -T link.ld # Use the linker script
|
||||||
LDFLAGS += --no-dynamic-linker
|
LDFLAGS += --no-dynamic-linker
|
||||||
|
|
2
link.ld
2
link.ld
|
@ -5,7 +5,7 @@ MEMORY {
|
||||||
|
|
||||||
SECTIONS {
|
SECTIONS {
|
||||||
.text : {
|
.text : {
|
||||||
main.o(.text.*)
|
*(.text)
|
||||||
*(.text)
|
*(.text)
|
||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
} > DRAM
|
} > DRAM
|
||||||
|
|
1
square.h
Normal file
1
square.h
Normal file
|
@ -0,0 +1 @@
|
||||||
|
int square(int, int);
|
15
square.s
Normal file
15
square.s
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
square:
|
||||||
|
addi sp,sp,-32
|
||||||
|
sd ra,24(sp)
|
||||||
|
sd s0,16(sp)
|
||||||
|
addi s0,sp,32
|
||||||
|
mv a5,a0
|
||||||
|
sw a5,-20(s0)
|
||||||
|
lw a5,-20(s0)
|
||||||
|
mulw a5,a5,a5
|
||||||
|
sext.w a5,a5
|
||||||
|
mv a0,a5
|
||||||
|
ld ra,24(sp)
|
||||||
|
ld s0,16(sp)
|
||||||
|
addi sp,sp,32
|
||||||
|
jr ra
|
Loading…
Reference in a new issue