Commit graph

350 commits

Author SHA1 Message Date
Wolfgang Bumiller
81fd77da38 _MEM_... -> MEM_... 2012-07-27 19:02:18 +02:00
Wolfgang Bumiller
42168fde00 removing an old comment 2012-07-27 15:27:34 +02:00
Wolfgang Bumiller
2674982854 Moving parameters to from ast_value to ast_expression_common, it's part of the type after all 2012-07-27 15:22:39 +02:00
Wolfgang Bumiller
ab11808208 ast_block_set_type 2012-07-27 13:39:58 +02:00
Wolfgang Bumiller
1f8ece7f20 ast_return_new doesn't take an operator, we use INSTR_RETURN always, never INSTR_DONE for explicit returns 2012-07-26 23:23:47 +02:00
Wolfgang Bumiller
b4225ea98a INSTR_NOT_* output to opC not opB... 2012-07-26 22:11:46 +02:00
Wolfgang Bumiller
31ba1ec6c1 ast_return 2012-07-26 21:18:39 +02:00
Wolfgang Bumiller
e22d340e23 ast/ir support for unary instructions 2012-07-26 20:45:18 +02:00
Wolfgang Bumiller
4255b143b0 Removed params from ast_function again. It really is superfluous to copy them, just generate them from its ast_value's param list 2012-07-22 12:35:10 +02:00
Wolfgang Bumiller
d4c408b4bd fix a warning about a format string 2012-07-22 12:22:25 +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
fec07921a4 removing params vector from ast_function, params are stored in its ast_value only 2012-07-19 18:14:08 +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
bcd8138e43 Testing CALLs in test-ast 2012-07-04 15:05:16 +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
001420a7ef Storing ir_v for functions 2012-07-04 15:00:30 +02:00
Wolfgang Bumiller
d259e75dc4 ast_call needs to set its func member 2012-07-04 14:41:39 +02:00
Wolfgang Bumiller
812084ad72 ast_call's param vector functions 2012-07-04 14:39:58 +02:00
Wolfgang Bumiller
6bbcd5a343 ast-macros: MKCONSTSTRING, added sHello hello world string 2012-07-04 14:20:54 +02:00
Wolfgang Bumiller
2c1f08a209 Enabling the print builtin nodes, soon to be used to test CALL generation 2012-07-04 13:31:10 +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
97f34d9add fixed a typo in asm_instr[]: ES_FNC->EQ_FNC 2012-06-29 15:41:56 +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
e934e77cc5 ast_call node; codegen dummy 2012-06-28 16:15:51 +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
5500785d16 Deleting the manually written ast-test which was '#if 0'-ed out 2012-06-25 19:35:18 +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