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 |
|
jespergravgaard
|
1ee63ce40a
|
Added literal char syntax. Added literal test. Improved voronoi by using inmem arrays.
|
2017-10-19 10:21:32 +02:00 |
|
jespergravgaard
|
b4abb9394e
|
Fixed ClassCastException when attempting to removing a procedure with an empty start. Added a pointer conter increment test.
|
2017-10-19 09:12:46 +02:00 |
|
jespergravgaard
|
5a4388d6d3
|
Added KC-based scroller
|
2017-10-19 01:29:44 +02:00 |
|
jespergravgaard
|
7be265f42c
|
Fixed culling problem causing conditional branches into phi-functions to be skipped.
|
2017-10-18 14:16:59 +02:00 |
|
jespergravgaard
|
6fb5372f1b
|
Added support for ASM .string directives through string initializer.
|
2017-10-17 22:51:16 +02:00 |
|
jespergravgaard
|
1a649008b9
|
Added support for ASM .byte directives through array initializers.
|
2017-10-17 13:34:41 +02:00 |
|
jespergravgaard
|
feba0565b4
|
Cleaned up RValue hierarchy. Removing redundant Constant interface. Moving ConstantVar out of the value-hierarchy.
|
2017-10-17 11:35:37 +02:00 |
|
jespergravgaard
|
efc750ce11
|
Moved type inference into the model. Renamed ICL to model.
|
2017-10-17 09:58:00 +02:00 |
|
jespergravgaard
|
09ed57fb98
|
Separated ASM fragment system out from ASM base
|
2017-10-17 09:47:26 +02:00 |
|
jespergravgaard
|
1f4efe0a4f
|
Added asm names to symbol table printout.
|
2017-10-17 09:39:15 +02:00 |
|
Jesper Gravgaard
|
5de6bbba13
|
Added missing fragments (through signature rewriting)
|
2017-10-16 13:20:08 +02:00 |
|
jespergravgaard
|
520361f7b6
|
Optimized live range effective - vastly improving compile speed.
|
2017-10-16 12:47:42 +02:00 |
|
jespergravgaard
|
d551f8c569
|
Small numbers skip $
|
2017-10-15 23:15:49 +02:00 |
|
jespergravgaard
|
3c1f4d2901
|
Minor syntax fixes
|
2017-10-15 22:48:04 +02:00 |
|
Jesper Gravgaard
|
46ffa81633
|
Added operator precedence to constant printing - avoiding unnecesary perenthesis
|
2017-10-15 22:39:50 +02:00 |
|
Jesper Gravgaard
|
7b9e80aaac
|
Added constant addition consolidation optimization.
|
2017-10-15 17:53:18 +02:00 |
|
jespergravgaard
|
525ac454cc
|
Added a new constant test
|
2017-10-14 22:37:30 +02:00 |
|
jespergravgaard
|
a09ca15dbf
|
Inlining constants that are unnamed, single versions of a variable or aliases of other constants
|
2017-10-14 22:36:52 +02:00 |
|
jespergravgaard
|
1a9ae72668
|
Added unnamed constant inlining
|
2017-10-13 08:06:55 +02:00 |
|
jespergravgaard
|
ccfa6bdbf3
|
added simple asm constants (syntax error still)
|
2017-10-04 01:08:36 +02:00 |
|
Jesper Gravgaard
|
6f2dfdbec3
|
Initial working implementation of constants in the symbol table and ASM. Still needs to output const definitions (intelligently).
|
2017-10-02 21:47:12 +02:00 |
|
Jesper Gravgaard
|
a553cb97c3
|
Added more fragments
|
2017-09-06 21:23:48 +02:00 |
|
Jesper Gravgaard
|
616311daf8
|
Finally new live ranges are working correctly - including effective live ranges for statements inside methods.
|
2017-09-06 18:59:53 +02:00 |
|
Jesper Gravgaard
|
99088aef58
|
Improved uplift test and zp coalesce test to include live ranges from calling statements in overlap testing. The new live range system is still far from perfect. Next step is getEffectiveAlive(stmt) returning alive vars + alive vars from all calling contexts.
|
2017-09-04 22:15:18 +02:00 |
|
Jesper Gravgaard
|
eb6cf1188c
|
Working on a new live range analysis and the ability to handle constants symbolically. TODOs remaining: Live range overlap analysis of register combinations inside methods must also look at registers alive at all calls. Examine why temp-vars are used in flipper. Examine why flipper is plotted in a wrong position on the screen. Implement constants into the symbol table and support them in code. Implement new constant consolidation steps.
|
2017-09-04 00:49:00 +02:00 |
|
jespergravgaard
|
61d16b3030
|
Implemented phi transition reuse when transitions are identical on a register basis
|
2017-08-26 02:05:46 +02:00 |
|
jespergravgaard
|
83edd3e21b
|
Implemented phi transition reuse when transitions are identical
|
2017-08-26 01:15:57 +02:00 |
|