Commit graph

707 commits

Author SHA1 Message Date
Wolfgang (Blub) Bumiller
3fd7a64b45 storing generated values and returning them early if they exist - will error when that doesn't make sense eg when trying to call codegen ast_ifthen more than once 2012-08-13 19:54:53 +02:00
Wolfgang (Blub) Bumiller
862b506dcd initialize ast_expression_common.outl/outr 2012-08-13 19:40:06 +02:00
Wolfgang (Blub) Bumiller
406a32bea6 prototypes for ast_binstore, and storing outl/outr in ast_expression_common, TODO: let ast_codegen functions reuse previous results so that binstore can call codegen twice 2012-08-13 19:39:35 +02:00
Wolfgang (Blub) Bumiller
69d9afbc69 while, for 2012-08-13 17:10:13 +02:00
Wolfgang (Blub) Bumiller
1c4a11f6fb factored out 'if' parsing code into a function, added 'while' parsing, and errors for more unsupported operators 2012-08-13 16:45:35 +02:00
Wolfgang (Blub) Bumiller
5ca3fed36a Even more operators 2012-08-13 15:33:32 +02:00
Wolfgang (Blub) Bumiller
e3b3c2efe3 Merge branch 'master' into blub/parser 2012-08-13 15:25:40 +02:00
Wolfgang (Blub) Bumiller
633561a730 type_eq_instr[], type_ne_instr[] 2012-08-13 15:25:14 +02:00
Wolfgang (Blub) Bumiller
d8890fda9e More operations 2012-08-13 15:24:55 +02:00
Wolfgang (Blub) Bumiller
5390b2d7c2 nicer error messages, bitand and bitor for floats allowed 2012-08-13 15:13:43 +02:00
Wolfgang (Blub) Bumiller
9f151e82df Check types on + and - operations 2012-08-13 15:09:27 +02:00
Wolfgang (Blub) Bumiller
5680c661a6 adding missing initializer for ir_value's member array 2012-08-12 21:56:53 +02:00
Wolfgang (Blub) Bumiller
c7cca404dc after a closing paren another operator has to be expected again 2012-08-12 20:21:21 +02:00
Wolfgang (Blub) Bumiller
fb8a9b3ccf some debug outputs which can be activated via a define, fixing a bug where the shunting yard tries to apply operators when there are none left 2012-08-12 20:13:14 +02:00
Wolfgang (Blub) Bumiller
f2bbffbd4b return an error code at exit after compile errors 2012-08-12 20:12:32 +02:00
Wolfgang (Blub) Bumiller
6806fd1e86 it's a member of entity, not of a field... 2012-08-12 19:29:18 +02:00
Wolfgang (Blub) Bumiller
6409bf455f -std=gmqcc way to handle fields by 'namespace' 2012-08-12 19:24:08 +02:00
Wolfgang (Blub) Bumiller
ae73332832 without -std=gmqcc fields are accessible anywhere where globals are 2012-08-12 19:02:52 +02:00
Wolfgang (Blub) Bumiller
fd1a850629 Recognize a dot as operator when not in 'no-ops' mode in the lexer 2012-08-12 19:00:44 +02:00
Wolfgang (Blub) Bumiller
437988c5b4 don't rewind local variables too far 2012-08-12 18:58:46 +02:00
Wolfgang (Blub) Bumiller
0c06f9f650 Merge branch 'master' into blub/parser 2012-08-12 18:45:22 +02:00
Wolfgang (Blub) Bumiller
60a5d8ab4f print error and return NULL when trying to create an invalid member access 2012-08-12 18:44:58 +02:00
Wolfgang (Blub) Bumiller
067294a470 Merge branch 'master' into blub/parser 2012-08-12 11:39:52 +02:00
Wolfgang (Blub) Bumiller
fc7d32a715 fixed: ast_member needs to allow type_vector instead of type_float as base 2012-08-12 11:39:43 +02:00
Wolfgang (Blub) Bumiller
b2f13ebc5e Merge branch 'master' into blub/bc3 2012-08-12 11:36:41 +02:00
Wolfgang (Blub) Bumiller
028543db8c ast_binary now keeps track of types 2012-08-12 11:36:28 +02:00
Wolfgang (Blub) Bumiller
5240aa8379 ast_istype should add the TYPE_ prefix 2012-08-12 11:36:15 +02:00
Wolfgang (Blub) Bumiller
7e3edea621 fixing the messup of MUL_FV and _VF being swapped - getting rid of additions that really have no place here (YET) (matrix/quaternion types) 2012-08-12 11:34:55 +02:00
Wolfgang (Blub) Bumiller
647582aeb4 merging master 2012-08-12 11:28:52 +02:00
Wolfgang (Blub) Bumiller
b968927074 default case for ir_value_dump's type switch 2012-08-12 11:28:18 +02:00
Wolfgang (Blub) Bumiller
c3cbda8b2b ir_instr_dump to print CALL+paramcountfor calls rather than CALL0 always 2012-08-12 10:19:33 +02:00
Wolfgang (Blub) Bumiller
93d372f222 TYPE_FUNCTION in ir_value_dump to show '(function)' rather than '(void)' 2012-08-12 10:15:27 +02:00
Wolfgang (Blub) Bumiller
2cba6f08fe indentation of ir debug dump functions 2012-08-12 10:14:22 +02:00
Wolfgang (Blub) Bumiller
d68d19dbfd Merging master to handle vector members, fields, and members of vector fields 2012-08-12 10:08:41 +02:00
Wolfgang (Blub) Bumiller
b20136e5f4 Working vector-field test 2012-08-11 22:14:55 +02:00
Wolfgang (Blub) Bumiller
8b168077c7 IR generation of vector-fields put the 'main' vector offset at the wrong position - fixed that 2012-08-11 22:14:45 +02:00
Wolfgang (Blub) Bumiller
56c23dc11e ast_member_new now fixed up for fields, ast_shallow_type added for creation of a type-only ast_expression 2012-08-11 22:14:16 +02:00
Wolfgang (Blub) Bumiller
060bddb922 same +1 offset in LOAD_V as STOREP fixed 2012-08-11 22:11:08 +02:00
Wolfgang (Blub) Bumiller
c94c36d68b testing writing to multiple fields, including a vector field 2012-08-11 21:18:46 +02:00
Wolfgang (Blub) Bumiller
b36fabe4d7 print builtin now prints all the passed strings, not just the first 2012-08-11 21:18:15 +02:00
Wolfgang (Blub) Bumiller
20831ddc6c fixing address check INSTR_STOREP_V in execloop - it kept us from writing to a vector when it was the last declared entityfield 2012-08-11 21:17:49 +02:00
Wolfgang (Blub) Bumiller
c31c59312b ir_block_create_store/p will now honor -fadjust-vector-fields by using STORE_V/STOREP_V instead of _FLD on vector-fields 2012-08-11 19:38:02 +02:00
Wolfgang (Blub) Bumiller
d4983b0b55 -fadjust-vector-fields 2012-08-11 19:35:08 +02:00
Wolfgang (Blub) Bumiller
bb1f38de5d also generate _y and _z data for fieldpointers 2012-08-11 19:34:58 +02:00
Wolfgang (Blub) Bumiller
228b3cca41 to support .vector's _y and _z we need to add the global-data pointing to _y and _z... 2012-08-11 19:08:23 +02:00
Wolfgang (Blub) Bumiller
3f234591da testcase for print(ftos(pawn.mema)) slightly changed, now not using a temporary location 2012-08-11 18:09:45 +02:00
Wolfgang (Blub) Bumiller
fda4687ece STOREP also has the destination in OPB rather than OPC 2012-08-11 18:06:10 +02:00
Wolfgang (Blub) Bumiller
91e3765a00 Generating fields using ir_builder_create_field 2012-08-11 18:05:56 +02:00
Wolfgang (Blub) Bumiller
5f2a775d41 generate address of store_return values created with ir_value_out properly 2012-08-11 17:53:41 +02:00
Wolfgang (Blub) Bumiller
cf04b5ed01 Need to keep prog->entities up to date when spawning entities 2012-08-11 17:35:55 +02:00