1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2024-11-20 02:32:36 +00:00
Commit Graph

1471 Commits

Author SHA1 Message Date
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
Jesper Gravgaard
e319ec9260 Added bool min test 2018-04-18 20:03:39 +02:00
Jesper Gravgaard
1ae9dbb6cf Added inline string test 3 & made minor fix to dtv-blitter-min 2018-04-18 12:44:52 +02:00
jespergravgaard
3ddc19c5c2 Implemented blitter minimal example. Added missing ref files. 2018-04-15 23:32:49 +02:00
Jesper Gravgaard
c29d278146 Adding more C64DTV test programs 2018-04-15 20:02:48 +02:00
Jesper Gravgaard
9cc3490f28 Added the last modes 2018-04-14 01:08:08 +02:00
Jesper Gravgaard
7fd8669cc1 Fixed constant inlining of strings. Closes #102 2018-04-13 20:06:29 +02:00
jespergravgaard
23ff5bab95 Added Sixs FRED mode 2018-04-10 00:00:01 +02:00
jespergravgaard
301ea8b645 Added more presets 2018-04-09 08:46:37 +02:00
jespergravgaard
a49e61f747 Added more gfx to the tester 2018-04-08 02:32:37 +02:00
jespergravgaard
706734360f Fixed tests 2018-04-07 17:03:36 +02:00
jespergravgaard
72e39f7cc4 Form and GFX are now two separate modes 2018-04-07 16:01:35 +02:00
jespergravgaard
2aef56bb2c Implemented split screen form menu 2018-04-05 00:30:26 +02:00
jespergravgaard
6bfc6de252 Added a keyboard event queue with scanner. Using it in C64DTV Gfx Explorer. 2018-04-04 12:07:14 +02:00
jespergravgaard
93fb8e1bff Added form colors. Added all fields to form. 2018-04-03 22:52:59 +02:00
jespergravgaard
0ad7984fe2 Added form field max values 2018-04-03 19:49:06 +02:00
jespergravgaard
25f396de12 Added z4 to tests 2018-04-03 08:21:04 +02:00
jespergravgaard
17ffe83bd2 Implemented v0.1 of a screen form library 2018-04-03 00:02:25 +02:00
jespergravgaard
91589327e3 Fixed loop detection problem. 2018-04-01 12:32:45 +02:00
jespergravgaard
10fd6ff19a Lowered uplift combinations further for higher speed 2018-04-01 12:17:13 +02:00
jespergravgaard
617b85ba8d Added missing a ora c 2018-04-01 04:40:28 +02:00
jespergravgaard
2d2ca18553 Fixed syntax 2018-04-01 04:38:11 +02:00
jespergravgaard
ef83e4342c Making loop error not fail. 2018-04-01 04:00:07 +02:00
jespergravgaard
302b5a62d7 Implemented partial gfx mode tester for c64dtv. found loop error. 2018-04-01 03:58:07 +02:00
jespergravgaard
6e9503a14d Made modes 1-3 compatible with stock C64 2018-03-29 09:19:36 +02:00
jespergravgaard
626329ddaa Added hicol MC mode 2018-03-29 09:09:07 +02:00
jespergravgaard
89e2900fdc Added ECM modes and MC std mode. 2018-03-29 08:49:51 +02:00
jespergravgaard
88313bbb81 added std charset / hicolor std charset and ecm std charset modes 2018-03-29 00:37:04 +02:00
jespergravgaard
7a55705b3e Added Sixs FRED 2 mode 2018-03-28 16:43:47 +02:00
jespergravgaard
b4bfaf016a Lowered number of uplift permutations to 1000 2018-03-28 15:21:22 +02:00
jespergravgaard
e518c393e6 Added chunky 8bpp BMM 2018-03-28 13:00:32 +02:00
jespergravgaard
839c356118 Added 8bpp Pixel Cell Mode 2018-03-27 22:32:06 +02:00
Jesper Gravgaard
46e5cb3e79 Fixed high-byteoperator problem with constants. 2018-03-27 12:01:58 +02:00
Jesper Gravgaard
39a6b0493f Fixed high-byteoperator problem with constants. 2018-03-27 11:52:51 +02:00
jespergravgaard
b122ac8af3 Added Sixs FRED mode. 2018-03-27 10:01:28 +02:00
jespergravgaard
472e6c43bd Better test image for Two Plane Bitmap Mode. Added keyboard glitch tester and operator hi/lo problem test. 2018-03-26 23:49:07 +02:00
jespergravgaard
6cfa6633f4 Now also eliminating unused variables from phi blocks. Closes #89 2018-03-26 21:57:30 +02:00
jespergravgaard
dc25fa7d11 Improved keyboard routine slightly. 2018-03-26 21:41:09 +02:00
jespergravgaard
770f213b40 Added missing SCREEN var 2018-03-26 00:44:41 +02:00
jespergravgaard
13a3f46858 Started C64DTV GfxMode tester 2018-03-25 23:40:38 +02:00
jespergravgaard
e01be9d33b Added a partial 3x5 font - ref data 2018-03-25 13:31:57 +02:00
jespergravgaard
f652d14fed Added a partial 3x5 font 2018-03-24 22:37:11 +01:00
jespergravgaard
7922d0f21a Added missing fragments 2018-03-22 22:30:16 +01:00
Jesper Gravgaard
71e4e5d22d Added shift support to CHARGEN tester 2018-03-22 21:50:25 +01:00
Jesper Gravgaard
49d2aaaf24 Merge remote-tracking branch 'origin/master' 2018-03-22 18:34:09 +01:00
Jesper Gravgaard
981d925a4d Coding CHARGEN tester 2018-03-22 18:34:04 +01:00
jespergravgaard
18bf726d1c Fixed P key 2018-03-22 00:04:41 +01:00
Jesper Gravgaard
cfd0e836ce Added keyboard space check test program. 2018-03-20 00:52:55 +01:00
Jesper Gravgaard
b796a248c0 Added a fragment 2018-03-20 00:44:57 +01:00
Jesper Gravgaard
f613cbbe36 Added keyboard library and tester 2018-03-20 00:30:27 +01:00
jespergravgaard
2015c17d25 Updated fragment reference 2018-03-19 01:22:04 +01:00
jespergravgaard
8f6db3a39b Implemented keyboard routines for reading the keyboard matrix status. 2018-03-19 01:15:18 +01:00
jespergravgaard
171b015d5f Implemented simple DTV raster test 2018-03-18 16:35:47 +01:00
jespergravgaard
f212c55c02 Fixed const casting problem 2018-03-11 21:45:26 +01:00
jespergravgaard
979cb91eeb Moved operator type inference to Operator class. Improved type inference. 2018-03-11 18:44:48 +01:00
Jesper Gravgaard
18335aa29a Moved constant literal value calculation into Operator 2018-03-10 17:06:42 +01:00
Jesper Gravgaard
fd0b667b19 Moved expression operators to separate package 2018-03-06 19:50:26 +01:00
Jesper Gravgaard
133f8603c7 Fixed precedence problems for casts and inc/dec 2018-03-05 10:10:56 +01:00
jespergravgaard
f4196b9e67 Fixed log 2018-03-05 01:14:10 +01:00
jespergravgaard
f31eb7b1f0 Added scaled sin generator - found problem with cast & precedence. 2018-03-05 01:00:33 +01:00
jespergravgaard
0663888a3f Added initial min/max sin-generator. 2018-02-26 23:00:10 +01:00
jespergravgaard
d5fd4a41c3 Fixed loop problem. 2018-02-25 19:27:36 +01:00
jespergravgaard
53d021bae3 Added second 8-bit sinus test (against 16-bit sinus) 2018-02-25 14:35:20 +01:00
jespergravgaard
2789361724 Fixed 8-bit sinus implementation. 2018-02-25 14:07:44 +01:00
jespergravgaard
7d26c74c21 Added initial 8-bit sinus (not quite working yet.) 2018-02-25 11:10:50 +01:00
jespergravgaard
97bc9870f9 Syntax changes 2018-02-25 00:39:19 +01:00
jespergravgaard
651de919b3 Comment fixed 2018-02-25 00:10:10 +01:00
jespergravgaard
73bdd4ff8d Optimized sin /128 part. 2018-02-25 00:08:11 +01:00
jespergravgaard
f0917c7bed Optimized ZP coalesce vastly. 2018-02-24 21:06:25 +01:00
jespergravgaard
1ec9060962 Added clobber test to ZP coalesce 2018-02-24 14:12:37 +01:00
jespergravgaard
a87a97c669 Moved sin to separate method. 2018-02-24 13:02:15 +01:00
jespergravgaard
948db1a389 Fixed lo/hi test 2018-02-24 08:14:01 +01:00
jespergravgaard
b3537e3b66 Implemented full -$7fff-$7fff range word sinus generator. 2018-02-24 00:46:25 +01:00
jespergravgaard
6702baa875 Fixed lo/hi of dwords in constants. 2018-02-23 22:15:10 +01:00
jespergravgaard
37bfd18716 Working a bit on the sinus table generator. 2018-02-20 23:12:39 +01:00
jespergravgaard
696d1a1f5f Working a bit on sinus table generator. Tested resulting sinus - it is within +/-2 of a java-calculated sinus. 2018-02-20 22:41:36 +01:00
jespergravgaard
db603554ac Using reciprocal multiplication for divisions inside loop. 2018-02-20 10:53:31 +01:00
jespergravgaard
d3070fec14 Implemented first sinus generator using sinx=x-x^/3!+x^/5!. 2018-02-19 08:29:47 +01:00
jespergravgaard
a695a94422 Extended linear table gen with two tables. 2018-02-18 20:41:36 +01:00
jespergravgaard
b5dfef7368 Optimized line table generator. Improved const identification in phi-values. 2018-02-18 19:52:51 +01:00
jespergravgaard
0478bc7404 Limited label usage for constant integers referenced outside scope. Optimized division. 2018-02-18 19:39:08 +01:00
jespergravgaard
d3898d717e Using labels for constant integers referenced outside scope. 2018-02-18 17:49:03 +01:00
jespergravgaard
76d3e25b84 Implemented inline dword constructor dword dw = { wl, wh }; 2018-02-18 15:35:17 +01:00
jespergravgaard
0c7883532e Split multiply tests for performance 2018-02-16 08:59:54 +01:00
jespergravgaard
8f21ffc0e4 Implemented signed word multiplication & test. 2018-02-16 01:13:57 +01:00
jespergravgaard
34d3c732da Implemented word multiplication 2018-02-15 20:36:26 +01:00
jespergravgaard
b5a79848f3 Implemented dword ASM and printing 2018-02-15 19:50:33 +01:00
jespergravgaard
8b54f38640 Implemented bitshift signed byte multiply. 2018-02-15 12:35:40 +01:00
Jesper Gravgaard
c936da289e Implemented normal binary multiply for unsigned integers - mul8u(). 2018-02-14 11:30:31 +01:00
Jesper Gravgaard
a6f32bea13 Renamed multiply.kc to fastmultiply.kc - and methods multiply()/signed_multiply() to mulf8u(), mulf8s() 2018-02-14 10:05:18 +01:00
Jesper Gravgaard
7900c846c9 Adde useful comment 2018-02-13 23:21:24 +01:00
Jesper Gravgaard
3eb08597cf Implemented 16bit signed division. 2018-02-13 23:10:47 +01:00
Jesper Gravgaard
1fd0cd6874 Moved remainder to global var 2018-02-13 22:07:01 +01:00
Jesper Gravgaard
8705527316 Fixed conflict 2018-02-13 21:40:52 +01:00
Jesper Gravgaard
a50d685574 Fixed problem with phi lifting not updating predecessor in phi blocks when introducing new blocks. Implemented signed division for bytes. 2018-02-13 21:27:17 +01:00
jespergravgaard
1feed93b43 Renamed long branch fix label. 2018-02-13 13:05:46 +01:00
jespergravgaard
aec15a3125 Removed a bit of unused code. 2018-02-13 12:46:35 +01:00
jespergravgaard
c8a2d03550 Fixed register coalesce issues (Double.MIN_VALUE is unexpectedly positive). 2018-02-13 04:23:44 +01:00
jespergravgaard
9f80f71c64 Isolated KickAss assembly during test. Fixed long branches. Closes #62 2018-02-13 03:34:21 +01:00
jespergravgaard
2db042801b Isolated KickAss assembly during test. Fixed long branches. Closes #62 2018-02-13 03:34:01 +01:00
jespergravgaard
0d6ce93e93 Added KickAss assembly to Test 2018-02-12 23:41:46 +01:00
jespergravgaard
6b43d797f5 Using address-of in test-division. 2018-02-11 23:55:52 +01:00
jespergravgaard
3f62d86312 Implemented working address-of operator byte* pte = &b1; 2018-02-10 22:08:36 +01:00
jespergravgaard
085aa9f825 Added missing toString/() 2018-02-03 15:46:12 +01:00
jespergravgaard
623f83a076 Added address-of operator. Working in basic programs. Transience of variables not implemented so there is a risk the variable being referenced is optimized into a constant or removed. Closes #78 2018-02-03 13:20:34 +01:00
jespergravgaard
7343a85b91 Moved division into library 2018-02-01 22:55:26 +01:00
jespergravgaard
b502c26140 Optimizing zeropage coalesce to minimize moving values around. Closes #80 2018-02-01 22:36:54 +01:00
jespergravgaard
45302103fa Implemented 16bit division. Added support for word arrays. (idx must be multiplied by 2 manually) 2018-02-01 20:17:08 +01:00
jespergravgaard
e0124ee654 Added 8bit unsigned division. Ensured that pointers are generated into ASM labels. 2018-01-31 21:27:23 +01:00
jespergravgaard
b466f2f5cc Added test provoking a register clobber error. 2018-01-30 22:23:07 +01:00
jespergravgaard
63f6620246 Implemented register(A/X/Y) keyword for allocating variables to specific register. Closes #70 2018-01-30 22:18:49 +01:00
jespergravgaard
7e268c5b4f Moving declared register through the variable chain. 2018-01-30 11:50:18 +01:00
jespergravgaard
88744c8624 Consolidating variable methods - preparing to remove the 3 sub-classes. 2018-01-30 10:23:55 +01:00
jespergravgaard
6a012a3fd0 Added register keyword 2018-01-30 10:04:35 +01:00
jespergravgaard
341d8c5556 Renamed dword fragments from vl... to vd... 2018-01-28 23:09:47 +01:00
jespergravgaard
9b09aaab14 Made dword value higher (>$80000000) 2018-01-28 22:15:09 +01:00
jespergravgaard
3d33851983 Improved dword type inference. 2018-01-28 17:21:57 +01:00
jespergravgaard
fff4299fb2 Added dword and signed dword. Closes #76 2018-01-28 16:19:15 +01:00
jespergravgaard
f599eb2735 Expanded inline casting to also handle nop casts of pointer derefs. 2018-01-24 23:29:44 +01:00
jespergravgaard
15c1108d2c Expanded inline casting to also handle word/pointer casts. Closes #2. 2018-01-22 00:31:28 +01:00
jespergravgaard
1646f9d3ff Implemented inline casting - allowing for improved ASM when doing no-op casting. 2018-01-21 23:24:28 +01:00
Jesper Gravgaard
eab2e64154 Dropped suite again. 2018-01-21 16:30:37 +01:00
Jesper Gravgaard
1d54fec7be Put tests into suite to get deterministic sequencing. 2018-01-21 11:39:06 +01:00
Jesper Gravgaard
9328608fe6 Rebuilt test files with new synth ASM's. 2018-01-21 11:14:20 +01:00
Jesper Gravgaard
2d8cf433f6 Sorting synthesis by clobber when printing. Added an handling of synths with equal cycles & clobber but different ASM. 2018-01-21 09:39:37 +01:00
jespergravgaard
267d006752 Improved bigscroll by inlining screen lines in array assignments. 2018-01-19 00:59:51 +01:00
jespergravgaard
30690b6306 Removed a bunch of synth rules. Added a few fragments. 2018-01-19 00:10:09 +01:00
jespergravgaard
cdbc2e05cf Removed one synth rule. Fixed flaw in others. 2018-01-18 23:51:42 +01:00
Jesper Gravgaard
eadf85a048 Improved fragment generation further. Rules need clean-up soon to improve efficiency. 2018-01-18 23:21:31 +01:00
jespergravgaard
08f2e3a6b8 Added rasterbar test program 2018-01-15 22:16:25 +01:00
jespergravgaard
13bd9509d1 Fixed issue with loop depth - now calculated corrent when some functions have no loops. 2018-01-15 21:02:49 +01:00
jespergravgaard
4c22877f0e Only logging synthesis issue when set to verbose 2018-01-07 12:41:13 +01:00
jespergravgaard
a6e75ffcb0 Implemented fragment tests - first for assignment to unsigned bytes. 2018-01-07 11:42:46 +01:00
jespergravgaard
a047fedebf Moved KC test files into separate folder 2018-01-06 16:36:54 +01:00
jespergravgaard
2603740d15 Moved KC test files into separate folder 2018-01-06 16:36:39 +01:00
jespergravgaard
40153fc6d6 Working on optimal synthesis 2018-01-06 14:01:40 +01:00
jespergravgaard
30d77c1450 Working on optimizing synthesis 2018-01-05 22:29:21 +01:00
jespergravgaard
b55485db50 Implemented sub-fragment clobber avoidance. Improved best template updating. Now the graph-based fragment synthesis system works. Still need to clean-up the synthesis rules. 2018-01-03 08:15:17 +01:00
jespergravgaard
e9965580a4 Iplemented graph based synthesis. Working on the kinks - eg. issue #75 2018-01-03 01:00:55 +01:00
jespergravgaard
3595db56db Renamed fragment system classes in prepararion of graph based solution. 2018-01-02 14:13:08 +01:00
jespergravgaard
2084be92e0 Implemented the rest of the comparison test. Fixed a double jump problem. 2018-01-02 10:17:59 +01:00
jespergravgaard
53d8afbb1d Fixed an error in with comparison rewriting 2018-01-01 22:59:06 +01:00
jespergravgaard
20b9ab6881 Tried adding more memory for the Junit JVM 2018-01-01 15:59:15 +01:00
jespergravgaard
939b70aa23 Started implementing new style fragment synthesis rules. Yielding quite good initial optimizations. 2018-01-01 15:09:47 +01:00
jespergravgaard
269c1343ed Implemented usage sorting and a file details logging option. 2017-12-31 00:15:23 +01:00
jespergravgaard
14616458e5 Used usage module to identify & remove all unneeded fragments. Many unused ones moved into a new "unused" folder to be removed later. 2017-12-30 23:54:27 +01:00
jespergravgaard
4f30cef2d3 Implemented asm template usage statistics. Now prefer synthesis over loading. 2017-12-30 21:59:23 +01:00
jespergravgaard
174346d0f1 Improved Fragment Synthesis - trying all possible combinations. Closes #71 2017-12-30 17:24:30 +01:00
jespergravgaard
66fdfb08a9 Improved ZP detection 2017-12-30 14:18:57 +01:00
jespergravgaard
2367aa93cd Added final score to the log 2017-12-30 13:45:59 +01:00
jespergravgaard
c7b137d631 Added working test for signed multiplication. Refactored AsmFragment synthesis away from relying on vwuc. 2017-12-30 11:55:28 +01:00
jespergravgaard
b95c7e20f5 Moved multiply into a library 2017-12-29 22:45:19 +01:00
jespergravgaard
df227e0b49 Implemented fast multiplication - tested that all results are correct. 2017-12-29 19:35:54 +01:00
jespergravgaard
fa00ecfbbf Test data for alignment test 2017-12-29 18:20:44 +01:00
jespergravgaard
694fb66379 Added data alignment directive for arrays/strings. 2017-12-29 18:20:11 +01:00
jespergravgaard
39925809e3 Removed AsmFragment log again 2017-12-29 16:34:55 +01:00
jespergravgaard
6b79ecc537 Implemented all fast multiply tables. 2017-12-29 16:05:27 +01:00
jespergravgaard
db6c1f54db Improved log format slightly 2017-12-29 13:53:16 +01:00
jespergravgaard
5ec1070b41 Improved tests for CI 2017-12-29 11:40:03 +01:00
jespergravgaard
31e412bb11 Slimming log output 2017-12-29 11:21:11 +01:00
jespergravgaard
32d7db5ce7 Moved tests into Maven Test area to allow maven-based testing. 2017-12-28 15:34:32 +01:00