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

947 Commits

Author SHA1 Message Date
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
Travis Fisher
535b3fcb74 change maven parallelization setting 2019-04-02 22:06:32 -04: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
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
Travis Fisher
c78aef2312 update test reference results 2019-04-02 02:28:13 -04:00
Travis Fisher
7784f174b7 replace jmp to rts with rts in double jump elimination pass 2019-04-01 18:14:18 -04: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. 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
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 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
jespergravgaard
8e2de5f79b Updated fragment tests 2019-03-20 21:45:30 +01:00
Jesper Gravgaard
2989f16593 Added synthesis for using X/Y registers as intermediates when encountering pb.c1_derefidx_vbuyy/xx. 2019-03-20 17:09:22 +01:00
jespergravgaard
e48a4538bc Added updated reference manual. 2019-03-20 08:05:49 +01:00
jespergravgaard
9a50e54928 Fixed optimization of constant addition in double array indexing. Closes #150 2019-03-20 07:20:00 +01:00
jespergravgaard
5791875d2d Added clobber directive to inline kickasm. 2019-03-19 07:48:16 +01:00
jespergravgaard
f67a5bc897 Added clobber handling to inline ASM. Added clobbers directive to specify what is clobbered. If inline ASM has a JSR and no clobbers directive all registers are assumed to be clobbered. Closes #5 2019-03-18 20:54:08 +01:00