1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2026-04-21 03:19:36 +00:00
Commit Graph

903 Commits

Author SHA1 Message Date
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 06b90b6ee3 Refactored code to reuse ProgramValueIterator and Scope features. 2019-04-04 17:58:28 +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
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
Jesper Balman Gravgaard a2fece2ea2 Update CONTRIBUTING.md 2019-04-02 20:12:23 +00:00
Jesper Balman Gravgaard 565d4ab128 Update CONTRIBUTING.md 2019-04-02 20:11:20 +00:00
Jesper Gravgaard 7ee24766fa Modified readme & contributing. 2019-04-02 14:59:59 +02:00
Jesper Balman Gravgaard 5ea648200b Update README.md 2019-04-02 12:24:11 +00:00
Jesper Balman Gravgaard 0fa2ec584e Update README.md 2019-04-01 18:41:00 +00:00
Jesper Balman Gravgaard d4fd405a9b Update README.md 2019-04-01 18:39:49 +00:00
Jesper Balman Gravgaard a3884b6fa5 Update README.md 2019-04-01 18:29:47 +00:00
Jesper Balman Gravgaard f5bb3cf6c6 Update CONTRIBUTING.md 2019-04-01 18:28:46 +00:00
Jesper Balman Gravgaard 48bac9e778 Update CONTRIBUTING.md 2019-04-01 18:26:12 +00:00
Jesper Balman Gravgaard c6c4ee2162 Update CONTRIBUTING.md 2019-04-01 18:25:41 +00:00
Jesper Balman Gravgaard aa91229e0f Update CONTRIBUTING.md 2019-04-01 18:25:31 +00:00
Jesper Balman Gravgaard d7b14907be Update CONTRIBUTING.md 2019-04-01 18:24:27 +00:00
Jesper Balman Gravgaard 23ce9440c5 Add CONTRIBUTING 2019-04-01 18:18:26 +00:00
Jesper Gravgaard dd434c1ff5 Added source encoding to Maven POM (to ensure Windows builds work properly). 2019-04-01 08:42:27 +02:00
jespergravgaard fe9a9005ed Added test with both break & continue. Added SID-files to assembly. 0.6.9.1 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. 0.6.9 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 825e60ed62 Shortcut the callgraph thread analysis when max 1 thread in the entire program. 2019-03-29 20:58:48 +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
jespergravgaard c696d9610e Added parenthesis to negative immediates to AXS. 2019-03-27 07:47:31 +01:00
jespergravgaard 667cbde56f Added a lot of optimizing fragments using illegal opcodes (Thanks Travis Fisher!)
Added synth rule for vubc's.Updated tests.
2019-03-26 23:49:45 +01:00
jespergravgaard 0993be3f01 Added example of music routines. 2019-03-26 21:27:36 +01:00
jespergravgaard 022d77fc56 Implemented early constant identification to avoid unnecessary variable versioning. Closes #53 2019-03-22 19:50:20 +01:00
jespergravgaard c280a3b14a Fixed NPE when using booleans in if()/while(). Closes #152 0.6.8 2019-03-22 07:25:55 +01:00
jespergravgaard 4ad601ce72 Added fragment for subtracting unsigned byte from signed word. 2019-03-21 22:24:39 +01:00