Commit graph

106 commits

Author SHA1 Message Date
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
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
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
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
fda4687ece STOREP also has the destination in OPB rather than OPC 2012-08-11 18:06:10 +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
062449ecd6 ir_block_create_store_op checks whether or not the storetype is an SSA value - do not do that for storeP instructions 2012-08-11 16:38:17 +02:00
Wolfgang (Blub) Bumiller
04db054466 -std=gmqcc should add a dot prefix to the globals for fields, the field itself doesn't use the dot prefix for its name though 2012-08-11 16:08:38 +02:00
Wolfgang (Blub) Bumiller
1559dedfd9 ir_value_set_field 2012-08-11 15:41:10 +02:00
Wolfgang (Blub) Bumiller
9b2e26a189 don't set globaladdr directly, use a setter, the setter will update the member values used for vector access too 2012-08-11 11:45:26 +02:00
Wolfgang (Blub) Bumiller
9c2e6a2334 Experimental ast_member to access vector members 2012-08-08 14:49:37 +02:00
Wolfgang Bumiller
03307a0903 ir_block_create_fieldaddress to pass on fieldtype from its input field 2012-07-28 21:59:34 +02:00
Wolfgang Bumiller
d05bee94d1 code_alloc_field to allocate entityfield data, ir now has ir_builder_create_field - so that globals and fields can be created separately - properly 2012-07-28 21:55:01 +02:00
Wolfgang Bumiller
b4225ea98a INSTR_NOT_* output to opC not opB... 2012-07-26 22:11:46 +02:00
Wolfgang Bumiller
e22d340e23 ast/ir support for unary instructions 2012-07-26 20:45:18 +02:00
Wolfgang Bumiller
9c2c62e82b use type_sizeof in another place where it wasn't 2012-07-22 12:20:06 +02:00
Wolfgang Bumiller
a4617d0e61 ast_function generates parameter locals, ir_function_create_local now allows adding parameters as long as no local variables have been added yet 2012-07-22 12:15:48 +02:00
Wolfgang Bumiller
43897f6e8f store_param storetype, parameter value list added to ast_function 2012-07-22 12:07:30 +02:00
Wolfgang Bumiller
fe8457f9ba ir_function_dump to print builtins as such 2012-07-19 18:06:37 +02:00
Wolfgang Bumiller
d4b2790deb Correct variable name for type_storep_instr 2012-07-16 12:27:58 +02:00
Wolfgang Bumiller
478d5ef5ad type_storep_instr: in theory we could use type_store_instr + INSTR_STOREP_F - INSTR_STORE_F, however, this won't work later when TYPE_INTEGER comes in since the _I instructions are at a seperate place 2012-07-16 10:24:35 +02:00
Wolfgang Bumiller
db62b7b3bc Replacing 2 switches to use type_store_instr instead 2012-07-16 10:19:04 +02:00
Wolfgang Bumiller
8270f37d3c use type_sizeof in some places where previously manual size checking has been done 2012-07-10 19:29:01 +02:00
Wolfgang Bumiller
3987509493 Do not actually return after generating a call, there are other isntructions following 2012-07-04 15:16:02 +02:00
Wolfgang Bumiller
904196e9bb Store the codeaddr of function's ir_values upon generation... 2012-07-04 15:05:09 +02:00
Wolfgang Bumiller
88f2238699 Return that the call was actually generated successfully if it was... 2012-07-04 15:02:55 +02:00
Wolfgang Bumiller
29091971d2 add AINSTR_END to the end of functions so the debug-printing knows when to end... 2012-07-04 13:29:26 +02:00
Wolfgang Bumiller
7245b675b2 Don't die on functions with no variables 2012-07-04 13:16:15 +02:00
Wolfgang Bumiller
ed24ea0cef creating and generating builtin functions, ast-macros for builtins, todo: params 2012-07-03 23:38:38 +02:00
Wolfgang Bumiller
e965ffb9df basic CALL translation: to be refined 2012-07-03 22:47:01 +02:00
Wolfgang Bumiller
e8cc27df5b type_store_instr[] to get an INSTR_STORE_x by type 2012-07-03 22:46:38 +02:00
Wolfgang (Blub) Bumiller
9e094ddeb5 create_call should use store_return as output type for now 2012-06-29 15:40:21 +02:00
Wolfgang (Blub) Bumiller
67b75055b2 adding another storage type: store_return; when generating a CALL, the generator can check the output value's storetype, and if it is NOT store_return, it needs to STORE_x the return value into the output value. 2012-06-29 14:37:12 +02:00
Wolfgang (Blub) Bumiller
856c9d16a5 generating an ir_value for an ir_function at creation now 2012-06-29 13:25:31 +02:00
Wolfgang (Blub) Bumiller
c1ea9cc409 function in the ast now MUST have an output type in their 'next' ast_expression pointer, the IR's outtype of functions is now filled 2012-06-29 13:07:19 +02:00
Wolfgang (Blub) Bumiller
67fa4ce07b ir_builder_create_call to take return type from the ir_value 2012-06-29 12:55:35 +02:00
Wolfgang (Blub) Bumiller
5348708da4 Fix a possibly uninitialized variable 2012-06-28 17:27:02 +02:00
Wolfgang (Blub) Bumiller
9e7143d934 Fixing GMQCC_SUPPRESS_EMPTY_BODY typo 2012-06-28 17:23:01 +02:00
Wolfgang (Blub) Bumiller
01b3f5ef58 ast_call_codegen, ir_block_create_call plus call-related functions, ir_value->outtype TODO: fill outtype in ir_value 2012-06-28 17:21:26 +02:00
Wolfgang (Blub) Bumiller
7363e88cd7 Added a comment about an idea on how to translate calls better. Gotta check some papers for better solutions later 2012-06-28 16:20:31 +02:00
Wolfgang (Blub) Bumiller
2073834b9a ir_instr can now store a list of parameters, will be used for CALLs 2012-06-28 15:50:51 +02:00
Wolfgang (Blub) Bumiller
60542f7df0 generation of COND and JUMP now works 2012-06-25 19:27:50 +02:00
Wolfgang (Blub) Bumiller
21b7005541 ir_function.allocated_locals now contains the number of locals a function requires, renamed code.slot to code.local, makes more sense 2012-06-25 17:43:10 +02:00
Wolfgang (Blub) Bumiller
d69fda7fa1 removing debug output 2012-06-25 17:37:50 +02:00
Wolfgang (Blub) Bumiller
214c063b3f value position allocation, fixing a possible endless loop in ir_values_overlap 2012-06-25 16:06:01 +02:00
Wolfgang (Blub) Bumiller
db7b9a4f96 ir_value_life_merge_into, to merge the liferange of one value into the range of another, testing in test_ir 2012-06-25 14:51:31 +02:00