1
0
mirror of https://github.com/KarolS/millfork.git synced 2026-01-23 10:16:02 +00:00

Commit Graph

  • a00ba49820 Multiple improvements and fixes: – reorganized code for future support of larger zeropage register sets – added stack-allocated variables for Z80 – added many stack-related optimizations for 6502 and Z80 – fixed flow analysis and optimization bugs for Z80 – flow analysis for stack-allocated variables on Z80 – added more optimizations for 6502 and Z80 – fixed IX/IY-indexed operations on Z80 – code cleanup Karol Stasiak 2018-07-06 22:45:59 +02:00
  • 55b42645be Don't print an extra newline on ZX Spectrum Karol Stasiak 2018-07-06 22:38:19 +02:00
  • 40c98567a0 Make the parser much faster Karol Stasiak 2018-07-06 01:05:24 +02:00
  • dffc6e71d9 Optimize operations on known register values Karol Stasiak 2018-07-05 00:58:07 +02:00
  • 670741392c Fix tests Karol Stasiak 2018-07-05 00:57:43 +02:00
  • c3504a63b3 ZX Spectrum improvements Karol Stasiak 2018-07-05 00:50:13 +02:00
  • fe85757e00 Initial and very incomplete support for Z80 assembly Karol Stasiak 2018-07-05 00:49:51 +02:00
  • c153588600 Use @word for reset vectors Karol Stasiak 2018-07-03 23:29:37 +02:00
  • 351d2ac5f9 Documentation update Karol Stasiak 2018-07-03 23:28:05 +02:00
  • 24ae52e3cc Really early and very incomplete ZX Spectrum support Karol Stasiak 2018-07-03 22:37:18 +02:00
  • 00be0b552e Use target file name as disk label Karol Stasiak 2018-07-03 22:36:15 +02:00
  • 3390fe552e Allocate all variables in single pass on Z80 Karol Stasiak 2018-07-03 22:34:45 +02:00
  • 4acc040813 More tests for Z80 Karol Stasiak 2018-07-03 01:52:29 +02:00
  • 0da4637036 Fix and extend Z80 word/long operations Karol Stasiak 2018-07-03 01:47:31 +02:00
  • 57bde60ced Fix Z80 shifting Karol Stasiak 2018-07-03 01:46:57 +02:00
  • e5ee32f7d6 Fix Z80 reverse flow analysis for CP Karol Stasiak 2018-07-03 01:45:58 +02:00
  • be04c9b195 Fix emitting constant decimal expressions Karol Stasiak 2018-07-03 01:45:20 +02:00
  • da023daadc Z80 doesn't have a zeropage Karol Stasiak 2018-07-02 22:34:29 +02:00
  • 02a408e1be Fix array iteration on Z80 Karol Stasiak 2018-07-02 22:33:43 +02:00
  • a394ab631f Faster array iteration for Z80 Karol Stasiak 2018-07-02 14:59:21 +02:00
  • 619bf8116a Optimization fixes and improvements for Z80 Karol Stasiak 2018-07-02 14:58:45 +02:00
  • ed067d3a67 Splitting and tweaking documentation Karol Stasiak 2018-07-02 00:45:53 +02:00
  • 9512e8e7ae Really early and very incomplete PC-88 support Karol Stasiak 2018-07-02 00:31:47 +02:00
  • 62e94d96f7 Added unsigned byte comparisons for Z80 Karol Stasiak 2018-07-02 00:18:33 +02:00
  • 4d00cb4db9 Added Z80 emulator for testing Karol Stasiak 2018-07-01 22:28:27 +02:00
  • dc3425f64e Preliminary and partial machine code output for Z80 Karol Stasiak 2018-07-01 22:28:09 +02:00
  • 893515b649 8- and 16-bit shifting for Z80 Karol Stasiak 2018-07-01 22:27:12 +02:00
  • f7f22767e4 Various minor Z80-related fixes Karol Stasiak 2018-07-01 22:26:30 +02:00
  • 35caae6d8b Unify syntax of command-line switches Karol Stasiak 2018-07-01 19:19:30 +02:00
  • 2b6315f15b Let the optimizer optimize the multiplication routine Karol Stasiak 2018-07-01 19:07:47 +02:00
  • 86b12bd5f9 Switch to snapshot versioning Karol Stasiak 2018-07-01 19:07:12 +02:00
  • 63988dbe8c Version 0.3.0 v0.3.0 Karol Stasiak 2018-06-25 22:46:52 +02:00
  • f51e42cc1d Fixed all the legal stuff Karol Stasiak 2018-06-25 22:42:12 +02:00
  • 4f2ed66bb1 Don't treat apostrophes as delimiters in Notepad++ syntax definition Karol Stasiak 2018-06-25 21:30:10 +02:00
  • 2500f842e9 Interprocedural optimization plus some minor fixes: – fixed handling LDX/LDY/LDZ when inlining variables into registers – fixed CLA/CLX/CLY instruction generation – refactored optimization definitions Karol Stasiak 2018-06-25 21:29:04 +02:00
  • 57740cc6b4 Optimizations for shifting Karol Stasiak 2018-06-24 23:18:18 +02:00
  • d39aac86ac C64 should compile with no illegals by default, for SuperCPU, C65 and Mega65 compatibility Karol Stasiak 2018-06-24 19:39:16 +02:00
  • a692a9868e Update changelog Karol Stasiak 2018-06-24 00:31:10 +02:00
  • 83e055a1d1 Allow for "file" array specifier inside another array Karol Stasiak 2018-06-24 00:30:57 +02:00
  • 86ce4c75ad Take into account that the sole byte parameter is passed via the accumulator in more locations Karol Stasiak 2018-06-23 23:47:18 +02:00
  • 456c674a0c Track equality of S and X. Add relevant optimizations. Karol Stasiak 2018-06-23 23:24:32 +02:00
  • bc21e5befc If a function has one small parameter, pass it via the accumulator Karol Stasiak 2018-06-23 23:14:53 +02:00
  • 3d47c51804 Less restrictive licensing for the standard library Karol Stasiak 2018-06-22 18:16:10 +02:00
  • 816bfb5f06 Optimization improvements: – better zeropage register flow tracking – reverse flow analysis speed improvement – optimize TXA/TAX after LAX – don't stash A onto stack over externally linear code blocks Karol Stasiak 2018-06-19 14:23:24 +02:00
  • 5ee9fd85ce Humblebrag Karol Stasiak 2018-06-19 00:08:18 +02:00
  • 992ea7090e Comparison fixes and improvements Karol Stasiak 2018-06-19 00:00:48 +02:00
  • bf1a3a6677 Fix label name clash Karol Stasiak 2018-06-18 22:40:32 +02:00
  • 13b06bd505 Fix zeropage allocation Karol Stasiak 2018-06-18 22:40:14 +02:00
  • b5aa4674b4 Update Notepad++ syntax colouring scheme Karol Stasiak 2018-06-18 20:13:02 +02:00
  • 9b7d58cf65 Optimizing addition by replacing it with bit ops (NMOS) or increments (CMOS) Karol Stasiak 2018-06-18 19:48:47 +02:00
  • 7510b44412 Optimization improvements: – reloading from zeropage is faster than stashing the result into another register – more jumping optimizations Karol Stasiak 2018-06-18 18:52:34 +02:00
  • daf8461c07 Allocating arbitrary variables in the zeropage and using zeropage addressing when appropriate Karol Stasiak 2018-06-18 17:59:47 +02:00
  • ca14e417dd Loop compilation/optimization fixes/improvements Karol Stasiak 2018-06-18 17:54:45 +02:00
  • 24a3943501 Array filters (@word, @word_be) Karol Stasiak 2018-06-18 02:52:14 +02:00
  • 0f453e2d2c Start of the Z80 backend Karol Stasiak 2018-06-17 02:01:35 +02:00
  • 780bfa3428 Fix for i,$FF,downto,0 Karol Stasiak 2018-06-12 23:35:26 +02:00
  • 5ee550af3b Fix double load optimization Karol Stasiak 2018-06-12 23:34:41 +02:00
  • 7fc8678eec Better logging when shortening jumps Karol Stasiak 2018-06-12 23:34:16 +02:00
  • 5281b5f527 Refactoring for the upcoming Z80 support Karol Stasiak 2018-06-12 22:46:20 +02:00
  • 70818cc3d2 Fixing invalid short jumps Karol Stasiak 2018-06-11 00:04:24 +02:00
  • a16f662031 Optimization fixes Karol Stasiak 2018-06-10 23:44:45 +02:00
  • 278cbcec63 Fixed return dispatch returns on LUnix. Added non-relocated address constants. Karol Stasiak 2018-06-10 01:56:04 +02:00
  • 8a417768b8 Removed a really invalid optimization Karol Stasiak 2018-06-10 01:48:42 +02:00
  • 8931ced6fc Preliminary LUnix support Karol Stasiak 2018-06-09 00:18:21 +02:00
  • 5dc1bba8ed Multiple improvements: - fixed some invalid LDX(zp),Y instructions - better error reporting - removing unused extern functions - a new testcase Karol Stasiak 2018-06-09 00:08:17 +02:00
  • 775707801c Documentation improvements Karol Stasiak 2018-06-09 00:05:17 +02:00
  • 10860f6c5f Fixed flag checks during optimisation Karol Stasiak 2018-06-04 16:49:45 +02:00
  • c71af26989 Documentation updates Karol Stasiak 2018-06-04 16:24:18 +02:00
  • 0919a98e4b Fix for i,const,downto,0 loops Karol Stasiak 2018-06-04 09:44:54 +02:00
  • 0c50c4562a Optimize more pointless loads from the same memory/register Karol Stasiak 2018-06-04 09:44:24 +02:00
  • beef56cdab Fillout the call graph for variable overlap calculations Karol Stasiak 2018-06-04 09:43:51 +02:00
  • b6e61f16ec Optimizations of adding one Karol Stasiak 2018-06-01 09:51:59 +02:00
  • 1d468e1313 Index changing optimization fix Karol Stasiak 2018-06-01 09:51:30 +02:00
  • e2f7c6ee32 Typo fix Karol Stasiak 2018-06-01 09:51:04 +02:00
  • a671ac1d06 Optimization improvements and fixes Karol Stasiak 2018-05-14 02:20:36 +02:00
  • fae7bb31c9 Flow analysis fixes Karol Stasiak 2018-05-14 02:19:39 +02:00
  • 8cc3399239 Comparison fix Karol Stasiak 2018-05-14 02:18:46 +02:00
  • 28e53272b9 Removal of pointless constant type; variable-to-register inlining fix Karol Stasiak 2018-05-14 02:18:33 +02:00
  • 2f1faa12c2 A 24-bit integer type Karol Stasiak 2018-05-14 02:16:46 +02:00
  • 60b9378554 More aggressive constant simplification Karol Stasiak 2018-04-15 02:21:51 +02:00
  • a2171aeef0 Trace output fix Karol Stasiak 2018-04-15 02:21:28 +02:00
  • 58f85bb46e Optimization improvements Karol Stasiak 2018-04-15 02:07:44 +02:00
  • cdfbbf61b8 Fixed allocating allocating local variables twice Karol Stasiak 2018-04-15 01:29:47 +02:00
  • 7eab7c439e Preliminary Atari 2600 support Karol Stasiak 2018-04-03 23:13:57 +02:00
  • 3296d5a201 Documentation improvements Karol Stasiak 2018-04-03 00:21:26 +02:00
  • 76a30acf9a Preliminary BBC Micro support Karol Stasiak 2018-04-02 23:40:40 +02:00
  • 146e598636 Optimizing CMP/CPX/CPY/CPZ #0 Karol Stasiak 2018-04-02 21:57:53 +02:00
  • 0ddf2f31c8 Inserting raw byte sequences in assembly Karol Stasiak 2018-04-02 21:40:54 +02:00
  • d6995091cf Character literals Karol Stasiak 2018-04-02 21:06:18 +02:00
  • 95375378ed More text codecs Karol Stasiak 2018-04-02 19:47:11 +02:00
  • 2ea964f35b Small documentation fix Karol Stasiak 2018-03-28 19:47:44 +02:00
  • b93340e7d1 Set theme jekyll-theme-dinky Karol Stasiak 2018-03-28 19:38:48 +02:00
  • c2a4110c6b Set theme jekyll-theme-cayman Karol Stasiak 2018-03-28 19:37:46 +02:00
  • d484959a85 Set theme jekyll-theme-dinky Karol Stasiak 2018-03-28 19:36:03 +02:00
  • 66597ffc57 Set theme jekyll-theme-minimal Karol Stasiak 2018-03-28 19:31:51 +02:00
  • 1a0737e4c9 Rename documentation files Karol Stasiak 2018-03-28 19:31:10 +02:00
  • 1fcbf9fd5b More uses for the DCP instruction Karol Stasiak 2018-03-28 18:56:11 +02:00
  • 343d339da3 Don't remove loads that are required for flags Karol Stasiak 2018-03-28 18:55:49 +02:00
  • d785d43ae7 Many optimization improvements and bugfixes - fixed VariableToRegisterOptimization removing variables during superoptimization - fixed PointlessMathFromFlow giving results that do not fit a byte - fixed PointlessLoadBeforeReturn moving reads from before to after memory modification - achieved and exceeded CC65 performance when doing 16-bit Eratosthenes sieve Karol Stasiak 2018-03-28 12:32:26 +02:00
  • cb3d848d0a Prevent all functions with return dispatch from being inlined Karol Stasiak 2018-03-27 00:38:40 +02:00