diff --git a/link.ld b/link.ld index a89e3c7..fdcb3ce 100644 --- a/link.ld +++ b/link.ld @@ -5,7 +5,7 @@ MEMORY { SECTIONS { .text : { - *(.text) + main.o(.text.*) *(.text) . = ALIGN(4); } > DRAM diff --git a/main.s b/main.s index 733bb18..5881cc2 100644 --- a/main.s +++ b/main.s @@ -25,7 +25,7 @@ test_routine: ret # Prints "hello" manually -hello_manual: +hello_manual: addi a0, x0, 0x68 li a1, 0x10000000 sb a0, (a1) # 'h' diff --git a/Makefile b/makefile similarity index 98% rename from Makefile rename to makefile index c8e8f6f..e1c6069 100644 --- a/Makefile +++ b/makefile @@ -24,7 +24,6 @@ CFLAGS += -fno-common# # Do not use common sections 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 += -Os# # Optimize for size -CFLAGS += -Wall -Wunused -O2 LDFLAGS += -T link.ld # Use the linker script LDFLAGS += --no-dynamic-linker @@ -62,7 +61,7 @@ all: $(OBJS) @echo "CC $<" # Run the binary in QEMU -run: all +run: all @echo "To exit: Ctrl+A, X" @$(QEMU) $(QEMU_FLAGS) -bios $(TARGET) diff --git a/square.h b/square.h deleted file mode 100644 index cfe4f8f..0000000 --- a/square.h +++ /dev/null @@ -1 +0,0 @@ -int square(int, int); diff --git a/square.s b/square.s deleted file mode 100644 index fe48f24..0000000 --- a/square.s +++ /dev/null @@ -1,15 +0,0 @@ -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