Commit Graph

1195 Commits

Author SHA1 Message Date
Irmen de Jong
3ac2385d4b optimize calls/jumps and loops with always known conditions. 2018-10-07 23:29:27 +02:00
Irmen de Jong
7b51597fe9 some more typecheckings and indexing on matrixes 2018-10-07 21:20:04 +02:00
Irmen de Jong
34d26e42e1 fixed some type checks 2018-10-07 02:05:26 +02:00
Irmen de Jong
30b58c8567 variables are reset to their declared value when entering the scope again 2018-10-07 00:21:13 +02:00
Irmen de Jong
314e5ca9e2 correct type for word array initialization value 2018-10-06 23:07:57 +02:00
Irmen de Jong
6edd5f9b30 can now declare for loop variable on the spot 2018-10-06 22:54:03 +02:00
Irmen de Jong
1d37841575 for, while, repeat, if, branch bodies are now (anonymous) symbol scopes 2018-10-06 18:42:06 +02:00
Irmen de Jong
7b650ffa18 added bitmap characters 2018-10-06 02:16:07 +02:00
Irmen de Jong
a7abc32368 wrd and wrdhi functions added for byte-word conversion, more constant folding optimizations 2018-10-06 00:10:30 +02:00
Irmen de Jong
d13ced6d95 tweak 2018-10-05 18:36:23 +02:00
Irmen de Jong
b1dcc8093a optimize silly unneeded data conversions in stackvm code 2018-10-05 18:31:48 +02:00
Irmen de Jong
6350bf8024 fixed datatype conversions 2018-10-05 17:44:29 +02:00
Irmen de Jong
52e1661c8e even more opcodes type-specific 2018-10-05 16:57:13 +02:00
Irmen de Jong
e8ba21d3ba made a lot more opcodes type-specific 2018-10-05 13:58:37 +02:00
Irmen de Jong
42e4891fcf allowing vardecl with non-const initial value assignment 2018-10-05 00:29:46 +02:00
Irmen de Jong
2e4b5768b0 tweak subroutine order 2018-10-04 20:54:18 +02:00
Irmen de Jong
7d77504335 types 2018-10-04 02:30:23 +02:00
Irmen de Jong
bf75e7c00b types 2018-10-04 02:28:19 +02:00
Irmen de Jong
d2ffb1063b made more opcodes type-specific (will be needed for assembly generation later) 2018-10-04 02:17:18 +02:00
Irmen de Jong
4501276217 cube3d and tweaks 2018-10-03 01:57:16 +02:00
Irmen de Jong
4df397d057 merge asmsub and normal sub 2018-10-03 00:25:04 +02:00
Irmen de Jong
34fb82969c optimize assignment with literal value; const-convert value to target datatype literal if possible 2018-10-02 23:10:27 +02:00
Irmen de Jong
18c6165325 more complete for loops, various comma separated lists can now be split over multiple lines 2018-10-02 22:52:05 +02:00
Irmen de Jong
af0d52b5c2 assignment to array-indexed 2018-10-02 04:05:44 +02:00
Irmen de Jong
38e7d48492 implemented floating-point arrays 2018-10-02 02:20:42 +02:00
Irmen de Jong
0cdae48ce7 implemented array indexing 2018-10-01 22:23:16 +02:00
Irmen de Jong
8f26fdef61 changed the syntax of kernel/asm subroutines 2018-10-01 20:05:32 +02:00
Irmen de Jong
b96bb23a54 added gfx_line function 2018-10-01 01:01:39 +02:00
Irmen de Jong
6d343bd75d moved 2018-09-30 23:13:35 +02:00
Irmen de Jong
623b42cc14 added single character literals (petscii byte value) 2018-09-30 23:07:26 +02:00
Irmen de Jong
3278d4c945 fixed function calls, added some string-to-number conversion functions 2018-09-30 22:43:34 +02:00
Irmen de Jong
734948c813 funcion call parameters are now checked against function signature 2018-09-30 20:58:47 +02:00
Irmen de Jong
d1589bef26 builtin funcs with multiple param types 2018-09-30 20:19:25 +02:00
Irmen de Jong
02075f2cf2 changed subroutine syntax and fixed array/matrix initalizer values 2018-09-30 18:49:58 +02:00
Irmen de Jong
505de87f27 builtin funcs 2018-09-30 16:25:00 +02:00
Irmen de Jong
34dec55eb2 fix builtin functions over non-const arrays/strings 2018-09-29 19:17:19 +02:00
Irmen de Jong
5ee427b72b enforce const on array/matrix values 2018-09-29 18:05:35 +02:00
Irmen de Jong
6b89bb7be5 strings and arrays are now stored in a 'heap' instead of in the value itself, to reflect how the target platform will store them 2018-09-29 17:33:59 +02:00
Irmen de Jong
d4232721fc improve check to see if expression is iterable 2018-09-29 10:07:27 +02:00
Irmen de Jong
814b7ce6aa track vars per block for later 6502 generation 2018-09-28 23:04:36 +02:00
Irmen de Jong
c5d251073f removed broken unused symbol clean up for now
streamlined irq routine handling and compilation
2018-09-28 21:28:16 +02:00
Irmen de Jong
4d7279b004 fix lsb, msb result data type 2018-09-28 19:35:34 +02:00
Irmen de Jong
1c036c4813 translating subroutine calls and returns 2018-09-28 02:26:56 +02:00
Irmen de Jong
bf5c2e07a2 subroutines cannot use builtin function names for parameters 2018-09-27 23:58:14 +02:00
Irmen de Jong
91f9229b07 fixed memory vars in compiler, added invalid assignment check 2018-09-27 23:21:04 +02:00
Irmen de Jong
7f28f8be11 60hz irq implemented in stackvm 2018-09-27 22:45:57 +02:00
Irmen de Jong
99d63b13a8 slightly simplified const grouping 2018-09-27 20:50:39 +02:00
Irmen de Jong
5e729e21ff added some more constant foldings 2018-09-27 01:35:35 +02:00
Irmen de Jong
6681787288 fix handling of (too) large integer literals, and range check crash 2018-09-26 21:37:46 +02:00
Irmen de Jong
0f53f87895 made stackvm source a bit more readable 2018-09-26 01:14:10 +02:00