Irmen de Jong
|
7d8496c874
|
fixed missing shifts codegen
|
2020-07-02 19:18:47 +02:00 |
|
Irmen de Jong
|
164ac56db1
|
compiler error todos
|
2020-07-01 22:31:38 +02:00 |
|
Irmen de Jong
|
fdddb8ca64
|
slight optimization
|
2020-07-01 22:23:46 +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
|
febf423eab
|
tehtriz compilation issues
|
2020-06-30 20:42:13 +02:00 |
|
Irmen de Jong
|
a999c23014
|
simple subroutine inlining added
|
2020-06-27 17:03:03 +02:00 |
|
Irmen de Jong
|
69f1ade595
|
gfx mandelbrot example added
|
2020-06-18 01:35:24 +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
|
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
|
b5086b6a8f
|
refactoring last of old Ast modification Api
|
2020-06-14 03:17:42 +02:00 |
|
Irmen de Jong
|
235610f40c
|
refactored StatementOptimizer
|
2020-06-14 02:41:23 +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
|
f5e6db9d66
|
big compiler speedup due to optimized scope lookups
|
2020-05-14 23:59:02 +02:00 |
|
Irmen de Jong
|
534b5ced8f
|
updated the compiled examples
|
2020-04-10 23:36:29 +02:00 |
|
Irmen de Jong
|
5ebd9b54e4
|
added some more optimized array assignments
|
2020-04-10 23:30:19 +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
|
df3371b0f0
|
slight gfx optimizations
|
2020-04-08 22:53:23 +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
|
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
|
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
|
15e8e0bf6d
|
implemented asm for lsr array values
|
2020-04-02 23:38:45 +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
|
bfe9f442e6
|
balloon
|
2020-03-28 17:06:17 +01:00 |
|
Irmen de Jong
|
0deadb694b
|
updated the compiled examples
|
2020-03-28 14:31:31 +01:00 |
|
Irmen de Jong
|
5927cf2d43
|
added turtle graphics example
|
2020-03-28 14:17:35 +01:00 |
|
Irmen de Jong
|
fffe36e358
|
fix bresenham line
|
2020-03-28 13:42:24 +01:00 |
|
Irmen de Jong
|
fac2a2d7cb
|
fast asm plot
|
2020-03-28 00:36:44 +01:00 |
|
Irmen de Jong
|
582d31263c
|
better lines and circles
|
2020-03-27 00:09:17 +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
|
5f3a9e189a
|
doc
|
2020-03-26 01:20:04 +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
|
2f05ebb966
|
bitmap lines and circles
|
2020-03-25 01:07:42 +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
|
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
|
29d1b8802e
|
whitespace
|
2020-03-24 00:24:51 +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
|
1f39749a5e
|
tweak bitshift asm
|
2020-03-23 17:35:58 +01:00 |
|
Irmen de Jong
|
6dd44aaf0d
|
compiler main cleanup
|
2020-03-23 02:54:04 +01:00 |
|
Irmen de Jong
|
f89457ba68
|
fixed var initialization bug in anonymous scopes
|
2020-03-23 02:09:30 +01:00 |
|
Irmen de Jong
|
efef205fcf
|
doc
|
2020-03-23 01:24:54 +01:00 |
|
Irmen de Jong
|
0c561d8528
|
fixed subroutine parameter value issue
|
2020-03-23 00:13:46 +01:00 |
|
Irmen de Jong
|
8bfa2c4c02
|
proper initialization of block-level global variables
|
2020-03-22 22:47:05 +01:00 |
|
Irmen de Jong
|
f0d4c3aba9
|
moved initialvalues to asmgen, fixed sgn bug and internal float 0.0 variable disappearing bug
|
2020-03-22 18:17:12 +01:00 |
|
Irmen de Jong
|
3a99115070
|
Initial variable values semantics changed: now always sets value at program (re)start (except strings/arrays).
This may change later by introducing a compiler option to choose a strategy, perhaps.
|
2020-03-22 15:12:26 +01:00 |
|
Irmen de Jong
|
7232134931
|
fix some compiler errors
|
2020-03-22 13:47:13 +01:00 |
|
Irmen de Jong
|
78feef9d59
|
simplified handling of initial vardecl values in codegeneration
|
2020-03-22 02:45:42 +01:00 |
|
Irmen de Jong
|
4929c198ba
|
tweak error reporting, expanded lines and circles example
|
2020-03-22 00:43:46 +01:00 |
|
Irmen de Jong
|
9409f17372
|
bugfixes in new optimization routines
|
2020-03-21 23:09:18 +01:00 |
|
Irmen de Jong
|
43781c02d0
|
tweaked ast modifications
|
2020-03-21 18:42:40 +01:00 |
|
Irmen de Jong
|
824f06e17f
|
new var init values
|
2020-03-21 14:54:19 +01:00 |
|
Irmen de Jong
|
270ea54ff7
|
now properly compile assignment of struct literal value to struct variable (outside of vardecl)
|
2020-03-21 00:57:20 +01:00 |
|
Irmen de Jong
|
771ac7aba7
|
error when struct literal value element count doesn't match struct members in assignment
|
2020-03-20 23:14:03 +01:00 |
|
Irmen de Jong
|
511b47bac4
|
fix compiler crash when initializing struct var with something other than a struct literal
|
2020-03-20 22:48:33 +01:00 |
|
Irmen de Jong
|
f265199fbe
|
replaced typecastsAdder with version based on astwalker
|
2020-03-20 22:28:18 +01:00 |
|
Irmen de Jong
|
29ac160811
|
applying new astwalker for modifications
|
2020-03-19 22:40:49 +01:00 |
|
Irmen de Jong
|
5e50ea14f8
|
applying new astwalker for modifications
|
2020-03-19 21:30:01 +01:00 |
|
Irmen de Jong
|
6c23ae14ab
|
ver
|
2020-03-15 01:37:01 +01:00 |
|
Irmen de Jong
|
6f000d0d26
|
fix datatype warning
|
2020-03-15 01:14:44 +01:00 |
|
Irmen de Jong
|
835555171e
|
fix function call arg type mismatch crash
|
2020-03-15 00:50:59 +01:00 |
|
Irmen de Jong
|
68ce4a1bf0
|
labels are now prefixed with underscore in assembly to fix undefined symbol errors from the assembler
|
2020-03-15 00:23:54 +01:00 |
|
Irmen de Jong
|
baf5d3041a
|
cleanup of error reporting
|
2020-03-14 23:15:44 +01:00 |
|
Irmen de Jong
|
a326ffa00a
|
added warning about sgn() of unsigned type
|
2020-03-14 21:09:34 +01:00 |
|
Irmen de Jong
|
d28dd92b47
|
refreshed examples
|
2020-03-14 18:11:38 +01:00 |
|
Irmen de Jong
|
51bb902162
|
added bresenham and circle example
|
2020-03-14 17:11:10 +01:00 |
|
Irmen de Jong
|
91d9559f79
|
avoid pulling in the dbus libraries for now
|
2020-03-14 14:40:39 +01:00 |
|
Irmen de Jong
|
1382728bd2
|
warning about unreachable code after a return statement
added some dbus experiments for future compilation service
|
2020-03-14 13:12:01 +01:00 |
|
Irmen de Jong
|
0422ad080a
|
added exit function to astvm simulator
|
2020-03-13 02:44:01 +01:00 |
|
Irmen de Jong
|
b182f7e693
|
optimizer removes unreachable code following call to exit()
|
2020-03-13 02:31:53 +01:00 |
|
Irmen de Jong
|
e6be428589
|
compiler warning for unreachable code following a call to exit()
|
2020-03-13 02:21:37 +01:00 |
|
Irmen de Jong
|
85c7f8314b
|
added exit(rc) builtin function to immediately exit the program with a return code in A register
|
2020-03-13 02:08:18 +01:00 |
|
Irmen de Jong
|
796d07a7f8
|
fix crash in asm code generated for bitshift operation with memory address operand
|
2020-03-13 01:26:53 +01:00 |
|
Irmen de Jong
|
2af86a10b2
|
remove stack error comments
|
2020-03-13 00:52:52 +01:00 |
|
Irmen de Jong
|
7fbe486dff
|
fix eval stack register X error in print_uw
|
2020-03-13 00:50:30 +01:00 |
|
Irmen de Jong
|
b036e5ed72
|
refreshed the compiled examples
|
2020-03-12 01:14:10 +01:00 |
|
Irmen de Jong
|
5f1ec80ae0
|
improved array literal datatype handling, fixed some datatype compiler errors related to this
|
2020-03-12 01:10:19 +01:00 |
|
Irmen de Jong
|
fbecedaf41
|
added error for unsupported sort(floatarray)
|
2020-03-11 23:33:06 +01:00 |
|
Irmen de Jong
|
aa36acd65a
|
implemented reverse(floatarray) builtin function
|
2020-03-11 23:18:03 +01:00 |
|
Irmen de Jong
|
8d1a4588d3
|
added 'downto' range expression
|
2020-03-11 20:59:14 +01:00 |
|
Irmen de Jong
|
ef6c731bb3
|
added '@' alternative string/char encoding
|
2020-03-11 00:32:50 +01:00 |
|
Irmen de Jong
|
e2cb031386
|
added 'void' keyword to explicitly ignore subroutine return values (and no longer get a warning)
|
2020-02-09 01:29:09 +01:00 |
|
Irmen de Jong
|
11de3db25f
|
simplified heapId for arrayvalues
|
2020-02-08 18:49:48 +01:00 |
|
Irmen de Jong
|
875a71c786
|
removed datatype from StringValue classes (is always STR now)
|
2020-02-08 02:21:18 +01:00 |
|
Irmen de Jong
|
3dd38c0ac8
|
antlr library updated to 4.8
|
2020-02-07 23:58:07 +01:00 |
|
Irmen de Jong
|
b8816a0e2f
|
got rid of separate str_s datatype
|
2020-02-07 20:47:38 +01:00 |
|
Irmen de Jong
|
a01a9e76f9
|
removed bogus clang target
fixed various simulator bugs regarding strings and chars
|
2020-02-07 01:22:07 +01:00 |
|
Irmen de Jong
|
f6d4c90dea
|
improved number-to-decimal routines
|
2019-09-23 20:44:41 +02:00 |
|
Irmen de Jong
|
b5b24636ae
|
removed sim65 because it was moved to a separate repository
|
2019-09-11 02:24:44 +02:00 |
|
Irmen de Jong
|
8d6542905d
|
beginnings of 6502 cpu simulator
|
2019-09-03 23:58:46 +02:00 |
|
Irmen de Jong
|
39798a1a4f
|
todos
|
2019-08-29 22:31:29 +02:00 |
|
Irmen de Jong
|
772e48105e
|
fixed some type cast compiler errors in for loops
|
2019-08-26 23:38:59 +02:00 |
|
Irmen de Jong
|
89d469e77e
|
examples
|
2019-08-25 00:46:46 +02:00 |
|
Irmen de Jong
|
59a43889a5
|
examples
|
2019-08-25 00:24:00 +02:00 |
|
Irmen de Jong
|
7caa0daffc
|
examples
|
2019-08-24 21:40:50 +02:00 |
|
Irmen de Jong
|
5e854c2cf8
|
more forloop asm
|
2019-08-24 21:26:29 +02:00 |
|
Irmen de Jong
|
9edc92ec29
|
more bitshift asm stubs (actual functions still to be done)
|
2019-08-23 23:06:36 +02:00 |
|
Irmen de Jong
|
1d178080a3
|
more bitshift asm
|
2019-08-23 21:33:43 +02:00 |
|
Irmen de Jong
|
b79af624ae
|
added more asmgen for bitshift operations
|
2019-08-22 00:34:17 +02:00 |
|
Irmen de Jong
|
8eff51904e
|
taking down the heapvalue mess further
|
2019-08-21 00:29:31 +02:00 |
|
Irmen de Jong
|
c717f4573d
|
taking down the heapvalue mess further
|
2019-08-20 23:02:13 +02:00 |
|
Irmen de Jong
|
8c3b43f3ed
|
taking down the heapvalue mess
|
2019-08-19 22:28:41 +02:00 |
|
Irmen de Jong
|
0f1485f30b
|
added sorted, sgn, reverse to the AstVm
|
2019-08-18 16:39:08 +02:00 |
|
Irmen de Jong
|
4ce93b5d9d
|
restored proper compiler error when trying to modify a constant
|
2019-08-18 14:05:20 +02:00 |
|
Irmen de Jong
|
fb0d7a1908
|
some array literals weren't put on the heap
|
2019-08-18 13:46:13 +02:00 |
|
Irmen de Jong
|
bb7b063757
|
revert inline var declaration in for loops
|
2019-08-18 03:16:23 +02:00 |
|
Irmen de Jong
|
c495f54bbb
|
don't fall-through into nested subroutine
|
2019-08-18 02:33:42 +02:00 |
|
Irmen de Jong
|
1cc1f2d91d
|
reverse() added (byte+word)
|
2019-08-18 02:05:51 +02:00 |
|
Irmen de Jong
|
d837cc11f9
|
sort() added (bytes+words)
|
2019-08-18 00:04:03 +02:00 |
|
Irmen de Jong
|
cbb7083307
|
fix problem with typechecking of const arrays
|
2019-08-17 21:43:48 +02:00 |
|
Irmen de Jong
|
d4a17dfad1
|
fixed builtin functions no longer const-folding over arrays
|
2019-08-17 20:16:39 +02:00 |
|
Irmen de Jong
|
59f8b91e25
|
tweak
|
2019-08-17 18:44:44 +02:00 |
|
Irmen de Jong
|
27f987f0ae
|
fixed bit shifts, added sgn() function
|
2019-08-17 16:44:28 +02:00 |
|
Irmen de Jong
|
3ae2597261
|
irq driven music player example
|
2019-08-17 13:13:15 +02:00 |
|
Irmen de Jong
|
248e7b808c
|
split codegen
|
2019-08-16 22:49:29 +02:00 |
|
Irmen de Jong
|
a983a896f2
|
some asm and some for loop asm fixed, renamed asmgen2 back to just asmgen
|
2019-08-16 21:37:27 +02:00 |
|
Irmen de Jong
|
68df1730f5
|
cleaned up some stuff, improved checking of asmsub statement body
|
2019-08-14 23:17:50 +02:00 |
|
Irmen de Jong
|
d62ab93b24
|
word >> 8 optimized to msb(word)
|
2019-08-14 22:28:44 +02:00 |
|
Irmen de Jong
|
b64d611e02
|
split array and string literal classes
|
2019-08-13 03:00:17 +02:00 |
|
Irmen de Jong
|
b44e76db57
|
fix any/all assembly routine, added asm for min/max/sum/ etc aggregates
removed avg function because of hidden internal overflow issues
|
2019-08-11 16:13:09 +02:00 |
|
Irmen de Jong
|
2ce6bc5946
|
fix strlen
|
2019-08-11 14:02:53 +02:00 |
|
Irmen de Jong
|
fe5b225732
|
asmsub stack arg
|
2019-08-11 12:29:18 +02:00 |
|
Irmen de Jong
|
d499e40a4b
|
doc tweaks
|
2019-08-11 10:56:36 +02:00 |
|
Irmen de Jong
|
62a66d89c6
|
was not needed
|
2019-08-11 10:15:34 +02:00 |
|
Irmen de Jong
|
f08906dba1
|
fix byte->word typecast
|
2019-08-10 14:20:42 +02:00 |
|
Irmen de Jong
|
a6bba824d3
|
fixed some array codegen issues
|
2019-08-10 12:55:27 +02:00 |
|
Irmen de Jong
|
3466106119
|
fixed some array codegen issues
|
2019-08-09 02:15:31 +02:00 |
|
Irmen de Jong
|
c79b587eea
|
nonconst forloops (bytes)
|
2019-08-08 23:13:02 +02:00 |
|
Irmen de Jong
|
4862fb7db1
|
asmsub return value in registers is now put on evalstack, and loopvar sequence numbering
|
2019-08-08 00:13:58 +02:00 |
|
Irmen de Jong
|
2f0c0f6fcd
|
fix function arguments
|
2019-08-07 02:31:27 +02:00 |
|