From e3759bc2eac1db5c96fba8448c7851c7c9760de3 Mon Sep 17 00:00:00 2001 From: Sean Anderson Date: Thu, 5 Dec 2019 22:06:34 -0500 Subject: [PATCH 1/4] Initial support for iCE40 Builds but does not work on actual hardware. Perhaps due to something with the bram? --- boards/olimex_ice40hx8k/README.md | 17 +++++ boards/olimex_ice40hx8k/darksocv.mk | 110 +++++++++++++++++++++++++++ boards/olimex_ice40hx8k/darksocv.pcf | 16 ++++ rtl/config.vh | 63 +++++++++++++-- rtl/darksocv.v | 22 +++++- src/io.c | 3 +- 6 files changed, 221 insertions(+), 10 deletions(-) create mode 100644 boards/olimex_ice40hx8k/README.md create mode 100644 boards/olimex_ice40hx8k/darksocv.mk create mode 100644 boards/olimex_ice40hx8k/darksocv.pcf diff --git a/boards/olimex_ice40hx8k/README.md b/boards/olimex_ice40hx8k/README.md new file mode 100644 index 0000000..179edd8 --- /dev/null +++ b/boards/olimex_ice40hx8k/README.md @@ -0,0 +1,17 @@ +## AVNET Microboard LX9 + +The old AVNET Microboard LX9 is my preferred development board because is +small, easy to connect to the development environment and very complete, +with integrated JTAG, USB/serial and Ethernet! + +The board includes: + +- a XC6SLX9 FPGA w/ 324 pins +- lots of clocks: 40MHz, 66MHz and 100MHz +- on-board USB/serial (CP2102) +- on-board JTAG +- on-board SPI FLASH +- on-board 10/100Mbps ethernet PHY +- on-board DDR +- four LEDs +- some few GPIO pins diff --git a/boards/olimex_ice40hx8k/darksocv.mk b/boards/olimex_ice40hx8k/darksocv.mk new file mode 100644 index 0000000..906ed72 --- /dev/null +++ b/boards/olimex_ice40hx8k/darksocv.mk @@ -0,0 +1,110 @@ +# +# Copyright (c) 2018, Marcelo Samsoniuk +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this +# list of conditions and the following disclaimer. +# +# * Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions and the following disclaimer in the documentation +# and/or other materials provided with the distribution. +# +# * Neither the name of the copyright holder nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# +# ===8<--------------------------------------------------------- cut here! +# +# The general concept is based in the article: +# +# https://www.fpgarelated.com/showarticle/786.php +# +# However, since the ISE GUI itself creates a "darksocv.cmd_log" file with +# all commands executed and the respective options, it is possible change +# some options in the ISE and check the file in order to understand how +# enable/disable the different options. +# + +# board Avnet Microboard LX9 +#BOARD = avnet_microboard_lx9 +#DEVICE = xc6slx9-csg324-2 + +# board Xilinx AC701 A200 +#BOARD = xilinx_ac701_a200 +#DEVICE = xc7a200t-fbg676-2 + +# board QMTech SDRAM LX16 +#BOARD = qmtech_sdram_lx16 +#DEVICE = xc6slx16-ftg256-2 + +# board Olimex iCE40HX8k-EVB +BOARD = olimex_ice40hx8k +PNR = nextpnr-ice40 +#PNR = arachne-pnr + +ISE = ../boards/$(BOARD) +RTL = ../rtl +SRC = ../src +TMP = ../tmp + +BLIF = $(TMP)/darksocv.blif +JSON = $(TMP)/darksocv.json +PCF = $(ISE)/darksocv.pcf +ASC = $(TMP)/darksocv.asc +BIT = $(TMP)/darksocv.bit + +PRJS = $(ISE)/darksocv.prj +RTLS = $(RTL)/darksocv.v $(RTL)/darkriscv.v $(RTL)/darkuart.v $(RTL)/config.vh + +ifdef HARVARD + BOOT = $(SRC)/darksocv.rom.mem $(SRC)/darksocv.ram.mem +else + BOOT = $(SRC)/darksocv.mem +endif + +ifeq ($(PNR),nextpnr-ice40) +PNR_NEXT = 1 +else +PNR_NEXT = 0 +endif + +default: all + +$(BLIF): $(RTLS) + yosys -q -p "read_verilog -noautowire -DOLIMEX_ICE40HX8K=1 $(RTLS); synth_ice40 -top darksocv -blif $@" + +$(JSON): $(RTLS) + yosys -q -p "read_verilog -noautowire -DOLIMEX_ICE40HX8K=1 $(RTLS); synth_ice40 -top darksocv -json $@" + +$(ASC): $(if $(PNR_NEXT),$(JSON),$(BLIF)) +ifeq ($(PNR_NEXT),1) + $(PNR) --hx8k --package ct256 --pcf $(PCF) $(PNRFLAGS) --asc $@ --json $< +else + $(PNR) -d 8k -P ct256 -p $(PCF) $(PNRFLAGS) -o $@ $< +endif + +$(BIT): $(ASC) + icepack $< $@ + +.PHONY: all +all: $(BIT) $(BOOT) $(RTLS) + +install: $(BIT) + iceprog $< + +clean: + -rm -v $(TMP)/* diff --git a/boards/olimex_ice40hx8k/darksocv.pcf b/boards/olimex_ice40hx8k/darksocv.pcf new file mode 100644 index 0000000..11cca46 --- /dev/null +++ b/boards/olimex_ice40hx8k/darksocv.pcf @@ -0,0 +1,16 @@ +set_io XCLK J3 + +set_io XRES K11 + +set_io LED[3] E4 # PIO3_00/IOL_1A +set_io LED[2] B2 # PIO3_01/IOL_1B +set_io LED[1] R16 +set_io LED[0] M12 + +set_io UART_RXD L11 +set_io UART_TXD T16 + +set_io DEBUG[3] P15 # TDO +set_io DEBUG[2] P14 # TCK +set_io DEBUG[1] R15 # TMS +set_io DEBUG[0] R14 # TDI diff --git a/rtl/config.vh b/rtl/config.vh index 8919fd0..7e34eab 100644 --- a/rtl/config.vh +++ b/rtl/config.vh @@ -75,7 +75,7 @@ // performance impact. Note: threading is currently supported only in the // 3-stage pipeline version. -`define __THREADING__ +//`define __THREADING__ // performance measurement: // @@ -96,7 +96,7 @@ // designed for DSP applications. with some effort (low level machine // code), it is possible peak 100MMAC/s @100MHz. -`define __MAC16X16__ +//`define __MAC16X16__ // RV32I vs RV32E: // @@ -116,11 +116,12 @@ // the stack can be positioned in the top of RAM and does not match with the // .data. -`define __HARVARD__ +`define __RESETPC__ 32'd0 +`define __RESETSP__ 32'd8192 // full harvard architecture: // -// When defined, enforses that the instruction and data buses are connected +// When defined, enforces that the instruction and data buses are connected // to fully separate memory banks. Although the darkriscv always use // harvard architecture in the core, with separate instruction and data // buses, the logic levels outside the core can use different architectures @@ -134,8 +135,7 @@ // // for spartan-7 devices, always use full harvard architecture! -`define __RESETPC__ 32'd0 -`define __RESETSP__ 32'd8192 +`define __HARVARD__ // board definition: // @@ -192,16 +192,65 @@ `define BOARD_CK 50000000 `endif +`ifdef OLIMEX_ICE40HX8K + `define BOARD_ID 4 + `define BOARD_CK_REF 100000000 + `ifdef __3STAGE__ + `ifdef __THREADING__ + `define BOARD_CK_30 + `elsif __MAC16X16__ + `define BOARD_CK_25 + `else + `define BOARD_CK_40 + `endif + `else + `ifdef __MAC16X16__ + `define BOARD_CK_16 + `else + `define BOARD_CK_25 + `endif + `endif + `ifdef BOARD_CK_40 + `define BOARD_CK 40000000 + `define BOARD_CK_DIVR 4'd4 + `define BOARD_CK_DIVF 7'd31 + `define BOARD_CK_DIVQ 3'd4 + `define BOARD_CK_FILTER 3'd2 + `elsif BOARD_CK_30 + `define BOARD_CK 30000000 + `define BOARD_CK_DIVR 4'd4 + `define BOARD_CK_DIVF 7'd47 + `define BOARD_CK_DIVQ 3'd5 + `define BOARD_CK_FILTER 3'd2 + `elsif BOARD_CK_25 + `define BOARD_CK 25000000 + `define BOARD_CK_DIVR 4'd0 + `define BOARD_CK_DIVF 7'd7 + `define BOARD_CK_DIVQ 3'd5 + `define BOARD_CK_FILTER 3'd5 + `elsif BOARD_CK_16 + `define BOARD_CK 16250000 + `define BOARD_CK_DIVR 4'd4 + `define BOARD_CK_DIVF 7'd51 + `define BOARD_CK_DIVQ 3'd6 + `define BOARD_CK_FILTER 3'd2 + `else + `undef WARNING_PREPROCESSOR_SHOULD_NOT_REACH_THIS_LOCATION + `endif +`endif + `ifndef BOARD_ID `define BOARD_ID 0 `define BOARD_CK 100000000 `endif `ifdef BOARD_CK_REF +`ifndef BOARD_CK `define BOARD_CK (`BOARD_CK_REF * `BOARD_CK_MUL / `BOARD_CK_DIV) `endif +`endif -// darkuart baudrate automtically calculated according to board clock: +// darkuart baudrate automatically calculated according to board clock: `ifndef __UARTSPEED__ `define __UARTSPEED__ 115200 diff --git a/rtl/darksocv.v b/rtl/darksocv.v index ed93ddd..1d15e9d 100644 --- a/rtl/darksocv.v +++ b/rtl/darksocv.v @@ -122,6 +122,7 @@ module darksocv //`define BOARD_CK (`BOARD_CK_REF * `BOARD_CK_MUL / `BOARD_CK_DIV) wire DCM_LOCKED; + wire CLK; // useful script to calculate MUL/DIV values: // @@ -130,7 +131,8 @@ module darksocv // example: reference w/ 66MHz, m=19, d=13 and fx=97.4MHz. not so useful after I discovered // that my evaluation board already has external clock generator :D - DCM_SP #( +`ifndef OLIMEX_ICE40HX8K + DCM_SP #( .CLKDV_DIVIDE(2.0), // CLKDV divide value // (1.5,2,2.5,3,3.5,4,4.5,5,5.5,6,6.5,7,7.5,8,9,10,11,12,13,14,15,16). .CLKFX_DIVIDE(`BOARD_CK_DIV), // Divide value on CLKFX outputs - D - (1-32) @@ -169,6 +171,22 @@ module darksocv //.PSINCDEC(PSINCDEC), // 1-bit input: Phase shift increment/decrement input .RST(IRES[7]) // 1-bit input: Active high reset input ); +`else + SB_PLL40_CORE #( + .FEEDBACK_PATH("SIMPLE"), + .DIVR(`BOARD_CK_DIVR), + .DIVF(`BOARD_CK_DIVF), + .DIVQ(`BOARD_CK_DIVQ), + .FILTER_RANGE(`BOARD_CK_FILTER) + ) + SB_PLL40_CORE_inst ( + .LOCK(DCM_LOCKED), + .RESETB(IRES[7]), + .BYPASS(1'b0), + .REFERENCECLK(XCLK), + .PLLOUTCORE(CLK) + ); +`endif reg [7:0] DRES = -1; @@ -672,4 +690,4 @@ module darksocv assign DEBUG = { GPIOFF[0], XTIMER, WR, RD }; // UDEBUG; -endmodule \ No newline at end of file +endmodule diff --git a/src/io.c b/src/io.c index d42995d..adc0727 100644 --- a/src/io.c +++ b/src/io.c @@ -60,6 +60,7 @@ char *board_name(int id) id==1 ? "avnet microboard spartan-6 lx9": id==2 ? "xilinx ac701 artix-7 a200" : id==3 ? "qmtech sdram lx16" : - id==4 ? "unknown host x86" : + id==4 ? "olimex ice40hx8k-evb" : + id==5 ? "unknown host x86" : "unknown"; } From 6231f23dcc6ae4d7591f24cb643ad0d470ff8527 Mon Sep 17 00:00:00 2001 From: Sean Anderson Date: Thu, 5 Dec 2019 22:58:21 -0500 Subject: [PATCH 2/4] Add a gitignore --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e27009d --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +tmp/* +sim/darksocv +sim/darksocv.vcd From 319cb331003bac0be1855448db41a3314270c0b9 Mon Sep 17 00:00:00 2001 From: Sean Anderson Date: Fri, 6 Dec 2019 02:15:14 -0500 Subject: [PATCH 3/4] Remove compiled files from the repo Generated files should be kept out of source control (unless they are lengthy or difficult to create). --- .gitignore | 6 + src/banner.o | Bin 1400 -> 0 bytes src/banner.s | 46 -- src/boot.o | Bin 1660 -> 0 bytes src/boot.s | 57 -- src/darksocv.ld | 27 - src/darksocv.lst | 1080 ---------------------------------- src/darksocv.map | 119 ---- src/darksocv.mem | 1339 ------------------------------------------ src/darksocv.o | Bin 10936 -> 0 bytes src/darksocv.ram.mem | 310 ---------- src/darksocv.rom.mem | 1010 ------------------------------- src/io.o | Bin 1652 -> 0 bytes src/io.s | 72 --- src/main.o | Bin 10124 -> 0 bytes src/main.s | 612 ------------------- src/stdio.o | Bin 7660 -> 0 bytes src/stdio.s | 706 ---------------------- 18 files changed, 6 insertions(+), 5378 deletions(-) delete mode 100644 src/banner.o delete mode 100644 src/banner.s delete mode 100644 src/boot.o delete mode 100644 src/boot.s delete mode 100644 src/darksocv.ld delete mode 100644 src/darksocv.lst delete mode 100644 src/darksocv.map delete mode 100644 src/darksocv.mem delete mode 100755 src/darksocv.o delete mode 100644 src/darksocv.ram.mem delete mode 100644 src/darksocv.rom.mem delete mode 100644 src/io.o delete mode 100644 src/io.s delete mode 100644 src/main.o delete mode 100644 src/main.s delete mode 100644 src/stdio.o delete mode 100644 src/stdio.s diff --git a/.gitignore b/.gitignore index e27009d..e375683 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,9 @@ tmp/* sim/darksocv sim/darksocv.vcd +*.ld +*.lst +*.map +*.mem +*.s +*.o diff --git a/src/banner.o b/src/banner.o deleted file mode 100644 index 02b8e91b704a1f5a602493c812dcea183700d3bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1400 zcma)*L2DC16vy8rn@zi>b+ak8w1R^v+Lp2;ZG|Wv8e>}urGln-@v==9D>QAGuAv3N zme`9o>A_16eh9&H?;iXJf`T4ITI^Ab|Cil~s|fnSoA-PF_hvG?Gy8OIXatO$ z)`CH`qcpYTaW*-+pKXnnvslY{$i2oWwQira51*a2bLo@zhvy%^=MK`8m#5t|T2}>a zom~1M`2kb!a0bAgHum#S5k*f?CS`%|rKbZe90k*-8w3LH5fP4TEJ5hsHLZ%nR zvbZOz;;vW`6~skx2a1F?hwL8cz9>Vff~u%VaSIhG<}qU~VI_zbDwP{@Y+-q2TwZqz zZb42JilsuSSdwG@PQzD^>i%ZnZH(hk{;>Et8+6)^my^HU0-_{-aZ8dBPf<#K`uED3^ z(@}-$e!bS%rN-l+w(cpO!cQ@5GKD-HB4rRqBAr?566~-5lW?t1f}K7LFlMbcz*=Y4 z`c1H%#sFJ`+dUnmCkWZzkjdTNtq0yJVxYpfu1WbDo*Vc(0l8~l;E}t!y-lv#;)L6a z?hLuLtvVlmwAz0Ki7vhu(W4W8_j_<{`qcSsm}hkX*W(DxkHqu2#;@s0l8^r=5+cCt65IZCHXvas?wJ#9gBjdfCgY$ZP fxA;i(-hlKLlXx%McrCUpJl=PNWU*5T2i^A*YZ#J@ diff --git a/src/banner.s b/src/banner.s deleted file mode 100644 index 05ade35..0000000 --- a/src/banner.s +++ /dev/null @@ -1,46 +0,0 @@ - .file "banner.c" - .option nopic - .text - .align 2 - .globl banner - .type banner, @function -banner: - addi sp,sp,-288 - lui a1,%hi(.LC0) - li a2,269 - addi a1,a1,%lo(.LC0) - addi a0,sp,4 - sw ra,284(sp) - sw s0,280(sp) - sw s1,276(sp) - call memcpy - li a0,10 - call putchar - addi s0,sp,4 -.L2: - lbu a5,0(s0) - bnez a5,.L5 - lw ra,284(sp) - lw s0,280(sp) - lw s1,276(sp) - addi sp,sp,288 - jr ra -.L5: - addi s0,s0,2 - lbu s1,-1(s0) -.L3: - addi s1,s1,-1 - li a4,-1 - beq s1,a4,.L2 - mv a0,a5 - sw a5,0(sp) - call putchar - lw a5,0(sp) - j .L3 - .size banner, .-banner - .section .rodata.str1.4,"aMS",@progbits,1 - .align 2 -.LC0: - .ascii " \016v \n\001 \022v\034\n\001" - .string "r\r \007v\032\n\001r\020 \006v\030\n\001r\022 \004v\030\n\001r\022 \004v\030\n\001r\022 \004v\030\n\001r\020 \006v\026 \002\n\001r\r \007v\026 \004\n\001r\002 \020v\026 \006\n\001r\002 \fv\030 \006r\002\n\001r\004 \006v\032 \006r\004\n\001r\006 \006v\026 \006r\006\n\001r\b \006v\022 \006r\b\n\001r\n \006v\016 \006r\n\n\001r\f \006v\n \006r\f\n\001r\016 \006v\006 \006r\016\n\001r\020 \006v\002 \006r\020\n\001r\022 \nr\022\n\001r\024 \006r\024\n\001r\026 \002r\026\n\002 \007I\001N\001S\001T\001R\001U\001C\001T\001I\001O\001N\001 \001S\001E\001T\001S\001 \001W\001A\001N\001T\001 \001T\001O\001 \001B\001E\001 \001F\001R\001E\002\n\002" - .ident "GCC: (GNU) 9.0.0 20180818 (experimental)" diff --git a/src/boot.o b/src/boot.o deleted file mode 100644 index 3cf33dea9091e818f1ece32323b4677d82de5536..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1660 zcma)+U279T6o%h5Uu|u*O_XXd`N;#QZ`$tAlTBX zH{NIp-U{_66zo6n4+#AOf;YWrQLs0DoOd&muDQ_@X3lfoIWs$Zb|%kn6>l4c0c{4p z;Wz^JgWZv==TaELAm$>###96`!}y)N{05zux%C~}>tE11xcIBoYPsnJ)2*($`KuMPV!Jkd+qKJ2 z1crdZ;^KmtD%`z4ZO&V1D{aoCGr4pwlQUD*)#a*FZ&aJEy)@meiNE*PEQrJ3{;|Mc z6$JwF^IHI_$Vv<#gaLno#3K@~^)v%x!uNdfS>Y{T+(Ur?!Z@#lUGY)b&jnw?sPJT8 z?0-d$XZptH`{I0GT`xKd=NjpY@$T(cdN z>}Ip-VA-iR-N$Iy^`^ISeE9eQvkFvVlhlT%%?E#78Wyvwjk?KUi@#enG IO - .text : - { - boot.o(.text) - *(.text) - } > ROM - .data : - { - *(.sbss) - *(.rodata*) - *(.data) - *(.bss) - *(.rela*) - *(COMMON) - } > RAM -} diff --git a/src/darksocv.lst b/src/darksocv.lst deleted file mode 100644 index 3fb5a25..0000000 --- a/src/darksocv.lst +++ /dev/null @@ -1,1080 +0,0 @@ - -darksocv.o: file format elf32-littleriscv - - -Disassembly of section .text: - -00000000 : - 0: 00001737 lui a4,0x1 - 4: 00472783 lw a5,4(a4) # 1004 - 8: ff010113 addi sp,sp,-16 - c: 00912223 sw s1,4(sp) - 10: 00178693 addi a3,a5,1 - 14: 800004b7 lui s1,0x80000 - 18: 00d72223 sw a3,4(a4) - 1c: 00812423 sw s0,8(sp) - 20: 00112623 sw ra,12(sp) - 24: 0017f793 andi a5,a5,1 - 28: 00048713 mv a4,s1 - 2c: f8000693 li a3,-128 - 30: 00f12023 sw a5,0(sp) - 34: 00d701a3 sb a3,3(a4) - 38: 00001437 lui s0,0x1 - 3c: 02079a63 bnez a5,70 - 40: 03000513 li a0,48 - 44: 0e8000ef jal ra,12c - 48: 000004b7 lui s1,0x0 - 4c: 7d0000ef jal ra,81c - 50: 00001537 lui a0,0x1 - 54: 01010693 addi a3,sp,16 - 58: 00040613 mv a2,s0 - 5c: 00048593 mv a1,s1 - 60: 08850513 addi a0,a0,136 # 1088 - 64: 324000ef jal ra,388 - 68: 029000ef jal ra,890
- 6c: fe1ff06f j 4c - 70: 03100513 li a0,49 - 74: 0b8000ef jal ra,12c - 78: 00048493 mv s1,s1 - 7c: f8000713 li a4,-128 - 80: 00042783 lw a5,0(s0) # 1000 - 84: 00178693 addi a3,a5,1 - 88: 0147d793 srli a5,a5,0x14 - 8c: 0017c793 xori a5,a5,1 - 90: 00d42023 sw a3,0(s0) - 94: 0017f793 andi a5,a5,1 - 98: 00f49423 sh a5,8(s1) # 8 - 9c: 00e481a3 sb a4,3(s1) - a0: fe1ff06f j 80 - -000000a4 : - a4: 02050863 beqz a0,d4 - a8: 00100793 li a5,1 - ac: 02f50a63 beq a0,a5,e0 - b0: 00200793 li a5,2 - b4: 02f50c63 beq a0,a5,ec - b8: 00300793 li a5,3 - bc: 02f50e63 beq a0,a5,f8 - c0: 00400793 li a5,4 - c4: 04f50063 beq a0,a5,104 - c8: 00001537 lui a0,0x1 - cc: 08050513 addi a0,a0,128 # 1080 - d0: 00008067 ret - d4: 00001537 lui a0,0x1 - d8: 03c50513 addi a0,a0,60 # 103c - dc: 00008067 ret - e0: 00001537 lui a0,0x1 - e4: 04c50513 addi a0,a0,76 # 104c - e8: 00008067 ret - ec: 00001537 lui a0,0x1 - f0: 02050513 addi a0,a0,32 # 1020 - f4: 00008067 ret - f8: 00001537 lui a0,0x1 - fc: 06c50513 addi a0,a0,108 # 106c - 100: 00008067 ret - 104: 00001537 lui a0,0x1 - 108: 00c50513 addi a0,a0,12 # 100c - 10c: 00008067 ret - -00000110 : - 110: 800007b7 lui a5,0x80000 - 114: 00078793 mv a5,a5 - 118: 0047c703 lbu a4,4(a5) # 80000004 - 11c: 00277713 andi a4,a4,2 - 120: fe070ce3 beqz a4,118 - 124: 0057c503 lbu a0,5(a5) - 128: 00008067 ret - -0000012c : - 12c: 800007b7 lui a5,0x80000 - 130: 00a00713 li a4,10 - 134: 00078793 mv a5,a5 - 138: 00e51c63 bne a0,a4,150 - 13c: 0047c703 lbu a4,4(a5) # 80000004 - 140: 00177713 andi a4,a4,1 - 144: fe071ce3 bnez a4,13c - 148: 00d00713 li a4,13 - 14c: 00e782a3 sb a4,5(a5) - 150: 0047c703 lbu a4,4(a5) - 154: 00177713 andi a4,a4,1 - 158: fe071ce3 bnez a4,150 - 15c: 0ff57713 andi a4,a0,255 - 160: 00e782a3 sb a4,5(a5) - 164: 00070513 mv a0,a4 - 168: 00008067 ret - -0000016c : - 16c: fe810113 addi sp,sp,-24 - 170: 00812823 sw s0,16(sp) - 174: 00912623 sw s1,12(sp) - 178: 00112a23 sw ra,20(sp) - 17c: 00050493 mv s1,a0 - 180: 00050413 mv s0,a0 - 184: fff58713 addi a4,a1,-1 - 188: 02070063 beqz a4,1a8 - 18c: 00b12223 sw a1,4(sp) - 190: 00e12023 sw a4,0(sp) - 194: f7dff0ef jal ra,110 - 198: 00a00693 li a3,10 - 19c: 00012703 lw a4,0(sp) - 1a0: 00412583 lw a1,4(sp) - 1a4: 02d51863 bne a0,a3,1d4 - 1a8: 00a00513 li a0,10 - 1ac: f81ff0ef jal ra,12c - 1b0: 00040023 sb zero,0(s0) - 1b4: 00941463 bne s0,s1,1bc - 1b8: 00000493 li s1,0 - 1bc: 01412083 lw ra,20(sp) - 1c0: 01012403 lw s0,16(sp) - 1c4: 00048513 mv a0,s1 - 1c8: 00c12483 lw s1,12(sp) - 1cc: 01810113 addi sp,sp,24 - 1d0: 00008067 ret - 1d4: 00b12423 sw a1,8(sp) - 1d8: 00e12223 sw a4,4(sp) - 1dc: 00d00693 li a3,13 - 1e0: 00a12023 sw a0,0(sp) - 1e4: fcd502e3 beq a0,a3,1a8 - 1e8: f45ff0ef jal ra,12c - 1ec: 00012783 lw a5,0(sp) - 1f0: 00800693 li a3,8 - 1f4: 00412703 lw a4,4(sp) - 1f8: 00812583 lw a1,8(sp) - 1fc: 00d79e63 bne a5,a3,218 - 200: 00940863 beq s0,s1,210 - 204: fe040fa3 sb zero,-1(s0) - 208: 00058713 mv a4,a1 - 20c: fff40413 addi s0,s0,-1 - 210: 00070593 mv a1,a4 - 214: f71ff06f j 184 - 218: 00f40023 sb a5,0(s0) - 21c: 00140413 addi s0,s0,1 - 220: ff1ff06f j 210 - -00000224 : - 224: ff410113 addi sp,sp,-12 - 228: 00812223 sw s0,4(sp) - 22c: 00112423 sw ra,8(sp) - 230: 00050413 mv s0,a0 - 234: 00051663 bnez a0,240 - 238: 00001437 lui s0,0x1 - 23c: 0ec40413 addi s0,s0,236 # 10ec - 240: 00044503 lbu a0,0(s0) - 244: 00051a63 bnez a0,258 - 248: 00812083 lw ra,8(sp) - 24c: 00412403 lw s0,4(sp) - 250: 00c10113 addi sp,sp,12 - 254: 00008067 ret - 258: 00140413 addi s0,s0,1 - 25c: ed1ff0ef jal ra,12c - 260: fe1ff06f j 240 - -00000264 : - 264: ff410113 addi sp,sp,-12 - 268: 00112423 sw ra,8(sp) - 26c: fb9ff0ef jal ra,224 - 270: 00812083 lw ra,8(sp) - 274: 00a00513 li a0,10 - 278: 00c10113 addi sp,sp,12 - 27c: eb1ff06f j 12c - -00000280 : - 280: fac10113 addi sp,sp,-84 - 284: 00b12023 sw a1,0(sp) - 288: 000015b7 lui a1,0x1 - 28c: 04812623 sw s0,76(sp) - 290: 04912423 sw s1,72(sp) - 294: 02c00613 li a2,44 - 298: 0ac58493 addi s1,a1,172 # 10ac - 29c: 00050413 mv s0,a0 - 2a0: 0ac58593 addi a1,a1,172 - 2a4: 01c10513 addi a0,sp,28 - 2a8: 04112823 sw ra,80(sp) - 2ac: 210000ef jal ra,4bc - 2b0: 01400613 li a2,20 - 2b4: 02c48593 addi a1,s1,44 - 2b8: 00810513 addi a0,sp,8 - 2bc: 200000ef jal ra,4bc - 2c0: 00012703 lw a4,0(sp) - 2c4: 00810793 addi a5,sp,8 - 2c8: 00070463 beqz a4,2d0 - 2cc: 01c10793 addi a5,sp,28 - 2d0: 01800493 li s1,24 - 2d4: 0007a583 lw a1,0(a5) - 2d8: 00059c63 bnez a1,2f0 - 2dc: 05012083 lw ra,80(sp) - 2e0: 04c12403 lw s0,76(sp) - 2e4: 04812483 lw s1,72(sp) - 2e8: 05410113 addi sp,sp,84 - 2ec: 00008067 ret - 2f0: 00100713 li a4,1 - 2f4: 00e58463 beq a1,a4,2fc - 2f8: 04b46063 bltu s0,a1,338 - 2fc: 00012683 lw a3,0(sp) - 300: 00001737 lui a4,0x1 - 304: 00f12223 sw a5,4(sp) - 308: 0f470713 addi a4,a4,244 # 10f4 - 30c: 02068c63 beqz a3,344 - 310: 00040513 mv a0,s0 - 314: 400000ef jal ra,714 <__udivsi3> - 318: 00a00593 li a1,10 - 31c: 400000ef jal ra,71c <__umodsi3> - 320: 000017b7 lui a5,0x1 - 324: 0f478713 addi a4,a5,244 # 10f4 - 328: 00a70533 add a0,a4,a0 - 32c: 00054503 lbu a0,0(a0) - 330: dfdff0ef jal ra,12c - 334: 00412783 lw a5,4(sp) - 338: ff848493 addi s1,s1,-8 - 33c: 00478793 addi a5,a5,4 - 340: f95ff06f j 2d4 - 344: 00448693 addi a3,s1,4 - 348: 00d456b3 srl a3,s0,a3 - 34c: 00f6f693 andi a3,a3,15 - 350: 00d706b3 add a3,a4,a3 - 354: 0006c503 lbu a0,0(a3) - 358: dd5ff0ef jal ra,12c - 35c: 00945533 srl a0,s0,s1 - 360: 000017b7 lui a5,0x1 - 364: 00f57513 andi a0,a0,15 - 368: 0f478713 addi a4,a5,244 # 10f4 - 36c: 00a70733 add a4,a4,a0 - 370: 00074503 lbu a0,0(a4) - 374: fbdff06f j 330 - -00000378 : - 378: 00000593 li a1,0 - 37c: f05ff06f j 280 - -00000380 : - 380: 00100593 li a1,1 - 384: efdff06f j 280 - -00000388 : - 388: fdc10113 addi sp,sp,-36 - 38c: 02f12023 sw a5,32(sp) - 390: 01010793 addi a5,sp,16 - 394: 00812423 sw s0,8(sp) - 398: 00112623 sw ra,12(sp) - 39c: 00912223 sw s1,4(sp) - 3a0: 00050413 mv s0,a0 - 3a4: 00b12823 sw a1,16(sp) - 3a8: 00c12a23 sw a2,20(sp) - 3ac: 00d12c23 sw a3,24(sp) - 3b0: 00e12e23 sw a4,28(sp) - 3b4: 00f12023 sw a5,0(sp) - 3b8: 00044503 lbu a0,0(s0) - 3bc: 00051c63 bnez a0,3d4 - 3c0: 00c12083 lw ra,12(sp) - 3c4: 00812403 lw s0,8(sp) - 3c8: 00412483 lw s1,4(sp) - 3cc: 02410113 addi sp,sp,36 - 3d0: 00008067 ret - 3d4: 02500793 li a5,37 - 3d8: 00140493 addi s1,s0,1 - 3dc: 06f51a63 bne a0,a5,450 - 3e0: 00144503 lbu a0,1(s0) - 3e4: 07300793 li a5,115 - 3e8: 02f51063 bne a0,a5,408 - 3ec: 00012783 lw a5,0(sp) - 3f0: 0007a503 lw a0,0(a5) - 3f4: 00478713 addi a4,a5,4 - 3f8: 00e12023 sw a4,0(sp) - 3fc: e29ff0ef jal ra,224 - 400: 00148413 addi s0,s1,1 - 404: fb5ff06f j 3b8 - 408: 07800793 li a5,120 - 40c: 00f51e63 bne a0,a5,428 - 410: 00012783 lw a5,0(sp) - 414: 0007a503 lw a0,0(a5) - 418: 00478713 addi a4,a5,4 - 41c: 00e12023 sw a4,0(sp) - 420: f59ff0ef jal ra,378 - 424: fddff06f j 400 - 428: 06400793 li a5,100 - 42c: 00f51e63 bne a0,a5,448 - 430: 00012783 lw a5,0(sp) - 434: 0007a503 lw a0,0(a5) - 438: 00478713 addi a4,a5,4 - 43c: 00e12023 sw a4,0(sp) - 440: f41ff0ef jal ra,380 - 444: fbdff06f j 400 - 448: ce5ff0ef jal ra,12c - 44c: fb5ff06f j 400 - 450: cddff0ef jal ra,12c - 454: 00040493 mv s1,s0 - 458: fa9ff06f j 400 - -0000045c : - 45c: fff60613 addi a2,a2,-1 - 460: 00000793 li a5,0 - 464: 00f50733 add a4,a0,a5 - 468: 00074683 lbu a3,0(a4) - 46c: 00f58733 add a4,a1,a5 - 470: 00074703 lbu a4,0(a4) - 474: 00c78a63 beq a5,a2,488 - 478: 00068863 beqz a3,488 - 47c: 00070663 beqz a4,488 - 480: 00178793 addi a5,a5,1 - 484: fee680e3 beq a3,a4,464 - 488: 40e68533 sub a0,a3,a4 - 48c: 00008067 ret - -00000490 : - 490: fff00613 li a2,-1 - 494: fc9ff06f j 45c - -00000498 : - 498: 00000793 li a5,0 - 49c: 00f50733 add a4,a0,a5 - 4a0: 00074703 lbu a4,0(a4) - 4a4: 00070863 beqz a4,4b4 - 4a8: 00178793 addi a5,a5,1 - 4ac: 00f50733 add a4,a0,a5 - 4b0: fe0716e3 bnez a4,49c - 4b4: 00078513 mv a0,a5 - 4b8: 00008067 ret - -000004bc : - 4bc: 00000793 li a5,0 - 4c0: 00c79463 bne a5,a2,4c8 - 4c4: 00008067 ret - 4c8: 00f58733 add a4,a1,a5 - 4cc: 00074683 lbu a3,0(a4) - 4d0: 00f50733 add a4,a0,a5 - 4d4: 00178793 addi a5,a5,1 - 4d8: 00d70023 sb a3,0(a4) - 4dc: fe5ff06f j 4c0 - -000004e0 : - 4e0: 00c50633 add a2,a0,a2 - 4e4: 00050793 mv a5,a0 - 4e8: 00c79463 bne a5,a2,4f0 - 4ec: 00008067 ret - 4f0: 00178793 addi a5,a5,1 - 4f4: feb78fa3 sb a1,-1(a5) - 4f8: ff1ff06f j 4e8 - -000004fc : - 4fc: fec10113 addi sp,sp,-20 - 500: 00812623 sw s0,12(sp) - 504: 00050413 mv s0,a0 - 508: 00058513 mv a0,a1 - 50c: 00912423 sw s1,8(sp) - 510: 00112823 sw ra,16(sp) - 514: 00058493 mv s1,a1 - 518: f81ff0ef jal ra,498 - 51c: 00050693 mv a3,a0 - 520: 00041863 bnez s0,530 - 524: 000017b7 lui a5,0x1 - 528: 0087a403 lw s0,8(a5) # 1008 - 52c: 04040863 beqz s0,57c - 530: 00040793 mv a5,s0 - 534: 0007c703 lbu a4,0(a5) - 538: 00071863 bnez a4,548 - 53c: 000017b7 lui a5,0x1 - 540: 0007a423 sw zero,8(a5) # 1008 - 544: 0380006f j 57c - 548: 00068613 mv a2,a3 - 54c: 00078513 mv a0,a5 - 550: 00048593 mv a1,s1 - 554: 00d12223 sw a3,4(sp) - 558: 00f12023 sw a5,0(sp) - 55c: f01ff0ef jal ra,45c - 560: 00012783 lw a5,0(sp) - 564: 00412683 lw a3,4(sp) - 568: 00178713 addi a4,a5,1 - 56c: 02051463 bnez a0,594 - 570: 00078023 sb zero,0(a5) - 574: 000017b7 lui a5,0x1 - 578: 00e7a423 sw a4,8(a5) # 1008 - 57c: 00040513 mv a0,s0 - 580: 01012083 lw ra,16(sp) - 584: 00c12403 lw s0,12(sp) - 588: 00812483 lw s1,8(sp) - 58c: 01410113 addi sp,sp,20 - 590: 00008067 ret - 594: 00070793 mv a5,a4 - 598: f9dff06f j 534 - -0000059c : - 59c: 00000693 li a3,0 - 5a0: 00000793 li a5,0 - 5a4: 02d00613 li a2,45 - 5a8: 00051c63 bnez a0,5c0 - 5ac: 02069e63 bnez a3,5e8 - 5b0: 00078513 mv a0,a5 - 5b4: 00008067 ret - 5b8: 00100693 li a3,1 - 5bc: 0240006f j 5e0 - 5c0: 00054703 lbu a4,0(a0) - 5c4: fe0704e3 beqz a4,5ac - 5c8: fec708e3 beq a4,a2,5b8 - 5cc: 00379593 slli a1,a5,0x3 - 5d0: fd070713 addi a4,a4,-48 - 5d4: 00b70733 add a4,a4,a1 - 5d8: 00179793 slli a5,a5,0x1 - 5dc: 00f707b3 add a5,a4,a5 - 5e0: 00150513 addi a0,a0,1 - 5e4: fc5ff06f j 5a8 - 5e8: 40f007b3 neg a5,a5 - 5ec: fc5ff06f j 5b0 - -000005f0 : - 5f0: 00050693 mv a3,a0 - 5f4: 03900613 li a2,57 - 5f8: 00000513 li a0,0 - 5fc: 00068663 beqz a3,608 - 600: 0006c783 lbu a5,0(a3) - 604: 00079463 bnez a5,60c - 608: 00008067 ret - 60c: 00451713 slli a4,a0,0x4 - 610: 00f66a63 bltu a2,a5,624 - 614: fd078793 addi a5,a5,-48 - 618: 00e78533 add a0,a5,a4 - 61c: 00168693 addi a3,a3,1 - 620: fddff06f j 5fc - 624: 05f7f793 andi a5,a5,95 - 628: fc978793 addi a5,a5,-55 - 62c: fedff06f j 618 - -00000630 : - 630: 857f 0x857f - 632: 00c5 addi ra,ra,17 - 634: 00008067 ret - -00000638 <__umulsi3>: - 638: 00050793 mv a5,a0 - 63c: 00b57663 bleu a1,a0,648 <__umulsi3+0x10> - 640: 00058793 mv a5,a1 - 644: 00050593 mv a1,a0 - 648: 00000513 li a0,0 - 64c: 00059463 bnez a1,654 <__umulsi3+0x1c> - 650: 00008067 ret - 654: 0015f713 andi a4,a1,1 - 658: 00070463 beqz a4,660 <__umulsi3+0x28> - 65c: 00f50533 add a0,a0,a5 - 660: 00179793 slli a5,a5,0x1 - 664: 0015d593 srli a1,a1,0x1 - 668: fe5ff06f j 64c <__umulsi3+0x14> - -0000066c <__mulsi3>: - 66c: ff410113 addi sp,sp,-12 - 670: 00912023 sw s1,0(sp) - 674: 00112423 sw ra,8(sp) - 678: 00812223 sw s0,4(sp) - 67c: 00000493 li s1,0 - 680: 00055663 bgez a0,68c <__mulsi3+0x20> - 684: 40a00533 neg a0,a0 - 688: 00100493 li s1,1 - 68c: 00000413 li s0,0 - 690: 0005d663 bgez a1,69c <__mulsi3+0x30> - 694: 40b005b3 neg a1,a1 - 698: 00100413 li s0,1 - 69c: f9dff0ef jal ra,638 <__umulsi3> - 6a0: 00050793 mv a5,a0 - 6a4: 00848463 beq s1,s0,6ac <__mulsi3+0x40> - 6a8: 40a007b3 neg a5,a0 - 6ac: 00812083 lw ra,8(sp) - 6b0: 00412403 lw s0,4(sp) - 6b4: 00012483 lw s1,0(sp) - 6b8: 00078513 mv a0,a5 - 6bc: 00c10113 addi sp,sp,12 - 6c0: 00008067 ret - -000006c4 <__udiv_umod_si3>: - 6c4: 00100793 li a5,1 - 6c8: 00059a63 bnez a1,6dc <__udiv_umod_si3+0x18> - 6cc: 00058513 mv a0,a1 - 6d0: 00008067 ret - 6d4: 00179793 slli a5,a5,0x1 - 6d8: 00159593 slli a1,a1,0x1 - 6dc: fea5ece3 bltu a1,a0,6d4 <__udiv_umod_si3+0x10> - 6e0: 00058713 mv a4,a1 - 6e4: 00000593 li a1,0 - 6e8: 00050463 beqz a0,6f0 <__udiv_umod_si3+0x2c> - 6ec: 00079863 bnez a5,6fc <__udiv_umod_si3+0x38> - 6f0: fc061ee3 bnez a2,6cc <__udiv_umod_si3+0x8> - 6f4: 00050593 mv a1,a0 - 6f8: fd5ff06f j 6cc <__udiv_umod_si3+0x8> - 6fc: 00e56663 bltu a0,a4,708 <__udiv_umod_si3+0x44> - 700: 40e50533 sub a0,a0,a4 - 704: 00f585b3 add a1,a1,a5 - 708: 0017d793 srli a5,a5,0x1 - 70c: 00175713 srli a4,a4,0x1 - 710: fd9ff06f j 6e8 <__udiv_umod_si3+0x24> - -00000714 <__udivsi3>: - 714: 00100613 li a2,1 - 718: fadff06f j 6c4 <__udiv_umod_si3> - -0000071c <__umodsi3>: - 71c: 00000613 li a2,0 - 720: fa5ff06f j 6c4 <__udiv_umod_si3> - -00000724 <__div_mod_si3>: - 724: 06058e63 beqz a1,7a0 <__div_mod_si3+0x7c> - 728: ff010113 addi sp,sp,-16 - 72c: 00812423 sw s0,8(sp) - 730: 00112623 sw ra,12(sp) - 734: 00912223 sw s1,4(sp) - 738: 00060793 mv a5,a2 - 73c: 00000413 li s0,0 - 740: 00055663 bgez a0,74c <__div_mod_si3+0x28> - 744: 40a00533 neg a0,a0 - 748: 00100413 li s0,1 - 74c: 00000493 li s1,0 - 750: 0005d663 bgez a1,75c <__div_mod_si3+0x38> - 754: 40b005b3 neg a1,a1 - 758: 00100493 li s1,1 - 75c: 00078613 mv a2,a5 - 760: 00f12023 sw a5,0(sp) - 764: f61ff0ef jal ra,6c4 <__udiv_umod_si3> - 768: 00012783 lw a5,0(sp) - 76c: 00050593 mv a1,a0 - 770: 02078263 beqz a5,794 <__div_mod_si3+0x70> - 774: 00940463 beq s0,s1,77c <__div_mod_si3+0x58> - 778: 40a005b3 neg a1,a0 - 77c: 00c12083 lw ra,12(sp) - 780: 00812403 lw s0,8(sp) - 784: 00412483 lw s1,4(sp) - 788: 00058513 mv a0,a1 - 78c: 01010113 addi sp,sp,16 - 790: 00008067 ret - 794: fe0404e3 beqz s0,77c <__div_mod_si3+0x58> - 798: 40a005b3 neg a1,a0 - 79c: fe1ff06f j 77c <__div_mod_si3+0x58> - 7a0: 00058513 mv a0,a1 - 7a4: 00008067 ret - -000007a8 <__divsi3>: - 7a8: 00100613 li a2,1 - 7ac: f79ff06f j 724 <__div_mod_si3> - -000007b0 <__modsi3>: - 7b0: 00000613 li a2,0 - 7b4: f71ff06f j 724 <__div_mod_si3> - -000007b8 : - 7b8: 000017b7 lui a5,0x1 - 7bc: 0047a703 lw a4,4(a5) # 1004 - 7c0: 00100793 li a5,1 - 7c4: 00e7dc63 ble a4,a5,7dc - 7c8: fff00713 li a4,-1 - 7cc: 000017b7 lui a5,0x1 - 7d0: fff50513 addi a0,a0,-1 - 7d4: 02e51263 bne a0,a4,7f8 - 7d8: 00008067 ret - 7dc: 800007b7 lui a5,0x80000 - 7e0: fff00693 li a3,-1 - 7e4: 00078793 mv a5,a5 - 7e8: f8000613 li a2,-128 - 7ec: fff50513 addi a0,a0,-1 - 7f0: 00d51c63 bne a0,a3,808 - 7f4: 00008067 ret - 7f8: 0007a683 lw a3,0(a5) # 80000000 - 7fc: 0007a603 lw a2,0(a5) - 800: fed60ee3 beq a2,a3,7fc - 804: fcdff06f j 7d0 - 808: 00c781a3 sb a2,3(a5) - 80c: 0037c703 lbu a4,3(a5) - 810: 0ff77713 andi a4,a4,255 - 814: fe070ce3 beqz a4,80c - 818: fd5ff06f j 7ec - -0000081c : - 81c: ee010113 addi sp,sp,-288 - 820: 000015b7 lui a1,0x1 - 824: 10d00613 li a2,269 - 828: 3c858593 addi a1,a1,968 # 13c8 - 82c: 00410513 addi a0,sp,4 - 830: 10112e23 sw ra,284(sp) - 834: 10812c23 sw s0,280(sp) - 838: 10912a23 sw s1,276(sp) - 83c: c81ff0ef jal ra,4bc - 840: 00a00513 li a0,10 - 844: 8e9ff0ef jal ra,12c - 848: 00410413 addi s0,sp,4 - 84c: 00044783 lbu a5,0(s0) - 850: 00079c63 bnez a5,868 - 854: 11c12083 lw ra,284(sp) - 858: 11812403 lw s0,280(sp) - 85c: 11412483 lw s1,276(sp) - 860: 12010113 addi sp,sp,288 - 864: 00008067 ret - 868: 00240413 addi s0,s0,2 - 86c: fff44483 lbu s1,-1(s0) - 870: fff48493 addi s1,s1,-1 - 874: fff00713 li a4,-1 - 878: fce48ae3 beq s1,a4,84c - 87c: 00078513 mv a0,a5 - 880: 00f12023 sw a5,0(sp) - 884: 8a9ff0ef jal ra,12c - 888: 00012783 lw a5,0(sp) - 88c: fe5ff06f j 870 - -Disassembly of section .text.startup: - -00000890
: - 890: f7810113 addi sp,sp,-136 - 894: 08812023 sw s0,128(sp) - 898: 80000437 lui s0,0x80000 - 89c: 00044503 lbu a0,0(s0) # 80000000 - 8a0: 08112223 sw ra,132(sp) - 8a4: 06912e23 sw s1,124(sp) - 8a8: ffcff0ef jal ra,a4 - 8ac: 00044603 lbu a2,0(s0) - 8b0: 00050593 mv a1,a0 - 8b4: 00001537 lui a0,0x1 - 8b8: 11450513 addi a0,a0,276 # 1114 - 8bc: acdff0ef jal ra,388 - 8c0: 000015b7 lui a1,0x1 - 8c4: 00001537 lui a0,0x1 - 8c8: 12858593 addi a1,a1,296 # 1128 - 8cc: 14850513 addi a0,a0,328 # 1148 - 8d0: ab9ff0ef jal ra,388 - 8d4: 00040793 mv a5,s0 - 8d8: 0017c483 lbu s1,1(a5) - 8dc: 0027c303 lbu t1,2(a5) - 8e0: 000017b7 lui a5,0x1 - 8e4: 0047a683 lw a3,4(a5) # 1004 - 8e8: 00040613 mv a2,s0 - 8ec: 00100713 li a4,1 - 8f0: 00c12023 sw a2,0(sp) - 8f4: 0ff4f493 andi s1,s1,255 - 8f8: 0ff37313 andi t1,t1,255 - 8fc: 00078413 mv s0,a5 - 900: 18d74063 blt a4,a3,a80 - 904: 00001737 lui a4,0x1 - 908: 4d470713 addi a4,a4,1236 # 14d4 - 90c: 01000613 li a2,16 - 910: 01000593 li a1,16 - 914: 3e800513 li a0,1000 - 918: 00e12423 sw a4,8(sp) - 91c: 00612223 sw t1,4(sp) - 920: d11ff0ef jal ra,630 - 924: 4e800793 li a5,1256 - 928: 00412303 lw t1,4(sp) - 92c: 00812703 lw a4,8(sp) - 930: 14f50e63 beq a0,a5,a8c - 934: 000017b7 lui a5,0x1 - 938: 4d478793 addi a5,a5,1236 # 14d4 - 93c: 000016b7 lui a3,0x1 - 940: 00001537 lui a0,0x1 - 944: 00030613 mv a2,t1 - 948: 16868693 addi a3,a3,360 # 1168 - 94c: 00048593 mv a1,s1 - 950: 17050513 addi a0,a0,368 # 1170 - 954: a35ff0ef jal ra,388 - 958: 00012783 lw a5,0(sp) - 95c: 00042223 sw zero,4(s0) - 960: 00001537 lui a0,0x1 - 964: 0067d583 lhu a1,6(a5) - 968: 19850513 addi a0,a0,408 # 1198 - 96c: a1dff0ef jal ra,388 - 970: 00012783 lw a5,0(sp) - 974: 000f45b7 lui a1,0xf4 - 978: 24058593 addi a1,a1,576 # f4240 - 97c: 0017c503 lbu a0,1(a5) - 980: 0027c403 lbu s0,2(a5) - 984: 00c7a783 lw a5,12(a5) - 988: 0ff47413 andi s0,s0,255 - 98c: 00f12423 sw a5,8(sp) - 990: 00012783 lw a5,0(sp) - 994: 00c7a603 lw a2,12(a5) - 998: 00c12223 sw a2,4(sp) - 99c: cd1ff0ef jal ra,66c <__mulsi3> - 9a0: 000025b7 lui a1,0x2 - 9a4: 00050493 mv s1,a0 - 9a8: 71058593 addi a1,a1,1808 # 2710 - 9ac: 00040513 mv a0,s0 - 9b0: cbdff0ef jal ra,66c <__mulsi3> - 9b4: 00812783 lw a5,8(sp) - 9b8: 00a48533 add a0,s1,a0 - 9bc: 00178593 addi a1,a5,1 - 9c0: d55ff0ef jal ra,714 <__udivsi3> - 9c4: 00412603 lw a2,4(sp) - 9c8: 00050593 mv a1,a0 - 9cc: 00001537 lui a0,0x1 - 9d0: 1b450513 addi a0,a0,436 # 11b4 - 9d4: 9b5ff0ef jal ra,388 - 9d8: 00a00513 li a0,10 - 9dc: f50ff0ef jal ra,12c - 9e0: 00001537 lui a0,0x1 - 9e4: 1e050513 addi a0,a0,480 # 11e0 - 9e8: 87dff0ef jal ra,264 - 9ec: 00a00513 li a0,10 - 9f0: dc9ff0ef jal ra,7b8 - 9f4: 000017b7 lui a5,0x1 - 9f8: 1f878513 addi a0,a5,504 # 11f8 - 9fc: 98dff0ef jal ra,388 - a00: 04000613 li a2,64 - a04: 00000593 li a1,0 - a08: 03c10513 addi a0,sp,60 - a0c: ad5ff0ef jal ra,4e0 - a10: 04000593 li a1,64 - a14: 03c10513 addi a0,sp,60 - a18: f54ff0ef jal ra,16c - a1c: 00000413 li s0,0 - a20: 03c10513 addi a0,sp,60 - a24: 000014b7 lui s1,0x1 - a28: 1fc48593 addi a1,s1,508 # 11fc - a2c: ad1ff0ef jal ra,4fc - a30: 00241793 slli a5,s0,0x2 - a34: 07c10713 addi a4,sp,124 - a38: 00f707b3 add a5,a4,a5 - a3c: faa7a023 sw a0,-96(a5) - a40: 00050a63 beqz a0,a54 - a44: 00140413 addi s0,s0,1 - a48: 00800793 li a5,8 - a4c: 00000513 li a0,0 - a50: fcf41ce3 bne s0,a5,a28 - a54: 01c12403 lw s0,28(sp) - a58: f8040ee3 beqz s0,9f4 - a5c: 000015b7 lui a1,0x1 - a60: 20058593 addi a1,a1,512 # 1200 - a64: 00040513 mv a0,s0 - a68: a29ff0ef jal ra,490 - a6c: 02051663 bnez a0,a98 - a70: 00001537 lui a0,0x1 - a74: 20850513 addi a0,a0,520 # 1208 - a78: 911ff0ef jal ra,388 - a7c: f79ff06f j 9f4 - a80: 00001737 lui a4,0x1 - a84: 10870713 addi a4,a4,264 # 1108 - a88: e85ff06f j 90c - a8c: 000017b7 lui a5,0x1 - a90: 10c78793 addi a5,a5,268 # 110c - a94: ea9ff06f j 93c - a98: 000015b7 lui a1,0x1 - a9c: 21058593 addi a1,a1,528 # 1210 - aa0: 00040513 mv a0,s0 - aa4: 9edff0ef jal ra,490 - aa8: 4a050e63 beqz a0,f64 - aac: 000015b7 lui a1,0x1 - ab0: 23c58593 addi a1,a1,572 # 123c - ab4: 00040513 mv a0,s0 - ab8: 9d9ff0ef jal ra,490 - abc: 0a051863 bnez a0,b6c - ac0: 02012403 lw s0,32(sp) - ac4: 00040863 beqz s0,ad4 - ac8: 00040513 mv a0,s0 - acc: b25ff0ef jal ra,5f0 - ad0: 00050413 mv s0,a0 - ad4: 10040793 addi a5,s0,256 - ad8: 00f12223 sw a5,4(sp) - adc: 000014b7 lui s1,0x1 - ae0: 00040593 mv a1,s0 - ae4: 24448513 addi a0,s1,580 # 1244 - ae8: 8a1ff0ef jal ra,388 - aec: 00000713 li a4,0 - af0: 00001637 lui a2,0x1 - af4: 00e406b3 add a3,s0,a4 - af8: 0006c583 lbu a1,0(a3) - afc: 24c60513 addi a0,a2,588 # 124c - b00: 00e12423 sw a4,8(sp) - b04: 885ff0ef jal ra,388 - b08: 00812703 lw a4,8(sp) - b0c: 01000693 li a3,16 - b10: 00001637 lui a2,0x1 - b14: 00170713 addi a4,a4,1 - b18: fcd71ee3 bne a4,a3,af4 - b1c: 00000713 li a4,0 - b20: 00e406b3 add a3,s0,a4 - b24: 0006c503 lbu a0,0(a3) - b28: 05e00613 li a2,94 - b2c: fe050693 addi a3,a0,-32 - b30: 0ff6f693 andi a3,a3,255 - b34: 00d67463 bleu a3,a2,b3c - b38: 02e00513 li a0,46 - b3c: 00e12423 sw a4,8(sp) - b40: decff0ef jal ra,12c - b44: 00812703 lw a4,8(sp) - b48: 01000693 li a3,16 - b4c: 00170713 addi a4,a4,1 - b50: fcd718e3 bne a4,a3,b20 - b54: 00a00513 li a0,10 - b58: dd4ff0ef jal ra,12c - b5c: 00412783 lw a5,4(sp) - b60: 01040413 addi s0,s0,16 - b64: f6f41ee3 bne s0,a5,ae0 - b68: e8dff06f j 9f4 - b6c: 000015b7 lui a1,0x1 - b70: 00200613 li a2,2 - b74: 25058593 addi a1,a1,592 # 1250 - b78: 00040513 mv a0,s0 - b7c: 8e1ff0ef jal ra,45c - b80: 00050e63 beqz a0,b9c - b84: 000015b7 lui a1,0x1 - b88: 00200613 li a2,2 - b8c: 25458593 addi a1,a1,596 # 1254 - b90: 00040513 mv a0,s0 - b94: 8c9ff0ef jal ra,45c - b98: 1e051663 bnez a0,d84 - b9c: 00244703 lbu a4,2(s0) - ba0: 06d00793 li a5,109 - ba4: 06f71263 bne a4,a5,c08 - ba8: 02012503 lw a0,32(sp) - bac: a45ff0ef jal ra,5f0 - bb0: 00a12a23 sw a0,20(sp) - bb4: 00200793 li a5,2 - bb8: 00300713 li a4,3 - bbc: 00e12823 sw a4,16(sp) - bc0: 00178713 addi a4,a5,1 - bc4: 00e12623 sw a4,12(sp) - bc8: 00279793 slli a5,a5,0x2 - bcc: 07c10713 addi a4,sp,124 - bd0: 00f707b3 add a5,a4,a5 - bd4: fa07a503 lw a0,-96(a5) - bd8: 00000493 li s1,0 - bdc: a15ff0ef jal ra,5f0 - be0: 00a12223 sw a0,4(sp) - be4: 00050593 mv a1,a0 - be8: 00001537 lui a0,0x1 - bec: 24450513 addi a0,a0,580 # 1244 - bf0: f98ff0ef jal ra,388 - bf4: 01412783 lw a5,20(sp) - bf8: 02979263 bne a5,s1,c1c - bfc: 00a00513 li a0,10 - c00: d2cff0ef jal ra,12c - c04: df1ff06f j 9f4 - c08: 00100713 li a4,1 - c0c: 00e12a23 sw a4,20(sp) - c10: 00100793 li a5,1 - c14: 00200713 li a4,2 - c18: fa5ff06f j bbc - c1c: 01012783 lw a5,16(sp) - c20: 00044703 lbu a4,0(s0) - c24: 00f407b3 add a5,s0,a5 - c28: 00f12423 sw a5,8(sp) - c2c: 07200793 li a5,114 - c30: 08f71663 bne a4,a5,cbc - c34: 00812783 lw a5,8(sp) - c38: 0007c703 lbu a4,0(a5) - c3c: 06200793 li a5,98 - c40: 00f71e63 bne a4,a5,c5c - c44: 00412783 lw a5,4(sp) - c48: 009787b3 add a5,a5,s1 - c4c: 0007c583 lbu a1,0(a5) - c50: 000017b7 lui a5,0x1 - c54: 24c78513 addi a0,a5,588 # 124c - c58: f30ff0ef jal ra,388 - c5c: 00812783 lw a5,8(sp) - c60: 0007c703 lbu a4,0(a5) - c64: 07700793 li a5,119 - c68: 02f71063 bne a4,a5,c88 - c6c: 00412703 lw a4,4(sp) - c70: 00149793 slli a5,s1,0x1 - c74: 00e787b3 add a5,a5,a4 - c78: 00079583 lh a1,0(a5) - c7c: 000017b7 lui a5,0x1 - c80: 24c78513 addi a0,a5,588 # 124c - c84: f04ff0ef jal ra,388 - c88: 00812783 lw a5,8(sp) - c8c: 0007c703 lbu a4,0(a5) - c90: 06c00793 li a5,108 - c94: 02f71063 bne a4,a5,cb4 - c98: 00412703 lw a4,4(sp) - c9c: 00249793 slli a5,s1,0x2 - ca0: 00e787b3 add a5,a5,a4 - ca4: 0007a583 lw a1,0(a5) - ca8: 000017b7 lui a5,0x1 - cac: 24c78513 addi a0,a5,588 # 124c - cb0: ed8ff0ef jal ra,388 - cb4: 00148493 addi s1,s1,1 - cb8: f3dff06f j bf4 - cbc: 00c12783 lw a5,12(sp) - cc0: 07c10713 addi a4,sp,124 - cc4: 00178793 addi a5,a5,1 - cc8: 00f12c23 sw a5,24(sp) - ccc: 00c12783 lw a5,12(sp) - cd0: 00279793 slli a5,a5,0x2 - cd4: 00f707b3 add a5,a4,a5 - cd8: fa07a503 lw a0,-96(a5) - cdc: 915ff0ef jal ra,5f0 - ce0: 00812703 lw a4,8(sp) - ce4: 00050793 mv a5,a0 - ce8: 00074683 lbu a3,0(a4) - cec: 06200713 li a4,98 - cf0: 02e69463 bne a3,a4,d18 - cf4: 00412703 lw a4,4(sp) - cf8: 000017b7 lui a5,0x1 - cfc: 0ff57593 andi a1,a0,255 - d00: 00970733 add a4,a4,s1 - d04: 00a70023 sb a0,0(a4) - d08: 00a12623 sw a0,12(sp) - d0c: 24c78513 addi a0,a5,588 # 124c - d10: e78ff0ef jal ra,388 - d14: 00c12783 lw a5,12(sp) - d18: 00812703 lw a4,8(sp) - d1c: 00074683 lbu a3,0(a4) - d20: 07700713 li a4,119 - d24: 02e69863 bne a3,a4,d54 - d28: 01079593 slli a1,a5,0x10 - d2c: 00f12623 sw a5,12(sp) - d30: 00412783 lw a5,4(sp) - d34: 00149713 slli a4,s1,0x1 - d38: 4105d593 srai a1,a1,0x10 - d3c: 00f70733 add a4,a4,a5 - d40: 000017b7 lui a5,0x1 - d44: 24c78513 addi a0,a5,588 # 124c - d48: 00b71023 sh a1,0(a4) - d4c: e3cff0ef jal ra,388 - d50: 00c12783 lw a5,12(sp) - d54: 00812703 lw a4,8(sp) - d58: 01812603 lw a2,24(sp) - d5c: 00074683 lbu a3,0(a4) - d60: 00c12623 sw a2,12(sp) - d64: 06c00713 li a4,108 - d68: f4e696e3 bne a3,a4,cb4 - d6c: 00412683 lw a3,4(sp) - d70: 00249713 slli a4,s1,0x2 - d74: 00078593 mv a1,a5 - d78: 00d70733 add a4,a4,a3 - d7c: 00f72023 sw a5,0(a4) - d80: f29ff06f j ca8 - d84: 000015b7 lui a1,0x1 - d88: 25858593 addi a1,a1,600 # 1258 - d8c: 00040513 mv a0,s0 - d90: f00ff0ef jal ra,490 - d94: 02051c63 bnez a0,dcc - d98: 02012503 lw a0,32(sp) - d9c: 00050c63 beqz a0,db4 - da0: 851ff0ef jal ra,5f0 - da4: 00012783 lw a5,0(sp) - da8: 01051513 slli a0,a0,0x10 - dac: 01055513 srli a0,a0,0x10 - db0: 00a79423 sh a0,8(a5) - db4: 00012783 lw a5,0(sp) - db8: 00001537 lui a0,0x1 - dbc: 25c50513 addi a0,a0,604 # 125c - dc0: 0087d583 lhu a1,8(a5) - dc4: dc4ff0ef jal ra,388 - dc8: c2dff06f j 9f4 - dcc: 000015b7 lui a1,0x1 - dd0: 26858593 addi a1,a1,616 # 1268 - dd4: 00040513 mv a0,s0 - dd8: eb8ff0ef jal ra,490 - ddc: 02051663 bnez a0,e08 - de0: 02012503 lw a0,32(sp) - de4: 00050863 beqz a0,df4 - de8: fb4ff0ef jal ra,59c - dec: 00012783 lw a5,0(sp) - df0: 00a7a623 sw a0,12(a5) - df4: 00012783 lw a5,0(sp) - df8: 00001537 lui a0,0x1 - dfc: 27050513 addi a0,a0,624 # 1270 - e00: 00c7a583 lw a1,12(a5) - e04: fc1ff06f j dc4 - e08: 000015b7 lui a1,0x1 - e0c: 27c58593 addi a1,a1,636 # 127c - e10: 00040513 mv a0,s0 - e14: e7cff0ef jal ra,490 - e18: 02051a63 bnez a0,e4c - e1c: 02012503 lw a0,32(sp) - e20: 00050c63 beqz a0,e38 - e24: fccff0ef jal ra,5f0 - e28: 00012783 lw a5,0(sp) - e2c: 01051513 slli a0,a0,0x10 - e30: 01055513 srli a0,a0,0x10 - e34: 00a79523 sh a0,10(a5) - e38: 00012783 lw a5,0(sp) - e3c: 00001537 lui a0,0x1 - e40: 28450513 addi a0,a0,644 # 1284 - e44: 00a7d583 lhu a1,10(a5) - e48: f7dff06f j dc4 - e4c: 000015b7 lui a1,0x1 - e50: 29058593 addi a1,a1,656 # 1290 - e54: 00040513 mv a0,s0 - e58: e38ff0ef jal ra,490 - e5c: 02051a63 bnez a0,e90 - e60: 02012503 lw a0,32(sp) - e64: f38ff0ef jal ra,59c - e68: 00050413 mv s0,a0 - e6c: 02412503 lw a0,36(sp) - e70: f2cff0ef jal ra,59c - e74: 00050593 mv a1,a0 - e78: 00040513 mv a0,s0 - e7c: ff0ff0ef jal ra,66c <__mulsi3> - e80: 00050593 mv a1,a0 - e84: 00001537 lui a0,0x1 - e88: 29450513 addi a0,a0,660 # 1294 - e8c: f39ff06f j dc4 - e90: 000015b7 lui a1,0x1 - e94: 2a058593 addi a1,a1,672 # 12a0 - e98: 00040513 mv a0,s0 - e9c: df4ff0ef jal ra,490 - ea0: 04051863 bnez a0,ef0 - ea4: 02012503 lw a0,32(sp) - ea8: ef4ff0ef jal ra,59c - eac: 00050413 mv s0,a0 - eb0: 02412503 lw a0,36(sp) - eb4: ee8ff0ef jal ra,59c - eb8: 00050493 mv s1,a0 - ebc: 00050593 mv a1,a0 - ec0: 00040513 mv a0,s0 - ec4: 8edff0ef jal ra,7b0 <__modsi3> - ec8: 00a12223 sw a0,4(sp) - ecc: 00048593 mv a1,s1 - ed0: 00040513 mv a0,s0 - ed4: 8d5ff0ef jal ra,7a8 <__divsi3> - ed8: 00412603 lw a2,4(sp) - edc: 00050593 mv a1,a0 - ee0: 00001537 lui a0,0x1 - ee4: 2a450513 addi a0,a0,676 # 12a4 - ee8: ca0ff0ef jal ra,388 - eec: b09ff06f j 9f4 - ef0: 000015b7 lui a1,0x1 - ef4: 2b858593 addi a1,a1,696 # 12b8 - ef8: 00040513 mv a0,s0 - efc: d94ff0ef jal ra,490 - f00: 04051663 bnez a0,f4c - f04: 02012503 lw a0,32(sp) - f08: e94ff0ef jal ra,59c - f0c: 00050413 mv s0,a0 - f10: 02412503 lw a0,36(sp) - f14: e88ff0ef jal ra,59c - f18: 00050493 mv s1,a0 - f1c: 02812503 lw a0,40(sp) - f20: e7cff0ef jal ra,59c - f24: 01051613 slli a2,a0,0x10 - f28: 01049593 slli a1,s1,0x10 - f2c: 4105d593 srai a1,a1,0x10 - f30: 41065613 srai a2,a2,0x10 - f34: 00040513 mv a0,s0 - f38: ef8ff0ef jal ra,630 - f3c: 00050593 mv a1,a0 - f40: 00001537 lui a0,0x1 - f44: 2bc50513 addi a0,a0,700 # 12bc - f48: e7dff06f j dc4 - f4c: 00044783 lbu a5,0(s0) - f50: aa0782e3 beqz a5,9f4 - f54: 00001537 lui a0,0x1 - f58: 00040593 mv a1,s0 - f5c: 2c850513 addi a0,a0,712 # 12c8 - f60: e65ff06f j dc4 - f64: 00001537 lui a0,0x1 - f68: 21850513 addi a0,a0,536 # 1218 - f6c: c1cff0ef jal ra,388 - f70: 000f4437 lui s0,0xf4 - f74: 24040513 addi a0,s0,576 # f4240 - f78: 841ff0ef jal ra,7b8 - f7c: 02e00513 li a0,46 - f80: 9acff0ef jal ra,12c - f84: 24040513 addi a0,s0,576 - f88: 831ff0ef jal ra,7b8 - f8c: 02e00513 li a0,46 - f90: 99cff0ef jal ra,12c - f94: 24040513 addi a0,s0,576 - f98: 821ff0ef jal ra,7b8 - f9c: 02e00513 li a0,46 - fa0: 98cff0ef jal ra,12c - fa4: 00001537 lui a0,0x1 - fa8: 23450513 addi a0,a0,564 # 1234 - fac: ab8ff0ef jal ra,264 - fb0: 08412083 lw ra,132(sp) - fb4: 08012403 lw s0,128(sp) - fb8: 07c12483 lw s1,124(sp) - fbc: 00000513 li a0,0 - fc0: 08810113 addi sp,sp,136 - fc4: 00008067 ret diff --git a/src/darksocv.map b/src/darksocv.map deleted file mode 100644 index a962cef..0000000 --- a/src/darksocv.map +++ /dev/null @@ -1,119 +0,0 @@ - -Allocating common symbols -Common symbol size file - -io 0x10 io.o - -Memory Configuration - -Name Origin Length Attributes -IO 0x0000000080000000 0x0000000000000010 rw !x -ROM 0x0000000000000000 0x0000000000001000 x !rw -RAM 0x0000000000001000 0x0000000000001000 rw !x -*default* 0x0000000000000000 0xffffffffffffffff - -Linker script and memory map - - -.io 0x0000000080000000 0x10 - io.o(COMMON) - COMMON 0x0000000080000000 0x10 io.o - 0x0000000080000000 io - -.text 0x0000000000000000 0x890 - boot.o(.text) - .text 0x0000000000000000 0xa4 boot.o - 0x0000000000000000 boot - *(.text) - .text 0x00000000000000a4 0x6c io.o - 0x00000000000000a4 board_name - .text 0x0000000000000110 0x70c stdio.o - 0x0000000000000110 getchar - 0x000000000000012c putchar - 0x000000000000016c gets - 0x0000000000000224 putstr - 0x0000000000000264 puts - 0x0000000000000280 putdx - 0x0000000000000378 putx - 0x0000000000000380 putd - 0x0000000000000388 printf - 0x000000000000045c strncmp - 0x0000000000000490 strcmp - 0x0000000000000498 strlen - 0x00000000000004bc memcpy - 0x00000000000004e0 memset - 0x00000000000004fc strtok - 0x000000000000059c atoi - 0x00000000000005f0 xtoi - 0x0000000000000630 mac - 0x0000000000000638 __umulsi3 - 0x000000000000066c __mulsi3 - 0x00000000000006c4 __udiv_umod_si3 - 0x0000000000000714 __udivsi3 - 0x000000000000071c __umodsi3 - 0x0000000000000724 __div_mod_si3 - 0x00000000000007a8 __divsi3 - 0x00000000000007b0 __modsi3 - 0x00000000000007b8 usleep - .text 0x000000000000081c 0x0 main.o - .text 0x000000000000081c 0x74 banner.o - 0x000000000000081c banner - -.text.startup 0x0000000000000890 0x738 - .text.startup 0x0000000000000890 0x738 main.o - 0x0000000000000890 main - -.data 0x0000000000001000 0x4d8 - *(.sbss) - .sbss 0x0000000000001000 0x8 io.o - 0x0000000000001000 utimers - 0x0000000000001004 threads - .sbss 0x0000000000001008 0x4 stdio.o - *(.rodata*) - .rodata.str1.4 - 0x000000000000100c 0x7c io.o - .rodata.str1.4 - 0x0000000000001088 0x21 boot.o - *fill* 0x00000000000010a9 0x3 - .rodata 0x00000000000010ac 0x40 stdio.o - .rodata.str1.4 - 0x00000000000010ec 0x19 stdio.o - *fill* 0x0000000000001105 0x3 - .rodata.str1.4 - 0x0000000000001108 0x2bf main.o - 0x2c3 (size before relaxing) - *fill* 0x00000000000013c7 0x1 - .rodata.str1.4 - 0x00000000000013c8 0x110 banner.o - 0x10d (size before relaxing) - *(.data) - .data 0x00000000000014d8 0x0 io.o - .data 0x00000000000014d8 0x0 boot.o - .data 0x00000000000014d8 0x0 stdio.o - .data 0x00000000000014d8 0x0 main.o - .data 0x00000000000014d8 0x0 banner.o - *(.bss) - .bss 0x00000000000014d8 0x0 io.o - .bss 0x00000000000014d8 0x0 boot.o - .bss 0x00000000000014d8 0x0 stdio.o - .bss 0x00000000000014d8 0x0 main.o - .bss 0x00000000000014d8 0x0 banner.o - *(.rela*) - .rela.text 0x00000000000014d8 0x0 io.o - .rela.text.startup - 0x00000000000014d8 0x0 io.o - *(COMMON) -LOAD boot.o -LOAD stdio.o -LOAD main.o -LOAD io.o -LOAD banner.o -OUTPUT(darksocv.o elf32-littleriscv) - -.comment 0x0000000000000000 0x29 - .comment 0x0000000000000000 0x29 io.o - 0x2a (size before relaxing) - .comment 0x0000000000000029 0x2a boot.o - .comment 0x0000000000000029 0x2a stdio.o - .comment 0x0000000000000029 0x2a main.o - .comment 0x0000000000000029 0x2a banner.o diff --git a/src/darksocv.mem b/src/darksocv.mem deleted file mode 100644 index a50d797..0000000 --- a/src/darksocv.mem +++ /dev/null @@ -1,1339 +0,0 @@ -00001737 -00472783 -ff010113 -00812423 -00178693 -80000437 -00d72223 -00912223 -00112623 -0017f793 -00040713 -f8000693 -00f12023 -00d701a3 -000014b7 -02079a63 -03000513 -0e4000ef -00000437 -7c8000ef -00001537 -01010693 -00048613 -00040593 -08850513 -320000ef -021000ef -fe1ff06f -03100513 -0b4000ef -00040413 -f8000713 -0004a783 -00178793 -00f4a023 -00a45783 -0017c793 -00f41523 -00e401a3 -fe5ff06f -02050863 -00100793 -02f50a63 -00200793 -02f50c63 -00300793 -02f50e63 -00400793 -04f50063 -00001537 -08050513 -00008067 -00001537 -03c50513 -00008067 -00001537 -04c50513 -00008067 -00001537 -02050513 -00008067 -00001537 -06c50513 -00008067 -00001537 -00c50513 -00008067 -800007b7 -00078793 -0047c703 -00277713 -fe070ce3 -0057c503 -00008067 -800007b7 -00a00713 -00078793 -00e51c63 -0047c703 -00177713 -fe071ce3 -00d00713 -00e782a3 -0047c703 -00177713 -fe071ce3 -0ff57713 -00e782a3 -00070513 -00008067 -fe810113 -00812823 -00912623 -00112a23 -00050493 -00050413 -fff58713 -02070063 -00b12223 -00e12023 -f7dff0ef -00a00693 -00012703 -00412583 -02d51863 -00a00513 -f81ff0ef -00040023 -00941463 -00000493 -01412083 -01012403 -00048513 -00c12483 -01810113 -00008067 -00b12423 -00e12223 -00d00693 -00a12023 -fcd502e3 -f45ff0ef -00012783 -00800693 -00412703 -00812583 -00d79e63 -00940863 -fe040fa3 -00058713 -fff40413 -00070593 -f71ff06f -00f40023 -00140413 -ff1ff06f -ff410113 -00812223 -00112423 -00050413 -00051663 -00001437 -0ec40413 -00044503 -00051a63 -00812083 -00412403 -00c10113 -00008067 -00140413 -ed1ff0ef -fe1ff06f -ff410113 -00112423 -fb9ff0ef -00812083 -00a00513 -00c10113 -eb1ff06f -fac10113 -00b12023 -000015b7 -04812623 -04912423 -02c00613 -0ac58493 -00050413 -0ac58593 -01c10513 -04112823 -210000ef -01400613 -02c48593 -00810513 -200000ef -00012703 -00810793 -00070463 -01c10793 -01800493 -0007a583 -00059c63 -05012083 -04c12403 -04812483 -05410113 -00008067 -00100713 -00e58463 -04b46063 -00012683 -00001737 -00f12223 -0f470713 -02068c63 -00040513 -400000ef -00a00593 -400000ef -000017b7 -0f478713 -00a70533 -00054503 -dfdff0ef -00412783 -ff848493 -00478793 -f95ff06f -00448693 -00d456b3 -00f6f693 -00d706b3 -0006c503 -dd5ff0ef -00945533 -000017b7 -00f57513 -0f478713 -00a70733 -00074503 -fbdff06f -00000593 -f05ff06f -00100593 -efdff06f -fdc10113 -02f12023 -01010793 -00812423 -00112623 -00912223 -00050413 -00b12823 -00c12a23 -00d12c23 -00e12e23 -00f12023 -00044503 -00051c63 -00c12083 -00812403 -00412483 -02410113 -00008067 -02500793 -00140493 -06f51a63 -00144503 -07300793 -02f51063 -00012783 -0007a503 -00478713 -00e12023 -e29ff0ef -00148413 -fb5ff06f -07800793 -00f51e63 -00012783 -0007a503 -00478713 -00e12023 -f59ff0ef -fddff06f -06400793 -00f51e63 -00012783 -0007a503 -00478713 -00e12023 -f41ff0ef -fbdff06f -ce5ff0ef -fb5ff06f -cddff0ef -00040493 -fa9ff06f -fff60613 -00000793 -00f50733 -00074683 -00f58733 -00074703 -00c78a63 -00068863 -00070663 -00178793 -fee680e3 -40e68533 -00008067 -fff00613 -fc9ff06f -00000793 -00f50733 -00074703 -00070863 -00178793 -00f50733 -fe0716e3 -00078513 -00008067 -00000793 -00c79463 -00008067 -00f58733 -00074683 -00f50733 -00178793 -00d70023 -fe5ff06f -00c50633 -00050793 -00c79463 -00008067 -00178793 -feb78fa3 -ff1ff06f -fec10113 -00812623 -00050413 -00058513 -00912423 -00112823 -00058493 -f81ff0ef -00050693 -00041863 -000017b7 -0087a403 -04040863 -00040793 -0007c703 -00071863 -000017b7 -0007a423 -0380006f -00068613 -00078513 -00048593 -00d12223 -00f12023 -f01ff0ef -00012783 -00412683 -00178713 -02051463 -00078023 -000017b7 -00e7a423 -00040513 -01012083 -00c12403 -00812483 -01410113 -00008067 -00070793 -f9dff06f -00000693 -00000793 -02d00613 -00051c63 -02069e63 -00078513 -00008067 -00100693 -0240006f -00054703 -fe0704e3 -fec708e3 -00379593 -fd070713 -00b70733 -00179793 -00f707b3 -00150513 -fc5ff06f -40f007b3 -fc5ff06f -00050693 -03900613 -00000513 -00068663 -0006c783 -00079463 -00008067 -00451713 -00f66a63 -fd078793 -00e78533 -00168693 -fddff06f -05f7f793 -fc978793 -fedff06f -00c5857f -00008067 -00050793 -00b57663 -00058793 -00050593 -00000513 -00059463 -00008067 -0015f713 -00070463 -00f50533 -00179793 -0015d593 -fe5ff06f -ff410113 -00912023 -00112423 -00812223 -00000493 -00055663 -40a00533 -00100493 -00000413 -0005d663 -40b005b3 -00100413 -f9dff0ef -00050793 -00848463 -40a007b3 -00812083 -00412403 -00012483 -00078513 -00c10113 -00008067 -00100793 -00059a63 -00058513 -00008067 -00179793 -00159593 -fea5ece3 -00058713 -00000593 -00050463 -00079863 -fc061ee3 -00050593 -fd5ff06f -00e56663 -40e50533 -00f585b3 -0017d793 -00175713 -fd9ff06f -00100613 -fadff06f -00000613 -fa5ff06f -06058e63 -ff010113 -00812423 -00112623 -00912223 -00060793 -00000413 -00055663 -40a00533 -00100413 -00000493 -0005d663 -40b005b3 -00100493 -00078613 -00f12023 -f61ff0ef -00012783 -00050593 -02078263 -00940463 -40a005b3 -00c12083 -00812403 -00412483 -00058513 -01010113 -00008067 -fe0404e3 -40a005b3 -fe1ff06f -00058513 -00008067 -00100613 -f79ff06f -00000613 -f71ff06f -800007b7 -00078713 -00100693 -00d71423 -00001737 -00472683 -00100713 -00078793 -02d74463 -fff00693 -f8000613 -fff50513 -02d50463 -00c781a3 -0037c703 -0ff77713 -fe070ce3 -fe9ff06f -00001737 -00072023 -00072683 -fea6cee3 -00079423 -00008067 -ee010113 -000015b7 -10d00613 -3dc58593 -00410513 -10112e23 -10812c23 -10912a23 -c85ff0ef -00a00513 -8edff0ef -00410413 -00044783 -00079c63 -11c12083 -11812403 -11412483 -12010113 -00008067 -00240413 -fff44483 -fff48493 -fff00713 -fce48ae3 -00078513 -00f12023 -8adff0ef -00012783 -fe5ff06f -f7810113 -08812023 -80000437 -00044503 -08112223 -06912e23 -801ff0ef -00044603 -00050593 -00001537 -11450513 -ad1ff0ef -000015b7 -00001537 -12858593 -14850513 -abdff0ef -00040793 -0017c483 -0027c303 -000017b7 -0047a683 -00040613 -00100713 -00c12023 -0ff4f493 -0ff37313 -00078413 -16d74c63 -00001737 -4e870713 -01000613 -01000593 -3e800513 -00e12423 -00612223 -d15ff0ef -4e800793 -00412303 -00812703 -14f50a63 -000017b7 -4e878793 -000016b7 -00001537 -00030613 -16868693 -00048593 -17050513 -a39ff0ef -00012783 -00042223 -00001537 -0067d583 -19850513 -a21ff0ef -00012783 -000f45b7 -24058593 -0017c503 -0027c403 -00c7a783 -0ff47413 -00f12423 -00012783 -00c7a603 -00c12223 -cd5ff0ef -000025b7 -00050493 -71058593 -00040513 -cc1ff0ef -00812783 -00a48533 -00178593 -d59ff0ef -00412603 -00050593 -00001537 -1b450513 -9b9ff0ef -00a00513 -f54ff0ef -00001537 -1e050513 -881ff0ef -000017b7 -1f878513 -999ff0ef -04000613 -00000593 -03c10513 -ae1ff0ef -04000593 -03c10513 -f60ff0ef -00000413 -03c10513 -000014b7 -1fc48593 -addff0ef -00241793 -07c10713 -00f707b3 -faa7a023 -00050a63 -00140413 -00800793 -00000513 -fcf41ce3 -01c12403 -f8040ee3 -000015b7 -20058593 -00040513 -a35ff0ef -02051663 -00001537 -20850513 -91dff0ef -f79ff06f -00001737 -10870713 -e8dff06f -000017b7 -10c78793 -eb1ff06f -000015b7 -21058593 -00040513 -9f9ff0ef -02051e63 -00001537 -21850513 -fbcff0ef -002dc537 -6c050513 -d05ff0ef -00001537 -23850513 -8c9ff0ef -08412083 -08012403 -07c12483 -08810113 -00008067 -000015b7 -25058593 -00040513 -9adff0ef -0a051863 -02012403 -00040863 -00040513 -af9ff0ef -00050413 -10040793 -00f12223 -000014b7 -00040593 -25848513 -875ff0ef -00000713 -00001637 -00e406b3 -0006c583 -26060513 -00e12423 -859ff0ef -00812703 -01000693 -00001637 -00170713 -fcd71ee3 -00000713 -00e406b3 -0006c503 -05e00613 -fe050693 -0ff6f693 -00d67463 -02e00513 -00e12423 -dc0ff0ef -00812703 -01000693 -00170713 -fcd718e3 -00a00513 -da8ff0ef -00412783 -01040413 -f6f41ee3 -e55ff06f -000015b7 -00200613 -26458593 -00040513 -8b5ff0ef -00050e63 -000015b7 -00200613 -26858593 -00040513 -89dff0ef -1e051663 -00244703 -06d00793 -06f71263 -02012503 -a19ff0ef -00a12a23 -00200793 -00300713 -00e12823 -00178713 -00e12623 -00279793 -07c10713 -00f707b3 -fa07a503 -00000493 -9e9ff0ef -00a12223 -00050593 -00001537 -25850513 -f6cff0ef -01412783 -02979263 -00a00513 -d00ff0ef -db9ff06f -00100713 -00e12a23 -00100793 -00200713 -fa5ff06f -01012783 -00044703 -00f407b3 -00f12423 -07200793 -08f71663 -00812783 -0007c703 -06200793 -00f71e63 -00412783 -009787b3 -0007c583 -000017b7 -26078513 -f04ff0ef -00812783 -0007c703 -07700793 -02f71063 -00412703 -00149793 -00e787b3 -00079583 -000017b7 -26078513 -ed8ff0ef -00812783 -0007c703 -06c00793 -02f71063 -00412703 -00249793 -00e787b3 -0007a583 -000017b7 -26078513 -eacff0ef -00148493 -f3dff06f -00c12783 -07c10713 -00178793 -00f12c23 -00c12783 -00279793 -00f707b3 -fa07a503 -8e9ff0ef -00812703 -00050793 -00074683 -06200713 -02e69463 -00412703 -000017b7 -0ff57593 -00970733 -00a70023 -00a12623 -26078513 -e4cff0ef -00c12783 -00812703 -00074683 -07700713 -02e69863 -01079593 -00f12623 -00412783 -00149713 -4105d593 -00f70733 -000017b7 -26078513 -00b71023 -e10ff0ef -00c12783 -00812703 -01812603 -00074683 -00c12623 -06c00713 -f4e696e3 -00412683 -00249713 -00078593 -00d70733 -00f72023 -f29ff06f -000015b7 -26c58593 -00040513 -ed4ff0ef -02051c63 -02012503 -00050c63 -825ff0ef -00012783 -01051513 -01055513 -00a79423 -00012783 -00001537 -27050513 -0087d583 -d98ff0ef -bf5ff06f -000015b7 -27c58593 -00040513 -e8cff0ef -02051663 -02012503 -00050863 -f88ff0ef -00012783 -00a7a623 -00012783 -00001537 -28450513 -00c7a583 -fc1ff06f -000015b7 -29058593 -00040513 -e50ff0ef -02051a63 -02012503 -00050c63 -fa0ff0ef -00012783 -01051513 -01055513 -00a79523 -00012783 -00001537 -29850513 -00a7d583 -f7dff06f -000015b7 -2a458593 -00040513 -e0cff0ef -02051a63 -02012503 -f0cff0ef -00050413 -02412503 -f00ff0ef -00050593 -00040513 -fc4ff0ef -00050593 -00001537 -2a850513 -f39ff06f -000015b7 -2b458593 -00040513 -dc8ff0ef -04051863 -02012503 -ec8ff0ef -00050413 -02412503 -ebcff0ef -00050493 -00050593 -00040513 -8c1ff0ef -00a12223 -00048593 -00040513 -8a9ff0ef -00412603 -00050593 -00001537 -2b850513 -c74ff0ef -ad1ff06f -000015b7 -2cc58593 -00040513 -d68ff0ef -04051663 -02012503 -e68ff0ef -00050413 -02412503 -e5cff0ef -00050493 -02812503 -e50ff0ef -01051613 -01049593 -4105d593 -41065613 -00040513 -eccff0ef -00050593 -00001537 -2d050513 -e7dff06f -00044783 -a60786e3 -00001537 -00040593 -2dc50513 -e65ff06f -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -6e6b6e75 -206e776f -74736f68 -36387820 -00000000 -696c6978 -6120786e -31303763 -74726120 -372d7869 -30326120 -00000030 -756d6973 -6974616c -6f206e6f -00796c6e -656e7661 -696d2074 -626f7263 -6472616f -61707320 -6e617472 -6c20362d -00003978 -65746d71 -73206863 -6d617264 -31786c20 -00000036 -6e6b6e75 -006e776f -746f6f62 -74203a30 -40747865 -64206425 -40617461 -73206425 -6b636174 -0a642540 -00000000 -3b9aca00 -05f5e100 -00989680 -000f4240 -000186a0 -00002710 -000003e8 -00000064 -0000000a -00000001 -00000000 -01000000 -00010000 -00000100 -00000001 -00000000 -4c554e28 -0000294c -33323130 -37363534 -62613938 -66656463 -00000000 -00544d2b -43414d2b -00000000 -72616f62 -25203a64 -69282073 -64253d64 -00000a29 -2c646557 -20333120 -20766f4e -39313032 -3a333020 -343a3935 -302d2034 -00303032 -6c697562 -64203a64 -726b7261 -76637369 -20776620 -6c697562 -73252064 -0000000a -32337672 -00000065 -65726f63 -64203a30 -726b7261 -76637369 -2e642540 -484d6425 -6977207a -25206874 -25732573 -00000a73 -74726175 -31203a30 -30323531 -70622030 -64282073 -253d7669 -000a2964 -726d6974 -70203a30 -6f697265 -20636964 -656d6974 -64253d72 -28207a48 -742e6f69 -72656d69 -2964253d -0000000a -636c6557 -20656d6f -44206f74 -526b7261 -56435349 -00000021 -0000203e -00000020 -61656c63 -00000072 -1b485b1b -004a325b -6f727461 -00000073 -65726f63 -72203a30 -6f6f6265 -6e692074 -73203320 -6e6f6365 -2e2e7364 -0000002e -21776f77 -6c656820 -61206f6c -736f7274 -2f6f2021 -00000a0a -706d7564 -00000000 -203a7825 -00000000 -00207825 -00006472 -00007277 -0064656c -2064656c -7825203d -0000000a -656d6974 -00000072 -656d6974 -203d2072 -000a6425 -6f697067 -00000000 -6f697067 -25203d20 -00000a78 -006c756d -206c756d -6425203d -0000000a -00766964 -20766964 -6425203d -6f6d202c -203d2064 -000a6425 -0063616d -2063616d -6425203d -0000000a -6d6d6f63 -3a646e61 -73255b20 -6f6e205d -6f662074 -2e646e75 -6c61760a -63206469 -616d6d6f -3a73646e -656c6320 -202c7261 -706d7564 -65683c20 -202c3e78 -2064656c -7865683c -74202c3e -72656d69 -65643c20 -202c3e63 -6f697067 -65683c20 -200a3e78 -20202020 -20202020 -20202020 -6d202020 -3c206c75 -3e636564 -65643c20 -202c3e63 -20766964 -6365643c -643c203e -2c3e6365 -63616d20 -65643c20 -3c203e63 -3e636564 -65643c20 -200a3e63 -20202020 -20202020 -20202020 -72202020 -5d6d5b64 -6c77625b -683c205d -203e7865 -65683c5b -77203e78 -206e6568 -202c5d6d -6d5b7277 -77625b5d -3c205d6c -3e786568 -65683c20 -5b203e78 -7865683c -6877203e -6d206e65 -00000a5d -20760e20 -1220010a -010a1c76 -07200d72 -010a1a76 -06201072 -010a1876 -04201272 -010a1876 -04201272 -010a1876 -04201272 -010a1876 -06201072 -02201676 -0d72010a -16760720 -010a0420 -10200272 -06201676 -0272010a -18760c20 -02720620 -0472010a -1a760620 -04720620 -0672010a -16760620 -06720620 -0872010a -12760620 -08720620 -0a72010a -0e760620 -0a720620 -0c72010a -0a760620 -0c720620 -0e72010a -06760620 -0e720620 -1072010a -02760620 -10720620 -1272010a -12720a20 -1472010a -14720620 -1672010a -16720220 -0720020a -014e0149 -01540153 -01550152 -01540143 -014f0149 -0120014e -01450153 -01530154 -01570120 -014e0141 -01200154 -014f0154 -01420120 -01200145 -01520146 -020a0245 -00000000 diff --git a/src/darksocv.o b/src/darksocv.o deleted file mode 100755 index aae6849e8977fc7a14ff537f5aca88dbe2c36b37..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10936 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 diff --git a/src/io.s b/src/io.s deleted file mode 100644 index ebc8d8c..0000000 --- a/src/io.s +++ /dev/null @@ -1,72 +0,0 @@ - .file "io.c" - .option nopic - .text - .align 2 - .globl board_name - .type board_name, @function -board_name: - beqz a0,.L3 - li a5,1 - beq a0,a5,.L4 - li a5,2 - beq a0,a5,.L5 - li a5,3 - beq a0,a5,.L6 - li a5,4 - beq a0,a5,.L7 - lui a0,%hi(.LC5) - addi a0,a0,%lo(.LC5) - ret -.L3: - lui a0,%hi(.LC2) - addi a0,a0,%lo(.LC2) - ret -.L4: - lui a0,%hi(.LC3) - addi a0,a0,%lo(.LC3) - ret -.L5: - lui a0,%hi(.LC1) - addi a0,a0,%lo(.LC1) - ret -.L6: - lui a0,%hi(.LC4) - addi a0,a0,%lo(.LC4) - ret -.L7: - lui a0,%hi(.LC0) - addi a0,a0,%lo(.LC0) - ret - .size board_name, .-board_name - .globl utimers - .globl threads - .comm io,16,4 - .section .rodata.str1.4,"aMS",@progbits,1 - .align 2 -.LC0: - .string "unknown host x86" - .zero 3 -.LC1: - .string "xilinx ac701 artix-7 a200" - .zero 2 -.LC2: - .string "simulation only" -.LC3: - .string "avnet microboard spartan-6 lx9" - .zero 1 -.LC4: - .string "qmtech sdram lx16" - .zero 2 -.LC5: - .string "unknown" - .section .sbss,"aw",@nobits - .align 2 - .type utimers, @object - .size utimers, 4 -utimers: - .zero 4 - .type threads, @object - .size threads, 4 -threads: - .zero 4 - .ident "GCC: (GNU) 9.0.0 20180818 (experimental)" diff --git a/src/main.o b/src/main.o deleted file mode 100644 index daa819c432935ce0a14367d914018b83c8d62c3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10124 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 " - .zero 1 -.LC12: - .string " " - .zero 2 -.LC13: - .string "clear" - .zero 2 -.LC14: - .string "\033[H\033[2J" -.LC15: - .string "reboot" - .zero 1 -.LC16: - .string "core0: reboot in 3 seconds" - .zero 1 -.LC17: - .string "done." - .zero 2 -.LC18: - .string "dump" - .zero 3 -.LC19: - .string "%x: " - .zero 3 -.LC20: - .string "%x " -.LC21: - .string "rd" - .zero 1 -.LC22: - .string "wr" - .zero 1 -.LC23: - .string "led" -.LC24: - .string "led = %x\n" - .zero 2 -.LC25: - .string "timer" - .zero 2 -.LC26: - .string "timer = %d\n" -.LC27: - .string "gpio" - .zero 3 -.LC28: - .string "gpio = %x\n" - .zero 1 -.LC29: - .string "mul" -.LC30: - .string "mul = %d\n" - .zero 2 -.LC31: - .string "div" -.LC32: - .string "div = %d, mod = %d\n" -.LC33: - .string "mac" -.LC34: - .string "mac = %d\n" - .zero 2 -.LC35: - .string "command: [%s] not found.\nvalid commands: clear, dump , led , timer , gpio \n mul , div , mac \n rd[m][bwl] [ when m], wr[m][bwl] [ when m]\n" - .ident "GCC: (GNU) 9.0.0 20180818 (experimental)" diff --git a/src/stdio.o b/src/stdio.o deleted file mode 100644 index 466b396bfad68aa93b87207f36fb01d353a65b0a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7660 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 diff --git a/src/stdio.s b/src/stdio.s deleted file mode 100644 index f6b3678..0000000 --- a/src/stdio.s +++ /dev/null @@ -1,706 +0,0 @@ - .file "stdio.c" - .option nopic - .text - .align 2 - .globl getchar - .type getchar, @function -getchar: - lui a5,%hi(io) - addi a5,a5,%lo(io) -.L2: - lbu a4,4(a5) - andi a4,a4,2 - beqz a4,.L2 - lbu a0,5(a5) - ret - .size getchar, .-getchar - .align 2 - .globl putchar - .type putchar, @function -putchar: - lui a5,%hi(io) - li a4,10 - addi a5,a5,%lo(io) - bne a0,a4,.L8 -.L7: - lbu a4,4(a5) - andi a4,a4,1 - bnez a4,.L7 - li a4,13 - sb a4,5(a5) -.L8: - lbu a4,4(a5) - andi a4,a4,1 - bnez a4,.L8 - andi a4,a0,0xff - sb a4,5(a5) - mv a0,a4 - ret - .size putchar, .-putchar - .align 2 - .globl gets - .type gets, @function -gets: - addi sp,sp,-24 - sw s0,16(sp) - sw s1,12(sp) - sw ra,20(sp) - mv s1,a0 - mv s0,a0 -.L12: - addi a4,a1,-1 - beqz a4,.L16 - sw a1,4(sp) - sw a4,0(sp) - call getchar - li a3,10 - lw a4,0(sp) - lw a1,4(sp) - bne a0,a3,.L13 -.L16: - li a0,10 - call putchar - sb zero,0(s0) - bne s0,s1,.L14 - li s1,0 -.L14: - lw ra,20(sp) - lw s0,16(sp) - mv a0,s1 - lw s1,12(sp) - addi sp,sp,24 - jr ra -.L13: - sw a1,8(sp) - sw a4,4(sp) - li a3,13 - sw a0,0(sp) - beq a0,a3,.L16 - call putchar - lw a5,0(sp) - li a3,8 - lw a4,4(sp) - lw a1,8(sp) - bne a5,a3,.L17 - beq s0,s1,.L18 - sb zero,-1(s0) - mv a4,a1 - addi s0,s0,-1 -.L18: - mv a1,a4 - j .L12 -.L17: - sb a5,0(s0) - addi s0,s0,1 - j .L18 - .size gets, .-gets - .align 2 - .globl putstr - .type putstr, @function -putstr: - addi sp,sp,-12 - sw s0,4(sp) - sw ra,8(sp) - mv s0,a0 - bnez a0,.L24 - lui s0,%hi(.LC2) - addi s0,s0,%lo(.LC2) -.L24: - lbu a0,0(s0) - bnez a0,.L26 - lw ra,8(sp) - lw s0,4(sp) - addi sp,sp,12 - jr ra -.L26: - addi s0,s0,1 - call putchar - j .L24 - .size putstr, .-putstr - .align 2 - .globl puts - .type puts, @function -puts: - addi sp,sp,-12 - sw ra,8(sp) - call putstr - lw ra,8(sp) - li a0,10 - addi sp,sp,12 - tail putchar - .size puts, .-puts - .globl __udivsi3 - .globl __umodsi3 - .align 2 - .globl putdx - .type putdx, @function -putdx: - addi sp,sp,-84 - sw a1,0(sp) - lui a1,%hi(.LANCHOR0) - sw s0,76(sp) - sw s1,72(sp) - li a2,44 - addi s1,a1,%lo(.LANCHOR0) - mv s0,a0 - addi a1,a1,%lo(.LANCHOR0) - addi a0,sp,28 - sw ra,80(sp) - call memcpy - li a2,20 - addi a1,s1,44 - addi a0,sp,8 - call memcpy - lw a4,0(sp) - addi a5,sp,8 - beqz a4,.L32 - addi a5,sp,28 -.L32: - li s1,24 -.L33: - lw a1,0(a5) - bnez a1,.L37 - lw ra,80(sp) - lw s0,76(sp) - lw s1,72(sp) - addi sp,sp,84 - jr ra -.L37: - li a4,1 - beq a1,a4,.L34 - bgtu a1,s0,.L35 -.L34: - lw a3,0(sp) - lui a4,%hi(.LC3) - sw a5,4(sp) - addi a4,a4,%lo(.LC3) - beqz a3,.L36 - mv a0,s0 - call __udivsi3 - li a1,10 - call __umodsi3 - lui a5,%hi(.LC3) - addi a4,a5,%lo(.LC3) - add a0,a4,a0 - lbu a0,0(a0) -.L41: - call putchar - lw a5,4(sp) -.L35: - addi s1,s1,-8 - addi a5,a5,4 - j .L33 -.L36: - addi a3,s1,4 - srl a3,s0,a3 - andi a3,a3,15 - add a3,a4,a3 - lbu a0,0(a3) - call putchar - srl a0,s0,s1 - lui a5,%hi(.LC3) - andi a0,a0,15 - addi a4,a5,%lo(.LC3) - add a4,a4,a0 - lbu a0,0(a4) - j .L41 - .size putdx, .-putdx - .align 2 - .globl putx - .type putx, @function -putx: - li a1,0 - tail putdx - .size putx, .-putx - .align 2 - .globl putd - .type putd, @function -putd: - li a1,1 - tail putdx - .size putd, .-putd - .align 2 - .globl printf - .type printf, @function -printf: - addi sp,sp,-36 - sw a5,32(sp) - addi a5,sp,16 - sw s0,8(sp) - sw ra,12(sp) - sw s1,4(sp) - mv s0,a0 - sw a1,16(sp) - sw a2,20(sp) - sw a3,24(sp) - sw a4,28(sp) - sw a5,0(sp) -.L45: - lbu a0,0(s0) - bnez a0,.L51 - lw ra,12(sp) - lw s0,8(sp) - lw s1,4(sp) - addi sp,sp,36 - jr ra -.L51: - li a5,37 - addi s1,s0,1 - bne a0,a5,.L46 - lbu a0,1(s0) - li a5,115 - bne a0,a5,.L47 - lw a5,0(sp) - lw a0,0(a5) - addi a4,a5,4 - sw a4,0(sp) - call putstr -.L48: - addi s0,s1,1 - j .L45 -.L47: - li a5,120 - bne a0,a5,.L49 - lw a5,0(sp) - lw a0,0(a5) - addi a4,a5,4 - sw a4,0(sp) - call putx - j .L48 -.L49: - li a5,100 - bne a0,a5,.L50 - lw a5,0(sp) - lw a0,0(a5) - addi a4,a5,4 - sw a4,0(sp) - call putd - j .L48 -.L50: - call putchar - j .L48 -.L46: - call putchar - mv s1,s0 - j .L48 - .size printf, .-printf - .align 2 - .globl strncmp - .type strncmp, @function -strncmp: - addi a2,a2,-1 - li a5,0 -.L55: - add a4,a0,a5 - lbu a3,0(a4) - add a4,a1,a5 - lbu a4,0(a4) - beq a5,a2,.L54 - beqz a3,.L54 - beqz a4,.L54 - addi a5,a5,1 - beq a3,a4,.L55 -.L54: - sub a0,a3,a4 - ret - .size strncmp, .-strncmp - .align 2 - .globl strcmp - .type strcmp, @function -strcmp: - li a2,-1 - tail strncmp - .size strcmp, .-strcmp - .align 2 - .globl strlen - .type strlen, @function -strlen: - li a5,0 -.L65: - add a4,a0,a5 - lbu a4,0(a4) - beqz a4,.L64 - addi a5,a5,1 - add a4,a0,a5 - bnez a4,.L65 -.L64: - mv a0,a5 - ret - .size strlen, .-strlen - .align 2 - .globl memcpy - .type memcpy, @function -memcpy: - li a5,0 -.L72: - bne a5,a2,.L73 - ret -.L73: - add a4,a1,a5 - lbu a3,0(a4) - add a4,a0,a5 - addi a5,a5,1 - sb a3,0(a4) - j .L72 - .size memcpy, .-memcpy - .align 2 - .globl memset - .type memset, @function -memset: - add a2,a0,a2 - mv a5,a0 -.L75: - bne a5,a2,.L76 - ret -.L76: - addi a5,a5,1 - sb a1,-1(a5) - j .L75 - .size memset, .-memset - .align 2 - .globl strtok - .type strtok, @function -strtok: - addi sp,sp,-20 - sw s0,12(sp) - mv s0,a0 - mv a0,a1 - sw s1,8(sp) - sw ra,16(sp) - mv s1,a1 - call strlen - mv a3,a0 - bnez s0,.L78 - lui a5,%hi(nxt.1629) - lw s0,%lo(nxt.1629)(a5) - beqz s0,.L79 -.L78: - mv a5,s0 -.L80: - lbu a4,0(a5) - bnez a4,.L81 - lui a5,%hi(nxt.1629) - sw zero,%lo(nxt.1629)(a5) - j .L79 -.L81: - mv a2,a3 - mv a0,a5 - mv a1,s1 - sw a3,4(sp) - sw a5,0(sp) - call strncmp - lw a5,0(sp) - lw a3,4(sp) - addi a4,a5,1 - bnez a0,.L82 - sb zero,0(a5) - lui a5,%hi(nxt.1629) - sw a4,%lo(nxt.1629)(a5) -.L79: - mv a0,s0 - lw ra,16(sp) - lw s0,12(sp) - lw s1,8(sp) - addi sp,sp,20 - jr ra -.L82: - mv a5,a4 - j .L80 - .size strtok, .-strtok - .align 2 - .globl atoi - .type atoi, @function -atoi: - li a3,0 - li a5,0 - li a2,45 -.L88: - bnez a0,.L90 -.L94: - bnez a3,.L91 -.L87: - mv a0,a5 - ret -.L95: - li a3,1 - j .L89 -.L90: - lbu a4,0(a0) - beqz a4,.L94 - beq a4,a2,.L95 - slli a1,a5,3 - addi a4,a4,-48 - add a4,a4,a1 - slli a5,a5,1 - add a5,a4,a5 -.L89: - addi a0,a0,1 - j .L88 -.L91: - sub a5,zero,a5 - j .L87 - .size atoi, .-atoi - .align 2 - .globl xtoi - .type xtoi, @function -xtoi: - mv a3,a0 - li a2,57 - li a0,0 -.L97: - beqz a3,.L96 - lbu a5,0(a3) - bnez a5,.L101 -.L96: - ret -.L101: - slli a4,a0,4 - bgtu a5,a2,.L98 - addi a5,a5,-48 -.L105: - add a0,a5,a4 - addi a3,a3,1 - j .L97 -.L98: - andi a5,a5,95 - addi a5,a5,-55 - j .L105 - .size xtoi, .-xtoi - .align 2 - .globl mac - .type mac, @function -mac: - #APP -# 271 "stdio.c" 1 - .word 0x00c5857F -# 0 "" 2 - #NO_APP - ret - .size mac, .-mac - .align 2 - .globl __umulsi3 - .type __umulsi3, @function -__umulsi3: - mv a5,a0 - bgeu a0,a1,.L108 - mv a5,a1 - mv a1,a0 -.L108: - li a0,0 -.L109: - bnez a1,.L111 - ret -.L111: - andi a4,a1,1 - beqz a4,.L110 - add a0,a0,a5 -.L110: - slli a5,a5,1 - srli a1,a1,1 - j .L109 - .size __umulsi3, .-__umulsi3 - .align 2 - .globl __mulsi3 - .type __mulsi3, @function -__mulsi3: - addi sp,sp,-12 - sw s1,0(sp) - sw ra,8(sp) - sw s0,4(sp) - li s1,0 - bgez a0,.L116 - sub a0,zero,a0 - li s1,1 -.L116: - li s0,0 - bgez a1,.L117 - sub a1,zero,a1 - li s0,1 -.L117: - call __umulsi3 - mv a5,a0 - beq s1,s0,.L115 - sub a5,zero,a0 -.L115: - lw ra,8(sp) - lw s0,4(sp) - lw s1,0(sp) - mv a0,a5 - addi sp,sp,12 - jr ra - .size __mulsi3, .-__mulsi3 - .align 2 - .globl __udiv_umod_si3 - .type __udiv_umod_si3, @function -__udiv_umod_si3: - li a5,1 - bnez a1,.L126 -.L125: - mv a0,a1 - ret -.L127: - slli a5,a5,1 - slli a1,a1,1 -.L126: - bgtu a0,a1,.L127 - mv a4,a1 - li a1,0 -.L128: - beqz a0,.L130 - bnez a5,.L131 -.L130: - bnez a2,.L125 - mv a1,a0 - j .L125 -.L131: - bltu a0,a4,.L129 - sub a0,a0,a4 - add a1,a1,a5 -.L129: - srli a5,a5,1 - srli a4,a4,1 - j .L128 - .size __udiv_umod_si3, .-__udiv_umod_si3 - .align 2 - .globl __udivsi3 - .type __udivsi3, @function -__udivsi3: - li a2,1 - tail __udiv_umod_si3 - .size __udivsi3, .-__udivsi3 - .align 2 - .globl __umodsi3 - .type __umodsi3, @function -__umodsi3: - li a2,0 - tail __udiv_umod_si3 - .size __umodsi3, .-__umodsi3 - .align 2 - .globl __div_mod_si3 - .type __div_mod_si3, @function -__div_mod_si3: - beqz a1,.L154 - addi sp,sp,-16 - sw s0,8(sp) - sw ra,12(sp) - sw s1,4(sp) - mv a5,a2 - li s0,0 - bgez a0,.L142 - sub a0,zero,a0 - li s0,1 -.L142: - li s1,0 - bgez a1,.L143 - sub a1,zero,a1 - li s1,1 -.L143: - mv a2,a5 - sw a5,0(sp) - call __udiv_umod_si3 - lw a5,0(sp) - mv a1,a0 - beqz a5,.L144 - beq s0,s1,.L141 - sub a1,zero,a0 -.L141: - lw ra,12(sp) - lw s0,8(sp) - lw s1,4(sp) - mv a0,a1 - addi sp,sp,16 - jr ra -.L144: - beqz s0,.L141 - sub a1,zero,a0 - j .L141 -.L154: - mv a0,a1 - ret - .size __div_mod_si3, .-__div_mod_si3 - .align 2 - .globl __divsi3 - .type __divsi3, @function -__divsi3: - li a2,1 - tail __div_mod_si3 - .size __divsi3, .-__divsi3 - .align 2 - .globl __modsi3 - .type __modsi3, @function -__modsi3: - li a2,0 - tail __div_mod_si3 - .size __modsi3, .-__modsi3 - .align 2 - .globl usleep - .type usleep, @function -usleep: - lui a5,%hi(threads) - lw a4,%lo(threads)(a5) - li a5,1 - ble a4,a5,.L171 - li a4,-1 - lui a5,%hi(utimers) -.L160: - addi a0,a0,-1 - bne a0,a4,.L163 - ret -.L171: - lui a5,%hi(io) - li a3,-1 - addi a5,a5,%lo(io) - li a2,-128 -.L161: - addi a0,a0,-1 - bne a0,a3,.L165 - ret -.L163: - lw a3,%lo(utimers)(a5) -.L162: - lw a2,%lo(utimers)(a5) - beq a2,a3,.L162 - j .L160 -.L165: - sb a2,3(a5) -.L164: - lbu a4,3(a5) - andi a4,a4,0xff - beqz a4,.L164 - j .L161 - .size usleep, .-usleep - .section .rodata - .align 2 - .set .LANCHOR0,. + 0 -.LC0: - .word 1000000000 - .word 100000000 - .word 10000000 - .word 1000000 - .word 100000 - .word 10000 - .word 1000 - .word 100 - .word 10 - .word 1 - .word 0 -.LC1: - .word 16777216 - .word 65536 - .word 256 - .word 1 - .word 0 - .section .rodata.str1.4,"aMS",@progbits,1 - .align 2 -.LC2: - .string "(NULL)" - .zero 1 -.LC3: - .string "0123456789abcdef" - .section .sbss,"aw",@nobits - .align 2 - .type nxt.1629, @object - .size nxt.1629, 4 -nxt.1629: - .zero 4 - .ident "GCC: (GNU) 9.0.0 20180818 (experimental)" From 81c5f7f8e5963f15d1057fcc0fef903e1f45acfa Mon Sep 17 00:00:00 2001 From: Sean Anderson Date: Fri, 6 Dec 2019 02:18:43 -0500 Subject: [PATCH 4/4] Add some additional flags for building the OS These are necessary when building with a toolchain that supports both riscv32 and riscv64. --- src/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Makefile b/src/Makefile index 663e678..c07f88e 100644 --- a/src/Makefile +++ b/src/Makefile @@ -61,9 +61,9 @@ endif OD = $(CCPATH)/$(CROSS)-objdump CPP = $(CCPATH)/$(CROSS)-cpp -CCFLAGS = -Wall -I./include -Os -march=$(ARCH) -D__RISCV__ -DBUILD="\"$(BUILD)\"" -DARCH="\"$(ARCH)\"" +CCFLAGS = -Wall -I./include -Os -march=$(ARCH) -mabi=ilp32e -D__RISCV__ -DBUILD="\"$(BUILD)\"" -DARCH="\"$(ARCH)\"" ASFLAGS = -march=$(ARCH) -LDFLAGS = -T$(PROJ).ld -Map=$(PROJ).map # -Ttext=0 +LDFLAGS = -T$(PROJ).ld -Map=$(PROJ).map -m elf32lriscv # -Ttext=0 CPFLAGS = -P #CCFLAGS += -mcmodel=medany -mexplicit-relocs # relocable clode