1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2024-11-29 18:49:42 +00:00
Commit Graph

886 Commits

Author SHA1 Message Date
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
jespergravgaard
a34f77d319 Improved fragment synthesis by allowing X/Y registers to be used for constant byte values - great for _derefidx_vbuc1! Closes #99 2018-04-22 22:49:40 +02:00
Jesper Gravgaard
eb2ff934c7 Added pass 2 assertion that no unversioned or fwddref variable refs exist. 2018-04-22 12:40:20 +02:00
Jesper Gravgaard
4640b31043 Added another test securing that undefined variables cannot be used even if fwd-refs are allowed. 2018-04-22 12:22:48 +02:00
jespergravgaard
c8edee4291 Implemented constant pointer detection - allowing for efficient NULL-code using const byte* NULL = $00. Closes #79 2018-04-22 11:40:25 +02:00