]>
git.rm.cloudns.org Git - xonotic/gmqcc.git/log
Wolfgang (Blub) Bumiller [Fri, 24 Aug 2012 21:02:27 +0000 (23:02 +0200)]
Add -Werror to the --help message
Wolfgang (Blub) Bumiller [Fri, 24 Aug 2012 21:01:18 +0000 (23:01 +0200)]
alignment fix
Wolfgang (Blub) Bumiller [Fri, 24 Aug 2012 21:00:47 +0000 (23:00 +0200)]
-benchmark option to take the time in a rather simple way
Wolfgang (Blub) Bumiller [Fri, 24 Aug 2012 20:58:07 +0000 (22:58 +0200)]
etos builtin...
Wolfgang (Blub) Bumiller [Fri, 24 Aug 2012 18:39:47 +0000 (20:39 +0200)]
ir_builder_delete now causes the ..._delete_quick functions to be used which will skip the removal of references: ir_value's won't have their read/write references removed by ir_instr_delete_quick
Wolfgang (Blub) Bumiller [Fri, 24 Aug 2012 17:52:06 +0000 (19:52 +0200)]
cache the IMMEDIATE string in the builder directly
Wolfgang (Blub) Bumiller [Fri, 24 Aug 2012 17:49:12 +0000 (19:49 +0200)]
copy the function context over to its ir_value as well
Wolfgang (Blub) Bumiller [Fri, 24 Aug 2012 17:44:29 +0000 (19:44 +0200)]
cache filenames as such instead of using code_cachedstring
Wolfgang (Blub) Bumiller [Fri, 24 Aug 2012 17:08:33 +0000 (19:08 +0200)]
not using cachedstring on generated string values anymore, it's not the IR's job
Wolfgang (Blub) Bumiller [Fri, 24 Aug 2012 16:23:35 +0000 (18:23 +0200)]
fixing token-reset in modelname
Wolfgang (Blub) Bumiller [Fri, 24 Aug 2012 16:14:39 +0000 (18:14 +0200)]
ir_value now checks if a name was specified
Wolfgang (Blub) Bumiller [Fri, 24 Aug 2012 16:10:41 +0000 (18:10 +0200)]
Not labeling temps/blocks if opts_dump isn't specified
Wolfgang (Blub) Bumiller [Fri, 24 Aug 2012 16:08:28 +0000 (18:08 +0200)]
better labelling in ast_function_labeling, this time the number is even printed forward rather than backward... ;)
Wolfgang (Blub) Bumiller [Fri, 24 Aug 2012 16:03:57 +0000 (18:03 +0200)]
ir: don't require a label on a block
Wolfgang (Blub) Bumiller [Fri, 24 Aug 2012 15:37:55 +0000 (17:37 +0200)]
the lexer now doesn't _allocate_ the token structure, also: the vector holding the token doesn't shrink so we have much fewer reallocations
Wolfgang (Blub) Bumiller [Fri, 24 Aug 2012 15:23:47 +0000 (17:23 +0200)]
parse_variable refactored, moved out the parsing of function bodies, easier memory handling
Wolfgang (Blub) Bumiller [Fri, 24 Aug 2012 13:34:48 +0000 (15:34 +0200)]
renaming some parser functions, mainly shortining things: parse_type just looks much better than parser_parse_type...
Wolfgang (Blub) Bumiller [Fri, 24 Aug 2012 13:27:41 +0000 (15:27 +0200)]
Adding static keyword to some more parser functions
Wolfgang (Blub) Bumiller [Fri, 24 Aug 2012 13:09:51 +0000 (15:09 +0200)]
create_vector_members sanitized
Wolfgang (Blub) Bumiller [Fri, 24 Aug 2012 13:06:30 +0000 (15:06 +0200)]
ir_value_life_merge_into: fix a possible underflow
Wolfgang (Blub) Bumiller [Thu, 23 Aug 2012 20:40:51 +0000 (22:40 +0200)]
Fixing handling of duplicate frame macros: 'continue' would continue the inner for, how could I miss that
Wolfgang (Blub) Bumiller [Thu, 23 Aug 2012 20:07:32 +0000 (22:07 +0200)]
slight change to ir_value_dump_life; fixing ir_value_life_merge_into: TODO test this seperately, all cases
Wolfgang (Blub) Bumiller [Thu, 23 Aug 2012 18:56:05 +0000 (20:56 +0200)]
use the expression's linenumber for the 'statement has no effect' warning rather than the current one because that one's usually the line below...
Wolfgang (Blub) Bumiller [Thu, 23 Aug 2012 18:54:24 +0000 (20:54 +0200)]
-Weffectless-statement now also triggers on effectless incrementors in for-loops, if an incrementor was specified
Wolfgang (Blub) Bumiller [Thu, 23 Aug 2012 18:52:39 +0000 (20:52 +0200)]
for the sake of testing: -Wnone
Wolfgang (Blub) Bumiller [Thu, 23 Aug 2012 18:52:09 +0000 (20:52 +0200)]
-Weffectless-statement, on by default, creates 'statement has no effect' warning
Wolfgang (Blub) Bumiller [Thu, 23 Aug 2012 18:48:51 +0000 (20:48 +0200)]
add 'X has been declared here:' too the too-few/many-parameters warning/error
Wolfgang (Blub) Bumiller [Thu, 23 Aug 2012 18:32:33 +0000 (20:32 +0200)]
Warn about unused globals too, not about functions or constants though
Wolfgang (Blub) Bumiller [Thu, 23 Aug 2012 18:25:54 +0000 (20:25 +0200)]
Warna bout unused variables - -Wunused-variable, on by default
Wolfgang (Blub) Bumiller [Thu, 23 Aug 2012 17:28:15 +0000 (19:28 +0200)]
fixing up prevoius commit: cannot reference the parser here
Wolfgang (Blub) Bumiller [Thu, 23 Aug 2012 17:20:50 +0000 (19:20 +0200)]
Make the lexer use the correct error-printing mechanism
Wolfgang (Blub) Bumiller [Thu, 23 Aug 2012 17:16:26 +0000 (19:16 +0200)]
-Wframe-macros, warn about duplicate frame macro definitions, on by default
Wolfgang (Blub) Bumiller [Thu, 23 Aug 2012 17:01:15 +0000 (19:01 +0200)]
the -std=qcc set of operators, still have to verify if it's the original
Wolfgang (Blub) Bumiller [Thu, 23 Aug 2012 16:40:10 +0000 (18:40 +0200)]
Add the empty globaldef/fielddef to the object, savegame skips that null-def when saving variables...
Wolfgang (Blub) Bumiller [Thu, 23 Aug 2012 16:32:11 +0000 (18:32 +0200)]
Don't add DEF_SAVEGLOBAL for locals actually...
Wolfgang (Blub) Bumiller [Thu, 23 Aug 2012 16:28:05 +0000 (18:28 +0200)]
Adding DEF_SAVEGLOBAL, marking globals as to-be-saved now, for real support of quicksaving
Wolfgang (Blub) Bumiller [Thu, 23 Aug 2012 15:22:13 +0000 (17:22 +0200)]
it's not the IR's job to fail when a local of the same name is created twice...
Wolfgang (Blub) Bumiller [Thu, 23 Aug 2012 15:16:07 +0000 (17:16 +0200)]
removing some extra newlines in ast error messages
Wolfgang (Blub) Bumiller [Thu, 23 Aug 2012 11:30:30 +0000 (13:30 +0200)]
fix: check if parsing a variable initializer failed
Wolfgang (Blub) Bumiller [Thu, 23 Aug 2012 11:21:14 +0000 (13:21 +0200)]
fixing mem-vector resize function
Wolfgang (Blub) Bumiller [Thu, 23 Aug 2012 10:42:41 +0000 (12:42 +0200)]
qcvm won't print checksum or entity field area size without the -info option anymore
Wolfgang (Blub) Bumiller [Thu, 23 Aug 2012 09:33:50 +0000 (11:33 +0200)]
-std=qcc now warns about variadic functions via -Wextensions
Wolfgang (Blub) Bumiller [Thu, 23 Aug 2012 09:30:25 +0000 (11:30 +0200)]
Removing print2 and print3 from data/parsing.qc, replaced by variadic print
Wolfgang (Blub) Bumiller [Thu, 23 Aug 2012 09:29:48 +0000 (11:29 +0200)]
Variadic functions: works for builtins, warns for implemenetd functions, -Wvariadic-function, on by default
Wolfgang (Blub) Bumiller [Thu, 23 Aug 2012 09:12:32 +0000 (11:12 +0200)]
for the lexer 3 dots now become TOKEN_DOTS
Wolfgang (Blub) Bumiller [Thu, 23 Aug 2012 08:35:03 +0000 (10:35 +0200)]
Possibility to call a main function with parameters by specifying -float, -vector or -string parameters to standalone qcvm
Wolfgang (Blub) Bumiller [Thu, 23 Aug 2012 08:24:17 +0000 (10:24 +0200)]
on linux we need -lm for sqrt
Wolfgang (Blub) Bumiller [Thu, 23 Aug 2012 08:18:59 +0000 (10:18 +0200)]
vtos should use the same quotes as we use in qc source
Wolfgang (Blub) Bumiller [Wed, 22 Aug 2012 16:51:32 +0000 (18:51 +0200)]
MUL_VF and MUL_FV get their special life-range handling
Wolfgang (Blub) Bumiller [Wed, 22 Aug 2012 16:34:48 +0000 (18:34 +0200)]
commenting on the quirks of MUL_VF and MUL_FV in gmqcc.h's instruction list
Wolfgang (Blub) Bumiller [Wed, 22 Aug 2012 16:27:49 +0000 (18:27 +0200)]
using %i for instruction opcode output is a little more consistent with the above data, so you can quickly spot if an operand is a local or something else
Wolfgang (Blub) Bumiller [Wed, 22 Aug 2012 15:49:25 +0000 (17:49 +0200)]
committing gmqcc.h for previous exec.c commit: qc_program gets .xflags
Wolfgang (Blub) Bumiller [Wed, 22 Aug 2012 15:41:24 +0000 (17:41 +0200)]
cut off too-long strings in disassembly
Wolfgang (Blub) Bumiller [Wed, 22 Aug 2012 15:37:22 +0000 (17:37 +0200)]
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
Wolfgang (Blub) Bumiller [Wed, 22 Aug 2012 15:32:57 +0000 (17:32 +0200)]
Nicer -trace output in qcvm/exec
Wolfgang (Blub) Bumiller [Wed, 22 Aug 2012 15:32:42 +0000 (17:32 +0200)]
it's SUB_V not DUB_V
Wolfgang (Blub) Bumiller [Wed, 22 Aug 2012 14:29:27 +0000 (16:29 +0200)]
fix the functiondef's .locals...
Wolfgang (Blub) Bumiller [Wed, 22 Aug 2012 14:20:26 +0000 (16:20 +0200)]
for liferange calc: the block we start from must tart with an empty set of living values
Wolfgang (Blub) Bumiller [Wed, 22 Aug 2012 14:19:35 +0000 (16:19 +0200)]
fixing some debug output
Wolfgang (Blub) Bumiller [Wed, 22 Aug 2012 14:04:06 +0000 (16:04 +0200)]
more info with -dump
Wolfgang (Blub) Bumiller [Wed, 22 Aug 2012 13:39:15 +0000 (15:39 +0200)]
qc_vlen, and adding numbers to all builtins for clarity
Wolfgang (Blub) Bumiller [Wed, 22 Aug 2012 13:35:28 +0000 (15:35 +0200)]
error builtin to bail out, pawn now _always_ nulls the new entity data
Wolfgang (Blub) Bumiller [Wed, 22 Aug 2012 13:24:24 +0000 (15:24 +0200)]
memvector resize needs to set _count as well
Wolfgang (Blub) Bumiller [Wed, 22 Aug 2012 13:18:11 +0000 (15:18 +0200)]
Mask out "MEM" debug messages when -memchk wasn't used
Wolfgang (Blub) Bumiller [Wed, 22 Aug 2012 13:04:37 +0000 (15:04 +0200)]
add ticks around vector strings created by vtos
Wolfgang (Blub) Bumiller [Wed, 22 Aug 2012 13:03:49 +0000 (15:03 +0200)]
vtos builtin
Wolfgang (Blub) Bumiller [Wed, 22 Aug 2012 12:20:28 +0000 (14:20 +0200)]
Have the parser generate immediates AFTER generating the globals for correct def layout
Wolfgang (Blub) Bumiller [Wed, 22 Aug 2012 12:15:49 +0000 (14:15 +0200)]
First generate the globals, then the fields, so the defs have the correct layout for quake
Wolfgang (Blub) Bumiller [Wed, 22 Aug 2012 12:15:35 +0000 (14:15 +0200)]
-printdefs for qcvm
Wolfgang (Blub) Bumiller [Wed, 22 Aug 2012 12:00:57 +0000 (14:00 +0200)]
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
Wolfgang (Blub) Bumiller [Wed, 22 Aug 2012 10:59:52 +0000 (12:59 +0200)]
Pop off all the locals after a function
Wolfgang (Blub) Bumiller [Wed, 22 Aug 2012 10:56:34 +0000 (12:56 +0200)]
some vector tests
Wolfgang (Blub) Bumiller [Wed, 22 Aug 2012 10:38:16 +0000 (12:38 +0200)]
make track=no adds -DNOTRACK WARNING: do not compile only parts of the code with that... it would cause major breakage
Wolfgang (Blub) Bumiller [Wed, 22 Aug 2012 10:37:06 +0000 (12:37 +0200)]
-Wimplicit-function-pointer, functions without bodies still have a global function variable and thus are function pointers, though this shouldn't really be used, thus -Wimplicit-function-pointer is on by default
Wolfgang (Blub) Bumiller [Wed, 22 Aug 2012 10:33:24 +0000 (12:33 +0200)]
Don't try to generate function code for functions without bodies
Wolfgang (Blub) Bumiller [Wed, 22 Aug 2012 09:49:46 +0000 (11:49 +0200)]
Removing -std=c90, which was just used to make sure things stayed portable
Wolfgang (Blub) Bumiller [Tue, 21 Aug 2012 16:25:41 +0000 (18:25 +0200)]
ast_ifthen_codegen: the merge-jumps for an if's branches need to be added to the endblock of the branch, not the beginning
Wolfgang (Blub) Bumiller [Tue, 21 Aug 2012 16:12:01 +0000 (18:12 +0200)]
Since we currently append AINSTR_END to the end of all functions for debugging purposes, and darkplaces complains when the very last statement isn't INSTR_DONE or INSTR_RETURN, we append an INSTR_DONE at the very end
Wolfgang (Blub) Bumiller [Tue, 21 Aug 2012 14:08:23 +0000 (16:08 +0200)]
Do not generate an OFS_RETURN variable, the IR doesn't need to know it as such
Wolfgang (Blub) Bumiller [Tue, 21 Aug 2012 14:05:10 +0000 (16:05 +0200)]
Fix getline usage in main.c, fix WARN_VOID_VARIABLE -> WARN_VOID_VARIABLES in main.c
Wolfgang (Blub) Bumiller [Tue, 21 Aug 2012 14:01:28 +0000 (16:01 +0200)]
TYPE_FUNCTION values which are not constant are now allowed to be generated, they are function pointers.
Wolfgang (Blub) Bumiller [Tue, 21 Aug 2012 13:50:53 +0000 (15:50 +0200)]
right... instead of checking for end_sys_globals twice, maybe ACTUALLY check for end_sys_fields too...
Wolfgang (Blub) Bumiller [Tue, 21 Aug 2012 13:49:53 +0000 (15:49 +0200)]
-Wvoid-variables, QC uses 2 special void-typed variables: end_sys_globals and .end_sys_fields. However if for some reason someone wants more, we still allow them to be code-generated, but by default warn about them by default
Wolfgang (Blub) Bumiller [Tue, 21 Aug 2012 10:03:34 +0000 (12:03 +0200)]
let test_ast compile again
Wolfgang (Blub) Bumiller [Tue, 21 Aug 2012 09:57:23 +0000 (11:57 +0200)]
uninit.qc test
Wolfgang (Blub) Bumiller [Tue, 21 Aug 2012 09:45:19 +0000 (11:45 +0200)]
nicer output for lost blocks in memory info
Wolfgang (Blub) Bumiller [Tue, 21 Aug 2012 09:41:01 +0000 (11:41 +0200)]
memblock_t is now a double-linked list so we can show where data was allocated which hasn't been freed
Wolfgang (Blub) Bumiller [Tue, 21 Aug 2012 09:21:05 +0000 (11:21 +0200)]
at last, the annoying missing ast_delete(typevar)
Wolfgang (Blub) Bumiller [Tue, 21 Aug 2012 09:18:40 +0000 (11:18 +0200)]
some more error situations where typevar wouldn't get freed
Wolfgang (Blub) Bumiller [Tue, 21 Aug 2012 08:33:37 +0000 (10:33 +0200)]
Fix some comment styles...
Wolfgang (Blub) Bumiller [Tue, 21 Aug 2012 08:30:53 +0000 (10:30 +0200)]
Fix output of util_memory_d
Wolfgang (Blub) Bumiller [Tue, 21 Aug 2012 08:18:55 +0000 (10:18 +0200)]
new warning: -Wlocal-constants
Wolfgang (Blub) Bumiller [Tue, 21 Aug 2012 08:08:17 +0000 (10:08 +0200)]
don't _move_ values out of immediates, it causes NULL strings to be code-generated
Wolfgang (Blub) Bumiller [Mon, 20 Aug 2012 16:27:27 +0000 (18:27 +0200)]
Since function prototypes now don't cause the function to become a constant, we cannot check for a constant in [frame,think] notations anymore
Wolfgang (Blub) Bumiller [Mon, 20 Aug 2012 16:15:31 +0000 (18:15 +0200)]
Better handling of EOF - encountering EOF in parser_next will not return false yet, this is a more elegant way...
Wolfgang (Blub) Bumiller [Mon, 20 Aug 2012 16:14:02 +0000 (18:14 +0200)]
better handlign of a too early error condition
Wolfgang (Blub) Bumiller [Mon, 20 Aug 2012 16:12:04 +0000 (18:12 +0200)]
Lexer now returns TOKEN_EOF only once and afterwards TOKEN_FATAL
Wolfgang (Blub) Bumiller [Mon, 20 Aug 2012 16:10:06 +0000 (18:10 +0200)]
Fix correction of parsiong of multiple variables: parse past the comma
Wolfgang (Blub) Bumiller [Mon, 20 Aug 2012 16:09:41 +0000 (18:09 +0200)]
Creating the ast_function for a function only when encountering its body, so if no body is specified it works like a function pointer - just like QC wants it
Wolfgang (Blub) Bumiller [Mon, 20 Aug 2012 15:59:19 +0000 (17:59 +0200)]
Corrected parsing of declarations of multiple variables