xonotic/gmqcc.git
9 years ago-Oglobal-temps
Wolfgang Bumiller [Wed, 26 Dec 2012 22:18:45 +0000 (23:18 +0100)]
-Oglobal-temps

9 years agofix -v option parsing in qcvm
Wolfgang Bumiller [Wed, 26 Dec 2012 21:49:50 +0000 (22:49 +0100)]
fix -v option parsing in qcvm

9 years agofactoring out temp-slot-assignment and using it for the declared locals too, makes...
Wolfgang Bumiller [Wed, 26 Dec 2012 21:09:54 +0000 (22:09 +0100)]
factoring out temp-slot-assignment and using it for the declared locals too, makes -Olocal-temps more effective

9 years agoSwitch over to LONGBIT
Wolfgang Bumiller [Wed, 26 Dec 2012 20:39:00 +0000 (21:39 +0100)]
Switch over to LONGBIT

9 years agoMerge pull request #74 from matthiaskrgr/PKGBUILD
Wolfgang Bumiller [Wed, 26 Dec 2012 20:31:25 +0000 (12:31 -0800)]
Merge pull request #74 from matthiaskrgr/PKGBUILD

add arch PKGBUILDs for git and release build.

9 years agoPKGBUILD: formatting
matthiaskrgr [Wed, 26 Dec 2012 19:21:41 +0000 (20:21 +0100)]
PKGBUILD: formatting

9 years agoadd PKGBUILD for release build.
matthiaskrgr [Wed, 26 Dec 2012 19:17:29 +0000 (20:17 +0100)]
add PKGBUILD for release build.

9 years agoPKGBUILD: license is MIT
matthiaskrgr [Wed, 26 Dec 2012 19:13:07 +0000 (20:13 +0100)]
PKGBUILD: license is MIT

9 years agofix uninitialized warnings in ir.c
Wolfgang Bumiller [Wed, 26 Dec 2012 19:06:30 +0000 (20:06 +0100)]
fix uninitialized warnings in ir.c

9 years agoPKGBUILD: install custom license file.
matthiaskrgr [Wed, 26 Dec 2012 19:07:51 +0000 (20:07 +0100)]
PKGBUILD: install custom license file.

9 years agoPKGBUILD: license is not GPL actually
matthiaskrgr [Wed, 26 Dec 2012 19:03:17 +0000 (20:03 +0100)]
PKGBUILD: license is not GPL actually

9 years agoFixing uninitialized warnings in parser.c
Wolfgang Bumiller [Wed, 26 Dec 2012 19:00:17 +0000 (20:00 +0100)]
Fixing uninitialized warnings in parser.c

9 years agoadding -fno-strict-aliasing
Wolfgang Bumiller [Wed, 26 Dec 2012 18:58:53 +0000 (19:58 +0100)]
adding -fno-strict-aliasing

9 years agoadd PKGBUILD for git build.
matthiaskrgr [Wed, 26 Dec 2012 18:58:40 +0000 (19:58 +0100)]
add PKGBUILD for git build.

9 years agomanpage: -dump, -dumpfin
Wolfgang Bumiller [Wed, 26 Dec 2012 18:37:55 +0000 (19:37 +0100)]
manpage: -dump, -dumpfin

9 years agoMerge pull request #73 from matthiaskrgr/master
Wolfgang Bumiller [Wed, 26 Dec 2012 18:21:31 +0000 (10:21 -0800)]
Merge pull request #73 from matthiaskrgr/master

fix some typos in todo file

9 years agoTODO: fix typos
matthiaskrgr [Wed, 26 Dec 2012 18:15:40 +0000 (19:15 +0100)]
TODO: fix typos

9 years agocounters for -Ocall-stores because we all love numbers
Wolfgang Bumiller [Wed, 26 Dec 2012 18:11:26 +0000 (19:11 +0100)]
counters for -Ocall-stores because we all love numbers

9 years agoDon't copy return values away from OFS_RETURN if they don't get locked.
Wolfgang Bumiller [Wed, 26 Dec 2012 17:33:16 +0000 (18:33 +0100)]
Don't copy return values away from OFS_RETURN if they don't get locked.

9 years agomanpage: -Ovoid-return
Wolfgang Bumiller [Wed, 26 Dec 2012 09:28:01 +0000 (10:28 +0100)]
manpage: -Ovoid-return

9 years agomanpage: added -v to the qcvm manpage
Wolfgang Bumiller [Wed, 26 Dec 2012 09:26:04 +0000 (10:26 +0100)]
manpage: added -v to the qcvm manpage

9 years ago-Ovoid-return - the last INSTR_RETURN of a void functions is replaced by INSTR_DONE...
Wolfgang Bumiller [Wed, 26 Dec 2012 09:24:33 +0000 (10:24 +0100)]
-Ovoid-return - the last INSTR_RETURN of a void functions is replaced by INSTR_DONE to reduce the instruction count

9 years agoverbose switches for the qcvm; makes -printfuns find the instruction-count of a funct...
Wolfgang Bumiller [Wed, 26 Dec 2012 09:23:45 +0000 (10:23 +0100)]
verbose switches for the qcvm; makes -printfuns find the instruction-count of a function and print that too

9 years agoActually generate the vector member ir_values in ir_function_finalize, since ir_build...
Wolfgang Bumiller [Tue, 25 Dec 2012 22:51:29 +0000 (23:51 +0100)]
Actually generate the vector member ir_values in ir_function_finalize, since ir_builder_gen_global is too late / happens after life ranges; this should fix -Ooverlap-locals

9 years agomanpage: -Ocall-stores
Wolfgang Bumiller [Tue, 25 Dec 2012 22:28:09 +0000 (23:28 +0100)]
manpage: -Ocall-stores

9 years ago-Ocall-stores as part of -O1: instead of having CALL instructions issue STOREs for...
Wolfgang Bumiller [Tue, 25 Dec 2012 22:25:59 +0000 (23:25 +0100)]
-Ocall-stores as part of -O1: instead of having CALL instructions issue STOREs for every parameter, use the newly introduced 'lock' flag to make the operations generating the call's parameters generate them right into the OFS_PARM if there's no interfering CALL in between

9 years agodo the locking before processing the call-reads otherwise all the call's parameters...
Wolfgang Bumiller [Tue, 25 Dec 2012 22:24:31 +0000 (23:24 +0100)]
do the locking before processing the call-reads otherwise all the call's parameters get locked as well

9 years agoliferange calc now sets the 'locked' flag on values when reaching a CALL
Wolfgang Bumiller [Tue, 25 Dec 2012 20:03:26 +0000 (21:03 +0100)]
liferange calc now sets the 'locked' flag on values when reaching a CALL

9 years agoThe very aggressive -Ooverlap-strings
Wolfgang Bumiller [Tue, 25 Dec 2012 19:38:05 +0000 (20:38 +0100)]
The very aggressive -Ooverlap-strings

9 years agoEnsure that the members[] array is filled for vector types so the liferange function...
Wolfgang Bumiller [Mon, 24 Dec 2012 11:52:15 +0000 (12:52 +0100)]
Ensure that the members[] array is filled for vector types so the liferange function can use all of them

9 years agoTests for the previous vector-liferange change
Wolfgang Bumiller [Mon, 24 Dec 2012 11:43:16 +0000 (12:43 +0100)]
Tests for the previous vector-liferange change

9 years agoNow this should deal with vector life ranges more correctly.
Wolfgang Bumiller [Mon, 24 Dec 2012 11:43:05 +0000 (12:43 +0100)]
Now this should deal with vector life ranges more correctly.

9 years agoprint an error when static is used in global scope - this is currently not being...
Wolfgang Bumiller [Mon, 24 Dec 2012 10:38:33 +0000 (11:38 +0100)]
print an error when static is used in global scope - this is currently not being handled as expected

9 years agoAdded the 'static' keyword.
Wolfgang Bumiller [Mon, 24 Dec 2012 10:30:58 +0000 (11:30 +0100)]
Added the 'static' keyword.

Implements #71

9 years agomanpage: -q, --quiet
Wolfgang Bumiller [Mon, 24 Dec 2012 10:03:34 +0000 (11:03 +0100)]
manpage: -q, --quiet

9 years agomanpage: -fftepp-predefs
Wolfgang Bumiller [Mon, 24 Dec 2012 10:01:24 +0000 (11:01 +0100)]
manpage: -fftepp-predefs

9 years ago-q, --quiet option
Wolfgang Bumiller [Mon, 24 Dec 2012 09:53:51 +0000 (10:53 +0100)]
-q, --quiet option

9 years agoone too many zeros
Dale Weiler [Mon, 24 Dec 2012 08:19:57 +0000 (08:19 +0000)]
one too many zeros

9 years agoAdded my awesome MT1997 PRNG, and use it instead of stdio's rand()/srand() .. which...
Dale Weiler [Mon, 24 Dec 2012 01:43:27 +0000 (01:43 +0000)]
Added my awesome MT1997 PRNG, and use it instead of stdio's rand()/srand() .. which are implementation specific .. and simply unsafe (for example one of the compilers at work simply has it's standard library implementation of rand() return 0 always (which is perfectly conformant)).

9 years agoAdded ftepp predefs flag (ability to turn on/off predefs) disabled by default (even...
Dale Weiler [Mon, 24 Dec 2012 00:21:55 +0000 (00:21 +0000)]
Added ftepp predefs flag (ability to turn on/off predefs) disabled by default (even with -ftepp), enabled with -E, to enable use -fftepp-predefs.

9 years agoImplemented __FILE__, __LINE__, __RANDOM__, __RANDOM_LAST__, __COUNTER__ and __COUNTE...
Dale Weiler [Mon, 24 Dec 2012 00:12:24 +0000 (00:12 +0000)]
Implemented __FILE__, __LINE__, __RANDOM__, __RANDOM_LAST__, __COUNTER__ and __COUNTER_LAST__ as predefined macros.  __FUNCTION__ is not implemented yet due to the overall complexity in making it constant.

9 years ago-Ostrip-constant-names
Wolfgang Bumiller [Sun, 23 Dec 2012 21:58:46 +0000 (22:58 +0100)]
-Ostrip-constant-names

9 years agocode_genstring now caches strings, no need for code_cachestring
Wolfgang Bumiller [Sun, 23 Dec 2012 13:59:09 +0000 (14:59 +0100)]
code_genstring now caches strings, no need for code_cachestring

9 years ago-Olocaltemps -> -Olocal-temps for consistency; added manpage entry; removed leftover...
Wolfgang Bumiller [Sun, 23 Dec 2012 20:39:04 +0000 (21:39 +0100)]
-Olocaltemps -> -Olocal-temps for consistency; added manpage entry; removed leftover manpage entry for -foverlap-locals; -Olocal-temps moved from -O1 to -O3 due to stability concerns

9 years agorevert 3ef30e850da5e5
Wolfgang Bumiller [Sun, 23 Dec 2012 20:34:04 +0000 (21:34 +0100)]
revert 3ef30e850da5e5

9 years agoRemove ir_block_create_{add,sub,mul,div}, they're not used; STOREP instructions don...
Wolfgang Bumiller [Sun, 23 Dec 2012 20:29:15 +0000 (21:29 +0100)]
Remove ir_block_create_{add,sub,mul,div}, they're not used; STOREP instructions don't themselves to their target pointer's 'writes' list, but 'reads' list instead

9 years agoStart instruction numbering at 1 and make parameters live at 0
Wolfgang Bumiller [Sun, 23 Dec 2012 20:20:16 +0000 (21:20 +0100)]
Start instruction numbering at 1 and make parameters live at 0

9 years agoDon't store off CALL results if they're never read
Wolfgang Bumiller [Sun, 23 Dec 2012 20:11:56 +0000 (21:11 +0100)]
Don't store off CALL results if they're never read

9 years agoEven safer vector macros
Wolfgang Bumiller [Sun, 23 Dec 2012 19:55:15 +0000 (20:55 +0100)]
Even safer vector macros

9 years agoLife Ranges: First deal with all writes, then with all reads, since writes will remov...
Wolfgang Bumiller [Sun, 23 Dec 2012 19:50:21 +0000 (20:50 +0100)]
Life Ranges: First deal with all writes, then with all reads, since writes will remove values from the Living set

9 years agoFixing vector macros
Wolfgang Bumiller [Sun, 23 Dec 2012 19:49:50 +0000 (20:49 +0100)]
Fixing vector macros

9 years agoadded -disasm-func to the qcvm
Wolfgang Bumiller [Sun, 23 Dec 2012 19:45:43 +0000 (20:45 +0100)]
added -disasm-func to the qcvm

9 years agostrcmp and strncmp builtins
Wolfgang Bumiller [Sun, 23 Dec 2012 18:22:38 +0000 (19:22 +0100)]
strcmp and strncmp builtins

9 years agoAdding strcat builtin to qcvm
Wolfgang Bumiller [Sun, 23 Dec 2012 18:05:39 +0000 (19:05 +0100)]
Adding strcat builtin to qcvm

9 years agodon't optimize out NOT_S instructions for COND
Wolfgang Bumiller [Sun, 23 Dec 2012 16:51:01 +0000 (17:51 +0100)]
don't optimize out NOT_S instructions for COND

9 years agomanpage: remove the MUL_FV/VF section, it wouldn't be legal code anyway
Wolfgang Bumiller [Sun, 23 Dec 2012 16:50:44 +0000 (17:50 +0100)]
manpage: remove the MUL_FV/VF section, it wouldn't be legal code anyway

9 years agomanpage: optimization section
Wolfgang Bumiller [Sun, 23 Dec 2012 16:46:40 +0000 (17:46 +0100)]
manpage: optimization section

9 years agoMask overlap-locals by -Ooverlap-locals, and count (the amount of overlapped functions)
Wolfgang Bumiller [Sun, 23 Dec 2012 16:40:56 +0000 (17:40 +0100)]
Mask overlap-locals by -Ooverlap-locals, and count (the amount of overlapped functions)

9 years agoTry generating the function-locals in a later pass; with the option to overlap them.
Wolfgang Bumiller [Sun, 23 Dec 2012 16:32:39 +0000 (17:32 +0100)]
Try generating the function-locals in a later pass; with the option to overlap them.

9 years agoFix a nasty bug in the executor; and make null-strings be shown as (null) in the...
Wolfgang Bumiller [Sun, 23 Dec 2012 16:32:14 +0000 (17:32 +0100)]
Fix a nasty bug in the executor; and make null-strings be shown as (null) in the trace output

9 years agoAdd -Ooverlap-locals to -O3
Wolfgang Bumiller [Sun, 23 Dec 2012 15:31:21 +0000 (16:31 +0100)]
Add -Ooverlap-locals to -O3

9 years agoremember the maximum amount of required function-locals
Wolfgang Bumiller [Sun, 23 Dec 2012 15:31:01 +0000 (16:31 +0100)]
remember the maximum amount of required function-locals

9 years agoir_function now has a flags field - flags are: IR_FLAG_HAS_{ARRAYS,UNINITIALIZED...
Wolfgang Bumiller [Sun, 23 Dec 2012 15:21:38 +0000 (16:21 +0100)]
ir_function now has a flags field - flags are: IR_FLAG_HAS_{ARRAYS,UNINITIALIZED,GOTO}

9 years agoutil_swa_* + GMQCC_INLINE
Wolfgang Bumiller [Sun, 23 Dec 2012 12:11:20 +0000 (13:11 +0100)]
util_swa_* + GMQCC_INLINE

9 years agoDon't generate defs for locals or parameters unless using -g
Wolfgang Bumiller [Sun, 23 Dec 2012 11:22:27 +0000 (12:22 +0100)]
Don't generate defs for locals or parameters unless using -g

9 years agoutf8lib.c -> utf8.c - I hope windows 8 allows this filename :P
Wolfgang Bumiller [Sun, 23 Dec 2012 09:44:03 +0000 (10:44 +0100)]
utf8lib.c -> utf8.c - I hope windows 8 allows this filename :P

9 years agolicense header
Wolfgang Bumiller [Sun, 23 Dec 2012 09:35:21 +0000 (10:35 +0100)]
license header

9 years agoUchar -> uchar_t for consistency
Wolfgang Bumiller [Sun, 23 Dec 2012 09:34:29 +0000 (10:34 +0100)]
Uchar -> uchar_t for consistency

9 years agomanpage: -futf8
Wolfgang Bumiller [Sat, 22 Dec 2012 21:48:41 +0000 (22:48 +0100)]
manpage: -futf8

9 years agoutf8 tests
Wolfgang Bumiller [Sat, 22 Dec 2012 21:46:42 +0000 (22:46 +0100)]
utf8 tests

9 years agoBetter error message for -futf8
Wolfgang Bumiller [Sat, 22 Dec 2012 21:44:14 +0000 (22:44 +0100)]
Better error message for -futf8

9 years agofix and speed up u8_analyze for our purposes
Wolfgang Bumiller [Sat, 22 Dec 2012 21:43:14 +0000 (22:43 +0100)]
fix and speed up u8_analyze for our purposes

9 years ago-futf8 implementation
Wolfgang Bumiller [Sat, 22 Dec 2012 21:34:57 +0000 (22:34 +0100)]
-futf8 implementation

9 years agou8_analyze: return false on any invalid character, we do not allow invalid/overlong...
Wolfgang Bumiller [Sat, 22 Dec 2012 21:31:10 +0000 (22:31 +0100)]
u8_analyze: return false on any invalid character, we do not allow invalid/overlong characters in code at all

9 years agoImporting utf8lib
Wolfgang Bumiller [Fri, 21 Dec 2012 11:18:57 +0000 (12:18 +0100)]
Importing utf8lib

9 years agoBump 0.2 -> 0.3
Dale Weiler [Sun, 23 Dec 2012 09:18:17 +0000 (09:18 +0000)]
Bump 0.2 -> 0.3

9 years agoDon't generate vector defs if the vector's name starts with a # because that's an... 0.2
Wolfgang Bumiller [Sun, 23 Dec 2012 09:14:25 +0000 (10:14 +0100)]
Don't generate vector defs if the vector's name starts with a # because that's an 'IMMEDIATE'

9 years agoWhitespace
Dale Weiler [Sun, 23 Dec 2012 09:10:31 +0000 (09:10 +0000)]
Whitespace

9 years agoRevert "Whitespace fixes"
Dale Weiler [Sun, 23 Dec 2012 09:10:07 +0000 (09:10 +0000)]
Revert "Whitespace fixes"

This reverts commit 4580dcf1eacfce517e95b654b73d6e72db366273.

9 years agoWhitespace fixes
Dale Weiler [Sun, 23 Dec 2012 08:42:53 +0000 (08:42 +0000)]
Whitespace fixes

9 years agoLies ... damned lies, all lies I tell you ... copy-pasta lies!
Dale Weiler [Sun, 23 Dec 2012 08:17:05 +0000 (08:17 +0000)]
Lies ... damned lies, all lies I tell you ... copy-pasta lies!

9 years agoActually fix the segfault this time
Dale Weiler [Sun, 23 Dec 2012 08:08:05 +0000 (08:08 +0000)]
Actually fix the segfault this time

9 years agocon_default_out for opts.pp_only (removes recently added TODO .. and fixes a segfault)
Dale Weiler [Sun, 23 Dec 2012 07:57:06 +0000 (07:57 +0000)]
con_default_out for opts.pp_only (removes recently added TODO .. and fixes a segfault)

9 years agoMake compiler and virtual-machine compile as C++ code, also removed gmqcc_voidptr...
Dale Weiler [Sun, 23 Dec 2012 07:51:19 +0000 (07:51 +0000)]
Make compiler and virtual-machine compile as C++ code, also removed gmqcc_voidptr hack.

9 years agoRemove parser_compile_string_len, and make parser_compiler_string take an additional...
Dale Weiler [Sun, 23 Dec 2012 07:22:15 +0000 (07:22 +0000)]
Remove parser_compile_string_len, and make parser_compiler_string take an additional length argument.

9 years agofix comments
Dale Weiler [Sun, 23 Dec 2012 07:19:49 +0000 (07:19 +0000)]
fix comments

9 years agofixes, and removed a #pragma warning(disable ...) in MSVC .. thanks to the FILE wrapp...
Dale Weiler [Sun, 23 Dec 2012 07:18:00 +0000 (07:18 +0000)]
fixes, and removed a #pragma warning(disable ...) in MSVC .. thanks to the FILE wrapping interface.

9 years agoCleanup flexible array / vector system
Dale Weiler [Sun, 23 Dec 2012 07:14:16 +0000 (07:14 +0000)]
Cleanup flexible array / vector system

9 years agoMerge branch 'master' of github.com:graphitemaster/gmqcc
Dale Weiler [Sun, 23 Dec 2012 06:06:57 +0000 (06:06 +0000)]
Merge branch 'master' of github.com:graphitemaster/gmqcc

9 years agoWrapper around FILE to take advantage of MSVC "secure" CRT. We don't actually defend...
Dale Weiler [Sun, 23 Dec 2012 06:05:22 +0000 (06:05 +0000)]
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)

9 years agoMore stuff for qcvm -info
Wolfgang Bumiller [Sat, 22 Dec 2012 22:30:52 +0000 (23:30 +0100)]
More stuff for qcvm -info

9 years agoMakefile: lexer.o depends on lexer.h
Wolfgang Bumiller [Sat, 22 Dec 2012 19:43:59 +0000 (20:43 +0100)]
Makefile: lexer.o depends on lexer.h

9 years agoguard ]] with lex->flags.noops
Wolfgang Bumiller [Sat, 22 Dec 2012 19:41:02 +0000 (20:41 +0100)]
guard ]] with lex->flags.noops

9 years agofix -fshort-logic to cast to true boolean values
Wolfgang Bumiller [Sat, 22 Dec 2012 19:05:15 +0000 (20:05 +0100)]
fix -fshort-logic to cast to true boolean values

9 years agomanpage: capital section headings, updated -fcorrect-logic description, added -Wunkno...
Wolfgang Bumiller [Sat, 22 Dec 2012 17:19:51 +0000 (18:19 +0100)]
manpage: capital section headings, updated -fcorrect-logic description, added -Wunknown-attribute

9 years ago-Wunknown-attribute; and don't error on unknown attributes
Wolfgang Bumiller [Sat, 22 Dec 2012 17:16:41 +0000 (18:16 +0100)]
-Wunknown-attribute; and don't error on unknown attributes

9 years ago'noreturn' is now an attribute and parsed as [[noreturn]]
Wolfgang Bumiller [Sat, 22 Dec 2012 17:09:33 +0000 (18:09 +0100)]
'noreturn' is now an attribute and parsed as [[noreturn]]

9 years agoproperly fill the token string for TOKEN_ATTRIBUTE_*
Wolfgang Bumiller [Sat, 22 Dec 2012 17:09:17 +0000 (18:09 +0100)]
properly fill the token string for TOKEN_ATTRIBUTE_*

9 years ago is now no keyword anymore
Wolfgang Bumiller [Sat, 22 Dec 2012 17:03:43 +0000 (18:03 +0100)]
 is now no keyword anymore

9 years agoLexer: [[ and ]] are now TOKEN_ATTRIBUTE_{OPEN,CLOSE}
Wolfgang Bumiller [Sat, 22 Dec 2012 17:00:51 +0000 (18:00 +0100)]
Lexer: [[ and ]] are now TOKEN_ATTRIBUTE_{OPEN,CLOSE}