From ee8710c317616bac985ed0934b205bf01b95f09b Mon Sep 17 00:00:00 2001 From: Benjamin Kyd Date: Thu, 20 Jul 2023 22:53:23 +0100 Subject: [PATCH] More validation with "i" extension and gdb like command interface --- src/main.rs | 9 +- src/management.rs | 50 ++++++++++ test/Makefile | 4 +- test/test | Bin 6104 -> 5376 bytes test/test.S | 250 +++------------------------------------------- test/test.bin | Bin 792 -> 52 bytes test/test.hex | 56 ++--------- test/test.lst | 213 +++------------------------------------ test/test.map | 32 +++--- 9 files changed, 110 insertions(+), 504 deletions(-) create mode 100644 src/management.rs diff --git a/src/main.rs b/src/main.rs index 0dfa6ac..6955238 100644 --- a/src/main.rs +++ b/src/main.rs @@ -6,6 +6,7 @@ use std::io::BufReader; use std::io::Read; use std::{cell::RefCell, rc::Rc}; +mod management; mod cpu; mod err; mod ext; @@ -20,6 +21,7 @@ struct VMRV32I { bus: Rc>, cpu: cpu::CPU, instruction_decoder: Rc>, + manager: management::Management, } impl VMRV32I { @@ -40,6 +42,7 @@ impl VMRV32I { cpu, bus, instruction_decoder, + manager: management::Management::new(), } } @@ -96,9 +99,11 @@ impl VMRV32I { fn main() { println!("VM Starting Up"); - + println!("VM Loading CPU Management Engine"); let mut vm = VMRV32I::new(); - let size = vm.load_prog("./test/c_test.bin"); + vm.manager.prompt(); + + let size = vm.load_prog("./test/test.bin"); vm.dump_prog(size); vm.dispatch(); } diff --git a/src/management.rs b/src/management.rs new file mode 100644 index 0000000..d0a9675 --- /dev/null +++ b/src/management.rs @@ -0,0 +1,50 @@ +use std::io::{stdin, Write}; + +pub struct VMAction { + action: Action, +} + +pub enum Action { + Load, + Step, + Run, + Inspect, + Dump, + Reg, +} + +pub struct Management { + pause: bool, +} + +impl Management { + pub fn new() -> Management { + Management { pause: true } + } + + pub fn vm_params() -> Vec { + vec![VMAction { action: Action::Load }] + } + + pub fn prompt(&self) -> Action { + print!("VM >> "); + std::io::stdout().flush().unwrap(); + + let mut input = String::new(); + stdin().read_line(&mut input).unwrap(); + + let mut parts = input.trim().split_whitespace(); + let command = parts.next().unwrap(); + let args = parts; + + match command { + "load" => Action::Load, + "step" => Action::Step, + "run" => Action::Run, + _ => { + println!("VM > Command {} not found", command); + self.prompt() + } + } + } +} diff --git a/test/Makefile b/test/Makefile index 9030a76..16d1866 100644 --- a/test/Makefile +++ b/test/Makefile @@ -1,10 +1,10 @@ -TARGET=c_test +TARGET=test GCC_PREFIX=riscv32-unknown-elf CFLAGS:=-fno-stack-protector CFLAGS+=-static-libgcc -fdata-sections -ffunction-sections CFLAGS+=-g -O0 -march=rv32ia -mabi=ilp32 -static -LDFLAGS:= -T flatfile.lds -nostdlib +LDFLAGS:= -T flatfile.lds -nostdlib all: build diff --git a/test/test b/test/test index 3d926deeb8e3bef62d5ce41afca25d7806fcd193..d8c5641fd0b1e46e364f03a3899c9d487890ef3d 100755 GIT binary patch literal 5376 zcmeHLOKTHR6#iyzqOI06Z3G_`lR^q2bW+-ax{`tq5K%D*f?$}$u^nuaGMScidvBVG6*ungfpgDy9{2Ul%_8UR-G}!)&w~{o-(b9KnZa5` zXO>Zek87B~Stww0xol?uRRasOGB=;E^BLWI9a*bL#mGEyoj3*@1C9a5fMdWh;23ZW zI0hU8jseGjW56-+{~6flpY@6l?E6n}Lm{guRj%-leCOp;9H?FFepWbm_W_l{9o9{w zclhbY%2l2#iTj;xc;^X=$@bD>ytuj03OQg;LMY%mEn5rUOXtLx#sEPz?+^H1)t~e) zvj+KqB2OXvd*cOoCyxGKvmcMnoN*DUT}Mc^OtHoEl;QD!=PdNMY>Qjs<-EIib^; zHXf#a^W_~}Fq=uAi}xRjeI@duq<>};(nquXGl|I>B1=?@#c#6iy#OON zcbmT81rz_mx>R~hStsAtip|9gSS-1ltg8tyGG^?6 zR_g5ep0jS=uf7_6qWWV>v|Xg&X|?sAQ@90Tty|p(2F~N+>I~hqc3d_BiWxyKvy@C)sc2_de#$ zZ^k~nJ1eV~L_vT=MEDDaGk_&-_~rG)gRl=k#P<{^AOUR2Xj)K*_Vnnj^aRIAZqgHE zo2J)`GKYyt5k}e0XUJiax`b+BLzJMCM$FoanSAhuc?g7(!p@cpz z`qqBl15Y_PY(Zzr)&0=>RtHJ5GxA+duTa!Z;1{ z&+i1%ydUfzJn4DL1YkV(nFUvq0~P&-K6jsykNPEIg$JTU`x69dqXU3CWX24z)7yZ1 z7MZpivf}-ao%BQ8Q|R$E)k&ayA+8zjAKd*Tl~2HY0_G8UKIAaNpC;q}eteY`Ny96y zzJqyZApI+|w2&0Bf;av9u@%g zuc+O03?Bs_>PuBFUi`37s;qssP1G|s~En~2(tcI^fTuaT2||#ZioAQdG^$aH@1vsE;PYpNFF;z)S=r-L|3i1P-Usf9~xeMx)#K9LG9) z9R7rB4fQnEIhX10o#*~#zQh#QtC2qsPN|O~{KY(#G59*-RL?5s=X;*(^D+J#WANq} zyp1^JPbAqlR2xmpzGb%SmR-AM)S!41OmpLUt7=_0w_1&+Q@4wVte2OsESncrDj%*^Oq3c2H&^Iz7ykDEWx7nNdE(TG2 za=jD(=f~r0g;*WEv+)aPq4@0QmE6PlejkM&og~GOEaHRT^j0)Uy^=olxW07anyx*; zNMGjP!B2c4;)nhj^dBLai&gY5p?^wNrgumf#u$6`8 diff --git a/test/test.S b/test/test.S index d8f5ed9..54cd01d 100644 --- a/test/test.S +++ b/test/test.S @@ -1,236 +1,16 @@ -.file "binary_search.c" - .option nopic - .text - .align 2 - .globl binary_search - .type binary_search, @function -binary_search: - addi sp,sp,-48 - sw ra,44(sp) - sw s0,40(sp) - addi s0,sp,48 - sw a0,-36(s0) - sw a1,-40(s0) - sw a2,-44(s0) - sw a3,-48(s0) - lw a4,-48(s0) - lw a5,-44(s0) - sub a5,a4,a5 - srli a4,a5,31 - add a5,a4,a5 - srai a5,a5,1 - mv a4,a5 - lw a5,-44(s0) - add a5,a5,a4 - sw a5,-20(s0) - lw a4,-44(s0) - lw a5,-48(s0) - ble a4,a5,.L2 - li a5,-1 - j .L3 -.L2: - lw a5,-20(s0) - slli a5,a5,2 - lw a4,-36(s0) - add a5,a4,a5 - lw a5,0(a5) - lw a4,-40(s0) - bne a4,a5,.L4 - lw a5,-20(s0) - j .L3 -.L4: - lw a5,-20(s0) - slli a5,a5,2 - lw a4,-36(s0) - add a5,a4,a5 - lw a5,0(a5) - lw a4,-40(s0) - bge a4,a5,.L5 - lw a5,-20(s0) - addi a5,a5,-1 - mv a3,a5 - lw a2,-44(s0) - lw a1,-40(s0) - lw a0,-36(s0) - call binary_search - mv a5,a0 - j .L3 -.L5: - lw a5,-20(s0) - addi a5,a5,1 - lw a3,-48(s0) - mv a2,a5 - lw a1,-40(s0) - lw a0,-36(s0) - call binary_search - mv a5,a0 -.L3: - mv a0,a5 - lw ra,44(sp) - lw s0,40(sp) - addi sp,sp,48 - jr ra - .size binary_search, .-binary_search - .align 2 - .globl search - .type search, @function -search: - addi sp,sp,-32 - sw ra,28(sp) - sw s0,24(sp) - addi s0,sp,32 - sw a0,-20(s0) - sw a1,-24(s0) - sw a2,-28(s0) - lw a5,-28(s0) - addi a5,a5,-1 - mv a3,a5 - li a2,0 - lw a1,-24(s0) - lw a0,-20(s0) - call binary_search - mv a5,a0 - mv a0,a5 - lw ra,28(sp) - lw s0,24(sp) - addi sp,sp,32 - jr ra - .size search, .-search - .align 2 - .globl sort - .type sort, @function -sort: - addi sp,sp,-48 - sw s0,44(sp) - addi s0,sp,48 - sw a0,-36(s0) - sw a1,-40(s0) - sw zero,-20(s0) - j .L9 -.L13: - sw zero,-24(s0) - j .L10 -.L12: - lw a5,-24(s0) - addi a5,a5,1 - slli a5,a5,2 - lw a4,-36(s0) - add a5,a4,a5 - lw a4,0(a5) - lw a5,-24(s0) - slli a5,a5,2 - lw a3,-36(s0) - add a5,a3,a5 - lw a5,0(a5) - bge a4,a5,.L11 - lw a5,-24(s0) - slli a5,a5,2 - lw a4,-36(s0) - add a5,a4,a5 - lw a5,0(a5) - sw a5,-28(s0) - lw a5,-24(s0) - addi a5,a5,1 - slli a5,a5,2 - lw a4,-36(s0) - add a4,a4,a5 - lw a5,-24(s0) - slli a5,a5,2 - lw a3,-36(s0) - add a5,a3,a5 - lw a4,0(a4) - sw a4,0(a5) - lw a5,-24(s0) - addi a5,a5,1 - slli a5,a5,2 - lw a4,-36(s0) - add a5,a4,a5 - lw a4,-28(s0) - sw a4,0(a5) -.L11: - lw a5,-24(s0) - addi a5,a5,1 - sw a5,-24(s0) -.L10: - lw a4,-40(s0) - lw a5,-20(s0) - sub a5,a4,a5 - addi a5,a5,-1 - lw a4,-24(s0) - blt a4,a5,.L12 - lw a5,-20(s0) - addi a5,a5,1 - sw a5,-20(s0) -.L9: - lw a5,-40(s0) - addi a5,a5,-1 - lw a4,-20(s0) - blt a4,a5,.L13 - nop - mv a0,a5 - lw s0,44(sp) - addi sp,sp,48 - jr ra - .size sort, .-sort - .section .rodata - .align 2 -.LC0: - .word 0 - .word 6 - .word 8 - .word 4 - .word 3 - .word 9 - .word 7 - .word 5 - .text - .align 2 - .globl main - .type main, @function main: - addi sp,sp,-64 - sw ra,60(sp) - sw s0,56(sp) - addi s0,sp,64 - lui a5,%hi(.LC0) - lw a7,%lo(.LC0)(a5) - addi a4,a5,%lo(.LC0) - lw a6,4(a4) - addi a4,a5,%lo(.LC0) - lw a0,8(a4) - addi a4,a5,%lo(.LC0) - lw a1,12(a4) - addi a4,a5,%lo(.LC0) - lw a2,16(a4) - addi a4,a5,%lo(.LC0) - lw a3,20(a4) - addi a4,a5,%lo(.LC0) - lw a4,24(a4) - addi a5,a5,%lo(.LC0) - lw a5,28(a5) - sw a7,-52(s0) - sw a6,-48(s0) - sw a0,-44(s0) - sw a1,-40(s0) - sw a2,-36(s0) - sw a3,-32(s0) - sw a4,-28(s0) - sw a5,-24(s0) - addi a5,s0,-52 - li a1,8 - mv a0,a5 - call sort - addi a5,s0,-52 - li a2,8 - li a1,9 - mv a0,a5 - call search - sw a0,-20(s0) - lw a5,-20(s0) - mv a0,a5 - lw ra,60(sp) - lw s0,56(sp) - addi sp,sp,64 - jr ra - .size main, .-main - .ident "GCC: (GNU) 7.2.0" + addi x3,x0,0 # s = 0 + addi x4,x0,0 # i = 0 + addi x5,x0,5 # const 5 + lui x6, 0x80000 + addi x6,x6,0x100 # base address of ax[] + addi x8,x0,0 # offset = 0 +loop: + bge x4, x5, exit + add x7, x6, x8 # compute effective address + lw x9, 0(x7) # get ax[i] + add x3, x3, x9 # s = s + ax[i] + addi x8, x8, 4 # next element + addi x4, x4, 1 # increment index + j loop +exit: diff --git a/test/test.bin b/test/test.bin index 2d63feea78ec4fe7a8bbe04b7bcc6bcdc97b2ece..35331427c5d5a02e60703243cec227e63be7caad 100755 GIT binary patch literal 52 zcmbQt$iN`X#K16_DS*M8nV~_LnOQ)Xg@GYCE{I_>b2CHp5@v?YjT0G!SzLhXgc$Na H%>M@f;~fh^ literal 792 zcmZ`%!D<^Z5FM@7R$6)qTk2y&#@3n;oI`)Whtl+1`UgJrm|xf+w|gz<&|`WqmS6Pn!285yG+Fj<|muC9#k^n$^62R`Xs_ z^YF5kY3xk;+I>^iIJv3>GTE!%ILQ??^?XjOOD};jz)pV5$*Sf35oKE@Exi4bl1z(m zp3JGj|I|%h;2(QOH10l%d0$1%US8eXPdKN+KbSf>DBNOsU0T&4oNqBbGCFn%aQ`tU zcL9@pL~Z9hlA%8#kEtbHsY)xqs$)xA5r6+xE_+OM%bhPQO^5{9fY| z;1l49T0UsFp`VV?-}h(S51F2tbPC=ct?MD7M^lGJMnj|gPovS~T?Ji$-_VYCOT6zP z&#Rzoi~YwTQ$_rBzN&BDiT>92xF5Wm!n?u;k3;WR``fow8EWCp!C&0rR(plNeN){f z1RbHR?4PgeT0_?ex`tVb%`iJiRCXYTht%Xj-efblSgo}Zp>FhHlVzF<8`h^6g7tI9 z!`Sg&JC7sGt;oXIAXF$R;3D4r- TS@>WtZ6RWWL_9$#L: - 0: fd010113 addi sp,sp,-48 - 4: 02112623 sw ra,44(sp) - 8: 02812423 sw s0,40(sp) - c: 03010413 addi s0,sp,48 - 10: fca42e23 sw a0,-36(s0) - 14: fcb42c23 sw a1,-40(s0) - 18: fcc42a23 sw a2,-44(s0) - 1c: fcd42823 sw a3,-48(s0) - 20: fd042703 lw a4,-48(s0) - 24: fd442783 lw a5,-44(s0) - 28: 40f707b3 sub a5,a4,a5 - 2c: 01f7d713 srli a4,a5,0x1f - 30: 00f707b3 add a5,a4,a5 - 34: 4017d793 srai a5,a5,0x1 - 38: 00078713 addi a4,a5,0 - 3c: fd442783 lw a5,-44(s0) - 40: 00e787b3 add a5,a5,a4 - 44: fef42623 sw a5,-20(s0) - 48: fd442703 lw a4,-44(s0) - 4c: fd042783 lw a5,-48(s0) - 50: 00e7d663 bge a5,a4,5c - 54: fff00793 addi a5,zero,-1 - 58: 0880006f jal zero,e0 - 5c: fec42783 lw a5,-20(s0) - 60: 00279793 slli a5,a5,0x2 - 64: fdc42703 lw a4,-36(s0) - 68: 00f707b3 add a5,a4,a5 - 6c: 0007a783 lw a5,0(a5) - 70: fd842703 lw a4,-40(s0) - 74: 00f71663 bne a4,a5,80 - 78: fec42783 lw a5,-20(s0) - 7c: 0640006f jal zero,e0 - 80: fec42783 lw a5,-20(s0) - 84: 00279793 slli a5,a5,0x2 - 88: fdc42703 lw a4,-36(s0) - 8c: 00f707b3 add a5,a4,a5 - 90: 0007a783 lw a5,0(a5) - 94: fd842703 lw a4,-40(s0) - 98: 02f75463 bge a4,a5,c0 - 9c: fec42783 lw a5,-20(s0) - a0: fff78793 addi a5,a5,-1 - a4: 00078693 addi a3,a5,0 - a8: fd442603 lw a2,-44(s0) - ac: fd842583 lw a1,-40(s0) - b0: fdc42503 lw a0,-36(s0) - b4: f4dff0ef jal ra,0 - b8: 00050793 addi a5,a0,0 - bc: 0240006f jal zero,e0 - c0: fec42783 lw a5,-20(s0) - c4: 00178793 addi a5,a5,1 - c8: fd042683 lw a3,-48(s0) - cc: 00078613 addi a2,a5,0 - d0: fd842583 lw a1,-40(s0) - d4: fdc42503 lw a0,-36(s0) - d8: f29ff0ef jal ra,0 - dc: 00050793 addi a5,a0,0 - e0: 00078513 addi a0,a5,0 - e4: 02c12083 lw ra,44(sp) - e8: 02812403 lw s0,40(sp) - ec: 03010113 addi sp,sp,48 - f0: 00008067 jalr zero,0(ra) +80000000
: +80000000: 00000193 addi gp,zero,0 +80000004: 00000213 addi tp,zero,0 +80000008: 00500293 addi t0,zero,5 +8000000c: 80000337 lui t1,0x80000 +80000010: 10030313 addi t1,t1,256 # 80000100 +80000014: 00000413 addi s0,zero,0 -00000000000000f4 : - f4: fe010113 addi sp,sp,-32 - f8: 00112e23 sw ra,28(sp) - fc: 00812c23 sw s0,24(sp) - 100: 02010413 addi s0,sp,32 - 104: fea42623 sw a0,-20(s0) - 108: feb42423 sw a1,-24(s0) - 10c: fec42223 sw a2,-28(s0) - 110: fe442783 lw a5,-28(s0) - 114: fff78793 addi a5,a5,-1 - 118: 00078693 addi a3,a5,0 - 11c: 00000613 addi a2,zero,0 - 120: fe842583 lw a1,-24(s0) - 124: fec42503 lw a0,-20(s0) - 128: ed9ff0ef jal ra,0 - 12c: 00050793 addi a5,a0,0 - 130: 00078513 addi a0,a5,0 - 134: 01c12083 lw ra,28(sp) - 138: 01812403 lw s0,24(sp) - 13c: 02010113 addi sp,sp,32 - 140: 00008067 jalr zero,0(ra) - -0000000000000144 : - 144: fd010113 addi sp,sp,-48 - 148: 02812623 sw s0,44(sp) - 14c: 03010413 addi s0,sp,48 - 150: fca42e23 sw a0,-36(s0) - 154: fcb42c23 sw a1,-40(s0) - 158: fe042623 sw zero,-20(s0) - 15c: 0cc0006f jal zero,228 - 160: fe042423 sw zero,-24(s0) - 164: 0a00006f jal zero,204 - 168: fe842783 lw a5,-24(s0) - 16c: 00178793 addi a5,a5,1 - 170: 00279793 slli a5,a5,0x2 - 174: fdc42703 lw a4,-36(s0) - 178: 00f707b3 add a5,a4,a5 - 17c: 0007a703 lw a4,0(a5) - 180: fe842783 lw a5,-24(s0) - 184: 00279793 slli a5,a5,0x2 - 188: fdc42683 lw a3,-36(s0) - 18c: 00f687b3 add a5,a3,a5 - 190: 0007a783 lw a5,0(a5) - 194: 06f75263 bge a4,a5,1f8 - 198: fe842783 lw a5,-24(s0) - 19c: 00279793 slli a5,a5,0x2 - 1a0: fdc42703 lw a4,-36(s0) - 1a4: 00f707b3 add a5,a4,a5 - 1a8: 0007a783 lw a5,0(a5) - 1ac: fef42223 sw a5,-28(s0) - 1b0: fe842783 lw a5,-24(s0) - 1b4: 00178793 addi a5,a5,1 - 1b8: 00279793 slli a5,a5,0x2 - 1bc: fdc42703 lw a4,-36(s0) - 1c0: 00f70733 add a4,a4,a5 - 1c4: fe842783 lw a5,-24(s0) - 1c8: 00279793 slli a5,a5,0x2 - 1cc: fdc42683 lw a3,-36(s0) - 1d0: 00f687b3 add a5,a3,a5 - 1d4: 00072703 lw a4,0(a4) - 1d8: 00e7a023 sw a4,0(a5) - 1dc: fe842783 lw a5,-24(s0) - 1e0: 00178793 addi a5,a5,1 - 1e4: 00279793 slli a5,a5,0x2 - 1e8: fdc42703 lw a4,-36(s0) - 1ec: 00f707b3 add a5,a4,a5 - 1f0: fe442703 lw a4,-28(s0) - 1f4: 00e7a023 sw a4,0(a5) - 1f8: fe842783 lw a5,-24(s0) - 1fc: 00178793 addi a5,a5,1 - 200: fef42423 sw a5,-24(s0) - 204: fd842703 lw a4,-40(s0) - 208: fec42783 lw a5,-20(s0) - 20c: 40f707b3 sub a5,a4,a5 - 210: fff78793 addi a5,a5,-1 - 214: fe842703 lw a4,-24(s0) - 218: f4f748e3 blt a4,a5,168 - 21c: fec42783 lw a5,-20(s0) - 220: 00178793 addi a5,a5,1 - 224: fef42623 sw a5,-20(s0) - 228: fd842783 lw a5,-40(s0) - 22c: fff78793 addi a5,a5,-1 - 230: fec42703 lw a4,-20(s0) - 234: f2f746e3 blt a4,a5,160 - 238: 00000013 addi zero,zero,0 - 23c: 00078513 addi a0,a5,0 - 240: 02c12403 lw s0,44(sp) - 244: 03010113 addi sp,sp,48 - 248: 00008067 jalr zero,0(ra) - -000000000000024c
: - 24c: fc010113 addi sp,sp,-64 - 250: 02112e23 sw ra,60(sp) - 254: 02812c23 sw s0,56(sp) - 258: 04010413 addi s0,sp,64 - 25c: 2f802883 lw a7,760(zero) # 2f8 - 260: 2f800713 addi a4,zero,760 - 264: 00472803 lw a6,4(a4) - 268: 2f800713 addi a4,zero,760 - 26c: 00872503 lw a0,8(a4) - 270: 2f800713 addi a4,zero,760 - 274: 00c72583 lw a1,12(a4) - 278: 2f800713 addi a4,zero,760 - 27c: 01072603 lw a2,16(a4) - 280: 2f800713 addi a4,zero,760 - 284: 01472683 lw a3,20(a4) - 288: 2f800713 addi a4,zero,760 - 28c: 01872703 lw a4,24(a4) - 290: 2f800793 addi a5,zero,760 - 294: 01c7a783 lw a5,28(a5) - 298: fd142623 sw a7,-52(s0) - 29c: fd042823 sw a6,-48(s0) - 2a0: fca42a23 sw a0,-44(s0) - 2a4: fcb42c23 sw a1,-40(s0) - 2a8: fcc42e23 sw a2,-36(s0) - 2ac: fed42023 sw a3,-32(s0) - 2b0: fee42223 sw a4,-28(s0) - 2b4: fef42423 sw a5,-24(s0) - 2b8: fcc40793 addi a5,s0,-52 - 2bc: 00800593 addi a1,zero,8 - 2c0: 00078513 addi a0,a5,0 - 2c4: e81ff0ef jal ra,144 - 2c8: fcc40793 addi a5,s0,-52 - 2cc: 00800613 addi a2,zero,8 - 2d0: 00900593 addi a1,zero,9 - 2d4: 00078513 addi a0,a5,0 - 2d8: e1dff0ef jal ra,f4 - 2dc: fea42623 sw a0,-20(s0) - 2e0: fec42783 lw a5,-20(s0) - 2e4: 00078513 addi a0,a5,0 - 2e8: 03c12083 lw ra,60(sp) - 2ec: 03812403 lw s0,56(sp) - 2f0: 04010113 addi sp,sp,64 - 2f4: 00008067 jalr zero,0(ra) +80000018 : +80000018: 00525e63 bge tp,t0,80000034 +8000001c: 008303b3 add t2,t1,s0 +80000020: 0003a483 lw s1,0(t2) +80000024: 009181b3 add gp,gp,s1 +80000028: 00440413 addi s0,s0,4 +8000002c: 00120213 addi tp,tp,1 # 1 +80000030: fe9ff06f jal zero,80000018 diff --git a/test/test.map b/test/test.map index 108457f..82647ec 100644 --- a/test/test.map +++ b/test/test.map @@ -1,23 +1,19 @@ -test: file format elf64-littleriscv +test: file format elf32-littleriscv SYMBOL TABLE: -0000000000000000 l d .text 0000000000000000 .text -00000000000002f8 l d .rodata 0000000000000000 .rodata -0000000000000000 l d .comment 0000000000000000 .comment -0000000000000000 l d .riscv.attributes 0000000000000000 .riscv.attributes -0000000000000000 l df *ABS* 0000000000000000 binary_search.c -0000000000001b18 g *ABS* 0000000000000000 __global_pointer$ -00000000000000f4 g F .text 0000000000000050 search -0000000000001318 g .rodata 0000000000000000 __SDATA_BEGIN__ -0000000000000144 g F .text 0000000000000108 sort -0000000000000000 *UND* 0000000000000000 _start -0000000000001318 g .rodata 0000000000000000 __BSS_END__ -0000000000001318 g .rodata 0000000000000000 __bss_start -000000000000024c g F .text 00000000000000ac main -0000000000001318 g .rodata 0000000000000000 __DATA_BEGIN__ -0000000000001318 g .rodata 0000000000000000 _edata -0000000000001318 g .rodata 0000000000000000 _end -0000000000000000 g F .text 00000000000000f4 binary_search +80000000 l d .text 00000000 .text +00000000 l d .riscv.attributes 00000000 .riscv.attributes +00000000 l d .debug_line 00000000 .debug_line +00000000 l d .debug_line_str 00000000 .debug_line_str +00000000 l d .debug_info 00000000 .debug_info +00000000 l d .debug_abbrev 00000000 .debug_abbrev +00000000 l d .debug_aranges 00000000 .debug_aranges +00000000 l d .debug_str 00000000 .debug_str +00000000 l df *ABS* 00000000 ccSaJ0Sk.o +80000000 l .text 00000000 main +80000018 l .text 00000000 loop +80000034 l .text 00000000 exit +00000000 *UND* 00000000 _start