Irmen de Jong
|
9d7131d9f6
|
vm: setting status bits
|
2023-09-22 22:50:20 +02:00 |
|
Irmen de Jong
|
229c1114dd
|
vm: fixed array initialization values with address-ofs
|
2023-09-19 23:54:18 +02:00 |
|
Irmen de Jong
|
c319233ddc
|
ir: added preparecall 'meta' instruction for functioncalls
|
2023-09-18 23:22:03 +02:00 |
|
Irmen de Jong
|
6afdd4e6fd
|
preparing next version
|
2023-09-12 21:53:49 +02:00 |
|
Irmen de Jong
|
bde4be8231
|
fix VM indexed instructions to only use lsb part of the index
|
2023-09-06 02:44:04 +02:00 |
|
Irmen de Jong
|
77f3852cdc
|
added floats.parse_f()
|
2023-08-16 14:47:20 +02:00 |
|
Irmen de Jong
|
2c9e50873c
|
use math.square for optimized X*X calculation (words only).
Added IR SQUARE instruction.
|
2023-08-14 01:05:17 +02:00 |
|
Irmen de Jong
|
c223702ea0
|
code cleanups
|
2023-07-30 18:42:45 +02:00 |
|
Irmen de Jong
|
fea297e409
|
cleanup some compilation warnings
|
2023-07-22 23:44:26 +02:00 |
|
Irmen de Jong
|
c7d54570cc
|
IR: sXX, CONCAT instructions now use 3 register format
|
2023-07-21 00:07:56 +02:00 |
|
Irmen de Jong
|
6938c79f88
|
IR: added CMPI instruction
|
2023-07-14 23:17:29 +02:00 |
|
Irmen de Jong
|
a98cb50d55
|
Revert "ir: SCC now sets all bits to 1 (or 0)"
This reverts commit 7245aece4f .
|
2023-07-09 23:16:13 +02:00 |
|
Irmen de Jong
|
e98bbc1c52
|
todo
|
2023-07-09 22:29:54 +02:00 |
|
Irmen de Jong
|
7245aece4f
|
ir: SCC now sets all bits to 1 (or 0)
|
2023-07-08 23:16:01 +02:00 |
|
Irmen de Jong
|
60cbb02822
|
vm: actually fix EXT(S) in vm too
|
2023-07-08 23:05:03 +02:00 |
|
Irmen de Jong
|
334d382bfa
|
ir: JUMPI instruction added to support indirect jumps
|
2023-07-07 19:10:39 +02:00 |
|
Irmen de Jong
|
90c4b00f74
|
ir: fix any() all() reverse() sort() on memory mapped arrays and on byte arrays
|
2023-07-07 17:25:32 +02:00 |
|
Irmen de Jong
|
02e51d8282
|
ir: fix initial chunk linking
|
2023-07-07 00:30:56 +02:00 |
|
Irmen de Jong
|
70c9ab9074
|
upgrade libraries
|
2023-07-06 23:33:58 +02:00 |
|
Irmen de Jong
|
204f5591a9
|
todos
|
2023-07-03 21:57:32 +02:00 |
|
Irmen de Jong
|
f9200a2b75
|
fix IR loader for romsub calls (calls to an address)
|
2023-07-02 23:41:15 +02:00 |
|
Irmen de Jong
|
d3f6415387
|
vm: fix repeat 256
|
2023-07-02 02:38:35 +02:00 |
|
Irmen de Jong
|
ff7f3484e4
|
atan
|
2023-06-17 23:01:47 +02:00 |
|
Irmen de Jong
|
c0b398e0ce
|
add various math.atan() routines
|
2023-06-17 00:43:33 +02:00 |
|
Irmen de Jong
|
380f557c45
|
vm: implement split incr/decr
|
2023-06-03 22:22:13 +02:00 |
|
Irmen de Jong
|
bfaad1388c
|
IR: handle split arrays without new custom opcodes
|
2023-06-03 01:51:02 +02:00 |
|
Irmen de Jong
|
bb9d29b061
|
fix an array literal assignment type error for word arrays
|
2023-05-30 22:46:37 +02:00 |
|
Irmen de Jong
|
3ac9036c79
|
more split array stuff for 6502
|
2023-05-27 22:44:45 +02:00 |
|
Irmen de Jong
|
c94e292176
|
more split array stuff
|
2023-05-27 12:47:11 +02:00 |
|
Irmen de Jong
|
52a77db60f
|
adding split array type
|
2023-05-26 19:11:07 +02:00 |
|
Irmen de Jong
|
91e1643627
|
update 3rd party libraries
|
2023-05-18 11:47:30 +02:00 |
|
Irmen de Jong
|
b43223cb7a
|
added clamp() builtin function and floats.clampf()
|
2023-05-17 23:12:58 +02:00 |
|
Irmen de Jong
|
dea7f37553
|
vm: fix % result when dividing by 0
|
2023-05-15 20:33:20 +02:00 |
|
Irmen de Jong
|
630c8a5faa
|
IR: fix romsub encoding
|
2023-05-14 18:08:06 +02:00 |
|
Irmen de Jong
|
905921a684
|
IR: new (sys)call instructions that encapsulate the full subroutine call
to fix the bugs resulting from nesting subroutine calls (as param to another call etc)
|
2023-05-14 15:20:25 +02:00 |
|
Irmen de Jong
|
bff3c4f95c
|
IR now converts IRInlineAsmChunk (of type IR) into regular code chunks directly.
.p8ir files usually won't contain <INLINEASM> nodes any longer
|
2023-05-09 21:04:31 +02:00 |
|
Irmen de Jong
|
add8a777d8
|
IR: binarydata fixes
|
2023-05-03 22:31:04 +02:00 |
|
Irmen de Jong
|
f465b2e2a0
|
some improvements to IR peephole optimizer
|
2023-05-02 00:29:04 +02:00 |
|
Irmen de Jong
|
efd7d6f0c0
|
tweak IR call args setting now via special SETPARAM instruction
|
2023-04-14 02:10:39 +02:00 |
|
Irmen de Jong
|
b55be093be
|
tweak IR
|
2023-04-11 22:48:20 +02:00 |
|
Irmen de Jong
|
7c1d5cadd7
|
fix sort and reverse on strings on 6502 codegen
|
2023-04-10 19:33:24 +02:00 |
|
Irmen de Jong
|
dd1592b03b
|
ir syscalls args via stack instead of fixed r65500+
|
2023-04-10 18:02:37 +02:00 |
|
Irmen de Jong
|
9b37ac483f
|
vm fix str to word conversion
ir SYSCALL puts result(s) on value stack, instead of on hardcoded r0, r1
|
2023-04-10 16:26:42 +02:00 |
|
Irmen de Jong
|
090820958e
|
ir divmod returns its results on valuestack, to keep consistency with the rule that only 1 register can be a returnvalue
|
2023-04-10 15:26:30 +02:00 |
|
Irmen de Jong
|
ac21e1be5c
|
vm syscall instruction no longer fixed to r0
|
2023-04-10 13:44:05 +02:00 |
|
Irmen de Jong
|
c8531cbeb1
|
remove unused variables from IR output
|
2023-04-09 23:09:30 +02:00 |
|
Irmen de Jong
|
9b952fbc44
|
tweaking IR instruction set branch instructions
|
2023-04-09 22:17:19 +02:00 |
|
Irmen de Jong
|
ccdf05e922
|
tweaking IR instruction formats
|
2023-04-09 16:12:16 +02:00 |
|
Irmen de Jong
|
c3d74f2ae9
|
fix golden ram area for x16, remove romsub restriction
note: romsubs still won't work in the VM but at least they compile again
|
2023-04-08 00:40:52 +02:00 |
|
Irmen de Jong
|
4861973899
|
vm: fix float arrays init values
|
2023-04-04 00:06:55 +02:00 |
|
Irmen de Jong
|
d936568b76
|
added divmod() and divmodw() builtin functions to efficiently compute division and remainder in a single call
|
2023-03-29 23:46:44 +02:00 |
|
Irmen de Jong
|
1fa2e2e37d
|
3rd party library versions upgrades
|
2023-03-26 21:36:21 +02:00 |
|
Irmen de Jong
|
78a097585d
|
new IR call and return instructions to deal with returnregisters
|
2023-03-12 21:54:59 +01:00 |
|
Irmen de Jong
|
592f74124c
|
fix startup subroutine linking in VM
|
2023-03-12 16:09:55 +01:00 |
|
Irmen de Jong
|
fd07ae5225
|
fix various IR file and symboltable issues
|
2023-03-07 19:40:11 +01:00 |
|
Irmen de Jong
|
fd269453a4
|
todos
|
2023-03-04 14:14:01 +01:00 |
|
Irmen de Jong
|
435b9d8973
|
get rid of 'noreinit' option for now, because it resulted in unreliable code
|
2023-02-20 23:29:16 +01:00 |
|
Irmen de Jong
|
92a07b87d2
|
clearer
|
2023-02-20 02:32:36 +01:00 |
|
Irmen de Jong
|
c3c82282ba
|
reinitGlobals option is clearer than the inverse
|
2023-02-19 19:09:29 +01:00 |
|
Irmen de Jong
|
dddf9a9396
|
remove explicit 'bss' from St var, changed to 'uninitialized'
|
2023-02-19 16:50:06 +01:00 |
|
Irmen de Jong
|
9ca6860ffa
|
tweak
|
2023-02-19 15:08:16 +01:00 |
|
Irmen de Jong
|
3cce985f03
|
check float bits
|
2023-02-16 22:22:12 +01:00 |
|
Irmen de Jong
|
19a2791c65
|
vm target can't use asmsub at all, give better error for that
|
2023-01-26 01:38:13 +01:00 |
|
Irmen de Jong
|
e0913a39ab
|
optimizing
|
2022-12-30 18:50:45 +01:00 |
|
Irmen de Jong
|
a04839dd6b
|
vm: add property for custom breakpoint handler
|
2022-12-30 15:10:13 +01:00 |
|
Irmen de Jong
|
a7df094ff4
|
don't allow ~ on booleans, also introduce SZ and SNZ instructions in IR to complete the conditional-set instruction list.
|
2022-12-28 21:19:38 +01:00 |
|
Irmen de Jong
|
1e6fa77633
|
ir: 4 new instructions to branch on signed <0, >0, <=0, >=0
|
2022-12-28 13:14:20 +01:00 |
|
Irmen de Jong
|
eb4cff202c
|
removed redundant branch opcodes in IR: BLT(S), BLE(S). Just use swapped BGT(S), BGE(S).
|
2022-12-28 12:41:05 +01:00 |
|
Irmen de Jong
|
bf0604133c
|
fix error in IR for inline asm and BSS vars.
|
2022-12-04 16:48:44 +01:00 |
|
Irmen de Jong
|
17bedac96c
|
vm: memory is randomized on start instead of 0. P8ir file now has BSS segment. Vm clears BSS vars to 0.
|
2022-12-03 17:46:06 +01:00 |
|
Irmen de Jong
|
c21913a66b
|
ir: keep order of children in block
|
2022-11-22 02:04:24 +01:00 |
|
Irmen de Jong
|
91fdb3e2d4
|
ir: store labels in blocks, but still useless
|
2022-11-17 00:37:45 +01:00 |
|
Irmen de Jong
|
d08451bccc
|
ir: Block can now contain inline binary
|
2022-11-12 20:17:23 +01:00 |
|
Irmen de Jong
|
e6688f4b9d
|
clearer error for VM limitation cannot load label address as value
|
2022-11-12 13:45:02 +01:00 |
|
Irmen de Jong
|
9d7b9771c2
|
p8ir file format is now valid XML
|
2022-11-11 23:35:52 +01:00 |
|
Irmen de Jong
|
5d4bfffc7e
|
float.rndseedf() now takes float seed value and is consistent for all CBM compilation targets
|
2022-11-06 22:53:57 +01:00 |
|
Irmen de Jong
|
38efaae7b2
|
ir/vm: syscall params in high base register to avoid push/pop
|
2022-11-06 12:52:09 +01:00 |
|
Irmen de Jong
|
469e042216
|
vm: replaced prog8_lib.string_compare and others with syscalls
|
2022-11-04 23:12:13 +01:00 |
|
Irmen de Jong
|
0f1a4b9d8f
|
fixed certain type check error when passing boolean value to ubyte function parameter
fixed virtual machine string comparison syscall
|
2022-11-03 23:06:03 +01:00 |
|
Irmen de Jong
|
06b032af91
|
refactor
|
2022-11-03 00:20:31 +01:00 |
|
Irmen de Jong
|
e7408224ac
|
ir: remove position tracking from codechunk for now
|
2022-11-02 22:12:42 +01:00 |
|
Irmen de Jong
|
e67c05c274
|
ir: fix asmsub contents not appearing in IR file
|
2022-11-02 20:50:51 +01:00 |
|
Irmen de Jong
|
b22804efaf
|
ir: fix inlineasm linking
|
2022-10-31 23:59:33 +01:00 |
|
Irmen de Jong
|
0eda7ac498
|
vm: don't crash on empty code chunks
|
2022-10-30 17:05:08 +01:00 |
|
Irmen de Jong
|
7cc3cc3990
|
ir: fix non-code chunk linkage
|
2022-10-30 12:55:06 +01:00 |
|
Irmen de Jong
|
b718b12083
|
ir/vm fix chunk linkage
|
2022-10-26 00:12:56 +02:00 |
|
Irmen de Jong
|
cfa7258ff4
|
various
|
2022-10-25 23:18:42 +02:00 |
|
Irmen de Jong
|
585009ac5c
|
ir: fix syscall numbers and more
|
2022-10-24 01:57:37 +02:00 |
|
Irmen de Jong
|
30ee65fd14
|
ir: ensure that block and sub labels are also on the first chunk in said block/sub
|
2022-10-23 18:54:08 +02:00 |
|
Irmen de Jong
|
76428b16f0
|
Merge branch 'master' into labeledchunks
# Conflicts:
# codeGenIntermediate/src/prog8/codegen/intermediate/BuiltinFuncGen.kt
# docs/source/todo.rst
# examples/test.p8
# virtualmachine/src/prog8/vm/VirtualMachine.kt
|
2022-10-23 12:19:02 +02:00 |
|
Irmen de Jong
|
00afa1ce52
|
ir: replace RND opcode by syscalls
|
2022-10-22 17:20:46 +02:00 |
|
Irmen de Jong
|
ec5adffdc2
|
rnd()/rndf() routines can now be seeded with new rndseed()/rndseedf() routines. fixes #80
|
2022-10-22 13:34:22 +02:00 |
|
Irmen de Jong
|
fabae6e970
|
ir: fix handling of labeled chunks
|
2022-10-16 23:53:17 +02:00 |
|
Irmen de Jong
|
6fc89607d3
|
ir: moving to labeled chunks, no more IRLabel nodes
|
2022-10-07 00:34:56 +02:00 |
|
Irmen de Jong
|
2340760f53
|
rename
|
2022-10-04 22:54:14 +02:00 |
|
Irmen de Jong
|
39d6d2857e
|
ir: change inline binary a bit
|
2022-10-04 00:57:08 +02:00 |
|
Irmen de Jong
|
7b722a0001
|
ir: fix count register uses
|
2022-10-04 00:25:55 +02:00 |
|
Irmen de Jong
|
af6be44676
|
ir: adding register usage inspections
fix compiler problems with untrimmed inlined asm, and when only a single return statement is present in a subroutine
|
2022-09-30 20:25:00 +02:00 |
|
Irmen de Jong
|
5a8f97a0b6
|
ir: adding last missing features to be able to encode all of Prog8
|
2022-09-30 16:01:00 +02:00 |
|
Irmen de Jong
|
0d4dd385b8
|
added '%ir' to write inline IR code, '%asm' is now only for real 6502 assembly.
(%ir is probably only used in the library modules for the virtual machine target)
|
2022-09-30 15:12:26 +02:00 |
|