1
0
mirror of https://github.com/KarolS/millfork.git synced 2024-06-26 11:29:28 +00:00
Commit Graph

107 Commits

Author SHA1 Message Date
Karol Stasiak
1e4a193741 Optimization hints 2021-03-15 00:44:14 +01:00
Karol Stasiak
83393d49f1 Z80: optimization improvements 2021-02-26 23:12:43 +01:00
Karol Stasiak
919f11af2e #101: Allow using local labels in all assembly instructions and all assembly expressions 2021-02-03 09:50:44 +01:00
Karol Stasiak
90a9538936 Various optimizations 2020-12-01 18:18:56 +01:00
Karol Stasiak
57776f7f93 8080: Optimization improvements 2020-08-14 22:29:19 +02:00
Karol Stasiak
49816d18fe Fix volatile 2020-08-14 22:28:31 +02:00
Karol Stasiak
d0bf683657 Various fixes 2020-07-18 01:16:31 +02:00
Karol Stasiak
29335d376a 8080: Use a register pair instead of absolute addressing when the registers are loaded anyway 2020-04-08 09:26:44 +02:00
Karol Stasiak
5b3e812bb1 8080: Fix some stack-related optimizations 2020-04-06 12:00:10 +02:00
Karol Stasiak
078b22869a 8080: optimize some more cases of stack use 2020-04-05 23:13:43 +02:00
Karol Stasiak
63ff28e94e Changes to macros and parameter list syntax:
* non-asm macros can now take `const` and `call` parameters
* register parameters to asm functions and macros can be given names if annotated explicitly
2020-03-30 19:23:48 +02:00
Karol Stasiak
128dabba3f Reorganize optimizations a bit 2020-03-17 12:20:16 +01:00
Karol Stasiak
21ffbfc466 Extra optimization pass over non-inlined functions (implements #43) 2020-02-27 01:33:34 +01:00
Karol Stasiak
6e36166af2 Never remove or inline volatile variables (fixes #27) 2020-01-03 21:28:10 +01:00
Karol Stasiak
769453418c 8080: Optimization bugfix 2019-12-01 03:38:19 +01:00
Karol Stasiak
7be5b14a7d Optimize loads of the same value that was just checked to be in a register 2019-12-01 03:11:30 +01:00
Karol Stasiak
e2b7b28b63 8080: Optimize function parameters to registers 2019-11-13 18:39:51 +01:00
Karol Stasiak
113befeb36 8080: Add one minor optimization 2019-11-12 13:50:12 +01:00
Karol Stasiak
7fe32ca564 Z80: Improve optimizations 2019-10-24 00:48:16 +02:00
Karol Stasiak
635870585e Add unsigned 16-bit division 2019-09-15 19:47:19 +02:00
Karol Stasiak
3ce2249399 Add 16-bit multiplication 2019-09-04 21:17:06 +02:00
Karol Stasiak
1a87929ad3 Fix TCO 2019-08-04 13:40:49 +02:00
Karol Stasiak
dfda9f9283 8080: Fix optimizations near ifs 2019-08-04 12:37:54 +02:00
Karol Stasiak
10c76dcc9c Z80: Fix optimizations around multiplication 2019-08-03 16:42:40 +02:00
Karol Stasiak
bb63a73f15 Improve interprocedural optimizations 2019-08-01 19:11:35 +02:00
Karol Stasiak
35ba36ce11 Function pointers – initial version 2019-07-27 00:58:10 +02:00
Karol Stasiak
adc93aeb74 Z80: Fix optimizations near stack variables 2019-07-26 14:15:35 +02:00
Karol Stasiak
c5135423f8 Fix: don't swap BC and DE if jumping outside the function 2019-07-09 22:39:57 +02:00
Karol Stasiak
3d68d4f990 mapValues is lazy what the fuck 2019-06-28 16:24:49 +02:00
Karol Stasiak
efe69eb5a9 Fix performance regressions and some bugs 2019-06-27 00:18:05 +02:00
Karol Stasiak
22cdd1c768 Z80: Fix stack variable optimizations when addresses of stack variables are taken (2) 2019-06-26 10:46:59 +02:00
Karol Stasiak
afa871abcf Z80: Fix stack variable optimizations when addresses of stack variables are taken 2019-06-26 02:11:53 +02:00
Karol Stasiak
6cf746045f 8080/Z80: More optimizations 2019-06-26 01:47:03 +02:00
Karol Stasiak
507791bcaf Fix stack overflow 2019-06-26 01:46:31 +02:00
Karol Stasiak
f90d6afc43 8080: Fixed inlining of byte-sized variables into registers 2019-06-26 01:45:34 +02:00
Karol Stasiak
8ea3957023 8080: optimize loads to HL 2019-06-24 15:18:44 +02:00
Karol Stasiak
23b4b110a6 8080: optimize more pointless loads 2019-06-24 15:17:05 +02:00
Karol Stasiak
4654698891 8080: tail call optimization 2019-06-24 00:47:07 +02:00
Karol Stasiak
869211658a Division optimizations 2019-06-24 00:13:16 +02:00
Karol Stasiak
0205520bf9 Allow taking addresses of stack variables 2019-06-23 22:53:42 +02:00
Karol Stasiak
f22b62e57f Z80: Fix stack variable inlining 2019-06-23 22:31:46 +02:00
Karol Stasiak
dc13dbaa9a Code cleanup 2019-06-12 22:55:34 +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
a1b868e3df Optimize byte division by power of two 2019-06-06 13:35:26 +02:00
Karol Stasiak
2583f280a8 Unsigned byte division by non-constant 2019-06-06 01:17:34 +02:00
Karol Stasiak
77b3628dde Z80: Analyse LD A,I and LD A,R correctly in the optimizer 2019-06-05 11:33:34 +02:00
Karol Stasiak
b3bb9bb063 Intel 8085 support 2019-05-31 17:27:38 +02:00
Karol Stasiak
62984fce9b 8080: optimize handling 2-byte parameters 2019-05-02 13:33:45 +02:00
Karol Stasiak
d9f88cdfad Const arrays 2019-04-30 00:41:42 +02:00
Karol Stasiak
00d190c3d8 8080: Optimization improvements 2019-04-18 16:24:57 +02:00