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 |
|
Travis Fisher
|
073845093b
|
store symbol full names instead of constructing on demand. (~5% overall compiler speed improvement)
|
2019-04-09 23:09:42 -04: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
|
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 |
|