Irmen de Jong
|
c319233ddc
|
ir: added preparecall 'meta' instruction for functioncalls
|
2023-09-18 23:22:03 +02:00 |
|
Irmen de Jong
|
880c0a5da8
|
allow taking address of array element
|
2023-09-18 04:37:41 +02:00 |
|
Irmen de Jong
|
ccf6e32bf9
|
adding setlsb() and setmsb() builtin functions to 6502 codegen
|
2023-09-17 15:16:47 +02:00 |
|
Irmen de Jong
|
a1874f6f00
|
adding setlsb() and setmsb() builtin functions to 6502 codegen
|
2023-09-17 01:48:29 +02:00 |
|
Irmen de Jong
|
95e4490a8a
|
adding setlsb() and setmsb() builtin functions
|
2023-09-15 02:39:16 +02:00 |
|
Irmen de Jong
|
31c132c2eb
|
several optimizations and compiler error fix for @(&var) and @(&var+1)
|
2023-09-14 23:04:23 +02:00 |
|
Irmen de Jong
|
00b0ec58b4
|
update to Antlr 4.13.1
|
2023-09-14 21:11:55 +02:00 |
|
Irmen de Jong
|
a1d0e5bb65
|
added list of software to docs
|
2023-09-13 21:51:48 +02:00 |
|
Irmen de Jong
|
03e0d4b2e8
|
reducing expression codegen complexity (no longer splitting conditional expressions, and using r9 as temp var)
|
2023-09-13 01:08:42 +02:00 |
|
Irmen de Jong
|
b500a0d477
|
c64: added a couple of routines that calculate the correct memory locations for video ram and sprite pointers etc. based on current VIC-II memory setup.
the examples with sprites, now use it.
|
2023-09-08 21:27:38 +02:00 |
|
Irmen de Jong
|
0bbbb12ed2
|
fix bench8 examples
|
2023-09-05 23:40:54 +02:00 |
|
Irmen de Jong
|
b570bdaed7
|
fix codegen for array[i] += float expression
|
2023-09-05 22:38:52 +02:00 |
|
Irmen de Jong
|
8c0843cc87
|
fix an invalid 6502 instruction on c64 in certain float assignment
|
2023-09-05 21:54:52 +02:00 |
|
Irmen de Jong
|
31458ffd81
|
examples cleanup and improving c64 graphics module (shift bitmap to higher ram area)
|
2023-09-05 20:39:12 +02:00 |
|
Irmen de Jong
|
c15c10a94e
|
fixed 'unroll CONSTANTEXPR' compiler errors
|
2023-09-05 01:03:35 +02:00 |
|
Irmen de Jong
|
9fca978725
|
optimized plasma examples even more
|
2023-09-05 00:23:50 +02:00 |
|
Irmen de Jong
|
b125901717
|
added cx16 plasma example
|
2023-09-04 23:54:13 +02:00 |
|
Irmen de Jong
|
eb018ae660
|
code optimization for bytearray[x] +/- bytearray[y]
use adc array,y or sbc array,y instead of tempvar
|
2023-09-04 23:01:53 +02:00 |
|
Irmen de Jong
|
7e5a9474fe
|
improve plasma example
|
2023-09-04 20:35:43 +02:00 |
|
Irmen de Jong
|
10d0b03a90
|
use less tempvars
|
2023-09-03 01:32:47 +02:00 |
|
Irmen de Jong
|
e1b3582f08
|
fix wordvar -= @(memory)
|
2023-09-03 01:12:26 +02:00 |
|
Irmen de Jong
|
95be1c9e22
|
fix optimized swapped in-place byte comparisons
|
2023-09-03 00:47:55 +02:00 |
|
Irmen de Jong
|
3b786c819d
|
avoid using temp var even more
|
2023-09-01 23:47:01 +02:00 |
|
Irmen de Jong
|
04959dbd8b
|
optimize asm: don't use temp var for some additions
|
2023-09-01 22:24:17 +02:00 |
|
Irmen de Jong
|
5cd4b874ea
|
tweak sprites module
|
2023-09-01 21:25:19 +02:00 |
|
Irmen de Jong
|
9cc0cda0fb
|
added sprites library module (cx16 only)
|
2023-09-01 17:35:07 +02:00 |
|
Irmen de Jong
|
09a7a4bbe5
|
optimize comparison against zero
|
2023-09-01 02:28:11 +02:00 |
|
Irmen de Jong
|
2dc2429735
|
tweaks to the cx16 sprite example
|
2023-08-31 23:24:46 +02:00 |
|
Irmen de Jong
|
83d4592526
|
tweaks to the cx16 sprite example
|
2023-08-31 22:33:49 +02:00 |
|
Irmen de Jong
|
2d528c26ae
|
added cx16 sprite demo
|
2023-08-31 16:56:52 +02:00 |
|
Irmen de Jong
|
aa4d23a3d5
|
fix register stack saving on certain expression code that was broken on 6502 but not on 65c02
|
2023-08-29 11:50:35 +02:00 |
|
Irmen de Jong
|
ff35ba3696
|
added warnshadow cli option to enable assembler warnings about symbol shadowing
|
2023-08-28 16:41:46 +02:00 |
|
Irmen de Jong
|
77f3852cdc
|
added floats.parse_f()
|
2023-08-16 14:47:20 +02:00 |
|
Irmen de Jong
|
be06d871b6
|
fix code for bitwise shifts by zero
|
2023-08-14 21:49:13 +02:00 |
|
Irmen de Jong
|
f98ee326b4
|
error when doing txt.print('@') where "@" was intended (byte for string parameter)
|
2023-08-14 19:25:31 +02:00 |
|
Irmen de Jong
|
bc8126eb16
|
2x faster word multiplication routine
|
2023-08-14 18:11:30 +02:00 |
|
Irmen de Jong
|
4c8beefdcb
|
slightly faster integer bytes multiplication routine
|
2023-08-14 17:00:16 +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
|
e3fbe37f9f
|
fixed optimized code for >= and <=
|
2023-08-12 13:45:08 +02:00 |
|
Irmen de Jong
|
dc870cd5ea
|
fixed optimized code for > and <
|
2023-08-12 13:15:32 +02:00 |
|
Irmen de Jong
|
b92e22e4a6
|
IR: fix for loop over range with step
|
2023-08-11 03:05:47 +02:00 |
|
Irmen de Jong
|
3e6d16a7a8
|
add error message for invalid step size in range expression
|
2023-08-11 02:35:52 +02:00 |
|
Irmen de Jong
|
dff1d9e4dd
|
cleanup range expression doc
|
2023-08-09 22:58:04 +02:00 |
|
Irmen de Jong
|
7c0bde7310
|
parser: allow curly brace on next line for asmsub too
downgrade antlr4 one version again to what is used in IntelliJ's antlr plugin, to avoid potential version conflicts
|
2023-08-09 20:01:12 +02:00 |
|
Irmen de Jong
|
a82d21ac05
|
fixed gfx2.plot in mode 1+5 with certain combinations of color and stipple
|
2023-08-08 00:01:43 +02:00 |
|
Irmen de Jong
|
0bf8378fcb
|
fixed gfx2.horizontal_line problem with monochrome stippling mode (regression since version 9.0)
todo
|
2023-08-07 22:56:07 +02:00 |
|
Irmen de Jong
|
017ef8a837
|
optimization of > and <= in expressions
|
2023-08-07 21:23:31 +02:00 |
|
Irmen de Jong
|
0d63cdcb96
|
optimization of < and >= in expressions
|
2023-08-07 04:54:35 +02:00 |
|
Irmen de Jong
|
68a6f99c9f
|
optimization of < in expressions
|
2023-08-07 02:32:07 +02:00 |
|
Irmen de Jong
|
60781bcfc4
|
optimization of == and != in expressions
|
2023-08-07 01:25:41 +02:00 |
|
Irmen de Jong
|
77fa2e2722
|
optimization in + or - assignment to word array
|
2023-08-05 23:28:40 +02:00 |
|
Irmen de Jong
|
c36afd872e
|
optimization in assignment to memory
|
2023-08-04 23:54:11 +02:00 |
|
Irmen de Jong
|
7e58a4c130
|
optimization in assignment to array
|
2023-08-04 23:06:55 +02:00 |
|
Irmen de Jong
|
19a4bf1088
|
clean up AugmentableAssignmentAsmGen a bit
|
2023-08-04 21:48:02 +02:00 |
|
Irmen de Jong
|
f2c62bee7e
|
docs
|
2023-08-01 22:49:55 +02:00 |
|
Irmen de Jong
|
1ae950a638
|
Merge branch 'remove_evalstack'
# Conflicts:
# codeGenCpu6502/src/prog8/codegen/cpu6502/assignment/AssignmentAsmGen.kt
|
2023-07-31 21:57:43 +02:00 |
|
Irmen de Jong
|
9bb16e293c
|
vm: fix postincr/decr on indexed pointervariables
|
2023-07-31 19:37:30 +02:00 |
|
Irmen de Jong
|
a0ab0bd3e2
|
Merge branch 'master' into remove_evalstack
# Conflicts:
# examples/test.p8
|
2023-07-29 18:57:06 +02:00 |
|
Irmen de Jong
|
b89ad4b328
|
don't optimize empty where choice away! It would call the else clause incorrectly.
|
2023-07-29 18:25:52 +02:00 |
|
Irmen de Jong
|
c5219dfb3f
|
fix assignment of register into byte array
|
2023-07-28 22:16:01 +02:00 |
|
Irmen de Jong
|
e1b6bb154a
|
Merge branch 'master' into remove_evalstack
# Conflicts:
# compiler/res/prog8lib/cx16/gfx2.p8
# docs/source/todo.rst
# examples/test.p8
|
2023-07-28 02:09:45 +02:00 |
|
Irmen de Jong
|
970642244b
|
optimized gfx2.text() for hires 4c mode
|
2023-07-26 04:17:44 +02:00 |
|
Irmen de Jong
|
3b90be2d9e
|
gfx2.text() per-pixel positioning implemented for screen modes 1 and 5
|
2023-07-25 00:43:45 +02:00 |
|
Irmen de Jong
|
4575a8fffe
|
cx16: added cx16.vaddr_autoincr() and cx16.vaddr_autodecr()
|
2023-07-21 22:40:07 +02:00 |
|
Irmen de Jong
|
d5707b7bf3
|
rebuilding floating point stack evaluation (using cpu stack)
|
2023-07-20 00:45:04 +02:00 |
|
Irmen de Jong
|
9f247901d4
|
Merge branch 'master' into remove_evalstack
# Conflicts:
# codeGenCpu6502/src/prog8/codegen/cpu6502/BuiltinFunctionsAsmGen.kt
# codeGenCpu6502/src/prog8/codegen/cpu6502/assignment/AssignmentAsmGen.kt
# compiler/src/prog8/buildversion/BuildVersion.kt
# examples/test.p8
|
2023-07-16 23:45:04 +02:00 |
|
Irmen de Jong
|
5659742d97
|
fixed assigning byte to word not clearing msb sometimes
|
2023-07-16 23:16:32 +02:00 |
|
Irmen de Jong
|
450eaf7c4a
|
fixed lsb() to uword problem
|
2023-07-16 20:05:59 +02:00 |
|
Irmen de Jong
|
47485e4b49
|
added more missing codegen for bit shifts
|
2023-07-16 17:42:10 +02:00 |
|
Irmen de Jong
|
64254e758d
|
cleaned up cx16 keyboardhandler example and some compiler warnings for redundant else
|
2023-07-16 13:23:53 +02:00 |
|
Irmen de Jong
|
c1aa5d4e47
|
IR: optimized when statement translation
|
2023-07-16 12:10:46 +02:00 |
|
Irmen de Jong
|
ab8173637a
|
remove redundant asm optimizer
|
2023-07-16 11:15:28 +02:00 |
|
Irmen de Jong
|
3841cef497
|
implemented missing bitshift codegen (non-stack)
|
2023-07-15 22:26:56 +02:00 |
|
Irmen de Jong
|
b717f1c7eb
|
little refactor of huge if statement
|
2023-07-15 22:26:56 +02:00 |
|
Irmen de Jong
|
41af63b333
|
remove even more X register save/restore code
|
2023-07-15 22:26:54 +02:00 |
|
Irmen de Jong
|
84925ab69c
|
remove eval stack options
|
2023-07-15 22:24:19 +02:00 |
|
Irmen de Jong
|
b3cb9b7fe2
|
added optimizer to remove needless pha/pla pairs
|
2023-07-15 22:19:48 +02:00 |
|
Irmen de Jong
|
b8284a147d
|
allow boolean when conditions, optimize into a regular if
|
2023-07-11 21:33:29 +02:00 |
|
Irmen de Jong
|
795f80b4ec
|
fix forloop 6502 codegen in case of descending word values
|
2023-07-11 00:33:12 +02:00 |
|
Irmen de Jong
|
6b6427492d
|
fix forloop 6502 codegen in case of descending word values
|
2023-07-10 23:10:16 +02:00 |
|
Irmen de Jong
|
6055b8c3dc
|
IR: fix forloop codegen for steps != 1
|
2023-07-10 21:36:44 +02:00 |
|
Irmen de Jong
|
4e863ecdac
|
vm: fixed abs() and word-to-string conversion
|
2023-07-08 22:57:16 +02:00 |
|
Irmen de Jong
|
5037033fcf
|
ir: EXT and EXTS opcodes now have 2 registers to avoid type clash
|
2023-07-08 22:42:11 +02:00 |
|
Irmen de Jong
|
4ced8889d3
|
cx16: fix signature return values of cx16.screen_mode(), add get_screen_mode() and set_screen_mode() convenience routines
|
2023-07-08 11:37:29 +02:00 |
|
Irmen de Jong
|
d26967a87d
|
ir doc
|
2023-07-07 22:35:05 +02:00 |
|
Irmen de Jong
|
071a80360f
|
ir: fix some problem with comparison against zero
|
2023-07-07 21:17:28 +02:00 |
|
Irmen de Jong
|
d2154f5f2e
|
remove empty when choices, fixes ir compilation error on those
|
2023-07-07 20:34:24 +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
|
71261525e8
|
fix containment check on memory mapped arrays
|
2023-07-07 17:07:34 +02:00 |
|
Irmen de Jong
|
3126959576
|
ir: several fixes
|
2023-07-07 16:53: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
|
c544b7f5ba
|
fixing up p8_ prefixing
|
2023-07-02 21:15:05 +02:00 |
|
Irmen de Jong
|
bb95484c8a
|
uniform symbol prefixing with p8_
|
2023-07-02 06:15:09 +02:00 |
|
Irmen de Jong
|
0f6a98751a
|
tiny optimization
|
2023-07-02 06:13:22 +02:00 |
|
Irmen de Jong
|
aac5a4c27f
|
optimize word repeat loop codegen
|
2023-07-02 04:51:22 +02:00 |
|
Irmen de Jong
|
d3f6415387
|
vm: fix repeat 256
|
2023-07-02 02:38:35 +02:00 |
|
Irmen de Jong
|
e7b631b087
|
allow comment lines inside array initializer value
|
2023-06-27 23:30:37 +02:00 |
|
Irmen de Jong
|
a9f5dc036c
|
fix cpu stack corruption in array assignment codegen
|
2023-06-27 18:49:49 +02:00 |
|
Irmen de Jong
|
0a83b51e00
|
allow more curly brace styles
|
2023-06-27 01:59:22 +02:00 |
|