Commit Graph

177 Commits

Author SHA1 Message Date
Irmen de Jong
82c6794e3b assignments 2018-10-31 00:50:53 +01:00
Irmen de Jong
625791e5e8 removed support for indexing on register pairs 2018-10-30 23:20:09 +01:00
Irmen de Jong
6d21274090 assignments 2018-10-30 22:15:38 +01:00
Irmen de Jong
5bf2c4a798 got rid of matrix type 2018-10-30 20:29:03 +01:00
Irmen de Jong
98a8ff4587 asm fixes 2018-10-30 17:39:22 +01:00
Irmen de Jong
5361379187 Merge remote-tracking branch 'origin/master' 2018-10-30 11:12:25 +01:00
Irmen de Jong
05fc6fa47a tweaks 2018-10-30 09:22:32 +01:00
Irmen de Jong
1e776b1f53 Merge remote-tracking branch 'origin/master' 2018-10-29 10:24:30 +01:00
Irmen de Jong
8446dd567b assignments again 2018-10-29 02:05:22 +01:00
Irmen de Jong
729d931ccb assignments again 2018-10-27 23:03:46 +02:00
Irmen de Jong
7c4846700b simplified opcodes (removed COPY_XXX and MEM signed/unsigned distinction) 2018-10-27 22:08:46 +02:00
Irmen de Jong
f4e2641f7c assignments and stuff 2018-10-27 21:26:32 +02:00
Irmen de Jong
a23673fe83 array assignments etc 2018-10-27 02:09:23 +02:00
Irmen de Jong
0235864d0b asm fixes 2018-10-26 11:50:06 +02:00
Irmen de Jong
f541dd3bfd regenerate parser 2018-10-26 02:14:33 +02:00
Irmen de Jong
5203dad7c1 more asm output 2018-10-26 01:44:01 +02:00
Irmen de Jong
595bf7ad4b more asm output 2018-10-25 01:05:35 +02:00
Irmen de Jong
f42a036fc5 more asm output, added COPY_MEM_XXX optimized opcodes 2018-10-25 00:28:50 +02:00
Irmen de Jong
4effd0b3db asm fixes 2018-10-24 17:51:56 +02:00
Irmen de Jong
fba3cb7301 more asm output 2018-10-24 01:39:52 +02:00
Irmen de Jong
ab73353cd2 fix expression simplification issue 2018-10-23 23:05:08 +02:00
Irmen de Jong
a825bbff96 fix array problems, limit size of arrays. 2018-10-23 00:52:51 +02:00
Irmen de Jong
b8f3f942d4 implemented all bit rotate and shift operations 2018-10-22 01:02:24 +02:00
Irmen de Jong
da3f79c092 another way to generate asm 2018-10-21 20:26:18 +02:00
Irmen de Jong
79462b3448 fixed some problems with builtin functions 2018-10-20 23:53:39 +02:00
Irmen de Jong
c01114db9f more asm 2018-10-18 02:14:13 +02:00
Irmen de Jong
bcedb5f5e3 fix some asm 2018-10-17 18:11:36 +02:00
Irmen de Jong
067426016d more asm 2018-10-17 01:01:01 +02:00
Irmen de Jong
1e0ce40d1d included libs are now carried over to asm properly 2018-10-16 22:58:30 +02:00
Irmen de Jong
529c525081 inline asm and fixed c64 libs 2018-10-16 02:36:14 +02:00
Irmen de Jong
263b197fec more asm 2018-10-16 01:24:40 +02:00
Irmen de Jong
85f6c5350c more asm 2018-10-15 02:49:59 +02:00
Irmen de Jong
ba384c9722 rsave/rrestore added 2018-10-14 22:32:03 +02:00
Irmen de Jong
b52120139c 6502 start 2018-10-14 01:55:39 +02:00
Irmen de Jong
b7d8f026f4 refactor 2018-10-13 18:17:06 +02:00
Irmen de Jong
dff4518608 intermediate program written in blocks 2018-10-13 16:55:01 +02:00
Irmen de Jong
987915a77a doc 2018-10-12 18:01:40 +02:00
Irmen de Jong
7aec14524e fix datatype conversion issues 2018-10-12 15:50:32 +02:00
Irmen de Jong
cc54e3ec99 fix array initialization 2018-10-12 00:55:21 +02:00
Irmen de Jong
1fe5c943fd adding singed integer datatypes 2018-10-11 21:50:10 +02:00
Irmen de Jong
2f7d03b6ab adding singed integer datatypes 2018-10-10 09:21:20 +02:00
Irmen de Jong
f5261a3425 added %zpreserved 2018-10-09 00:01:53 +02:00
Irmen de Jong
42394f561b syntax checks on asmsubs 2018-10-08 22:35:39 +02:00
Irmen de Jong
50464ebda1 syntax checks on asmsubs 2018-10-08 21:57:36 +02:00
Irmen de Jong
9d10210466 optimized var copying 2018-10-08 02:24:35 +02:00
Irmen de Jong
c2a1cb956a allow to re-assign string variables 2018-10-08 01:20:53 +02:00
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
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
Irmen de Jong
00baec12ab arithmetic statement optimizations added 2018-09-26 00:58:02 +02:00
Irmen de Jong
f85d8edeba added some more division by zero checks
bitwise operator optimizations
2018-09-25 22:16:32 +02:00
Irmen de Jong
a2c165839d optimize for loop over 1-valued range 2018-09-25 20:40:41 +02:00
Irmen de Jong
53cd50ad48 changed float handling and appropriate compiler messages 2018-09-25 19:52:59 +02:00
Irmen de Jong
d990b05998 compilation of prefix operators, added NOT opcode 2018-09-25 01:02:01 +02:00