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

1109 Commits

Author SHA1 Message Date
jespergravgaard
392ab7e442 Added Atari XL/XE platform target generating a simple XEX-file. Closes #499 2020-08-06 10:57:27 +02:00
jespergravgaard
a7359f8395 Added a bunch of Z-fragments. 2020-08-03 00:27:03 +02:00
jespergravgaard
b8682bd770 Optimized fragments for comparisons and signed byte pointers. 2020-08-02 12:27:20 +02:00
jespergravgaard
9ae695ba60 Added more fragments and optimized others. 2020-08-01 03:01:00 +02:00
jespergravgaard
30b3172e7f Added Z register support to register allocation, synthesis, fragment system, clobber and more for 65CE02 and 45GS02. 2020-07-31 23:16:54 +02:00
jespergravgaard
f27fe1a75c Added support fro 45GS02 CPU addressing modes and instructions. Added a few 45GS02 optimized fragments. 2020-07-30 14:11:17 +02:00
jespergravgaard
88cdba9d0c Added some fragments and tests for 65CE02. 2020-07-30 01:20:41 +02:00
jespergravgaard
96cabc382f Added support for clobber, registers, addressing modes and instructions in the 65CE02 instruction set. 2020-07-29 23:52:38 +02:00
jespergravgaard
1881fb17d0 Now the ASM generation uses the instruction set of the declared CPU. Added support for addressing modes and instructions in the 65C02 instruction set. 2020-07-28 22:40:24 +02:00
jespergravgaard
ba9f99059a Added lexer support for all mnemonics used in CPU 65C02. Added Cpu65C02 instruction set. 2020-07-28 21:31:17 +02:00
jespergravgaard
a454ee2cdd Added support for all new addressing modes used in CPU's 65C02, 65CE02 and 45GS02. 2020-07-28 19:05:58 +02:00
jespergravgaard
21a6e60eed Fixed Wrong size of padding for non-byte arrays. Closes #497 2020-07-27 12:20:54 +02:00
jespergravgaard
9227a3a857 Fixed Wrong size of padding for non-byte arrays. Closes #497 2020-07-27 12:12:41 +02:00
jespergravgaard
dcb68b8c1a Moved clobber info to a constructor parameter. Added clobber info for SP, PC, d, i. 2020-07-26 22:51:34 +02:00
jespergravgaard
1fb532718f Changed clobber string format and made difference between registers and flags more clear. 2020-07-26 20:56:24 +02:00
jespergravgaard
f221865593 Added initial support for new CPU's 65C02, 65CE02 and 45GS02. 2020-07-26 16:50:49 +02:00
jespergravgaard
f62631812e Now using kickassembler-5.16-65ce02 properly. 2020-07-26 02:25:33 +02:00
jespergravgaard
d39893f97a Fixed problem with casting negative 8-bit numbers to 16-bit. Closes #496 2020-07-22 09:10:34 +02:00
jespergravgaard
b336ba38df Optimized slightly 2020-07-15 12:26:02 +02:00
jespergravgaard
f82800dd67 Added missing fragments. Working on scroller. 2020-07-14 20:14:57 +02:00
Jesper Gravgaard
324b83e95e Improved fragment. Updated test data. 2020-07-09 10:12:28 +02:00
Jesper Gravgaard
a78ac24f81 Fixed problem with empty for() condition and non-empty increment. Closes #488 2020-07-07 13:07:26 +02:00
jespergravgaard
be54089089 Fixing #488. Still fails on for() with no condition and an increment. 2020-07-07 08:32:42 +02:00
Jesper Gravgaard
7384fb5357 Fixed problem with post increment inside conditions. Closes #486 2020-07-06 17:49:41 +02:00
Jesper Gravgaard
fcd41d7390 Working on #486 post increment problems inside conditions. 2020-07-06 17:42:40 +02:00
Jesper Gravgaard
7f3c378119 Working on #486 post increment problems inside conditions. 2020-07-06 17:40:15 +02:00
jespergravgaard
e25ef0e3f7 Fixed ASM error in fragment. Improved fragment synthesis. Working on lazynes (there seems to be an issue with waiting for vblank using lnSync(0) ). 2020-07-05 21:58:53 +02:00
jespergravgaard
3d549ea941 Added a test. 2020-07-01 23:45:09 +02:00
jespergravgaard
4149381b74 Finished better ASM fragment handling for pointer to pointer. Closes #484 2020-07-01 23:38:56 +02:00
jespergravgaard
802f72df99 Added test of support for trailing commas in initializer lists. Closes #393 2020-06-28 00:43:40 +02:00
jespergravgaard
dfc5905c5e Added test of support for empty statements. Closes #267 2020-06-28 00:21:27 +02:00
jespergravgaard
75e71b5bbb Added support for empty statements. Closes #395 2020-06-28 00:16:25 +02:00
jespergravgaard
b195a3c545 Improved ASM procedure sequence to match calling sequence in program. 2020-06-27 23:26:57 +02:00
jespergravgaard
c1b22d345e Removed old @begin / @end global blocks. Now using __start(), __init(). Closes #257 2020-06-27 22:36:52 +02:00
jespergravgaard
64d2d99488 Updated remaining ref files. 2020-06-27 21:32:49 +02:00
jespergravgaard
9c9a39f109 Updated remaining ref files. 2020-06-27 21:18:00 +02:00
jespergravgaard
34e9c50775 Fixed comments. 2020-06-27 20:59:59 +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
e09a0718d0 Fixed scope comparison. 2020-06-27 12:21:29 +02:00
jespergravgaard
3d4d114522 Added more tests for __address(). Added error when using __address on a local array variable. 2020-06-27 11:11:03 +02:00
jespergravgaard
3692797650 Removed support for pc parameter on inline kickasm Closes #479, #480 2020-06-22 00:26:44 +02:00
jespergravgaard
cb1b9bece1 Implemented support for __address() on arrays. Removed support for pc parameter on inline kickasm. Closes #480. Closes #479 2020-06-22 00:07:59 +02:00
jespergravgaard
d129efb95f Working on static initialization rewrite _init(). #257 2020-06-21 08:04:55 +02:00
jespergravgaard
f4ef60e822 Working on static initialization rewrite _init(). #257 2020-06-20 21:31:49 +02:00
jespergravgaard
dc4102d680 Working on static initialization rewrite _init(). #257 2020-06-18 10:01:45 +02:00
jespergravgaard
83480c69dc Added strcpy() test. 2020-06-16 23:30:38 +02:00
jespergravgaard
6d40e87d6c Moved NES test. 2020-06-14 13:10:26 +02:00
jespergravgaard
0d9d6f8d54 Changed NES CPU to allow illegal opcodes. 2020-06-08 00:33:18 +02:00
jespergravgaard
7928b2920a Added nes-dxycp.c 2020-06-07 03:56:27 +02:00
jespergravgaard
b53392f5fd NES conio.h now working reasonably well. There is a few issues with __bbegin and data in ROM/RAM. 2020-06-06 13:36:03 +02:00
jespergravgaard
d40ff86b03 Added a const parenthesis test. #470 2020-06-06 08:48:00 +02:00
jespergravgaard
ba90f9ea65 Added NES conio initial support. (scrolling not working atm.) 2020-06-06 01:19:28 +02:00
jespergravgaard
7efe019e40 Fixed String consolidation problem with local labels shadowing global labels. Split conio.c into platform-specific files. Closes #472 2020-06-05 16:35:14 +02:00
jespergravgaard
08d90f90d9 Introduces void-pointer synthesis. This enables removal of a lot of pointer fragments. #449 2020-05-30 23:12:44 +02:00
jespergravgaard
7c124f3fa8 Added a bunch of missing fragments from G. B. @agpxnet. #449 2020-05-30 13:28:21 +02:00
jespergravgaard
a82d7387c8 Added missing fragments from Janne Johansson @IcePic. Closes #349 2020-05-30 10:24:56 +02:00
jespergravgaard
c33d140628 Fixed problem with size calculation of arrays inside structs. Closes #458 2020-05-30 00:56:45 +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
0041a4d07c Added support for #error. Closes #440 2020-05-29 22:21:20 +02:00
jespergravgaard
8fbe49f272 Fixed problem where an unused assigned variable is not taken properly into account when deciding whether it is possible to coalesce two variable live range equivalence classes. Closes #464 2020-05-29 18:49:10 +02:00
jespergravgaard
a63adec0f0 Fixed problem with incorrect parenthesising of non-associative binary operators in constant expressions. Closes #450 2020-05-27 09:05:20 +02:00
jespergravgaard
67dedcc299 Refactored NES demo slightly. 2020-05-26 23:30:33 +02:00
jespergravgaard
70d90102bb Added a Goomba and all-directional joy movement. 2020-05-26 23:10:50 +02:00
jespergravgaard
d8f6331d38 Added NES tiles. Improved NES library. Closes #457 2020-05-26 21:04:52 +02:00
jespergravgaard
a4c0627215 Fixed bug when using 2 function pointers in one block. Closes #463 2020-05-26 17:45:55 +02:00
jespergravgaard
7515c2d069 Fixed error in fragment. Closes #462 2020-05-26 07:56:00 +02:00
jespergravgaard
0d15872d6f Improved NES demo code slightly. 2020-05-25 08:07:49 +02:00
jespergravgaard
6c3ba36459 Upgraded to KickAss 5.15. Fixed NES linker file. Closes #459 2020-05-25 07:44:04 +02:00
jespergravgaard
8f4d3e0efe Added fragment ref data. 2020-05-24 08:00:30 +02:00
jespergravgaard
7c965b6ef6 Introduces OAM struct. 2020-05-24 01:15:58 +02:00
jespergravgaard
c8cd5a0e51 Added support for NES platform with a working demo program. Closes #456 2020-05-24 00:28:38 +02:00
jespergravgaard
0ed5059c8a Added support for reserved ZP variables in the target platform .TGT file. Atari 2600 platform file now uses zp range reserving. Closes #447 2020-05-22 15:52:51 +02:00
jespergravgaard
978d85055a Added support for reserving ZP ranges using NN..NN range syntax "#pragma zp_reserve(0x00..0x1f, 0x22). Changed name of #pragma and function directive to zp_reserve() and __zp_reserve(). Closes #238 2020-05-22 15:24:03 +02:00
jespergravgaard
d714c6ab4c Added Atari 2600 Sprite test. 2020-05-21 21:34:34 +02:00
jespergravgaard
c9965b2cc7 Added test for memory variable used inside inline ASM. 2020-05-21 09:38:03 +02:00
Jesper Gravgaard
8102cc57f4 Optimized conio.c by using x-indexing and a line-cursor instead of having a char-cursor. 2020-05-20 22:25:39 +02:00
jespergravgaard
f44a7132d1 Fixed file name inside disk. 2020-05-18 00:48:46 +02:00
jespergravgaard
da2fd8545b Fixed test reference. 2020-05-18 00:46:25 +02:00
jespergravgaard
65b59c6745 Fixed comment. 2020-05-17 23:54:59 +02:00
jespergravgaard
af90a910f2 Added a sinus movement to the Atari 2600 raster bars. Separated Vars and Data fragments in the Atari 2600 target platform linker file. Moved atari 2600 demo to /examples/. Closes #445 2020-05-17 23:52:58 +02:00
jespergravgaard
2faaae5d93 Implemented support for controlling output file extension using #pragma extension("xxx"), property "extension" in the target platform file or command-line option -oext. Closes #446 2020-05-17 23:33:18 +02:00
jespergravgaard
c2993e4d82 Updated Atari 2600 minial sample. 2020-05-17 00:19:22 +02:00
jespergravgaard
26718942e9 Added Atari 2600 target platform and a minimal sample program. It is functional, but still needs some work. 2020-05-16 22:13:47 +02:00
jespergravgaard
9693ea125a Added VIC 20 raster bars. 2020-05-16 17:35:25 +02:00
jespergravgaard
557212c847 Added a VIC 20 target. Added CONIO support for VIC 20. 2020-05-16 16:28:24 +02:00
jespergravgaard
969301af0f Added plus/4 keyboard tester. 2020-05-16 12:45:35 +02:00
jespergravgaard
d9fdaca1b0 Added conio.h support for PLUS4. Fixed problem where anonymous structs failed because scopes were mixed up. 2020-05-16 12:40:01 +02:00
jespergravgaard
8d0d36e50b Added all Plus/4 IC's and I/O addresses. 2020-05-16 09:33:01 +02:00
jespergravgaard
1d534dcc3d Implemented target platform defines by putting the handling of #pragma target() into the preprocessor/parser. 2020-05-15 08:19:26 +02:00
jespergravgaard
b2045c7874 Working on #pragma target handling in preprocessor - to fix the embedded #defines. 2020-05-12 00:08:11 +02:00
jespergravgaard
362ec9bb0b Fixed missing fragment. Closes #435 2020-05-11 20:55:29 +02:00
jespergravgaard
239cfdb48e Implemented #platform target() functionality configured by a TGT-file in JSON. 2020-05-11 02:36:37 +02:00
jespergravgaard
16d19d69a4 Added -Dname=body command-line option for defining macros on the command line. 2020-05-09 23:17:11 +02:00
jespergravgaard
8651ee8886 Updated test data. 2020-05-09 11:52:17 +02:00
jespergravgaard
ab670df01f Renamed #pragma emulator. Added headers for Plus/4. Closes #436 2020-05-09 11:44:29 +02:00
jespergravgaard
6aa88fe3e6 Added random walk for Plus/4 to examples. Thanks to Carrion of Bonzai! 2020-05-08 18:28:48 +02:00
jespergravgaard
6a5aa72ed5 Fixed tests. 2020-05-08 09:10:59 +02:00
jespergravgaard
6da9a8f9f8 Introduced line buffer. 2020-05-07 09:04:42 +02:00
jespergravgaard
42aa2d9a8f Added missing fragment. 2020-05-07 08:42:27 +02:00
Jesper Gravgaard
21ee39aafa Fixed tests. 2020-05-06 22:38:59 +02:00
Jesper Gravgaard
a6d0f4a541 Added circle chars test. 2020-05-06 22:36:46 +02:00
jespergravgaard
4cd7e638c9 Optimized ln in <conio.h> 2020-05-05 08:37:49 +02:00
jespergravgaard
ed6df148f7 Added test for rand() 2020-05-05 07:49:32 +02:00
jespergravgaard
36f82d5745 Added pseuso random number generator to <stdlib.h>. Closes #434 2020-05-05 07:46:48 +02:00
jespergravgaard
4d4169ef32 Optimized word rol/ror by 6-9. 2020-05-05 07:22:02 +02:00
jespergravgaard
60e6d3a645 Added a test for a pseudo random number generator and struct-of-arrays vs array of strucs. 2020-05-04 01:24:28 +02:00
jespergravgaard
dbbde914c7 Fixed test reference files. 2020-05-03 08:53:52 +02:00
jespergravgaard
e7ca7913f1 Integrated <conio.h> and <printf.h> to work together. Added missing fragments. 2020-05-03 00:34:06 +02:00
jespergravgaard
3948ffd3df Updated helloworld.c to use <stdio.h> and printf() 2020-05-02 15:38:02 +02:00
jespergravgaard
f8af7172d4 Added test reference files. 2020-05-02 12:07:12 +02:00
jespergravgaard
95a3759087 Renamed a few VIC II registers 2020-05-02 11:38:51 +02:00
jespergravgaard
4ffba62276 Added support for address-of on struct value members. Closes #429 2020-04-30 23:42:45 +02:00
jespergravgaard
facd70053d Added support for address-of pointers to members of structs. 2020-04-30 22:15:59 +02:00
jespergravgaard
bf0dbfde63 Slight changes to <mos6569.h> 2020-04-29 08:09:45 +02:00
jespergravgaard
bc85b3c0d1 Improved equality of constants. Moved more VIC-II variabes into struct. 2020-04-29 07:53:45 +02:00
jespergravgaard
0a9cee999d Updated C64 header file. 2020-04-28 22:58:16 +02:00
jespergravgaard
73d737ac79 Fixed tests. Started work in VICII struct. 2020-04-28 21:21:32 +02:00
jespergravgaard
013159c16d Fixes optimization problem with post-increment/decrement of calculated pointers. Closes #428 2020-04-28 20:13:29 +02:00
jespergravgaard
eed25ff1cd Inlined sid_rnd() functions. 2020-04-28 00:32:36 +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
a8384bbebe Fixed CIA problems. 2020-04-27 00:20:53 +02:00
jespergravgaard
b10c365513 Using time-of-day in both 8 queens programs. 2020-04-26 23:50:19 +02:00
jespergravgaard
b82c3f0a07 Added time-of-day utility for commodore 64 <tod.h>. Moved MOS 6526 CIA to structs. 2020-04-26 23:30:04 +02:00
jespergravgaard
d8d0cc1ff8 Added 8 queens example programs with and without recursion. 2020-04-26 13:57:53 +02:00
jespergravgaard
e960c71448 Fixed fragment test. 2020-04-26 00:01:31 +02:00
jespergravgaard
9ddcb9790a Implemented 8 queen problem recursive solution. 2020-04-25 23:28:38 +02:00
jespergravgaard
0da4300069 Fixed atoi(). 2020-04-25 21:25:27 +02:00
jespergravgaard
ad76f3a9ed Added atoi() and a test. optimized printf(). 2020-04-25 21:09:46 +02:00
jespergravgaard
7069a8c17c Added test of toupper() 2020-04-25 20:23:40 +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
031cde10e9 Fixed test data. 2020-04-25 17:57:48 +02:00
jespergravgaard
5b2e993994 Fixed stack-overflow on recursive __stackcall functions. Added <math.h> abs(). Added <stdio.h> printf(). Closes #415 2020-04-25 16:51:35 +02:00
jespergravgaard
3b6c14be7a Added support for __intrinsic only being present in .c-file while absent in .h-file. Closes #417 2020-04-25 15:46:27 +02:00
jespergravgaard
986ad3b77f Added support for printf() parameter index format string (eg. %2$d). Closes #420 2020-04-25 14:48:20 +02:00
jespergravgaard
ae28cb9c67 Improved minus literal implementation. Added <ctype.h> toupper(), <string.h> strupr(). Added support for %X (upper case HEX) in printf() format. Closes #419 2020-04-25 13:15:22 +02:00
jespergravgaard
d160e45c8a changed printf() cursor to be x,y-based. 2020-04-22 00:14:30 +02:00
Jesper Gravgaard
bc70424634 Added automatic type identification to numeric printf handler without %l / %hh. 2020-04-21 10:39:07 +02:00
Jesper Gravgaard
839911e0a0 Fixed test data. 2020-04-21 09:50:36 +02:00
jespergravgaard
f6ee599d79 Added printf() support for newlines, %% and %c. Added tests for different formats. #410 #415 2020-04-21 08:41:52 +02:00
Jesper Gravgaard
d7143771ba Added printf() support for %d, %i, %x, %o and length specifiers %hhd %ld. 2020-04-20 19:00:16 +02:00
jespergravgaard
28c9b2ada7 Improved implementation of intrinsic printf() to support rudimentary %d / %x. #410 #415 2020-04-20 08:55:50 +02:00
jespergravgaard
9fa2e5d734 Added support for declaring var-length parameter lists in functions. Added __intrinsic directive for specifying that a function is implemented in the compiler. Added initial tiny implementation of intrinsic printf(), which only handles %s. #410 #415 2020-04-19 23:29:37 +02:00
jespergravgaard
9c6e67ddc5 Printf tests rewritten to use inline struct constructors. 2020-04-19 11:53:15 +02:00
jespergravgaard
933d23fd0a Fixed problem with negating negative number generating illegal ASM. Closes #414 2020-04-19 11:13:57 +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
7bac2776b1 Added missing ref files. 2020-04-18 21:51:42 +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
a877da3c7d Updated ref files. 2020-04-13 15:07:23 +02:00
jespergravgaard
ba372afeb3 Improved chrout() implementation. 2020-04-13 11:09:24 +02:00
jespergravgaard
ab10f2184d Upgraded to KickAsm 5.14. Fixed PETSCII encoding problem. Closes #401 2020-04-13 10:33:44 +02:00
jespergravgaard
cf4d25b5f6 Added additional screensize operations to allow better optimization. 2020-04-13 08:19:39 +02:00
jespergravgaard
c604e16630 Added first conio implementation compatible with cc65 and included a conio example from cc65. 2020-04-12 23:52:23 +02:00
jespergravgaard
2de71b4cd1 Fixed problem with post-increment sometimes happening to early when evaluating conditions. Closes #388 2020-04-12 10:15:32 +02:00
jespergravgaard
9c40c2f0f2 Added initial strncat() implementation. Found error in post-increment when used in a condition. 2020-04-11 22:48:33 +02:00
jespergravgaard
a378e831e2 Added support for header-files found in include-folders and C-files found in library-folders. The compiler auto-searches for the C-file in the defined lib search path whenever a H-file is included. Closes #387 2020-04-11 21:15:34 +02:00
jespergravgaard
d95fea6975 Added -E commandline option for running only the proprocessor. Closes #385 2020-04-11 13:41:10 +02:00
jespergravgaard
f42a921d2b Now supports \xnn syntax for all values - even those without a proper encoding. Closes #383 2020-04-11 09:13:22 +02:00
jespergravgaard
61c5914f73 Added support for \xnn as escape in strings. However only characters defined in the current encoding works. Refactored handling of escapes and encodings. Closes #383 2020-04-10 11:24:20 +02:00
jespergravgaard
5ff8fce61d Added support for #include <> syntax. Closes #381 2020-04-09 23:56:43 +02:00
jespergravgaard
096d7c0640 Cleaned up scope getters. Might have caused a slow-down of compilation. 2020-04-09 22:17:33 +02:00
jespergravgaard
ab10bd59b4 Added a few more c's to test. 2020-04-09 09:36:09 +02:00
jespergravgaard
23ae5cf5f5 Variable extern declarations are now supported. Closes #196 2020-04-09 09:21:43 +02:00
jespergravgaard
db92daf4bf Added initial support for function declarations without a body. #196 2020-04-08 23:40:27 +02:00
jespergravgaard
682757b10c Renamed import to #include. #169 2020-04-07 12:43:31 +02:00
jespergravgaard
88b2cd86c2 Added test for #define containing inline ASM/KickAsm. Fixed problem with ASM. #169 2020-04-05 22:54:00 +02:00
jespergravgaard
ba1ecac84b Added test for recursive #define. #169 2020-04-05 20:34:33 +02:00
jespergravgaard
7c9c2955b4 Added test for multi-line #define. #169 2020-04-05 20:13:40 +02:00
jespergravgaard
9fea02e7ad Added support for #ifdef #ifndef #else #endif. #169 2020-04-05 20:09:34 +02:00
jespergravgaard
524d789805 Added test for #defines inside imported file. #169 2020-04-05 18:28:32 +02:00
jespergravgaard
c4550b5aec Added test of defines with complex body. #169 2020-04-05 14:45:32 +02:00
jespergravgaard
30e35bee41 Added simple preprocessor to the KickC compiler (only supports #define without parameters). #169 2020-04-05 14:32:07 +02:00
Jesper Gravgaard
3bb6efb92d Updated test data. 2020-04-01 14:53:02 +02:00
jespergravgaard
b8a2e10fd8 The sprite scroller is now working with the sine-dampened X-movement. 2020-03-31 20:22:08 +02:00
Jesper Gravgaard
96779a5f24 Working on sprite scroller. 2020-03-31 19:20:33 +02:00
Jesper Gravgaard
a977e6d9f0 Updated multiplexer.kc to allow usage in IRQ's. Eliminated multiplexer-irq.kc. 2020-03-31 12:47:21 +02:00
jespergravgaard
90fccdebef Working on font 2x2 to sprite converter. 2020-03-31 09:55:49 +02:00
jespergravgaard
beb30de7d1 Fixed ASM re-labelling error. #369 2020-03-30 20:33:26 +02:00
jespergravgaard
7ff1a0ec9a Fixed test! 2020-03-30 18:49:00 +02:00
Jesper Gravgaard
5c49f2356e Added support for const/volatile directives inside & outside structs. Closes #377 2020-03-30 13:48:55 +02:00
Jesper Gravgaard
607f740f8b Added support for typedefs with const/volatile directives. Closes #375 2020-03-30 13:25:52 +02:00
jespergravgaard
e3b54f34d7 Fixed typedef arrays (still no array of array). Closes #376 2020-03-30 08:35:22 +02:00
jespergravgaard
5a8654b0e7 Working towards typedef with const/volatile directive handling and typedef arrays by introducing a varDecl stack in the parser. #375 #376 #377 2020-03-30 00:12:03 +02:00
jespergravgaard
db6f8b5a36 Added variable nomodify/volatile information to log. 2020-03-29 21:00:25 +02:00
jespergravgaard
a579ab491a Changed pointer and directive parsing to distinguish directives applied to pointers and directives applied to variables. Fixed all example-code to reflect this. Closes #271 2020-03-29 20:22:16 +02:00
jespergravgaard
838b8f4d26 Added support for typedef arrays. 2020-03-27 22:23:04 +01:00
jespergravgaard
d6c60d9466 Pointer type rewritten to bind to variables instead of type allowing a declaration like char *a, b, **c;. Closes #265 2020-03-27 21:08:18 +01:00
jespergravgaard
9b41df3b6a Added variable layer handling to declarations. 2020-03-27 10:53:42 +01:00
jespergravgaard
ffa9d8a6ca Added compiler option -Warraytype to allow non-standard array syntax. By default it is not allowed. #162 2020-03-26 16:20:30 +01:00
jespergravgaard
f9560de10d Standard C array syntax implemented char x[8]. The KickC syntax char[8] x is still supported, but will be removed. Closes #162 2020-03-26 09:13:48 +01:00
jespergravgaard
1160a14359 Changed byte/word to char/int 2020-03-26 07:06:55 +01:00
Jesper Gravgaard
253263983e Added 2x2 font compression example. Improved chargen example. 2020-03-25 17:51:45 +01:00
jespergravgaard
a44d8d5388 Improved liverange testing 2020-03-23 07:26:43 +01:00
jespergravgaard
e385257cf4 Improved liverange testing 2020-03-23 07:26:26 +01: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
4f8609ea72 Working on #371 simpler live range calculation 2020-03-16 07:57:56 +01:00
jespergravgaard
d1ec933032 Fixed error in recursive caller code. 2020-03-08 23:26:49 +01:00
jespergravgaard
afe8294cd1 Now auto-converting global variables modified inside a __stackcall procedure to load/store. 2020-03-08 12:57:32 +01:00
jespergravgaard
d217113afb Fixed multi-output of comments. 2020-03-08 09:43:12 +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
61a6e29f4d Added output 2020-03-07 21:43:42 +01:00
jespergravgaard
f32f44cd92 Added missing test data. 2020-03-07 08:44:36 +01:00
jespergravgaard
2e934a7a30 Created StatementExprSideEffect. Converted call prepare to pushes. 2020-03-07 08:44:02 +01:00
jespergravgaard
7baacebc3d Created StatementExprSideEffect. Converted stack operations to this. 2020-03-07 08:08:54 +01:00
jespergravgaard
9e2e38e671 Moving __Stackcall stack operations back to pass 1/2 from pass 4 ASM code generation. 2020-03-07 00:33:07 +01:00
jespergravgaard
689aeb0ca6 Fixed problem with passing struck values to __stackcall. Closes #366 2020-03-06 09:38:09 +01:00
jespergravgaard
797c3bbd21 Moved calling convention stack handling to pass 1. Passing structs to __stackcall does not work atm. 2020-03-05 09:13:52 +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
25279aead3 Fixed problem with live variables and stack calls. 2020-03-02 09:21:31 +01:00
jespergravgaard
5d7533de5d Added test illustrating variable alive range propagation problem when using call stack. 2020-03-01 23:02:07 +01:00
jespergravgaard
648d08a13d Added proper clobber check to call prepare sub-statements. Fixed stack clean-up after stack call return. 2020-03-01 16:00:42 +01:00
jespergravgaard
4346790c43 Fixed failing test. 2020-02-28 00:16:12 +01:00
Jesper Gravgaard
378798d6ba Added missing stack fragments. 2020-02-27 19:35:43 +01:00
Jesper Gravgaard
c44cb02b96 Fixed parameter offsets on stack by reversing order. 2020-02-27 13:26:30 +01:00
jespergravgaard
946144135a Added command line support for var_model(). 2020-02-25 22:15:39 +01:00
jespergravgaard
e9eeafd170 Fixed a few errors introduced by condition simplification rewrite. Added a fragment. 2020-02-25 09:26:05 +01:00
jespergravgaard
5fd74a8d39 Improved tetris code by inlining two kickasm-arrays. 2020-02-24 22:39:09 +01:00
jespergravgaard
19b145c207 Implemented immediate variables for preserving the value of load/store variables used in simple conditions that are inlined. #359 2020-02-23 20:57:53 +01:00
jespergravgaard
5ffae4d92a Added C-source to generated test ASM. 2020-02-23 09:44:36 +01:00
jespergravgaard
dc6175a0b6 Working on fixing #359 problem with load/store variables and simple-conditionals. 2020-02-22 20:45:35 +01:00
jespergravgaard
d33c84488a Fixed a few tests. 2020-02-22 12:06:47 +01:00
jespergravgaard
7dacbb2c75 Fixed code for __ma. 2020-02-15 09:30:27 +01:00
jespergravgaard
f45ba8eb10 Fixed early constant identification. Added test for constant initValue. 2020-02-15 09:00:57 +01:00
jespergravgaard
7b8488ef29 Fixed the last __ma exceptions. 2020-02-14 23:01:56 +01:00
jespergravgaard
d0bc5af94b Now identifying USE's that are also DEFINE's as unused. 2020-02-14 10:57:29 +01:00
jespergravgaard
0beeab9be2 Refactored live ranges to work for multiple-assign variables. The price is that a few unused variables are no longer optimized away since they depend only on them selves. See duplace-loop-problem.kc. 2020-02-14 00:32:19 +01:00
Jesper Gravgaard
f92e750b61 Fixed removal of unused vars. 2020-02-13 13:46:54 +01:00
jespergravgaard
f106f953a8 Working on memory model ma_mem. Added some support for local static variables. 2020-02-13 11:36:27 +01:00
jespergravgaard
45019c1116 Fixed test 2020-02-11 22:04:01 +01:00
jespergravgaard
8fe8773dc1 Fixed fragment tests. Using new VarAssignments method in alias elimination. 2020-02-10 20:14:22 +01:00
jespergravgaard
9faabae052 Merged memory-variables to main. Includes support for C-standard structs, much better constant identification, much better handling of arrays/structs inside structs, removal of string type, initialization/copying using memcpy/memset and new #pragma var_model(). 2020-02-09 16:54:14 +01:00
jespergravgaard
4f54062a43 Added test with two different variable models. 2020-02-09 15:06:16 +01:00
jespergravgaard
be05569013 Fixed tests 2020-02-09 14:30:27 +01:00
jespergravgaard
a119d38b5e Added a few tests for the new #pragma var_model(). 2020-02-09 12:55:17 +01:00
jespergravgaard
f73b048d2e Eliminated SymbolType.STRING 2020-02-06 22:52:23 +01:00
jespergravgaard
a612562dc7 Work in progress: eliminating SymbolType.STRING 2020-02-06 22:29:41 +01:00
jespergravgaard
fda0940062 Work in progress: eliminating SymbolType.STRING 2020-02-06 22:20:53 +01:00
jespergravgaard
45ad6b64b0 Dropped inferred volatile. 2020-02-06 18:07:56 +01:00
jespergravgaard
1a978bc82d Fixed struct address-of handling. 2020-02-06 15:40:27 +01:00
jespergravgaard
64afa1791e Call parameters rewrite now using ValueSources. 2020-02-06 01:26:46 +01:00
jespergravgaard
0057e16517 StructMemberReferences rewrite now using ValueSources. 2020-02-06 01:08:55 +01:00
jespergravgaard
511020649a Working on new ValueSource based unwinding. Most of the old unwinding code is now unused. 2020-02-05 17:29:25 +01:00
Jesper Gravgaard
b17d4ab8fc Unwindings moving to ValueSource 2020-02-05 09:24:55 +01:00
jespergravgaard
0336b18a62 Working on new ValueSource based unwinding!
A few __ptr__ problems in test outputs remain.
2020-02-05 00:45:08 +01:00
jespergravgaard
e1258f943d Working on new ValueSource based unwinding! 2020-02-04 20:52:58 +01:00
jespergravgaard
a50b295c45 Working on new ValueSource based unwinding! 2020-02-03 08:30:17 +01:00
jespergravgaard
ae79e813a2 Added test copying struct value into array. 2020-02-02 23:41:26 +01:00
jespergravgaard
2ebf7b698b Added logging when postponing unwindings. 2020-02-02 23:06:59 +01:00