Commit Graph

691 Commits

Author SHA1 Message Date
Irmen de Jong
c3bd904f41 todo 2022-01-02 23:46:36 +01:00
Irmen de Jong
74257163b1 fix that memory("name", ...) also allocates a STR variable for the name 2022-01-02 17:07:04 +01:00
Irmen de Jong
7bc75fd220 fix that memory("a b c", ...) produces invalid symbol 2022-01-02 16:11:53 +01:00
Irmen de Jong
a23281afab added experimental -noreinit option 2022-01-01 16:35:36 +01:00
Irmen de Jong
9e90dbdde6 slight optimization of repeat loop (> 256 iters) code generation on 65c02 cpu 2022-01-01 14:42:37 +01:00
Irmen de Jong
1e8d8e40a2 slight optimization of repeat loop (0-256 iters) code generation on 65c02 cpu 2021-12-31 14:06:35 +01:00
Irmen de Jong
583e208c1e remark 2021-12-31 11:34:53 +01:00
Irmen de Jong
9b91c427a1 add porting guide
sizeof(pointer) is hardcoded as 2 now
2021-12-31 00:16:23 +01:00
Irmen de Jong
196c5e9c24 v39->r39 2021-12-30 19:05:56 +01:00
Irmen de Jong
7c889f17b9 c128 fixes 2021-12-30 18:33:26 +01:00
Irmen de Jong
c15a75556d Merge branch 'master' into c128target
# Conflicts:
#	compiler/src/prog8/CompilerMain.kt
#	examples/test.p8
2021-12-30 18:22:05 +01:00
Irmen de Jong
5275c2e35f todo porting guide 2021-12-30 18:20:09 +01:00
Irmen de Jong
5267e06969 added -asmlist cli option to produce assembler listing output 2021-12-30 14:42:09 +01:00
Irmen de Jong
9f8c70b326 fix warning about testing multiple values 2021-12-30 00:49:36 +01:00
Irmen de Jong
a65404e63a doc 2021-12-29 18:24:05 +01:00
Irmen de Jong
05a1ddad05 Merge branch 'master' into c128target
# Conflicts:
#	examples/test.p8
2021-12-29 18:14:24 +01:00
Irmen de Jong
4be3d63c0e slight optimization of if-in 2021-12-29 18:13:43 +01:00
Irmen de Jong
de6ce4a46e add "X in [1,2,3]" expression (efficient containment check) 2021-12-29 17:26:00 +01:00
Irmen de Jong
7a9e5afb93 fix: for loop over array literal no longer crashes the compiler 2021-12-28 17:51:38 +01:00
Irmen de Jong
b2876b0a03 add a suggestion to use when statement if it seems appropriate 2021-12-28 16:38:12 +01:00
Irmen de Jong
56d21de001 Merge branch 'master' into c128target
# Conflicts:
#	examples/test.p8
2021-12-28 13:57:27 +01:00
Irmen de Jong
6e11b8ada1 GoSub no longer inherits from Jump node, fixes subtle ast/codegen bugs related to jsrs 2021-12-28 01:55:13 +01:00
Irmen de Jong
79405f47f6 fix if-gosub 2021-12-28 01:24:31 +01:00
Irmen de Jong
1c7c4fc3b0 optimized if-goto codegeneration 2021-12-28 00:42:00 +01:00
Irmen de Jong
9906b58818 tweak while desugaring, moved postfixexpr optimizations to VariousCleanups regardless of optimizer setting because asmgen requires these for conditional expressions 2021-12-27 12:41:26 +01:00
Irmen de Jong
371f084884 comment 2021-12-27 02:17:04 +01:00
Irmen de Jong
c55fdd9834 removed special code generation for while and util expression (replaced by jumps)
also added exhaustive parent node checker in validation step
2021-12-27 02:04:28 +01:00
Irmen de Jong
a3be8ccc87 Merge branch 'master' into c128target 2021-12-22 21:25:49 +01:00
Irmen de Jong
cdfef30c22 fixed docs on rsave()/rrestore() builtin functions 2021-12-22 21:24:36 +01:00
Irmen de Jong
cabf1e82e8 some shadow registers added to make uppercase()/lowercase() work 2021-12-22 21:20:34 +01:00
Irmen de Jong
6da83e2bd7 first steps to add C128 compiler target 2021-12-21 19:08:33 +01:00
Irmen de Jong
1462c57d0c no need for intermediary returnvalue var for prefix expressions 2021-12-16 21:00:38 +01:00
Irmen de Jong
77c2b2b326 fix position of @shared in array var declarations so that the order is now type[] @shared 2021-12-16 20:36:05 +01:00
Irmen de Jong
3cf9b9d9a5 code size optimization: subroutine calls with 2 byte arg will pass it via A/Y registers instead of separate param assignments at every call site 2021-12-16 01:48:22 +01:00
Irmen de Jong
08f87c321f fixed capitalization of operator sets to be consistent with other sets names 2021-12-15 23:43:14 +01:00
Irmen de Jong
890327b381 the returnvalue of the diskio.load() function family now is just the last load address+1 (like kernal's LOAD routine).
This fixes the inconsistent attempt to calculate a size, just let the caller do this if required.
Added a small helper function in cx16diskio to do this for loads that span multiple banks.
2021-12-14 23:54:42 +01:00
Irmen de Jong
b21f7411dd fix compiler crash when trying to concatenate string var and string literal. 2021-12-14 23:07:46 +01:00
Irmen de Jong
5df623bd2e doc 2021-12-14 22:40:03 +01:00
Irmen de Jong
1e9d249f71 fixed output of float values in cmp instructions 2021-12-13 00:17:59 +01:00
Irmen de Jong
35998142fe version 7.5 2021-12-10 20:18:17 +01:00
Irmen de Jong
33061aaa0d fix: allow scoped variables such as cx16.rX as loop variable in forloops 2021-12-10 14:59:04 +01:00
Irmen de Jong
e342311bef fix wrong code for inplace modification of a pointervariable's memory value 2021-12-10 14:48:53 +01:00
Irmen de Jong
3d743a1ba1 added more constfolding 2021-12-09 23:32:48 +01:00
Irmen de Jong
d8d56b195f comments 2021-12-09 21:13:13 +01:00
Irmen de Jong
c812b5ee09 elaborate pointervar indexing a bit more in the docs 2021-12-07 22:25:14 +01:00
Irmen de Jong
547b1d3720 comment corrections 2021-12-06 23:33:18 +01:00
Irmen de Jong
84f75f4156 tweaked some more .getOrElse 2021-12-06 21:22:00 +01:00
Irmen de Jong
ff69da3fa2 error when 'else' choice in when statemetn isn't the last one, also generate slightly better code for when statements 2021-12-05 21:54:46 +01:00
Irmen de Jong
edffe92a24 astchecker is smarter in detecting rts in inline assembly 2021-12-05 21:28:31 +01:00
Irmen de Jong
b6fe40ada4 fix: cx16.r0 now properly treated as zeropage var on cx16 so @(cx16.r0) won't copy it to temp var anymore 2021-12-05 21:21:41 +01:00