1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2024-09-29 03:56:15 +00:00
Commit Graph

42 Commits

Author SHA1 Message Date
jespergravgaard
48f4e99826 Added support for snprintf(). Closes #698 2021-08-13 21:22:17 +02:00
jespergravgaard
866460d942 Improved doxygen documentation. #672 2021-06-20 12:59:27 +02:00
jespergravgaard
f0970364b5 Parser now based on declarator - allowing for more advanced pointer/array syntax. Preparing for declarator-based functions. #121 2021-05-02 14:28:03 +02:00
jespergravgaard
4648165f86 Added "c64-" prefix on all C64-only libraries. 2021-02-04 09:18:27 +01:00
jespergravgaard
da789e007f Removed support for programs without segments. Closes #465 2020-12-21 08:57:41 +01:00
jespergravgaard
b195a3c545 Improved ASM procedure sequence to match calling sequence in program. 2020-06-27 23:26:57 +02:00
jespergravgaard
aee57979ef Now comments on global variables are no longer destroyed. However some comments appear twice! 2020-06-27 20:32:09 +02:00
jespergravgaard
711458ec1f Moved #include to CPreprocessor. Fixed problem where #include does not respect #if. Closes #442 2020-05-29 23:11:52 +02:00
jespergravgaard
897cde29e4 Added printf.h which contains functions for printing formatted numbers and strings. 2020-04-18 20:54:39 +02:00
jespergravgaard
cb07791eab Renamed print.h functions. 2020-04-13 20:06:30 +02:00
jespergravgaard
d12daf874d Updated all stdlib files to use standard C types. 2020-04-13 20:00:13 +02:00
jespergravgaard
beb30de7d1 Fixed ASM re-labelling error. #369 2020-03-30 20:33:26 +02:00
jespergravgaard
ae1536f429 Merged simpler live range calculation to master. Improved scope weight calculation to combine call graph depth and loop depth. Added missing fragments. 2020-03-23 00:10:07 +01:00
jespergravgaard
6b3b4bec5a Working on live range effective simple. Fixed aliasing and parameters. There is still problems with functions calling functions - such as print_w(), print_sw() and print_char(). 2020-03-22 22:26:39 +01:00
jespergravgaard
d1ec933032 Fixed error in recursive caller code. 2020-03-08 23:26:49 +01:00
jespergravgaard
1836a9bd92 Finally eliminated copy visitor!
Refactored CallPhiParameters to modify the current control flow graph.
2020-03-07 22:38:40 +01:00
jespergravgaard
5ffae4d92a Added C-source to generated test ASM. 2020-02-23 09:44:36 +01:00
jespergravgaard
3b043e11a7 Changed syntax for function signatures. 2019-12-26 09:51:41 +01:00
jespergravgaard
cfb27e5915 Converting constant value lists directly to constant values during parse. 2019-11-03 21:27:11 +01:00
jespergravgaard
fcf0d65bcb Adding a few directives to find. 2019-10-19 00:27:33 +02:00
jespergravgaard
624c27686c Added underscores to compiler-generated ASM-symbols to avoid clashes with C-symbols. Closes #329 2019-09-29 23:13:42 +02:00
jespergravgaard
3aad07f4e1 Disabled constant loop head optimization by default (until the two known issues have been fixed.) 2019-08-25 22:21:58 +02:00
jespergravgaard
7a49ded40c Now all instructions addressing zero-page have an explicit .z added to the ASM to ensure the ASM generated does zeropage-addressing. Closes #249 2019-08-07 21:00:21 +02:00
jespergravgaard
c78bebf2a8 Updated stdlib & tests with 0-terminated strings. 2019-08-07 19:48:56 +02:00
jespergravgaard
6c59110896 Fixed encoded string zero termination. Closes #192 2019-08-07 19:36:19 +02:00
Jesper Gravgaard
ce5e3cf19a Added constant loop head optimization, that detects when the condition is constant in the first loop iteration. Closes #246 2019-08-07 13:22:05 +02:00
jespergravgaard
dacd25ac5f Added constant loop-head detection to a switchable optimization option -Oloophead. #246
Implemented for()-loop condition checking before body. Closes #183
2019-08-07 11:27:56 +02:00
jespergravgaard
f8dfe3743b Implemented light-weight zeropage coalesce. Closes #237 2019-07-31 13:47:22 +02:00
Jesper Gravgaard
660d2a8979 Changed print_cls() to use memset(). Fixed error in fragment. 2019-07-18 01:54:16 +02:00
jespergravgaard
8947882e20 Moved zero-page coalesce to an optimization option. 2019-05-31 23:17:57 +02:00
Jesper Gravgaard
97f88fb128 Fixed comparison optimization to ignore 0 2019-04-10 16:06:03 +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
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
ca697a4ffd Improved a plus fragment to use bcc 2019-03-18 02:23:29 +01:00
jespergravgaard
0a955d6bec Finished constant string consolidation. Closes #90 2019-02-24 23:23:57 +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
67e223d629 Added procedure comments to the compiled assembler. 2019-02-16 23:23:55 +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
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