From 0f319b45c16f1652c9f6d53d8c9f67416ce7f277 Mon Sep 17 00:00:00 2001 From: David Harris Date: Fri, 17 Dec 2021 17:45:26 -0800 Subject: [PATCH] Do File cleanups --- examples/asm/ch5/Makefile | 10 +++ examples/asm/ch5/ch5 | Bin 0 -> 1080 bytes examples/asm/ch5/ch5.S | 16 +++++ examples/asm/ch5/ch5.debug | 38 +++++++++++ examples/asm/ch5/example | Bin 0 -> 6072 bytes examples/asm/example/Makefile | 2 + examples/asm/example/example | Bin 0 -> 6072 bytes examples/asm/example/example.S | 67 ++++++++++++++++++++ examples/asm/test | Bin 0 -> 6296 bytes examples/asm/test.S | 22 +++++++ wally-pipelined/regression/fpga-wave.do | 20 ++---- wally-pipelined/regression/linux-wave.do | 8 +-- wally-pipelined/regression/wave-all.do | 28 ++------ wally-pipelined/regression/wave-coremark.do | 8 +-- wally-pipelined/regression/wave.do | 22 ++----- 15 files changed, 183 insertions(+), 58 deletions(-) create mode 100644 examples/asm/ch5/Makefile create mode 100755 examples/asm/ch5/ch5 create mode 100644 examples/asm/ch5/ch5.S create mode 100644 examples/asm/ch5/ch5.debug create mode 100755 examples/asm/ch5/example create mode 100644 examples/asm/example/Makefile create mode 100755 examples/asm/example/example create mode 100644 examples/asm/example/example.S create mode 100755 examples/asm/test create mode 100644 examples/asm/test.S diff --git a/examples/asm/ch5/Makefile b/examples/asm/ch5/Makefile new file mode 100644 index 00000000..6f1cd89d --- /dev/null +++ b/examples/asm/ch5/Makefile @@ -0,0 +1,10 @@ +ch5.debug: ch5 + riscv64-unknown-elf-objdump -D ch5 > ch5.debug + +ch5: ch5.S Makefile + riscv64-unknown-elf-gcc -nodefaultlibs -nostartfiles -o ch5 ch5.S +# -ffreestanding +# -nostdlib + +clean: + rm -f ch5 ch5.debug \ No newline at end of file diff --git a/examples/asm/ch5/ch5 b/examples/asm/ch5/ch5 new file mode 100755 index 0000000000000000000000000000000000000000..3684ea3833c315acc061fcbd46daf2616e3a457e GIT binary patch literal 1080 zcmb_aO-sW-5S{c3y+sfyc&XTf7gK3Pya-8Yl|m^>_26mAml|x7kgTPiRP^AX2Y-%7 z|C0CvbT*mAHX6LRhxcaR%)Xudxa;;03yK1A6yO8IY?>f|PKnn-8kCWA*vG666(}cF zLi--lE9Ds_B!ij?k2M`O>ngM!RIs0F5TI-{5h5?PC!lO$SdJ!pyIwQgVPgTNfC~YR z02?9o%EKadC(kioQv^E9oG7|2!TaZ&l!Pk@Dlnt_koh&zpELS8>MHuos`4Jv72Ao9 zKI)=AAU)gX0qHN9`d*IDS&r`H=+`;^(BR{+VcX~J6W{J@0XTv0!YBwrVC-@fSmua@ zf#-8Ks-rUO7^enncaM4l#&F&q4q125Nn$IGSEh!K$ vzIwWM)>D+eQT;J3DB)c6xI}uDco`Y@|1nfD%{G?ZU;OLe*5A|mzxw|IBGX>; literal 0 HcmV?d00001 diff --git a/examples/asm/ch5/ch5.S b/examples/asm/ch5/ch5.S new file mode 100644 index 00000000..cfba5645 --- /dev/null +++ b/examples/asm/ch5/ch5.S @@ -0,0 +1,16 @@ +# ch5.s +# David_Harris@hmc.edu 14 December 2021 + +.section .text.init + +.globl _start +_start: + lw x1, 4(x0) + sw x1, 8(x0) + add x2, x1, x1 + beq x1, x2, done +loop: + jal x0, loop +done: + +.end diff --git a/examples/asm/ch5/ch5.debug b/examples/asm/ch5/ch5.debug new file mode 100644 index 00000000..28027a62 --- /dev/null +++ b/examples/asm/ch5/ch5.debug @@ -0,0 +1,38 @@ + +ch5: file format elf64-littleriscv + + +Disassembly of section .text: + +0000000000010078 <_start>: + 10078: 00402083 lw ra,4(zero) # 4 <_start-0x10074> + 1007c: 00102423 sw ra,8(zero) # 8 <_start-0x10070> + 10080: 00108133 add sp,ra,ra + 10084: 00208463 beq ra,sp,1008c + +0000000000010088 : + 10088: 0000006f j 10088 + +Disassembly of section .riscv.attributes: + +0000000000000000 <.riscv.attributes>: + 0: 3241 addiw tp,tp,-16 + 2: 0000 unimp + 4: 7200 ld s0,32(a2) + 6: 7369 lui t1,0xffffa + 8: 01007663 bgeu zero,a6,14 <_start-0x10064> + c: 0028 addi a0,sp,8 + e: 0000 unimp + 10: 7205 lui tp,0xfffe1 + 12: 3676 fld fa2,376(sp) + 14: 6934 ld a3,80(a0) + 16: 7032 0x7032 + 18: 5f30 lw a2,120(a4) + 1a: 326d addiw tp,tp,-5 + 1c: 3070 fld fa2,224(s0) + 1e: 615f 7032 5f30 0x5f307032615f + 24: 3266 fld ft4,120(sp) + 26: 3070 fld fa2,224(s0) + 28: 645f 7032 5f30 0x5f307032645f + 2e: 30703263 0x30703263 + ... diff --git a/examples/asm/ch5/example b/examples/asm/ch5/example new file mode 100755 index 0000000000000000000000000000000000000000..a9b74047949c0c1022323eb3f86a6a5e588b2095 GIT binary patch literal 6072 zcmeHLZ%iD=6@UBZ4qxpiU`TOlHwMlHm(mL)wBRN|$Dadir6h{$RF0Y~%ie;|x#P}z zi({f%xj&ot`aHd53G8*2Q)61IXJCynjC z*`0x7xl=#%LludUX5P$ie(%kjH?y;|`-kJmbmJ+jN%1Y7fVG{DqHtDrvuA==_MJAugU*ws*_o!rgNo)_DZ&V9yp4z^5 zVv$rSKr$NrpfJJRDm)bZ!f`n2nFn`%F*;RfvsFHL&a8d6d>*E^&I7FBJypQ9&O?dq z=%jF-yY;|aV?o(;!+?F3*pB|$gSO8#rEvH;%!#(~PG{uCE#BM6#Uil?;T%OyG7-H+ zc*O!h5AtG>LfaV6jWrfTJ!RAO*~)==h^!ahk1jkOI64(el_kjdTtV5@9n&7K$Cu0# zn+qL|=0_c0xb4@jz!+JPq~NfDIQ>C zq$hG5oOx-Ou&2R^dBTPg^Mr^J^MrsB^8}9)^8|+y^8}#8jIp_S^Zw*W0xrIu9I%!Hq_ob-f8z<)|>jr`}vnI?`?W<{6*d`V?5#&Lon*SQ>P3Jiq7{$kUxo6IBNbd zG7Li15ZpWxtr(i;Qv$N$b;FyLqCswEu;SkzebO-GOUEm=*Tml+$S15f=blUOsY|Dw z=u6*e7uIj2$*P{~@py6VT9Si;7cLby9NW}+r${b}rT+Dmxk6-p zP9&nOTr1~sj0x%JLcDHp^KYj{+YYuXO;_!p7KwVeR`j4P+Lm1NS6di&u+nS;vVY5_EAd%)OpLg32Lqht#&8$kjA50e zlk{Aurf0@o+BSOuA`hC+arL)NIZY+&|GGTqRb;e4Doa zN4363Le)}$6f!BgN#P}hf(5ghT?+UvXYcn+hJd$yb}wI!3s7zGm-GuDf;%g212&)K zcI@!RM)qc1>JcChCbQyemPi>j0UQ}Evr4RraO0k}qW}RuW4`pW1UBd36MZgA97yDe z9qT>FZSa@;XR~|Kz*okH+`xz(cCW&wkzT=)!#JFzabQdMs(}koZ;A8Uh-aH`+OWn! zN5;1vfj-N@Kbr&p5OEHc*0CMGhe-N6=4|8sGY5Vp2R@qv$1k_6_P@-5=UPV|7b4p_ zqM5Ar^NocQSM1wTid*-2t$_YX*5_q+4&0vuk0G9q`?-CSK_G4$=@>TGiVMhQ@k-jOp8!+KwLH+D#pHz@V^gI%&; z^6Eh?EXjQbKnVsyepOe!uA1x&!;U0tn%pm`y}H&9-I^RwC2wCK&=0|`y{e+)TSt;I zU`MH65X4{t-?{Q&(Ua0MlDeV<-)3 zDCq0Oz;8iwhHof$wlw~ z7|Ts!5YmE57=gtVXCPutJ9jPyq$?bjOjiSHAgt;TkbS*ih7_sGT~v+u8!-lOh5G}# z+=WutOu2{EaJ%W?Qumn44z8tOfh)sZmtoEoHU)YDF5Gbe+(_Uu?kFx<*EL^PpRSTO z-T$68q6u<>uyc;xTTW8bFXMl?%!H5CvQ&yKqR(jTe#8Dp(%+JcI@b30vFE-FeRi%_ zQzE-hFazxTV6qN7?$6L??-4iEXS`hc&DfFYKf718Q+@Vcw(7I?c8fkc@86(5Gd3_H zl~#YAMx0U8njV(4X3*xfL^;KZ^^wX|lOvbumqnizTL?TZ~)BC$wz(BK^;9otRbs EKb_svjsO4v literal 0 HcmV?d00001 diff --git a/examples/asm/example/Makefile b/examples/asm/example/Makefile new file mode 100644 index 00000000..081f342c --- /dev/null +++ b/examples/asm/example/Makefile @@ -0,0 +1,2 @@ +example: example.S + riscv64-unknown-elf-gcc -o example example.S diff --git a/examples/asm/example/example b/examples/asm/example/example new file mode 100755 index 0000000000000000000000000000000000000000..a9b74047949c0c1022323eb3f86a6a5e588b2095 GIT binary patch literal 6072 zcmeHLZ%iD=6@UBZ4qxpiU`TOlHwMlHm(mL)wBRN|$Dadir6h{$RF0Y~%ie;|x#P}z zi({f%xj&ot`aHd53G8*2Q)61IXJCynjC z*`0x7xl=#%LludUX5P$ie(%kjH?y;|`-kJmbmJ+jN%1Y7fVG{DqHtDrvuA==_MJAugU*ws*_o!rgNo)_DZ&V9yp4z^5 zVv$rSKr$NrpfJJRDm)bZ!f`n2nFn`%F*;RfvsFHL&a8d6d>*E^&I7FBJypQ9&O?dq z=%jF-yY;|aV?o(;!+?F3*pB|$gSO8#rEvH;%!#(~PG{uCE#BM6#Uil?;T%OyG7-H+ zc*O!h5AtG>LfaV6jWrfTJ!RAO*~)==h^!ahk1jkOI64(el_kjdTtV5@9n&7K$Cu0# zn+qL|=0_c0xb4@jz!+JPq~NfDIQ>C zq$hG5oOx-Ou&2R^dBTPg^Mr^J^MrsB^8}9)^8|+y^8}#8jIp_S^Zw*W0xrIu9I%!Hq_ob-f8z<)|>jr`}vnI?`?W<{6*d`V?5#&Lon*SQ>P3Jiq7{$kUxo6IBNbd zG7Li15ZpWxtr(i;Qv$N$b;FyLqCswEu;SkzebO-GOUEm=*Tml+$S15f=blUOsY|Dw z=u6*e7uIj2$*P{~@py6VT9Si;7cLby9NW}+r${b}rT+Dmxk6-p zP9&nOTr1~sj0x%JLcDHp^KYj{+YYuXO;_!p7KwVeR`j4P+Lm1NS6di&u+nS;vVY5_EAd%)OpLg32Lqht#&8$kjA50e zlk{Aurf0@o+BSOuA`hC+arL)NIZY+&|GGTqRb;e4Doa zN4363Le)}$6f!BgN#P}hf(5ghT?+UvXYcn+hJd$yb}wI!3s7zGm-GuDf;%g212&)K zcI@!RM)qc1>JcChCbQyemPi>j0UQ}Evr4RraO0k}qW}RuW4`pW1UBd36MZgA97yDe z9qT>FZSa@;XR~|Kz*okH+`xz(cCW&wkzT=)!#JFzabQdMs(}koZ;A8Uh-aH`+OWn! zN5;1vfj-N@Kbr&p5OEHc*0CMGhe-N6=4|8sGY5Vp2R@qv$1k_6_P@-5=UPV|7b4p_ zqM5Ar^NocQSM1wTid*-2t$_YX*5_q+4&0vuk0G9q`?-CSK_G4$=@>TGiVMhQ@k-jOp8!+KwLH+D#pHz@V^gI%&; z^6Eh?EXjQbKnVsyepOe!uA1x&!;U0tn%pm`y}H&9-I^RwC2wCK&=0|`y{e+)TSt;I zU`MH65X4{t-?{Q&(Ua0MlDeV<-)3 zDCq0Oz;8iwhHof$wlw~ z7|Ts!5YmE57=gtVXCPutJ9jPyq$?bjOjiSHAgt;TkbS*ih7_sGT~v+u8!-lOh5G}# z+=WutOu2{EaJ%W?Qumn44z8tOfh)sZmtoEoHU)YDF5Gbe+(_Uu?kFx<*EL^PpRSTO z-T$68q6u<>uyc;xTTW8bFXMl?%!H5CvQ&yKqR(jTe#8Dp(%+JcI@b30vFE-FeRi%_ zQzE-hFazxTV6qN7?$6L??-4iEXS`hc&DfFYKf718Q+@Vcw(7I?c8fkc@86(5Gd3_H zl~#YAMx0U8njV(4X3*xfL^;KZ^^wX|lOvbumqnizTL?TZ~)BC$wz(BK^;9otRbs EKb_svjsO4v literal 0 HcmV?d00001 diff --git a/examples/asm/example/example.S b/examples/asm/example/example.S new file mode 100644 index 00000000..f487950a --- /dev/null +++ b/examples/asm/example/example.S @@ -0,0 +1,67 @@ +// example.s +// David_Harris@hmc.edu 5 December 2021 + +.section .text.init +//.globl rvtest_entry_point +//rvtest_entry_point: + +.globl main +main: + li a0, 42 + +self_loop: + j self_loop + +.end + +/* +#include "model_test.h" +#include "arch_test.h" +RVTEST_ISA("RV32I") + +.section .text.init +.globl rvtest_entry_point +rvtest_entry_point: +RVMODEL_BOOT +RVTEST_CODE_BEGIN + +#ifdef TEST_CASE_1 + +RVTEST_CASE(0,"//check ISA:=regex(.*32.*);check ISA:=regex(.*I.*);def TEST_CASE_1=True;",add) + +RVTEST_SIGBASE( x3,signature_x3_1) + +inst_0: +// rs2 == rd != rs1, rs1==x4, rs2==x24, rd==x24, rs1_val > 0 and rs2_val > 0, rs2_val == 1, rs1_val == (2**(xlen-1)-1), rs1_val != rs2_val, rs1_val == 2147483647 +// opcode: add ; op1:x4; op2:x24; dest:x24; op1val:0x7fffffff; op2val:0x1 +TEST_RR_OP(add, x24, x4, x24, 0x80000000, 0x7fffffff, 0x1, x3, 0, x18) + + +80000000 : + +.section .text.init +.globl rvtest_entry_point +rvtest_entry_point: +RVMODEL_BOOT +RVTEST_CODE_BEGIN +80000000: feedc0b7 lui ra,0xfeedc +8 + +80003220 : +#endif + + +RVTEST_CODE_END +RVMODEL_HALT +80003220: 00408093 addi ra,ra,4 +80003224: 00100093 li ra,1 + +80003228 : +80003228: 00001f17 auipc t5,0x1 +8000322c: dc1f2c23 sw ra,-552(t5) # 80004000 + +80003230 : +80003230: 0000006f j 80003230 +80003234: 0000 unimp + ... +*/ \ No newline at end of file diff --git a/examples/asm/test b/examples/asm/test new file mode 100755 index 0000000000000000000000000000000000000000..fef7868c62fa8bccead16fa64818e3fd0ba85236 GIT binary patch literal 6296 zcmeHLZ%iD=6@R<8cL%lWfRDzcCINHQVC0^-m=@AF^f)-cj)NMUSg}=iIrbKO&K-yM z7ROX_a(_5uh~vn*h$A1WAdp({Mp%k$+fG2=Qv=AhtGl3E@)2x2W`mzhF&nDa6mQi z_*@5H*H{EwO3aoniv_)fNyyRbq}7DEgtnLD>3k+nn04MqR5HCd*84Bl$`+%sQvO*a zl-L9i4|DHYV%)stSon+VlVR5^K+Xnq%3{2<<)KS@>CvwYgze@q}rrymuBt>kaRO=eGM#jYks2G3>33%PpSSIpOlSym51{(~{lq z+?M?>hw0|#Da+o+9MYO>un4`*aD72*OxPqu5|ah5-%n!K5q4(gjaH{;#KU`y?nvl~ zy7E5h&^RA|VID3{esDd0*tGD(z!N9Z(I z&0{cX8UrilQ6oysqXJ6IqXv|iM|qT(M>&+3M*$^fjLqEK1M$HaTze%xXymjff9;jM zWAVXK(EB(RnGS9KVlZ@Z!^5xE3{D;zzx$K1{fAoqVR$b*xAX3?DZ^s}g(DN2zihs} z=jOhdA5FDQNLkr@`O80lIkxlO-e^fbZ0x#MT}LjA)hHcy#u#-FKlgs-^sYF;a7y_e_CizGh%QlB9*KWAg% z2Cji~We*$1!gJB8zQSLQ4>cZblAJRp<0VUe71Rt_tFPol&zSAThQ}ZL4Bnc#0@gDd z?AGeP6!kYqaE*_fO5vo*SUPn1*NGF8oQteZbCGrX{3H9%M^87}IoF>~TF-u5v78qP z9eoy=S${MJaotLFM&O3Y9w_fMO+7Az9Jp=)E^@=TcJD+&O|s7yKpsiw=y|Y}o)!0L zy=BMlx^M3RD962!oQ^-F@8{}o>T-t4WX@N)td9y{-L|W5R<8GdcJpsWSo2jL(5mmN z5m=4DY6Mmz@P843AJF?SbB5I$>*~H&RMy!1?3N{>l5YNGVc_8>hs$TvSpZ)p6L z`}!A%=kjJ4PFX*{B{(ecvvf1?2WtNy{Vq93@#_?K7_fke9Fin`PVpCc9sf{=VGDi- z6F)CtCaH$v0>xjXb`DcKAMqUAcd6^VgyN~^QU$g1XX@u!YNtx$bI?F>3d45FS82cO z$CX?9lb(-sXkuQ(?Q(M~%5_tAcLQGXtx4(+A*ZR$@kb5s;1x6dcK zRr!clwMn4J9p0cSD`LC1(+iTK2G#ENc5DzuPeAPO1=`#`(W3^Gpy=*C0#d-=<&#y} zW3#7cXm&)mqPTlRxl>hopj~nMWzo~^_xC`c?Vv2F_!bn!Bv{0*)nz)8^t9CS6o6+1Yg4(dtqQSkb^x)m8+)C;1=t-67jK!}V&bAEAv!JeQ<$0{pIXFzLhXsLb5 zCAymHMUl9IN{iilmIFc6t*8hsbCGbm6nO=f1TekjG=|c+b_Kkh82b`5r}>6*cYWyL=?p~7 zxqJ6wK-z*qQFqlZ`-8Fyez&(1^pGNTxr?$Ee=WuUwqTE6b+@5Z6H<9i8!kRSt|>G^u1_|%sw&>LZdE2P+y60bM169Su=9@H zr_NEkzLftZxV@I8O;{uP3}^SQ0{Xv{*=0(Eo1C^_g{o}Z)o)&E6*KeiM9*?o-Bnf`hPP|4