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

576 Commits

Author SHA1 Message Date
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
jespergravgaard
43395567af Implemented constant pointer detection - allowing for efficient NULL-code using const byte* NULL = $00. Closes #79 2018-04-22 11:24:02 +02:00
jespergravgaard
3a0a8f450d Now allowing forward references to variables (expected to be constants). Closes #101 2018-04-22 11:10:47 +02:00
jespergravgaard
13249cd744 Fixed problem where inline string is used only in hi/lo operator. Closes #103 2018-04-22 09:59:08 +02:00
jespergravgaard
b2f1e1abe3 Implemented boolean && / 2018-04-21 23:00:05 +02:00
jespergravgaard
8a7f5bde39 Implemented identification & elimination of complex constant if()s 2018-04-21 21:38:30 +02:00
jespergravgaard
5e3cbe1f3a Added a const inline case 2018-04-20 23:09:18 +02:00
Jesper Gravgaard
b1b8f361d3 Improved bool min test 2018-04-20 20:48:13 +02:00
jespergravgaard
92cba685e1 Added another const bool test 2018-04-19 22:29:01 +02:00
jespergravgaard
ee6e58f79c Fixed problem with PHI-blocks still referencing blocks that no longer call them bacause of constant bool if()s. 2018-04-19 01:46:41 +02:00
jespergravgaard
2fb9619381 Implemented constant if elimination and unused block removal in pass 2. 2018-04-18 23:19:25 +02:00