Irmen de Jong
1f2d46628e
remove %option align_xxx (block level alignment, as we now have better alternatives)
2024-10-26 21:18:34 +02:00
Irmen de Jong
c9535049c8
%align directive and @align64
2024-10-26 20:58:35 +02:00
Irmen de Jong
9317cf8a35
sorting aligned vars to shrink prg size
2024-10-26 18:33:51 +02:00
Irmen de Jong
1cd754f05d
adding @alignword/page on individual variables
2024-10-26 17:00:38 +02:00
Irmen de Jong
38ef394e15
IR codegen: global vars with numeric initialization value are now also put into the VARIABLESWITHINIT section rather than requiring explicit code instructions to initialize them in INITGLOBALS.
...
Note that something similar, such as putting those variables inline in the program initialized with their value and all, cannot be done for the 6502 codegen: the program needs a mechanism to reset ALL variables when it runs a second time.
2024-10-16 22:15:51 +02:00
Irmen de Jong
cbc4b75e50
IR now contains "bool" as a type instead of already erasing it into "ubyte". (boolean literals still are simply just 1 and 0 values)
2024-10-16 01:03:35 +02:00
Irmen de Jong
65ddcf91d0
remove unused syscalls
2024-10-15 18:24:55 +02:00
Irmen de Jong
e9edffa9f0
remove support for array-to-array assignments (other than initialization of variable declaration)
...
Just use an explicit sys.memcopy(src, dest, sizeof(dest)) or assign array members individually.
2024-10-13 20:02:43 +02:00
Irmen de Jong
eaa22a9d13
added callfar2() builtin function that allows to set A,X,Y and Carry arguments.
2024-10-08 21:36:04 +02:00
Irmen de Jong
edc5a5a94f
improve data driven unit tests to use kotest withData()
2024-09-08 16:55:08 +02:00
Irmen de Jong
d5adb85e5b
IR: add SEC,CLC,SEI,CLI instructions for the sys function calls.
2024-07-14 21:01:19 +02:00
Irmen de Jong
484677b4b1
Get rid of any() and all() builtin functions.
...
Replaced by regular subroutines in the anyall module.
2024-07-06 18:49:03 +02:00
Irmen de Jong
0c053e4a2c
IR: don't confuse symbol names starting with 'r', with register names
...
Added start of buffer.p8 (experimental)
2024-07-04 01:39:25 +02:00
Irmen de Jong
4f8aaf9244
some tweaks and todos
2024-06-26 21:22:40 +02:00
Irmen de Jong
034f27a8dd
added queens example, update kotest lib
2024-06-19 23:57:43 +02:00
Irmen de Jong
c9a4235669
update to kotlin 2.0, fix several code style issues
2024-06-04 01:00:46 +02:00
Irmen de Jong
c719e274d5
java version tweaks
2024-05-18 20:25:44 +02:00
Irmen de Jong
4a710ecdfc
cleanups
2024-05-17 18:48:04 +02:00
Irmen de Jong
7915dda35f
update libraries
2024-05-12 03:02:54 +02:00
Irmen de Jong
53df0eb707
cleanups
2024-04-10 22:04:03 +02:00
Irmen de Jong
42f4b06ac8
added options -bytes2float and -float2bytes to be able to do float conversions from the command line
2024-04-09 23:59:54 +02:00
Irmen de Jong
2e37f5dee3
IR: support for multi-returnvalue function calls (asmsubs)
...
note: the VM can't execute these though as it has no CPU hardware registers
2024-03-23 00:30:17 +01:00
Irmen de Jong
66e7c51064
IR: fix some things related to asmsubs
2024-03-22 21:49:01 +01:00
Irmen de Jong
de3d0b40dc
fixed vm problem with branching instructions in global init chunk
2024-03-17 13:22:17 +01:00
Irmen de Jong
80f39e8097
Merge branch 'booleans'
...
# Conflicts:
# compiler/res/prog8lib/cx16/monogfx.p8
# compiler/res/prog8lib/virtual/monogfx.p8
# compiler/src/prog8/compiler/astprocessing/BoolRemover.kt
# compiler/test/TestTypecasts.kt
# docs/source/todo.rst
# examples/cx16/highresbitmap.p8
# examples/test.p8
# httpCompilerService/src/prog8/http/TestHttp.kt
2024-03-11 01:00:48 +01:00
Irmen de Jong
eef8ae00b8
replace str return type by uword
2024-03-09 15:38:46 +01:00
Irmen de Jong
ed15fac691
improve IR error message
2024-03-09 13:38:25 +01:00
Irmen de Jong
f5e332daf7
remove redundant IR instructions like SNZ
2024-03-02 23:19:39 +01:00
Irmen de Jong
41afeccd51
compiler stuff
2024-03-02 23:19:20 +01:00
Irmen de Jong
bc2b38daf4
added PtBool and other changes to intermediate Ast
2024-03-02 23:19:20 +01:00
Irmen de Jong
040d75dafa
VM now supports indirect jump instruction
2024-02-22 16:19:26 +01:00
Irmen de Jong
4e1686f6e3
fix warnings in gradle build scripts
2024-02-22 10:34:51 +01:00
Irmen de Jong
88458f5355
faster array copy and fix for length 256
2024-02-11 23:57:38 +01:00
Irmen de Jong
d7f72056fc
rest of the array copying
2024-02-10 17:16:06 +01:00
Irmen de Jong
906d9d858c
implementing the array copys
2024-02-10 01:40:36 +01:00
Irmen de Jong
39d2194d8f
IR: implemented inplace prefix op on split array
...
VM: NEG instructions also set N and Z flags
2024-01-28 22:33:13 +01:00
Irmen de Jong
504d1440cc
fixed rol(),rol2(),ror(),ror2()
2024-01-17 21:02:17 +01:00
Irmen de Jong
0cfcc5cd29
fix VM sgn() function for floats
2024-01-16 01:34:55 +01:00
Irmen de Jong
0a356ba73a
added containment check of float arrays
2024-01-14 14:14:09 +01:00
Irmen de Jong
968609d06d
IR: fix problems with symbol offsets and unused subroutines/chunks
2024-01-13 16:43:41 +01:00
Irmen de Jong
0c1018ec61
dt error details
2024-01-12 17:34:19 +01:00
Irmen de Jong
38dc7fb7bd
IR: added SCC and SCS instructions
2024-01-09 01:41:37 +01:00
Irmen de Jong
37fa3b34a2
tweak IR
2024-01-07 22:12:09 +01:00
Irmen de Jong
f2daa17b92
tweak some not optimizations
...
cleanup IR typestring
2024-01-05 17:49:56 +01:00
Irmen de Jong
6d9fccacb1
boolean not expression tweaks and optimizations
2024-01-05 13:32:16 +01:00
Irmen de Jong
f790182f0b
adding short-circuit boolean expression evaluation (in IR codegen) also -noshortcircuit cli option
2023-12-30 01:08:41 +01:00
Irmen de Jong
2b8f613a00
added %option ignore_unused to suppress warnings about unused vars and subs in that module/block.
...
Also improved error for invalid directive.
2023-12-26 23:37:59 +01:00
Irmen de Jong
2eb137618e
refactor block options
2023-12-26 22:13:08 +01:00
Irmen de Jong
7530f4407b
ir tag change INLINEASM->ASM
2023-12-26 16:15:19 +01:00
Irmen de Jong
ae66fcac1e
added call
builtin function for indirect JSR
2023-12-17 15:45:28 +01:00