Wolfgang (Blub) Bumiller
|
314d45ff82
|
ast_local/global_codegen exposed through the header for now
|
2012-05-02 18:36:11 +02:00 |
|
Wolfgang (Blub) Bumiller
|
92a4431c86
|
ast_local_codegen - similar structure to global_codegen obviously...
|
2012-05-02 18:34:24 +02:00 |
|
Wolfgang (Blub) Bumiller
|
7a48377442
|
for ast_value_codegen this should be enough, since the actual generation happens in other functions
|
2012-05-02 18:25:59 +02:00 |
|
Dale Weiler
|
bc318bb68e
|
More function parsing for assembler
|
2012-05-02 11:48:46 -04:00 |
|
Dale Weiler
|
ca7ab3fd5f
|
assembly statement operand parsing. Now all we need is tables and state to generate some valid code.
|
2012-05-01 20:36:37 -04:00 |
|
Dale Weiler
|
eaaa1d15d8
|
test.qs update
|
2012-05-01 18:05:41 -04:00 |
|
Dale Weiler
|
629f6f1e63
|
Assembly statement parsing
|
2012-05-01 18:05:11 -04:00 |
|
Dale Weiler
|
d51718118a
|
Function parsing for the assembler now works, and adds the function to the function table for the code writer, quake and darkplaces can see it as well (since a def is also created)
|
2012-05-01 16:42:11 -04:00 |
|
Wolfgang Bumiller
|
1e0a688bc5
|
ast_ternary - contrary to ast_ifthen neither ontrue nor onfalse can be NULL, and it does output a value
|
2012-05-01 17:02:45 +02:00 |
|
Wolfgang Bumiller
|
5fe87e6a20
|
if-then-else AST node - this one is not for ternary expressions
|
2012-05-01 16:55:02 +02:00 |
|
Wolfgang Bumiller
|
bb7c59c648
|
Remove 2 unused variables in create_binop - unused since create_general_instruction
|
2012-05-01 16:45:15 +02:00 |
|
Wolfgang Bumiller
|
22cf7e0a4d
|
Fix missing 'int op;' in load_from_end, accidently removed it together with the other vars whil making it use general_instruction
|
2012-05-01 16:44:36 +02:00 |
|
Wolfgang Bumiller
|
8ab51544be
|
Comment about the form of instruction general_instr is used for
|
2012-05-01 16:29:29 +02:00 |
|
Wolfgang Bumiller
|
cde5444f24
|
create_phi -> store_value, not store_local... phi output cannot be overwritten
|
2012-05-01 16:27:36 +02:00 |
|
Wolfgang Bumiller
|
0337320054
|
Reuse general_instr to shorten create_binop
|
2012-05-01 16:26:25 +02:00 |
|
Wolfgang Bumiller
|
3c07ed15c0
|
expose create_general_instr in ir.h for now...
|
2012-05-01 16:24:16 +02:00 |
|
Wolfgang Bumiller
|
282edea8de
|
Get rid of duplicate code by adding an ir_block_create_general_instr
|
2012-05-01 16:23:45 +02:00 |
|
Wolfgang Bumiller
|
6ae8a69ab0
|
ir_block_create_fieldaddress - and fixing operand-numbering in load_from_ent
|
2012-05-01 16:20:44 +02:00 |
|
Wolfgang Bumiller
|
4fbcc57d49
|
Commenting on future lvalue use in ast_store
|
2012-05-01 15:15:19 +02:00 |
|
Wolfgang Bumiller
|
3a94e962ae
|
codegen gets an lvalue flag now
|
2012-05-01 15:14:44 +02:00 |
|
Wolfgang Bumiller
|
4c165cbd07
|
ast_instantiate should check return value of mem_a and return NULL on error
|
2012-05-01 15:09:17 +02:00 |
|
Wolfgang Bumiller
|
281bd8657a
|
ast_entfield node
|
2012-05-01 15:08:54 +02:00 |
|
Wolfgang Bumiller
|
eb21f1e733
|
alignment fix
|
2012-05-01 12:43:10 +02:00 |
|
Wolfgang Bumiller
|
45651cea8d
|
Implementation of liferange overlap test
|
2012-05-01 12:40:37 +02:00 |
|
Wolfgang Bumiller
|
ddbd460331
|
Check for TYPE_FIELD in load_from_ent
|
2012-05-01 12:14:07 +02:00 |
|
Wolfgang Bumiller
|
18969b1713
|
style fix
|
2012-05-01 12:13:04 +02:00 |
|
Wolfgang Bumiller
|
4c38566877
|
ir_block_create_load_from_ent - long name, I know, but we need to be able to load from pointers too at some point...
|
2012-05-01 12:12:53 +02:00 |
|
Wolfgang Bumiller
|
5f0800bef6
|
support TYPE_FIELD in stores; storeP to do a different kind of type checking
|
2012-05-01 12:05:47 +02:00 |
|
Wolfgang Bumiller
|
340daeabc4
|
ir_block_create_storep for storing through pointers, the IR does not implicitly create conversions for now when using pointers, but it could
|
2012-05-01 11:58:52 +02:00 |
|
Dale Weiler
|
95152c1f5c
|
VECTOR_PROT
|
2012-04-29 19:08:20 -04:00 |
|
Dale Weiler
|
f19cbe1400
|
Parse vector constants and add them to the constants table now for the assembler.
|
2012-04-29 19:03:06 -04:00 |
|
Dale Weiler
|
8156374a71
|
Invoke tests
|
2012-04-29 17:28:01 -04:00 |
|
Dale Weiler
|
453ca45176
|
added test_ast, test_ir, and test, as well as default, and all to the Makefile target list. Also made all tests C90 conformant code.
|
2012-04-29 16:54:41 -04:00 |
|
Dale Weiler
|
8c91adeb9f
|
Merge branch 'master' into ast-and-ir
|
2012-04-29 16:39:43 -04:00 |
|
Dale Weiler
|
1db21393cf
|
Remove Makefile_win (useless)
|
2012-04-29 16:38:38 -04:00 |
|
Wolfgang Bumiller
|
69d93409e5
|
params should be deleted, not unref()d
|
2012-04-29 19:45:14 +02:00 |
|
Dale Weiler
|
5d64001c36
|
64bit signed/unsigned integer support from the compiler if LONG_MAX != 0x7FFFFFFF
|
2012-04-29 12:09:30 -04:00 |
|
Dale Weiler
|
c3df4edebd
|
Remove trailing whitespace
|
2012-04-28 19:03:16 -04:00 |
|
Wolfgang Bumiller
|
5751e41993
|
After moving ast_instantiate up, the checks which return NULL now must mem_d(self)
|
2012-04-29 00:41:35 +02:00 |
|
Dale Weiler
|
674ae4b7da
|
Fix macro spacing
|
2012-04-28 18:56:44 -04:00 |
|
Dale Weiler
|
3e7a8c0e78
|
All code is now C89/C90 compat
|
2012-04-28 18:56:09 -04:00 |
|
Dale Weiler
|
206952b920
|
Merge branch 'master' into ast-and-ir
|
2012-04-28 16:45:02 -04:00 |
|
Dale Weiler
|
05966ee009
|
Remove trailing whitespace from everything
|
2012-04-28 16:43:39 -04:00 |
|
Dale Weiler
|
a5e1f40b85
|
gitattributes for whitespace
|
2012-04-28 16:40:03 -04:00 |
|
Dale Weiler
|
f697a5f999
|
lex.c -> lex_init s/lex->line = 0/lex->line = 1/
|
2012-04-28 16:31:30 -04:00 |
|
Dale Weiler
|
37ff28a3b5
|
This should fix line counting issues with the lexer
|
2012-04-28 16:30:44 -04:00 |
|
Dale Weiler
|
7a81848d88
|
Lexer fixes
|
2012-04-28 16:25:43 -04:00 |
|
Wolfgang Bumiller
|
6dff77aa95
|
ast and ir testers - to use: compile into gmqcc and execut the functions in main()
|
2012-04-28 21:42:21 +02:00 |
|
Dale Weiler
|
bdb238b705
|
param_argument cleanup
|
2012-04-28 15:36:39 -04:00 |
|
Dale Weiler
|
1b13c86cc9
|
param_argument cleanup
|
2012-04-28 15:20:13 -04:00 |
|