Commit Graph

1519 Commits

Author SHA1 Message Date
Irmen de Jong
6fdc733941 inlining subroutines that contain variable declarations is now possible (gives a warning though) 2021-04-02 18:30:32 +02:00
Irmen de Jong
422b390c48 fix ast node duplication/reference bug in certain optimizers 2021-04-02 16:56:52 +02:00
Irmen de Jong
8e26e38ecc fix RTS-issue with inlined return statement 2021-04-01 23:30:19 +02:00
Irmen de Jong
02e12d8575 improvements for inlined subroutines: fix identifier scoping 2021-04-01 23:16:04 +02:00
Irmen de Jong
fe2954ce08 todo 2021-04-01 22:10:04 +02:00
Irmen de Jong
1fe4439395 fixed wrong return value when calling other subroutines in the return expression 2021-04-01 21:56:24 +02:00
Irmen de Jong
3f30d3aa89 added sys.waitrastborder() for c64 2021-04-01 18:53:16 +02:00
Irmen de Jong
129e17b33a added sys.waitvsync() + missing documentation 2021-04-01 18:31:33 +02:00
Irmen de Jong
bf2d8c3f4b update kotlin plugin to 1.4.32 2021-03-31 20:52:05 +02:00
Irmen de Jong
b29f04ce01 fix unittest 2021-03-31 20:49:35 +02:00
Elektron72
605df7c91c Move code used for all CBM systems to new package
AssemblyProgram.kt and Petscii.kt are not only used for the Commodore
64; they are also used for the Commander X16, and will likely be used
for any future Commodore systems added to Prog8. Therefore, they should
be moved to a new package containing functionality shared between these
systems.
2021-03-29 17:21:48 -04:00
Irmen de Jong
ec60cad8bb commander-x16 prototype board #2 (rom v39+) address changes 2021-03-27 22:20:46 +01:00
Irmen de Jong
6aa0f5a392 small optimization 2021-03-27 15:45:30 +01:00
Irmen de Jong
4cae2c56ec implemented last remaining codegen for word-byte division and remainders. 2021-03-25 22:03:36 +01:00
Irmen de Jong
d840975054 remove unreached error checks 2021-03-25 21:47:05 +01:00
Irmen de Jong
1b14da6c03 compiler warning instead of crash when attempting to assign invalid array value to other array 2021-03-24 22:01:22 +01:00
Irmen de Jong
292640b17a asmgen: string values cannot be typecasted 2021-03-24 21:49:33 +01:00
Irmen de Jong
112a7b09f2 added codegen for expression that needs the status-flag register result as a value on the stack 2021-03-24 21:42:27 +01:00
Irmen de Jong
e7ef2ed31b todo 2021-03-23 23:48:53 +01:00
Irmen de Jong
af4de6d2fc replacing complex array indexer expressions moved to BeforeAsmGeneration + use cx16 virtualregister instead of adding temp variables for this 2021-03-23 23:44:14 +01:00
Irmen de Jong
bd295ffc99 array indexer complexity is now dealt with in the asm-generator only 2021-03-22 19:40:57 +01:00
Irmen de Jong
cbc3e37a89 stuff 2021-03-22 02:29:59 +01:00
Irmen de Jong
0991131fa8 don't stript unused asmsub definitions 2021-03-21 19:55:21 +01:00
Irmen de Jong
2e928bd3c2 fix compiler crash for certain str argument to asm functions 2021-03-21 18:39:39 +01:00
Irmen de Jong
ca868ae19e added cx16.vload() (like the VLOAD basic instruction) 2021-03-20 02:39:53 +01:00
Irmen de Jong
3e286dd14c move test 2021-03-18 19:34:54 +01:00
Irmen de Jong
11247d52b1 fix bugs in word <= and >= comparisons 2021-03-18 19:20:48 +01:00
Irmen de Jong
1dbc902513 fix bugs in uword <= and >= comparisons 2021-03-18 18:41:41 +01:00
Irmen de Jong
330e691b78 wip 2021-03-18 02:43:08 +01:00
Irmen de Jong
6780d4f562 fix bug in uword > comparison 2021-03-18 02:21:21 +01:00
Irmen de Jong
b30b8b7368 fix bug in float < and > comparisons 2021-03-18 01:41:54 +01:00
Irmen de Jong
3df182b8c3 created extensive comparison test suite 2021-03-18 00:50:13 +01:00
Irmen de Jong
7f21d89fea moved test programs to test folder in compiler module 2021-03-17 20:15:16 +01:00
Irmen de Jong
9a6bd760bd fixed issues in uword '>' 2021-03-16 23:40:32 +01:00
Irmen de Jong
00b9766aea fixed issues in word '>' 2021-03-16 23:22:58 +01:00
Irmen de Jong
6381d2b6ac improve word '<', word (u)word '<=' , uword '>=' codegen 2021-03-16 18:15:47 +01:00
Irmen de Jong
d2ab5f230d example TODOs 2021-03-16 01:09:25 +01:00
Irmen de Jong
824b41d457 improve word '>' and '>=' codegen 2021-03-16 00:48:03 +01:00
Irmen de Jong
b5523c7077 don't optimize with inlining too aggressively (code bloat) 2021-03-16 00:33:15 +01:00
Irmen de Jong
eb3594b18c revert to just using comparison expressions in graphics code (we're optimizing these now!) 2021-03-16 00:11:55 +01:00
Irmen de Jong
852d85d010 improve uword '<' and '>' codegen 2021-03-16 00:03:51 +01:00
Irmen de Jong
5e0aef04fe improve (u)byte '>=' codegen 2021-03-15 23:20:16 +01:00
Irmen de Jong
a00c693f93 improve (u)byte '<=' codegen 2021-03-15 23:17:04 +01:00
Irmen de Jong
c943da1448 improve ubyte '<' and '>' codegen 2021-03-15 23:12:52 +01:00
Irmen de Jong
b630fae580 refactor byte '==', '!=', '<' and '>' codegen 2 2021-03-15 23:08:30 +01:00
Irmen de Jong
38e40084f1 refactor byte '==', '!=', '<' and '>' codegen 2021-03-15 22:47:18 +01:00
Irmen de Jong
bf23ad78e6 improve byte '<' and '>' codegen 2021-03-15 22:26:00 +01:00
Irmen de Jong
ded1d19737 improve '==' and '!=' codegen 2021-03-15 19:29:32 +01:00
Irmen de Jong
496a3b0d2c todo 2021-03-15 18:56:25 +01:00
Irmen de Jong
6922333755 add a cmp(x,y) function that returns no value but only sets the status bits based off the comparison (can be used with a conditional jump afterwards) 2021-03-13 15:11:22 +01:00