Commit Graph

2943 Commits

Author SHA1 Message Date
Irmen de Jong
2560042ac7 fix compiler crashes on in-place operations on cx16 registers or invalid signed types 2021-11-30 02:27:37 +01:00
Irmen de Jong
3d1d0696b9 refactor compiler arguments passing 2021-11-30 01:40:21 +01:00
Irmen de Jong
83f893f50b doc 2021-11-30 00:54:03 +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
4ac169b210 formatting 2021-11-29 01:25:21 +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
cafab98d10 correction 2021-11-28 18:59:36 +01:00
Irmen de Jong
9256f910f0 rollback binexpr splitting, caused slowdowns 2021-11-28 18:50:05 +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
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