jespergravgaard
|
cd06dd2016
|
Implemented type promotion & type checking of all assignments.
|
2017-11-27 00:34:59 +01:00 |
|
jespergravgaard
|
0d622f978c
|
Added two string problems (local & inline) to error-test-cases.
|
2017-11-26 21:46:53 +01:00 |
|
jespergravgaard
|
ae167736d4
|
Fixed wordexpr problem. Improved type inference of binary/unary constants. Added sby->by fragment synthesis.
|
2017-11-26 21:27:00 +01:00 |
|
jespergravgaard
|
ebb71b4130
|
Working on support for inline constants with multiple potential types.
Improving fragment synthesis.
|
2017-11-26 17:38:45 +01:00 |
|
jespergravgaard
|
c8e3b36893
|
Added byte casting fragments
|
2017-11-25 00:10:21 +01:00 |
|
jespergravgaard
|
96f2610d25
|
Fixed infinite recursion
|
2017-11-24 23:49:36 +01:00 |
|
jespergravgaard
|
0efe62585b
|
Added explicit casting - started testing it on byte / signed byte.
|
2017-11-24 23:25:16 +01:00 |
|
jespergravgaard
|
d348365010
|
Improved fragment synthesis
|
2017-11-23 07:31:26 +01:00 |
|
jespergravgaard
|
b81e8eeaa4
|
Improved fragment synthesis
|
2017-11-22 10:37:00 +01:00 |
|
jespergravgaard
|
a6e1f2cade
|
Working on support for signed bytes. Syntax done, very simple program working - explicit casting needed, better asm fragment management needed
|
2017-11-21 00:30:16 +01:00 |
|
jespergravgaard
|
a1baf2e046
|
Using inverse space in scroller
|
2017-11-17 10:17:57 +01:00 |
|
jespergravgaard
|
e64b12e7be
|
Added 8x8 char scroller
|
2017-11-17 09:37:11 +01:00 |
|
jespergravgaard
|
f28db3067b
|
Closes #59 Better ASM static value analysis. Analysis is string-based, so a more advanced method might yield better results - ef ever needed.
|
2017-11-14 00:02:31 +01:00 |
|
jespergravgaard
|
148f9ae072
|
Implemented somewhat Better ASM static value analysis. Also recognizes ZP sta zp5, ldx zp5.
|
2017-11-13 23:41:23 +01:00 |
|
jespergravgaard
|
5ed20ccc76
|
Added test for direct increment of constant numberic pointer ++*$d020;
|
2017-11-13 22:14:11 +01:00 |
|
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 |
|