Commit graph

131 commits

Author SHA1 Message Date
Wolfgang Bumiller
ee7051c5a4 strcmp and strncmp builtins 2012-12-23 19:22:38 +01:00
Wolfgang Bumiller
275b6f777a Adding strcat builtin to qcvm 2012-12-23 19:06:29 +01:00
Wolfgang Bumiller
67bc99223d Fix a nasty bug in the executor; and make null-strings be shown as (null) in the trace output 2012-12-23 17:32:14 +01:00
Dale Weiler
c3964cf29d Make compiler and virtual-machine compile as C++ code, also removed gmqcc_voidptr hack. 2012-12-23 07:51:19 +00:00
Dale Weiler
6bc29a1601 Merge branch 'master' of github.com:graphitemaster/gmqcc 2012-12-23 06:06:57 +00:00
Dale Weiler
13003bf6af Wrapper around FILE to take advantage of MSVC "secure" CRT. We don't actually defend bounds checks (we just hack in the few ones to silent MSVC .. and to pass WinRT "native code" rules) 2012-12-23 06:05:22 +00:00
Wolfgang Bumiller
9d54ea6b0c More stuff for qcvm -info 2012-12-22 23:30:52 +01:00
Dale Weiler
fa401b6f56 Cleanups and make compile with clang again with no warnings. 2012-12-22 08:22:50 +00:00
Dale Weiler
7d2a2f2ade cleanups and fixes that cppcheck found 2012-12-22 08:07:54 +00:00
Dale Weiler
3c003bc168 Get gmqcc/qcvm compiling on windows again. Plus work in progress support for the testsuite on windows (does not compile yet). 2012-12-21 01:00:51 -05:00
Wolfgang Bumiller
b02c4e4d10 sscanf_s only for _MSC_VER not WIN32 in exec.c 2012-12-20 15:46:31 +01:00
Wolfgang (Blub) Bumiller
e1c3e35422 Improved parameter handling of qcvm a little, added --version and --help 2012-12-18 15:46:26 +01:00
Wolfgang (Blub) Bumiller
70f676784d Better usage message for qcvm, don't exit after any of the information prints - but don't execute if any of them are used 2012-12-18 15:39:20 +01:00
Wolfgang (Blub) Bumiller
2a94fe9731 qcvm -pringdefs now prints [SAVE] next to globals with DEF_SAVEFLAG set 2012-12-18 12:41:29 +01:00
Wolfgang (Blub) Bumiller
83a41d13c0 Don't generate AINSTR_END anymore, use INSTR_DONE 2012-12-18 11:46:26 +01:00
Wolfgang (Blub) Bumiller
a5e0542f95 cmd_options -> opts_cmd_t to make testsuite and executor compile again 2012-12-18 11:46:15 +01:00
Wolfgang (Blub) Bumiller
f9b1d057b5 Moving all the global opts_ variables into a struct, now there's one global 'opts' struct 2012-12-06 13:23:53 +01:00
Wolfgang (Blub) Bumiller
5f0f5bedbc More stuff in qcvm -printfuns 2012-12-05 14:22:24 +01:00
Wolfgang (Blub) Bumiller
e8a1b7e71c Remove an unused variable qc_stof 2012-12-02 11:58:15 +01:00
Wolfgang (Blub) Bumiller
b7ce7370e8 stof builtin #9 2012-12-01 15:54:13 +01:00
Wolfgang (Blub) Bumiller
79e0c5c4fa More info in qcvm -printfuns 2012-12-01 15:23:04 +01:00
Wolfgang (Blub) Bumiller
e0a7f8a484 qcvm -printfuns; prog_section_function.nargs is now signed as fteqcc sets builtins with varargs to have -1 params 2012-11-30 20:20:13 +01:00
Wolfgang (Blub) Bumiller
fef9303381 moving opts_warn and opts_werror to con.c 2012-11-28 19:18:11 +01:00
Wolfgang (Blub) Bumiller
3c1992fc38 qcvm didn't compile since moving the compile messages to con.c due to undefined references - fixed now 2012-11-28 19:16:35 +01:00
Dale Weiler
ca52ecc20a Remove trailing whitespace for Blub. 2012-11-26 11:12:06 +00:00
Dale Weiler
81bb87c49b Sign conversion fixes in exec.c 2012-11-23 06:23:20 +00:00
Wolfgang (Blub) Bumiller
12fca5ef8f Make the disasm a bit more verbose as to where globals are 2012-11-18 20:32:22 +01:00
Wolfgang (Blub) Bumiller
906f319673 Replaced it all... 2012-11-15 18:32:09 +01:00
Wolfgang (Blub) Bumiller
84088cb5f0 Merging in new-syntax 2012-11-14 21:39:16 +01:00
Wolfgang (Blub) Bumiller
6044079528 Fix a very stupid bug in the executor which prevented ADDRESS to have the same global as output as one of its inputs 2012-11-13 00:36:00 +01:00
Wolfgang (Blub) Bumiller
9a42dd1c3a qcvm -trace now shows the current function name and nest-depth 2012-11-11 23:57:42 +01:00
Wolfgang (Blub) Bumiller
83438d9833 call ir_function_finalize on array accessors otherwise they'll blow up stuff 2012-11-11 23:46:03 +01:00
Wolfgang (Blub) Bumiller
cdb7d06521 apply the typemask where previously forgotten 2012-11-11 23:39:40 +01:00
Wolfgang (Blub) Bumiller
fc6bd54943 show the function name for CALLs in disasm 2012-11-11 23:36:03 +01:00
Wolfgang (Blub) Bumiller
a3c8605e18 Fixing execloop indentation 2012-11-11 10:40:31 +01:00
Dale Weiler
9ad35a2817 Remove execloop.h, we still use xmacros, but it's done with #include __FILE__ trickery. Please do not kill me, it doesn't look that bad, conditional compilation is even used in eglibc like this :P 2012-11-10 20:53:37 +00:00
Wolfgang (Blub) Bumiller
b1b586d398 -disasm should show builtins as builtins rather than trying to print negative statements - skip function 0 since it's not a valid function 2012-11-02 12:32:13 +01:00
Wolfgang (Blub) Bumiller
265e66b98b -disasm switch for qcvm 2012-11-02 12:23:55 +01:00
Wolfgang (Blub) Bumiller
b22f149d9e etos builtin... 2012-08-24 22:58:07 +02:00
Wolfgang (Blub) Bumiller
b2cb612c70 Adding DEF_SAVEGLOBAL, marking globals as to-be-saved now, for real support of quicksaving 2012-08-23 18:28:05 +02:00
Wolfgang (Blub) Bumiller
52a1b9469c qcvm won't print checksum or entity field area size without the -info option anymore 2012-08-23 12:42:41 +02:00
Wolfgang (Blub) Bumiller
84149c371d Possibility to call a main function with parameters by specifying -float, -vector or -string parameters to standalone qcvm 2012-08-23 10:35:03 +02:00
Wolfgang (Blub) Bumiller
8465f98f37 vtos should use the same quotes as we use in qc source 2012-08-23 10:18:59 +02:00
Wolfgang (Blub) Bumiller
b93125c678 cut off too-long strings in disassembly 2012-08-22 17:41:24 +02:00
Wolfgang (Blub) Bumiller
aa314ed147 when using -trace in qcvm: print a newline after every print that doesn't end in a newline, so that the next disassembled instruction doesn't appear mid-text 2012-08-22 17:37:22 +02:00
Wolfgang (Blub) Bumiller
be18550b02 Nicer -trace output in qcvm/exec 2012-08-22 17:32:57 +02:00
Wolfgang (Blub) Bumiller
0b01944d54 qc_vlen, and adding numbers to all builtins for clarity 2012-08-22 15:39:15 +02:00
Wolfgang (Blub) Bumiller
ce956fa0fb error builtin to bail out, pawn now _always_ nulls the new entity data 2012-08-22 15:35:28 +02:00
Wolfgang (Blub) Bumiller
9284c41d0a add ticks around vector strings created by vtos 2012-08-22 15:04:37 +02:00
Wolfgang (Blub) Bumiller
9433f66a00 vtos builtin 2012-08-22 15:03:49 +02:00
Wolfgang (Blub) Bumiller
cafa78d430 -printdefs for qcvm 2012-08-22 14:15:35 +02:00
Wolfgang (Blub) Bumiller
93e13c3cb1 option: -force-crc=number, added -info to executor to just show some file info like the crc, and -printfields to print a list of fields along with their type and position 2012-08-22 14:00:57 +02:00
Wolfgang (Blub) Bumiller
ae69812d92 Nicer prints in exec's prog_print_statement 2012-08-19 16:42:12 +02:00
Wolfgang (Blub) Bumiller
dc5555e084 qcvm: -trace flag 2012-08-19 15:19:43 +02:00
Wolfgang (Blub) Bumiller
9f951e36a9 prog_leavefunction needs to take the ++st into account - otherwise INSTR_RETURN ends up skipping the instruction after the calling INSTR_CALL 2012-08-16 16:28:59 +02:00
Wolfgang (Blub) Bumiller
0d9435d326 util_fopen... 2012-08-16 14:01:47 +02:00
Wolfgang (Blub) Bumiller
61605636d1 Replacing execloop.h ... wish I could just use a copy of DP's execloop, I hate licenses 2012-08-16 12:10:24 +02:00
Wolfgang (Blub) Bumiller
2594274fe6 include stdio.h in exec.c for snprintf... 2012-08-16 11:36:28 +02:00
Wolfgang (Blub) Bumiller
b36fabe4d7 print builtin now prints all the passed strings, not just the first 2012-08-11 21:18:15 +02:00
Wolfgang (Blub) Bumiller
cf04b5ed01 Need to keep prog->entities up to date when spawning entities 2012-08-11 17:35:55 +02:00
Wolfgang (Blub) Bumiller
919d73b0a0 experimental support for spawn() in the executor 2012-08-11 17:31:08 +02:00
Wolfgang (Blub) Bumiller
48d330a1e9 unnamed globals in the trace output use [@addr] now instead of [#addr] since # is used as a prefix for all immediates, so now it's less confusing 2012-08-11 11:46:44 +02:00
Wolfgang (Blub) Bumiller
b5bee640d0 nicer trace output, strings now get escaped 2012-08-11 11:31:50 +02:00
Wolfgang (Blub) Bumiller
2bf40b4104 include opts_debug and opts_memchk in exec.c's standalone part for now to have it compile 2012-08-08 12:07:37 +02:00
Wolfgang Bumiller
10d70328c8 executor: prog_delete: deleting builtins properly - unless statically allocated; added a qc_builtins array for the standalone executor containing 'print' 2012-07-27 19:27:56 +02:00
Wolfgang Bumiller
5f0a6bcc53 _MEM_ -> MEM_ again at use 2012-07-27 19:18:04 +02:00
Wolfgang (Blub) Bumiller
0ed9bdf5b8 Adopt dp's function-local backup strategy and add parameter-copying to EnterFunction 2012-06-29 16:04:24 +02:00
Wolfgang (Blub) Bumiller
080e6e5dfb exec.h -> gmqcc.h 2012-06-27 22:31:56 +02:00
Wolfgang (Blub) Bumiller
9e148df23f tidying up, using the original typenames from code.c, renamed JUMPS_DEFAULT to VM_JUMPS_DEFAULT 2012-06-27 22:29:31 +02:00
Wolfgang (Blub) Bumiller
08e5403896 qcvm_execprogram.h -> execloop.h 2012-06-27 19:37:00 +02:00
Wolfgang (Blub) Bumiller
8ce0548ad5 A prototype for error handling 2012-06-27 15:34:26 +02:00
Wolfgang (Blub) Bumiller
e761f1f7b7 'make qcvm' now builds exec-standalone.o from exec.c with -DQCVM_EXECUTOR=1 2012-06-27 14:56:43 +02:00
Wolfgang (Blub) Bumiller
3140f2122a Moving typedefs and defines from exec.c into an exec.h header 2012-06-27 14:53:20 +02:00
Wolfgang (Blub) Bumiller
2fd3ddcb1a moved mem_resize and mem_append vector function macros into gmqcc.h 2012-06-27 14:50:52 +02:00
Wolfgang (Blub) Bumiller
0dae2898e3 fix vector resize to not always resize and actually use the reallocated place... 2012-06-27 14:49:36 +02:00
Wolfgang (Blub) Bumiller
a6e7baf127 prog_enter/leavefunction made static 2012-06-27 13:23:27 +02:00
Wolfgang (Blub) Bumiller
1ce97d1acc Executor now executes and traces 2012-06-27 13:21:37 +02:00
Wolfgang (Blub) Bumiller
aa08a2da68 Searching for 'main' 2012-06-26 13:22:37 +02:00
Wolfgang (Blub) Bumiller
36e2a46e07 Listing functions 2012-06-26 13:21:09 +02:00
Wolfgang (Blub) Bumiller
62008635c5 local-stack, locak-stack-pointer, getting strings from an index, adding tempstrings 2012-06-26 13:10:10 +02:00
Wolfgang (Blub) Bumiller
e328446044 executor: loader 2012-06-25 23:58:47 +02:00