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

940 Commits

Author SHA1 Message Date
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
Jesper Gravgaard
2c0299ee09 Implemented support for resources neede for inline KickAsm code. 2018-07-07 19:23:38 +02:00
Jesper Gravgaard
a82c5cf5b1 Implemented support for inline KickAssembler code 2018-07-07 13:55:15 +02:00
jespergravgaard
198c941d85 Added syntax for extern variables and inline kickasm code 2018-07-06 12:42:59 +02:00
jespergravgaard
45f30c7031 Fixed fragment test 2018-06-03 23:33:49 +02:00
Jesper Gravgaard
364ea5e9b9 Fixed fragment tests 2018-06-02 11:34:35 +02:00
Jesper Gravgaard
11b700d269 Fixed tests 2018-06-01 00:45:18 +02:00
Jesper Gravgaard
bb1048fdfa Fixed problem with ROL/ROR/ASL/LSR A not marked as clobbering A.
Working on line anim.
2018-05-31 20:01:56 +02:00
jespergravgaard
68cba8f9af A bit more line anim - work in (early) progress. Added inlined toD018() and toDd00(). 2018-05-14 23:53:03 +02:00
jespergravgaard
a7b751a9fd A bit more line anim - work in (early) progress. 2018-05-14 10:31:43 +02:00
jespergravgaard
f492173178 Added line anim - work in (early) progress. 2018-05-08 00:25:33 +02:00
jespergravgaard
808b60d06a Added printable error context to statements 2018-05-05 21:34:24 +02:00
jespergravgaard
21478bd5b6 Removed param-assignment attribute from call 2018-05-01 22:51:00 +02:00
jespergravgaard
e589373374 Added support for multi-level function inlining containing value-lists. 2018-05-01 22:37:28 +02:00
jespergravgaard
de8654322f Renamed method 2018-05-01 22:10:06 +02:00
jespergravgaard
4e973cebc7 Now supporting more complex functions inlining. 2018-05-01 22:08:23 +02:00
jespergravgaard
6bd3a2dedf Implemented function inlining. Closes #63 2018-05-01 00:09:51 +02:00
jespergravgaard
b15a88f27e Changed control flow graph block collection to a modifiable list. 2018-04-29 22:34:26 +02:00
jespergravgaard
3879ac83b0 Added ConstantCastValue for when noop casts are used on constant values. 2018-04-29 21:39:12 +02:00
jespergravgaard
a3109431bf Renamed modulus to modulo 2018-04-28 13:07:51 +02:00
jespergravgaard
469fd63320 Renamed modulus to modulo 2018-04-28 13:00:20 +02:00
jespergravgaard
55fa7be4d1 Implemented compound assignments. Closes #104 2018-04-28 12:06:01 +02:00
jespergravgaard
6a399cf210 Renamed boolean to bool. Closes #110 2018-04-28 08:41:05 +02:00
jespergravgaard
37e300fb2b Added test of chained assignments. 2018-04-28 08:22:53 +02:00
jespergravgaard
7ed032f039 Fixed fragment test reference data 2018-04-28 08:15:21 +02:00
jespergravgaard
35080d08d1 Added error when encountering runtime dicision/multiplication/modulus. 2018-04-27 20:12:51 +02:00
jespergravgaard
779e10aefc Added some basic arithmetic expression tests. 2018-04-27 16:11:42 +02:00
jespergravgaard
760ea7db44 Added missing fragment 2018-04-27 15:05:19 +02:00
jespergravgaard
521385065d Fixed logging 2018-04-27 14:55:46 +02:00
jespergravgaard
80f57ed5f1 Added boolean pointer test and a test that modifying a constant results in an error. 2018-04-27 14:49:35 +02:00
jespergravgaard
ad54c264c4 Added boolean type variables & fragments. Lots of missing fragments. Inlining any booleans possible will improve performance. Closes #86 2018-04-27 01:09:34 +02:00
jespergravgaard
e3da759057 Added test with a constant word pointer. Added missing word fragments. Fixed issue with pointer to unused word variable. 2018-04-26 23:29:43 +02:00
jespergravgaard
9265592f25 Implemented identical phi elimination 2018-04-25 01:11:28 +02:00
jespergravgaard
b2f16e2a57 Added missing fragments and a few new synth rules for derefidx 2018-04-24 23:15:18 +02:00
jespergravgaard
34d8afcaae Added some simple test programs for the manual. 2018-04-24 10:05:48 +02:00
jespergravgaard
34909f47d8 Recusion now detected, resulting in CompileError. Closes #88 2018-04-22 23:46:26 +02:00