1
0
mirror of https://github.com/KarolS/millfork.git synced 2024-05-31 18:41:30 +00:00
Commit Graph

62 Commits

Author SHA1 Message Date
Karol Stasiak
1e4a193741 Optimization hints 2021-03-15 00:44:14 +01:00
Karol Stasiak
ffa0ffb899 Allow enabling/disabling warnings individually 2021-02-24 03:04:53 +01:00
Karol Stasiak
97c7d0ffed Basic groundwork for optimization hint support 2020-11-18 22:37:58 +01:00
Karol Stasiak
b5c51e48be Rename zx80next to z80next, document the typo (fixes #55) 2020-08-13 16:53:38 +02:00
Karol Stasiak
a22571f60b 6809: tons of improvements:
* stack variables
* large comparisons
* pointer optimizations
* fixed constant evaluation
2020-07-09 01:50:18 +02:00
Karol Stasiak
7f9bd18bdd The big text encoding overhaul 2020-05-01 01:31:54 +02:00
Karol Stasiak
2eb8ef53ca Put almost all warnings behind internal flags 2020-03-17 21:08:43 +01:00
Karol Stasiak
ec8f2e6a1c Add warnings for calling from one segment to another overlapping one (#42) and -Wnone flag 2020-03-16 00:03:01 +01:00
Karol Stasiak
83b85ef0fc Support breakpoints in the label file (#44) 2020-03-16 00:01:04 +01:00
Karol Stasiak
7f6a2beb6d Fix compilation problems when targeting a specific 65C02 subarch (fixes #20) 2019-11-13 22:36:19 +01:00
Karol Stasiak
d634e24e92 More granular differentiation of various 65C02 variants; HuC6280 improvements 2019-11-04 14:28:36 +01:00
Karol Stasiak
d1058b6223 ZX Spectrum Next CPU support 2019-10-01 00:46:15 +02:00
Karol Stasiak
1d530d896a 6809: Make some progress 2019-08-16 00:51:28 +02:00
Karol Stasiak
b68e4b67c8 Better support for big-endian systems 2019-07-29 22:51:08 +02:00
Karol Stasiak
cb0718b433 6809: First bits of the code generator 2019-07-29 00:55:24 +02:00
Karol Stasiak
1d024eae76 Add LITTLE_ENDIAN and BIG_ENDIAN features 2019-07-15 14:15:38 +02:00
Karol Stasiak
767f0da703 Placeholder for future expansion 2019-07-08 09:26:51 +02:00
Karol Stasiak
674f8d1983 Allow initializing writable variables on cartridge targets 2019-06-28 16:28:49 +02:00
Karol Stasiak
0f179f79aa Many big important things:
– Add support for undocumented 8085 instructions
– Convert undocumented  8085 instructions to 8086
– Add new CPU types and categorize CPU types correctly
– Fix macro expansion in some situations
– Improve 8080 optimizations
– Improve documentation
– Other improvements
2019-06-12 12:06:02 +02:00
Karol Stasiak
b3bb9bb063 Intel 8085 support 2019-05-31 17:27:38 +02:00
Karol Stasiak
1cb3b672b1 Add 8080-to-8086 translation 2019-05-31 17:03:35 +02:00
Karol Stasiak
029e84b0f0 Unions, typed pointers, indirect field access via pointers 2019-04-15 19:45:26 +02:00
Karol Stasiak
b0e20ade0f Export compiler version as preprocessor parameter 2018-12-29 20:00:06 +01:00
Karol Stasiak
f12463aef0 Optimization refactoring:
– -Of should imply -finline
– certain optimizations should be controllable
– unused global symbols should be removed even if we're not optimizing
2018-12-27 01:18:29 +01:00
Karol Stasiak
e43fb39781 Optimize some stdlib calls 2018-12-21 22:33:27 +01:00
Karol Stasiak
8fcf628c8f Better tracking of the original source 2018-12-17 00:35:32 +01:00
Karol Stasiak
c28b71add5 6502: Stack-related things:
– software variable stack
– fixes for handling stack variables
2018-12-14 22:01:52 +01:00
Karol Stasiak
406d69c74a Add original line numbers to generated assembly 2018-12-14 15:42:31 +01:00
Karol Stasiak
2b279ac5e8 Give the preprocessor access to compilation options 2018-08-08 13:44:30 +02:00
Karol Stasiak
fab1cafec3 Z80: Intel syntax support 2018-08-03 13:23:37 +02:00
Karol Stasiak
e952d89849 Z80: Intel syntax for output. 2018-08-01 21:16:20 +02:00
Karol Stasiak
69f233e378 Z80: Interrupt handlers. Allow using IY as base pointer. 2018-08-01 12:50:05 +02:00
Karol Stasiak
e914ad6d7b Move label generation into a separate class 2018-07-31 18:16:36 +02:00
Karol Stasiak
998902acf6 Refactor: error logging 2018-07-30 18:53:08 +02:00
Karol Stasiak
cb92b09942 Improvements related to large types:
– returning types larger than 2
– fastcall for 1 parameter of size 3 or 4 on Z80
– more integer types (up to int128)
– marked farword as a deprecated alias of int24
2018-07-30 14:33:16 +02:00
Karol Stasiak
070ae395ee Text literals in expressions, escape sequences, and more 2018-07-28 00:58:20 +02:00
Karol Stasiak
67f3034afb Enable 8080 and LR35902 for users 2018-07-27 19:12:54 +02:00
Karol Stasiak
c5b45947dc Preliminary support for Intel 8080 2018-07-24 23:14:41 +02:00
Karol Stasiak
215d8d92b4 Preprocessor. Z80 improvements. Library improvements. 2018-07-12 19:39:25 +02:00
Karol Stasiak
2c8de8b6a5 Text encoding improvements 2018-07-07 00:58:44 +02:00
Karol Stasiak
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
2018-07-06 22:45:59 +02:00
Karol Stasiak
00be0b552e Use target file name as disk label 2018-07-03 22:36:15 +02:00
Karol Stasiak
9512e8e7ae Really early and very incomplete PC-88 support 2018-07-02 00:31:47 +02:00
Karol Stasiak
35caae6d8b Unify syntax of command-line switches 2018-07-01 19:19:30 +02:00
Karol Stasiak
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
2018-06-25 21:29:04 +02:00
Karol Stasiak
0f453e2d2c Start of the Z80 backend 2018-06-17 02:01:35 +02:00
Karol Stasiak
5281b5f527 Refactoring for the upcoming Z80 support 2018-06-12 22:46:20 +02:00
Karol Stasiak
8931ced6fc Preliminary LUnix support 2018-06-09 00:18:21 +02:00
Karol Stasiak
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
2018-03-28 12:37:38 +02:00
Karol Stasiak
6fa82a5a58 Added ZeropagePseugoregister to default compilation flags 2018-03-18 23:51:25 +01:00