Commit Graph

1611 Commits

Author SHA1 Message Date
Irmen de Jong
eb55da63ef weird 2023-09-23 11:21:17 +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
885df9156f todo 2023-09-19 00:08:17 +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
95e4490a8a adding setlsb() and setmsb() builtin functions 2023-09-15 02:39:16 +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
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
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
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
525a9b5036 prepare parser to allow chained array indexing later 2023-09-03 19:06:47 +02:00
Irmen de Jong
c3fbdf34ca fixed c64 float problem 2023-09-03 16:40:10 +02:00
Irmen de Jong
48bd51e1a5 c64 float problem 2023-09-03 16:29:01 +02:00
Irmen de Jong
10d0b03a90 use less tempvars 2023-09-03 01:32:47 +02:00
Irmen de Jong
95be1c9e22 fix optimized swapped in-place byte comparisons 2023-09-03 00:47:55 +02:00
Irmen de Jong
15c649024e float problems on c64 2023-09-02 23:09:55 +02:00
Irmen de Jong
e97303c226 fix word multiplication to not clobber r0 and r1 anymore
This was causing corruption in certain programs such as the cx16/amiga example.
The problem was introduced in 9.4 with the new multiply_words routine
2023-09-02 20:52:16 +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
f14ea1b3de micro optimization to save 2 cycles: change some pha+pla into tax+txa 2023-09-01 20:37:24 +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
28bf0b61ce added math.log2() and math.log2w() 2023-09-01 00:42:15 +02:00
Irmen de Jong
66b3dce794 doc tweak 2023-08-30 13:16:39 +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
2d7ebff8e9 fix shadowing warnings in asm and library code 2023-08-29 11:00:53 +02:00
Irmen de Jong
bad9dd3b3b mention shadowing warnings from assembler 2023-08-28 16:55:28 +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
72768e7fad todo 2023-08-28 16:10:02 +02:00
Irmen de Jong
77f3852cdc added floats.parse_f() 2023-08-16 14:47:20 +02:00
Irmen de Jong
66857ca477 prepare parser to be more flexible with array indexed expressions 2023-08-15 13:07:01 +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
bbb6c53457 slightly faster sqrt() routine for integers 2023-08-14 17:00:02 +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
151a206617 experimental Commodore PET target 2023-08-12 23:25:07 +02:00
Irmen de Jong
e403c4cf99 version 9.3 2023-08-12 17:58:10 +02:00
Irmen de Jong
dc870cd5ea fixed optimized code for > and < 2023-08-12 13:15:32 +02:00
Irmen de Jong
584be44743 fix compiler error on float comparison expressions 2023-08-12 00:09:38 +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
ecbcc277b8 improve -varshigh documentation 2023-08-10 00:17:50 +02:00
Irmen de Jong
dff1d9e4dd cleanup range expression doc 2023-08-09 22:58:04 +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
77fa2e2722 optimization in + or - assignment to word array 2023-08-05 23:28:40 +02:00
Irmen de Jong
19a4bf1088 clean up AugmentableAssignmentAsmGen a bit 2023-08-04 21:48:02 +02:00
Irmen de Jong
a4d093afa1 added -sourcelines cli option to include src lines in generated assembly (which is now off by default) 2023-08-02 23:05:24 +02:00
Irmen de Jong
ba788bcf0f put the original p8 source lines into the generated assembly as comments (not only the line numbers). 2023-08-02 02:18:13 +02:00
Irmen de Jong
f2c62bee7e docs 2023-08-01 22:49:55 +02:00
Irmen de Jong
548721e306 docs 2023-07-31 22:17:43 +02:00
Irmen de Jong
0cba736446 Merge branch 'master' into remove_evalstack 2023-07-30 14:53:40 +02:00
Irmen de Jong
0816a57032 never add rts to inline asmsubs and always inline them regardless of optimization setting
otherwise they can't specify a sequence of assembly instructions that should be inserted in-place, such as those that manipulate the cpu stack.
for instance cx16.irqsafe_set_irqd() / cx16.irqsafe_clear_irqd()
2023-07-30 14:52:37 +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
6cda76a116 comments 2023-07-29 17:32:27 +02:00
Irmen de Jong
46c12a8899 fix byte in array assignment,
remove no longer needed array assignment ast transformation
2023-07-28 22:40:06 +02:00
Irmen de Jong
4a8ee6815a merge 2023-07-28 03:34:58 +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
e520921746 todo 2023-07-26 23:16:43 +02:00
Irmen de Jong
970642244b optimized gfx2.text() for hires 4c mode 2023-07-26 04:17:44 +02:00
Irmen de Jong
78e84182f0 todo 2023-07-24 22:36:17 +02:00
Irmen de Jong
4c6a2f5df9 emphasize index value size on pointer var indexing 2023-07-23 00:11:18 +02:00
Irmen de Jong
7cf6aba625 Merge branch 'master' into remove_evalstack
# Conflicts:
#	examples/test.p8
2023-07-22 23:37:20 +02:00
Irmen de Jong
3bbc00cc8c more caution notices about symbols in inlined asm 2023-07-22 23:22:06 +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
c7d54570cc IR: sXX, CONCAT instructions now use 3 register format 2023-07-21 00:07:56 +02:00
Irmen de Jong
70a78e74f6 get rid of binexpr splitter 2023-07-20 01:36:43 +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
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
ab8173637a remove redundant asm optimizer 2023-07-16 11:15:28 +02:00
Irmen de Jong
da57f76de3 fix augassign 2023-07-15 22:26:56 +02:00
Irmen de Jong
4784f1c65a remove eval stack from documentation 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
e2bb0de24d clean up X register save/store in compiler code, remove temp vars for register saving 2023-07-15 22:25:58 +02:00
Irmen de Jong
b791fae9ce remove stack based ExpressionAsmGen 2023-07-15 22:24:22 +02:00
Irmen de Jong
9e8c8973d8 remove eval stack references from asm code 2023-07-15 22:24:22 +02:00
Irmen de Jong
3933bf5c1a remove eval stack references from p8 code 2023-07-15 22:24:22 +02:00
Irmen de Jong
708e296774 remove eval stack assignment source and targets 2023-07-15 22:24:22 +02:00
Irmen de Jong
9cb61fa34d tweaks 2023-07-15 20:46:14 +02:00
Irmen de Jong
7c219d235c fixed possible type mismatch error in when statements 2023-07-14 23:35:58 +02:00
Irmen de Jong
6938c79f88 IR: added CMPI instruction 2023-07-14 23:17: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
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
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