1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2024-10-22 09:25:49 +00:00
Commit Graph

1125 Commits

Author SHA1 Message Date
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
82b394a80f Minor syntax changes. 2019-04-09 01:40:38 +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
Travis Fisher
47d2f74690 put caches associated to pass n variable reference infos back out of control flow block class 2019-04-08 01:16:31 -04:00
Travis Fisher
b7b01a89a8 speed improvement in pass n variable reference infos 2019-04-07 23:57:38 -04:00
Travis Fisher
7393d095b9 speed improvement in pass n variable reference infos 2019-04-07 23:09:50 -04: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
Travis Fisher
2ee07b0806 store compiled regexes for speed 2019-04-07 16:05:34 -04: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
Travis Fisher
d3b4e895dc use cheaper hash function for speed improvement 2019-04-04 21:47:37 -04: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
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
Travis Fisher
7784f174b7 replace jmp to rts with rts in double jump elimination pass 2019-04-01 18:14:18 -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
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
jespergravgaard
5cf5d88228 Implemented handling of default successor PHI blocks in logical or if()'s. Closes #149 2019-03-18 18:25:50 +01:00
jespergravgaard
ff716c0343 Implemented handling of deafult successor PHI blocks in 2019-03-18 18:24:03 +01:00
jespergravgaard
651bd87eaa Fixed test 2019-03-18 02:26:13 +01:00
jespergravgaard
ca697a4ffd Improved a plus fragment to use bcc 2019-03-18 02:23:29 +01:00
jespergravgaard
9bb967b33f Implemented ASM fragment synthesis variations searching - looking through different potential fragments when generating ASM containing a constant number that matches multiple potential types. 2019-03-18 02:08:32 +01:00
jespergravgaard
d459332be1 Updated tests with better ASM 2019-03-17 22:52:25 +01:00
jespergravgaard
93d36f25be Updated tests with better ASM 2019-03-17 22:49:02 +01:00
Jesper Gravgaard
dc76b2bed0 Added a lot of signed word and boolean fragments from Travis Fisher. 2019-03-16 17:54:38 +01:00
Jesper Gravgaard
ba560796dd Added uses directive to inline kickasm to allow declaring used constants to prevent that they are optimized away as unused. Closes #147 2019-03-16 00:33:16 +01:00
jespergravgaard
f6dd66f3cb Added support for cross-scope references inside inline ASM. 2019-03-15 07:59:25 +01:00
jespergravgaard
71743540c6 Added support for non-multi labels within inline ASM. 2019-03-15 00:30:14 +01:00
jespergravgaard
b4ccdef0f0 Problem with constant if() has been fixed! 2019-03-15 00:13:24 +01:00
jespergravgaard
4eed4f7659 Implemented proper handling of referenced to constants inside inline ASM. Closes #146 2019-03-15 00:02:33 +01:00
jespergravgaard
d293c47141 Added tests for inline assembler & kickassembler. 2019-03-14 23:09:50 +01:00
jespergravgaard
fa6ed8bff6 Improved compiler errors - removing exception trace and using proper exit code. 2019-03-12 18:14:45 +01:00
jespergravgaard
6adb0c6d2d Improved verbosity for fragment debug output. 2019-03-12 17:59:35 +01:00
jespergravgaard
ad6a1910c8 Added another 2 word fragments. Added compiler commandline option to show fragment -fragment <signature>. Closes #145 2019-03-12 17:53:33 +01:00
Jesper Gravgaard
ea98c9e2eb Added two additional signed word fragments. 2019-03-11 11:09:12 +01:00
jespergravgaard
8a560a294b Added two missing signed word fragments. 2019-03-11 07:49:41 +01:00
jespergravgaard
3090fe4849 Added missing line number to error when encountering symbol that has already been declared. 2019-03-10 09:29:02 +01:00
jespergravgaard
241f8bec4d Added two missing fragments and a test. 2019-03-10 08:24:30 +01:00
jespergravgaard
c2fb30a776 Limited fragment testing to speed it up. 2019-03-10 07:57:11 +01:00
jespergravgaard
b04edfb241 Added needed synthesis rules. 2019-03-10 01:44:47 +01:00
jespergravgaard
c89b4bc6b0 Removed rules slowing down the fragment synthesizer awaiting improvements to the synthesizer. 2019-03-10 01:14:35 +01:00
jespergravgaard
6bc35f6c34 Restructured fragment tests to use less memory. 2019-03-09 23:50:50 +01:00
jespergravgaard
980fc0aeb5 Working to improve fragment synthesis. 2019-03-09 20:58:51 +01:00
jespergravgaard
5a83c1b357 Fixed clobber problem that can occur during PHI transitions. Closes #10 2019-03-09 18:37:23 +01:00
jespergravgaard
4d8e083a21 Improved fragment synthesis of p..z1_deref_vbuaa=... to use TAY when possible. 2019-03-09 16:39:24 +01:00
jespergravgaard
a65404d7b6 Fixed signed word comparisons. Added tests of word comparisons. Improved fragment synthesis of p..z1_deref_vbuaa=... / p..z1_deref_vbuxx=... 2019-03-09 16:24:44 +01:00
jespergravgaard
cb8018b92a Added missing word fragments. Added test of unsigned word comparisons. 2019-03-09 14:24:51 +01:00
jespergravgaard
c59f18eb82 Added two missing word fragments. 2019-03-08 22:00:28 +01:00
jespergravgaard
183494e141 Fixed infinite compiler loop when complex loops contain &&. Closes #144 2019-03-08 21:43:37 +01:00
jespergravgaard
ac73bb15e3 Improved number formatting of inegers in log/messages. 2019-03-08 06:54:46 +01:00
jespergravgaard
39e727711a Added missing error location for illegal lvalues. Closes #143 2019-03-08 06:33:59 +01:00
jespergravgaard
0aebd2a9a1 Fixed error in boolean fragments. 2019-03-07 07:29:47 +01:00
jespergravgaard
3e39383963 Fixed error in boolean fragments. 2019-03-07 07:23:26 +01:00
jespergravgaard
0ca54a97ad Added two missing word fragments. 2019-03-07 06:48:32 +01:00
jespergravgaard
0362e12880 Implemented default zero values for variables without ant initializer. Closes #140 2019-03-06 23:52:14 +01:00
jespergravgaard
ec863e5c43 Added line number to type inference errors. Closes #142 2019-03-04 23:55:38 +01:00
jespergravgaard
5e7d908018 Better error when assigning an undeclared variable. Closes #141 2019-03-04 23:38:07 +01:00
jespergravgaard
20cce60f40 Only removing intermediates that contain lo/hi operator. 2019-03-01 08:47:12 +01:00
jespergravgaard
ed2d992333 Fixed problem, where assigning to low/high value left an unused intermediate variable. Closes #129 2019-03-01 00:27:26 +01:00
jespergravgaard
de58d9b6dd Added missing ref files 2019-02-24 23:24:20 +01:00
jespergravgaard
0a955d6bec Finished constant string consolidation. Closes #90 2019-02-24 23:23:57 +01:00
jespergravgaard
fe0035af82 Added initial constant string consolidation. 2019-02-24 22:18:27 +01:00
jespergravgaard
dfd9af4d84 Added ASM function signature comment. Closes #82. 2019-02-19 20:51:48 +01:00
jespergravgaard
af54695232 Added support for block comments. 2019-02-18 00:12:30 +01:00
jespergravgaard
f0d77acb29 Added comments to variables identified as constants. 2019-02-17 18:21:16 +01:00
jespergravgaard
b8ab7c6c49 Added comments before loops 2019-02-17 17:53:19 +01:00
jespergravgaard
41a7053b25 Implemented statement comments. Assignments are working OK. Some are still thrown away during optimizations. 2019-02-17 15:50:42 +01:00
jespergravgaard
27cfaf0ecf Implemented file-level comments. Added a few comment tests. 2019-02-17 11:03:55 +01:00
jespergravgaard
69562b7fa9 Added comments to constants in ASM. 2019-02-17 00:49:19 +01:00
jespergravgaard
67e223d629 Added procedure comments to the compiled assembler. 2019-02-16 23:23:55 +01:00
jespergravgaard
b5c61aad5d Added level colors 2019-02-10 22:03:55 +01:00
jespergravgaard
7f78991374 Added next piece 2019-02-10 21:10:40 +01:00
jespergravgaard
bfce6bffd1 Renamed tests. 2019-02-10 19:11:50 +01:00
Jesper Gravgaard
dcd4e070ba Implemented new recursion check that performs much better on programs with many different branches. 2019-02-03 17:36:34 +01:00
jespergravgaard
347a5d0331 Refactored call graph analysis in preparation for improved recursion detection. 2019-02-03 08:32:38 +01:00
jespergravgaard
b6038ccf0a Added error when condition is non-boolean. Closes #134 2019-01-17 23:28:39 +01:00
jespergravgaard
bb9a4ac461 Merge remote-tracking branch 'origin/master'
# Conflicts:
#	src/test/java/dk/camelot64/kickc/test/TestPrograms.java
2019-01-12 13:59:14 +01:00
jespergravgaard
a6fc9c157e Added missing fragments for rolling variable amounts - and a few tests. 2019-01-12 13:58:12 +01:00
Jesper Gravgaard
4d3056bc0e Added another scrolling screen test and a fragment 2019-01-11 20:23:30 +01:00
jespergravgaard
7b65dfedfb Fixed new testAdded missing word-fragment. 2019-01-11 06:42:05 +01:00
jespergravgaard
35ffcbf914 Fixed new test 2019-01-10 23:00:05 +01:00
jespergravgaard
8910ba56a2 Fixed issue when removing unused procedures that is discovered during static analysis. 2019-01-10 22:58:00 +01:00
jespergravgaard
f664e8183f Fixed issue with constant consolidation creating literals that was not calculatable. 2019-01-08 00:07:24 +01:00
jespergravgaard
e8d00067ef Fixed version number 2019-01-07 22:38:29 +01:00
jespergravgaard
854b32d5b3 Fixed an array index optimization that was to aggressive. 2019-01-07 21:58:40 +01:00
jespergravgaard
9a3bd627f8 Added 2 missing fragments, 2019-01-06 23:48:25 +01:00
jespergravgaard
d2df1dfb68 Added missing fragment. 2019-01-06 17:45:26 +01:00
jespergravgaard
b4b4658696 Added a few missing 16-bit fragments. 2019-01-05 17:31:59 +01:00
jespergravgaard
aa109d236f Now treats char 160 (nbsp) like whitespace. Added sin-sprites on top of sprite-tester. 2019-01-03 22:52:29 +01:00
jespergravgaard
2866aad652 Fixed small issue with missing -F in kickc.bat 2019-01-03 21:41:00 +01:00
jespergravgaard
5b62308854 Started work on version 0.7 2019-01-03 20:29:48 +01:00
jespergravgaard
4ce4667e57 Moved examples around. 2019-01-03 19:59:31 +01:00
jespergravgaard
0b881a9596 fixed tests 2019-01-03 19:21:12 +01:00
jespergravgaard
fe29de28d5 fixed problem 2019-01-03 18:55:56 +01:00
jespergravgaard
8898dfb255 Added missing fragment for Scan/Desire. 2019-01-03 18:54:59 +01:00
jespergravgaard
db733eec53 Implemented new more robust sprite routine. Added game_over game state. Added GAME OVER chars to charset. 2019-01-03 18:15:03 +01:00
jespergravgaard
e35ce855b0 Added level-based score increase, missing fragments and support for zero-filled DWORD-arrays. 2018-12-31 00:05:38 +01:00
jespergravgaard
40a2a7b1eb Added movedown speed-up based on level. 2018-12-30 23:36:05 +01:00
jespergravgaard
621c1e19e0 Fixed position of I 2018-12-30 03:58:49 +01:00
jespergravgaard
4432812b06 fixed test 2018-12-30 03:20:58 +01:00
jespergravgaard
e91ae1b60e Fixed level calculation when over 9. 2018-12-30 03:15:59 +01:00
jespergravgaard
6ff6d7c2cc Added level. (not correct BCD after 9) 2018-12-30 03:05:22 +01:00
jespergravgaard
27e00e5e80 fixed tests. 2018-12-30 01:54:29 +01:00
jespergravgaard
84db15759b Fixed piece rotations to match NES tetris. 2018-12-30 01:35:58 +01:00
jespergravgaard
25d4c89445 Added a score renderer - and some fragments. 2018-12-30 01:00:45 +01:00
jespergravgaard
638ef22c63 Added score calculation (plus some missing fragments and handling of dword array initializers). 2018-12-30 00:12:19 +01:00
jespergravgaard
30ad94dda3 Saved memory and code by combining screen chars and extended colors in kasm-script. 2018-12-29 22:53:02 +01:00
jespergravgaard
c3e559f8c9 Added needed parts of font and proper colors. 2018-12-29 22:31:55 +01:00
jespergravgaard
76b13d6b55 Fixed sprite multiplexer when double buffering. 2018-12-29 18:52:23 +01:00
jespergravgaard
b1d358403a Implemented double buffered rendering. 2018-12-29 17:35:46 +01:00
jespergravgaard
84eb93b21e Fixed pixel error 2018-12-29 14:46:51 +01:00
jespergravgaard
bba1f52d56 Added playfield border color. 2018-12-29 02:40:02 +01:00
jespergravgaard
bd64ba36dd Improved inline kickasm naming 2018-12-29 00:55:34 +01:00
jespergravgaard
006aa5b428 Added piece initial positions. 2018-12-29 00:36:24 +01:00
jespergravgaard
7d70b371ba Closer to real tetris 2018-12-28 23:55:29 +01:00
jespergravgaard
22aa93e802 Added ECM mode and background gfx. 2018-12-27 22:57:22 +01:00
jespergravgaard
d956ff9fcf Rearranged Tetris files. 2018-12-27 00:09:10 +01:00
jespergravgaard
53a161d52f Moved sprite IRQ's to separate file. 2018-12-26 00:39:38 +01:00
jespergravgaard
d9d28f4018 Optimized a bit. 2018-12-25 23:25:42 +01:00
jespergravgaard
627df0bda9 Fixed problem where uninitialized variables resultes in compile errors. Closes #131 2018-12-25 22:46:58 +01:00
jespergravgaard
f6a566e2f8 Fixed tests. 2018-12-25 21:47:19 +01:00
jespergravgaard
2b25aec8ee Added missing call-path to interrupts used during uplift clobber-analysis. Closes #130 2018-12-25 21:33:07 +01:00
jespergravgaard
ceb271d021 Fixed tests. 2018-12-25 17:44:43 +01:00
jespergravgaard
f8191e8345 Default runs @begin code and then optimizes to main() if no code exists outside main. 2018-12-25 17:04:50 +01:00
jespergravgaard
2be7b2ca2b Fixed problem with volatiles reusing zero page addresses used by other variables. Closes #128 2018-12-24 15:05:46 +01:00
jespergravgaard
85c6f09590 Improved tests showcasing problems with volatiles. 2018-12-24 14:14:29 +01:00
jespergravgaard
b92ea8415b Added tests showcasing problems with volatiles. 2018-12-24 11:12:47 +01:00
jespergravgaard
8ef005e64d Fixed several compiler issues with volatiles. 2018-12-24 02:27:12 +01:00
jespergravgaard
fae4eb9e6c Added NES bg image 2018-12-22 09:26:42 +01:00
jespergravgaard
6f4f2cdd4b Added missing image 2018-12-19 00:34:21 +01:00
jespergravgaard
44d6e5fbbb Fixed tests (after reincluding cmp#0) 2018-12-19 00:33:27 +01:00
jespergravgaard
45b03818e4 Improved remove lines implementation 2018-12-18 23:09:20 +01:00
jespergravgaard
468def2d6a Minor refactoring. 2018-12-06 17:24:46 +01:00
jespergravgaard
7c74fd93d0 Minor refactoring. 2018-12-04 23:58:25 +01:00
jespergravgaard
33d1b90974 Fixed test. 2018-12-03 02:24:43 +01:00
jespergravgaard
0073fedf4f Fixed test. 2018-12-03 01:49:28 +01:00
jespergravgaard
a79e318bcd Working on Tetris. Implemented line removal. Fixed fragment error and added 2 missing fragments. 2018-12-03 01:46:48 +01:00
jespergravgaard
4724d7707c Working on Tetris. Added colors and random piece selection (from SID voice 3 noice). Moved some code to separate files. 2018-12-03 00:37:54 +01:00
jespergravgaard
eaa8d0c3fc Working on Tetris. 2018-12-02 23:10:02 +01:00
jespergravgaard
44e2075896 Working on Tetris. Added 3 failing tests with discovered problems. 2018-12-02 21:31:03 +01:00
jespergravgaard
04d777ec6c Working on tetris 2018-11-28 07:27:44 +01:00
jespergravgaard
c20389e310 Added a few missing fragments and support for arrays of pointers. 2018-11-25 02:46:22 +01:00
jespergravgaard
264f854133 Working on 16-bit rotation comparison 2018-11-17 16:49:55 +01:00
jespergravgaard
2a25f8d79d Improved logging of live ranges. 2018-11-11 21:51:37 +01:00
jespergravgaard
fc867aea3d Fixed tests 2018-11-08 01:11:38 +01:00
jespergravgaard
46751edd16 Fixed fragment errors. Added missing fragments. Working on 16bit 3D. 2018-11-08 01:06:33 +01:00
jespergravgaard
d482815704 Re-added tests. 2018-11-08 00:14:25 +01:00
jespergravgaard
93a0d9110a Removed surefire section. 2018-11-08 00:05:42 +01:00
jespergravgaard
659b274a60 Disabling all test cases - replacing with trivial test. 2018-11-07 23:45:29 +01:00
jespergravgaard
516205e1a4 Trying to add CI testing again. Working on improving 3D quality. 2018-11-07 23:41:30 +01:00
Jesper Gravgaard
77c0edab1a improved multiply tables 2018-11-04 20:46:42 +01:00
Jesper Gravgaard
67611e548b Added print_at methods 2018-11-03 19:02:59 +01:00
jespergravgaard
808ed90f83 Added working perspective to 3D rotation. 2018-10-31 00:45:59 +01:00
jespergravgaard
9b101f29bd Improved readability. 2018-10-21 20:20:24 +02:00
jespergravgaard
4d031a82f1 Improved readability. 2018-10-21 20:00:53 +02:00
jespergravgaard
467f5bcbb8 Added missing fragments 2018-10-21 18:15:15 +02:00
jespergravgaard
6d98f18960 Implemented working 3d rotation. 2018-10-21 17:25:33 +02:00
jespergravgaard
8421b47760 Fixed constant elimination optimization. Added (unfinished) 3D example. 2018-10-21 16:03:19 +02:00
jespergravgaard
5896f483b7 Improved readability a bit. 2018-10-20 21:05:11 +02:00
jespergravgaard
87933460f3 Implemented z-rotation for 8 sprites. 2018-10-20 20:43:26 +02:00
jespergravgaard
2f1f530128 Optimized rotation position calculation 2018-10-19 02:26:42 +02:00
jespergravgaard
908cb3ea8d Changed fast multiply to a _prepare(a) & _prepared(b) sub-functions.
Added support for "." operator in ASM.
2018-10-19 00:28:57 +02:00
jespergravgaard
5d38d8c6ec Changed rotate to use 8-bit sine and 8x8 bit multiplication. 2018-10-18 23:28:59 +02:00
jespergravgaard
a6c10c5c65 Added fragment folder option to sh. 2018-10-18 22:46:41 +02:00
jespergravgaard
0a25830de9 Added rotate example 2018-10-18 22:36:11 +02:00
jespergravgaard
ead3fe7eb8 Added some missing fragments 2018-10-18 09:42:24 +02:00
jespergravgaard
8adbdd59e4 Fixed test 2018-10-17 23:23:54 +02:00
jespergravgaard
fabc107cd1 Merge remote-tracking branch 'origin/master' 2018-10-17 23:01:24 +02:00
jespergravgaard
5050452e23 Fixed infinite loop during optimization when aliase candidates end up with one single element. 2018-10-17 23:00:54 +02:00
Jesper Gravgaard
688df931f0 Working 16bit signed fast multiplication - with test. 2018-10-17 13:42:52 +02:00
jespergravgaard
0b4cb53d07 Added signed fast 16bit multiply. 2018-10-17 12:11:42 +02:00
jespergravgaard
e9892219b6 Added fast 16bit unsigned multiplication. 2018-10-17 01:40:56 +02:00
jespergravgaard
17cb00955c Added all current verbosity options. 2018-10-16 17:29:00 +02:00
jespergravgaard
9cf226348c Added a few verbosity options plus a missing fragment. 2018-10-16 02:02:51 +02:00
jespergravgaard
25f5d77f34 Added a few verbosity options plus a missing fragment. 2018-10-16 02:02:30 +02:00
jespergravgaard
6bd55add24 Moved unused fragments. Changed clobber syntax in inline kickasm. 2018-10-07 16:20:04 +02:00
Jesper Gravgaard
75b923e11e Fixinf windows newlines in fragments 2018-10-07 12:03:45 +02:00
Jesper Gravgaard
7d2c09ea68 Fixed Win/Linux difference for fragment test 2018-10-07 11:36:52 +02:00
Jesper Gravgaard
287ffb46ed Some test work 2018-10-07 03:10:48 +02:00
Jesper Gravgaard
2b5f6b8856 Rearraning source files to bring KC/REF and fragment files out of the JARS. 2018-10-07 02:32:09 +02:00
jespergravgaard
4373150634 Reinstated tests. 2018-10-02 02:14:12 +02:00
Jesper Gravgaard
0f813d9d0f Fixed BAT runner 2018-10-02 01:53:39 +02:00
Jesper Gravgaard
2ec3f9dd12 Fixed BAT runner 2018-10-02 01:51:35 +02:00
jespergravgaard
e4e762aa13 Added bat file to assembly 2018-10-02 01:17:00 +02:00
jespergravgaard
00e6293e20 JAR file version number should now follow git tag. 2018-10-02 01:06:36 +02:00
Jesper Gravgaard
b810023859 Implemented initial BAT file for execution on Windows. 2018-10-02 00:40:58 +02:00
jespergravgaard
ec3790a39f Added new version of the manual. 2018-10-02 00:08:41 +02:00
jespergravgaard
32d224589a Added kickc.sh executor and examples of kickc code to release. 2018-10-01 01:15:00 +02:00
jespergravgaard
0b86f55829 Added PDF manual 2018-09-30 20:32:50 +02:00
jespergravgaard
66b1249336 Refactored to a single CI task - with a single artifact 2018-09-30 15:51:15 +02:00
Jesper Gravgaard
84c2e54085 Hoping to create beter release ZIP 2018-09-29 12:24:57 +02:00
jespergravgaard
fcd3902090 Added test for default interrupt type (KERNEL_MIN). 2018-09-26 22:44:40 +02:00
jespergravgaard
c70801ee85 Added option for controlling uplift combinations. 2018-09-26 22:01:15 +02:00
jespergravgaard
44c32ba2e8 Added current path to includes. 2018-09-26 21:13:54 +02:00
jespergravgaard
b777a6bd98 Updated libraries. Added packaging assembly to maven POM. 2018-09-26 19:57:15 +02:00
jespergravgaard
7cecb2fb71 Added rudimentary bitwise not. 2018-09-13 12:08:11 +02:00
jespergravgaard
5f91f3c8be Added initial package phase to maven. 2018-09-03 00:33:16 +02:00
jespergravgaard
9816e4cba1 Fixed test 2018-09-01 00:03:45 +02:00
jespergravgaard
e335a956e7 Added inline hello world 2 2018-08-31 23:43:37 +02:00
jespergravgaard
82c7a6c84d Improved command help 2018-08-31 23:22:09 +02:00
jespergravgaard
17ad45d453 Moved some KC-files to stdlib. Added option for multiple include paths. 2018-08-31 22:52:10 +02:00
jespergravgaard
7f29a344ae Improved commandline to include output-directory, compilation & execution. 2018-08-27 01:03:15 +02:00
jespergravgaard
7b940014a2 Version 0.5. First cmdline runnable version. 2018-08-26 09:12:31 +02:00
jespergravgaard
ffba4a87c1 Added target to create JAR 2018-08-25 10:28:22 +02:00
jespergravgaard
c05b04ff3c Created initial simple commandline using picocli. 2018-08-23 23:54:39 +02:00
jespergravgaard
8efb7f9f2f Added example of (non-working) calls inside unrolled loop.
Refactored hyperscreen to use c64.kc.
2018-08-23 22:14:39 +02:00
jespergravgaard
6dca0ada51 Added few comments and a few new constants 2018-08-23 00:35:19 +02:00
jespergravgaard
63badba136 Removed a bit more logging. 2018-08-23 00:24:33 +02:00
jespergravgaard
2c6fab8fe4 Removed a bit more logging. 2018-08-22 22:38:40 +02:00
jespergravgaard
126c8f6e0d Added detection of non-constant loops. 2018-08-22 22:23:43 +02:00
jespergravgaard
a223abdf6e Now also simplifying +0 and *0 in constant values. 2018-08-22 12:40:19 +02:00
jespergravgaard
105510a9ae Now consolidating constant integer increments eliminating xx+1+1+1 expressions in the output. 2018-08-22 11:36:38 +02:00
jespergravgaard
42bc31126a Decreased default logging. 2018-08-22 11:10:10 +02:00
jespergravgaard
2a5cdfb064 A bit more inlining 2018-08-22 10:17:58 +02:00
jespergravgaard
5fe09eefde Fixed test ref (and added failing infinite unroll loop) 2018-08-22 02:45:38 +02:00
jespergravgaard
a78960a823 Using loop unrolling in logo scroller. 2018-08-22 02:34:03 +02:00
jespergravgaard
1d339804da Added a double unroll loop 2018-08-22 02:19:27 +02:00
jespergravgaard
be18a84d98 Working loop unrolling! There are probably still a lot of non-working cases - and the lack of loop unroll limit will definitely cause infinite loops. 2018-08-22 01:42:00 +02:00
jespergravgaard
bbeb37ea61 Loop unroll prepare now complete. 2018-08-21 16:45:07 +02:00
jespergravgaard
4f23ed5079 Split unroll prepare into separate pass 2018-08-21 10:01:09 +02:00
jespergravgaard
b19bf2246e Created "loop-unroll" branch. 2018-08-19 21:48:26 +02:00
jespergravgaard
a87da922f8 Centralized getting all entry point blocks in the program into ControlFlowGraph 2018-08-12 01:03:44 +02:00
Jesper Gravgaard
75a8749db4 Moved interrrupt registers into c64.kc 2018-08-11 12:04:52 +02:00
Jesper Gravgaard
39e7ce3df1 Refactored all casts to pointers to use the generic OperatorCastPtr. 2018-08-11 11:38:19 +02:00
Jesper Gravgaard
129de6c3ec Refactored most casts to pointers to use the generic OperatorCastPtr. 2018-08-11 11:30:19 +02:00
Jesper Gravgaard
fe7950798e Added call-graph recursion in clobber-analysis for interrupt hardware clobber. 2018-08-11 11:08:43 +02:00
jespergravgaard
9a9eeec129 Fixed tests. 2018-08-11 00:52:02 +02:00
jespergravgaard
f33d7018ba Implemented clobber analysis to ensure that hardware clobber interrupts only save the registers clobbered. 2018-08-11 00:48:15 +02:00
jespergravgaard
9ef574f32d Fixed tests 2018-08-10 20:33:17 +02:00
jespergravgaard
df224c70b6 Fixed tests 2018-08-10 20:32:45 +02:00
jespergravgaard
f8ec74dc14 Implemented hardware & kernel interrupt types. 2018-08-10 12:46:44 +02:00
jespergravgaard
6a20fc33c7 Improved comments 2018-08-06 00:41:29 +02:00
jespergravgaard
044282e523 Added 2 Raster IRQ tests. 2018-08-06 00:37:40 +02:00
jespergravgaard
238cd2a531 Added volatile keyword and initial implementation ensuring that volatiles are not constant-optimized or put into registers. 2018-08-05 22:40:13 +02:00
jespergravgaard
b23029760a IRQ referencing outside const. 2018-08-05 17:50:45 +02:00
jespergravgaard
b8841a90f5 Added forward reference support yo procedure references. 2018-08-05 17:46:42 +02:00
jespergravgaard
b755cd4297 Added interrupt types (kernel, hardware). 2018-08-05 17:28:02 +02:00
Jesper Gravgaard
f463606742 Implemented interrupt procedures and pointers to procedures initial support. 2018-08-05 13:33:23 +02:00
Jesper Gravgaard
c0c7a1da44 Fixed test 2018-08-04 13:11:34 +02:00
jespergravgaard
0763a63a66 Working on interrupts 2018-08-04 13:07:21 +02:00
jespergravgaard
18473295c9 Fixed tests 2018-08-03 02:08:39 +02:00
jespergravgaard
ca55ac68cb Improved the multiplexer - now 32 sprites. 2018-08-03 02:02:08 +02:00
jespergravgaard
962fefe582 Improved the multiplexer 2018-08-03 00:07:42 +02:00
jespergravgaard
3559ac29d5 Improved multiplexer 2018-08-02 23:05:33 +02:00
jespergravgaard
0f4490dfb0 Implemented sprite multiplexer 2018-08-02 22:57:20 +02:00
jespergravgaard
3658d9f68e Implemented sorter inside a multiplexer. 2018-08-02 02:53:52 +02:00
Jesper Gravgaard
c272b93872 Added kickasm support for expressions specifying bytes & cycles. 2018-07-25 20:44:10 +02:00
Jesper Gravgaard
6475f70192 Added kickasm support for bytes & cycles. Changed location to pc. 2018-07-25 19:59:49 +02:00
Jesper Gravgaard
ae765bec6b Allowing location to be any expression that ends up being constant. Changed syntax for kickasm directives. 2018-07-25 20:09:12 +09:00
Jesper Gravgaard
19855bed21 Added "location" directive to inline kickasm to allow absolute placement. 2018-07-25 17:10:46 +09:00