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 |
|
Irmen de Jong
|
f20356e9be
|
cx16.callfar signature has been changed to be easier to use
|
2023-02-23 23:06:20 +01:00 |
|
Irmen de Jong
|
d282a2d846
|
remove cx16.callrom() just use callfar
|
2023-02-23 23:02:56 +01:00 |
|
Irmen de Jong
|
4641ac46e7
|
extra question in porting guide for high ram
|
2023-02-22 22:56:43 +01:00 |
|
Irmen de Jong
|
ba9268a09e
|
added -varshigh compiler option to move BSS section.
Documented BSS a bit in the manual.
|
2023-02-22 22:44:29 +01:00 |
|
Irmen de Jong
|
5318ba6c6e
|
shrink evalstack from 2 to 1 page
c64=$cf00-$cfff, x16: $0700-$07ff
|
2023-02-21 22:52:04 +01:00 |
|
Irmen de Jong
|
fd5ebef488
|
cx16 startup code now also selects ram bank 1
|
2023-02-21 21:53:32 +01:00 |
|
Irmen de Jong
|
d9e4f39ddc
|
memset BSS section to zero all at once, less individual var=0 assigns
|
2023-02-21 00:26:21 +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
|
0ea70ba656
|
fix proper initialization of zeropagevars with 'noreinit'
|
2023-02-20 23:05:27 +01:00 |
|
Irmen de Jong
|
c3c82282ba
|
reinitGlobals option is clearer than the inverse
|
2023-02-19 19:09:29 +01:00 |
|
Irmen de Jong
|
adc15c24ef
|
introduce bss segments
|
2023-02-19 18:12:37 +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
|
6012839f0e
|
todo
|
2023-02-16 23:06:09 +01:00 |
|
Irmen de Jong
|
8e9cbab053
|
todo
|
2023-02-16 22:53:16 +01:00 |
|
Irmen de Jong
|
c59df6ec20
|
optimize isZpVar
|
2023-02-16 00:41:20 +01:00 |
|
Irmen de Jong
|
f83752f43b
|
update compiler internals diagram
|
2023-02-09 23:15:19 +01:00 |
|
Irmen de Jong
|
86c22636eb
|
Merge branch 'master' into codegen-on-new-ast
|
2023-02-09 23:05:54 +01:00 |
|
Irmen de Jong
|
edf56d34f8
|
doc about no conditional compilation, fixes #93
also added a note to MEMTOP about 0 result
|
2023-02-06 23:36:19 +01:00 |
|
Irmen de Jong
|
9f0074eef9
|
Merge branch 'master' into codegen-on-new-ast
# Conflicts:
# codeCore/src/prog8/code/ast/AstStatements.kt
|
2023-02-05 16:44:30 +01:00 |
|
Irmen de Jong
|
86210c4513
|
clarification
|
2023-02-01 20:58:40 +01:00 |
|
Irmen de Jong
|
e9ec310d8a
|
upgrade to kotlin 1.8.0
|
2023-01-27 22:14:10 +01:00 |
|
Irmen de Jong
|
4e8ccf0ef3
|
Merge branch 'master' into codegen-on-new-ast
|
2023-01-26 00:38:54 +01:00 |
|
Irmen de Jong
|
f1a7d5ecf7
|
docs
|
2023-01-26 00:37:30 +01:00 |
|
Irmen de Jong
|
9a2df072cc
|
tiny correction
|
2023-01-24 22:48:44 +01:00 |
|
Irmen de Jong
|
5e8f767642
|
6502 codegen on new Pt-AST.
|
2023-01-22 17:10:52 +01:00 |
|
Irmen de Jong
|
58d88f3dd4
|
github action and update tool docs
|
2023-01-21 14:47:32 +01:00 |
|
Irmen de Jong
|
32c1c19224
|
tweak sys.wait() routines on various targets
add warning to docs about FP usage in IRQ
|
2023-01-20 03:29:10 +01:00 |
|
Irmen de Jong
|
bbf6357222
|
remove workaround for black cursor at boot as this was recently fixed in the kernal rom.
|
2023-01-17 23:27:27 +01:00 |
|
Irmen de Jong
|
dc16629c24
|
todo
|
2023-01-04 23:57:59 +01:00 |
|
Irmen de Jong
|
3718b9d768
|
less joins
|
2023-01-02 02:10:38 +01:00 |
|
Irmen de Jong
|
c25eb088ec
|
redo 8e730ef93d to avoid larger code generated
|
2023-01-01 23:43:33 +01:00 |
|
Irmen de Jong
|
8e730ef93d
|
optimizing scoped names more and fix scoping of identifier names in arrays (pointers) in SymbolTable
|
2022-12-31 03:20:20 +01:00 |
|
Irmen de Jong
|
e0913a39ab
|
optimizing
|
2022-12-30 18:50:45 +01:00 |
|