Irmen de Jong
1c16bbb742
tweaks for string handling as arguments
2020-07-27 00:12:27 +02:00
Irmen de Jong
9735527062
cleanup double code
2020-07-26 23:46:06 +02:00
Irmen de Jong
402827497e
fix float array assignment
2020-07-26 23:32:20 +02:00
Irmen de Jong
d32a970101
partly optimize assignments so that simple increments and decrements can be done via separate statements (postincrdecr)
2020-07-26 19:22:12 +02:00
Irmen de Jong
8a3189123a
to reduce complexity, augmented assignment has been removed again from internal Ast and codegen for now.
2020-07-26 13:48:31 +02:00
Irmen de Jong
b37231d0f5
version 3.0
2020-07-26 01:33:02 +02:00
Irmen de Jong
3c55719bf1
finalize repeat asmgen
2020-07-26 01:32:27 +02:00
Irmen de Jong
af8279a9b9
empty for loops are removed
2020-07-25 22:54:50 +02:00
Irmen de Jong
c38508c262
introduced repeat loop. repeat-until changed to do-util.
...
forever loop is gone (use repeat without iteration count).
struct literal is now same as array literal [...] to avoid parsing ambiguity with scope blocks.
2020-07-25 16:56:34 +02:00
Irmen de Jong
b0e8738ab8
remove unused c64 resources
2020-07-25 14:47:31 +02:00
Irmen de Jong
cae480768e
version is work in progress
2020-07-25 14:45:06 +02:00
Irmen de Jong
a70276c190
use indexOfFirst. Also avoid initializing a for loop variable twice in a row.
2020-07-25 14:44:24 +02:00
Irmen de Jong
0c461ffe2e
removed Register expression (directly accessing cpu register)
2020-07-25 14:14:24 +02:00
Irmen de Jong
237511f2d6
v2.4
2020-07-04 18:56:47 +02:00
Irmen de Jong
cdcb652033
optimized arg passing if all args are registers
2020-07-04 18:56:30 +02:00
Irmen de Jong
71e678b382
fixed possible register subroutine arg clobbering
2020-07-04 17:05:36 +02:00
Irmen de Jong
3050156325
reverted subroutine inlining, it was a mistake
2020-07-04 01:02:36 +02:00
Irmen de Jong
06137ecdc4
v2.3
2020-07-03 23:51:27 +02:00
Irmen de Jong
b6e2b36692
refactor
2020-07-03 23:37:38 +02:00
Irmen de Jong
a6d789cfbc
fixed function argument type cast bug
2020-07-03 17:24:43 +02:00
Irmen de Jong
c07907e7bd
fixed missing shifts codegen
2020-07-02 21:28:48 +02:00
Irmen de Jong
7d8496c874
fixed missing shifts codegen
2020-07-02 19:18:47 +02:00
Irmen de Jong
a9d4b8b0fa
fixed ast modifications on node arrays, in particular function call parameter lists
2020-07-01 22:03:54 +02:00
Irmen de Jong
ec7b9f54c2
subroutine inlining is an optimizer step
2020-07-01 12:41:10 +02:00
Irmen de Jong
307558a7e7
removed some double code related to call tree
2020-06-30 20:42:55 +02:00
Irmen de Jong
a999c23014
simple subroutine inlining added
2020-06-27 17:03:03 +02:00
Irmen de Jong
b166576e54
comments
2020-06-17 23:27:54 +02:00
Irmen de Jong
ee2ba5f398
some more optimizations for swap() function call asm code generation
2020-06-17 22:40:57 +02:00
Irmen de Jong
cb9825484d
some more optimized in-array assignments codegeneration
2020-06-17 21:41:38 +02:00
Irmen de Jong
76cda82e23
v2.2
2020-06-16 01:43:44 +02:00
Irmen de Jong
37b61d9e6b
v2.2
2020-06-16 01:39:11 +02:00
Irmen de Jong
52f0222a6d
Got rid of old Ast transformer Api, some compiler error fixes
2020-06-16 01:25:49 +02:00
Irmen de Jong
75ccac2f2c
refactoring last of old Ast modification Api
2020-06-16 00:36:02 +02:00
Irmen de Jong
5c771a91f7
refactoring last of old Ast modification Api
2020-06-14 16:56:48 +02:00
Irmen de Jong
a242ad10e6
fix double printing of sub param vardecl
2020-06-14 13:46:46 +02:00
Irmen de Jong
b5086b6a8f
refactoring last of old Ast modification Api
2020-06-14 03:17:42 +02:00
Irmen de Jong
3e47dad12a
clearer no modifications
2020-06-14 02:54:29 +02:00
Irmen de Jong
235610f40c
refactored StatementOptimizer
2020-06-14 02:41:23 +02:00
Irmen de Jong
6b59559c65
memory address assignment codegen
2020-06-14 02:12:40 +02:00
Irmen de Jong
23e954f716
refactoring StatementOptimizer
2020-06-14 02:00:32 +02:00
Irmen de Jong
983c899cad
refactor AstIdentifierChecker
2020-06-13 00:14:19 +02:00
Irmen de Jong
c2f9385965
refactor AstIdentifierChecker
2020-06-12 21:34:27 +02:00
Irmen de Jong
ceb2c9e4f8
added string value assignment, leftstr, rightstr, substr functions
2020-06-06 00:05:39 +02:00
Irmen de Jong
68a7f9c665
version 2.1
2020-06-04 23:03:18 +02:00
Irmen de Jong
ffd8d9c7c1
more assignment expression optimizations
2020-06-04 22:57:32 +02:00
Irmen de Jong
c66fc8630c
fixed missing repeated constant folding in expression optimization
2020-06-04 20:22:37 +02:00
Irmen de Jong
9ca1c66f2b
added some optimizations for >= 0 and <0 comparisons for integers
2020-06-04 01:43:37 +02:00
Irmen de Jong
33647a29d0
be smarter about certain implicit type casts
2020-06-03 23:55:41 +02:00
Irmen de Jong
02b12cc762
optimized swap() for byte and word vars, optimized graphics line routine
2020-06-03 23:27:50 +02:00
Irmen de Jong
3280993e2a
stricter type checking in assignments (less implicit typecasts)
2020-06-02 22:36:57 +02:00
Irmen de Jong
3723c22054
fix string param type
2020-06-02 02:09:52 +02:00
Irmen de Jong
0a2c4ea0c4
improved ast printing
2020-06-02 01:51:27 +02:00
Irmen de Jong
58a83c0439
improved code gen for passing string and array types.
2020-06-02 01:44:42 +02:00
Irmen de Jong
d665489054
implemented asm for addressof-assignment
2020-06-02 00:31:56 +02:00
Irmen de Jong
9200992024
slightly improved asm gen error messages
2020-06-02 00:31:20 +02:00
Irmen de Jong
961bcdb7ae
some more todo's noted down
2020-05-15 00:24:25 +02:00
Irmen de Jong
edee70cf31
use new api for ast mods in unused code remover
2020-05-15 00:16:53 +02:00
Irmen de Jong
1978a9815a
version 2.0
2020-05-14 23:59:18 +02:00
Irmen de Jong
f5e6db9d66
big compiler speedup due to optimized scope lookups
2020-05-14 23:59:02 +02:00
Irmen de Jong
a94bc40ab0
performance todo's
2020-05-08 20:41:10 +02:00
Irmen de Jong
5ebd9b54e4
added some more optimized array assignments
2020-04-10 23:30:19 +02:00
Irmen de Jong
cc4e272526
the new assignment code (once complete) really is a big enough change to bump the version to 2.0
2020-04-09 00:24:37 +02:00
Irmen de Jong
295e199bfa
optimized asm output for unneeded typecasts, fixed parent node linking issues with replaceChildNode, Assignment aug_op field is now mutable to avoid having to recreate many Assignment nodes
2020-04-09 00:12:50 +02:00
Irmen de Jong
e4fe1d2b8d
attempts to optimize in-place assignments
2020-04-08 03:11:38 +02:00
Irmen de Jong
b8b9244ffa
merged AddressOfInserter into StatementReorderer
2020-04-06 15:23:54 +02:00
Irmen de Jong
3be3989e1c
version
2020-04-06 14:31:23 +02:00
Irmen de Jong
ed54cf680a
fixed ast parent link bug in AstWalker, rewrote StatementReorderer using new API, when
labels are sorted.
2020-04-06 14:31:02 +02:00
Irmen de Jong
95e76058d3
version
2020-04-03 23:55:29 +02:00
Irmen de Jong
a6bee6a860
some slight tweaks to asm for setting float value in array
2020-04-03 22:44:10 +02:00
Irmen de Jong
d22780ee44
implemented asm for lsl array values
2020-04-03 21:45:52 +02:00
Irmen de Jong
f8b0b9575d
implemented asm for rol array values
2020-04-03 21:31:39 +02:00
Irmen de Jong
4274fd168e
implemented asm for rol2 array values
2020-04-03 21:24:55 +02:00
Irmen de Jong
be7f5957f3
implemented asm for ror2 array values
2020-04-03 21:04:42 +02:00
Irmen de Jong
f2e5d987a9
implemented asm for ror array values
2020-04-03 00:03:42 +02:00
Irmen de Jong
f01173d8db
fixed compilation of clear/set_carry() and clear/set_irqd() functions
2020-04-03 00:00:58 +02:00
Irmen de Jong
15e8e0bf6d
implemented asm for lsr array values
2020-04-02 23:38:45 +02:00
Irmen de Jong
2c59cbdece
fixed a crash in astchecking of array init values
2020-04-02 18:40:04 +02:00
Irmen de Jong
b73da4ed02
some more obvious optimizations for X+X and X-X
2020-03-31 23:54:01 +02:00
Irmen de Jong
267adb4612
doc
2020-03-29 03:06:51 +02:00
Irmen de Jong
05c73fa8bc
version
2020-03-28 17:06:59 +01:00
Irmen de Jong
bed34378be
doc
2020-03-28 14:24:00 +01:00
Irmen de Jong
fffe36e358
fix bresenham line
2020-03-28 13:42:24 +01:00
Irmen de Jong
0af5582ca7
fix compiler crash for undefined symbol in expression
2020-03-27 23:09:46 +01:00
Irmen de Jong
4108a528e1
proepr compiler error when there's no main module
2020-03-26 23:22:01 +01:00
Irmen de Jong
ab7d7c2907
fix comparison of memory expressions (this error prevented some optimizations)
2020-03-26 22:59:42 +01:00
Irmen de Jong
152888ee93
fix direcetmemoryread invalid asm
2020-03-26 22:46:05 +01:00
Irmen de Jong
22f8f4f359
fixed memory pointer access asm code for direct reads and direct assignments
2020-03-26 19:20:39 +01:00
Irmen de Jong
b734dc44fd
fix invalid assembly for @(address)++/--
2020-03-26 01:13:20 +01:00
Irmen de Jong
fab224f509
fix compiler crashing with invalid array initializer built from single integer
2020-03-25 01:23:54 +01:00
Irmen de Jong
a335ba519a
fix warnings about unreachable code
2020-03-24 22:37:42 +01:00
Irmen de Jong
8805693ed2
cleaned up the way return statements are added to avoid code falling through in/out of subroutines
2020-03-24 22:02:50 +01:00
Irmen de Jong
f2bb238e9b
cleaned up various ast checks/mutations
2020-03-24 19:37:54 +01:00
Irmen de Jong
131fe670a4
optimized scroll routines by removing needless twin loops
2020-03-24 17:33:47 +01:00
Irmen de Jong
11e9539416
smooth scroll
2020-03-24 02:42:32 +01:00
Irmen de Jong
3881ebe429
begun skramble clone
2020-03-24 01:47:02 +01:00
Irmen de Jong
bcc75732e9
optimize asm jsr+rts into jmp
2020-03-23 23:51:27 +01:00
Irmen de Jong
50a85ee6b0
attempt to optimize asm for bitshifts more.
2020-03-23 22:59:29 +01:00
Irmen de Jong
2c7424fd43
fix: datatype mismatch in optimized bitshift const value
2020-03-23 22:35:23 +01:00
Irmen de Jong
7426587c38
fix: add proper return statement type cast if needed, now also for non constant values
2020-03-23 19:49:11 +01:00
Irmen de Jong
1f39749a5e
tweak bitshift asm
2020-03-23 17:35:58 +01:00