From 70dbd0253bd5aedec6946cee28f5457594fa1610 Mon Sep 17 00:00:00 2001 From: nils polek Date: Thu, 18 Jan 2024 17:17:07 +0000 Subject: [PATCH] Big int works --- Makefile | 14 +++++++++++--- a.out | Bin 0 -> 16576 bytes compile_flags.txt | 3 +++ njvm.c | 9 ++++++++- njvm.o | Bin 0 -> 52424 bytes objref.c | 10 ++++++++++ support.c | 27 +++++++++++++++++++++++++++ support.o | Bin 0 -> 4856 bytes test.c | 9 +++++++++ 9 files changed, 68 insertions(+), 4 deletions(-) create mode 100755 a.out create mode 100644 compile_flags.txt create mode 100644 njvm.o create mode 100644 objref.c create mode 100644 support.c create mode 100644 support.o create mode 100644 test.c diff --git a/Makefile b/Makefile index 96df21d..f56f609 100644 --- a/Makefile +++ b/Makefile @@ -7,7 +7,9 @@ CC = gcc F = prog.bin # Compiler flags -CFLAGS = -I ./bigint/build/include -L ./bigint/build/lib -g -Wall -std=c99 -pedantic +CFLAGS = -g -Wall -Ibigint/build/include + +LDFLAGS = -g -Wall -Lbigint/build/lib # Source file SRC = njvm.c @@ -15,9 +17,15 @@ SRC = njvm.c # Executable name TARGET = njvm +njvm.o: + $(CC) $(CFLAGS) -o njvm.o -c njvm.c + +support.o: + $(CC) $(CFLAGS) -o support.o -c support.c + # Default target -all: - $(CC) $(CFLAGS) -o $(TARGET) $(SRC) +all: njvm.o support.o + $(CC) $(LDFLAGS) -o $(TARGET) njvm.o support.o -lbigint # Clean up clean: rm -f $(OBJ) $(TARGET) diff --git a/a.out b/a.out new file mode 100755 index 0000000000000000000000000000000000000000..3f28add3f324e743e87266928c8daa885ce8c086 GIT binary patch literal 16576 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 literal 0 HcmV?d00001 diff --git a/compile_flags.txt b/compile_flags.txt new file mode 100644 index 0000000..63956da --- /dev/null +++ b/compile_flags.txt @@ -0,0 +1,3 @@ +-Ibigint/build/include +-Lbigint/build/lib +-lbigint diff --git a/njvm.c b/njvm.c index ff6b17e..226326b 100644 --- a/njvm.c +++ b/njvm.c @@ -8,7 +8,7 @@ #include "codeReader.c" #include "SDA.c" #include "debugMenu.c" - +#include "bigint.h" // Debug int debug = 0; @@ -28,6 +28,13 @@ unsigned fp; void version(void) { printf("Ninja Virtual Machine version %i (compiled %s, %s)\n", 0, __DATE__, __TIME__); + bigFromInt(9); + bip.op1 = bip.res; + bigFromInt(10); + bip.op2 = bip.res; + bigAdd(); + bip.op1 = bip.res; + bigPrint(stdout); } void help(void) { diff --git a/njvm.o b/njvm.o new file mode 100644 index 0000000000000000000000000000000000000000..0390d9104acea7126b3ad5216aa59b598eed09b2 GIT binary patch literal 52424 zcmeI52Urxz*7uvBqN0Ei^N6CLh$u!(AdZd!GsZO_jEIsXh&dtZIH0UK=dilC=A6I) z>KZUBCd?q1T}5T(tJ7U)IM%}6yZ5g5``+)p^*k`$zxwy7Q>Q}L^mNZmQg>==Y-A*1 zGLl+KxqC<@>2zZ5wyV79Dp^ZqB~Oj+i6$~rrJInMq<(M4a`fu=8eLKvXf!%?mL_sS zmK1KGi7B8Eo}*_uFP(%nhV3Ltrf>k;I&(s{shf}mdz#32Q@u1mX1Xkm?u|xw zmYIF6(RpTB>{Y*>79VDwtIIH9hbUqVGoTB9|E+DM$oD$qSVh!>xo*dlH;-Ae($VKM zc2HWPWCSl7z2{AhuB(}{4X>yP{)`q-gX5xYx2h-Gn=NnS;uu={@iK z)5dsM*VG-j_8A4^1^j z$rgJh7Qu1M`nO!8cQu20=3Uw!wXFCo)9~SW+mV|vZ(|va|8NM@)zu6FoG8~W?*m!K zX{OE&x61WU7H8C8_E<2Q=9O3ESP=|aWI(o22%P1O_J2-AhJp7 zWO&I?DGnx!F*A)+pEHV7Cqplh3rwDPO|L$uQ>U{3n#G!gR1-1`ZYHU(%I3N#=B|q7 zoCO|ZZprM#bj{Iug0+}Zr{HiVx~VZbuF<=()-jG$Up16|b>c=jQwLpEoyxjx+Mo1O zR!>WDG_k`B{jBNn@#Tcb9)nqdcQ;Q63ahkSO;b&bISk>~tV}jQjWoJ$Fj^E_){)1J zbe1H%N|qEAAO2?r7><6HY{k#o>g=faF@IJdmcW#}Qbx&Q zM>I@KX}a*oN$PC5J?pTsCbv%%Z=WPo2eg< z|CPCAsrP&gbyKU7puZ$$BXv z%{nrxip7jJ#*(CqXFWynL>akyQ)BS1wCtQwa!#ryM*T8L3Jwn)HZ;lA)LTlg%nnna zmyeH>ZeiFB4Id(X4L8xX{fy<*r6@$m};`(aZ0Q3H$! zF~H3R7~AiDdP_VD8YhyrOp+lwg zhKAh`*oArW+hDNzS>?i@V1L=lS7-+ow4q6oc4VTfv6P;fO9HhrNy#PPBh#EFMA7Wc zCBBMgJt2x_E+z7VIv?%46u;K4+Vglf%Yv zSU_HRk~A6e%IA?+jMXS7!#a-~*`g-K^QAsKjh$KZIPYXIFIl!aE$+%LPjsxM)r;5YQZ>30?6{wB(CDs{X?#Ch z&Fq)LZDm2;eta`e?q|VF*61!BgvHHKd4l0I2yJ{V3WoH*gnYqB+bV+ni27q8vBz_ z^T>D;O+uP6J9ingspqubbGt_Gv7c4;^tZl;Gd|%oo2ty%pS4E!fJrQ2(#xIxRT`a} zr5tcgwUds`*1Ag?SW$ge7I~~GShtf`O?=5>B2TWk z9E1bHncR~JJ^mnMXGvHl;!+PLRt-7l$;NROZ^-H?pEF@L*ImHn>z^!KU^Zt3q{>T; z@$tBV&`imUWntAF8P7%t?OSXf&#R#|dSz;kQLjE)3fhAg&6c*Sn}>!w>-T`6e;jGu zM?n%R}or-F68da>R!S~(f9ra8`v zOVz}{AZHc1!0JNQs4=XSWN!@PiLC+tuzdT&`vkC<_dttOM;qxqWA*CjrpGNJgISpV zWW4jUYwk(biLKIE?@9hkZIt>=8_BiJ+c(w*sm=Yuo%G>%{%YH$Hun!Nk{dVK(vUxp z(6G94PDnVs`$y#Ijti^Z5NyW;a&b{)0*XO>+Ck1V3rvI7i7 zC;>>H&6q(F?wCh$^7%3E&X$+@+jH9w{w7B$1K+yiE1QzpJ8t>S?nMnd8`62> z&jTqp8H6u=Nlj8eizt{v{(_y{vmqE`r{{m(g=1{}%HOrXp(*)9@SitmsFQrIVu2yo z0^VwLH_7|fzv8E0w!JRCJ)8@{cpG*$*Jb6}HM)tXC&TOC(L^6?{}(oq`s82eOF|p{ zNz>O>pER`1-#LuBSN~twM&D@|S!_G;UE1guoBxGv^qt0${1)Y7`1cu11*-nHq5jG9 z_dh<@;Vg%*f5#cgrwVDHKYoG`qduI^I|IG?@b?(nh6S2M)ZWU>HC9TV7s%5WL#`ZJ zSb}!>3#S-irIV-mzhLg4KV#)nlLwV(P4akib|{}FU~fbYSsac3&dpGtxrZg?8LM>5 zZz}LVqbZazl&-BvW6$30{NXJKTd~nAZQrcr|IsQx&v5;{WoY!ul>mI7Ww@+j=oNp* zEYY&Ue?CnA#@mJKe-h)0dF09Ms7uP=S5v=fWBz^(-%VqjSyYe9BR}1y{C_+)%Dne? zwlJ?A`v`@ft>hQBn~+Di{*56KQ;K~yCEM0nrl(o|=Od?F2}BqE-#UTtOMuB5o%$yG z3{q)|^y6j!<59v3rZ5|Nu+hLjVLPptzHRz%^XP2&ZH_#Kl!?mdG`m`!kjg&KtZ4kN zoMe?471ik6&C-7=^Z#XJ*yoK+H2Pq;?4Nt-Umi2qE`PY1W>|xy&u1On(5wG@5yru^nt zzHdC<5Dkl{`-NCrsN?gwB%A=b@^Td}ZvVHX;30r-Klo>Hv4~nx@ITR1jae!AH&r>v z{m(X4UY(3zrT&|GXFFD*{Htsax&PTJgEN2Q$6mSKS7eqW@F;&Ty}Z7{hvGW zFI=6&%R8Q@SZ^9}_9p&&Xo-dDiuk zq8u1z8&Y~4^h9}AehBE4TsM6bL_xV#{g00ku-l$3lH{t%7QFv83-V=kxx1&2gUR5p z`#>x-{g*75M=EhhU(IU$*BvO#56|%Vvtyn9!a&xLyWn+E)ma-QML`2XoOxkNQO%;D zw^~HEX3zd9LzO+RqC6fFc|>kR7VwB*R1-KpMls5VgII-N6fSJ*SHwL$Bt#n+<^tQ2tzThjylwD! z$!CLRI0WPXgh^&Lk$1BV$KovA(IHRp3+j>nyCEH-h%_l?~ z8miKc_6rRQ#XX-OtyicD+>yD&ypR;TE-G%^@(T$I_wrYHczF-=3)HH3 z4OF&%Dm(9>fM8a6A69z@_Ge#28qOXy^a}N1PYn+D!p89o_43uas2uAC4j&bu>K_yw z#v%|pK-Jt3y_Q7^*Qw*99TM(an8hF@Of`xZ8o&$n3slM3D)z9X7R20(!lA>0A`C8h z1^Pf7!ay)g>mOWL$qpOl7pj7N6$&JHAX0vk)7ynrq=>|x--HcSZF!G9zA5k3k@wis zoAO>Qd5=B3Deu))@`9A(Y;EOTcy=>Pvh|ZqLs*z;cyu!i4k;qR1Dhd|t+yfD8?qT= z*=!S@GW1oH!R$dyWs60UAB-C;&mfXLQ;y`Dfh^LjB2`<+C2B{?do7ebf7uUJb2-aj z5jIz{e3h)0au&1}v(Zw?Vh>O%V8B0SgtZ5Lm>9E&vPKb1Py8Qa&7Ms(Vo{z-}7Dd@yN5~UlunDT3pD<*?dm9r`|a_r`7AbK}mK#xNW-qJ0b~k-wnrJn@a3|H`>f0+N3^cZA&?4?(b4}`+%j=E1SlM}B z^)zl~d9FlOw-38hCUzd|`=;KW6;-#_j_4C`vEwn`H*ee1Grs$V#~1%ynY_Vf=g}1%luX$rtD7egldBWP^m0y@PJzLHC<*KG3n#Xrl`+sV9H?~1&{7C0as};7lD!w1)-uv>H{@p@rZgICs zpH+8lmhSm>%|R>E1L>Q~{TSCews$IfX`5_wJ>Y&l`?(E21eNYLX@B?9?So7cw;!LF z*}DAYA|)HH`eED8T-C=7^+rBl@68%q zXiCnZ>Fs81J8k;7*|qh1?w88EII-ED?5J~778G(D-1v3Db2~eo-B)6NeAU>o9&c?5 z?%0r1?NQ$@_otn#UFv1ui*0rlPXF>EtIoEULqDmPxPH3-?&i;SgU>G7KJ;_OsA2mY z$3Hn?(ne=meR;}?Wucvhxet92)cD!!H(5Dm?H^X~*neu8bH~uH(XWG^eVtKc(&+RC zZ*op$mtEB7LB|@0<4SFe$_d)~I=lIsV?)07-THb^jpaRxcs`gkAli6xZ?~MsBOgrq zH9Kmbx<}bPTlCcBeR!)q!*b@mz24VquV?ioMLUMtTy9;i%=6_|D|#Ir@M+|T zMT?&HtlT2If8lMF4@W$RK7Q-Q%GRSZmX*pZn0CF4+eqtb2Os!Z98K;!$13n@blJ}h zAHAC5n3TBSbz2{gtkMrGQa5C#cwV@odK6(Dbo`U|jeFYW^ZT~Ru8?@5>CA!G6ARBy zmG+Eyb#YFoO08_Nj~(3T+$-Vowr=xu*6B|_Ua0U}<2Pd)R15M;bY62da_sSeT?!9b zu%}(c5-$$SUSl@h{c`(i@5a8d*c9h6>)PZ)uR2${-0bDX9;!7%9TvNu9bW68^Q>zZ zX4l&iTw43O_?|6`)JdaW+&SE;MR?EAR^Au(m(7UpbS!&b#KT49+f|Bf2tDtbluXg*|t=h0f@0-*exN7xR0(@^3f%SKIzON14}X*r(R8%|_no@612` z*xzpZ?k|~Zyo-$LLq) zn=Q2mI)6Gg_es~~!M3wgQjRx&w2|!bapJ0usg8Q zrd?S^qq}>&xRhZ!vz49y@f*9cn_tWBTE9<$L!O1Q*Kaj>sc$m)Q22t0kzLFV)iE*e zdpl^>&Qp!lJ8mDa8~15O%F~%EX7sFnyHxt*_8IC&KP5+41-#PkkBWZbwO@b2Y2~Xf zw-X#UzDQkA;NrNxzbyOsCHmqrtG$aI8rPjPednDuG10xc^o+W*@W|e{lC#VGmbm!p zzO949JFKgCW$nfCm+m^aT<`wOFK$NLOK!z?Z*zLSeq~^}-|BjIo}HPYHRrywP+Vdh!V=J{8b?e;BZueU0>v@F?XcJMX%ezl)mUd}+I#) zO6Ra(k4nF8oaO(#=G~;2CxvV8xihy{kynAmZfM7BI`E~hw(_c<8y=oMqvpU1<=c;+ zaWL9EZkw}{pZWOV=5en!d>mNAq(Zb&W{01y#9+>vM|cqka8rNjoa8@$(A5 zvFB!6@4+357Yz#k_`Jis@$FWOKXbZOK*dpUJ~JK`n%Ob@-LN^AR*&xBvE2V)Kkw-a z3O9Pts=Vdatm0$Z&vVA}C+XJHu)NL}W z{=*TI5-ozqf9&ylvC!Jnink2gxT~gb#Ko2FOJ`=)9_L+jp}uUvo==Usrkiw&{y`cy zvhbXSuI{T-jC))??D2F%3ES#r+w>mp?)2e;P4TOTjH-tHyl{!1NwK!wFSnokbbj3W zNo%*1^h=)ebzg(#&BG4NZM*K8d7JaqUxZIOJhRax>?a11dXK$S`rBb(sotia1*Y?Hf zUpoG1v&Xy3`u)8}I8);GVjrLY(FP;ulY!pY-T_ zR;qbe{|lGZPQ~`+oM{|&>qFmc%T>4THhLL9Zjx`t>&knJ`ClF#x9$8!)5ZN89sF{3 z<=19z6B(aN31B*YrnPhJl<^TAvVsqU3<14n;1$Gk?B-|gp{CuB7p(Wc{-?*C| zG4R&HxGU}7x)&_kD!#cx)8_t(3oDjf?$e}R^-2quRNcJ3(^8)ro7O~@YgQ`VJl(GP zrS+#%8>CNeaJs zTdwMIW%qq|x5^EsS08fn{fjr3_E;Ucm@;C|m3H%dvYpCXO!6*WEO}1VL9X``D(s#9 z+G6Iy!Jos9eK5CM^Q`IgURGz;9Wt&n<5B~g5orUX7AE?XA7E3oN!rD#&sX1YdtHCG zLtWFx$vxbnKRg*}qfhN|a$kqEi6_UOFO=NL%X{a{WbdeLyHkI6*%+Ns;PA18xQm;z znyNa?Y+`2B)m3HDF>cNMgs#O}l&kow*VzQWrOmdhts;vTzv1MTvfgP)yR!*P$|stI z1^2phYI&rq$Jue(S*33_AE1sd^?Y85#Bw{L2e$5Xsb}L3+KS%GP0pJw9QnNd!Ix|I znVw+Hd)w{s^k2+3UR(L7Q)uBCr5miCZf#-T=Z4b{)h`^lyL(2cb8rp zPG0mNImTi2v*Po{m|m)NXwj&OA(j`m4<9+heR#9W-ImoFT(WvVZGo!0l+_v*o z7njBDADA{hAGP;IGqe?MpT@EvvC?2TmDG(8~*G4w@s{ZR(1WSlr3iIyBZa3|7_&-gf>fd?Ois1 z?%HX+8_tef`io2F?dwjqh_2ay{K=~cj5)duKG_NKJ6WE-%uBLp^a)8 z;GAY(G460d)6neqQ-gP(D|h?O)LA1VCubzr$R03ru1QhX&Z~A>ZC0g)^dHgr?eOlK z#-2UiZ*@%a^Ckzk&%U?FfBTAdL2e@lCQkl3(+sOXQWyuM;ZTK?a+!N_HW0%zH>+aY~6%03teni z)^;1tsQXqV?c zQ=dPc64CSM!JPv>J8M2aJ~McO#V@XNx4x>YO1JqjP?zSUF4ca*kH_@djK9oNS$zkj#x z+JVR7Yu3@V|GFt&ZFMZA-}LME8s;?e342+4$IxA~UZ$4WuDKB`W0fsW!)R?a@WI?W=bg z)vfrYIy+T$8|@ym^JtFW!`;hkxOdOgxW}2V8}D`2zD)bQJGCjDy>xBQWID`sJTqIL zSfz1~wh@V0XBPE682qNirwhMSs2fxx;+G{WAFXe2aCn9LyQU;=Ydq%biiOignOYrm zyYlmww5fg6sbdN}sFhi#Pk*!Q?ruMw-PN){n=LZ~ykaM>s`|3pThl4^r+?CVSMn-X z{?nYu9WHlY-nh15np3aY+a`K1`2EKpE4Hn&Zk5xU8bjaquWoiFcu1UGUAKd8)P3(x z{lPSPzh>$$rc)}OY&gxjzx!&;^t;jTaUPR;*6})6BQDLorN@_& zb#>O~$$6)z{7C{m4+Zo*-}#P{<%e~dMJL~k>fR)Ha=_+Z!;N;-Y0+=CbNh2O_G;(s zOWyQq^m6|)n-{einfYnr(+c}0SJ2np5;V2K-k;tF-fmW^<lX&sX?r8X4bzZp_9# zUF$}xcg(Pi+10v{k;--c5uIJnVGZm2wk5{K)jch;NVAk$>l<83&lpi|&(8Cm9`19y z+hYA1o1TtVJ4S5|)(;;PTWxCH4!eJLd)3W+OU-V_H{JZvVSL;`w{>YN0?KA*#V-gi zG4SpCS*r1?uf_E`xKZc2Se-rax56`zrY9U6+54&e?v7=2gZK7*J8F2sbgu)WCC^2d z-(EPd(pr7EcIVHjDXXVD{MzTimKy7tAHDE=ZvNcU=6m49mtLM7(9tG~+ zJv?B*${z+gbne%!c2D!4tsB?OSXoh(=w{I}qDaidZdXri?_5ZHx_8I@{ z(K|h+Tv~RZ%7J2)TL-T>9r(21yGwCiCS&^wVs;sS7z3eUf9+5u#nx!2vTW;Ea?ZtPhS}xn)&310~YNK1q z-1;krcst9!V-YJC6L&_^rZxz26XWzFkfyv|%K-Rk1APnFk|ov_mW zsOQAV9_{X4XnS$r#WxNS^R!o1pFL-H@m#m`A@>TsjI4Df;YH;hy`oQduue3cJ#|t} z`o{5^TJ4_o8GInT*Zlf7FU=`6v-PTi{jGl(Xjy29|E#XtikGd@?p2l0=tt~MKwM9? zfJW3tG*1(t2QIt=pAC z%6xs{WnOt%kKdNovF>r&WlzTWQMS*E&9$kUm1(cmZZ1({udQmI% zm0i2ep7yGG&W`mR>%o<2XQw7k_1HLu4?$Gy4~8+5u=S`>JTOc~d>`WgUlIk$Xl!@M zXtbqK1@l5?u`H84EGqv&UQhVvR@`#Bv3s$C#$A{~$-`x>Yy6j|a|@E&Rj$!Aic0q2<6?>I(lbUma;;+%{Je4|yzkz(1;S&n@RM>m5<~#BHp)}vv%iv>Ip1+v-U@}j30O}ab^Wg(HL;0<9?Z^Iu{Ovs7@*Dd_ z4fd0H{!(h+c!9yc*F2v+PnTPMH>G?PLzet~bfi7WhZv5rH`r*vHF?#cIy&^4w#q;6( zB0b54cfMBg$FT~8_r#FE0&rK@VF}^{3FZ#q!SbH651Z^sW2pqGuRI4a2FJn2;9{!H zKwi8)<6sAmm**bAMk?!S(4`@_BxLJ0WZSG zl{^nI7Rxz&k0>O0?qRR3*nVDqE@OFl@zwe8pBRU7&+z^%&s~gd=X@vcgYtaE*dF$m zmwl)Y*s+7Y%91>Pu~+!IHsJF)m**_TPH_H$b9t^}>=Ngl`1(XR+5T_LrCbYd#$2Zt$}$|3qA#*O;~_=MkLC^BLnMIN!jzJdZJ6f%Bql%>YTB zzu0Rv#`E&WJ|A8;9}eq}yzI2ihkGy%^;*Y=q&(L!f4XzNMc@NC-@&;&KQg^9<5u#j zfbFovn@tMf9DTA@vZYYYo%lZT2+q3-d=lruoTI%+&L?w@XlGT$ymzsXETn+ zawNYj$%n7Vhp*3v|C|rs%{chepHFe}d4ZLDfb)@@%jW~e6F7h0Sn(3uC5iJdoXc}R zNZ|8*M{fx})~_f3uP^_1mVC8g?E}NQ3>hx*dq{${a4!Y$US9rfLxKW$wjyL~C}Ta~ zc8DJSL19v;tm7K_^I5>X{lbPZo87fTCCa>qbq)_0qGca8!zb^u5%#$=yJv#^^B(3U zm&%TT{m@|&+%Ev1O-sRA?Fi;>@R*)KT|3m(x5?pp+VkFn+^(Pca*Ry z$YQ8Uh&THNW4LKU%Drbpl5c@i4EyQ(Zd zByGt@|3J`J=lYlV=pFfa2kpah2~so8!GG${K*C|1qo2Nl9Y-+2QW()wJCTAO2=rk{JEWmep)*axVH=mT(%k287!X z`)a{Hj`QwBPvh_d;ne;J!HzQ@pYXsNB+<{Qgi|}O38#Km=IbJ`!@ldv5TE9R(>UKG zyc*Fz;~e9O?~mUTJ*}@JUw5It6R%e@&c%AQCi`&Hl= zpX-Fva_?~t$2$`HCHN&5>~9)gK;?Y6J>k@TQ^FyhNjyGooP${!pH4(i?Sv2xcFu7- zlZYMKE>{VM7+{?55MF}t9Aclwxgab`Sc2k!W1LF~9OGPxbI`#W9?Nwg`nrU-BixDb z&H~4Be-Jp9JDhXS!SzopcdDRAt`j)gUnFp}zaby{yNMp!CsFARKI9 zxswQ|{ctVkqMw@uj(+YFIQkh+?9+aDk?3hZd``F%@$-$qvD_SiW4XnkGAx0P_Cs6F z#dLfn&K1h<#daU&3j*!w3f(7>8iOX+NCDx#;Iofuo=B zMXHcckAChT_Gv$iCwkfsZxc@2<)Of_+}8rfa=&s8I@%A*z{N+F&`*p*C4r;;+5$)W zO*t3sYlt4Ypat)TovAvoJ9Q|xBaP+e~u}}M<7tzyx7(h5Q zA^fN(q;O&fx)}N&Dd?+neJs(_>s?C;r*T+IIE}+8VxRVta{|XWqzD}2@QB!_ad<)W zG!DifVhQ38RjSGBWx+X=NBeVmqNjH15l;PYB5?G-t-#U$o}7b@j%zQX2N&yeKLd%L z`Z<~CsXsFWj{YnVIQp}a*r)yf1mU#*pCfj_MeHZHh@SfSnCNLdUlR^?TJZX25j(Vh z7KDp#EMYskbA3t9p`NsVRwbPFPkX{?|LjEU(|Gm}IL6aU;26*0#6DC7$5$B9(>TNs z4pnN)>$Q~Fq4C^6^wiE_!m0l!1dje+5;*#QpL5XB{+UVi;9@uK=O?14eint!#F9Ag zl@K`kqY^m!W6wG0U=!onnQ+=aJqd@Y9rc4b2Y`o@IQe%O!Lq3!4;aI_yJaE#k%VxRWI8AMOx@Q82-0p6$cn%JRn zFoq9-SQ6W}u)xvJvI0jxRh)wkLXPpAPV_X+F#<>Xi;11;#LhaRr}fPt9O^rgx4U^| zw!;$GrS&brIn=iS`$Ip=5k0(>MBbd}X*;?L9R2SmaEwnsVxP97R?wrJ0K%!CVT6M} zs87y^-zA*JttouS!4kv)LN=Ditu5zb+&U3G^`{5n)Sv!@({e)yr|}#kaIDu1fnz)u za1J`?+Sp!ei5{vH$?LU^=xKjQAbRT0X@R3Z*9DIL+$Z*F|IZ?N8aERabB-m5KaI~I z70}#viRS+Mt7QC#{v66V*a831pCrO*xlahE_01GG*7vi((Y{GlNlu`n^{vFYSg$dJ zLzNctdQB&GXuHG^J+0RR!fCxsZ4`en4%i=x3LNWIPT*KC8_q#T$7wyHr|s2=a2n4Z z0>^T_1dinfaSl4#pJxbqtk-OTqy6OqNBdjyv44Q*p-I;8c1a|9+AcSVp4Ruiz|o%< z0!M#75c{5KjFutInKeN%Y4;;OI{!fulb)I0qf|ryjDmK(u2=xD#4Bj~YR7785guNOGl-(VwrxKJA~?;ASJ1;CR|Un{Y0+Z!3XgxgG+?a(fZ` zwA^uo({g7K4mL3Ua|x&Ya1ZCApN9pGex4OL`gw)er~U9L;nbg(gj0X4;3h4WM1QOW zj{ejTIQmnUbI?(LS`s}S7kvq*{baDfvD`p`W4Yrw2OS+3^94P&%QAtZ{mlYL`}^{- zpGfpDB+l}2afRsVxOhVJw7!`FM}IyG9Q`qYi)Ac$$& z{i!5y^ryDK(VqsKgO2*+PV{tK3?!WP6Rp6p+)#mIxl=d?9UT`-1UFKYUF%^(TvP>Q4m+ zi1HuDg^j?`A18rB8IYQC4m#?OhUn?I@Ftx0li>o#az_i?TrO3TrgIKDIxbcUdTf^s z0!RD11a8jlCvYy>PbPX868JpHU81Ms;uX=;`hE~N`eRy0aRB>?Irpa+=b)qgvp(Up zf3_3sU>rIN9LxPd;8?Df*r(;rBAk}HgmAEd<*p%|_QR8$V|`KotH9CETLMQv9}@et zAO1!-_2+lOsXr>Xsh1_upPB+ke;NuL{b|WL=%_y)L{G=XX2PLgz2o!kUSfy#tHVT3 z?OY+8_O}#)qyK3FNB=)?4mvu%OrS89AU@zCUZ=I>9Q4#r8=|NF*b5x}X)JK`$CcQp z{ZLCd?T2TH9oWQvb)RtXKbyxnlh~pDe3Hd{%P~I@(@aiJrFCL87PiJxBDgiT+#>IQsKI;ONhD&Ot}p%c33wECIJ< ze`r6PbBHI6&n&`edo3b%sQ+t;p4$0JIM}h|6)0Mt?XU#9)Xp%@MSms`PW_pckDUcX zPyKmAIM^x2{rQ@Y9W(e4jwO)M&$()I4t_$&F`o4W&dp1%0>}1h&pGJmeAR>KssFx& zga6fd0b#@rjprqzr*@taPUHD5A3I-(p4uq_A1bhf@$Aky=;(MHMD$Q!oIm}Ep2lq=(Nlk-1djg96FB;_oY<%1F@bP89?udx zG(PtUr|p$V>`?zd5>xL7#6&FNc*k-}2pr3;z&YsX zxUNk&Ew{5^2g~&oIF{=za4grK*r(-=BYN5{GYE%vap48bCw59Rj{a;UdfF~q1&)3m z5;*#KlGvy1l0o!v>cDc}3LNdr5A`t}v+PNigv{S9ATrI=AcbXsI$T{r7 zTXwYHgy^B4WbyB{&=L;)B$?X@&d1Ie!eMGb`P2OINFI7IL2WK=b(dIjnJQM zf*$!^fusGC0!RDjiT&op{!OBXxD_wJ{;`xw^fYd71ib^-f67N+0t#aZ{G;>9c$q5k zhc@sjsDQ}=-_7k$6Zm<~X9_%(^Jsy;<2+X21$nvi1rERA3Td(OBKH&U(}DBl0#|ds zTHpgYUoY?o&VLg4I?m$+ewg#^0>8rfZh=4Le80dyaei3fB?>7ZUf}kepA>j2&QA;6 zlk;-|AHjLDz^8D2Rp5&_zbWvooZk_6Jm;wbPv-owz*9L-6Zm`1GX-vHrhwN1x90r4 zz#Tcy5_oIQJDDmO(5K+9riHTKRp6aD?dWW~~cfe&k-@WTSv!XkyGc!AI2>&24-f5X@1 zxSqneec*QZFpz(MkWbCB{bKTe<%bDjC{~06St_Bt$a*{$5bvf2&WEr3y_k@1#QwMm z*pKRy-0uDs@lSKwd+zON4wtT7-VFUsrLM!^O?f$#Sg_yDdSDDXtiwE{oL zxxc`5aB^m8tny+gcLV2>1iq8o(F?o*5B55NXYl%N6*yi8I3Vy1d_Pg(MR>5U2z(Ux zGgaXDeU>i-K8M@+Ebs}uUWK^7*e*d_S4!aUv*nPg3cRy|B}ak(%FAsg@J4(ezn=-q zea`K83i=(K4-vQp_a{i;K74;kGB8)0 zog?tee1Dz5jk*4)z}N7&oe;R5>n{rY7T>=uaI6>ntTrT!&l7IvH-V#_(mWsaXvaq2 zxbAN#aQrT9H-Ycu_3{un+V3ZD)cXqj5s&{2fuo(Z0{7?jG~we3>&2I2k|pQh9=u=1 zR8G)id}c)~H%H)oxg8Z>+@L?daNbtnZ8#qy z@Uq;`aDkuXJVxM0IA1OB!n}X(6ZkD2&*Pkf3{2qn0^bt!t9gB&3w#jw|BJw}-B5y^s{(-8S|4O+Q;wLF3maCHTz*lb`$ODCZ{q%36!>}0uW=5$P$d4IL8hQb|IN&m zf>7_x&s$A6M}LesZz<@pT|5Q-2VP$vf#duiDsc2?s$f5hkBd!$z8d#ur=Z8{LDvQS zM;^~Ng5HkXFT*czV14oT2P$%o@!84S%T>@1zhDP{_aa2l<9szm;19X| zSb^jB^sW{-&Oh5YNB?pD$M1JVZpZ8ORdI;1Lvrp#_eb$j*A65xE?zy=+VvvfludtUKQ*t;N@lr`fOfq5q>=w zOk&M#=+hHpR|;8c(6u^Ixe$@gmsyf@!>6u2MX$M+6se+uXPvZm}OlslVq zSN@9nb$nkf@GX45gTVLl{VoDO%J;E-(Ee%8`wIGNe1D+8Z}WX`fj{H>*k928OU?rX zJ6I5l{2e%t6?j9=mvRofyz9$E z#W^s_T?LMDA1rW;*JOd?_+2eSD3$FpcW5dh2kb)_QN!6-#aKEK+As7#W64_OzX&g53!E?do_IDH!$3h{ZI`1 z-JP&8ye#doK||TE+-P~P{nuYq>`>@BIRB$1SH2tta-+}FeP4W2G`5ceuGc*I|6DXf| zKg1Fq-nFQ|- z^DKX>a*$;y9s`25VZps z%gcYu1lf#y4>xRq|9Fmqee{16+m>w#jyZJ%l_W(89b1q|Bbg?z@?ClPuDoMF`S6wk zkH_+-G6v;4VFufVw7;A3dYvDy?ByOW`^;br`^)S2SbpNWj0f^pEC!EXfyWEFA)X50 zAKM#p@i=_l$d5M&_{KzjyvXr5n#_+E+aLYM<1ercuqhtDogY717}( +#include + +#include "objref.c" + +void fatalError(char *msg){ + printf("Fatal error: %s\n", msg); + exit(1); +} + +void * newPrimObject(int dataSize) { + ObjRef bigObjRef; + + bigObjRef = malloc(sizeof(unsigned int) + + dataSize * sizeof(unsigned char)); + if (bigObjRef == NULL) { + fatalError("newPrimObject() got no memory"); + } + bigObjRef->size = dataSize; + return bigObjRef; +} + +void * getPrimObjectDataPointer(void * obj){ + ObjRef oo = ((ObjRef) (obj)); + return oo->data; +} diff --git a/support.o b/support.o new file mode 100644 index 0000000000000000000000000000000000000000..b9bac9c19775b998a81bb08ba915b3ebe929509d GIT binary patch literal 4856 zcmbtWeN~C5hV$Rph3+d0xk%+ zDu`4;u~w`-*6OO&F1n413Tmq@9z0#!9;HWQTkFT7U9h_DotJyV^P0c9b51fdznS0M zxgYPoSCo`I(?ujgR77Yx8t^EJQ0&kFTfv(OG!prtR8_?tRmnXsRfV-rRhiVMs<@!4 zc7+60#l@4Ld*JU2sL5M|Ag!?8t4zA5s#lfR2H{jbrmDaNO00dTVE8~0K2n)_52{yq z!GHTXzDR|&2YWp{2}Z_+GS1D^m^Hal&SWy0rb^$)_do`2Rf;J`|F(7+muZd|Bh?wr zQiD;d=k!KXA#%+1BAGOuyQN{;l{TC0lCA9w8l+CB6AevPXpgQN+`YUjO|fxHNpNds zmgt>^penCK|M#V5t8%?U#+G+!HD6vCD_SP%t&jBfI2oVY>~^?NJ^Q00aY4yZ4K4nP zO=54CO%nO!owsC%-?E%ucYTbs`)I<+>WaoYf#o|y3kLgT*jn$3KAce;bjaQ3w!3GM zri*i3-8iLM)Vy_4%@+688rLBwTmoDq>(%bF^DI)=V&B^Ah7sb0ZM$~Yo|o2a)ct92_jvw={HU)M~XBiH5ml$%{qP5E^Mg7aj2`d%DB7H2jRy z)!Z$0p7@)ps;V#gE%Cl#iuQERIZS0 z`}((^R@%lM>n_u6sLU#qTx>dit}^BL>v??sTdgE;SH7DJEFqA(V{@_5nD(sUd9{(8K>o%u#>3PRG?s{ciGpcWU zl*%O~);-ad5R)-q{pRuUEk_nTdeqqVhwnaJJ2#yKL1#w^;^Fv-|PJ?FQ)A}G5oxy{m-Wke)+jauWP|Aw@s;U zKku0wk7gw%PL)Q?nwL688Z$vQUKS%AFCRZa9xIO_ZJ|Nfkm4U)X*dtLAdw9)Dk9?3 zbL2|`qSXtK$l@g$C2=3T83+9_9z3km&JcPkp2|kA4pkROL^OM2kPbB$EnSAKyoC2TJ-DM!Rfpyt|Ryqrp^lDPiOEo z#7|`KQsS!^oSrk``G@}NNZz|dv-6b_9M(X%4si@l_v<|dr~8g%`GtD3MvJxCWYt+)A7VWCEEq1|0{~ z0W3Giz)=bwkD354;r&dbUe6iu&<3NKli^o;biP@Wxt#bqLxC*MWX$7C=0Z}JTe>9M zq|tL^qW`CoVm_?7@UDZB3i!ja*{&S_T zoLj)f01D)qz!sY9_)$0rHGeN3&JENQo-OPmIzGMk0Rv&jhv$OF=*0Le3L-@BeG0Q_ z@Vq%&KQEHlLmGqigFT{rx_)yo=4^a_!n=;+LZN($WnjY@{~_VC^Jn?+J?O0eKDb!0 z$n6S2|L}gNeA++UFV4o7k_}x;_*79o^>eY|Z2SoLD8cg3uK4i*qI^2O6=N{IoCZjK z6B+*o@u{L|e9ssx$3JI$3p9nL%&r{&EWaK{c)laUZagRaAO@%7QoV=pnKTq2{Adyc zDUU)&umO)Md;X<_Pxp`J)BdU7jt!{E@>2-kLKBH*`K=gtwtxN-J3&QwaDLz$kMimM vIU5@&ZDf4 +#include "bigint.h" + +int main(int argc, char *argv[]) +{ + printf("Hallo Welt\n"); + bigFromInt(5); + return 0; +}