Commit Graph

1795 Commits

Author SHA1 Message Date
Jonathan G Rennison
5ec802a3d4 VarAction2: Allow substituting perm store loads through temp store 2022-07-30 21:17:00 +01:00
Jonathan G Rennison
ed737e1a8f VarAction2: Do not remove redundant adjusts when this would break var 1C 2022-07-14 23:57:23 +01:00
Jonathan G Rennison
b9c22a0b9e VarAction2: Do not prune groups when this would break var 1C 2022-07-14 23:47:48 +01:00
Jonathan G Rennison
ae746a1af4 VarAction2: Fix tracking of whether a sprite group needs var 1C 2022-07-14 23:38:52 +01:00
Jonathan G Rennison
c19bd4473f Add signal style flag to require realistic braking 2022-06-30 21:20:43 +01:00
Jonathan G Rennison
78ae295dfe Add combined normal and shunt aspect signal style flag 2022-06-27 18:51:26 +01:00
Jonathan G Rennison
759b00262e VarAction2: Allow more than one JZ to end on the same end block adjust 2022-06-26 23:30:14 +01:00
Jonathan G Rennison
9775f468e8 VarAction2: Fix jump insertion moving the end marker for another jump 2022-06-26 22:53:07 +01:00
Jonathan G Rennison
89f66236ff VarAction2: Fix SHR/SAR mixup in check for merge with prior RST 2022-06-25 20:51:09 +01:00
Jonathan G Rennison
a311f12615 Add signals_style_lookahead_single_signal_only signal style property 2022-06-25 01:29:08 +01:00
Jonathan G Rennison
fcae909839 Add signal style flag for drawing on the opposite side 2022-06-22 23:45:44 +01:00
Jonathan G Rennison
229613b06a VarAction2: Resolve jumps in advance to avoid needing to track nesting 2022-06-22 02:09:13 +01:00
Jonathan G Rennison
387e646439 VarAction2: Add group flag for whether to run jump insert pass 2022-06-20 18:46:31 +01:00
Jonathan G Rennison
3714fad790 VarAction2: Fix jump insertion using mul with bool as last value 2022-06-20 18:41:09 +01:00
Jonathan G Rennison
4af3022c45 VarAction2: Fix last variable read annotations being incorrect
This is because DSE variable substitutions/etc were applied afterwards
This broke jump insertion
2022-06-20 18:23:52 +01:00
Jonathan G Rennison
191f710c40 Add custom signal style properties to set electric/semaphore enabled types 2022-06-19 17:43:46 +01:00
Jonathan G Rennison
175c5d4d50 Add signal style flag to limit lookahead extra aspect 2022-06-19 12:46:56 +01:00
Jonathan G Rennison
bdd73a19a1 Add signal style flag for unconditional reserve through
Add map bits for unconditional reserve through
Adjust signal aspect/state handling
2022-06-19 04:15:27 +01:00
Jonathan G Rennison
7ae06124ae Add signal style flag for no aspect increase behaviour (banner repeater) 2022-06-19 02:08:38 +01:00
Jonathan G Rennison
6e4c4b35e7 Initial implementation of NewGRF custom signal styles 2022-06-19 02:08:38 +01:00
Jonathan G Rennison
098bb74ed2 Fix industry tile layout validation when the layout has only one tile
See: https://github.com/OpenTTD/OpenTTD/issues/9925
2022-06-18 11:08:13 +01:00
Jonathan G Rennison
13fcde9ea0 VarAction2: Add a JZ operation, use for ternary style mul masking 2022-06-14 02:23:23 +01:00
Jonathan G Rennison
8687b82dd8 VarAction2: Mark various object variables as expensive 2022-06-14 01:34:25 +01:00
Jonathan G Rennison
c0b1f867a3 VarAction2: Prefer tracking store content as clone of another store 2022-06-14 00:53:26 +01:00
Jonathan G Rennison
315f12f1e4 Fix spelling error in comment 2022-06-13 17:19:02 +01:00
Jonathan G Rennison
7bb0de247d Add GRF feature: New Landscape
Custom graphics using actions 1/2/3.

Currently only for rock tiles
2022-06-13 17:13:48 +01:00
Jonathan G Rennison
5a02a13885 VarAction2: Add abs() detection to bool/mul adjust combining 2022-06-11 14:33:02 +01:00
Jonathan G Rennison
e554d7fdfb VarAction2: Generalise bool/mul adjust combining 2022-06-11 14:28:32 +01:00
Jonathan G Rennison
3e56837ae6 Fix bec2bf7e: Fix (anti-)commutative store/load re-arrangements 2022-06-11 09:21:44 +01:00
Jonathan G Rennison
34cd547325 Debug: Show if action 2s have been modified by action 6 in debug window 2022-06-11 02:34:08 +01:00
Jonathan G Rennison
6214d0d20d VarAction2: Add an ABS opcode 2022-06-11 02:33:09 +01:00
Jonathan G Rennison
7f1b3a965f VarAction2: Allow tracking stores as (inverted) clones of previous store 2022-06-10 20:28:52 +01:00
Jonathan G Rennison
bec2bf7e85 VarAction2: Initial temp store versioning in 1st pass 2022-06-10 20:07:21 +01:00
Jonathan G Rennison
4f3058ee06 VarAction2: Improve handling of variable 7B with a previous constant 2022-06-10 20:07:21 +01:00
Jonathan G Rennison
23e6d861fc VarAction2: Ensure that store simplification can't break var 7B 2022-06-10 20:06:24 +01:00
Jonathan G Rennison
3bddd55921 VarAction2: Add sprite group flag for if var 1C seen before proc 2022-06-10 20:06:24 +01:00
Jonathan G Rennison
16185e817e VarAction2: Merge compatible constant operations 2022-06-09 00:44:31 +01:00
Jonathan G Rennison
0343e9d9dd VarAction2: Replace sequences of the form: (var * flag) + (var * !flag) 2022-06-09 00:27:09 +01:00
Jonathan G Rennison
e5e984d92f VarAction2: Replace effective SMAX/SMIN sequences in DSE pass 2022-06-08 21:19:18 +01:00
Jonathan G Rennison
0484fbf941 VarAction2: Save/restore inference when going back to previous op with side effects 2022-06-08 21:05:33 +01:00
Jonathan G Rennison
376b434d53 VarAction2: Re-order commutative skip on zero operation sequences
Such that less expensive variables can be tested first
2022-06-08 20:29:46 +01:00
Jonathan G Rennison
0409bd88e8 VarAction2: Simplify tracking of sprite group feature 2022-06-08 20:22:53 +01:00
Jonathan G Rennison
caebff85f5 VarAction2: Add helper functions for constant comparison adjust types 2022-06-08 19:40:36 +01:00
Jonathan G Rennison
249a20e47a VarAction2: Add helper functions for relational comparison ops 2022-06-08 19:22:00 +01:00
Jonathan G Rennison
31e96ff5e7 VarAction2: Add helper functions for anti-commutative ops 2022-06-08 19:15:56 +01:00
Jonathan G Rennison
5db30e559e VarAction2: Store substitutions can now handle inversions 2022-06-08 19:07:30 +01:00
Jonathan G Rennison
b95116e4fc VarAction2: Apply XOR bool inversion conversions after DSE 2022-06-08 18:06:38 +01:00
Jonathan G Rennison
2bbfa37730 VarAction2: Replace reversed commutative/sub op via temp storage in DSE pass 2022-06-08 17:53:16 +01:00
Jonathan G Rennison
45ac1a89aa VarAction2: Apply XOR with 1 bool logic inversion in more cases
Fixes case of DSE-delayed var substitutions
2022-06-08 02:34:54 +01:00
Jonathan G Rennison
1c1e6a1042 VarAction2: Prune deterministic sprite group children again after DSE 2022-06-08 00:05:22 +01:00