Commit Graph

3646 Commits

Author SHA1 Message Date
Irmen de Jong
84b31e65e1 more rpn optimization 2023-03-18 14:23:17 +01:00
Irmen de Jong
7b802bfd3d Merge branch 'master' into rpn-expressions
# Conflicts:
#	codeGenCpu6502/src/prog8/codegen/cpu6502/AsmGen.kt
2023-03-18 13:39:14 +01:00
Irmen de Jong
f9c4632b8d c64: remove 2 problematic ZP locations from the free list when using floating point 2023-03-18 13:36:19 +01:00
Irmen de Jong
e4764cd8a6 fix typo in comparison function and in pointer optimization 2023-03-18 12:55:35 +01:00
Irmen de Jong
dd78a3a686 fix typo in comparison function 2023-03-18 12:52:50 +01:00
Irmen de Jong
94c06e13f4 implementing Rpn optimizations 2 2023-03-18 12:43:45 +01:00
Irmen de Jong
e8bebe5a75 implementing Rpn optimizations 2023-03-18 01:13:02 +01:00
Irmen de Jong
5b0e1b4f9e a little rpn refactor 2023-03-17 23:04:56 +01:00
Irmen de Jong
8c0a93779b added first implementation of RPN 6502 codegen - all via stackeval still 2023-03-17 22:28:22 +01:00
Irmen de Jong
9241479da4 add "-rpn" command line switch to transform exprs to RPN in codegen 2023-03-17 22:28:22 +01:00
Irmen de Jong
8ffca93cd5 added transform routine for expr -> RPN 2023-03-17 22:28:22 +01:00
Irmen de Jong
7fea0c124a introduce PtRpn node to replace PtBinaryExpression later 2023-03-17 22:28:22 +01:00
Irmen de Jong
20dbdb20d2 renamed the cx16 VIA register variables to more meaningful names 2023-03-17 22:28:09 +01:00
Irmen de Jong
e6b8e2e8be attempt at doc fix 2023-03-17 22:15:21 +01:00
Irmen de Jong
7c5b7f77cc attempt at doc fix 2023-03-17 22:12:47 +01:00
Irmen de Jong
de84547a21 attempt at doc fix 2023-03-17 22:06:06 +01:00
Irmen de Jong
44676756ae don't print weird position link for library files 2023-03-17 00:50:17 +01:00
Irmen de Jong
b399b0f182 don't print weird position link for dummy positions 2023-03-16 23:37:33 +01:00
Irmen de Jong
1152191f48 add optimization: replace simple for loops by repeat loop 2023-03-15 21:11:37 +01:00
Irmen de Jong
af1b07ad44 add more referencesIdentifier() on ast nodes 2023-03-15 20:44:24 +01:00
Irmen de Jong
b8113fff1e todo 2023-03-15 01:05:48 +01:00
Irmen de Jong
ff6948cf2d syntax defs for unroll 2023-03-14 23:52:07 +01:00
Irmen de Jong
fd25e85d59 added unroll loop construct 2023-03-14 23:37:49 +01:00
Irmen de Jong
c07cd72e85 restored the non=problematic asm optimization steps... 2023-03-14 22:30:50 +01:00
Irmen de Jong
e2c101206c removed a problematic asm optimization step that could result in dysfunctional code when writing to I/O addresses 2023-03-14 22:14:48 +01:00
Irmen de Jong
92276b5769 IR fix unneeded register allocated for array indexing with variable 2023-03-14 21:24:44 +01:00
Irmen de Jong
a2133f61a8 get rid of all the require() checks that test result regs to be different 2023-03-14 01:01:46 +01:00
Irmen de Jong
199adbbcf0 IR: don't allow to have 2 same registers on instructions 2023-03-14 00:45:41 +01:00
Irmen de Jong
dc316fd7b4 IR: more optimal branch instructions for comparisons against zero 2023-03-13 23:17:53 +01:00
Irmen de Jong
025183602f refactor IR returnregs 6 2023-03-13 21:35:23 +01:00
Irmen de Jong
db4619a9d9 refactor IR returnregs 5 2023-03-13 04:16:50 +01:00
Irmen de Jong
451e527b7c refactor IR returnregs 4 2023-03-13 03:54:16 +01:00
Irmen de Jong
54dd3a00df refactor IR returnregs 3 2023-03-13 03:20:06 +01:00
Irmen de Jong
03c5dab79d refactor IR returnregs 2 2023-03-13 02:50:41 +01:00
Irmen de Jong
1fdee861e8 refactor IR returnregs 2023-03-13 00:32:48 +01:00
Irmen de Jong
c12bf991b3 reintegrate into existing IR optimizer 2023-03-12 22:16:20 +01:00
Irmen de Jong
78a097585d new IR call and return instructions to deal with returnregisters 2023-03-12 21:54:59 +01:00
Irmen de Jong
39132327cc added optimizer for IR code
with two very simple optimizations
2023-03-12 20:30:51 +01:00
Irmen de Jong
dc32318cec fix possible string error on inlined subroutines 2023-03-12 18:16:48 +01:00
Irmen de Jong
592f74124c fix startup subroutine linking in VM 2023-03-12 16:09:55 +01:00
Irmen de Jong
e5e63cc5ac catch wrong repeat value 2023-03-11 16:13:02 +01:00
Irmen de Jong
f40e0f786d txt.width() and txt.height() added for vm target 2023-03-11 16:05:45 +01:00
Irmen de Jong
ebd9f1471b fix crash when using const word as pointer and implement 2 missing assign codegen paths 2023-03-11 15:39:03 +01:00
Irmen de Jong
d76547ead4 don't crash on certain undefined symbols, give proper error instead
Also the error handlers in unit tests now de-duplicate messages just like the compiler itself does
2023-03-11 14:58:41 +01:00
Irmen de Jong
4600772e05 fix pokew mistake 2023-03-11 01:03:34 +01:00
Irmen de Jong
ed597423cd fix problem with initializing certain array decls with single value 2023-03-11 00:43:30 +01:00
Irmen de Jong
f20ca06f85 give correct error when using memory mapped var as array pointer 2023-03-11 00:26:19 +01:00
Irmen de Jong
a636d3f394 give correct error on attempt to const array 2023-03-10 23:46:13 +01:00
Irmen de Jong
043df18daa set X to bottom part of eval stack in irq handler. fixes #94 2023-03-10 23:29:34 +01:00
Irmen de Jong
96996bf18e be less aggressive with translating adds/subs into auto inc/decrements, to avoid code bloat 2023-03-10 23:01:55 +01:00