Irmen de Jong
|
31491c62c5
|
add some more const folding patterns
|
2021-11-20 22:40:12 +01:00 |
|
Irmen de Jong
|
eacf8b896a
|
fix augmentable check to align with what the asmgen understands
|
2021-11-20 22:06:51 +01:00 |
|
Irmen de Jong
|
7936fc5bd8
|
tiny optimization of negating a register
|
2021-11-20 21:42:55 +01:00 |
|
Irmen de Jong
|
adfaddbcf4
|
give a nicer error when given a wrong compilation target.
|
2021-11-20 18:30:55 +01:00 |
|
Irmen de Jong
|
74db5c6be7
|
fix referencesIdentifier() and better removal of unnecessary assignments
|
2021-11-20 17:41:41 +01:00 |
|
Irmen de Jong
|
f9399bcce7
|
r=(q+r)-c and r=q+(r-c) are now both also 'augmentable', and BinExprSplitter doesn't check for associativeOperator anymore
|
2021-11-20 02:03:32 +01:00 |
|
Irmen de Jong
|
87600b23db
|
fix constvalue parent linkage for prefix and typecast
|
2021-11-20 00:20:35 +01:00 |
|
Irmen de Jong
|
cedfb17b18
|
fix too aggressive removal of vars that weren't completely unused
|
2021-11-19 22:49:35 +01:00 |
|
Irmen de Jong
|
fa4c83df6b
|
added 3 tests for discovered problems
|
2021-11-18 23:55:20 +01:00 |
|
Irmen de Jong
|
42c8720e8b
|
fix float rounding tests
|
2021-11-18 22:54:49 +01:00 |
|
Irmen de Jong
|
b334d89715
|
refactor and fix the way memory addresses are checked to be in IO space or regular ram
|
2021-11-18 22:47:58 +01:00 |
|
Irmen de Jong
|
4f5d36a84d
|
optimization added: bitwise operations with a negative constant number -> replace the number by its positive 2 complement
|
2021-11-18 02:51:42 +01:00 |
|
Irmen de Jong
|
8f379e2262
|
give an error when initializing an integer var with a float value instead of silently rounding
|
2021-11-18 01:56:11 +01:00 |
|
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 |
|