1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2024-11-25 05:33:29 +00:00
Commit Graph

285 Commits

Author SHA1 Message Date
jespergravgaard
122cef4e30 Better label naming when creating intermediate labels 2017-07-21 12:18:05 +02:00
jespergravgaard
88c7ed453a Better label naming when creating intermediate labels 2017-07-21 11:32:41 +02:00
jespergravgaard
4c0a9cd241 Removed cast calls to getSymbol() 2017-07-21 10:49:28 +02:00
jespergravgaard
6ef3af4fdf ICL Programs are now JSON serializable 2017-07-21 01:53:38 +02:00
jespergravgaard
d38c26eeb5 added a few toString()s 2017-07-20 10:14:22 +02:00
jespergravgaard
00463cd72f Moved all ref creation to getRef() 2017-07-20 10:02:25 +02:00
Jesper Gravgaard
de88808c5f Replaced all program labels with labelrefs ans procedures with procedurerefs. 2017-07-20 09:26:06 +02:00
Jesper Gravgaard
e6d09187e3 Added typed and untyped print functions everywhere. Now getting the same output as the old compilation! 2017-07-19 13:21:16 +02:00
Jesper Gravgaard
6e087e9a1c Now serializing all symbol types 2017-07-18 23:13:24 +02:00
Jesper Gravgaard
819c904419 Implementing JSON serialization of ICL 2017-07-18 22:49:25 +02:00
Jesper Gravgaard
1b0b81baf2 Restructured code in new packages 2017-07-18 18:12:11 +02:00
Jesper Gravgaard
92747454c7 Restructured code in new packages 2017-07-18 18:10:12 +02:00
Jesper Gravgaard
32a2c9eb2b Optimized registers for fibmem. 2017-07-18 16:46:52 +02:00
Jesper Gravgaard
a7e0e2b1d0 Added main method to flipper. Fixed a few bugs in compiler. 2017-07-16 11:09:32 +02:00
Jesper Gravgaard
f6eeb5ff83 Removed comments from ASM output 2017-07-16 09:41:27 +02:00
Jesper Gravgaard
67b4257ad9 Added a second test 2017-07-15 23:32:25 +02:00
Jesper Gravgaard
0116c9e21d Added full compile log to test 2017-07-15 23:26:45 +02:00
Jesper Gravgaard
8e59603418 made map linked for predictability 2017-07-15 22:21:07 +02:00
Jesper Gravgaard
81ba13c9c3 Implemented test comparing reference output to actual compilation output 2017-07-15 22:00:02 +02:00
Jesper Gravgaard
a908e4f1ca Proper implementation of pre-modifiers (++/--) 2017-07-14 12:13:16 +02:00
Jesper Gravgaard
1743e4f9d0 Proper handling of post modifiers 2017-07-14 01:59:04 +02:00
Jesper Gravgaard
1dfbcd1ca4 Working on predictability in output 2017-07-14 00:25:25 +02:00
Jesper Gravgaard
5c1aa7a2e7 Working on predictability in output 2017-07-14 00:15:33 +02:00
Jesper Gravgaard
20cb48b07d Working on predictability in output 2017-07-14 00:11:57 +02:00
Jesper Gravgaard
e271abb8a0 Using ++/-- post increment/decrement operators. 2017-07-13 23:48:25 +02:00
Jesper Gravgaard
ed7a4dded9 Added ++/-- post increment/decrement operators. 2017-07-13 23:40:17 +02:00
Jesper Gravgaard
de8e5139cc Added a phase 2 block assertion checking that the program always contains all referenced blocks. 2017-07-13 22:03:52 +02:00
Jesper Gravgaard
56cf4c80ef Added a phase 2 symbol assertion checking that the program always matches the symbol table. 2017-07-13 21:35:43 +02:00
Jesper Gravgaard
2e90516f34 Fixed problem with nested do loops being mixed up during empty block culling. Improved flipper implementation. 2017-07-13 20:41:16 +02:00
Jesper Gravgaard
d41f762a8b Completed KickC implementation of flipper 2017-07-13 00:50:53 +02:00
Jesper Gravgaard
8d7dfa8a8d Implemented most of flipper in KickC 2017-07-13 00:13:26 +02:00
Jesper Gravgaard
b25be31ba1 Implemented Control flow Graph Sequence Planner. Implemented working flipper. 2017-07-11 01:06:13 +02:00
jespergravgaard
01a26b4710 Implemented usage counting in sub-constant elimination. Added some more fragments 2017-06-17 11:09:59 +02:00
jespergravgaard
e5f1f7f387 Added support for multiple procs 2017-06-14 21:54:28 +02:00
jespergravgaard
5254d7d3a6 Fixed for callsum 2017-06-13 23:11:56 +02:00
jespergravgaard
790feb1dcc New alias elimination implementation. Optimized register allocation for test. 2017-06-13 22:48:03 +02:00
jespergravgaard
a5204acf79 Merge remote-tracking branch 'gitlab/master' 2017-06-13 19:48:14 +02:00
jespergravgaard
872c4cfc28 aliasing works on return statements 2017-06-13 19:48:09 +02:00
Jesper Gravgaard
fb3b083938 Working on parameter passing & return values 2017-06-13 07:18:07 +02:00
jespergravgaard
3b2cc5cde1 Refactoring control flow graph to enable proc calls. Still need to handle return values properly. 2017-06-11 23:36:05 +02:00
jespergravgaard
12bff79433 Control Flow Graph now handles procs & sub sprocs 2017-06-11 19:15:09 +02:00
jespergravgaard
40d44da2fc Added proc/endproc statements 2017-06-05 16:17:08 +02:00
jespergravgaard
03ee43c3b7 Looking at function calls 2017-06-05 16:01:50 +02:00
jespergravgaard
2dedf8263b Looking at function calls 2017-06-05 00:38:50 +02:00
jespergravgaard
4aa00d4536 Added special ALU register support 2017-06-04 00:45:40 +02:00
jespergravgaard
357bbecade Added *idx operator for array indexing. 2017-06-03 23:49:06 +02:00
jespergravgaard
65f41f874f Added constant addition optimization and improved alias-optimization 2017-06-03 22:37:12 +02:00
jespergravgaard
0f3da0ea3e Fixed bresenham array again 2017-05-31 01:12:23 +02:00
jespergravgaard
0bdd9d2f2e Implemented A register - and achieved optimal asm in sprite tabel generation. 2017-05-31 00:59:30 +02:00
jespergravgaard
aac15e64dd Added rol/ror and a table generation example 2017-05-30 23:55:02 +02:00
jespergravgaard
2a2d873e62 Added static register value analysis - eliminating uncecasary loads. 2017-05-30 11:09:39 +02:00
jespergravgaard
b7fd96c4ee Added clobber info on instruction set 2017-05-30 09:51:07 +02:00
jespergravgaard
cc3158e387 Added array-based bresenham 2017-05-29 22:54:36 +02:00
jespergravgaard
1540439d36 Added array-based bresenham 2017-05-29 22:43:05 +02:00
jespergravgaard
38408825cd Implemented simple bresenhm 2017-05-28 21:47:50 +02:00
jespergravgaard
5367a41bcf Asm Fragment binding using registers instead of variables. 2017-05-28 18:22:57 +02:00
jespergravgaard
5c907162f3 Added more general pointer support 2017-05-28 17:58:02 +02:00
jespergravgaard
b3dfb503f5 Now supporting fibonacci array generation 2017-05-28 12:46:14 +02:00
jespergravgaard
6f56b1bcfa added pointers/arrays 2017-05-28 08:58:22 +02:00
jespergravgaard
6376029dbf Now parsing array declarations 2017-05-25 02:24:18 +02:00
jespergravgaard
15b1dc60fe Added syntax for functions & arrays. 2017-05-23 08:51:39 +02:00
jespergravgaard
a565a0bea7 Added ASM optimization removing jumps / branches to next instruction. 2017-05-21 13:40:56 +02:00
jespergravgaard
39e5b5a894 Added do {} while(). Fixed relative jump labels. Added fib2 & y-usage. 2017-05-21 12:56:11 +02:00
jespergravgaard
0ba8ac742e Retired old ASM sequence for new ASM program 2017-05-21 10:56:26 +02:00
jespergravgaard
651f02e153 better syntax parser 2017-05-20 22:08:06 +02:00
jespergravgaard
da8ff513e6 Allowing last asm line without newline 2017-05-20 22:05:01 +02:00
jespergravgaard
8f9f042144 Created ASM parser & representation 2017-05-20 21:49:11 +02:00
jespergravgaard
91b455e042 Renamed fragment files to match windows 2017-05-20 11:48:01 +02:00
jespergravgaard
f8aa837eda initial attempts at register optimization 2017-05-18 00:06:31 +02:00
jespergravgaard
d5ff6e3ea2 Implemented conditional simplification optimization 2017-05-17 23:21:02 +02:00
jespergravgaard
84c0b01354 updated fib 2017-05-15 23:33:19 +02:00
jespergravgaard
7e043de594 Implemented fib - and fixed alias elimination issue 2017-05-15 21:54:32 +02:00
jespergravgaard
62533afc6a Refactored fragment handling 2017-05-15 18:30:43 +02:00
jespergravgaard
968f51343a Implemented the last asm fragments 2017-05-15 18:15:56 +02:00
jespergravgaard
4e4fee9035 Implmented asm fragment generator 2017-05-15 17:01:11 +02:00
jespergravgaard
4ca3fe0787 Added naive register allocation 2017-05-15 08:40:47 +02:00
Jesper Gravgaard
c58a999a42 Added repeating pass 2 optimizations 2017-05-14 13:25:31 +02:00
Jesper Gravgaard
b3fd0eb28c Added more simple optimizing passes 2017-05-14 11:30:46 +02:00
Jesper Gravgaard
73fa2839e0 Typified all Symbols 2017-05-13 16:20:58 +02:00
Jesper Gravgaard
3b8580498b Implemented phi function completion loop. 2017-05-12 10:26:56 +02:00
jespergravgaard
807198113b SSA with phi function almost complete 2017-05-08 18:08:07 +02:00
jespergravgaard
4eb905b15c Constructing Control Flow Graph. 2017-05-07 20:32:30 +02:00
jespergravgaard
a06fe6e989 Parsing, 3 Address Code, Type Inference 2017-05-07 11:58:54 +02:00
jespergravgaard
7a24cc0b62 SSA form generation for expressions started 2017-05-05 09:55:15 +02:00
jespergravgaard
04d4f32ad9 A bit more subpix work. Some font-work and a KickC parser start. 2017-05-01 00:11:51 +02:00