Irmen de Jong
|
fa11a6e18b
|
removed faulty and too aggressive assembly optimization of double-store
|
2021-11-18 01:43:22 +01:00 |
|
Irmen de Jong
|
52bedce8f4
|
added test for assignment.isAugmented
|
2021-11-18 01:05:16 +01:00 |
|
Irmen de Jong
|
4c82af36e6
|
fix improperly changed behavior about =0 initializer
|
2021-11-18 00:17:22 +01:00 |
|
Irmen de Jong
|
dafa0d9138
|
fix compiler crash bug due to reused ast expression nodes. Now all (relevant) Nodes have a copy() function to make a clone.
|
2021-11-17 23:05:59 +01:00 |
|
Irmen de Jong
|
2e0450d7ed
|
fix bug where variable=0 initializer was forgotten if vardecl is followed by an augmented assignment
|
2021-11-17 22:31:43 +01:00 |
|
Irmen de Jong
|
6af3209d4d
|
add more const foldings
|
2021-11-17 00:57:00 +01:00 |
|
Irmen de Jong
|
5d362047e2
|
add some more comparison expression optimizations to compare against 0 if possible
|
2021-11-17 00:04:52 +01:00 |
|
Irmen de Jong
|
f48d6ca9f8
|
simplified NumericLiteral to always just contain a Double instead of a Number for the value
|
2021-11-16 23:52:54 +01:00 |
|
Irmen de Jong
|
964e8e0a17
|
update to Kotlin 1.6.0
|
2021-11-16 22:36:23 +01:00 |
|
Irmen de Jong
|
1f60a2d8b9
|
comments
|
2021-11-15 01:30:12 +01:00 |
|
Irmen de Jong
|
5fd83f2757
|
version 7.3
|
2021-11-14 22:55:13 +01:00 |
|
Irmen de Jong
|
c80df4140b
|
until-loop condition now also simplified to avoid stack-eval
|
2021-11-14 22:51:02 +01:00 |
|
Irmen de Jong
|
53e1729e2f
|
introduce option to use internal scratch variables via prog8_lib definitions (ony for compiler, not for user code!)
|
2021-11-14 16:01:54 +01:00 |
|
Irmen de Jong
|
ab2d1122a9
|
conditional expressions are optimized more intelligently (simple ones are not split off in separate assignments)
|
2021-11-14 12:38:56 +01:00 |
|
Irmen de Jong
|
5190594c8a
|
added several more assembly-level optimizations to remove redundant instructions
|
2021-11-14 12:23:46 +01:00 |
|
Irmen de Jong
|
c858ceeb58
|
compiler shouldn't use cx16.r15 as temp var
|
2021-11-14 02:38:59 +01:00 |
|
Irmen de Jong
|
f0f52b9166
|
optimize typecasted binary expression to avoid even more estack use. also fix wrong parent crash in removal of unused variable's assignments.
|
2021-11-13 14:22:37 +01:00 |
|
Irmen de Jong
|
00c6f74481
|
tweak temp float
|
2021-11-13 12:56:59 +01:00 |
|
Irmen de Jong
|
2177ba0ed2
|
added signed versions of the cx16 virtual registers
|
2021-11-13 02:42:21 +01:00 |
|
Irmen de Jong
|
3483515346
|
preparing for more optimizations
|
2021-11-12 23:23:51 +01:00 |
|
Irmen de Jong
|
75a06d2a40
|
preparing for more optimizations
|
2021-11-12 02:17:37 +01:00 |
|
Irmen de Jong
|
53ac11983b
|
better unused variable removal
|
2021-11-11 03:03:21 +01:00 |
|
Irmen de Jong
|
69f4a4d4f8
|
tweak expr.typecastTo() a bit
|
2021-11-11 00:15:09 +01:00 |
|
Irmen de Jong
|
222bcb808f
|
optimize load-store-load combo in output asm
|
2021-11-10 23:47:35 +01:00 |
|
Irmen de Jong
|
686483f51a
|
fixed division of signed byte number by 2. (!)
|
2021-11-10 00:17:56 +01:00 |
|
Irmen de Jong
|
8df3da11e3
|
add cosr8, sinr8, cosr16 and sinr16 builtin functions that take a degree 0..179 (= 0..358 in 2 degree steps)
to more easily scale halves/quarters etc of a circle than possible with the ones that take 0..255 'degrees'.
|
2021-11-09 23:39:26 +01:00 |
|
Irmen de Jong
|
84dafda0e4
|
fix error message for type mismatch on builtin-function parameter
|
2021-11-09 22:19:07 +01:00 |
|
Irmen de Jong
|
b909facfe5
|
fix compiler stackoverflow crash on certain typecasted expressions containing floats.
|
2021-11-09 19:31:19 +01:00 |
|
Irmen de Jong
|
7780d94de1
|
discovered crash related to float typecasting in asm assignment codegen
|
2021-11-09 03:45:07 +01:00 |
|
Irmen de Jong
|
f2c440e466
|
new sin/cos idea
|
2021-11-09 02:38:43 +01:00 |
|
Irmen de Jong
|
4937e004b5
|
fix compiler crash where it used wrong datatype in split assignment
fixes crash for "ubyte bb ;; uword ww ;; bb = not bb or not ww"
|
2021-11-09 01:13:23 +01:00 |
|
Irmen de Jong
|
4cb383dccb
|
discovered crash about storage size mismatch
|
2021-11-08 21:44:06 +01:00 |
|
Irmen de Jong
|
c8a4b6f23c
|
refactor expressionsAsmGen so that it now has just 1 single public function
this makes replacing it by a non-stack based solution easier in the future.
|
2021-11-08 19:21:55 +01:00 |
|
Irmen de Jong
|
857724c7e6
|
attempt to make if-statement not use stack eval anymore
|
2021-11-08 19:07:36 +01:00 |
|
Irmen de Jong
|
a9b0400d13
|
fixed 'not' operator priority: it now has higher priority as or/and/xor.
|
2021-11-08 18:38:04 +01:00 |
|
Irmen de Jong
|
2d1e5bbc7e
|
remove unimportant empty tests
|
2021-11-08 17:00:10 +01:00 |
|
Irmen de Jong
|
60627ce756
|
kotest migration done, fixes #70
|
2021-11-08 16:19:24 +01:00 |
|
Irmen de Jong
|
7961a09d16
|
converting compiler module's testcases to kotest assertions
|
2021-11-08 16:14:22 +01:00 |
|
Irmen de Jong
|
613efcacc7
|
converting compiler module's testcases to kotest (ongoing)
|
2021-11-08 15:08:48 +01:00 |
|
Irmen de Jong
|
7e8db16e18
|
moved to kotest assertions in compilerAst module tests
|
2021-11-07 21:18:18 +01:00 |
|
Irmen de Jong
|
1fbbed7e23
|
remove unittest machinery from modules that don't have tests
|
2021-11-07 17:34:14 +01:00 |
|
Irmen de Jong
|
984272beb4
|
migrated compilerAst module to KoTest (but not finished with the assertions yet)
|
2021-11-07 17:25:53 +01:00 |
|
Irmen de Jong
|
b9ce94bb68
|
migrated codeGeneration module to KoTest
|
2021-11-07 15:40:05 +01:00 |
|
Irmen de Jong
|
f4c4ee78d9
|
re-use global returnvalue temp var instead of duplicating it in every subroutine that needs it
|
2021-11-07 14:19:21 +01:00 |
|
Irmen de Jong
|
793596614e
|
attempt to fix ReadTheDocs build issue
|
2021-11-07 00:37:31 +01:00 |
|
Irmen de Jong
|
136280100c
|
attempt to fix ReadTheDocs build issue
|
2021-11-07 00:23:44 +01:00 |
|
Irmen de Jong
|
29f1e4d2c9
|
attempt to fix ReadTheDocs build issue
|
2021-11-07 00:18:51 +01:00 |
|
Irmen de Jong
|
72a7e61fd0
|
version 7.2
|
2021-11-06 23:42:13 +01:00 |
|
Irmen de Jong
|
381cfca67f
|
Merge branch 'v7.2'
# Conflicts:
# compiler/res/version.txt
|
2021-11-06 23:41:39 +01:00 |
|
Irmen de Jong
|
f40620aa25
|
"not x" as a condition (if, while, until) is optimized into "x==0", this avoids calculating the value
|
2021-11-06 23:25:32 +01:00 |
|