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
9c9a39f109 Updated remaining ref files. 2020-06-27 21:18:00 +02:00
jespergravgaard
239cfdb48e Implemented #platform target() functionality configured by a TGT-file in JSON. 2020-05-11 02:36:37 +02:00
jespergravgaard
8f2b1c2134 Moved MOS 6526 and MOS 6581 to separate H-files. Removed log noise causes by structs in H-files. 2020-04-28 00:30:35 +02:00
jespergravgaard
793a776b04 Clean-up of pass 1 log to avoid modifying log-files evey time stdlib is modified. 2020-04-25 20:10:49 +02:00
jespergravgaard
6a2937aa29 Casts are now inlined during parse - so they can be used for struct unwinding and more. They are then de-inlined around pass 1. This fixes problem with passing struct constructor as parameter to function. Closes #413 2020-04-19 11:05:54 +02:00
jespergravgaard
db6f8b5a36 Added variable nomodify/volatile information to log. 2020-03-29 21:00:25 +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
c6f81595fb Added support for %E in linker scripts expanding to the name of the entry point label starting the program (ie. __bbegin). __bbegin handling could still use some love. 2020-03-03 08:58:31 +01:00
jespergravgaard
1a978bc82d Fixed struct address-of handling. 2020-02-06 15:40:27 +01:00
jespergravgaard
0057e16517 StructMemberReferences rewrite now using ValueSources. 2020-02-06 01:08:55 +01:00
jespergravgaard
e1258f943d Working on new ValueSource based unwinding! 2020-02-04 20:52:58 +01:00
jespergravgaard
030a379845 Struct values can now be bulk initialized / copied in assignments. Still needs work for global variables and more. 2020-01-09 00:30:16 +01:00
jespergravgaard
26be14f7ee Working on improvements regarding global initializers and unnecessary unwinding of constant structs. Moved most unwinding to separate package. 2020-01-07 08:28:57 +01:00
jespergravgaard
7b81b51bc0 Rewrote constant identification to allow nested arrays/structs. TODO: function-as-array 2020-01-01 18:27:53 +01:00
Jesper Gravgaard
2cf4a3c347 Added support for initializing & copying array inside struct using intrinsic memset/memcpy. 2019-12-28 22:33:52 +01:00
jespergravgaard
e8a0478e5f Implemented C-classic struct functionality for loadstore struct variables. Works for most scenarios: declaration, initialization, assignment, member-access. Structs containing arrays not working yet. 2019-12-27 22:35:05 +01:00
jespergravgaard
23a91ef3d3 Fixed volatile support. 2019-12-25 17:04:08 +01:00
jespergravgaard
4f7485f4e5 Working in VariableBuilder for creating variables based on type/scope, directives and configuration. 2019-12-22 11:53:37 +01:00
jespergravgaard
fa5f96221d Removed inferedType from Variable. 2019-11-17 19:58:06 +01:00
jespergravgaard
09c504e693 Working on catching all declared constants in parse 0. 2019-11-17 01:51:42 +01:00
jespergravgaard
b6b01ab232 Fixed tests. 2019-11-03 20:11:06 +01:00
jespergravgaard
0b477d24ae Identifying declared constants already during Pass0. 2019-11-03 17:05:55 +01:00
jespergravgaard
85676bc83a Implemented support for fixed address main memory variables using __mem(0x1000) directive. 2019-10-14 00:51:19 +02:00
Jesper Gravgaard
70aa2836da Improved printing register ZP. 2019-10-12 11:40:36 +02:00
jespergravgaard
73854b7ee3 Added two memory variable tests with struct values. (illustrating that they do not work yet.) #328 2019-09-30 00:18:41 +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
587027397d Variable storage strategy implementation almost done. 2019-09-29 20:57:28 +02:00
jespergravgaard
51d1e6f41f Changed control flow graph to print procedure signatures. 2019-09-18 23:00:34 +02:00
jespergravgaard
3d0871f757 Added support for #pragma cpu(). Added test of program without illegal opcodes. Closes #303 2019-09-08 02:29:20 +02:00
jespergravgaard
62f9d7c9d9 Added initial support for specifying which CPU to compile to. #303 2019-09-08 01:35:38 +02:00
Jesper Gravgaard
51cd148433 Implemented detection of constant addresses being <256 - and generating ZP ASM for these. Closes #301 2019-09-01 22:06:32 +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
e8a0694f34 Added support for different target platforms. Added first platforms c64basic and asm6502 (no upstart). Closes #232 2019-07-25 17:06:19 +02:00
jespergravgaard
0e59591d6c Improved output from -Sc option adding C-code comments to the ASM. 2019-07-08 16:43:10 +02:00
jespergravgaard
bf60fab6d0 Removed segment ID from default log. 2019-07-08 12:04:44 +02:00
jespergravgaard
7d049f70a3 Added CIA timer test. Removed pointer cast logging (to improve test reproducability). 2019-07-03 21:15:54 +02:00
jespergravgaard
3ae5f0981a Added a file data segment. Improved negate word fragment. 2019-06-21 22:12:05 +02:00
jespergravgaard
7b2b8897a6 Void pointers now work. Closes #186 2019-06-21 00:36:42 +02:00
jespergravgaard
40df42067b Any variable affected by address-of is now marked as infered volatile. Closes #200 2019-06-16 23:49:22 +02:00
jespergravgaard
3725bf6821 Added versions to struct-unwinding. 2019-06-16 22:26:17 +02:00
jespergravgaard
afc1b74ef8 Implemented unwound struct address-of rewriting to use first member. 2019-06-16 19:54:03 +02:00