1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2024-11-14 23:04:57 +00:00
Commit Graph

675 Commits

Author SHA1 Message Date
jespergravgaard
1d339804da Added a double unroll loop 2018-08-22 02:19:27 +02:00
jespergravgaard
be18a84d98 Working loop unrolling! There are probably still a lot of non-working cases - and the lack of loop unroll limit will definitely cause infinite loops. 2018-08-22 01:42:00 +02:00
jespergravgaard
bbeb37ea61 Loop unroll prepare now complete. 2018-08-21 16:45:07 +02:00
jespergravgaard
4f23ed5079 Split unroll prepare into separate pass 2018-08-21 10:01:09 +02:00
jespergravgaard
b19bf2246e Created "loop-unroll" branch. 2018-08-19 21:48:26 +02:00
jespergravgaard
a87da922f8 Centralized getting all entry point blocks in the program into ControlFlowGraph 2018-08-12 01:03:44 +02:00
Jesper Gravgaard
75a8749db4 Moved interrrupt registers into c64.kc 2018-08-11 12:04:52 +02:00
Jesper Gravgaard
39e7ce3df1 Refactored all casts to pointers to use the generic OperatorCastPtr. 2018-08-11 11:38:19 +02:00
Jesper Gravgaard
129de6c3ec Refactored most casts to pointers to use the generic OperatorCastPtr. 2018-08-11 11:30:19 +02:00
Jesper Gravgaard
fe7950798e Added call-graph recursion in clobber-analysis for interrupt hardware clobber. 2018-08-11 11:08:43 +02:00
jespergravgaard
9a9eeec129 Fixed tests. 2018-08-11 00:52:02 +02:00
jespergravgaard
f33d7018ba Implemented clobber analysis to ensure that hardware clobber interrupts only save the registers clobbered. 2018-08-11 00:48:15 +02:00
jespergravgaard
9ef574f32d Fixed tests 2018-08-10 20:33:17 +02:00
jespergravgaard
df224c70b6 Fixed tests 2018-08-10 20:32:45 +02:00
jespergravgaard
f8ec74dc14 Implemented hardware & kernel interrupt types. 2018-08-10 12:46:44 +02:00
jespergravgaard
6a20fc33c7 Improved comments 2018-08-06 00:41:29 +02:00
jespergravgaard
044282e523 Added 2 Raster IRQ tests. 2018-08-06 00:37:40 +02:00
jespergravgaard
238cd2a531 Added volatile keyword and initial implementation ensuring that volatiles are not constant-optimized or put into registers. 2018-08-05 22:40:13 +02:00
jespergravgaard
b23029760a IRQ referencing outside const. 2018-08-05 17:50:45 +02:00
jespergravgaard
b8841a90f5 Added forward reference support yo procedure references. 2018-08-05 17:46:42 +02:00
jespergravgaard
b755cd4297 Added interrupt types (kernel, hardware). 2018-08-05 17:28:02 +02:00
Jesper Gravgaard
f463606742 Implemented interrupt procedures and pointers to procedures initial support. 2018-08-05 13:33:23 +02:00
Jesper Gravgaard
c0c7a1da44 Fixed test 2018-08-04 13:11:34 +02:00
jespergravgaard
0763a63a66 Working on interrupts 2018-08-04 13:07:21 +02:00
jespergravgaard
18473295c9 Fixed tests 2018-08-03 02:08:39 +02:00
jespergravgaard
ca55ac68cb Improved the multiplexer - now 32 sprites. 2018-08-03 02:02:08 +02:00
jespergravgaard
962fefe582 Improved the multiplexer 2018-08-03 00:07:42 +02:00
jespergravgaard
3559ac29d5 Improved multiplexer 2018-08-02 23:05:33 +02:00
jespergravgaard
0f4490dfb0 Implemented sprite multiplexer 2018-08-02 22:57:20 +02:00
jespergravgaard
3658d9f68e Implemented sorter inside a multiplexer. 2018-08-02 02:53:52 +02:00
Jesper Gravgaard
c272b93872 Added kickasm support for expressions specifying bytes & cycles. 2018-07-25 20:44:10 +02:00
Jesper Gravgaard
6475f70192 Added kickasm support for bytes & cycles. Changed location to pc. 2018-07-25 19:59:49 +02:00
Jesper Gravgaard
ae765bec6b Allowing location to be any expression that ends up being constant. Changed syntax for kickasm directives. 2018-07-25 20:09:12 +09:00
Jesper Gravgaard
19855bed21 Added "location" directive to inline kickasm to allow absolute placement. 2018-07-25 17:10:46 +09:00
Jesper Gravgaard
ea80c9445a Fixed arrays with fixed size defined by a simple named constant. 2018-07-23 23:24:44 +09:00
Jesper Gravgaard
112087b7bb Added iteration through all parts of the symbol table to usage finding. Now array lenghts set to constant calculations also work. 2018-07-23 16:27:30 +09:00
Jesper Gravgaard
99085f1351 Refactored ReferenceInfos to use a more abstract model of references to variables/constants. 2018-07-23 01:00:25 +09:00
Jesper Gravgaard
4b4c6f5364 Using ProgramValueIterator instead of custom loop. 2018-07-22 16:41:19 +09:00
Jesper Gravgaard
81e214cee3 Now replacing in both control flow graph and symbol table per default. 2018-07-22 16:24:08 +09:00
Jesper Gravgaard
f17422a564 Renamed ValueReplacer classes to ValueIterator to better illustrate the generic nature. 2018-07-22 16:02:51 +09:00
Jesper Gravgaard
a14fa4dec3 Eliminated AliasReplacers separate implementation of the execution. Now using a clean ValueReplacer. Also fixed Pass1GenerateSSA to use a clean ValueReplacer. 2018-07-22 14:14:15 +09:00
Jesper Gravgaard
f9449997cb Refacing ValueReplacer 2018-07-21 23:29:11 +09:00
Jesper Gravgaard
62cfda6468 Added SymbolVariableRef (preparing for refacing ValueReplacer and ReferenceInfos) 2018-07-21 22:58:42 +09:00
Jesper Gravgaard
3328a570c6 Implemented late constant resolving for array lengths allowing the use of any constant expressions in the first/last values. The length inside the SymbolType still needs to be fixed - so a few tests currently fail. 2018-07-21 18:13:36 +09:00
Jesper Gravgaard
ac9ba0065c Implemented late constant resolving for ranged for() allowing the use of any constant expressions in the first/last values.. 2018-07-12 14:42:47 +02:00
Jesper Gravgaard
dbcbe597c0 Fixed test on Windows. 2018-07-10 22:29:12 +02:00
jespergravgaard
cda0a9b498 Added a sinus plotter to test the sinus curves against macro-generated sinus. 2018-07-10 11:56:01 +02:00
jespergravgaard
ad0512cc9d Fixed test 2018-07-09 18:57:14 +02:00
jespergravgaard
5abd555206 Implemented initial logo scroller. Fixed long branch detection when inlining kickasm. Added needed fragments. 2018-07-09 18:39:01 +02:00
Jesper Gravgaard
5e9b15477a Implemented sinus generator for logo scroller. Added missing fragments and fixed issue when removing an unused block also made some variables unused. 2018-07-08 23:58:43 +02:00