1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2025-02-27 01:29:37 +00:00

470 Commits

Author SHA1 Message Date
Jesper Gravgaard
97f88fb128 Fixed comparison optimization to ignore 0 2019-04-10 16:06:03 +02:00
Jesper Gravgaard
15acdc3752 Merged with master. 2019-04-10 13:52:57 +02:00
Jesper Gravgaard
070fb7937d Implemented comparison rewriting optimization. 2019-04-10 11:12:49 +02:00
jespergravgaard
c9768022af Optimized unrolled plasma more by moving x-value lookup outside the unrolled loop. 2019-04-10 08:27:36 +02:00
jespergravgaard
fa2024296b Added more pointer cast tests 2019-04-09 22:58:42 +02:00
jespergravgaard
9a707c250e Added pointer cast test 2019-04-09 21:30:21 +02:00
jespergravgaard
23e3533064 Merged Travis Fishers upstream optimizations. Closes #92 2019-04-09 01:22:47 +02:00
jespergravgaard
bce68180ef Merge branch 'master' of https://gitlab.com/tfisher98/kickc 2019-04-09 00:59:19 +02:00
jespergravgaard
756d5c22d5 Strings zer now zero-terminated by default. To avoid zero-termination use suffix z - eg. "qwe"z is not zero-terminiated. Closes #137 2019-04-09 00:51:53 +02:00
Travis Fisher
7454027829 update reference results 2019-04-08 18:25:03 -04:00
Travis Fisher
0bc03ffdb0 add deep nesting test program 2019-04-08 18:05:25 -04:00
Travis Fisher
68a737cf0f Merge branch 'master' of https://gitlab.com/camelot/kickc 2019-04-08 17:31:16 -04:00
jespergravgaard
c3849c78b0 Added support for void parameter lists. Closes #161 2019-04-08 23:27:05 +02:00
jespergravgaard
9a9e4f456e Added more fragments. 2019-04-08 21:25:54 +02:00
jespergravgaard
44a5f66a7c Added fire sample from CC65. (~100.000 cycles per update in KickC vs ~300.000 in CC65). Fixed tests. Added some signed fragments. 2019-04-08 20:54:23 +02:00
jespergravgaard
b2a0b629e3 Changed plasma routines to use standard C types. 2019-04-08 16:33:52 +02:00
jespergravgaard
63f10a28de Added support for standard C types (char, short, int, long). Closes #108 2019-04-08 16:26:39 +02:00
jespergravgaard
c613edf2b2 Updated test data. 2019-04-08 09:12:00 +02:00
jespergravgaard
41029fec17 Added plasma with unrolled inner loop for ~50fps. 2019-04-08 09:00:48 +02:00
jespergravgaard
7b23951eb2 Fixed tests after adding fragment. 2019-04-08 01:42:00 +02:00
jespergravgaard
35659a67be Ported plasma sample from CC65 to KickC. 2019-04-08 00:44:09 +02:00
jespergravgaard
23b1f15101 Added support for more complex ternary expressions. 2019-04-07 18:35:50 +02:00
jespergravgaard
67b97130b7 Implemented ternary operator. Closes #77 2019-04-07 17:59:44 +02:00
jespergravgaard
e1cf957b2f Pointers to pointers working. Closes #156 2019-04-07 13:35:23 +02:00
jespergravgaard
a334855da8 Pointers to noargs functions working pretty well. Closes #120 2019-04-07 11:08:39 +02:00
jespergravgaard
ca9453346b Added missing RTS after jsr main 2019-04-06 11:53:56 +02:00
jespergravgaard
9ccc5d828f Improved pointer-to-pointer functionality significantly. 2019-04-05 01:05:15 +02:00
jespergravgaard
44b6ed1fb8 Improved test. 2019-04-04 20:49:07 +02:00
jespergravgaard
64b3a07ee6 Added all functions that become pointers as separate thread heads. 2019-04-04 20:45:52 +02:00
jespergravgaard
10dd5e4c7b Added support for arrays containing pointers for noargs functions. 2019-04-04 19:23:38 +02:00
jespergravgaard
ec6404bafd Added support for functions returning constant pointers to functions. 2019-04-04 19:01:47 +02:00
jespergravgaard
c6597a2736 Added support for functions returning pointers to functions. 2019-04-04 18:45:57 +02:00
jespergravgaard
e258b9593d Function pointers now working both when constant and variable (in simple noargs non-scope-crossing cases with no local variables in the referenced functions.) 2019-04-04 17:44:14 +02:00
Travis Fisher
54e79d91a1 try again update test reference. maven config for tests in parallel. 2019-04-02 21:41:57 -04:00
jespergravgaard
3434a695d2 Implemented a bunch of the foundation needed for function pointers - incl. the parser and handling of pointers in zeropage variables. 2019-04-03 00:03:37 +02:00
jespergravgaard
de8c42eba8 Fixed problem with overlapping variables in threads. 2019-04-02 22:31:26 +02:00
Travis Fisher
c78aef2312 update test reference results 2019-04-02 02:28:13 -04:00
jespergravgaard
fe9a9005ed Added test with both break & continue. Added SID-files to assembly. 2019-03-31 23:32:25 +02:00
jespergravgaard
7687163a4a Added synth rule to detect missing C1 and move down the other Cs using mapC. This lowers the number of rules since rules rewriting C1 no longer need to avoid twoC or use mapC. A similar rule was added for missing C2s and mapC3. 2019-03-31 22:34:28 +02:00
jespergravgaard
f773c96cbc Removed all fragments using _derefidx_vbs.. - and replaced them with a synthesis rule. 2019-03-31 22:01:08 +02:00
jespergravgaard
2d7825a0b9 Implemented continue statement. Closes #91 2019-03-31 20:15:01 +02:00
Jesper Gravgaard
4424ffe92c Implemented loop break. 2019-03-31 17:57:54 +02:00
Jesper Gravgaard
547cfb6237 Merge remote-tracking branch 'origin/master' 2019-03-31 17:49:54 +02:00
Jesper Gravgaard
03296d9173 Moved in attempt to avoid conflict. 2019-03-31 17:49:50 +02:00
Jesper Gravgaard
864c79335f Implemented break statement breaking out of the current loop. 2019-03-31 17:38:21 +02:00
jespergravgaard
613322153e Added synthesis rules suggested by Travis Fisher allowing synthesis of pbuc1_derefidx_vbuxx / pbuc1_derefidx_vbuyy also when C1 is used elsewhere in the fragment. 2019-03-31 17:35:16 +02:00
jespergravgaard
d13ca4e03b Implemented block label renumbering ensuring generated ASM labels are slightly more sensible to the reader. 2019-03-31 17:10:43 +02:00
jespergravgaard
126813ff4e Implemented local scopes for blocks - enabling reuse of variable names (for instance in for loops). Closes #64 2019-03-30 00:15:53 +01:00
jespergravgaard
7fcb6e525a Fixed problem where zeropage allocations inside IRQ and outside could overlap. Closes #154 2019-03-29 08:01:02 +01:00
jespergravgaard
c81147f60f Fixed problem with volatile booleans being allocated to registers. Closes #153 2019-03-27 22:54:01 +01:00