Irmen de Jong
|
92062d056d
|
divmod() now works on multiple data types including float.
divmodw() has been removed
|
2023-05-02 01:19:53 +02:00 |
|
Irmen de Jong
|
06368ab0a1
|
sqrt() now works on multiple data types including float.
no need to use floats.sqrtf() anymore
|
2023-05-02 01:19:53 +02:00 |
|
Irmen de Jong
|
38efe25c68
|
abs() now works on multiple data types including float.
no need to use floats.fabs() anymore
|
2023-05-02 01:19:53 +02:00 |
|
Irmen de Jong
|
319079de7a
|
sqrt
|
2023-05-02 01:19:53 +02:00 |
|
Irmen de Jong
|
025bf900a5
|
min max docs, added floats.minf() and maxf()
|
2023-05-02 01:19:53 +02:00 |
|
Irmen de Jong
|
c07eda15b1
|
adding min() and max()
|
2023-05-02 01:19:53 +02:00 |
|
Irmen de Jong
|
4274296cf3
|
api change: new 'cbm' module that now contains the common CBM kernal variables and routines.
|
2023-05-02 01:19:53 +02:00 |
|
Irmen de Jong
|
76a203d4df
|
api change: rename builtin func sqrt16 to sqrtw
|
2023-05-02 01:19:53 +02:00 |
|
Irmen de Jong
|
f465b2e2a0
|
some improvements to IR peephole optimizer
|
2023-05-02 00:29:04 +02:00 |
|
Irmen de Jong
|
ce00e49a89
|
version 8.12
|
2023-04-30 14:04:54 +02:00 |
|
Irmen de Jong
|
ee5c94f6db
|
c128: fix key status zp location symbols
|
2023-04-28 20:43:26 +02:00 |
|
Irmen de Jong
|
91045afbee
|
document limited fp support
|
2023-04-28 18:18:41 +02:00 |
|
Irmen de Jong
|
0bea721c2e
|
docs
|
2023-04-27 01:26:25 +02:00 |
|
Irmen de Jong
|
cd8e7f3912
|
psg comment
|
2023-04-24 01:23:03 +02:00 |
|
Irmen de Jong
|
50604c25c2
|
remove obsolete comments, updated links and docs.
|
2023-04-23 15:13:53 +02:00 |
|
Irmen de Jong
|
5b2d29bef6
|
improved and added a few system routines for the cx16
|
2023-04-18 23:20:28 +02:00 |
|
Irmen de Jong
|
a296d26328
|
api change: renamed cx16.push/pop_vera_context() to save/restore_vera_context()
this better reflects its capability because it doesn't use a stack, only a single buffer
|
2023-04-17 23:37:15 +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
|
c8531cbeb1
|
remove unused variables from IR output
|
2023-04-09 23:09:30 +02:00 |
|
Irmen de Jong
|
c560abedba
|
fix compiler crash on rol/ror array value
|
2023-04-09 22:29:11 +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
|
c4f53fe525
|
IR: small optimization
|
2023-04-05 22:55:54 +02:00 |
|
Irmen de Jong
|
befe0fff2a
|
IR: fix comparison codegen errors in newexpr path
|
2023-04-05 00:15:09 +02:00 |
|
Irmen de Jong
|
4861973899
|
vm: fix float arrays init values
|
2023-04-04 00:06:55 +02:00 |
|
Irmen de Jong
|
5bf78c20d4
|
update to Kotlin 1.8.20, docs update
|
2023-04-03 23:04:00 +02:00 |
|
Irmen de Jong
|
d8214d4f12
|
fix IR array indexing for newexpr
|
2023-04-03 03:13:35 +02:00 |
|
Irmen de Jong
|
64d1f09ce0
|
new diagrams
|
2023-04-03 00:32:12 +02:00 |
|
Irmen de Jong
|
47d0f0ea40
|
implement missing operators in IR code gen
|
2023-04-01 02:29:33 +02:00 |
|
Irmen de Jong
|
2d85fd093e
|
Merge branch 'new-expr-codegen'
# Conflicts:
# codeGenCpu6502/src/prog8/codegen/cpu6502/BuiltinFunctionsAsmGen.kt
# codeGenIntermediate/src/prog8/codegen/intermediate/BuiltinFuncGen.kt
# examples/test.p8
|
2023-03-29 23:56:16 +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
|
0c81b32cac
|
todo
|
2023-03-28 20:01:26 +02:00 |
|
Irmen de Jong
|
629ed74d09
|
got rid of rpn deadend code...
|
2023-03-25 18:45:17 +01:00 |
|
Irmen de Jong
|
ca2af2ca63
|
todo
|
2023-03-25 18:23:33 +01:00 |
|
Irmen de Jong
|
52ab089615
|
rpn: implement more comparisons
|
2023-03-25 18:21:10 +01:00 |
|
Irmen de Jong
|
01461a196d
|
implementing optimized comparisons
|
2023-03-25 00:08:21 +01:00 |
|
Irmen de Jong
|
c8b2c8ae50
|
extra asmvars now also moved into BSS section instead of taking up space inline
|
2023-03-25 00:00:29 +01:00 |
|
Irmen de Jong
|
cc81d6fe82
|
remove traces of ** operator
|
2023-03-22 00:51:58 +01:00 |
|
Irmen de Jong
|
beb9275982
|
rtd fix attempt
|
2023-03-22 00:16:33 +01:00 |
|
Irmen de Jong
|
2d0746f5a4
|
rtd fix attempt
|
2023-03-21 23:52:49 +01:00 |
|
Irmen de Jong
|
9c71e2f1c8
|
rpn optimizations
|
2023-03-21 18:41:37 +01:00 |
|
Irmen de Jong
|
134fd62da8
|
RPN: better handling of bit shifts
|
2023-03-21 02:58:26 +01:00 |
|
Irmen de Jong
|
2afd283582
|
optimize RPN
|
2023-03-21 00:05:32 +01:00 |
|
Irmen de Jong
|
c66734bab0
|
fix cx16 ubyte to float cast (wrong rom routine)
|
2023-03-20 23:25:28 +01:00 |
|
Irmen de Jong
|
d265271148
|
fix rpn variable depth clobber and type error
|
2023-03-20 22:18:10 +01:00 |
|
Irmen de Jong
|
b40e397b28
|
fix rpn result type mismatch
|
2023-03-20 00:58:48 +01:00 |
|
Irmen de Jong
|
35ff1d996a
|
only reuse actual counter vars
|
2023-03-19 21:53:49 +01:00 |
|
Irmen de Jong
|
deea0b05cb
|
tweak cx16 system init and reset to not reset Vera any more
uses new audio routine to silence the audio
|
2023-03-19 21:16:23 +01:00 |
|
Irmen de Jong
|
c50c9ca545
|
Merge branch 'rpn-expressions'
|
2023-03-19 17:36:20 +01:00 |
|
Irmen de Jong
|
a819b4a5a5
|
fix RPN issues
|
2023-03-19 17:35:28 +01:00 |
|
Irmen de Jong
|
df2d7d4734
|
fix RPN comparison exprs
|
2023-03-19 16:08:48 +01:00 |
|
Irmen de Jong
|
79ce4098cf
|
todo
|
2023-03-19 01:34:55 +01:00 |
|
Irmen de Jong
|
374464a1f8
|
weird condition operator...
|
2023-03-19 01:32:20 +01:00 |
|
Irmen de Jong
|
6e4ae034b2
|
more Rpn optimizations
|
2023-03-19 00:48:12 +01:00 |
|
Irmen de Jong
|
52b560e72d
|
more Rpn optimizations
|
2023-03-18 19:13:32 +01:00 |
|
Irmen de Jong
|
e8bebe5a75
|
implementing Rpn optimizations
|
2023-03-18 01:13:02 +01:00 |
|
Irmen de Jong
|
5b0e1b4f9e
|
a little rpn refactor
|
2023-03-17 23:04:56 +01:00 |
|
Irmen de Jong
|
e6b8e2e8be
|
attempt at doc fix
|
2023-03-17 22:15:21 +01:00 |
|
Irmen de Jong
|
7c5b7f77cc
|
attempt at doc fix
|
2023-03-17 22:12:47 +01:00 |
|
Irmen de Jong
|
1152191f48
|
add optimization: replace simple for loops by repeat loop
|
2023-03-15 21:11:37 +01:00 |
|
Irmen de Jong
|
af1b07ad44
|
add more referencesIdentifier() on ast nodes
|
2023-03-15 20:44:24 +01:00 |
|
Irmen de Jong
|
b8113fff1e
|
todo
|
2023-03-15 01:05:48 +01:00 |
|
Irmen de Jong
|
fd25e85d59
|
added unroll loop construct
|
2023-03-14 23:37:49 +01:00 |
|
Irmen de Jong
|
e2c101206c
|
removed a problematic asm optimization step that could result in dysfunctional code when writing to I/O addresses
|
2023-03-14 22:14:48 +01:00 |
|
Irmen de Jong
|
92276b5769
|
IR fix unneeded register allocated for array indexing with variable
|
2023-03-14 21:24:44 +01:00 |
|
Irmen de Jong
|
a2133f61a8
|
get rid of all the require() checks that test result regs to be different
|
2023-03-14 01:01:46 +01:00 |
|
Irmen de Jong
|
199adbbcf0
|
IR: don't allow to have 2 same registers on instructions
|
2023-03-14 00:45:41 +01:00 |
|
Irmen de Jong
|
025183602f
|
refactor IR returnregs 6
|
2023-03-13 21:35:23 +01:00 |
|
Irmen de Jong
|
451e527b7c
|
refactor IR returnregs 4
|
2023-03-13 03:54:16 +01:00 |
|
Irmen de Jong
|
54dd3a00df
|
refactor IR returnregs 3
|
2023-03-13 03:20:06 +01:00 |
|
Irmen de Jong
|
03c5dab79d
|
refactor IR returnregs 2
|
2023-03-13 02:50:41 +01: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
|
39132327cc
|
added optimizer for IR code
with two very simple optimizations
|
2023-03-12 20:30:51 +01:00 |
|
Irmen de Jong
|
592f74124c
|
fix startup subroutine linking in VM
|
2023-03-12 16:09:55 +01:00 |
|
Irmen de Jong
|
d76547ead4
|
don't crash on certain undefined symbols, give proper error instead
Also the error handlers in unit tests now de-duplicate messages just like the compiler itself does
|
2023-03-11 14:58:41 +01:00 |
|
Irmen de Jong
|
043df18daa
|
set X to bottom part of eval stack in irq handler. fixes #94
|
2023-03-10 23:29:34 +01:00 |
|
Irmen de Jong
|
96996bf18e
|
be less aggressive with translating adds/subs into auto inc/decrements, to avoid code bloat
|
2023-03-10 23:01:55 +01:00 |
|
Irmen de Jong
|
f350137a14
|
fix array in place assignments
fixes balls and snow examples amongst others
|
2023-03-10 04:07:50 +01:00 |
|
Irmen de Jong
|
6c34672549
|
array in-place assignment problem
|
2023-03-10 02:02:47 +01:00 |
|
Irmen de Jong
|
9a36e8ba3b
|
todo
|
2023-03-09 00:00:03 +01:00 |
|
Irmen de Jong
|
c968bacb01
|
fix pokew() crash with certain address expressions
|
2023-03-08 23:29:57 +01:00 |
|
Irmen de Jong
|
25199dfb43
|
change tokenizer so that A,X,Y now are parsed correctly as identifiers as well
|
2023-03-08 22:57:19 +01:00 |
|
Irmen de Jong
|
48fed4e6fb
|
slight tweak to codegenerator backend interface
|
2023-03-08 00:14:38 +01:00 |
|
Irmen de Jong
|
fc253237c9
|
fix issues with reporting inlined subroutines as unused
|
2023-03-07 23:47:14 +01:00 |
|
Irmen de Jong
|
589948c7f4
|
fix IR translateIfElseNonZeroComparison for ints + floats
|
2023-03-07 23:07:51 +01:00 |
|
Irmen de Jong
|
fd07ae5225
|
fix various IR file and symboltable issues
|
2023-03-07 19:40:11 +01:00 |
|
Irmen de Jong
|
1436480eab
|
added a few more comparison expression optimizations
|
2023-03-04 16:01:40 +01:00 |
|
Irmen de Jong
|
448d176c24
|
fix vm crash on empty string
|
2023-03-04 15:35:54 +01:00 |
|
Irmen de Jong
|
fd269453a4
|
todos
|
2023-03-04 14:14:01 +01:00 |
|
Irmen de Jong
|
3114ab87dc
|
add 8 bit sample width support
|
2023-03-03 17:12:44 +01:00 |
|
Irmen de Jong
|
00bc99cc7b
|
added cx16/stream-wav example, refactor pcmaudio code
|
2023-03-03 14:18:13 +01:00 |
|
Irmen de Jong
|
540b3ae2f4
|
tweak BinaryExpression splitting
|
2023-02-28 21:45:38 +01:00 |
|
Irmen de Jong
|
dbfe4140e1
|
improved import search paths
|
2023-02-28 20:08:11 +01:00 |
|
Irmen de Jong
|
ded2483fc0
|
cx16 startup code now properly turns off mouse cursor
|
2023-02-27 23:35:42 +01:00 |
|