Irmen de Jong
bfc8a26381
implemented bit shifting for non-const amounts
2020-08-22 16:13:52 +02:00
Irmen de Jong
70bab76b36
added plasma example
2020-08-21 17:58:43 +02:00
Irmen de Jong
15d24d4308
adding plasma example
2020-08-21 17:27:18 +02:00
Irmen de Jong
335599ed22
restored certain memoryread asm gen
2020-08-21 07:44:50 +02:00
Irmen de Jong
0b717f9e76
clear messages about slow expression code generation points
2020-08-21 05:45:39 +02:00
Irmen de Jong
ef7744dbda
asm fix
2020-08-21 04:02:10 +02:00
Irmen de Jong
8d6220ce51
added most essential of the new in-place assignment code
2020-08-21 02:17:40 +02:00
Irmen de Jong
b03597ac13
fixed bug in operand equality comparison, could lead to compiler endless loop
2020-08-20 22:21:26 +02:00
Irmen de Jong
58f323c087
implemented missing memory postincrdecr codegen
2020-08-20 21:48:15 +02:00
Irmen de Jong
513a68584c
implemented more optimized prefix expression codegen
2020-08-20 21:42:38 +02:00
Irmen de Jong
88d5c68b32
don't inc/dec a memory mapped register
2020-08-20 21:16:48 +02:00
Irmen de Jong
14f9382cf9
typecheck prefix expressions better
2020-08-20 20:46:28 +02:00
Irmen de Jong
cffb582568
added start of optimized in-place assignment code (for prefix expressions)
2020-08-20 18:43:10 +02:00
Irmen de Jong
e1812ce16c
fix typecast removal error.
2020-08-20 18:07:48 +02:00
Irmen de Jong
7a3163f59a
bugfix in direct memory assignment
2020-08-20 17:02:22 +02:00
Irmen de Jong
6f3b2749b0
refactoring assignments codegen
2020-08-20 16:47:43 +02:00
Irmen de Jong
c144d4e501
improved warnings about unreachable code
2020-08-20 14:28:17 +02:00
Irmen de Jong
edfd9d55ba
added sizeof() function
2020-08-20 13:50:28 +02:00
Irmen de Jong
774897260e
avoid silent type casts that remove precision (such as float -> word)
2020-08-20 12:49:48 +02:00
Irmen de Jong
65ba91411d
improved function arg type checking and error message
2020-08-20 12:38:22 +02:00
Irmen de Jong
53e9ad5088
better asm code for repeat loops
2020-08-18 16:02:40 +02:00
Irmen de Jong
1de0ebb7bc
more forloop asm
2020-08-18 15:16:56 +02:00
Irmen de Jong
77c1376d6d
proper error message for arrays that are declared too big
2020-08-18 14:47:52 +02:00
Irmen de Jong
353f1954a5
for loop codegen
2020-08-18 14:03:31 +02:00
Irmen de Jong
4487499663
more forloop codegen
2020-08-17 23:42:43 +02:00
Irmen de Jong
3976cc26a2
more forloop codegen
2020-08-17 23:19:23 +02:00
Irmen de Jong
c0887b5f08
removed 'continue' statement to be able to generate more optimized loop assembly code. started with for loop optimizations
2020-08-17 19:22:29 +02:00
Irmen de Jong
fbe3ce008b
slight expression rewrite in case of certain in-place assignments, to try to get the in-place variable operand to the leftmost position
2020-07-30 01:30:21 +02:00
Irmen de Jong
7ac6c8f2d1
todo related to in-place assignment
2020-07-27 00:32:59 +02:00
Irmen de Jong
fdfbb7bdf0
improved call arguments type check
2020-07-27 00:28:48 +02:00
Irmen de Jong
1c16bbb742
tweaks for string handling as arguments
2020-07-27 00:12:27 +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
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
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
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
b6e2b36692
refactor
2020-07-03 23:37:38 +02:00
Irmen de Jong
c07907e7bd
fixed missing shifts codegen
2020-07-02 21:28:48 +02:00
Irmen de Jong
a999c23014
simple subroutine inlining added
2020-06-27 17:03:03 +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