]>
git.rm.cloudns.org Git - xonotic/gmqcc.git/log
Wolfgang (Blub) Bumiller [Mon, 12 Nov 2012 23:36:00 +0000 (00:36 +0100)]
Fix a very stupid bug in the executor which prevented ADDRESS to have the same global as output as one of its inputs
Wolfgang (Blub) Bumiller [Mon, 12 Nov 2012 23:11:07 +0000 (00:11 +0100)]
fix wrong const qualifier
Wolfgang (Blub) Bumiller [Mon, 12 Nov 2012 22:35:47 +0000 (23:35 +0100)]
allowing inexing of array-fields
Wolfgang (Blub) Bumiller [Mon, 12 Nov 2012 22:05:44 +0000 (23:05 +0100)]
array-field setter needs to use STOREP*
Wolfgang (Blub) Bumiller [Mon, 12 Nov 2012 21:39:43 +0000 (22:39 +0100)]
support for ast_entfield nodes with specific output types, fixing array-field instantiating code to print the correct name on error
Wolfgang (Blub) Bumiller [Mon, 12 Nov 2012 21:33:34 +0000 (22:33 +0100)]
add an asterror message for ast_entfield_new with a wrong type
Wolfgang (Blub) Bumiller [Mon, 12 Nov 2012 21:31:54 +0000 (22:31 +0100)]
entity-array-field-setter generation
Wolfgang (Blub) Bumiller [Mon, 12 Nov 2012 21:24:11 +0000 (22:24 +0100)]
code to instantiate field-array accessors
Wolfgang (Blub) Bumiller [Mon, 12 Nov 2012 21:16:18 +0000 (22:16 +0100)]
Preparing to generate accessors for field arrays
Wolfgang (Blub) Bumiller [Mon, 12 Nov 2012 20:12:25 +0000 (21:12 +0100)]
more factorizing and shortening of code
Wolfgang (Blub) Bumiller [Mon, 12 Nov 2012 19:51:12 +0000 (20:51 +0100)]
shorten some code
Wolfgang (Blub) Bumiller [Mon, 12 Nov 2012 19:33:49 +0000 (20:33 +0100)]
genearting field arrays
Wolfgang (Blub) Bumiller [Sun, 11 Nov 2012 22:57:42 +0000 (23:57 +0100)]
qcvm -trace now shows the current function name and nest-depth
Wolfgang (Blub) Bumiller [Sun, 11 Nov 2012 22:46:03 +0000 (23:46 +0100)]
call ir_function_finalize on array accessors otherwise they'll blow up stuff
Wolfgang (Blub) Bumiller [Sun, 11 Nov 2012 22:39:40 +0000 (23:39 +0100)]
apply the typemask where previously forgotten
Wolfgang (Blub) Bumiller [Sun, 11 Nov 2012 22:36:03 +0000 (23:36 +0100)]
show the function name for CALLs in disasm
Wolfgang (Blub) Bumiller [Sun, 11 Nov 2012 22:31:57 +0000 (23:31 +0100)]
Generating function-local arrays
Wolfgang (Blub) Bumiller [Sun, 11 Nov 2012 20:32:04 +0000 (21:32 +0100)]
fix an uninitialized value
Wolfgang (Blub) Bumiller [Sun, 11 Nov 2012 20:27:02 +0000 (21:27 +0100)]
calling the array setter when required
Wolfgang (Blub) Bumiller [Sun, 11 Nov 2012 18:02:50 +0000 (19:02 +0100)]
Fix array-index codegen conditions
Wolfgang (Blub) Bumiller [Sun, 11 Nov 2012 17:57:02 +0000 (18:57 +0100)]
Fixing lexer to not classify wrong tokens as operators
Wolfgang (Blub) Bumiller [Sun, 11 Nov 2012 17:54:08 +0000 (18:54 +0100)]
handling of op-[
Wolfgang (Blub) Bumiller [Sun, 11 Nov 2012 17:45:43 +0000 (18:45 +0100)]
Handling [ in the SYA
Wolfgang (Blub) Bumiller [Sun, 11 Nov 2012 17:45:20 +0000 (18:45 +0100)]
index operator actually has 2 operands, not 0
Wolfgang (Blub) Bumiller [Sun, 11 Nov 2012 17:31:37 +0000 (18:31 +0100)]
lexer needs to fill the token for the index operator with actual content...
Wolfgang (Blub) Bumiller [Sun, 11 Nov 2012 15:43:16 +0000 (16:43 +0100)]
array index opening-paren can now return TOKEN_OPERATOR, partially handled in SYA
Wolfgang (Blub) Bumiller [Sun, 11 Nov 2012 15:36:20 +0000 (16:36 +0100)]
SY_PAREN_ constants to replace magic numbers
Wolfgang (Blub) Bumiller [Sun, 11 Nov 2012 15:32:59 +0000 (16:32 +0100)]
get-accessor calling in ast_array_index_codegen
Wolfgang (Blub) Bumiller [Sun, 11 Nov 2012 15:22:09 +0000 (16:22 +0100)]
Store accessors in the ast_value for access from within the ast - generate accessors after generating all the globals to not mess up the order of globals in the output
Wolfgang (Blub) Bumiller [Sun, 11 Nov 2012 15:06:27 +0000 (16:06 +0100)]
array accessor function genaration
Wolfgang (Blub) Bumiller [Sun, 11 Nov 2012 13:17:48 +0000 (14:17 +0100)]
properly in all situations where an array is part of a function's return type
Wolfgang (Blub) Bumiller [Sun, 11 Nov 2012 13:08:02 +0000 (14:08 +0100)]
Don't allow arrays and other unsupported parameter types to be used in parameter lists
Wolfgang (Blub) Bumiller [Sun, 11 Nov 2012 11:32:47 +0000 (12:32 +0100)]
Starting to add error messages for when using array types in expressions
Wolfgang (Blub) Bumiller [Sun, 11 Nov 2012 11:14:44 +0000 (12:14 +0100)]
ast->ir for TYPE_ARRAY globals
Wolfgang (Blub) Bumiller [Sun, 11 Nov 2012 11:13:34 +0000 (12:13 +0100)]
need to use ast_unref rather than ast_delete on the parsed array-size otherwise we end up deleting constants
Wolfgang (Blub) Bumiller [Sun, 11 Nov 2012 10:52:05 +0000 (11:52 +0100)]
Removed -O3 from Makefile again
Wolfgang (Blub) Bumiller [Sun, 11 Nov 2012 10:09:36 +0000 (11:09 +0100)]
adding opts_max_array_size with a default of 1024, adding some TODO errors for arrays in the AST
Wolfgang (Blub) Bumiller [Sun, 11 Nov 2012 09:51:40 +0000 (10:51 +0100)]
for arrays, ast_value will contain several ir_values, ir_v will point to the [0] element
Wolfgang (Blub) Bumiller [Sun, 11 Nov 2012 09:04:57 +0000 (10:04 +0100)]
parse arrays
Wolfgang (Blub) Bumiller [Sat, 10 Nov 2012 20:55:56 +0000 (21:55 +0100)]
first parsing of [ - pushing temp changes
Wolfgang (Blub) Bumiller [Sat, 10 Nov 2012 19:21:02 +0000 (20:21 +0100)]
-fadjust-vector-fields is now on by default in -std=gmqcc
Wolfgang (Blub) Bumiller [Sat, 10 Nov 2012 19:04:10 +0000 (20:04 +0100)]
array-subscript operator entries
Wolfgang (Blub) Bumiller [Sat, 10 Nov 2012 18:35:52 +0000 (19:35 +0100)]
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
Wolfgang (Blub) Bumiller [Sat, 10 Nov 2012 15:00:32 +0000 (16:00 +0100)]
Support non-const initialized locals
Wolfgang (Blub) Bumiller [Sat, 10 Nov 2012 14:43:43 +0000 (15:43 +0100)]
Shouldn't require a 'local' keyword for local fieldpointers
Wolfgang (Blub) Bumiller [Sat, 10 Nov 2012 11:44:18 +0000 (12:44 +0100)]
Locals of type .vector will now also properly generate all 3 locals
Wolfgang (Blub) Bumiller [Sat, 10 Nov 2012 11:42:38 +0000 (12:42 +0100)]
globals of type .vector will now properly generate 3 globals
Wolfgang (Blub) Bumiller [Sat, 10 Nov 2012 11:15:59 +0000 (12:15 +0100)]
Support in the AST for TYPE_FIELD globals which are no actual fields
Wolfgang (Blub) Bumiller [Sat, 10 Nov 2012 11:10:30 +0000 (12:10 +0100)]
added 'var' to the keywords when not in -std=qcc, supporting 'var .float x;' in global-scope to declare a field-pointer variable without creating a field of that name
Wolfgang (Blub) Bumiller [Sat, 10 Nov 2012 11:02:15 +0000 (12:02 +0100)]
-std=qcc now errors on C-style function syntax
Wolfgang (Blub) Bumiller [Sat, 10 Nov 2012 11:00:45 +0000 (12:00 +0100)]
-std=qcc should error when the '=' is missing in a function declaration before the body
Wolfgang (Blub) Bumiller [Sat, 10 Nov 2012 10:54:30 +0000 (11:54 +0100)]
Removing old commented-out parsing code
Wolfgang (Blub) Bumiller [Fri, 9 Nov 2012 21:57:11 +0000 (22:57 +0100)]
Making the = in front of function bodies optional
Wolfgang (Blub) Bumiller [Fri, 9 Nov 2012 21:56:34 +0000 (22:56 +0100)]
Testcases for parameter shadowing
Wolfgang (Blub) Bumiller [Fri, 9 Nov 2012 21:49:15 +0000 (22:49 +0100)]
new-style syntax
Wolfgang (Blub) Bumiller [Fri, 9 Nov 2012 18:38:57 +0000 (19:38 +0100)]
Enable 'local-already-declared' check for locals even when they are functions - this was previously simply in the wrong 'if'
Wolfgang (Blub) Bumiller [Sun, 11 Nov 2012 09:12:45 +0000 (10:12 +0100)]
fixing a stupid typo - why doesn't any compiler warn about this crap
Dale Weiler [Sat, 10 Nov 2012 21:15:53 +0000 (21:15 +0000)]
Trash asm.c
Dale Weiler [Sat, 10 Nov 2012 21:13:09 +0000 (21:13 +0000)]
Make warns.def and flags.def into a single opts.def.
Dale Weiler [Sat, 10 Nov 2012 21:05:46 +0000 (21:05 +0000)]
Trash proposal, I'm not commited to this relationship anymore. Also I cannot afford a ring on this salary .. well I can, but you're a dumb bitch.
Dale Weiler [Sat, 10 Nov 2012 21:02:55 +0000 (21:02 +0000)]
Trash misinofmred README
Dale Weiler [Sat, 10 Nov 2012 20:59:58 +0000 (20:59 +0000)]
Trash data/ (reason: see last commit)
Dale Weiler [Sat, 10 Nov 2012 20:57:54 +0000 (20:57 +0000)]
Dump old tests, test suite will take over .. It isn't activly used, just killing space and looking fugly. If required for reference, see older revisions.
Dale Weiler [Sat, 10 Nov 2012 20:54:26 +0000 (20:54 +0000)]
Merge branch 'master' of github.com:graphitemaster/gmqcc
Dale Weiler [Sat, 10 Nov 2012 20:53:37 +0000 (20:53 +0000)]
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
Wolfgang (Blub) Bumiller [Sat, 10 Nov 2012 11:17:05 +0000 (12:17 +0100)]
util_memory_r with byte=0 will now call util_memory_d and return NULL
Wolfgang (Blub) Bumiller [Sat, 10 Nov 2012 10:16:19 +0000 (11:16 +0100)]
mem_r to realloc
Wolfgang (Blub) Bumiller [Fri, 9 Nov 2012 19:11:17 +0000 (20:11 +0100)]
the codegen has to use STORE_V for .vector, not STORE_FLD - contrary to the regular global-assignment, even fteqcc gets this right, so gmqcc should too
Wolfgang (Blub) Bumiller [Fri, 9 Nov 2012 18:04:31 +0000 (19:04 +0100)]
Merged parsing of variable and field declarations into 1 function
Wolfgang (Blub) Bumiller [Tue, 6 Nov 2012 18:50:16 +0000 (19:50 +0100)]
Delete an explicit #define
Wolfgang (Blub) Bumiller [Sun, 4 Nov 2012 10:41:44 +0000 (11:41 +0100)]
gcc lost it's magic analyzer and now complains about uninitialized stuff... <sadface>
Wolfgang (Blub) Bumiller [Fri, 2 Nov 2012 21:51:26 +0000 (22:51 +0100)]
error on more than 8 params for now since more need special treatment
Wolfgang (Blub) Bumiller [Fri, 2 Nov 2012 17:59:21 +0000 (18:59 +0100)]
Delete the test preprocess.c file and get the use/build part out of main.c/Makefile
Wolfgang (Blub) Bumiller [Fri, 2 Nov 2012 17:49:50 +0000 (18:49 +0100)]
better test loop
Wolfgang (Blub) Bumiller [Fri, 2 Nov 2012 17:48:32 +0000 (18:48 +0100)]
Properly handle string and char constants when preprocessing: don't unescape and keep surrounding quotes
Wolfgang (Blub) Bumiller [Fri, 2 Nov 2012 17:39:32 +0000 (18:39 +0100)]
Changed the TOKEN_WHITE to contain the actual data - ie the comments
Wolfgang (Blub) Bumiller [Fri, 2 Nov 2012 17:37:58 +0000 (18:37 +0100)]
Changed the preprocess test to reproduce the input file
Wolfgang (Blub) Bumiller [Fri, 2 Nov 2012 17:28:54 +0000 (18:28 +0100)]
Finishing the preprocessing flag for the lexer, added preprocess.c to test it
Wolfgang (Blub) Bumiller [Fri, 2 Nov 2012 16:58:21 +0000 (17:58 +0100)]
-E switch to set opt_pp_only
Wolfgang (Blub) Bumiller [Thu, 1 Nov 2012 22:22:58 +0000 (23:22 +0100)]
preprocessing flag for the lexer
Wolfgang (Blub) Bumiller [Fri, 2 Nov 2012 17:30:20 +0000 (18:30 +0100)]
Fix a minor bug in the lexer
Wolfgang (Blub) Bumiller [Fri, 2 Nov 2012 11:32:13 +0000 (12:32 +0100)]
-disasm should show builtins as builtins rather than trying to print negative statements - skip function 0 since it's not a valid function
Wolfgang (Blub) Bumiller [Fri, 2 Nov 2012 11:23:55 +0000 (12:23 +0100)]
-disasm switch for qcvm
Wolfgang (Blub) Bumiller [Thu, 1 Nov 2012 17:24:48 +0000 (18:24 +0100)]
functions-as-parameters testcase
Wolfgang (Blub) Bumiller [Thu, 1 Nov 2012 17:21:53 +0000 (18:21 +0100)]
Test for entity-field-pointer function parameters
Wolfgang (Blub) Bumiller [Thu, 1 Nov 2012 13:20:58 +0000 (14:20 +0100)]
reserve the keywords 'switch,struct,union,break,continue' - but only with std != QCC - eg. id1 uses a function named 'break'
Wolfgang (Blub) Bumiller [Thu, 1 Nov 2012 13:05:14 +0000 (14:05 +0100)]
string-literals now do not treat digraphs as digraphs
Wolfgang (Blub) Bumiller [Wed, 31 Oct 2012 17:55:03 +0000 (18:55 +0100)]
A comment/note/hint about how to deal with not-yet declared things later in past-0.2
Wolfgang (Blub) Bumiller [Tue, 30 Oct 2012 20:21:23 +0000 (21:21 +0100)]
invalid-assign testcase for non-lvalue stores
Wolfgang (Blub) Bumiller [Tue, 30 Oct 2012 20:20:06 +0000 (21:20 +0100)]
If parser_finish fails, the exit-value must also indicate an error
Wolfgang (Blub) Bumiller [Tue, 30 Oct 2012 20:15:42 +0000 (21:15 +0100)]
Error when lvalues are requested where that's not possible
Wolfgang (Blub) Bumiller [Mon, 29 Oct 2012 13:47:11 +0000 (14:47 +0100)]
Actually use a di-graph in the ngraph test, and replaced the curly braces and the builgin-# sign
Wolfgang (Blub) Bumiller [Mon, 29 Oct 2012 13:36:05 +0000 (14:36 +0100)]
di/trigraph testcase
Wolfgang (Blub) Bumiller [Mon, 29 Oct 2012 13:35:50 +0000 (14:35 +0100)]
ast_call_check_types should not check more parameters than actually available in both the call and the function type - fixes a crash introduced by this on variadic functions
Wolfgang (Blub) Bumiller [Mon, 29 Oct 2012 12:56:00 +0000 (13:56 +0100)]
digraphs
Wolfgang (Blub) Bumiller [Mon, 29 Oct 2012 12:52:39 +0000 (13:52 +0100)]
trigraphs
Wolfgang (Blub) Bumiller [Sun, 28 Oct 2012 18:34:39 +0000 (19:34 +0100)]
Pulling in a rudimentary testsuite - we have to find a better solution ...
Wolfgang (Blub) Bumiller [Sun, 28 Oct 2012 19:32:13 +0000 (20:32 +0100)]
Error when trying to assign variables whose types are different - with -std=qcc only warn when they are both functions with non-matching parameter types
Wolfgang (Blub) Bumiller [Sun, 28 Oct 2012 19:31:35 +0000 (20:31 +0100)]
-Wassign-function-types - since in qcc you may assign functionpointers which take different parameters...
Wolfgang (Blub) Bumiller [Sun, 28 Oct 2012 19:30:55 +0000 (20:30 +0100)]
ast_type_to_string function