From 7ed66f0b38b9f4ed281f0a9eeb6a7b22938a7032 Mon Sep 17 00:00:00 2001 From: David Anderson Date: Mon, 6 Sep 2004 22:18:58 +0000 Subject: [PATCH] Fixed line errors in JIT Fixed externs in amx.cpp --- amxmodx/JIT/jits.asm | 7 ++++--- amxmodx/JIT/jits.o | Bin 26286 -> 26398 bytes amxmodx/Makefile.pl | 12 ++++++------ amxmodx/amx.cpp | 15 ++++++++++++++- 4 files changed, 24 insertions(+), 10 deletions(-) diff --git a/amxmodx/JIT/jits.asm b/amxmodx/JIT/jits.asm index 459a5e7f..455f90d2 100755 --- a/amxmodx/JIT/jits.asm +++ b/amxmodx/JIT/jits.asm @@ -108,7 +108,7 @@ ; ; GWMV: to generate LINE opcode, %define ALLOWOPLINE ; -%undef ALLOWOPLINE +%define ALLOWOPLINE ; ; If this is set to 1 the JIT generates relocatable code for case tables, too. @@ -164,8 +164,9 @@ _alt: resd 1 _reset_stk: resd 1 _reset_hea: resd 1 _syscall_d: resd 1 -; the two fields below are for the JIT; they do not exist in -; the non-JIT version of the abstract machine +; the two fields below are for the JIT +; they are included in the non-JIT version for AMX Mod X +; this is to make sure that the structs match universally! _reloc_size: resd 1 ; memory block for relocations _code_size: resd 1 ; memory size of the native code endstruc diff --git a/amxmodx/JIT/jits.o b/amxmodx/JIT/jits.o index 468efa42a2ba9a888ac49936a085cd601f41ee9c..f15a1b5fdf21569a94a04c05371fd27ee7432fed 100755 GIT binary patch delta 4221 zcmZ2?mT}%W#tBOpV1Q-|? zG#D5dm>Ce@fgJ;b!em!QWhREe$ytnQtOzD&^&3)1=3us)Xl=xUBkuFc#wmEfuZp@$gSNBlO34Y8J}$SU|Pn+ zcw_Q=7JbGWljT`Kq(7LfXI1wE8O`79z`(%pU-`f250Had*t?xsx>;I5CNEZFWMJ4Q z!^ps}laGOcq0_qYFvy0_ORQzlbWVQHs>yg`vLu@k!*2yBiPkXW> zrwE3Ie;g`|Hzq4{f*cqICOg689!@PGWP^HHn*NLanEZoNMFd&+-~%DX3m^#tE*Zuf zlYO~#7;j9j;xcBuF?k)Be8go4@*=l3ce0@{C}H^v<1noPEImyalwc1Ct1{l0{0vO;i0Crjm~15i%5CXjatfF{C<4m; z&qP#hk;Cx6s0b)K6bLXd>|}=)aPaIP#lQe78Ye*&&YXNv1e9W8MOF2Y&FQ?VdFj6> zhcpAj_pkfjf=q)ImvGZ2Zxj{gfU1z4{6Q3C%tKL7hG!K6k(y#4Pxyn`#b9zenA|O< z#&~1$BQTpy98_c&iGzxOL~)SUyTw6z*Mr4xi-QUyehH8oYY9-%kPIff!6MtiWH7lOOuhz_;!+^fyrs+-Z%l5I0tM%KDNsRkNeWaL{gnb0K)TW(TSBEl zL0csalAS9Jl06{}lKlaeRglpUMGmT+pd9~SR6=@kqKpDI85!xx)3D1ZNKZa3qriA$ z@*5dNCLZa@{IaM9?1dPuB0bqfRsp3n+yRl%07dpPiOG)q!u7~*0+njky)n!jsMT7x zGs|LGNd|^)XO6{+k_-&{#3hj`LLLSN25_;7lurJO8c2iEGz52AcRRCS8Vf3Oc|;f( z7*K87S0Xw2qo^?Bjmdm+3XE4K>&wY8KAG$%rz#FAn?TjG38)wbnRuAzzw$oT$s6QE zP-?E&fX)~Dv_Zns$i9mW>U;(AN|Y1>!@fuXf80s0WAPKDCgE$zbVKX1Z@i6{=J_ZI>XzLDS!6`n7$6)f;_!tnrpK|BqU zf6K?f5Q!xJgRdSEA}|I2`5>VKgAj8kVumg#&#?QcT4vFu>&%mI} z2r-R;fsrAWpMk*$iClvH`7#Myd1Q`4T7#KvE5J46tz`&q|#7_`l zV9-V4=Lj$`SRnDM1Q-}xkoc_v3=Doq{3!wq48d@IJtM<>0S1OxxBw%=S^)-z#Yp_U z0t^gKk@zP;y%tb^0_;XchU)?h3>--OXCMzC@kIm~7(f{ttek;~K~|7~;SMZ~)H5(K zXbUnhfO;t~1;&C544@(k#RG_#Lj@Ta{vgSx2r@7*z>7^L zh7v&r22d*%roLH_fdN!;g822IY&1!bfq@4}!(2fI22c|fqyQwpOpt*ARIkJM>jfDY zB#_ka5M*GGLE;}2WMEK0;-3;^U{FEgUln9v0973f3=CQfAPXJ{GBAJ&I+z7-1sNC+ z1wRwRH$esllgYw%+M$O03=9t-$`}L~7#Zx)_+JGW7^I+q50YmQMCCIIF)&y_og%=% z#2^6TZ=P%y!6%RvpOcxF$^fC_i*q->@;S`Bd0l{pK>bSz1_nkJ28NGN`WuwymV}54 zN-{7oF*7hoLiq+z+6*f02Ic!e`N2?r29(Z&ig!Z!E1>i_2yM@B4Z>h}0;PXK>HkoT zTv8B+$U|vWDTsrN!TiZRiBgl-B}$mKgSiY0Jy3cflwJ;1z6HuZ1f@@a#3ySfS$Hx- zQUD_}B<4XhD8@lFD5gO)D272aC}u%4C_+IrC?Y{LsJ3Nf-n=I17juM(EX2JQP}&Ac aJ3wg{DD45IeV}vzln#N?5l|YMA{YP-erA6F delta 4123 zcmbPtj&a>t#tBOpO(rf?W)zrsQk~IY;zxDe1|a}|f3hp1GSh~D$ytnQtO9`y3^OKAWz?zPA;rMZ?ZMOSAkcZ9nG3{Y zW(ARq_d8{`NHH)h-XO)maGZ6I6vVX7)BhE_bwLUmkArMzeE#SE|Nr6LrXXeAz9QPb z0-u+3gLTGf-s>zD&^&3)1=3us)Xl=xUBkuFc#wmEfuZp@$gSNBlO34Y8TV}VU|Pn+ zxMA{p7JbGIljT`Kq(7LfXI1wE8O`79z`(%pU-`f21(1VT*t?xsx>;I5CNEZFWMJ4Q z!^ps}laGOcq0_qYFvy0_ORQzlbWVQHs>!%vvLu@k!*2yBiPkXW> zrwE3Ie;g`|8zw7rf*cqICOg689!@PGWP^HHn*NJknEZoNMFd&+-~%DX3m^#tE*ZuR zlYO~#7&lC=;xcC3FnJxAe8go4@*=l3aXb3?|cfL8eXQ1*tjA3o`8!FDR&#_|zFU zO!ndfsm$fml0tTF=cC3W6=5bqn!o;w-jJHSkx!m+!{m#6;?j4d7#Q~1b1^XN1jQsM zMnS0s9HWz&`9aRpPDtzLJ=P8ThfM%F!(YxrduH%y+z zucm^c!4e8x_85X4a4irW>F+cA|l z;Zc50P}T&^F>Sb&!~B@fHF=_-FuE_=aci6$BZOg3Gj8QDd;Ws$VcanJpb(D0d?kbt zI(@j!oopx!N?88FI83VmOHUI9CD;SPs*D>ZKLe9IBD#zlCR>Ssa$7o>oB}2fihy$e zGZ9r=WH7lOOuhz_;!+^fyrs+-H%xAl0tM%KDNsRkNeWaL{gnb0K)TW(TSBEl zL0csalAS9Jl06{}lKlaeRglpUMGmT+pd9~S^n=voL>UEaGGC-7Ps1+rLu&GA83o1- zli$cFGCh%+%rA>-z+Q;af21b6$SRJAB^em*OENI9N-;2)OEEBjT-FC|_b@PQ z)>P^guLtP^IhKKei6NX1Vg`(#$OkbG#?R$rVDOTJ@IdM-_#k#cM3@+w_!txM3VJDJ;b$kpApy+}r0JVQW9)R(W@-Z-gA_~U8zz6XhjDLrZ zfk7YcK_-Uhd=QVrHZIOaTT47bJd(00V;`62Do1fgu=)-zUJp5R1g0Bf!A07|yR}WLP7> z!0;3<$iQ#_DN&gUGBAKT1z-gXObjl93=CJ0%Vjg8%~) z!+#Ke^JTjTzRfnihnP424bT**e=otnz{tYD@Ku6=fr*)cflU&^=aGc)WuSZ|C|?uG zw}a9yQ1N&uzYa<-fzoTB^e!lU9!g(@=nH3f02TNOrGG;t7&xUM4&j5+%1~NU3gR#e zDBl-K2SdeU!Tia85~WhRz)S{)8Bls2R0$|SF)~9E5{L#RAP@~oI3OC7U_dk|p@3*m z0s+yWbOEA4=>bH8(gEXS?<5OP76t|pX^49zptKB>R)EqfP+9{@>p*D(C~X3!H=jxR L#SH2jfa4ti;4VpD diff --git a/amxmodx/Makefile.pl b/amxmodx/Makefile.pl index a51e60c8..b503304c 100755 --- a/amxmodx/Makefile.pl +++ b/amxmodx/Makefile.pl @@ -75,14 +75,14 @@ while ($cmd = shift) $gcc = `$gccf --version`; if ($gcc =~ /2\.9/) { - if ($OPTIONS{"jit"}) - { - push(@CPP_SOURCE_FILES, "amx.cpp"); - $OPT{"opt"} .= " -malign-loops=2 -malign-jumps=2 -malign-functions=2"; - } else { + #if ($OPTIONS{"jit"}) + #{ +# push(@CPP_SOURCE_FILES, "amx.cpp"); +# $OPT{"opt"} .= " -malign-loops=2 -malign-jumps=2 -malign-functions=2"; +# } else { `ln -s amx.cpp amx.c`; push(@C_SOURCE_FILES, "amx.c"); - } +# } } else { if ($OPTIONS{"amd64"}) { diff --git a/amxmodx/amx.cpp b/amxmodx/amx.cpp index d33669c7..df5f108f 100755 --- a/amxmodx/amx.cpp +++ b/amxmodx/amx.cpp @@ -480,8 +480,12 @@ int AMXAPI amx_Debug(AMX *amx) } #if defined JIT +#if defined WIN32 || __cplusplus extern "C" int AMXAPI getMaxCodeSize(void); extern "C" int AMXAPI asm_runJIT(void *sourceAMXbase, void *jumparray, void *compiledAMXbase); +#else + extern int AMXAPI getMaxCodeSize(void); + extern int AMXAPI asm_runJIT(void *sourceAMXbase, void *jumparray, void *compiledAMXbase); #endif #if SMALL_CELL_SIZE==16 @@ -2728,17 +2732,26 @@ static void *amx_opcodelist_nodebug[] = { #endif #elif defined __GNUC__ /* force "cdecl" by adding an "attribute" to the declaration */ + #if defined __cplusplus + extern "C" cell amx_exec_asm(cell *regs,cell *retval,cell stp,cell hea) __attribute__((cdecl)); + #else extern cell amx_exec_asm(cell *regs,cell *retval,cell stp,cell hea) __attribute__((cdecl)); + #endif #else /* force "cdecl" by specifying it as a "function class" with the "__cdecl" keyword */ - extern cell __cdecl amx_exec_asm(cell *regs,cell *retval,cell stp,cell hea); + extern "C" cell __cdecl amx_exec_asm(cell *regs,cell *retval,cell stp,cell hea); #endif #endif #if defined ASM32 || defined JIT +#if defined WIN32 || defined __cplusplus + extern "C" void *amx_opcodelist[]; + extern "C" void *amx_opcodelist_nodebug[]; +#else extern void *amx_opcodelist[]; extern void *amx_opcodelist_nodebug[]; #endif +#endif int AMXAPI amx_Exec(AMX *amx, cell *retval, int index, int numparams, ...) {