Wolfgang (Blub) Bumiller
|
6fc00e523d
|
All ir_instrs now get their lex-context, so that we can create an LNO file with -flno
|
2012-11-30 18:20:02 +01:00 |
|
Wolfgang (Blub) Bumiller
|
5e23e8296d
|
don't just store a 'bool constant' in the ast/ir, store the complete qualifier: 'int cvq', moved CV_ defines into gmqcc.h
|
2012-11-30 13:47:28 +01:00 |
|
Wolfgang (Blub) Bumiller
|
03cb670096
|
don't use vec_size but _vec_end in _vec_remove, since using it on an empty vector is an error anyway; this causes a warning about vec_pop doing an effect-less memmove so vec_pop now doesn't use vec_remove anymore actually
|
2012-11-30 11:55:32 +01:00 |
|
Wolfgang (Blub) Bumiller
|
e1fe6cff54
|
Importing tail-recursion optimization
|
2012-11-30 11:12:53 +01:00 |
|
Wolfgang (Blub) Bumiller
|
a890589031
|
-O now, additionally to taking a number, can work like -W and -f to take an actual optimization name
|
2012-11-30 11:05:58 +01:00 |
|
Wolfgang (Blub) Bumiller
|
8e1ce2ab5e
|
generic compile_error/compile_warning functions in con.c, issuing end-of-non-void warning from within the ast now
|
2012-11-26 16:12:40 +01:00 |
|
Dale Weiler
|
ca52ecc20a
|
Remove trailing whitespace for Blub.
|
2012-11-26 11:12:06 +00:00 |
|
Wolfgang (Blub) Bumiller
|
7b56ad9405
|
Revert "Fix type punning warnings"
it's a gcc version issue...
This reverts commit 3e6d173e31 .
|
2012-11-25 14:05:10 +01:00 |
|
Dale Weiler
|
3e6d173e31
|
Fix type punning warnings
|
2012-11-25 12:57:28 +00:00 |
|
Wolfgang (Blub) Bumiller
|
613e1e7247
|
Change the parser to use the hashtable functions
|
2012-11-25 13:23:37 +01:00 |
|
Dale Weiler
|
5c0a62be96
|
Add respective license headers + some cleanups
|
2012-11-24 21:22:35 +00:00 |
|
Dale Weiler
|
9d677bab7c
|
Added comment about hashtable
|
2012-11-23 20:05:53 +00:00 |
|
Dale Weiler
|
6e047ec65b
|
No copy, just store pointer for hash table
|
2012-11-23 20:01:58 +00:00 |
|
Wolfgang (Blub) Bumiller
|
4a3921fcb9
|
Let's #define GMQCC by default
|
2012-11-23 19:13:09 +01:00 |
|
Dale Weiler
|
e25e83b14c
|
Visual studio __forceinline can be used for GMQCC_INLINE
|
2012-11-23 06:48:54 +00:00 |
|
Dale Weiler
|
9e3399df19
|
Implemented hashtable as-per Blubs request
|
2012-11-23 06:12:01 +00:00 |
|
Wolfgang (Blub) Bumiller
|
968397da61
|
Fixing clang-warnings about vectors
|
2012-11-22 20:42:32 +01:00 |
|
Wolfgang (Blub) Bumiller
|
6983142c4d
|
-dump vs -dumpfin; to see the IR before and after finalizing functions
|
2012-11-21 21:53:38 +01:00 |
|
Dale Weiler
|
2e3d572b53
|
Bump version
|
2012-11-21 20:33:52 +00:00 |
|
Wolfgang (Blub) Bumiller
|
ebc6954bf5
|
casting explicitly to boolean values in early out logic
|
2012-11-21 19:36:28 +01:00 |
|
Dale Weiler
|
61fa54318c
|
Merge branch 'master' into test-suite
Conflicts:
Makefile
ir.c
|
2012-11-19 02:13:46 +00:00 |
|
Wolfgang (Blub) Bumiller
|
0330b082a2
|
The ftepp now always outputs into a string buffer, with -E the buffer will be dumped to stdout or the via -o specified file, without -E it'll be passed to the parser to be compiled
|
2012-11-18 13:33:53 +01:00 |
|
Wolfgang (Blub) Bumiller
|
d1373af7fc
|
Make -E print to stdout by default and honor -o, changed handling of source list a bit
|
2012-11-18 12:51:38 +01:00 |
|
Wolfgang (Blub) Bumiller
|
366557bbab
|
Since like with parsing, the preprocessor state has to be preserved across files for macros, we do that now, and with that introduce a new warning: -Wmultifile-if in case an #if spans over several command-line-provided source files (or progs.src file provided for that matter)
|
2012-11-18 11:54:11 +01:00 |
|
Dale Weiler
|
0dc4febb91
|
New test-suite initial implementation. Just need to write some tests.
|
2012-11-17 02:54:30 +00:00 |
|
Wolfgang (Blub) Bumiller
|
07ca2e6407
|
importing initial ftepp.c; -E option now executes the preprocessor
|
2012-11-16 16:57:59 +01:00 |
|
Wolfgang (Blub) Bumiller
|
3bd75546ec
|
moving _vec_remove above the 'exposed interface' comment
|
2012-11-15 21:24:31 +01:00 |
|
Wolfgang (Blub) Bumiller
|
df61f3c182
|
Fix a typo causing NOTRACK to fail
|
2012-11-15 21:18:31 +01:00 |
|
Wolfgang (Blub) Bumiller
|
c583ae24f2
|
Replacing lexer's vectors and getting rid of the macros
|
2012-11-15 18:48:38 +01:00 |
|
Wolfgang (Blub) Bumiller
|
906f319673
|
Replaced it all...
|
2012-11-15 18:32:09 +01:00 |
|
Dale Weiler
|
2e84cc0b41
|
Use new console system everywhere.
|
2012-11-15 00:28:46 +00:00 |
|
Wolfgang (Blub) Bumiller
|
84088cb5f0
|
Merging in new-syntax
|
2012-11-14 21:39:16 +01:00 |
|
Dale Weiler
|
f0750209b7
|
preliminary segregated console subsystem
|
2012-11-14 19:17:43 +00: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
|
a7d3a2d6ea
|
adding opts_max_array_size with a default of 1024, adding some TODO errors for arrays in the AST
|
2012-11-11 11:09:36 +01:00 |
|
Wolfgang (Blub) Bumiller
|
cf1ea01de3
|
parser_compile_file vs parser_compile_string
|
2012-11-11 10:33:29 +01:00 |
|
Wolfgang (Blub) Bumiller
|
1869440fd9
|
Preparing to parse arrays: adding TYPE_ARRAY and union/struct TYPE_ constants to be consistent with fteqcc, filled type-arrays with their data, attempting to parse an array variable and added some error messages to the IR in case of unhandled types
|
2012-11-11 10:13:01 +01:00 |
|
Wolfgang (Blub) Bumiller
|
a27750966f
|
globals of type .vector will now properly generate 3 globals
|
2012-11-11 10:13:00 +01:00 |
|
Dale Weiler
|
6b12f4435c
|
Make warns.def and flags.def into a single opts.def.
|
2012-11-10 21:13:09 +00:00 |
|
Wolfgang (Blub) Bumiller
|
09e18e1bbf
|
mem_r to realloc
|
2012-11-10 11:16:19 +01:00 |
|
Wolfgang (Blub) Bumiller
|
a195e296a9
|
-E switch to set opt_pp_only
|
2012-11-02 18:33:51 +01:00 |
|
Wolfgang (Blub) Bumiller
|
5adc3fd9c1
|
Don't forget to set the _alloc in vector resize, also set _alloc back in _append if mem_a had failed
|
2012-10-09 20:56:54 +02:00 |
|
Wolfgang (Blub) Bumiller
|
5dd8e23dfd
|
Cleaner crc implementation
|
2012-10-02 17:51:03 +02:00 |
|
Wolfgang (Blub) Bumiller
|
354dd94b95
|
Generating checksums
|
2012-10-02 17:09:49 +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
|
fe2f9d79c5
|
fixing mem-vector resize function
|
2012-08-23 13:21:14 +02:00 |
|
Wolfgang (Blub) Bumiller
|
8b90fcf482
|
commenting on the quirks of MUL_VF and MUL_FV in gmqcc.h's instruction list
|
2012-08-22 18:34:48 +02:00 |
|
Wolfgang (Blub) Bumiller
|
ab714862d6
|
committing gmqcc.h for previous exec.c commit: qc_program gets .xflags
|
2012-08-22 17:49:25 +02:00 |
|
Wolfgang (Blub) Bumiller
|
ef3e7231bd
|
it's SUB_V not DUB_V
|
2012-08-22 17:32:42 +02:00 |
|
Wolfgang (Blub) Bumiller
|
77e5807a83
|
memvector resize needs to set _count as well
|
2012-08-22 15:24:24 +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
|
0674457c51
|
Fix some comment styles...
|
2012-08-21 10:33:37 +02:00 |
|
Wolfgang (Blub) Bumiller
|
b421c42d4b
|
replacing WARN_ERROR with opts_werror
|
2012-08-18 14:36:33 +02:00 |
|
Wolfgang (Blub) Bumiller
|
0d9435d326
|
util_fopen...
|
2012-08-16 14:01:47 +02:00 |
|
Wolfgang (Blub) Bumiller
|
2c020837ea
|
fopen -> fopen_s on windows
|
2012-08-16 13:45:45 +02:00 |
|
Wolfgang (Blub) Bumiller
|
0c74f8fdb9
|
make the 'vector' type use qcfloat instead of float
|
2012-08-16 12:58:54 +02:00 |
|
Dale Weiler
|
d73100ad1b
|
gmqcc now builds on visual studio
|
2012-08-14 19:06:53 -04:00 |
|
Wolfgang (Blub) Bumiller
|
b8d92dfa01
|
constant folding for +, - and *
|
2012-08-14 22:51:05 +02:00 |
|
Wolfgang (Blub) Bumiller
|
37c4644d85
|
progs.src mode added
|
2012-08-14 19:30:03 +02:00 |
|
Wolfgang (Blub) Bumiller
|
107100c666
|
-dump option, by default the IR is not dumped anymore
|
2012-08-14 16:19:23 +02:00 |
|
Wolfgang (Blub) Bumiller
|
d824645019
|
error-print functions which take lex_ctx
|
2012-08-14 12:06:28 +02:00 |
|
Wolfgang (Blub) Bumiller
|
579ac3dd5d
|
Working towards a saner error-output system, adding -Werror
|
2012-08-14 11:34:07 +02:00 |
|
Wolfgang (Blub) Bumiller
|
e3b3c2efe3
|
Merge branch 'master' into blub/parser
|
2012-08-13 15:25:40 +02:00 |
|
Wolfgang (Blub) Bumiller
|
633561a730
|
type_eq_instr[], type_ne_instr[]
|
2012-08-13 15:25:14 +02:00 |
|
Wolfgang (Blub) Bumiller
|
7e3edea621
|
fixing the messup of MUL_FV and _VF being swapped - getting rid of additions that really have no place here (YET) (matrix/quaternion types)
|
2012-08-12 11:34:55 +02:00 |
|
Wolfgang (Blub) Bumiller
|
d68d19dbfd
|
Merging master to handle vector members, fields, and members of vector fields
|
2012-08-12 10:08:41 +02:00 |
|
Wolfgang (Blub) Bumiller
|
919d73b0a0
|
experimental support for spawn() in the executor
|
2012-08-11 17:31:08 +02:00 |
|
Wolfgang (Blub) Bumiller
|
0bee759406
|
Merge branch 'master' into blub/bc3
|
2012-08-08 12:25:31 +02:00 |
|
Wolfgang (Blub) Bumiller
|
babc6d209e
|
Add WARN_ prefix to warnings enum
|
2012-08-08 12:25:19 +02:00 |
|
Wolfgang (Blub) Bumiller
|
ae251d3914
|
Merge branch 'master' into blub/bc3
|
2012-08-08 12:05:08 +02:00 |
|
Wolfgang (Blub) Bumiller
|
7fed5bf41f
|
make it also compilable with -std=c99 by not redefining extra_semicolon_, by appending N to it
|
2012-07-30 13:48:53 +02:00 |
|
Wolfgang Bumiller
|
d05bee94d1
|
code_alloc_field to allocate entityfield data, ir now has ir_builder_create_field - so that globals and fields can be created separately - properly
|
2012-07-28 21:55:01 +02:00 |
|
Wolfgang Bumiller
|
e3dc56fc92
|
Merging master and adopting its main.c
|
2012-07-28 21:14:03 +02:00 |
|
Wolfgang Bumiller
|
3321748e4a
|
util_strtocmd, util_strtononcmd
|
2012-07-28 19:28:27 +02:00 |
|
Wolfgang Bumiller
|
c81eb57480
|
reuse old opts_, renamed all opt_ to opts_ to be consistent, making code.c use OPTS_FLAG() for OMIT_NULL_BYTES and DARKPLACES_STRING_TABLE_BUG
|
2012-07-28 19:20:19 +02:00 |
|
Wolfgang Bumiller
|
25e49a669d
|
flags.def and warns.def containing defined flags and warnings
|
2012-07-28 19:09:44 +02:00 |
|
Wolfgang Bumiller
|
ac26c2f2f2
|
Add -foverlap-locals - something we really should make possible
|
2012-07-28 14:48:02 +02:00 |
|
Wolfgang Bumiller
|
3072ce7eba
|
Added handler for -W
|
2012-07-28 13:59:35 +02:00 |
|
Wolfgang Bumiller
|
ddfd44e2a4
|
gcc style long option support and -std=foo added
|
2012-07-28 12:59:33 +02:00 |
|
Wolfgang Bumiller
|
3c462539a6
|
Commandline handling first draft
|
2012-07-28 12:36:20 +02:00 |
|
Wolfgang Bumiller
|
b76ffe8304
|
Merging master with newly merged executor
|
2012-07-27 19:17:03 +02:00 |
|
Wolfgang Bumiller
|
f8b3081c44
|
Merging master and adapting _MEM_* on new mem-vector functions
|
2012-07-27 19:13:03 +02:00 |
|
Wolfgang Bumiller
|
975356cbce
|
Merge branch 'master' into blub/bc3
|
2012-07-27 19:02:39 +02:00 |
|
Wolfgang Bumiller
|
81fd77da38
|
_MEM_... -> MEM_...
|
2012-07-27 19:02:18 +02:00 |
|
Wolfgang Bumiller
|
aef49d9667
|
Merge branch 'master' into blub/bc3
|
2012-07-22 12:21:43 +02:00 |
|
Wolfgang Bumiller
|
43897f6e8f
|
store_param storetype, parameter value list added to ast_function
|
2012-07-22 12:07:30 +02:00 |
|
Wolfgang Bumiller
|
071fd32040
|
Handling some operands, added type_name array
|
2012-07-20 21:19:30 +02:00 |
|
Wolfgang Bumiller
|
1d55197097
|
parsing typenames completely now with function parameters
|
2012-07-19 11:41:16 +02:00 |
|
Wolfgang Bumiller
|
9b6598f049
|
Copying my old lexer
|
2012-07-16 13:59:10 +02:00 |
|
Wolfgang Bumiller
|
3943e27ebb
|
Temporarily reordering instructions for compatibility
|
2012-07-16 12:43:20 +02:00 |
|
Wolfgang Bumiller
|
8865b12001
|
Reverting the removal of _FV instructions, it's just easier this way
|
2012-07-16 12:29:55 +02:00 |
|
Wolfgang Bumiller
|
49f3980360
|
Merging master
|
2012-07-16 11:40:30 +02:00 |
|
Wolfgang Bumiller
|
478d5ef5ad
|
type_storep_instr: in theory we could use type_store_instr + INSTR_STOREP_F - INSTR_STORE_F, however, this won't work later when TYPE_INTEGER comes in since the _I instructions are at a seperate place
|
2012-07-16 10:24:35 +02:00 |
|
Wolfgang Bumiller
|
e9ac1c9e21
|
First thing: we want quaternions and 4x4 matrices
|
2012-07-10 19:26:07 +02:00 |
|
Wolfgang Bumiller
|
e8cc27df5b
|
type_store_instr[] to get an INSTR_STORE_x by type
|
2012-07-03 22:46:38 +02:00 |
|
Wolfgang (Blub) Bumiller
|
97f34d9add
|
fixed a typo in asm_instr[]: ES_FNC->EQ_FNC
|
2012-06-29 15:41:56 +02:00 |
|
Wolfgang (Blub) Bumiller
|
67b75055b2
|
adding another storage type: store_return; when generating a CALL, the generator can check the output value's storetype, and if it is NOT store_return, it needs to STORE_x the return value into the output value.
|
2012-06-29 14:37:12 +02:00 |
|
Wolfgang (Blub) Bumiller
|
9e7143d934
|
Fixing GMQCC_SUPPRESS_EMPTY_BODY typo
|
2012-06-28 17:23:01 +02:00 |
|
Wolfgang (Blub) Bumiller
|
080e6e5dfb
|
exec.h -> gmqcc.h
|
2012-06-27 22:31:56 +02:00 |
|
Wolfgang (Blub) Bumiller
|
f1a2ac624f
|
Moving prog_section and prog_header to gmqcc.h to not have it twice: previously was in code.c and exec.h
|
2012-06-27 22:04:58 +02:00 |
|