Irmen de Jong
|
b21f7411dd
|
fix compiler crash when trying to concatenate string var and string literal.
|
2021-12-14 23:07:46 +01:00 |
|
Irmen de Jong
|
5df623bd2e
|
doc
|
2021-12-14 22:40:03 +01:00 |
|
Irmen de Jong
|
02010170ce
|
fix compiler crash when attempting to call a non-function
|
2021-12-11 13:20:13 +01:00 |
|
Irmen de Jong
|
35998142fe
|
version 7.5
|
2021-12-10 20:18:17 +01:00 |
|
Irmen de Jong
|
3d743a1ba1
|
added more constfolding
|
2021-12-09 23:32:48 +01:00 |
|
Irmen de Jong
|
abca618008
|
added more constfolding
|
2021-12-09 23:12:12 +01:00 |
|
Irmen de Jong
|
0d2c3901a3
|
added more constfolding
|
2021-12-09 22:12:31 +01:00 |
|
Irmen de Jong
|
d901a1531f
|
added missing vectors to syslib
|
2021-12-09 21:38:00 +01:00 |
|
Irmen de Jong
|
d8d56b195f
|
comments
|
2021-12-09 21:13:13 +01:00 |
|
Irmen de Jong
|
98315de723
|
allow using ubyte[] as subroutine parameter type (because it is equivalent to uword pointer var)
|
2021-12-07 23:28:45 +01:00 |
|
Irmen de Jong
|
dcf487bdc1
|
fix: correctly insert return statement if needed to prevent 'fall through' into following subroutine
this wasn't working correctly anymore when the last statement before the subroutine was a jump/goto
|
2021-12-07 21:34:50 +01:00 |
|
Irmen de Jong
|
547b1d3720
|
comment corrections
|
2021-12-06 23:33:18 +01:00 |
|
Irmen de Jong
|
84f75f4156
|
tweaked some more .getOrElse
|
2021-12-06 21:22:00 +01:00 |
|
Irmen de Jong
|
ff69da3fa2
|
error when 'else' choice in when statemetn isn't the last one, also generate slightly better code for when statements
|
2021-12-05 21:54:46 +01:00 |
|
Irmen de Jong
|
edffe92a24
|
astchecker is smarter in detecting rts in inline assembly
|
2021-12-05 21:28:31 +01:00 |
|
Irmen de Jong
|
837804b231
|
test for string x and u escape sequences
|
2021-12-05 18:39:34 +01:00 |
|
Irmen de Jong
|
900cdd3fa1
|
added cx16diskio with load() and load_raw() that are HIMEM bank-aware
|
2021-12-05 02:20:48 +01:00 |
|
Irmen de Jong
|
0018dc6ce7
|
refactor machinedefinition
|
2021-12-04 19:07:19 +01:00 |
|
Irmen de Jong
|
c92f914081
|
gradle build settings tweak to avoid jdk version conflict
|
2021-12-04 18:36:47 +01:00 |
|
Irmen de Jong
|
0498444ef2
|
moved all unit tests into single project to avoid dependency issues
|
2021-12-04 18:20:22 +01:00 |
|
Irmen de Jong
|
ce3c34e458
|
tweak in error output for file links, corrected column number off-by-one
|
2021-12-04 16:52:03 +01:00 |
|
Irmen de Jong
|
20401b99d8
|
added cx16.getrambank() / getrombank() to retrieve the current ram and rom bank numbers.
|
2021-12-04 15:27:54 +01:00 |
|
Irmen de Jong
|
b867d8f731
|
cleanups
|
2021-12-04 01:03:51 +01:00 |
|
Irmen de Jong
|
9a68864b67
|
version 7.5-dev
|
2021-12-04 00:18:44 +01:00 |
|
Irmen de Jong
|
72d7178762
|
added diskio.load_raw() to load headerless files
|
2021-12-04 00:07:21 +01:00 |
|
Irmen de Jong
|
fbcd9a0c1d
|
reduce number of similar errors for type problem in assignment
|
2021-12-02 17:44:52 +01:00 |
|
Irmen de Jong
|
5b56e0462d
|
also deal with zero args
|
2021-12-01 22:26:36 +01:00 |
|
Irmen de Jong
|
b7fffbb6df
|
release 7.4.1 - oops, funcion call arg count validation was broken
|
2021-12-01 21:44:03 +01:00 |
|
Irmen de Jong
|
1f346230e3
|
release 7.4
|
2021-11-30 22:50:12 +01:00 |
|
Irmen de Jong
|
3d1d0696b9
|
refactor compiler arguments passing
|
2021-11-30 01:40:21 +01:00 |
|
Irmen de Jong
|
9ecf95b075
|
fix syntaxerror in const processing of ranges if it contained variables
|
2021-11-29 23:36:41 +01:00 |
|
Irmen de Jong
|
7748c261da
|
rsave/rrestore moved from sys to builtin function to solve the stack related problem when calling it as a regular subroutine
|
2021-11-29 23:13:04 +01:00 |
|
Irmen de Jong
|
a2db44f80c
|
also consider Y register for clobber check for functioncall arguments
|
2021-11-29 22:09:05 +01:00 |
|
Irmen de Jong
|
b438d8aec0
|
fix invalid range size check when stepval is not a positive integer
|
2021-11-29 02:01:19 +01:00 |
|
Irmen de Jong
|
56dc6d7f1e
|
comment
|
2021-11-29 01:10:11 +01:00 |
|
Irmen de Jong
|
45b8762188
|
use inc/ina instead of adc
|
2021-11-29 00:07:15 +01:00 |
|
Irmen de Jong
|
32068a832a
|
split some additional binary expressions to avoid stack-based evaluation
|
2021-11-28 18:27:28 +01:00 |
|
Irmen de Jong
|
47c2c0376a
|
added some cpu stack related assembly-level optimizations
|
2021-11-28 17:27:01 +01:00 |
|
Irmen de Jong
|
f0dadc4a43
|
optimize 1-arg functioncalls
|
2021-11-28 16:55:10 +01:00 |
|
Irmen de Jong
|
960b60cd2d
|
tweak
|
2021-11-28 14:06:12 +01:00 |
|
Irmen de Jong
|
0a568f2530
|
fix the check of double-defined subroutine variables
|
2021-11-28 12:52:32 +01:00 |
|
Irmen de Jong
|
c52aa648c0
|
use an AnonymousScope to contain GoSub changes instead of adding separate statements
|
2021-11-28 12:09:13 +01:00 |
|
Irmen de Jong
|
f3a4048ebf
|
improved setting Carry bit as asmsub parameter
|
2021-11-28 03:31:32 +01:00 |
|
Irmen de Jong
|
1b07637cc4
|
better error checking for wrong pop()
|
2021-11-28 02:49:18 +01:00 |
|
Irmen de Jong
|
68b75fd558
|
fix: also allow pass-by-reference arguments to builtin functions that accept UWORD (adds implicit type cast)
|
2021-11-28 02:34:53 +01:00 |
|
Irmen de Jong
|
7c5ec1853d
|
nice error message if pop() argument is wrong
|
2021-11-28 02:20:35 +01:00 |
|
Irmen de Jong
|
e8f4686430
|
undid failed attempt of using sys.push/sys.pop for stack args - now using new push(), pushw(), pop(), popw() builtin functions
|
2021-11-28 01:22:40 +01:00 |
|
Irmen de Jong
|
02348924d0
|
failed attempt of using sys.push/pop for stack args
|
2021-11-27 23:52:47 +01:00 |
|
Irmen de Jong
|
c838821615
|
refactor fuction arguments codegen a bit
|
2021-11-27 21:14:21 +01:00 |
|
Irmen de Jong
|
8b4ac7801f
|
fix sys.push() signature for c64
|
2021-11-27 20:18:41 +01:00 |
|
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 |
|