xonotic/gmqcc.git
9 years agoMerge branch 'master' of github.com:graphitemaster/gmqcc
Dale Weiler [Thu, 20 Dec 2012 23:07:33 +0000 (23:07 +0000)]
Merge branch 'master' of github.com:graphitemaster/gmqcc

9 years agoImplemented roboust compile-time endianess check.
Dale Weiler [Thu, 20 Dec 2012 23:07:06 +0000 (23:07 +0000)]
Implemented roboust compile-time endianess check.

9 years agoRemove old tempalloc code; disable -Olocaltemps for now
Wolfgang Bumiller [Thu, 20 Dec 2012 22:52:54 +0000 (23:52 +0100)]
Remove old tempalloc code; disable -Olocaltemps for now

9 years agoBe more correct with sizes; use a better local-alloc strategy
Wolfgang Bumiller [Thu, 20 Dec 2012 22:48:41 +0000 (23:48 +0100)]
Be more correct with sizes; use a better local-alloc strategy

9 years agominor: fix ast_function_label
Wolfgang Bumiller [Thu, 20 Dec 2012 22:27:23 +0000 (23:27 +0100)]
minor: fix ast_function_label

9 years agoFix util_endianswap; and endianswap the LNO data as well
Wolfgang Bumiller [Thu, 20 Dec 2012 21:03:51 +0000 (22:03 +0100)]
Fix util_endianswap; and endianswap the LNO data as well

9 years agoDon't check for is_return but for final at the end of a function so that if 'goto...
Wolfgang Bumiller [Thu, 20 Dec 2012 20:05:29 +0000 (21:05 +0100)]
Don't check for is_return but for final at the end of a function so that if 'goto' is the last expression we don't try to append a return

9 years ago*sigh*
Wolfgang Bumiller [Thu, 20 Dec 2012 19:57:05 +0000 (20:57 +0100)]
*sigh*

9 years agono need to check the array, the 2nd NOT is a NOT_F
Wolfgang Bumiller [Thu, 20 Dec 2012 19:56:49 +0000 (20:56 +0100)]
no need to check the array, the 2nd NOT is a NOT_F

9 years agomanpage: -fcorrect-logic, -ftrue-empty-strings, -ffalse-empty-strings
Wolfgang Bumiller [Thu, 20 Dec 2012 19:56:08 +0000 (20:56 +0100)]
manpage: -fcorrect-logic, -ftrue-empty-strings, -ffalse-empty-strings

9 years agofix -fcorrect-logic to use double-not instead of a single one - wow that was a bad one
Wolfgang Bumiller [Thu, 20 Dec 2012 19:55:56 +0000 (20:55 +0100)]
fix -fcorrect-logic to use double-not instead of a single one - wow that was a bad one

9 years agoTestcases for -ftrue-empty-strings and -ffalse-empty-strings
Wolfgang Bumiller [Thu, 20 Dec 2012 19:43:58 +0000 (20:43 +0100)]
Testcases for -ftrue-empty-strings and -ffalse-empty-strings

9 years agoFix the -fcorrect-logic condition
Wolfgang Bumiller [Thu, 20 Dec 2012 19:40:59 +0000 (20:40 +0100)]
Fix the -fcorrect-logic condition

9 years agoFix -fcorrect-logic
Wolfgang Bumiller [Thu, 20 Dec 2012 19:33:05 +0000 (20:33 +0100)]
Fix -fcorrect-logic

9 years agofix a leak in the local-allocator
Wolfgang Bumiller [Thu, 20 Dec 2012 19:26:54 +0000 (20:26 +0100)]
fix a leak in the local-allocator

9 years agoFix a leak: free code_linenums
Wolfgang Bumiller [Thu, 20 Dec 2012 19:26:14 +0000 (20:26 +0100)]
Fix a leak: free code_linenums

9 years agoFor loops may have an empty condition - don't try processing a NULL
Wolfgang Bumiller [Thu, 20 Dec 2012 19:23:35 +0000 (20:23 +0100)]
For loops may have an empty condition - don't try processing a NULL

9 years agowhile/for/do now all use process_condition, ast_loop got 2 new parameters for more...
Wolfgang Bumiller [Thu, 20 Dec 2012 19:22:31 +0000 (20:22 +0100)]
while/for/do now all use process_condition, ast_loop got 2 new parameters for more efficient translation

9 years agoprocess_condition function used by parse_if - need to still add it to loops
Wolfgang Bumiller [Thu, 20 Dec 2012 18:51:30 +0000 (19:51 +0100)]
process_condition function used by parse_if - need to still add it to loops

9 years ago-ftrue-empty-strings now changes type_not_instr[TYPE_STRING] to INSTR_NOT_F
Wolfgang Bumiller [Thu, 20 Dec 2012 18:32:57 +0000 (19:32 +0100)]
-ftrue-empty-strings now changes type_not_instr[TYPE_STRING] to INSTR_NOT_F

9 years agosince unary not doesn't fold these, remove them from immediate_is_true
Wolfgang Bumiller [Thu, 20 Dec 2012 18:19:12 +0000 (19:19 +0100)]
since unary not doesn't fold these, remove them from immediate_is_true

9 years agointroducing an immediate_is_true which follows the new -f flags on strings and vector...
Wolfgang Bumiller [Thu, 20 Dec 2012 18:18:22 +0000 (19:18 +0100)]
introducing an immediate_is_true which follows the new -f flags on strings and vector truthfulness, used in logic-op constant folding; const folding now disabled for functions-constants on NOT because it's stupid

9 years agounary not now uses NOT_F with -ftrue-empty-strings
Wolfgang Bumiller [Thu, 20 Dec 2012 18:04:56 +0000 (19:04 +0100)]
unary not now uses NOT_F with -ftrue-empty-strings

9 years agoMaking logical 'and' and 'or' use NOT_ in -fcorrect-logic for both operands normally...
Wolfgang Bumiller [Thu, 20 Dec 2012 18:00:23 +0000 (19:00 +0100)]
Making logical 'and' and 'or' use NOT_ in -fcorrect-logic for both operands normally, but only for the first with -fperl-logic

9 years agoAdding -fcorrect-logic, -ftrue-empty-strings, -ffalse-empty-strings flags; not used yet
Wolfgang Bumiller [Thu, 20 Dec 2012 17:59:05 +0000 (18:59 +0100)]
Adding -fcorrect-logic, -ftrue-empty-strings, -ffalse-empty-strings flags; not used yet

9 years agomanpage: typo 0.1.9
Wolfgang Bumiller [Thu, 20 Dec 2012 15:56:22 +0000 (16:56 +0100)]
manpage: typo

9 years agoFix condition on whether or not to print 'error' or 'warning'
Wolfgang Bumiller [Thu, 20 Dec 2012 15:55:00 +0000 (16:55 +0100)]
Fix condition on whether or not to print 'error' or 'warning'

9 years ago-Werror-<warning> should actually use opts_setwerror
Wolfgang Bumiller [Thu, 20 Dec 2012 15:53:09 +0000 (16:53 +0100)]
-Werror-<warning> should actually use opts_setwerror

9 years ago-Werror-<warning>, -Wno-error-<warning>, manpage updated
Wolfgang Bumiller [Thu, 20 Dec 2012 15:49:10 +0000 (16:49 +0100)]
-Werror-<warning>, -Wno-error-<warning>, manpage updated

9 years agomanpage: -Wunreachable-code
Wolfgang Bumiller [Thu, 20 Dec 2012 15:41:40 +0000 (16:41 +0100)]
manpage: -Wunreachable-code

9 years agoReorder the warnings in opts.c to match their oder in opts.def, added WARN_LOCAL_SHAD...
Wolfgang Bumiller [Thu, 20 Dec 2012 15:32:36 +0000 (16:32 +0100)]
Reorder the warnings in opts.c to match their oder in opts.def, added WARN_LOCAL_SHADOWS to the list with its default false parameter

9 years agoTurn -fallow-unreachable-code into a -Wunreachable-code
Wolfgang Bumiller [Thu, 20 Dec 2012 15:29:32 +0000 (16:29 +0100)]
Turn -fallow-unreachable-code into a -Wunreachable-code

9 years agoFix object dependency: OBJ -> OBJ_D so they all depend on gmqcc.h again properly
Wolfgang Bumiller [Thu, 20 Dec 2012 15:28:35 +0000 (16:28 +0100)]
Fix object dependency: OBJ -> OBJ_D so they all depend on gmqcc.h again properly

9 years agoTemporarily fix noreturn bug by creating an actual dummy return instruction after...
Wolfgang Bumiller [Thu, 20 Dec 2012 15:20:08 +0000 (16:20 +0100)]
Temporarily fix noreturn bug by creating an actual dummy return instruction after the call for now

9 years ago-g sets opts.g and -debug causes blocks to be labeled
Wolfgang Bumiller [Thu, 20 Dec 2012 15:04:10 +0000 (16:04 +0100)]
-g sets opts.g and -debug causes blocks to be labeled

9 years agosscanf_s only for _MSC_VER not WIN32 in exec.c
Wolfgang Bumiller [Thu, 20 Dec 2012 14:46:31 +0000 (15:46 +0100)]
sscanf_s only for _MSC_VER not WIN32 in exec.c

9 years agoOh god I hate this so much
Wolfgang Bumiller [Thu, 20 Dec 2012 14:45:15 +0000 (15:45 +0100)]
Oh god I hate this so much

9 years agothat should have gone into the second to last commit
Wolfgang Bumiller [Thu, 20 Dec 2012 14:27:15 +0000 (15:27 +0100)]
that should have gone into the second to last commit

9 years agoWINDOWS 8 USERS ARE IDIOTS, YES YOU SHOULD TAKE THIS PERSONALLY
Wolfgang Bumiller [Thu, 20 Dec 2012 14:26:45 +0000 (15:26 +0100)]
WINDOWS 8 USERS ARE IDIOTS, YES YOU SHOULD TAKE THIS PERSONALLY

9 years agoast_return needs the correct context...
Wolfgang Bumiller [Thu, 20 Dec 2012 14:01:19 +0000 (15:01 +0100)]
ast_return needs the correct context...

9 years ago-fallow-unreachable-code
Wolfgang Bumiller [Thu, 20 Dec 2012 13:41:16 +0000 (14:41 +0100)]
-fallow-unreachable-code

9 years agovector initialization tests
Wolfgang Bumiller [Thu, 20 Dec 2012 13:12:22 +0000 (14:12 +0100)]
vector initialization tests

9 years agomaking the uninitialized-var on vector warning now check all members; ir_value_vector...
Wolfgang Bumiller [Thu, 20 Dec 2012 13:06:25 +0000 (14:06 +0100)]
making the uninitialized-var on vector warning now check all members; ir_value_vector_member now also appends _x,_y,_z since they're used in the used-unintialized message

9 years agoRemove the suffix entirely
Wolfgang Bumiller [Thu, 20 Dec 2012 12:44:53 +0000 (13:44 +0100)]
Remove the suffix entirely

9 years agoUL->ULL
Wolfgang Bumiller [Thu, 20 Dec 2012 11:55:21 +0000 (12:55 +0100)]
UL->ULL

9 years agoAdded tests for 'noreturn'
Wolfgang Bumiller [Thu, 20 Dec 2012 11:00:39 +0000 (12:00 +0100)]
Added tests for 'noreturn'

9 years agough todo: seed per ht, not per hash
Dale Weiler [Thu, 20 Dec 2012 10:21:31 +0000 (10:21 +0000)]
ugh todo: seed per ht, not per hash

9 years agoNo more hacks
Dale Weiler [Thu, 20 Dec 2012 10:20:16 +0000 (10:20 +0000)]
No more hacks

9 years agofixes
Dale Weiler [Thu, 20 Dec 2012 09:44:47 +0000 (09:44 +0000)]
fixes

9 years agoOne last fix for mankind
Dale Weiler [Thu, 20 Dec 2012 09:01:01 +0000 (09:01 +0000)]
One last fix for mankind

9 years ago*sigh*
Dale Weiler [Thu, 20 Dec 2012 08:51:29 +0000 (08:51 +0000)]
*sigh*

9 years agoAllow uname override
Dale Weiler [Thu, 20 Dec 2012 08:49:14 +0000 (08:49 +0000)]
Allow uname override

9 years agoFix murmur hash seeding
Dale Weiler [Thu, 20 Dec 2012 08:46:39 +0000 (08:46 +0000)]
Fix murmur hash seeding

9 years agoMore fixes
Dale Weiler [Thu, 20 Dec 2012 08:45:54 +0000 (08:45 +0000)]
More fixes

9 years agoAnother fix
Dale Weiler [Thu, 20 Dec 2012 08:19:43 +0000 (08:19 +0000)]
Another fix

9 years agoFTBFS fixes
Dale Weiler [Thu, 20 Dec 2012 08:17:04 +0000 (08:17 +0000)]
FTBFS fixes

9 years agohandle cygwin/mingw for makefile
Dale Weiler [Thu, 20 Dec 2012 00:22:22 +0000 (00:22 +0000)]
handle cygwin/mingw for makefile

9 years agoTypos
Dale Weiler [Wed, 19 Dec 2012 21:37:37 +0000 (21:37 +0000)]
Typos

9 years agoImplemened -fail procedure type for testsuite. Essentially performs compilation...
Dale Weiler [Wed, 19 Dec 2012 21:35:47 +0000 (21:35 +0000)]
Implemened -fail procedure type for testsuite.  Essentially performs compilation on the idea that the compilation should fail, for the test to succeed, otherwise the test actually fails.

9 years agoApplying the actual 'Fix FTFBS stuff' part
Wolfgang (Blub) Bumiller [Wed, 19 Dec 2012 21:17:22 +0000 (22:17 +0100)]
Applying the actual 'Fix FTFBS stuff' part

9 years agoRevert "Fix FTFBS stuff"
Wolfgang (Blub) Bumiller [Wed, 19 Dec 2012 21:15:38 +0000 (22:15 +0100)]
Revert "Fix FTFBS stuff"

This reverts commit 2cc51b8eb060e6efab5b56cf471594911a79c5c1.

9 years agoFix FTFBS stuff
Dale Weiler [Wed, 19 Dec 2012 21:05:24 +0000 (21:05 +0000)]
Fix FTFBS stuff

9 years ago'noreturn' is - for now - a keyword, and used just like noref/var/const, to mark...
Wolfgang (Blub) Bumiller [Wed, 19 Dec 2012 19:54:54 +0000 (20:54 +0100)]
'noreturn' is - for now - a keyword, and used just like noref/var/const, to mark a function as not-returning

9 years agoast_call now passes AST_FLAG_NORETURN on to the IR
Wolfgang (Blub) Bumiller [Wed, 19 Dec 2012 19:47:01 +0000 (20:47 +0100)]
ast_call now passes AST_FLAG_NORETURN on to the IR

9 years agoremoving ast_expression_common.variadic, adding ast_expression_common.flags, added...
Wolfgang (Blub) Bumiller [Wed, 19 Dec 2012 19:45:48 +0000 (20:45 +0100)]
removing ast_expression_common.variadic, adding ast_expression_common.flags, added AST_FLAG_VARIADIC and AST_FLAG_NORETURN

9 years agoNRCALL now sets block->final and block->is_return
Wolfgang (Blub) Bumiller [Wed, 19 Dec 2012 19:40:45 +0000 (20:40 +0100)]
NRCALL now sets block->final and block->is_return

9 years agoir_block_create_{phi,call} now check self->final
Wolfgang (Blub) Bumiller [Wed, 19 Dec 2012 19:39:44 +0000 (20:39 +0100)]
ir_block_create_{phi,call} now check self->final

9 years agoVINSTR_NRCALL, translated like any other call for now; to be used to mark a call...
Wolfgang (Blub) Bumiller [Wed, 19 Dec 2012 19:38:32 +0000 (20:38 +0100)]
VINSTR_NRCALL, translated like any other call for now; to be used to mark a call which never returns, ie the error builtin

9 years agoMerge pull request #48 from mhofstra/patch-1
Wolfgang Bumiller [Tue, 18 Dec 2012 21:01:43 +0000 (13:01 -0800)]
Merge pull request #48 from mhofstra/patch-1

Small typo fix to make it compile on x86

9 years agoSmall typo fix to make it compile on x86
mhofstra [Tue, 18 Dec 2012 20:57:16 +0000 (21:57 +0100)]
Small typo fix to make it compile on x86

9 years agoFixes for some minor bugs clang-analyzer and cppcheck found
Rudolf Polzer [Tue, 18 Dec 2012 15:45:18 +0000 (16:45 +0100)]
Fixes for some minor bugs clang-analyzer and cppcheck found

Signed-off-by: Dale Weiler <killfieldengine@gmail.com>
9 years agodefault make target now is 'all'
Wolfgang (Blub) Bumiller [Tue, 18 Dec 2012 15:58:21 +0000 (16:58 +0100)]
default make target now is 'all'

9 years agoTests for perl-logic _types_
Wolfgang (Blub) Bumiller [Tue, 18 Dec 2012 15:57:38 +0000 (16:57 +0100)]
Tests for perl-logic _types_

9 years ago-fperl-logic now doesn't allow logic ops with operands of different types, but theref...
Wolfgang (Blub) Bumiller [Tue, 18 Dec 2012 15:56:22 +0000 (16:56 +0100)]
-fperl-logic now doesn't allow logic ops with operands of different types, but therefore uses the correct output type

9 years agoAdded intrinsic: __builtin_debug_typestring(expr) to get the type of an expression...
Wolfgang (Blub) Bumiller [Tue, 18 Dec 2012 15:52:30 +0000 (16:52 +0100)]
Added intrinsic: __builtin_debug_typestring(expr) to get the type of an expression as string

9 years agoRemove a TODO message
Wolfgang (Blub) Bumiller [Tue, 18 Dec 2012 15:36:06 +0000 (16:36 +0100)]
Remove a TODO message

9 years agomake install-doc now also installs qcvm.q
Wolfgang (Blub) Bumiller [Tue, 18 Dec 2012 15:03:48 +0000 (16:03 +0100)]
make install-doc now also installs qcvm.q

9 years agoAdding qcvm.1
Wolfgang (Blub) Bumiller [Tue, 18 Dec 2012 15:03:29 +0000 (16:03 +0100)]
Adding qcvm.1

9 years agoImproved parameter handling of qcvm a little, added --version and --help
Wolfgang (Blub) Bumiller [Tue, 18 Dec 2012 14:46:26 +0000 (15:46 +0100)]
Improved parameter handling of qcvm a little, added --version and --help

9 years agofix wrong --version string
Wolfgang (Blub) Bumiller [Tue, 18 Dec 2012 14:44:26 +0000 (15:44 +0100)]
fix wrong --version string

9 years agoBetter usage message for qcvm, don't exit after any of the information prints - but...
Wolfgang (Blub) Bumiller [Tue, 18 Dec 2012 14:39:20 +0000 (15:39 +0100)]
Better usage message for qcvm, don't exit after any of the information prints - but don't execute if any of them are used

9 years agoBUGS, SEE ALSO and AUTHOR sections in the manpage
Wolfgang (Blub) Bumiller [Tue, 18 Dec 2012 14:30:59 +0000 (15:30 +0100)]
BUGS, SEE ALSO and AUTHOR sections in the manpage

9 years agoIt's -config=file, not -config file
Wolfgang (Blub) Bumiller [Tue, 18 Dec 2012 14:27:12 +0000 (15:27 +0100)]
It's -config=file, not -config file

9 years agoAdded -config to usage and manpage, added a CONFIG section in the manpage describing...
Wolfgang (Blub) Bumiller [Tue, 18 Dec 2012 14:26:41 +0000 (15:26 +0100)]
Added -config to usage and manpage, added a CONFIG section in the manpage describing the ini file format, and added a short example to it

9 years agoAdd included -fs and -Ws to for each -std in the manpage
Wolfgang (Blub) Bumiller [Tue, 18 Dec 2012 13:21:01 +0000 (14:21 +0100)]
Add included -fs and -Ws to for each -std in the manpage

9 years agoMore jump removal
Wolfgang (Blub) Bumiller [Tue, 18 Dec 2012 12:40:59 +0000 (13:40 +0100)]
More jump removal

9 years ago*sigh*
Wolfgang (Blub) Bumiller [Tue, 18 Dec 2012 12:13:54 +0000 (13:13 +0100)]
*sigh*

9 years agovector components are floats, not vectors
Wolfgang (Blub) Bumiller [Tue, 18 Dec 2012 11:58:15 +0000 (12:58 +0100)]
vector components are floats, not vectors

9 years agoDon't generate IF/IFNOT with +1 offsets
Wolfgang (Blub) Bumiller [Tue, 18 Dec 2012 11:57:09 +0000 (12:57 +0100)]
Don't generate IF/IFNOT with +1 offsets

9 years ago-fsingle-vector-defs to disable _x,_y,_z generation
Wolfgang (Blub) Bumiller [Tue, 18 Dec 2012 11:47:48 +0000 (12:47 +0100)]
-fsingle-vector-defs to disable _x,_y,_z generation

9 years agoGenerate _x,_y,_z defs/fields
Wolfgang (Blub) Bumiller [Tue, 18 Dec 2012 11:41:38 +0000 (12:41 +0100)]
Generate _x,_y,_z defs/fields

9 years agoqcvm -pringdefs now prints [SAVE] next to globals with DEF_SAVEFLAG set
Wolfgang (Blub) Bumiller [Tue, 18 Dec 2012 11:41:29 +0000 (12:41 +0100)]
qcvm -pringdefs now prints [SAVE] next to globals with DEF_SAVEFLAG set

9 years agoDEF_SAVEGLOBAL flag is now applied on initialized non-constant globals, and is not...
Wolfgang (Blub) Bumiller [Tue, 18 Dec 2012 11:02:33 +0000 (12:02 +0100)]
DEF_SAVEGLOBAL flag is now applied on initialized non-constant globals, and is not applied on 'consts'

9 years agoDon't generate 'jump +1' instructions
Wolfgang (Blub) Bumiller [Tue, 18 Dec 2012 10:57:30 +0000 (11:57 +0100)]
Don't generate 'jump +1' instructions

9 years agoRenaming gmqcc.init since it's used by default if it exists and it makes the testsuit...
Wolfgang (Blub) Bumiller [Tue, 18 Dec 2012 10:48:03 +0000 (11:48 +0100)]
Renaming gmqcc.init since it's used by default if it exists and it makes the testsuite fail

9 years agoDon't generate AINSTR_END anymore, use INSTR_DONE
Wolfgang (Blub) Bumiller [Tue, 18 Dec 2012 10:46:26 +0000 (11:46 +0100)]
Don't generate AINSTR_END anymore, use INSTR_DONE

9 years agocmd_options -> opts_cmd_t to make testsuite and executor compile again
Wolfgang (Blub) Bumiller [Tue, 18 Dec 2012 10:46:15 +0000 (11:46 +0100)]
cmd_options -> opts_cmd_t to make testsuite and executor compile again

9 years agoAllow setting configuration file via commandline
Dale Weiler [Tue, 18 Dec 2012 05:22:23 +0000 (05:22 +0000)]
Allow setting configuration file via commandline

9 years agoAdd a template ini file for documentation
Dale Weiler [Tue, 18 Dec 2012 05:12:57 +0000 (05:12 +0000)]
Add a template ini file for documentation

9 years agoCleanups of compiler option configuration. Added ini/cfg parser system as well.
Dale Weiler [Tue, 18 Dec 2012 04:57:17 +0000 (04:57 +0000)]
Cleanups of compiler option configuration. Added ini/cfg parser system as well.