Irmen de Jong
|
2e37f5dee3
|
IR: support for multi-returnvalue function calls (asmsubs)
note: the VM can't execute these though as it has no CPU hardware registers
|
2024-03-23 00:30:17 +01:00 |
|
Irmen de Jong
|
03e486c082
|
multi assign
|
2024-03-22 21:51:25 +01:00 |
|
Irmen de Jong
|
edc83305a4
|
allow multiple targets in AssignTarget
|
2024-03-22 21:51:08 +01:00 |
|
Irmen de Jong
|
66e7c51064
|
IR: fix some things related to asmsubs
|
2024-03-22 21:49:01 +01:00 |
|
Irmen de Jong
|
04df3c9f7f
|
vm: implemented in-place array multiplication better
|
2024-03-17 13:39:05 +01:00 |
|
Irmen de Jong
|
73be754680
|
move in place assignment functions back to AssignmentGen
|
2024-03-02 23:19:39 +01:00 |
|
Irmen de Jong
|
cd9119655c
|
IR codegen
|
2024-03-02 23:19:20 +01:00 |
|
Irmen de Jong
|
3c77f8a020
|
IR: optimize pointer access
|
2024-02-04 07:51:50 +01:00 |
|
Irmen de Jong
|
b0f5b6925d
|
getting rid of pointer[idx] in ast, instead always use @(ptr+idx)
|
2024-02-03 19:22:04 +01:00 |
|
Irmen de Jong
|
9553248ed6
|
IR: integrate inplace assignment ops
|
2024-01-28 22:33:16 +01:00 |
|
Irmen de Jong
|
39d2194d8f
|
IR: implemented inplace prefix op on split array
VM: NEG instructions also set N and Z flags
|
2024-01-28 22:33:13 +01:00 |
|
Irmen de Jong
|
8cf0b6cf51
|
IR: optimize code for ==0 and !=0 augmented assigns
|
2024-01-25 00:30:47 +01:00 |
|
Irmen de Jong
|
f2010bf7a5
|
IR: better code for array element assignments (w.i.p.)
|
2024-01-23 00:56:06 +01:00 |
|
Irmen de Jong
|
8f56a7fe69
|
IR: use INV instead of XOR for bitwise invert
|
2024-01-22 22:47:54 +01:00 |
|
Irmen de Jong
|
64c132ee0a
|
changed -breakinstr option so that you now specify the exact instruction to use for a %breakpoint.
also fixed a IR issue with x=not x.
|
2024-01-22 22:01:47 +01:00 |
|
Irmen de Jong
|
504d1440cc
|
fixed rol(),rol2(),ror(),ror2()
|
2024-01-17 21:02:17 +01:00 |
|
Irmen de Jong
|
968609d06d
|
IR: fix problems with symbol offsets and unused subroutines/chunks
|
2024-01-13 16:43:41 +01:00 |
|
Irmen de Jong
|
89cc7e5fa9
|
finalize short-circuit eval in IR codegen
|
2023-12-30 04:26:29 +01:00 |
|
Irmen de Jong
|
5fffd35ec1
|
IR: fix augmented assignment operators
|
2023-08-11 18:24:37 +02:00 |
|
Irmen de Jong
|
a4d093afa1
|
added -sourcelines cli option to include src lines in generated assembly (which is now off by default)
|
2023-08-02 23:05:24 +02:00 |
|
Irmen de Jong
|
9bb16e293c
|
vm: fix postincr/decr on indexed pointervariables
|
2023-07-31 19:37:30 +02:00 |
|
Irmen de Jong
|
84925ab69c
|
remove eval stack options
|
2023-07-15 22:24:19 +02:00 |
|
Irmen de Jong
|
5037033fcf
|
ir: EXT and EXTS opcodes now have 2 registers to avoid type clash
|
2023-07-08 22:42:11 +02:00 |
|
Irmen de Jong
|
3126959576
|
ir: several fixes
|
2023-07-07 16:53:32 +02:00 |
|
Irmen de Jong
|
bdf8aa9168
|
get rid of newexpr compiler option
|
2023-07-02 15:26:04 +02:00 |
|
Irmen de Jong
|
bfaad1388c
|
IR: handle split arrays without new custom opcodes
|
2023-06-03 01:51:02 +02:00 |
|
Irmen de Jong
|
c94e292176
|
more split array stuff
|
2023-05-27 12:47:11 +02:00 |
|
Irmen de Jong
|
bd2bcb6994
|
Merge branch 'master' into version_9
# Conflicts:
# codeGenIntermediate/src/prog8/codegen/intermediate/AssignmentGen.kt
# compiler/res/prog8lib/c128/syslib.p8
# compiler/res/prog8lib/c64/syslib.p8
# compiler/res/prog8lib/cx16/syslib.p8
# docs/source/todo.rst
# examples/test.p8
# intermediate/src/prog8/intermediate/IRInstructions.kt
|
2023-05-08 23:17:52 +02:00 |
|
Irmen de Jong
|
97df33ab1a
|
IR: fix byte to word assignment not doing value extension
|
2023-05-08 22:47:00 +02:00 |
|
Irmen de Jong
|
c07eda15b1
|
adding min() and max()
|
2023-05-02 01:19:53 +02:00 |
|
Irmen de Jong
|
ccdf05e922
|
tweaking IR instruction formats
|
2023-04-09 16:12:16 +02:00 |
|
Irmen de Jong
|
c4f53fe525
|
IR: small optimization
|
2023-04-05 22:55:54 +02:00 |
|
Irmen de Jong
|
d8214d4f12
|
fix IR array indexing for newexpr
|
2023-04-03 03:13:35 +02:00 |
|
Irmen de Jong
|
47d0f0ea40
|
implement missing operators in IR code gen
|
2023-04-01 02:29:33 +02:00 |
|
Irmen de Jong
|
f28206d989
|
new attempt
|
2023-03-28 20:01:26 +02:00 |
|
Irmen de Jong
|
629ed74d09
|
got rid of rpn deadend code...
|
2023-03-25 18:45:17 +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
|
92276b5769
|
IR fix unneeded register allocated for array indexing with variable
|
2023-03-14 21:24:44 +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
|
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
|
aaf375a57b
|
move some utility methods into Pt Ast nodes itself
|
2023-02-16 22:45:35 +01:00 |
|
Irmen de Jong
|
5c3f41f64d
|
reintroduce explicit PtAugmentedAssign ast node
|
2023-02-15 22:54:32 +01:00 |
|