Irmen de Jong
|
e8e25c6fd6
|
added sys.push() and sys.pop() to put values on cpu stack. Added missing builtin functions to syntax-files.
|
2021-11-27 18:09:15 +01:00 |
|
Irmen de Jong
|
54025d2bf5
|
small refactor and spelling fixes
|
2021-11-27 14:49:18 +01:00 |
|
Irmen de Jong
|
f5ebf79e71
|
make sure X register is also saved if needed when GoSub is used
|
2021-11-26 22:11:52 +01:00 |
|
Irmen de Jong
|
110e047681
|
replace subroutine calls (statement) by GoSub
|
2021-11-26 19:47:01 +01:00 |
|
Irmen de Jong
|
17d403d812
|
Merge branch 'ref-subroutine-param' into v7.4-dev
# Conflicts:
# compilerAst/src/prog8/ast/AstToplevel.kt
|
2021-11-26 01:12:14 +01:00 |
|
Irmen de Jong
|
0a53bd4956
|
fix parameter name conflict
|
2021-11-26 01:01:59 +01:00 |
|
Irmen de Jong
|
e52d05c7db
|
fix some scoping related symbol lookup issues, clarified scoping rules in docs
|
2021-11-23 23:43:23 +01:00 |
|
Irmen de Jong
|
b00db4f8a2
|
no longer report unknown type errors as well for unknown symbols,
added a bunch more unit tests for symbol scoping rules
|
2021-11-23 22:45:57 +01:00 |
|
Irmen de Jong
|
0c2f30fd45
|
links to 6502 bresenham line algorithms
|
2021-11-23 21:51:18 +01:00 |
|
Irmen de Jong
|
e08871c637
|
oops! replace phx/plx 65C02 (cx16) instructions by 6502 (c64) compatible alternative.
Couldn't assemble code that used some of the routines in conv on c64 before...
|
2021-11-22 21:02:43 +01:00 |
|
Irmen de Jong
|
ff715881bc
|
allow scoped identifiers to reference a subroutine parameter directly.
also for asmsubroutines, but the asm generation for that is not yet done.
|
2021-11-21 23:21:39 +01:00 |
|
Irmen de Jong
|
0e2e5ffa52
|
fix parameter name conflict
|
2021-11-21 22:12:35 +01:00 |
|
Irmen de Jong
|
8095c4c155
|
added GoSub node (internal use only later for calling subroutines)
|
2021-11-21 16:23:48 +01:00 |
|
Irmen de Jong
|
8887e6af91
|
fix substituting 0 only if its actually the same variable that's substituted
|
2021-11-21 12:34:57 +01:00 |
|
Irmen de Jong
|
dde4c751da
|
version 7.4-dev
|
2021-11-21 03:28:13 +01:00 |
|
Irmen de Jong
|
b292124f3c
|
replaced many short/int values by unsigned types if appropriate
|
2021-11-21 00:55:56 +01:00 |
|
Irmen de Jong
|
c0035ba1a2
|
char encodings now use UByte type instead of short
|
2021-11-21 00:07:17 +01:00 |
|
Irmen de Jong
|
107935ed31
|
add some more const folding patterns
|
2021-11-20 22:47:49 +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
|
fa11a6e18b
|
removed faulty and too aggressive assembly optimization of double-store
|
2021-11-18 01:43:22 +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
|
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
|
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
|
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 |
|