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