Commit graph

2697 commits

Author SHA1 Message Date
Wolfgang (Blub) Bumiller
bf161e3919 data/fields.qc now tests fieldpointer parameters - requires -std=qcc to build 2012-08-16 16:39:43 +02:00
Wolfgang (Blub) Bumiller
84bc8f3662 CALL instructions need to offset the st++ too 2012-08-16 16:38:57 +02:00
Wolfgang (Blub) Bumiller
32c095b622 Fix a possible endless loop in ir_values_overlap 2012-08-16 16:38:36 +02:00
Wolfgang (Blub) Bumiller
1bc6d10898 entityfield tests 2012-08-16 16:29:41 +02:00
Wolfgang (Blub) Bumiller
9f951e36a9 prog_leavefunction needs to take the ++st into account - otherwise INSTR_RETURN ends up skipping the instruction after the calling INSTR_CALL 2012-08-16 16:28:59 +02:00
Wolfgang (Blub) Bumiller
54dcbc22bf NOT for entity, function and string - we're not constant-folding it for functions and entities right now 2012-08-16 16:24:47 +02:00
Wolfgang (Blub) Bumiller
31a8cd80c8 unary NOT operator for float and vector 2012-08-16 16:21:19 +02:00
Wolfgang (Blub) Bumiller
1a3a0014c5 even in non-qcc mode we need to search the variables for fields because of field-pointers 2012-08-16 16:21:09 +02:00
Wolfgang (Blub) Bumiller
7c731b70cf verbose error about unhandled operators 2012-08-16 16:07:00 +02:00
Wolfgang (Blub) Bumiller
7bc564f175 lexer: recognize != as operator when noops=false 2012-08-16 16:06:12 +02:00
Wolfgang (Blub) Bumiller
d81ef81246 Fix an error message 2012-08-16 15:59:09 +02:00
Wolfgang (Blub) Bumiller
98567e20f3 print a proper error message when a function lacks a body 2012-08-16 15:31:46 +02:00
Wolfgang (Blub) Bumiller
ec439d7880 Allow fieldpointer parameters in functions, allow function fields again 2012-08-16 15:27:06 +02:00
Wolfgang (Blub) Bumiller
1c81c27cee activate -Wfield-redeclared by default 2012-08-16 15:15:46 +02:00
Wolfgang (Blub) Bumiller
47243d0df1 allow redeclaration of fields, but warn about them 2012-08-16 15:14:39 +02:00
Wolfgang (Blub) Bumiller
5a383ac2b0 Reorganizing expression parsing to allow prefix-operators like unary minus 2012-08-16 15:11:03 +02:00
Wolfgang (Blub) Bumiller
c1bafe3d09 OP_PREFIX flag for ~ and ! 2012-08-16 14:24:12 +02:00
Wolfgang (Blub) Bumiller
c4730b405b unary - operator implemented, adding imm_vector_zero and imm_float_zero since those should be accessible quickly 2012-08-16 14:23:18 +02:00
Wolfgang (Blub) Bumiller
8dfba4db6d -_- file->filename 2012-08-16 14:05:04 +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
812cb5be64 sscanf -> sscanf_s on windows 2012-08-16 13:44:53 +02:00
Wolfgang (Blub) Bumiller
c3bcfe84b0 strcpy->memcpy in util_getline 2012-08-16 13:01:30 +02:00
Wolfgang (Blub) Bumiller
0c74f8fdb9 make the 'vector' type use qcfloat instead of float 2012-08-16 12:58:54 +02:00
Wolfgang (Blub) Bumiller
b3d4e406ec it's not undefined, stupid 2012-08-16 12:58:26 +02:00
Wolfgang (Blub) Bumiller
78971ab85a cast mem_a returns in util_getline 2012-08-16 12:38:00 +02:00
Wolfgang (Blub) Bumiller
ba1886ad31 add some missing casts to some mem_a 2012-08-16 12:34:28 +02:00
Wolfgang (Blub) Bumiller
d9da4d11b1 Shutup visual studio... 2012-08-16 12:32:01 +02:00
Wolfgang (Blub) Bumiller
61605636d1 Replacing execloop.h ... wish I could just use a copy of DP's execloop, I hate licenses 2012-08-16 12:10:24 +02:00
Wolfgang (Blub) Bumiller
2594274fe6 include stdio.h in exec.c for snprintf... 2012-08-16 11:36:28 +02:00
Wolfgang (Blub) Bumiller
470fc68b06 don't try to access function-local functions outside of functions... 2012-08-16 11:36:16 +02:00
Wolfgang (Blub) Bumiller
dd995a8ee2 test for constants 2012-08-16 11:34:11 +02:00
Wolfgang (Blub) Bumiller
2a7e7046d9 assigning values to constant globals 2012-08-16 11:33:29 +02:00
Wolfgang (Blub) Bumiller
9430332ae5 ir.c: strcmp->memcpy 2012-08-15 17:02:48 +02:00
Wolfgang (Blub) Bumiller
b7f9b20a2b strpcy->memcpy 2012-08-15 17:01:16 +02:00
Wolfgang (Blub) Bumiller
acdafc200d parser_finish needs to be called in progs.src mode as well 2012-08-15 17:01:09 +02:00
Wolfgang (Blub) Bumiller
42e2102839 remove MEM_VECTOR_INIT - the memset does it all, don't give a false sense of initialization since it wasn't complete anyway 2012-08-15 12:13:15 +02:00
Wolfgang (Blub) Bumiller
5b4c7a67a7 Merge branch 'master' of git://github.com/graphitemaster/gmqcc 2012-08-15 12:11:45 +02:00
Wolfgang (Blub) Bumiller
e5124ecf2f Fix memset on the parser... 2012-08-15 12:11:15 +02:00
Dale Weiler
d73100ad1b gmqcc now builds on visual studio 2012-08-14 19:06:53 -04:00
Wolfgang (Blub) Bumiller
f9c86d1d69 Adding another test qc file, for constant folding 2012-08-14 23:53:55 +02:00
Wolfgang (Blub) Bumiller
475cb97404 bit-and const-fold should use bitand not bitor 2012-08-14 23:52:57 +02:00
Wolfgang (Blub) Bumiller
c0ddb0908c constant folding for bit and logic ops, added some macros to shorten the code (by a lot) 2012-08-14 23:50:49 +02:00
Wolfgang (Blub) Bumiller
a5b3faae30 const folding for division 2012-08-14 23:43:08 +02:00
Wolfgang (Blub) Bumiller
b8d92dfa01 constant folding for +, - and * 2012-08-14 22:51:05 +02:00
Wolfgang (Blub) Bumiller
9ed9a0c669 get rid of more duplicate code 2012-08-14 22:34:20 +02:00
Wolfgang (Blub) Bumiller
de4fe00d2f Allow multiple fields to be declared using comma 2012-08-14 22:31:08 +02:00
Wolfgang (Blub) Bumiller
e9844d9abf vector fields now get _x, _y and _z too 2012-08-14 20:00:11 +02:00
Wolfgang (Blub) Bumiller
37c4644d85 progs.src mode added 2012-08-14 19:30:03 +02:00
Wolfgang (Blub) Bumiller
4c5c615f95 combine 2 ifs to shorten code a little 2012-08-14 17:48:22 +02:00