1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2024-12-13 03:29:23 +00:00
Commit Graph

2672 Commits

Author SHA1 Message Date
jespergravgaard
ea760e4731 Added support for snprintf(). Closes #698 2021-08-13 20:06:59 +02:00
jespergravgaard
72471bbcd0 Rewrote printf() to use a putc() function pointer. Working on #698 2021-08-13 09:19:33 +02:00
jespergravgaard
728a5ae7e3 Removed ASM directive keywords (resource/uses/clobbers/bytes/cycles). Closes #696 2021-08-11 00:55:08 +02:00
jespergravgaard
650592fc66 Added commandline option -struct_model to specify the struct model. Closes #707 2021-08-11 00:25:57 +02:00
jespergravgaard
8a38c2a887 Using C declaration format for types in logs, errors, comments and more. 2021-08-10 17:48:55 +02:00
jespergravgaard
ac9dbc88a8 Added toCDecl() that cn print variables and types in standard C declaration format. 2021-08-10 00:54:20 +02:00
jespergravgaard
dfa0109613 Added advanced call fragment. 2021-08-09 01:54:22 +02:00
jespergravgaard
d3ed5f774f Added support for advanced indirect calls. Calls are now fragments. Added support for @outside_flow ASM tag placing ASM at the end of the current scope. Added support for expanding label names in ASM fragments. Closes #708 2021-08-09 01:48:50 +02:00
jespergravgaard
92755c6287 Added support for indirect calls to advanced expressions through a new fragment type. Closes #708 2021-08-09 00:51:28 +02:00
jespergravgaard
66a1222fdb Added support for indirect calls to advanced expressions through a new fragment type. Closes #708 2021-08-08 17:45:56 +02:00
jespergravgaard
77db0e8701 Added support for calling a pointer to function without(*). Closes #692 2021-08-08 13:47:48 +02:00
jespergravgaard
8514c9942e Updated test data. 2021-08-08 09:25:10 +02:00
jespergravgaard
bcc46fd8ff Added support for automatically converting function names to function pointers. Closes #702 2021-08-08 02:15:02 +02:00
jespergravgaard
6cd1b4928e Added memcmp() to <string.h>. Closes #699 2021-08-08 00:50:34 +02:00
jespergravgaard
912f93b93b Added strncmp() and strcmp() to <string.h>. Closes #700 2021-08-08 00:29:59 +02:00
jespergravgaard
f60e1240e2 Added support for sizeof without parenthesis. Closes #695 2021-08-07 17:21:47 +02:00
jespergravgaard
1deb381c57 Added support for labels and goto. Closes #687 2021-08-07 17:05:09 +02:00
jespergravgaard
5ee8749d06 Removes space 2021-08-07 10:41:06 +02:00
jespergravgaard
5439910ae3 Improved parameter type errors to show expected and actual types. Closes #703 2021-08-07 10:32:20 +02:00
jespergravgaard
8c27abb7e0 Fixed problem where SymbolTypeInference gave error messages without any line number - by removing all error messages - and leaving the responsibility with the caller. 2021-08-06 16:17:48 +02:00
jespergravgaard
ce8e34b16a Fixed problem with automatic C-file loading included the same file twice. Closes #697 2021-08-06 11:03:16 +02:00
jespergravgaard
f01db23d0d Added another test for structs with char* members. Closes #397 2021-08-06 09:41:43 +02:00
jespergravgaard
41f50629c4 Added support for names of preprocessor macros with parameters to be used. Closes #693 2021-08-06 01:59:25 +02:00
jespergravgaard
c5c6a2dcdb Merge remote-tracking branch 'origin/master' 2021-08-05 22:33:54 +02:00
jespergravgaard
dddf6db181 Added support for int main(int argc, char **argv). Closes #562 2021-08-05 22:33:46 +02:00
jespergravgaard
45410860ad Added a few missing fragments. 2021-08-05 16:29:34 +02:00
jespergravgaard
e58bff087e Fixed problem with escaping double quotes correctly in chars. Closes #645 2021-08-05 12:17:40 +02:00
jespergravgaard
8c83c21a0f Added support for character escape sequence '\\'. Closes #504 2021-08-04 17:08:40 +02:00
jespergravgaard
66b73ddd56 Added support for character escape sequence '\0'. Closes #642 2021-08-04 16:50:51 +02:00
jespergravgaard
3757733876 Added support for structs larger than 256 bytes. sizeof() now also changes to word when >256 bytes. Added some memcpy/memset fragmenst for large structs. Closes #588 2021-08-03 01:52:06 +02:00
jespergravgaard
7493c4041c Updated fragment caches. 2021-08-03 00:42:42 +02:00
jespergravgaard
3d7e569820 Updated fragment caches. 2021-08-03 00:42:33 +02:00
jespergravgaard
e3fdefd2ae Added missing fragments. 2021-08-03 00:38:16 +02:00
jespergravgaard
3557cf178f Changed 'export' into '__export'. Updated test data. Closes #572 2021-08-02 23:46:05 +02:00
jespergravgaard
79a83e7517 typedef enum values have been fixed. Closes #586 2021-08-02 23:05:37 +02:00
jespergravgaard
4f2ae64cac #pragma struct_model(classic) fixes problem with variable instances of structs with array members. Closes #587 2021-08-02 23:00:15 +02:00
jespergravgaard
6c4d0488b9 Added support for || , && and ! in preprocessor expressions. Closes #646 2021-08-02 22:48:23 +02:00
jespergravgaard
22abed306c Added support for 2021-08-02 22:47:39 +02:00
jespergravgaard
bc0fcc50fd Added NULL pointer to standard library. Closes #647 2021-08-02 22:30:04 +02:00
jespergravgaard
8b69a1f583 Struct Array problems fixed with #pragma struct_model(classic). Closes #590 2021-08-02 12:43:47 +02:00
jespergravgaard
689246780e Added WeeIP test of complex array of structs with char* members. Improved error message when applying member reference operator to non-struct. 2021-08-02 12:18:43 +02:00
jespergravgaard
6f69add10a Added WeeIP test of complex array of structs with char* members. Improved error message when applying member reference operator to non-struct. 2021-08-02 12:16:20 +02:00
jespergravgaard
77b7785470 Fixed cast of reference to constant string. Closes #298 2021-08-02 11:37:45 +02:00
jespergravgaard
41c257a9df Fixed literal strings initializing char* in array or struct. Closes #297 2021-08-02 11:21:18 +02:00
jespergravgaard
1898956932 Fixed test. 2021-08-02 08:13:50 +02:00
jespergravgaard
66cfcc4824 Fixed problem with illegal call giving exception. Closes #689 2021-08-02 08:00:08 +02:00
jespergravgaard
dbd8a3cbac Fixed problem with macros with empty parameter lists. Closes #688 2021-08-02 07:52:50 +02:00
jespergravgaard
9bcda2cb67 Added complex test for function pointers. Closes #121 2021-08-01 23:27:59 +02:00
jespergravgaard
f2f9b79ece Added support for short / long / signed types (without int). Closes #681 2021-08-01 20:52:23 +02:00
jespergravgaard
82dd27e627 Parameters and return values now work for calling convention stack. Pointers to functions with parameters/return values now work. Parameter transfer through stack of structs/unions now work. #121 2021-08-01 17:24:12 +02:00
jespergravgaard
599a757bf1 Added missing fragment and strncpy() to string.h. 2021-07-29 23:04:05 +02:00
jespergravgaard
d372383d48 Fixed problem with typedef enum. Closes #686 2021-07-29 22:29:49 +02:00
jespergravgaard
8c77cbb45a Updated cache 2021-07-29 21:14:07 +02:00
jespergravgaard
7dbb73e8bd Added support for silent truncation from int/long to char. Closes #684 2021-07-29 21:13:39 +02:00
jespergravgaard
d6179a0b3c Added support for upper case integer suffixes eg. 1234U. Closes #682 2021-07-29 19:26:36 +02:00
jespergravgaard
825a3b79a5 Added support for unsigned integer suffix U eg. 1234U. Closes #682 2021-07-29 19:12:05 +02:00
jespergravgaard
9d2e3f299e Added MEGA65 hypervisor inludes. 2021-07-29 19:01:18 +02:00
jespergravgaard
2cc8c94d63 Improved error message during preprocessor expansion. Closes #683 2021-07-29 19:00:48 +02:00
jespergravgaard
ec8c555816 Added some bits & bops from WeeIP for testing unions. #197 2021-07-28 00:23:40 +02:00
jespergravgaard
e528f44570 Working on classic unions - return values. #197 2021-07-27 23:20:25 +02:00
jespergravgaard
cf44674bee Working on classic unions. #197 2021-07-27 22:43:06 +02:00
jespergravgaard
ea70b1f2e3 Working on classic unions. #197 2021-07-27 22:32:54 +02:00
jespergravgaard
5050079229 Working in classic structs. #197 2021-07-27 20:11:30 +02:00
jespergravgaard
c67d4d6ec9 Working in classic structs. #197 2021-07-27 19:38:51 +02:00
jespergravgaard
1df68ee4d8 Working on eliminating memcpy() statements when using classic structs. #197 2021-07-27 19:11:14 +02:00
jespergravgaard
5fec69e3f1 Working on classic structs. #197 2021-07-26 12:15:15 +02:00
jespergravgaard
47d6ea3f9a Working in classic structs. #197 2021-07-25 22:30:22 +02:00
jespergravgaard
6d39582e5f Working in classic structs. #197 2021-07-25 22:06:49 +02:00
jespergravgaard
08bb1aa9a0 Working on classic structs and unions. #197 2021-07-25 02:21:45 +02:00
jespergravgaard
f50cbf3cf1 Working on classic structs and unions. #197 2021-07-25 02:21:25 +02:00
jespergravgaard
29633a2479 Working on varcall calling convention, structs and unions. #197 #372 2021-07-24 11:33:07 +02:00
jespergravgaard
fa937d4874 Added support for union default initializers (initializing the first element) including any necessary padding to reach the right byte size. #197 2021-07-23 17:26:47 +02:00
jespergravgaard
16234fefa0 Added union syntax and support for very simple unions. Still need some work to support passing as parameters and more. #197 2021-07-22 21:05:48 +02:00
jespergravgaard
eee018847c Added a test of nested struct definitions. 2021-07-22 09:14:16 +02:00
jespergravgaard
88c26c2507 Added fragments. Fixed problem in CIA timer library and tests. 2021-07-22 01:16:59 +02:00
jespergravgaard
bd15b53cab Added missing fragment 2021-07-16 13:55:58 +02:00
jespergravgaard
3dff5d04fb Fixed exception "Block referenced, but not found in program" when encountering complex if(&&). Closes #676 2021-07-07 08:47:44 +02:00
jespergravgaard
72c5c7d537 Added test. 2021-07-03 00:21:22 +02:00
jespergravgaard
6e80a72cc2 Updated caches 2021-07-03 00:19:26 +02:00
jespergravgaard
c740b9f487 Added MAKELONG4() constant identification and removed need for declaration in source. Closes #675 2021-07-02 21:56:23 +02:00
jespergravgaard
56e9346eb1 Added MAKELONG4(). Closes #675 2021-07-02 21:06:09 +02:00
jespergravgaard
1eb61b9c9d Added MAKEWORD() and MAKELONG(). Removed support for initializer lists for initializing word/dword. Closes #668 2021-07-02 00:33:29 +02:00
jespergravgaard
ff770cb0d7 Added MAKEWORD() and MAKELONG(). Removed support for initializer lists for initializing word/dword. #668 2021-07-02 00:21:25 +02:00
jespergravgaard
3013352b2e Added MAKEWORD() and MAKELONG(). Removed support for initializer lists for initializing word/dword. #668 2021-07-02 00:21:08 +02:00
jespergravgaard
79f85b439f Now synthesizing _deref_p..c. fragments using v..m. Closes #674 2021-06-30 00:58:50 +02:00
jespergravgaard
62b79212cb Now synthesizing _deref_p..c. fragments using v..m. Closes #674 2021-06-30 00:05:01 +02:00
jespergravgaard
04ce973d0d Now synthesizing _deref_p..c. fragments using v..m. Closes #674 2021-06-29 23:00:49 +02:00
jespergravgaard
a540f1015f Now synthesizing _deref_p..c. fragments using v..m. Closes #674 2021-06-29 22:54:28 +02:00
jespergravgaard
bf52297c73 Now synthesizing _deref_p..c. fragments using v..m. Closes #674 2021-06-29 00:49:38 +02:00
jespergravgaard
eec9f260df Added fallback to ZP-addressing if inline ASM instruction does not support absolute addressing. Closes #673 2021-06-26 09:46:46 +02:00
jespergravgaard
8d797ac308 Improved sign extension in fragments. 2021-06-23 09:57:58 +02:00
jespergravgaard
822d168dd8 Improved sign extension in fragments. 2021-06-23 09:40:48 +02:00
jespergravgaard
4628870166 Added missing fragments. 2021-06-21 14:29:35 +02:00
jespergravgaard
866460d942 Improved doxygen documentation. #672 2021-06-20 12:59:27 +02:00
jespergravgaard
2b882e6a50 Improved doxygen documentation. #672 2021-06-20 12:45:52 +02:00
jespergravgaard
6a4fd1fdad Tweaked doxygen documentation. #672 2021-06-20 10:07:38 +02:00
jespergravgaard
7782e89666 Improved doxygen documentation. #672 2021-06-19 22:46:41 +02:00
jespergravgaard
e277b08a26 Improved doxygen documentation. Closes #672 2021-06-19 22:37:48 +02:00
jespergravgaard
bde31dac4c Improved doxygen documentation. #672 2021-06-19 22:28:44 +02:00
jespergravgaard
78e6ef761f Improved doxygen documentation. #672 2021-06-19 22:11:26 +02:00