Irmen de Jong
d819aa270f
test
2020-09-18 23:38:50 +02:00
Irmen de Jong
5d900800f2
vardecl value inits must not be shuffled around but stay at their original line at all times
2020-09-18 22:24:26 +02:00
Irmen de Jong
f1ee3b4e60
version 4.2
2020-09-16 23:04:18 +02:00
Irmen de Jong
6395e39d63
avoid generating superfluous '0' variable initializations, and fix erroneous vardecl order shifting
2020-09-16 22:15:06 +02:00
Irmen de Jong
2a6d9d7e31
more optimal codegen for some typecasts
2020-09-15 03:26:57 +02:00
Irmen de Jong
32a7cd31da
more optimal codegen for if statements
2020-09-15 00:31:44 +02:00
Irmen de Jong
d110d1cb5f
c64 system reset now banks kernel rom back in
2020-09-15 00:10:20 +02:00
Irmen de Jong
48858019b7
added the last of the optimized mul_word asm routines
2020-09-14 23:54:01 +02:00
Irmen de Jong
aff6b1fca5
added some more optimized mul_word asm routines
2020-09-14 23:03:18 +02:00
Irmen de Jong
d260182ef3
added some more optimized mul_byte asm routines
2020-09-14 22:06:40 +02:00
Irmen de Jong
97b9c8f320
don't clobber A when trying to save X at functioncall
2020-09-12 19:04:44 +02:00
Irmen de Jong
35aebbc209
optimize unneeded type casts for register args
2020-09-12 02:48:16 +02:00
Irmen de Jong
49a0584c54
added a %target directive
2020-09-09 22:53:34 +02:00
Irmen de Jong
e21aa2c8f0
better naming of the optimized math mult routines
2020-09-09 22:16:37 +02:00
Irmen de Jong
40071b1431
fix compiler crash with adding too many typecasts to args. useless lsb() and msb() are optimized away.
2020-09-09 21:37:56 +02:00
Irmen de Jong
02e29e6990
added some preliminary clobber specs to some cx16 graphics calls, This fixes the 3d cube gfx
2020-09-07 04:06:46 +02:00
Irmen de Jong
1377bed988
fix assembly for cx16 when zp is not basicsafe
2020-09-06 17:58:05 +02:00
Irmen de Jong
8f9f947c42
fix some issues with float const 0.0 and 1.0
2020-09-05 02:07:41 +02:00
Irmen de Jong
13d7f239ab
floating point 1.0 no longer referenced from ROM because cx16 doesn't have it. Added some more cx16 examples.
2020-09-05 00:17:58 +02:00
Irmen de Jong
809917f13b
version 4.1
2020-08-31 21:44:38 +02:00
Irmen de Jong
5d90871789
got floating points working in commanderx16, added txt.color() to set text color
2020-08-30 00:15:18 +02:00
Irmen de Jong
88a9e09918
got floating points working in commanderx16
2020-08-29 23:55:26 +02:00
Irmen de Jong
c50ecf6055
fix for loop asm creation with word loopvar
2020-08-29 02:05:24 +02:00
Irmen de Jong
a18de75da9
fix compiler loop and missing type checks on for loop range values
2020-08-29 01:48:41 +02:00
Irmen de Jong
e112dfd910
implemented signed byte and word division
2020-08-29 00:00:53 +02:00
Irmen de Jong
d97da3bb7b
implemented almost all math operations
2020-08-27 20:47:22 +02:00
Irmen de Jong
a77d3c92ad
implemented remaining float operations
2020-08-27 19:47:50 +02:00
Irmen de Jong
9cec554f7c
moved the type conversion routines to their own library file to avoid duplication
2020-08-26 20:52:38 +02:00
Irmen de Jong
08b25e610d
commander x16 improvements
2020-08-26 19:34:12 +02:00
Irmen de Jong
b939562062
added preliminary CommanderX16 machine target support. Fixed nullpointer when importing a missing file.
2020-08-26 01:56:26 +02:00
Irmen de Jong
256781bba5
added missing in-place bitwise operator code
2020-08-25 22:26:05 +02:00
Irmen de Jong
d19b17cbfe
optimize strlen()
2020-08-25 17:31:47 +02:00
Irmen de Jong
4a4f8ff5db
subroutine parameters can be allocated on the zp now as well
2020-08-25 16:47:21 +02:00
Irmen de Jong
60a9209a14
plasma
2020-08-25 01:48:23 +02:00
Irmen de Jong
144199730f
refactored and optimized load/store byte from pointervar
2020-08-25 00:18:33 +02:00
Irmen de Jong
4bb4eab3b2
cleanup
2020-08-24 23:18:46 +02:00
Irmen de Jong
cf9151f669
use AsmAssignment preferrably over creating new ast node for codegen
2020-08-24 22:45:43 +02:00
Irmen de Jong
aef4598cec
comments
2020-08-24 02:56:22 +02:00
Irmen de Jong
3ada0fdf84
function call register args code consolidation, fix asm for loading word value from variable into register
2020-08-24 01:42:44 +02:00
Irmen de Jong
2640015fb1
move
2020-08-24 00:26:26 +02:00
Irmen de Jong
1f17c22132
more array access optimizations
2020-08-23 22:36:49 +02:00
Irmen de Jong
b9ca1c2e2c
more uniform code for array indexing (all using scaled offset now)
2020-08-23 20:25:00 +02:00
Irmen de Jong
93b2ff2e52
fix postincrdecr on array value
2020-08-23 18:52:19 +02:00
Irmen de Jong
3991d23a69
refactoring
2020-08-23 18:20:57 +02:00
Irmen de Jong
d9e3895c45
start with yet another codegen restructure, this time to make the assignment of values even more explicit for the codegen
2020-08-23 02:05:01 +02:00
Irmen de Jong
5075901830
work
2020-08-22 23:39:27 +02:00
Irmen de Jong
e947067dcf
fixed source code output issue
2020-08-22 22:23:00 +02:00
Irmen de Jong
bd9ebf4603
flipped the order of the parameters of mkword() so it's now mkword(msb, lsb) for easier readability
2020-08-22 21:13:38 +02:00
Irmen de Jong
ff54d6abd7
reorder const for all associative operators
2020-08-22 17:44:32 +02:00
Irmen de Jong
679965410a
todo
2020-08-22 17:13:23 +02:00
Irmen de Jong
c6e13ae2a3
better error message
2020-08-22 17:12:09 +02:00
Irmen de Jong
20cdcc673b
identifiers can no longer start with an underscore. (this interfered with 64tass syntax)
2020-08-22 17:03:40 +02:00
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