Commit Graph

  • 13cd68ba96 IR: fix LOADI.f peephole optimization Irmen de Jong 2026-01-09 03:49:10 +01:00
  • f69b293b7f optimized some more cases of poke and peek Irmen de Jong 2026-01-09 01:53:40 +01:00
  • d4bf0bf5b7 optimized simple cases of pokel() Irmen de Jong 2026-01-09 01:21:11 +01:00
  • 8c6a95f5e2 optimized simple cases of v = peekl() Irmen de Jong 2026-01-08 23:37:06 +01:00
  • 6301a8b040 optimize msb(long<<8/16/24) into single byte accesses (skip the whole shift) Irmen de Jong 2026-01-08 22:35:13 +01:00
  • daa9b40883 optimize lsb(long>>8/16/24) into single byte accesses (skip the whole shift) Irmen de Jong 2026-01-08 03:12:53 +01:00
  • aa045bb383 optimized certain word and long shifts to get the lsb/msb Irmen de Jong 2026-01-08 02:42:56 +01:00
  • 9d7049a659 optimized long>>8, long>>16, long>>24 Irmen de Jong 2026-01-08 00:27:57 +01:00
  • bbfb2eb367 optimized longvar = lptr^^ Irmen de Jong 2026-01-07 23:18:08 +01:00
  • 447271f3f2 implemented missing byte ptr assignment Irmen de Jong 2026-01-07 22:42:53 +01:00
  • 78d6d2d59a breaking change: renamed R0R1_32 etc combined register parameters to just R0R1, R2R3, etc etc (_32 suffix is removed to make it more consistent with the other existing register names) Irmen de Jong 2026-01-07 21:54:34 +01:00
  • c6cd39b4ab slighty improved fix len() error message for pointer types Irmen de Jong 2026-01-07 21:37:07 +01:00
  • cd34c4eed0 fix len() error message for pointer types Irmen de Jong 2026-01-07 03:25:52 +01:00
  • 652b585ea4 code style Irmen de Jong 2026-01-07 00:48:45 +01:00
  • 2913fa47b2 fix pointer assignment TODO Irmen de Jong 2026-01-07 00:28:42 +01:00
  • d6e4175e21 fix msb(a+b), lsb(a+b) Irmen de Jong 2026-01-06 23:55:57 +01:00
  • 3a0add60fd optimize msb(lsw(longvar)) into @(&longvar+1) Irmen de Jong 2026-01-06 22:58:45 +01:00
  • bc4470aeda remove bsb() again - too confusing? Irmen de Jong 2026-01-06 22:39:04 +01:00
  • 97dade3655 fix setmsb() on long types Irmen de Jong 2026-01-06 21:37:17 +01:00
  • 54f23387d0 added bsb(long) builtin function that returns the bank byte of the long value (bits 16-23) Irmen de Jong 2026-01-06 20:52:27 +01:00
  • 77161e0f39 avoid separate definitions for list of simple builtin functions Irmen de Jong 2026-01-06 18:19:15 +01:00
  • 70d99bebb0 on c64/c128, txt.getclr() now always returns 0-15 (upper 4 bits are cleared). fixes #204 Irmen de Jong 2026-01-05 21:04:04 +01:00
  • 75156f7dbd fix optimized long comparison against 0 Irmen de Jong 2026-01-05 18:57:54 +01:00
  • 9827be0047 optimize sgn(integer) comparisons Irmen de Jong 2026-01-05 18:33:26 +01:00
  • 495dd526e1 comment correction Irmen de Jong 2026-01-04 23:04:33 +01:00
  • 3d20bc13b5 Virtual target: fix strings.right() and strings.slice() Irmen de Jong 2026-01-04 20:55:02 +01:00
  • 6028cc49ab simplify when into if-else, if possible Irmen de Jong 2026-01-04 19:39:38 +01:00
  • 23d3fb96b9 improved parsing rule of constdecl Irmen de Jong 2026-01-02 23:36:55 +01:00
  • 51503e054a IR: improve use of loadfield for msb/lsb of struct fields Irmen de Jong 2026-01-02 21:58:01 +01:00
  • 3f6177cbb8 improved 6502 codegen for lsb/msb of struct field Irmen de Jong 2026-01-02 21:23:01 +01:00
  • c1c88e0327 improved 6502 codegen for memory byte access into structs Irmen de Jong 2026-01-02 20:53:01 +01:00
  • 18ba25d6a4 IR: optimize double ADD/SUB Irmen de Jong 2026-01-02 19:39:06 +01:00
  • e74162671a clarify doc, fix possible poke() ast rewrite error Irmen de Jong 2026-01-02 11:31:45 +01:00
  • 2290308e06 fix invalid 6502 instructions in math.diff. Fixes #203 Irmen de Jong 2026-01-02 01:08:50 +01:00
  • 82693cc3ee optimized lsb(msb(longvar)) which grabs the bank byte from a long Irmen de Jong 2026-01-01 21:39:34 +01:00
  • 50b8cae519 sys.save_prog8_internals() now also correctly saves the SCRATCH_PTR temp var. Moved a bunch of common sys routines into separate shared_sys_functions.p8 module file Irmen de Jong 2025-12-31 03:37:09 +01:00
  • 3a74931a61 c128: added c128.fast() and c128.slow() to enable/disable the CPU's 2 MHz mode. Also added c128.is80(), set80(), set40() to check and set 40/80 column screen mode Irmen de Jong 2025-12-30 23:39:43 +01:00
  • c87e920c61 IR: stick all variable elements in <VARS> to improve the xml file structure a bit Irmen de Jong 2025-12-30 22:17:29 +01:00
  • 2c2de8bfb3 fix IR peephole optimizer index off by 1 error and make SSA blocks configurable (still defaults to yes in this version) Irmen de Jong 2025-12-30 18:58:42 +01:00
  • d386343fe7 fix romable error check for arrays Irmen de Jong 2025-12-30 02:26:01 +01:00
  • 5b32cfd172 fix some obscure errors, improve some error messages Irmen de Jong 2025-12-28 20:35:00 +01:00
  • 46dffcfb96 cx16: sysinit now explicitly makes vera border color also black (0) Irmen de Jong 2025-12-28 02:47:48 +01:00
  • b156c876f0 fix long expression typecast error Irmen de Jong 2025-12-28 01:24:54 +01:00
  • 71b66f506d fix asmsub register order crash when using longs + something else Irmen de Jong 2025-12-28 00:15:11 +01:00
  • 28d087b8b4 psg2 tweaks Irmen de Jong 2025-12-27 17:31:30 +01:00
  • a57815153d Merge branch 'psg2-module' Irmen de Jong 2025-12-27 17:12:05 +01:00
  • f910f73f28 added txt.iso2petscii() and txt.iso2petscii_str() Irmen de Jong 2025-12-26 17:55:07 +01:00
  • 6635515bf0 fix subtracting from str pointer, this fixes strings.endswith() for instance Irmen de Jong 2025-12-26 15:15:15 +01:00
  • cc0425a2c4 detect circular aliases, also fix error message for aliased function call with wrong number of args Irmen de Jong 2025-12-26 14:01:05 +01:00
  • c7052a183e fixing wrong error message about wrong arg count with alias Irmen de Jong 2025-12-25 23:49:03 +01:00
  • d9a0f3cb4a add line numbers to certain error messages Irmen de Jong 2025-12-25 22:30:05 +01:00
  • 80d6eb232d bool variables were not converted to constants if that was possible Irmen de Jong 2025-12-25 17:39:54 +01:00
  • d9ffb10eb5 added psg2 module (cx16 only) Irmen de Jong 2025-12-24 03:15:59 +01:00
  • 463d53345d more helpful min max error message for floats Irmen de Jong 2025-12-24 17:19:47 +01:00
  • 4b1063530e define cx16.VERA_PSG_BASE, VERA_PALETTE_BASE, VERA_SPRITES_BASE as long consts into Vera VRAM returning a bool is no longer allowed if the sub return type is byte Irmen de Jong 2025-12-24 01:45:56 +01:00
  • 9266943e74 fix pointer assign type error with cast to uword Irmen de Jong 2025-12-24 00:14:23 +01:00
  • 1e3ae2cb1d IR: just use loadhay to get the result from CALLI Irmen de Jong 2025-12-23 18:45:31 +01:00
  • 55bc242e8b implemented in-place long negation and some missing long to float casts Irmen de Jong 2025-12-23 06:12:59 +01:00
  • aa3bbbb867 tweaks to wav streaming examples Irmen de Jong 2025-12-23 03:47:54 +01:00
  • 45ad0911df emudbg.cpu_cycles() now returns a long type instead of 2 separate words Irmen de Jong 2025-12-23 01:30:47 +01:00
  • 946def4613 IR: fix call() / CALLI return value handling Irmen de Jong 2025-12-23 00:24:17 +01:00
  • 3000c399bd cx16: add support for VIA timer IRQ in the irq routines Irmen de Jong 2025-12-22 21:13:31 +01:00
  • 1682400988 fix missing cx16 virtual register symbols in asm file (bool and long variants) fix actually relocating all of them in the cx16 module pet32 and c128 targets now also relocate them to ZP if there is space Irmen de Jong 2025-12-22 15:36:59 +01:00
  • 6ad435df1f mention main block size restriction Irmen de Jong 2025-12-22 05:26:34 +01:00
  • cd433b2111 c128: disable f-keys macros on startup Irmen de Jong 2025-12-22 00:23:21 +01:00
  • a50eebb369 fixed the balls example to also work on the monochrome pet32 target Irmen de Jong 2025-12-21 22:27:54 +01:00
  • 13d4af59c7 c64+c128: improved speed of txt.setchr, txt.getchr, txt.setclr, txt.getclr, txt.setcc Irmen de Jong 2025-12-21 22:05:09 +01:00
  • b6f4f2adb7 c64+c128: improved speed of txt.setchr and txt.getchr Irmen de Jong 2025-12-21 22:01:25 +01:00
  • e57d9f59a2 fix long 0 argument to asmsub with 32-bits combined virtual register to pass it in Irmen de Jong 2025-12-21 21:09:33 +01:00
  • 071d5dc0c5 pet32: improved speed of txt.setchr and txt.getchr Irmen de Jong 2025-12-21 20:47:47 +01:00
  • 4030a1b9e5 cleanup, animals example removed because it's superseded by the pointers/animalgame example now v12.0.1 Irmen de Jong 2025-12-16 16:48:34 +01:00
  • 0217d05c68 IR: loadfield/storefield now accept offsets up to 65535 Irmen de Jong 2025-12-16 13:25:22 +01:00
  • 8553f3c9f1 IR: loadfield is a better name Irmen de Jong 2025-12-16 12:57:45 +01:00
  • d157d03ea0 IR: optimize load+add+load into single loadm with offset (also store) update gradle wrapper to 9.2.0 Irmen de Jong 2025-12-15 21:40:47 +01:00
  • 1799b5f00c updated bundled zsmkit version to 2.8 Irmen de Jong 2025-12-15 03:21:45 +01:00
  • 2ddb5e11b7 updated symboldumps Irmen de Jong 2025-12-13 02:12:00 +01:00
  • 3aa8b9fd12 turn prefix - numbers into negative numbers asap to avoid type problems later Irmen de Jong 2025-12-13 00:34:34 +01:00
  • 51300196e8 fix more long comparisons with arrays, fixes #196 Irmen de Jong 2025-12-12 21:01:51 +01:00
  • f7b2f19cba remove restriction about long comparison with expression Irmen de Jong 2025-12-11 21:43:53 +01:00
  • 014a82a1ee always put all struct types as .struct in asm code to make them all accessible for size and offsets Irmen de Jong 2025-12-10 21:39:44 +01:00
  • 745cf3d958 IR: removed loadix/storeix instructions Irmen de Jong 2025-12-09 01:51:05 +01:00
  • c4aa681d58 IR: better name for loadfield/storefield instructions Irmen de Jong 2025-12-09 00:33:06 +01:00
  • feb0774bbd in benchmark-c routines, use same CIA timer as the original C code did so the program size is better comparable Irmen de Jong 2025-12-08 01:08:33 +01:00
  • 2ccfb2ac90 fix double evaluation (sign extension) of word to long assignment. Fixes #201 Irmen de Jong 2025-12-07 22:23:36 +01:00
  • 2191c4b7d8 remove redundant expression assignment before multiplying certain words Irmen de Jong 2025-12-07 14:06:59 +01:00
  • 39c1cf0c3c fix diskio lf_start_list_dirs() and lf_start_list_files() not processing the pattern argument Irmen de Jong 2025-12-07 05:11:08 +01:00
  • c693be0dd6 fix byte subtract from long fix IR register check error for %ir segments Irmen de Jong 2025-12-06 13:56:23 +01:00
  • 0f433055a7 fix pointer dereference division and modulus , fixes #199 Irmen de Jong 2025-12-05 22:19:54 +01:00
  • 76c95ba6fa some more obscure inplace modifications implemented Irmen de Jong 2025-12-05 20:25:56 +01:00
  • bd272a8567 optimize some specialized cases of long << Irmen de Jong 2025-12-05 01:08:19 +01:00
  • b38fff76e9 hack to work around struct name prefix inconsistency see github issue 198 Irmen de Jong 2025-12-03 21:07:08 +01:00
  • 07b7639ff2 better error msg Irmen de Jong 2025-12-02 22:56:40 +01:00
  • 6871561c09 fix parent node error in sizeof() Irmen de Jong 2025-12-01 23:21:14 +01:00
  • 77a71138ad fix typo r8r0sl -> r8r9sl Irmen de Jong 2025-11-30 22:05:57 +01:00
  • 165f94bc93 fix long expression <0 / >0 comparison Irmen de Jong 2025-11-30 16:57:05 +01:00
  • b75090f928 fix some register clobbering with long operations Irmen de Jong 2025-11-30 16:44:36 +01:00
  • 62b0c82f93 implement long <=0 and long >=0 comparisons make sure the adpcm benchmark doesn't use random memory contents Irmen de Jong 2025-11-29 16:42:32 +01:00
  • b1ef863c7f make $8000000 a valid long integer (-2147483648) Irmen de Jong 2025-11-26 23:10:59 +01:00
  • e78345410f fix long-- high word wrap bug Irmen de Jong 2025-11-26 20:13:17 +01:00
  • 8b86f97aaa Implement struct field long and signed word bitshifts. Fixes #194 Irmen de Jong 2025-11-25 22:28:28 +01:00