Commit Graph

349 Commits

Author SHA1 Message Date
Irmen de Jong
6a0551cea1 added 'atari' compiler target beginnings (Atari 800 XL)
also default char and string encoding now taken from compiler target
2022-02-22 00:52:35 +01:00
Irmen de Jong
553f3b45d2 compile time calculated values of sin/cos routines fixed to be identical to the results of the run-time functions 2022-02-21 21:30:42 +01:00
Irmen de Jong
21e9723bb2 allow the last term in a pipe statement to be a variable, rewrites this as var = <rest of pipe> 2022-02-21 02:33:19 +01:00
Irmen de Jong
60b2c44a44 fix returntype handling of builtinfunctions, fix errors in pipe expressions 2022-02-21 01:44:29 +01:00
Irmen de Jong
7aa807ec7f proper error if attempting to do a containment check against non const range, and some cleanup in asmgen 2022-02-16 00:39:19 +01:00
Irmen de Jong
4d16e1e14a now checks for invalid text encodings for given compilation target 2022-02-15 01:39:12 +01:00
Irmen de Jong
e34dac8dbb remove unit test issue 2022-02-15 00:38:51 +01:00
Irmen de Jong
af0e7f7187 searching names in inlined assembly now ignores source comments 2022-02-13 13:41:12 +01:00
Irmen de Jong
2725c4ad4d slight tweaks to zp and allocator 2022-02-12 00:15:52 +01:00
Irmen de Jong
c8cd6e9460 removed old @"screencodes" string encoding syntax (use sc:"hello" instead) 2022-02-11 22:07:14 +01:00
Irmen de Jong
b47fc1c020 renames of some Ast node classes 2022-02-11 00:34:36 +01:00
Irmen de Jong
08bacdd090 temp vars are now dynamically added to AST as needed 2022-02-10 02:52:47 +01:00
Irmen de Jong
e5d7316e5d streamlining non-zpvars asmgen using new mechanism 2022-02-10 00:09:09 +01:00
Irmen de Jong
b043c3a6da streamlining vars asmgen using new mechanism 2022-02-09 21:58:25 +01:00
Irmen de Jong
98b2855b9c cleanups 2022-02-09 16:35:52 +01:00
Irmen de Jong
8c2e6971fc start using vars instead of callgraph (2) 2022-02-08 21:09:00 +01:00
Irmen de Jong
7d67005709 more rewrite variable allocation 2022-02-08 20:40:10 +01:00
Irmen de Jong
101fb0b8aa some naming changes and cleanups 2022-02-06 23:14:44 +01:00
Irmen de Jong
10de7dc1f9 fixed the concurrent modification issue on zeropage when running unit tests in parallel, by not having machine targets be static objects 2022-02-06 21:29:06 +01:00
Irmen de Jong
d2309b8114 introducing IVariableAllocation (WIP) 2022-02-06 18:57:23 +01:00
Irmen de Jong
6bdd81623f cleaning up AsmGen interface 2022-02-06 17:07:03 +01:00
Irmen de Jong
8ae3bad6f7 fix rts in empty asmsub 2022-02-06 05:05:58 +01:00
Irmen de Jong
312949f336 added experimental codegen backend option 2022-02-05 21:42:03 +01:00
Irmen de Jong
30e1c3307c simplify SourceCode: just read the full text immediately. Also optimized imports. 2022-02-05 03:50:54 +01:00
Irmen de Jong
69b9dfa468 fix invalid recursion warning for code referencing subroutine but not via a call 2022-02-01 23:09:52 +01:00
Irmen de Jong
5c8c64242f callgraph: nameInAssemblyCode searches smarter (for unused()) 2022-02-01 00:33:05 +01:00
Irmen de Jong
e773be2f58 remove no longer needed asmSymbol scoping prefixing, now asmSymbolName are identical to asmVarName 2022-01-31 01:47:22 +01:00
Irmen de Jong
990c8e1f18 split out 6502 codegen module from various compilertargets module. 2022-01-28 00:32:09 +01:00
Irmen de Jong
a170506356 simplify IdentifierReference equality check back to default (name+pos) 2022-01-27 23:32:55 +01:00
Irmen de Jong
5ecf2a3357 enable more optimizations for typecasted assignments. Fixed missing codegen for assigning bytes to words in certain cases. 2022-01-27 18:05:25 +01:00
Irmen de Jong
e2b8c069d7 check for missing '&' in string + value expressions (can't just add a value to a string) 2022-01-24 23:30:40 +01:00
Irmen de Jong
b7d06f2c0a API change: added alignment parameter to memory() function 2022-01-24 18:58:57 +01:00
Irmen de Jong
3401cb5b4a fixed compiler recursion crash when returning certain typecasted value 2022-01-23 19:13:20 +01:00
Irmen de Jong
5766208207 fix compiler crash when initializing an array var with another array var 2022-01-23 14:23:34 +01:00
Irmen de Jong
7afc96112b now correctly requires using & (address-of) when assigning the address of a label or subroutine, used to generate invalid code when it was omitted 2022-01-23 02:23:30 +01:00
Irmen de Jong
7bb41a30ed fixed compiler crash when assigning number larger than 65535 2022-01-23 01:44:16 +01:00
Irmen de Jong
9219ec539d allow "goto pointervar" for indirect jumps 2022-01-21 22:55:59 +01:00
Irmen de Jong
651c383668 refactor encoder to be the same for all 3 machine targets now 2022-01-19 21:21:33 +01:00
Irmen de Jong
674295e800 improve error reporting from string encoders 2022-01-19 21:21:33 +01:00
Irmen de Jong
6b02f2eea0 implement iso encoding and new string encoding syntax, fixes #38 2022-01-19 21:21:32 +01:00
Irmen de Jong
3b59592110 generalize string encoding flag into enum 2022-01-18 21:21:49 +01:00
Irmen de Jong
d916027e75 labels no longer start with '_' fixes #62 2022-01-17 22:03:53 +01:00
Irmen de Jong
8966d2aa06 comments and prepare new version 7.7 2022-01-16 23:03:00 +01:00
Irmen de Jong
fe51698579 tweak how zp varnames are stored 2022-01-16 17:20:36 +01:00
Irmen de Jong
a798fe72d3 cx16 reserved zp vars (virtual registers) 2022-01-16 17:20:36 +01:00
Irmen de Jong
7dd2517f67 fix Zp allocation issues 2022-01-16 17:20:36 +01:00
Irmen de Jong
641477d6f6 add @requirezp and allow str/array to be on zp (with warning) 2022-01-16 17:20:32 +01:00
Irmen de Jong
c58b8a4973 fix ast to source: @shared wasn't printed
fix grammar: @shared and @zp can occur in any order now in vardecl
2022-01-13 02:29:55 +01:00
Irmen de Jong
056ec986c2 use var initializer assignments in a clearer way 2022-01-11 00:34:44 +01:00
Irmen de Jong
de3b2fb95b slightly optimized certain list iterations into sequences 2022-01-10 23:15:24 +01:00