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
|
d6abd72e55
|
fix push() of signed values
|
2021-11-28 13:01:46 +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
|
3d23b39f4c
|
moved A to the end of the param list to avoid having to store its value
|
2021-11-28 04:03:18 +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
|
69dcb4dbda
|
fix reporting of (not) unused code after GoSub jump
|
2021-11-27 21:22:34 +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
|
64a411628d
|
doc fixes
|
2021-11-27 19:58:08 +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
|
62485b6851
|
allow assigns to asmsub parameters (registers), but this is not very useful in practice.
|
2021-11-27 15:41:44 +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
|
66d5490702
|
just added missing FAC2 assign possibility
|
2021-11-26 21:34:00 +01:00 |
|
Irmen de Jong
|
42fe052f9f
|
got rid of old getScopedSymbolNameForTarget routine
|
2021-11-26 21:09:29 +01:00 |
|
Irmen de Jong
|
58d9c46a9b
|
got rid of old makeScopedName routine
|
2021-11-26 20:56:30 +01:00 |
|
Irmen de Jong
|
e4648e2138
|
proper rounding of builtin functions that return int from float
|
2021-11-26 20:32:12 +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
|
e86246a985
|
todo
|
2021-11-21 14:00:19 +01:00 |
|
Irmen de Jong
|
625aaa02eb
|
documented the compiler's command line options in more detail
|
2021-11-21 13:53:22 +01:00 |
|
Irmen de Jong
|
787e35c9f3
|
asm optimizer can now also see of a symbol reference if it is in IO space or not (to a certain extent), so that these instructions are no longer optimized away
|
2021-11-21 13:12:51 +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
|
3c39baf1d6
|
don't optimize seemingly redundant assembly instructions away that manipulate IO memory space
|
2021-11-21 03:24:03 +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
|
2491509c6a
|
add assignment optimization X=value-X --> X=-X ; X+=value (to avoid need of stack-evaluation)
|
2021-11-20 23:43:10 +01:00 |
|
Irmen de Jong
|
107935ed31
|
add some more const folding patterns
|
2021-11-20 22:47:49 +01:00 |
|
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 |
|