From 815db2763748099df8ad6dbf08863fa7f70b1e1c Mon Sep 17 00:00:00 2001 From: nilspolek Date: Sun, 28 Jan 2024 21:59:21 +0100 Subject: [PATCH] gc --- bigint/build/bin/testbip | Bin 72984 -> 72952 bytes bigint/build/lib/libbigint.a | Bin 27728 -> 27544 bytes bigint/src/bigint.o | Bin 27344 -> 27160 bytes bigint/src/libbigint.a | Bin 27728 -> 27544 bytes bigint/tst/support.o | Bin 3472 -> 3424 bytes bigint/tst/testbip | Bin 72984 -> 72952 bytes bigint/tst/testbip.o | Bin 44520 -> 44472 bytes instruktion.c | 1 + njvm.c | 16 +++++++++++++--- njvm.o | Bin 59720 -> 60064 bytes record.c | 6 ++++-- support.c | 3 ++- support.o | Bin 3560 -> 3512 bytes test/tests/arrTest.asm | 31 ++++++++++++++++--------------- test/tests/test.asm | 4 ++++ 15 files changed, 40 insertions(+), 21 deletions(-) create mode 100644 test/tests/test.asm diff --git a/bigint/build/bin/testbip b/bigint/build/bin/testbip index 7d91ca7d3019af490505386ca313152d84166a9a..de7823f4e1c4d985be2dba1b29eebe24a3342356 100755 GIT binary patch delta 431 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 Zrjwj|%)8BFc&6!Y`HDX7Z?`mQ{{mwD?^^%> delta 3306 zcmb_feN2^A7(eH{_rL{%02P4@uYjLpZ~+DUg2WKCP(;-0)WsE0kbC8dH)Cd9DVt;_ z;HyDtrgKhftIgeNHZ5JVKTI@fHEFHsW;1JRi?y0&S0lrl1TxDj6LOvK?EuuNUW_pcMzRo;mR3w%aS$ZD|i~eHXGfETxoMoXb zi?Ac+B1dUr+U!W_=jNLvEz#1^+QV)0XGdw8XRf7tR7=@>#tafAG@50yF!gSU)&1RQ zt+v3TXUra16my}Gu>unO79Nndr-k~gK6YGFkiC-_6W58UphpzN7=wD?2I%+n@GOUm zPmni=-3{ns@>iRm=#)b?pOGN{u=&gsX6z?$iyl5ID*6ObVHUbmo%e`~;-emfSGiy3 z8%J~MPjNVTq8vx;HX0;PVltih7r>8k$UNeAflrn!HjRLE#AXt4awk+`&L9MfEhbU4 zBeonw#FI?5!}R9OKWoLV~WIVil_cnpK#@F}7Wm_UlZ9 z*%FOd8qiW`vayxg$5FE8{!aMV9TLfRBzhUUL#o{01@S&geuqlF%W~Ayu9EN8D5!Gl z(Wos8LH763o9qJ9flQ5jIY0-X$&#-*RUmeX5cl^YQs~lfs4pWzU5*IV9}((GM5wDk zY+U;&%ek8fZ+!>OpCRAQA|y~}&A=(GW6i)x(g}%kVr*rcW%?sb{U5+|NF-}-`*G!(qcDF7v>K$QbV62iZoIjNmfSZ zVvx~ANUJ!CLXBn#$8ZP+)fz432uLuX7OC2XzEVV7X2T}6Xf-x$P}vQ`I;0m8!+7li z7!SiW<$%jMb_zxEQ~=g;Og+JsYBVcsSgT54r44JUpuEb4)ir<~8!lNf0-MO!(;nc} zcK7175wNl@0xoPAfh_65W7e!S(R^`#KV~h{NTpJ4f>x%Xr-^o!xwbGhbR7zFZK<{W z=4sgFRI^oLLkCVLQK}$I3Zz?sZmK|di#h~q--JMQ#y%=^8cJ{u9k9Y{`$(7vxL*6H zUg)x%_{fI)@4!j7a)cnQRx0PdS`o*MU_QQ*F3m4Q!{`)8C-N4a48AbeR$h(_lGVv<8o`6gvz8>-eLFpoX7ug#J zpOce`SGIlaa=NX5s8bdY9|!%z-I**7!;IZSFDb^qMI^ykD~}OX)3A=oljh1`?2AGFGZo3F&xss9s0wR#Le!K zB_UiQAkL=;4TmD|V*R1QaR^+eF%E3tv)T>5&%kGBV$g7O0}tqaocq8hG{)By*lVR7 zV!c{0Nh{Q9d_+6!)cAxR=S__h^*Hejr5`)1`*9KhAJF4&(fF$Nhuwt!Z1sI4qqgvk z(kVQoE=?q_peLCgYH3;(WtU}%aEF04YDkMvC=j8*v?1;@5aGnuS|}WdP)}M5mnw)( z(~}jV7qtiUK!)p%wnT|Sgu>SMMHDYY*pyle+ZrO1hNb-vX%XsHYvH~HE$m_~LUEI* zfTfINhQk4BM{u+frKawDM9Zj4`@a<~D*HtEz9kI@I|R?1-;a+2fiVO*EcfB=j=b{p zhrHjmlxIA2kB^7HF5i}<3zUT`J;m|-y>Q2d^PCTw^P47ckLhjtivEz~HE$IE0fZSM Aj{pDw diff --git a/bigint/src/bigint.o b/bigint/src/bigint.o index 162ad9f334014e112fd16450027be8f3b967b58a..4e68f95420ef573ae35b673fe7cf9a26ca89ff9b 100644 GIT binary patch delta 3079 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 JkJr_S{{VtJ97g~E diff --git a/bigint/src/libbigint.a b/bigint/src/libbigint.a index 4c9a702e2b573fe6cd41e95079ac4c5fb90fc0a8..c3dcd7f68a3401b3af48ed19fa966e935e63ae26 100644 GIT binary patch delta 3126 zcma)8Yiv|S6rQF2umMQLZ#bU`r^@A*w*(B8Kn$VAABt-f1p`gQ@T@=#8WZ9J!=pcp24e&iJ>T59t?Mr)JA2M|&Y5%0 z%$%9Im%iouzTust9h35ka*n2E@iCL~3iCalN!}cf$CK-&KTnR=o1d3Qs34~x*Yxv+ ziKSIcwjPH?J?3RTUpuqdOx5zaCtRyVaqcqf^%DMsc}Sm?m{efdeWY3RGxM%qlK5qj zh0-m;TFp6*lEnW1Nq3uXku<*8GD=n+J~nSVN=9Z*v7`r;^inBfI*Do;%rcShJ~Pcy z*CbmsINhSm42gnhXCq@zlAthrS=<!yG1PdA^*b&r@pDlJ`$#{jfHsdN8i^QByORvB~wgiq8$9an&Y3bkJa zT5X|S3Ey$^RIbaI3*kyFSqrU4;@T<=1_V34hsGx%OGr@FQz&CCfT|peILsbbuKYTG zgsws%)(Mg9xW5LPt%jCzOF+xmEv$`y8N@p&`SmjSU6!LzhfKaxp>~;D zNTIghF=qE(Ytq4cK&C>z2S8o0WGR=NG7#&Lk(!_}&JKh+7ZK`wM5qf9p)N**>H}gU zI$|y7ULrgYfb(VK+Zjb#tTp;pE1 zf%N`BvVTP+`*%dL4-^W_8NuyBtYYMkk_? zQ5U4;97Q2#Q^7GEg6(pT=5quj7?hh-X+z&oL|kCQX1QrqHf)gD4Zu32XJ`X>DQ=HJ z_}p;7g&Ze^BGrrltmasHf{W#B7TK^`mcU{gRy_veB{r-~1+1}QMaCd(CSUV1fopB` z+^h&V+ZzFA<_$uYbm~!S)tYI&xW5~#mZrO@lnY^%rmJP5lVvW=cN<4wFvXTy$8V~F zyPR^hrrFTZORlvN30YEbv=!(F8R!G}sY9TSVg#zwcT%C#RN7`Q%axDH znI6lDkH&ESF*xazPEugjIpE|bB8QZd&>FcByLGh@zL92e!N^s;7@Z+^hte?8;K72F zMo<>b<95;bq{DG`9av?NX~Pv0Fm}AX{0%bP09;OWda}Sh=N#f)7|iy9%$7n2<%M%W zR|RUtx@afA3iq+rXD8o48!@(Um@$=BK!1Bw8IgVZ1~HfDUMhUuV4|FOY@7ayQ&igg z#z(|L;=5t9DM8fP{HsY~1@Z4dzS$+PL~`twOz|4=ct`YYUa^z-FJSX}q1Z#b@io93 zrD8vUJK*1(EzT1^DTes%mEsEV(&?@mah3R5$UB?G4dP{hP*C&}{{rM)?c!JB@zUsf z)`>re%CY-8#69Ar{r+u2r)7?VeRpRXi$kh0&(fdJMy({0pf44xiOOYoo{4ql;-cEo zhe)C?(9>ubu23;cpGfQ{#5!Ctz2?QDZ0(w6J}8=#I0dHM@R&5E_F0qa=>%d!-MM$xK3eQz`)0q8@#u` z$7rHxxQc-vRw#DNA*RP)4}2z*@W zakBt-sd-OUxKH`R>3}{`g5XomzPoYk&pE^uY7U>XB1yY9yHK9b< zc!*FiY9PK(Ai@o-tWXFLp+1z=S%MH9rJiokAGJQ}km2)1jYP>oghEXwN)5#b5e}KM z!ZC%&q-iPty-I{SR95(Yf>kG}lt{k!_<(c`W`@HKvjey)iBh{x9U`cd|8Tge>{IQj zYO-*!k?_p<{rET#SVAz7Wj{o)ZSf>2p+g)68{AAJ!Je^YP)L Zrjwj|%)8BFc&6!Y`HDX7Z?`mQ{{mwD?^^%> delta 3306 zcmb_feN2^A7(eH{_rL{%02P4@uYjLpZ~+DUg2WKCP(;-0)WsE0kbC8dH)Cd9DVt;_ z;HyDtrgKhftIgeNHZ5JVKTI@fHEFHsW;1JRi?y0&S0lrl1TxDj6LOvK?EuuNUW_pcMzRo;mR3w%aS$ZD|i~eHXGfETxoMoXb zi?Ac+B1dUr+U!W_=jNLvEz#1^+QV)0XGdw8XRf7tR7=@>#tafAG@50yF!gSU)&1RQ zt+v3TXUra16my}Gu>unO79Nndr-k~gK6YGFkiC-_6W58UphpzN7=wD?2I%+n@GOUm zPmni=-3{ns@>iRm=#)b?pOGN{u=&gsX6z?$iyl5ID*6ObVHUbmo%e`~;-emfSGiy3 z8%J~MPjNVTq8vx;HX0;PVltih7r>8k$UNeAflrn!HjRLE#AXt4awk+`&L9MfEhbU4 zBeonw#FI?5!}R9OKWoLV~WIVil_cnpK#@F}7Wm_UlZ9 z*%FOd8qiW`vayxg$5FE8{!aMV9TLfRBzhUUL#o{01@S&geuqlF%W~Ayu9EN8D5!Gl z(Wos8LH763o9qJ9flQ5jIY0-X$&#-*RUmeX5cl^YQs~lfs4pWzU5*IV9}((GM5wDk zY+U;&%ek8fZ+!>OpCRAQA|y~}&A=(GW6i)x(g}%kVr*rcW%?sb{U5+|NF-}-`*G!(qcDF7v>K$QbV62iZoIjNmfSZ zVvx~ANUJ!CLXBn#$8ZP+)fz432uLuX7OC2XzEVV7X2T}6Xf-x$P}vQ`I;0m8!+7li z7!SiW<$%jMb_zxEQ~=g;Og+JsYBVcsSgT54r44JUpuEb4)ir<~8!lNf0-MO!(;nc} zcK7175wNl@0xoPAfh_65W7e!S(R^`#KV~h{NTpJ4f>x%Xr-^o!xwbGhbR7zFZK<{W z=4sgFRI^oLLkCVLQK}$I3Zz?sZmK|di#h~q--JMQ#y%=^8cJ{u9k9Y{`$(7vxL*6H zUg)x%_{fI)@4!j7a)cnQRx0PdS`o*MU_QQ*F3m4Q!{`)8C-N4a48AbeR$h(_lGVv<8o`6gvz8>-eLFpoX7ug#J zpOce`SGIlaa=NX5s8bdY9|!%z-I**7!;IZSFDb^qMI^ykD~}OX)3A=oljh1`?2AGFGZo3F&xss9s0wR#Le!K zB_UiQAkL=;4TmD|V*R1QaR^+eF%E3tv)T>5&%kGBV$g7O0}tqaocq8hG{)By*lVR7 zV!c{0Nh{Q9d_+6!)cAxR=S__h^*Hejr5`)1`*9KhAJF4&(fF$Nhuwt!Z1sI4qqgvk z(kVQoE=?q_peLCgYH3;(WtU}%aEF04YDkMvC=j8*v?1;@5aGnuS|}WdP)}M5mnw)( z(~}jV7qtiUK!)p%wnT|Sgu>SMMHDYY*pyle+ZrO1hNb-vX%XsHYvH~HE$m_~LUEI* zfTfINhQk4BM{u+frKawDM9Zj4`@a<~D*HtEz9kI@I|R?1-;a+2fiVO*EcfB=j=b{p zhrHjmlxIA2kB^7HF5i}<3zUT`J;m|-y>Q2d^PCTw^P47ckLhjtivEz~HE$IE0fZSM Aj{pDw diff --git a/bigint/tst/support.o b/bigint/tst/support.o index 7f7b6da30ec8194269cd247842b84b445476b43f..f5bd62d4ca32ad2fc9513f1a55fb800a22c741f6 100644 GIT binary patch delta 672 zcmZ9JO-Nfo5XWctedoOxV`(84Bxt}WNU&8b6p|PP0}3LDq=!Om`-I?2UW_0_3%%Ea zrdufV)SmPr3ON-)(2L|!=*feZ;K8HDV|(h%%hE%KH#_tD&#?PucmHX-e?J>77!X)N zm9eq3$W9vH?|H`-pIDmZ#4k42_feKVce~)m6r(&H9niX*kn)zO^Gr1NpZZm_P+gPi zjqE)WF(nhr>s>5L^;-x)!8|TDl&RREte(g!*xlrXI9H}ZSqB24<21QC&#j8=s*4qU z%sfQWnSLa8^Z|7}OOKL2H9}&>z`% zM32LK&y0(R5&Q6)cz7GvFmJq1Fd`S%2;b`+Cra*M4auRy*a+32mkuS1qch*2zUOie z^W{H^@CIavCTI_^7ID$WP|#GEu2wxa{#G0q6N3w-H?`GTJvHlYxt?EjYpEH(Twblb zTPRiBW#9KUMbaFyDkX2T>U-{b^Ob3_$#dL|qd!A`jZPL!gYh;XfM8n8>Eg%?@x{6< y(l6i#G>d%mHX=!MV^Rt(7Lop1N_4H%MI|W(Pl8AjK0!x2YMzDuFqRiToU6YXZ)g1g delta 720 zcmZ8fO=uHA6n-=NpWQS`MIj0$V4;oBtY{^-R8jCCZBklFE`=`X8jDGGO`_Bv@LDO@ z#u34zAnMIRZuMj@Vo&wdUJAv7M@zjaD89ElDD<&!-}im*V`k^g9-Ll3vwk_VVn7sC zHLfeY=`uU$y*lJMM?7OC))rsb^}$WqejdAE&=Ti(DKn+Td|1kF#C<-IX&+O!#b;Ds zNcF4qeivC~BD<`|bU~^+2>=CgMch$}**)3aklpik3~q^!N-+^S03_s+eXic%)=TMn zE#~wwa}Sx$^nJ0akCuKQVFT7GmW0V{`zL~Tq&Z;Q4B$QCqzc*}1cs`7z@pBP2wIwn zBmIOugf@0E$=A$^NEzA3dEz4v(39l7N3#+0@txvpX^+_GL+l}QXfu|l9;9hgiX0{j zisZW}*D!DYV=3N)fY>;#0ah7b+B^!H3Rl9g;pb}Ntua1Hc&X-fmx5Nut=57?zu<+T zdo^fv{Z_Z*Ui0tyjUe>fZl&RMZwBpV$DQf13Ek*s^%y?EVF}YkBAZ diff --git a/bigint/tst/testbip b/bigint/tst/testbip index 7d91ca7d3019af490505386ca313152d84166a9a..de7823f4e1c4d985be2dba1b29eebe24a3342356 100755 GIT binary patch delta 431 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 delta 23596 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 LMPE+Bc=`E1FQ48R diff --git a/record.c b/record.c index e67ca85..e8ff86a 100644 --- a/record.c +++ b/record.c @@ -5,11 +5,12 @@ #define RECORD #include "stackslot.c" #include "instruktion.c" +#include "njvm.h" ObjRef newRecord(int size){ ObjRef record; unsigned int objSize; objSize = sizeof(*record) + (size * sizeof(void *)); - if((record = malloc(objSize)) == NULL){ + if((record = alloc(objSize)) == NULL){ perror("malloc"); } record->size = MSB; @@ -25,6 +26,7 @@ int getSize(ObjRef arr){ } ObjRef getField(ObjRef arr, int point){ if(arr == NULL) perror("Record is null"); + if(arr->brokenHeart==true) perror("Broken Heart"); if(0 > point || point > getSize(arr)){ printf("Index %i out of bounds for length %i\n",point, getSize(arr)); } @@ -47,7 +49,7 @@ void setField(ObjRef arr, int point, ObjRef value){ else size = sizeof(*value) + (GET_ELEMENT_COUNT(value) * sizeof(void *)); } - if((GET_REFS_PTR(arr)[point] = malloc(size)) == NULL) perror("malloc"); + if((GET_REFS_PTR(arr)[point] = alloc(size)) == NULL) perror("malloc"); GET_REFS_PTR(arr)[point] ->size = size; * (ObjRef *)GET_REFS_PTR(arr)[point]->data = value; } diff --git a/support.c b/support.c index cdd2d80..ca60959 100644 --- a/support.c +++ b/support.c @@ -4,6 +4,7 @@ #include #include "objref.c" +#include "njvm.h" void fatalError(char *msg){ printf("Fatal error: %s\n", msg); @@ -13,7 +14,7 @@ void fatalError(char *msg){ void * newPrimObject(int dataSize) { ObjRef bigObjRef; - bigObjRef = malloc(sizeof(unsigned int) + + bigObjRef = alloc(sizeof(unsigned int) + dataSize * sizeof(unsigned char)); if (bigObjRef == NULL) { fatalError("newPrimObject() got no memory"); diff --git a/support.o b/support.o index 3fa5a660f45661333fb251be36faadda53b96542..3d6848d70ee9a3a0247ffcdcf5b3239d1ef02e6b 100644 GIT binary patch delta 723 zcmZ8fJ!lj`6rMNxH*@Rdatgxb2#Q)LL?VJYu<(=aqW&L#+Uu@O@Gz1=~<2k(9F``(+`c{BU7{JOkxvA7k8 z)TZ4Gx00y|QpwXj8Z!x1Y1(|D(c*JkeV8?gz?_oRV$I9w39CLb9jNpFsqf53Sv|OB zRYh6zt~LYCg;Lkg=uNxDubdDL@?~?|sg(9@^@XiYhFP*<-a8fDJs<=NV?A=ONZqnc z9W&{lR*%7a@;A+W|K#c`5E<$4$HD+pGs7{0#iWxpKo@;CIfo7ybr5;5?^< z_W?=ZIy(UOIsysr8$gk_2atr*WOfEXO&5cb&dYT*Vupg!T!DGt3Tke4#m(kSYi_*Wimt|SW64z1aowsnmKNhiw9vbyj?lT6*g(S1!f(LY(jx;kKE#%e z1pJXQAqLGG{dJY6=LWts`zLH#iLc2@H9jop3WAl=SAoP692SCK=MWsmkH^hCm2KwR VXKDMN#J5kP*B44jT~o~O`~jW4WW)df delta 771 zcmZ8f&ubGw6rP#=olTp@fRN_Uf(jM1E25+)V^Q=JQV}EQEL^dhl-$3 zml4F9f(N~ti{M3}he+{YJrsJVc<{%`9{dOV-tJ(*2XEf@eecce%zOK`@~iUrbaC5a zsWtU1ZYLKSd@6ad%a>%rYy5%y%+D9Us_c`jh*jlbQ7gtqMh_}=L*9b=^gnf1eiXHR z@04outhkhuquQzRz|80sb;P*Km#z#;ZB24!;;yURT4#A~12-~__0^T9)815n9 z`-F2gGyVWry0(R&U&6wfVIXgFV+=uX+$OVQlevBqu^E8M2-BhP7tjl+3Zr_89@W#9Y93L;^v#4717r-5oCmanbp`g9bv7g~OA zA?(IpvlY$;lYSI=XTokT==NgoY;YrJhf%QT&9wdAT)5bYy}I9OTx?E8O4zHBdHcX{ z+n>MQ@w@(f(7_4)DSM2c{DBV&_;L7UI9d8cL_oa D9{+f5 diff --git a/test/tests/arrTest.asm b/test/tests/arrTest.asm index f14f3fc..1829ce3 100644 --- a/test/tests/arrTest.asm +++ b/test/tests/arrTest.asm @@ -1,18 +1,19 @@ -new 3 -popg 0 +new 3 // new Array[3] +popg 0 // save on sda 0 -pushg 0 -pushc 10 -putf 0 -pushg 0 -pushc 11 -putf 1 +pushg 0 // array auf stack +pushc 10 // 10 auf stack +putf 0 // array[0] = 10 +pushg 0 // array auf stack +pushc 11 // 11 auf stack +putf 1 // array[1] = 11 +tgc // garbage collector -pushg 0 -getf 0 -pushg 0 -getf 1 -add -wrint -halt +pushg 0 // array auf stack +getf 0 // array[0] auf stack +pushg 0 // array auf stack +getf 1 // array[1] auf stack +add // array[0] + array[1] auf stack +wrint // ausgabe +halt // ende // Sollte 10 + 11 ergeben diff --git a/test/tests/test.asm b/test/tests/test.asm new file mode 100644 index 0000000..f456212 --- /dev/null +++ b/test/tests/test.asm @@ -0,0 +1,4 @@ +pushc 1 +pushc 2 +add +wrint