1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2024-12-24 04:31:02 +00:00
Commit Graph

491 Commits

Author SHA1 Message Date
jespergravgaard
788f3d63a2 Added test for direct increment of constant numberic pointer ++*$d020; 2017-11-13 22:00:29 +01:00
jespergravgaard
8462d75265 Closes #3 Pointer: Support calculated pointers eg. *(ptr+i) 2017-11-13 21:52:38 +01:00
jespergravgaard
365357596b Closes #26 Change pointer derefs ASM signature to _deref_xxx (from _star_xxx) 2017-11-13 19:05:57 +01:00
jespergravgaard
f351b28f58 Using *(BGCOL)++ instead of *BGCOL=*BGCOL+1; 2017-11-13 00:55:46 +01:00
jespergravgaard
de5f92498d Implemented more proper pointer handling by wrapping any unary *'s into PointerDerefs. 2017-11-13 00:47:05 +01:00
jespergravgaard
1b999c8c1d Using cached symbol table for faster uplift 2017-11-11 18:45:33 +01:00
jespergravgaard
ffbc958d47 Using cached symbol table for faster uplift 2017-11-11 18:22:45 +01:00
jespergravgaard
796edcc05b Added cached symbol table for faster uplift 2017-11-11 18:07:44 +01:00
jespergravgaard
af281612d2 Added cached map for statement from index 2017-11-11 08:46:56 +01:00
jespergravgaard
15d6935601 added TODO for compile time keyword 2017-11-10 08:29:55 +01:00
jespergravgaard
b0e6ae0b67 Added a test with two levels of methods to test live ranges / call-paths and allocation of a minimal number of registers. 2017-11-10 00:27:56 +01:00
jespergravgaard
514797897e Optimized effective live ranges further to improce uplift speed 2017-11-10 00:12:34 +01:00
jespergravgaard
a3c18cf756 Optimized live range equivalence classe set lookup from variable to spped up uplift. 2017-11-10 00:01:49 +01:00
jespergravgaard
58500b39e0 Implemented a less verbose statement print for uplift performance 2017-11-09 23:28:21 +01:00
jespergravgaard
88d765324a Caching statement->block mapping for uplift performance 2017-11-09 23:05:23 +01:00
jespergravgaard
fdf4e7ac3a Caching Variable Reference Infos to improve uplift performance. 2017-11-09 22:34:46 +01:00
jespergravgaard
baa84880ea Succesfully implemented new live range calculation utilizing call-paths. Need a new optimization round for uplift. 2017-11-09 21:34:13 +01:00
jespergravgaard
4fd32274af Working on handling procedure parameter aliases 2017-11-08 12:09:15 +01:00
jespergravgaard
e4bf84c57c Improved call-path alias detection to inclide all call-parameters but no call-returns 2017-11-08 10:10:43 +01:00
jespergravgaard
0026676080 Implemented call-path based effective alive analysis with call-path specific aliases. 2017-11-07 09:32:16 +01:00
jespergravgaard
b20327590f Working on better live ranges that take into account the call-path taken to the current statement and any aliases on that path (due to phi statements) 2017-11-06 08:20:33 +01:00
jespergravgaard
9d3c8afdf0 Restructured TODO 2017-11-05 12:01:30 +01:00
jespergravgaard
f18b40d4ac Removed semicolon after inline asm. 2017-11-05 11:31:10 +01:00
jespergravgaard
8ba5a2733f Added inline ASM TODO's 2017-11-05 11:17:08 +01:00
jespergravgaard
f46aba8c9b Added inline ASM clobber test. 2017-11-05 09:56:04 +01:00
jespergravgaard
09dd676363 Added semicolon to do {} while (); 2017-11-05 09:44:00 +01:00
jespergravgaard
f1512af630 Added failing test for inline asm with variable reference parameters. 2017-11-05 03:10:10 +01:00
jespergravgaard
8d68d449c4 Implemented inline asm syntax and code generation. Now need to handle parameters. 2017-11-05 03:01:32 +01:00
jespergravgaard
86b1d0db73 Created a single parser for KickC incorporating the ASM parser (for inline ASM - but also for ASM fragment files. ) 2017-11-05 02:20:29 +01:00
jespergravgaard
506b891ef3 Added basic upstart jumping to main() 2017-11-04 19:53:55 +01:00
Jesper Gravgaard
fc45798d75 Separated fragment generation & fragment signature / loading / synthesizing. 2017-11-04 19:04:39 +01:00
jespergravgaard
3d607aba7f Working on inline asm 2017-11-04 14:15:44 +01:00
jespergravgaard
bcef1c3662 Fixed constant propagation problem: (const-identification.kc) Constants are not identified correctly. Some times constant pointers are treated as variables Eg. byte* SCREEN = $0400 is adressed through zero-page even though it can be adressed directly. 2017-11-03 07:58:02 +01:00
jespergravgaard
14219443a8 Ensured that assignment to variables with ALU potential does not affect potential registers through clobbering. 2017-11-01 16:43:13 +01:00
jespergravgaard
4bcef390f3 Fixed bresenham line to do proper word-based addition. 2017-11-01 14:10:49 +01:00
jespergravgaard
0317fc50c3 Improved constant inlining to inline constants with different valued versions 2017-11-01 13:26:32 +01:00
jespergravgaard
4de433730f Fixed problems with versioned constant call parameters being mixed up and with missing scope name on constant references across scopes. 2017-11-01 12:59:29 +01:00
jespergravgaard
6097d80b91 Added a bunch of test cases highlighting each known error 2017-10-29 11:43:39 +01:00
jespergravgaard
c4c60a5b36 Added a bunch of test cases highlighting each known error 2017-10-29 11:41:35 +01:00
jespergravgaard
00f53c49b6 Added support for lo/hi lvalues. Added more ALU options. Working on bitmap plotter. 2017-10-29 01:56:53 +02:00
jespergravgaard
f60be66531 Working on bitmap bresenham. Added lo/hi unary operators. 2017-10-26 12:48:04 +02:00
jespergravgaard
7def3abf28 Improved TODO 2017-10-23 01:29:39 +02:00
jespergravgaard
0d9a0a84f8 Added another known problem 2017-10-23 01:23:39 +02:00
jespergravgaard
cd2c50b8a8 Fixed NPE 2017-10-23 01:22:36 +02:00
jespergravgaard
471117561b Updated TODO. Removed string keyword. 2017-10-23 01:12:13 +02:00
jespergravgaard
943775d97d Implemented phi transition assignment clobber checking. 2017-10-23 00:48:22 +02:00
jespergravgaard
ee5499a313 Added minimal PHI clobber example. 2017-10-21 13:34:42 +02:00
jespergravgaard
f63a540d15 Removed unnecessary (synthesizeable) fragments. 2017-10-21 12:58:03 +02:00
jespergravgaard
774e909a20 Added half-asses halfscii. 2017-10-21 12:36:37 +02:00
jespergravgaard
c569ce8de9 Improved fragment manager enabling synthesis of more fragments. Added boolean operators (and, or, xor, not) 2017-10-20 17:25:04 +02:00