Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
485 commits
Select commit Hold shift + click to select a range
14c48f6
reimplement: SHC_3BB0A8C1_0x0049F7D0 22.63% split bounds guard
gynt Oct 15, 2026
e9b58d0
reimplement: SHC_3BB0A8C1_0x004A6010 39.05% shared -1 constant
gynt Oct 15, 2026
8f7f078
reimplement: SHC_3BB0A8C1_0x004A58A0 15.15% compare against 0 not 1
gynt Oct 15, 2026
d3b2f5f
reimplement: SHC_3BB0A8C1_0x0049BE60 54.46% compare against 0 not 1
gynt Oct 15, 2026
2005bd7
reimplement: SHC_3BB0A8C1_0x004A4930 68.42% statement reorder
gynt Oct 15, 2026
906f640
reimplement: SHC_3BB0A8C1_0x004A67D0 73.08% compare against 0 not 1
gynt Oct 15, 2026
f66d7ee
reimplement: SHC_3BB0A8C1_0x004A8860 38.51% abs() instead of shift idiom
gynt Oct 15, 2026
4c12119
reimplement: SHC_3BB0A8C1_0x00496F90 51.61% abs() instead of shift idiom
gynt Oct 15, 2026
4bb4dde
reimplement: SHC_3BB0A8C1_0x004A79A0 49.93% abs() instead of shift idiom
gynt Oct 15, 2026
2d77360
reimplement: SHC_3BB0A8C1_0x0049D880 75.73% abs() instead of shift idiom
gynt Oct 15, 2026
14eb4d9
reimplement: SHC_3BB0A8C1_0x00497180 52.17% abs() instead of shift idiom
gynt Oct 15, 2026
ac8413b
reimplement: SHC_3BB0A8C1_0x00497080 41.38% abs() instead of shift idiom
gynt Oct 15, 2026
a3e5f1e
reimplement: SHC_3BB0A8C1_0x004A79A0 58.26% abs() instead of shift idiom
gynt Oct 15, 2026
ad3f0cb
reimplement: SHC_3BB0A8C1_0x004A6AB0 57.61% abs() instead of shift idiom
gynt Oct 15, 2026
9cf1da3
reimplement: SHC_3BB0A8C1_0x0049D880 77.92% abs() instead of shift idiom
gynt Oct 15, 2026
e76df40
reimplement: SHC_3BB0A8C1_0x004A3B20 39.38% plain /10, not magic mult…
gynt Oct 15, 2026
ed47f60
reimplement: SHC_3BB0A8C1_0x004A36B0 79.20% plain /10, not magic mult…
gynt Oct 15, 2026
54c3ce7
reimplement: SHC_3BB0A8C1_0x004A79A0 58.26% signed writeIndex compare
gynt Oct 15, 2026
baa9fd4
reimplement: SHC_3BB0A8C1_0x0049E9E0 69.40% counted for loop
gynt Oct 15, 2026
f4d54ca
reimplement: SHC_3BB0A8C1_0x0049A370 11.21% orig 3-way dispatch + sha…
gynt Oct 15, 2026
54f0fbc
reimplement: SHC_3BB0A8C1_0x004A5320 38.72% single counter + global f…
gynt Oct 15, 2026
356f4d6
reimplement: SHC_3BB0A8C1_0x00498FD0 17.01% signed reads, switch, inB…
gynt Oct 15, 2026
6b741f8
reimplement: SHC_3BB0A8C1_0x00498020 58.77% global instance field access
gynt Oct 15, 2026
50b6804
reimplement: SHC_3BB0A8C1_0x004A79A0 58.65% self-call via global inst…
gynt Oct 15, 2026
8714fd1
reimplement: SHC_3BB0A8C1_0x004A75B0 46.27% self-call via global inst…
gynt Oct 15, 2026
7c26143
reimplement: SHC_3BB0A8C1_0x004A8AB0 62.47% global instance field access
gynt Oct 15, 2026
a439723
reimplement: SHC_3BB0A8C1_0x00498A40 78.61% compare operand order
gynt Oct 15, 2026
ce417ca
reimplement: SHC_3BB0A8C1_0x0049D880 79.22% compare operand order
gynt Oct 15, 2026
6a6e851
reimplement: SHC_3BB0A8C1_0x004A0B20 66.06% compare operand order
gynt Oct 15, 2026
9345a74
reimplement: SHC_3BB0A8C1_0x00498020 59.23% compare operand order
gynt Oct 15, 2026
27ce06a
reimplement: SHC_3BB0A8C1_0x004A36B0 80.09% compare operand order
gynt Oct 15, 2026
019f5ee
reimplement: SHC_3BB0A8C1_0x00498400 43.67% compare operand order
gynt Oct 15, 2026
4907b94
reimplement: SHC_3BB0A8C1_0x004A75B0 47.01% compare operand order
gynt Oct 15, 2026
8ca84fd
reimplement: SHC_3BB0A8C1_0x004A83B0 64.41% compare operand order
gynt Oct 15, 2026
0a6b80a
reimplement: SHC_3BB0A8C1_0x0049AAD0 86.65% compare operand order
gynt Oct 15, 2026
2869f40
reimplement: SHC_3BB0A8C1_0x004A1C40 98.65% compare operand order
gynt Oct 15, 2026
e4a8f59
reimplement: SHC_3BB0A8C1_0x0049A1C0 52.78% shifted row index variable
gynt Oct 15, 2026
e630126
reimplement: SHC_3BB0A8C1_0x0049A2E0 96.30% index locals + statement …
gynt Oct 15, 2026
a9b9f5f
reimplement: SHC_3BB0A8C1_0x0049AF50 20.81% named ChangedLayer + loca…
gynt Oct 15, 2026
89d87d3
reimplement: SHC_3BB0A8C1_0x004A58A0 28.57% single in-place queue cou…
gynt Oct 15, 2026
01dcd33
reimplement: SHC_3BB0A8C1_0x004A4BB0 49.50% inverted tests, climb bas…
gynt Oct 15, 2026
8368408
reimplement: SHC_3BB0A8C1_0x0049F7D0 23.61% if/else min-max, orig que…
gynt Oct 15, 2026
f920f4c
reimplement: SHC_3BB0A8C1_0x004A3B20 42.40% single movsx read, later …
gynt Oct 15, 2026
da05647
reimplement: SHC_3BB0A8C1_0x00498FD0 17.01% merge per-block temporaries
gynt Oct 15, 2026
c991e07
reimplement: SHC_3BB0A8C1_0x004A1230 59.37% Style pass, asm differs
gynt Oct 15, 2026
b974806
reimplement: SHC_3BB0A8C1_0x0049DDC0 35.71% Style pass, asm differs
gynt Oct 15, 2026
b3d031a
reimplement: SHC_3BB0A8C1_0x00498A40 81.82% split bounds guard
gynt Oct 15, 2026
5a1f6b7
reimplement: SHC_3BB0A8C1_0x004A6DF0 82.76% split bounds guard
gynt Oct 15, 2026
ba8fc5b
reimplement: SHC_3BB0A8C1_0x004A5DA0 84.17% split bounds guard
gynt Oct 15, 2026
7280021
reimplement: SHC_3BB0A8C1_0x004A6010 39.05% Style pass, asm differs
gynt Oct 15, 2026
486f32d
reimplement: SHC_3BB0A8C1_0x004A01D0 56.03% Style pass, asm differs
gynt Oct 15, 2026
fa5b664
reimplement: SHC_3BB0A8C1_0x0049BBF0 49.80% Style pass, asm differs
gynt Oct 15, 2026
822c52a
reimplement: SHC_3BB0A8C1_0x0049B940 70.34% Style pass, asm differs
gynt Oct 15, 2026
737c4ff
reimplement: SHC_3BB0A8C1_0x00497690 13.59% Style pass, asm differs
gynt Oct 15, 2026
b1e8bbf
reimplement: SHC_3BB0A8C1_0x00497B80 52.35% Style pass, asm differs
gynt Oct 15, 2026
ea5d834
reimplement: SHC_3BB0A8C1_0x0049D340 64.60% Style pass, asm differs
gynt Oct 15, 2026
b02fc1e
reimplement: SHC_3BB0A8C1_0x004A9200 48.70% split bounds guard
gynt Oct 15, 2026
a763f98
reimplement: SHC_3BB0A8C1_0x0049FC00 58.26% Style pass, asm differs
gynt Oct 15, 2026
2e838ae
reimplement: SHC_3BB0A8C1_0x004A21B0 81.91% Style pass, asm differs
gynt Oct 15, 2026
71ad00f
reimplement: SHC_3BB0A8C1_0x0049A6D0 72.45% Style pass, asm differs
gynt Oct 15, 2026
16c1296
reimplement: SHC_3BB0A8C1_0x0049E510 91.67% Style pass, asm differs
gynt Oct 15, 2026
72cd553
reimplement: SHC_3BB0A8C1_0x0049A370 11.21% Style pass, asm differs
gynt Oct 15, 2026
3eba85e
reimplement: SHC_3BB0A8C1_0x0049E9E0 69.40% Style pass, asm differs
gynt Oct 15, 2026
fa06121
reimplement: SHC_3BB0A8C1_0x0049E0D0 87.53% Style pass, asm differs
gynt Oct 15, 2026
84b6afb
reimplement: SHC_3BB0A8C1_0x0049AAD0 86.65% Style pass, asm differs
gynt Oct 15, 2026
16e2bdf
reimplement: SHC_3BB0A8C1_0x00499FA0 35.29% orig branch order + stmt …
gynt Oct 15, 2026
c81ecc6
reimplement: SHC_3BB0A8C1_0x0049F7D0 24.03% statement order
gynt Oct 15, 2026
8495bbd
reimplement: SHC_3BB0A8C1_0x0049CD60 100.00% Reimplemented
gynt Oct 15, 2026
bee0250
reimplement: SHC_3BB0A8C1_0x00497690 100.00% Reimplemented
gynt Oct 15, 2026
a03ab60
reimplement: SHC_3BB0A8C1_0x004999C0 51.05% counted for loop
gynt Oct 15, 2026
8ac0a0e
reimplement: SHC_3BB0A8C1_0x004A8780 81.48% counted for + named layer
gynt Oct 15, 2026
c9cc297
reimplement: SHC_3BB0A8C1_0x004A15B0 36.13% named UID array + base po…
gynt Oct 15, 2026
67b4b8b
reimplement: SHC_3BB0A8C1_0x004A5320 48.73% statement order
gynt Oct 15, 2026
8e1d72d
reimplement: SHC_3BB0A8C1_0x004A9510 73.02% orig branch order + loop …
gynt Oct 15, 2026
b39ebfc
reimplement: SHC_3BB0A8C1_0x0049C5C0 84.31% hoisted row ptr and result x
gynt Oct 15, 2026
67e5fd1
reimplement: SHC_3BB0A8C1_0x004974D0 31.33% fix height window -16 not…
gynt Oct 15, 2026
c3b12df
reimplement: SHC_3BB0A8C1_0x0049DDC0 35.39% drop ghidra chkstk artifa…
gynt Oct 15, 2026
cdef005
reimplement: SHC_3BB0A8C1_0x00498FD0 17.01% init order + signed bound
gynt Oct 15, 2026
f819e1a
reimplement: SHC_3BB0A8C1_0x004A6010 39.39% statement order
gynt Oct 15, 2026
916ec42
reimplement: SHC_3BB0A8C1_0x0049BE60 51.64% drop ghidra chkstk artifa…
gynt Oct 15, 2026
2901ff9
reimplement: SHC_3BB0A8C1_0x00498400 40.94% orig early-return guard
gynt Oct 15, 2026
7bb5f6a
reimplement: SHC_3BB0A8C1_0x004A8860 47.47% widen narrow locals to int
gynt Oct 15, 2026
0a89d60
reimplement: SHC_3BB0A8C1_0x00498400 43.67% revert guard split, worse
gynt Oct 15, 2026
18b380d
reimplement: SHC_3BB0A8C1_0x004A6DF0 83.45% widen area local to int
gynt Oct 15, 2026
73d9727
reimplement: SHC_3BB0A8C1_0x0049CE40 53.93% widen local to int
gynt Oct 15, 2026
d0a093f
reimplement: SHC_3BB0A8C1_0x00498400 44.32% widen locals to int
gynt Oct 15, 2026
cad2669
reimplement: SHC_3BB0A8C1_0x004A8AB0 65.62% widen locals to int
gynt Oct 15, 2026
1c76584
reimplement: SHC_3BB0A8C1_0x004A4930 75.66% widen locals to int
gynt Oct 15, 2026
2ea4cdb
reimplement: SHC_3BB0A8C1_0x00498FD0 17.25% statement order
gynt Oct 15, 2026
6b4e1e2
reimplement: SHC_3BB0A8C1_0x004A3B20 43.69% statement order
gynt Oct 15, 2026
1fd0ffa
reimplement: SHC_3BB0A8C1_0x004A7F50 57.14% statement order
gynt Oct 15, 2026
3962c1c
reimplement: SHC_3BB0A8C1_0x00497740 50.49% statement order
gynt Oct 15, 2026
9ed40ab
reimplement: SHC_3BB0A8C1_0x00497B80 52.65% statement order
gynt Oct 15, 2026
d3321d8
reimplement: SHC_3BB0A8C1_0x004A79A0 63.76% statement order
gynt Oct 15, 2026
c291013
reimplement: SHC_3BB0A8C1_0x0049AF50 22.15% statement order
gynt Oct 15, 2026
f1188c4
reimplement: SHC_3BB0A8C1_0x0049DDC0 35.62% statement order
gynt Oct 15, 2026
27bd1ff
reimplement: SHC_3BB0A8C1_0x004A5320 49.15% statement order
gynt Oct 15, 2026
d34de90
reimplement: SHC_3BB0A8C1_0x0049C370 70.59% statement order
gynt Oct 15, 2026
4136fe7
reimplement: SHC_3BB0A8C1_0x00498020 60.14% statement order
gynt Oct 15, 2026
79f78c3
reimplement: SHC_3BB0A8C1_0x004A8AB0 74.10% statement order
gynt Oct 15, 2026
78cee4d
reimplement: SHC_3BB0A8C1_0x004A1230 60.76% statement order
gynt Oct 15, 2026
973ed08
reimplement: SHC_3BB0A8C1_0x004A3220 73.80% statement order
gynt Oct 15, 2026
6831064
reimplement: SHC_3BB0A8C1_0x004974D0 32.13% statement order
gynt Oct 15, 2026
78923d4
reimplement: SHC_3BB0A8C1_0x004A83B0 71.57% statement order
gynt Oct 15, 2026
5b71890
reimplement: SHC_3BB0A8C1_0x004A97D0 21.59% statement order
gynt Oct 15, 2026
d819de1
reimplement: SHC_3BB0A8C1_0x0049A370 12.46% statement order
gynt Oct 15, 2026
a484b1f
reimplement: SHC_3BB0A8C1_0x0049B5B0 72.34% statement order
gynt Oct 16, 2026
03544ae
reimplement: SHC_3BB0A8C1_0x00498A40 82.17% statement order
gynt Oct 16, 2026
942156a
reimplement: SHC_3BB0A8C1_0x004A6DF0 83.85% statement order
gynt Oct 16, 2026
b9bdf0a
reimplement: SHC_3BB0A8C1_0x0049DB30 83.27% statement order
gynt Oct 16, 2026
c709d7d
reimplement: SHC_3BB0A8C1_0x0049CB00 51.88% statement order
gynt Oct 16, 2026
ecb5032
reimplement: SHC_3BB0A8C1_0x0049C690 77.06% statement order
gynt Oct 16, 2026
8d573a1
reimplement: SHC_3BB0A8C1_0x004A5DA0 84.94% statement order
gynt Oct 16, 2026
d8a1c42
reimplement: SHC_3BB0A8C1_0x004A01D0 56.74% statement order
gynt Oct 16, 2026
2266757
reimplement: SHC_3BB0A8C1_0x0049D880 80.52% statement order
gynt Oct 16, 2026
ee21578
reimplement: SHC_3BB0A8C1_0x004A6AB0 62.33% statement order
gynt Oct 16, 2026
d014203
reimplement: SHC_3BB0A8C1_0x004A0B20 66.52% statement order
gynt Oct 16, 2026
278b888
reimplement: SHC_3BB0A8C1_0x0049D0E0 54.39% statement order
gynt Oct 16, 2026
206f3cf
reimplement: SHC_3BB0A8C1_0x0049BBF0 52.17% statement order
gynt Oct 16, 2026
a4e42ce
reimplement: SHC_3BB0A8C1_0x004A0460 71.43% statement order
gynt Oct 16, 2026
98eccd7
reimplement: SHC_3BB0A8C1_0x004A06B0 61.88% statement order
gynt Oct 16, 2026
bf918f7
reimplement: SHC_3BB0A8C1_0x004A1D30 68.09% statement order
gynt Oct 16, 2026
307b9bf
reimplement: SHC_3BB0A8C1_0x004A08E0 86.21% statement order
gynt Oct 16, 2026
85e3911
reimplement: SHC_3BB0A8C1_0x004A36B0 82.48% statement order
gynt Oct 16, 2026
871d9c8
reimplement: SHC_3BB0A8C1_0x004A2DD0 77.20% statement order
gynt Oct 16, 2026
9d58886
reimplement: SHC_3BB0A8C1_0x004A9200 57.33% statement order
gynt Oct 16, 2026
289344f
reimplement: SHC_3BB0A8C1_0x004A2650 65.29% statement order
gynt Oct 16, 2026
f659823
reimplement: SHC_3BB0A8C1_0x0049B1D0 87.30% statement order
gynt Oct 16, 2026
841343a
reimplement: SHC_3BB0A8C1_0x0049FC00 62.46% statement order
gynt Oct 16, 2026
4ea8f65
reimplement: SHC_3BB0A8C1_0x004A4140 85.49% statement order
gynt Oct 16, 2026
6e028e4
reimplement: SHC_3BB0A8C1_0x0049FF20 66.67% statement order
gynt Oct 16, 2026
2a073e4
reimplement: SHC_3BB0A8C1_0x004A21B0 84.82% statement order
gynt Oct 16, 2026
8fea4ac
reimplement: SHC_3BB0A8C1_0x004A4BB0 65.35% statement order
gynt Oct 16, 2026
861e986
reimplement: SHC_3BB0A8C1_0x004A65E0 73.44% statement order
gynt Oct 16, 2026
a55dc8f
reimplement: SHC_3BB0A8C1_0x004A66D0 93.85% statement order
gynt Oct 16, 2026
23c1e8c
reimplement: SHC_3BB0A8C1_0x004A2A90 65.21% statement order
gynt Oct 16, 2026
130ccb9
reimplement: SHC_3BB0A8C1_0x0049E9E0 69.95% statement order
gynt Oct 16, 2026
b452f84
reimplement: SHC_3BB0A8C1_0x00499DC0 46.09% statement order
gynt Oct 16, 2026
17ec76c
reimplement: SHC_3BB0A8C1_0x0049A1C0 54.05% statement order
gynt Oct 16, 2026
a84a8da
reimplement: SHC_3BB0A8C1_0x0049AAD0 87.09% statement order
gynt Oct 16, 2026
6004ae2
reimplement: SHC_3BB0A8C1_0x004A7F50 57.56% compare operand order
gynt Oct 16, 2026
387c4e6
reimplement: SHC_3BB0A8C1_0x004A66D0 96.92% compare operand order
gynt Oct 16, 2026
c4d5dbe
reimplement: SHC_3BB0A8C1_0x004A5DA0 86.49% compare operand order
gynt Oct 16, 2026
fb1546c
reimplement: SHC_3BB0A8C1_0x004A6010 40.75% compare operand order
gynt Oct 16, 2026
1bde10a
reimplement: SHC_3BB0A8C1_0x00498020 61.26% fix height window bug
gynt Oct 16, 2026
13b1754
reimplement: SHC_3BB0A8C1_0x00498A40 82.17% fix off-by-one maxTries
gynt Oct 16, 2026
3c0bb15
reimplement: SHC_3BB0A8C1_0x0049F7D0 31.06% widen local to int
gynt Oct 16, 2026
8ccab87
reimplement: SHC_3BB0A8C1_0x004A6AB0 62.33% match bound literal
gynt Oct 16, 2026
26e3926
reimplement: SHC_3BB0A8C1_0x00498400 49.76% uniform unrolled bodies w…
gynt Oct 16, 2026
3879332
reimplement: SHC_3BB0A8C1_0x00499DC0 67.13% signed modulo and signed …
gynt Oct 16, 2026
fdb4d79
reimplement: SHC_3BB0A8C1_0x00496EC0 66.04% hoist signed start-tile r…
gynt Oct 16, 2026
e9bd661
reimplement: SHC_3BB0A8C1_0x00497180 78.26% hoist signed start-tile r…
gynt Oct 16, 2026
c58b212
reimplement: SHC_3BB0A8C1_0x00497080 78.08% hoist signed start-tile read
gynt Oct 16, 2026
66205d7
reimplement: SHC_3BB0A8C1_0x004A3B20 44.41% per-arm SFX call and heal…
gynt Oct 16, 2026
e29edbd
reimplement: SHC_3BB0A8C1_0x004A6AB0 62.87% signed area read
gynt Oct 16, 2026
449c233
reimplement: SHC_3BB0A8C1_0x0049F540 86.55% Style pass, asm differs
gynt Oct 16, 2026
d2844f7
reimplement: SHC_3BB0A8C1_0x0049EDF0 67.21% Style pass, asm differs
gynt Oct 16, 2026
f1007e9
reimplement: SHC_3BB0A8C1_0x004A3220 76.55% Style pass, asm differs
gynt Oct 16, 2026
a33ce51
reimplement: SHC_3BB0A8C1_0x0049F7D0 31.92% Style pass, asm differs
gynt Oct 16, 2026
4dd4e1e
reimplement: SHC_3BB0A8C1_0x0049F040 86.55% Style pass, asm differs
gynt Oct 16, 2026
5bf9b14
reimplement: SHC_3BB0A8C1_0x0049D0E0 55.69% Style pass, asm differs
gynt Oct 16, 2026
cd112f8
reimplement: SHC_3BB0A8C1_0x0049C370 76.36% Style pass, asm differs
gynt Oct 16, 2026
c37d98b
reimplement: SHC_3BB0A8C1_0x0049CE40 59.50% Style pass, asm differs
gynt Oct 16, 2026
22618a7
reimplement: SHC_3BB0A8C1_0x0049F2D0 86.04% Style pass, asm differs
gynt Oct 16, 2026
86d41d3
reimplement: SHC_3BB0A8C1_0x004A9200 58.75% Style pass, asm differs
gynt Oct 16, 2026
dc7cfe5
reimplement: SHC_3BB0A8C1_0x0049C020 72.50% Style pass, asm differs
gynt Oct 16, 2026
b789c0d
reimplement: SHC_3BB0A8C1_0x0049DDC0 35.62% bound literals from asm, …
gynt Oct 16, 2026
ef5e059
reimplement: SHC_3BB0A8C1_0x0049FC00 62.46% signed compare fixed, all…
gynt Oct 16, 2026
fbb6f49
reimplement: SHC_3BB0A8C1_0x004A2A90 65.21% counted for loop, allocat…
gynt Oct 16, 2026
69536dd
reimplement: SHC_3BB0A8C1_0x0049F7D0 32.32% yQueue stored before tile…
gynt Oct 16, 2026
105e464
reimplement: SHC_3BB0A8C1_0x004A9B20 60.04% duplicated the shared fal…
gynt Oct 16, 2026
4d68ea5
reimplement: SHC_3BB0A8C1_0x004A5320 67.90% 21 gotos to the shared re…
gynt Oct 16, 2026
7351c6b
reimplement: SHC_3BB0A8C1_0x004A6010 41.25% small shared tail duplicated
gynt Oct 16, 2026
da6ee79
reimplement: SHC_3BB0A8C1_0x004A58A0 37.92% shared blocks duplicated,…
gynt Oct 16, 2026
e50fbe9
reimplement: SHC_3BB0A8C1_0x0049C690 77.06% four gotos as combined co…
gynt Oct 16, 2026
e484069
reimplement: SHC_3BB0A8C1_0x004A9510 73.02% ladder sizes as one condi…
gynt Oct 16, 2026
53c059a
reimplement: SHC_3BB0A8C1_0x00498020 61.43% counted direction loop, c…
gynt Oct 16, 2026
a7555eb
reimplement: SHC_3BB0A8C1_0x004A97D0 21.59% counted direction loop; f…
gynt Oct 16, 2026
2430f48
reimplement: SHC_3BB0A8C1_0x0049B5B0 72.95% unsigned building layer read
gynt Oct 16, 2026
8548848
reimplement: SHC_3BB0A8C1_0x004A8860 48.10% compare order from asm
gynt Oct 16, 2026
82df618
reimplement: SHC_3BB0A8C1_0x004A7F50 57.56% bound literal from asm
gynt Oct 16, 2026
29769d2
reimplement: SHC_3BB0A8C1_0x0049D0E0 57.14% signed unit layer local
gynt Oct 16, 2026
2c0e28a
reimplement: SHC_3BB0A8C1_0x00496F90 56.45% distance local hoisted
gynt Oct 16, 2026
37c8b1d
reimplement: SHC_3BB0A8C1_0x0049D340 67.29% signed unit layer local
gynt Oct 16, 2026
1254c44
reimplement: SHC_3BB0A8C1_0x004A79A0 64.06% compare order from asm
gynt Oct 16, 2026
0c4b1d7
reimplement: SHC_3BB0A8C1_0x004A75B0 47.39% bound literal from asm
gynt Oct 16, 2026
7aad422
reimplement: SHC_3BB0A8C1_0x004A3220 77.16% signed start row local
gynt Oct 16, 2026
7e1fa14
reimplement: SHC_3BB0A8C1_0x004A36B0 82.74% signed queue reads
gynt Oct 16, 2026
36920f3
reimplement: SHC_3BB0A8C1_0x004A2DD0 77.83% signed start row local
gynt Oct 16, 2026
1e1c1df
reimplement: SHC_3BB0A8C1_0x00498FD0 19.87% tail-merged if chain
gynt Oct 16, 2026
5f45e4f
reimplement: SHC_3BB0A8C1_0x00497280 52.24% 16-bit height arithmetic
gynt Oct 16, 2026
b4eae02
reimplement: SHC_3BB0A8C1_0x004A15B0 91.16% hoisted squared distance
gynt Oct 16, 2026
e7f0f1f
reimplement: SHC_3BB0A8C1_0x004A97D0 31.19% start-tile masks hoisted
gynt Oct 16, 2026
acf53db
reimplement: SHC_3BB0A8C1_0x004995E0 63.84% flood-fill loop in asm
gynt Oct 16, 2026
73ff3b5
reimplement: SHC_3BB0A8C1_0x004A3B20 46.62% signed rng modulo idioms
gynt Oct 16, 2026
34d5e7d
reimplement: SHC_3BB0A8C1_0x004A7F50 59.63% clamp arms from asm
gynt Oct 16, 2026
03aca78
reimplement: SHC_3BB0A8C1_0x004A75B0 49.25% clamp arms from asm
gynt Oct 16, 2026
a79c9a4
reimplement: SHC_3BB0A8C1_0x004A1D30 70.06% signed building type read
gynt Oct 16, 2026
e6d319c
reimplement: SHC_3BB0A8C1_0x004A5320 68.75% plain while loop
gynt Oct 16, 2026
e3a4369
reimplement: SHC_3BB0A8C1_0x00498FD0 19.87% flag init out of condition
gynt Oct 16, 2026
c7f1f4a
reimplement: SHC_3BB0A8C1_0x004A5320 68.75% redundant parens removed
gynt Oct 16, 2026
7ccdbc0
reimplement: SHC_3BB0A8C1_0x00498FD0 19.87% redundant parens removed
gynt Oct 16, 2026
0385f1d
reimplement: SHC_3BB0A8C1_0x0049FC00 62.46% redundant parens removed
gynt Oct 16, 2026
19084a8
reimplement: SHC_3BB0A8C1_0x004A4140 85.49% redundant parens removed
gynt Oct 16, 2026
c0a6697
reimplement: SHC_3BB0A8C1_0x0049A1C0 62.16% tile locals per row
gynt Oct 16, 2026
85c53b5
reimplement: SHC_3BB0A8C1_0x00497280 55.76% param_5 block out of line
gynt Oct 16, 2026
1bb34a5
reimplement: SHC_3BB0A8C1_0x004A19B0 62.32% byte linkage local
gynt Oct 16, 2026
ea7e6a7
reimplement: SHC_3BB0A8C1_0x0049D880 80.70% Style pass, asm differs
gynt Oct 16, 2026
8bb511e
reimplement: SHC_3BB0A8C1_0x00499FA0 37.45% Style pass, asm differs
gynt Oct 16, 2026
95e94be
reimplement: SHC_3BB0A8C1_0x004995E0 66.67% counter guard split out
gynt Oct 16, 2026
4748663
reimplement: SHC_3BB0A8C1_0x0049F7D0 32.32% comma expr expanded, tie
gynt Oct 16, 2026
5762bc1
reimplement: SHC_3BB0A8C1_0x004A9200 58.75% comma expr expanded, tie
gynt Oct 16, 2026
eecb8d2
reimplement: SHC_3BB0A8C1_0x004999C0 51.05% comma expr expanded, tie
gynt Oct 16, 2026
4a7e834
reimplement: SHC_3BB0A8C1_0x004A2650 65.74% building id in an int local
gynt Oct 16, 2026
37f99d9
reimplement: SHC_3BB0A8C1_0x0049A6D0 72.45% unsigned area read, match…
gynt Oct 16, 2026
b58170f
reimplement: SHC_3BB0A8C1_0x0049C020 74.33% building id in an int local
gynt Oct 16, 2026
f4d9ae0
reimplement: SHC_3BB0A8C1_0x0049FF20 72.35% entity id in an int local
gynt Oct 16, 2026
1506da4
reimplement: SHC_3BB0A8C1_0x004A97D0 31.84% building id in an int local
gynt Oct 16, 2026
723e23b
reimplement: SHC_3BB0A8C1_0x004A3B20 46.62% redundant short cast remo…
gynt Oct 17, 2026
7a476f3
reimplement: SHC_3BB0A8C1_0x004A8860 49.52% redundant short casts rem…
gynt Oct 17, 2026
7cc2d81
reimplement: SHC_3BB0A8C1_0x004A6AB0 65.94% redundant short casts rem…
gynt Oct 17, 2026
d2d7ad5
reimplement: SHC_3BB0A8C1_0x00497180 97.10% int locals for the 16-bit…
gynt Oct 17, 2026
e08159b
reimplement: SHC_3BB0A8C1_0x004A8AB0 78.29% redundant short casts rem…
gynt Oct 17, 2026
d395506
reimplement: SHC_3BB0A8C1_0x004A6AB0 65.94% narrowing cast removed, tie
gynt Oct 17, 2026
cddca9b
reimplement: SHC_3BB0A8C1_0x004A7F50 59.63% narrowing casts removed, tie
gynt Oct 17, 2026
d4599ec
reimplement: SHC_3BB0A8C1_0x004A8AB0 80.09% narrowing index casts rem…
gynt Oct 17, 2026
1a55a13
reimplement: SHC_3BB0A8C1_0x004A83B0 71.57% narrowing casts removed, tie
gynt Oct 17, 2026
c76b29f
reimplement: SHC_3BB0A8C1_0x004A2A90 65.21% narrowing cast removed, tie
gynt Oct 17, 2026
d669c3d
reimplement: SHC_3BB0A8C1_0x00496F90 56.45% row local for the y read,…
gynt Oct 17, 2026
c992be6
reimplement: SHC_3BB0A8C1_0x00498FD0 19.87% flag init moved to the loop
gynt Oct 17, 2026
eb2a2da
reimplement: SHC_3BB0A8C1_0x004A6DF0 85.43% start
gynt Oct 17, 2026
c310492
reimplement: SHC_3BB0A8C1_0x004A3B20 47.82% start
gynt Oct 17, 2026
ad9ead4
reimplement: SHC_3BB0A8C1_0x0049EDF0 78.69% start
gynt Oct 17, 2026
119df95
reimplement: SHC_3BB0A8C1_0x004A6010 49.40% start
gynt Oct 17, 2026
07524b3
reimplement: SHC_3BB0A8C1_0x004A01D0 58.16% start
gynt Oct 17, 2026
d8e410b
reimplement: SHC_3BB0A8C1_0x004A7F50 66.95% start
gynt Oct 17, 2026
0867f5f
reimplement: SHC_3BB0A8C1_0x0049B940 85.81% start
gynt Oct 17, 2026
5e49db5
reimplement: SHC_3BB0A8C1_0x0049CE40 62.24% start
gynt Oct 17, 2026
443f5d0
reimplement: SHC_3BB0A8C1_0x004A1D30 70.49% start
gynt Oct 17, 2026
79e6100
reimplement: SHC_3BB0A8C1_0x0049D340 73.23% start
gynt Oct 17, 2026
37cb8d7
reimplement: SHC_3BB0A8C1_0x004A9200 74.16% start
gynt Oct 17, 2026
d89e0f4
reimplement: SHC_3BB0A8C1_0x004A83B0 71.84% start
gynt Oct 17, 2026
b2c4ae5
reimplement: SHC_3BB0A8C1_0x004A0E50 99.20% start
gynt Oct 17, 2026
697b213
reimplement: SHC_3BB0A8C1_0x0049C020 75.36% start
gynt Oct 17, 2026
3c65782
reimplement: SHC_3BB0A8C1_0x0049D640 78.48% start
gynt Oct 17, 2026
c751277
reimplement: SHC_3BB0A8C1_0x004A4470 51.09% start mark from queue field
gynt Oct 17, 2026
32f71cb
reimplement: SHC_3BB0A8C1_0x0049B940 86.51% bound literal from the asm
gynt Oct 17, 2026
6647ffe
reimplement: SHC_3BB0A8C1_0x004A1D30 70.49% walk store via queue field
gynt Oct 17, 2026
87578e6
reimplement: SHC_3BB0A8C1_0x004A79A0 64.96% clamp arms reordered
gynt Oct 17, 2026
29cb9ab
reimplement: SHC_3BB0A8C1_0x004A83B0 74.27% clamp arms reordered
gynt Oct 17, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 20 additions & 2 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -151,8 +151,19 @@ restyling anything large:
`__asm` block rather than C++. Functions are never `__declspec(naked)`: write a normal function, keep the
compiler-generated statements as C++, and refer to parameters, locals and `this` by name. Prettify offsets with
MSVC's struct-member asm syntax (`mov esi, dword ptr [eax]TileMapState.ptr_LogicLayer`) - `::` is not parseable in an
asm operand, so a resolver global cannot be named there.
- a frame pointer plus a `this` spill - the original was built without optimisation. Add `#pragma optimize(, off)`
asm operand, so a resolver global cannot be named there. Where the handwritten block reaches a *global* layer rather
than a `this` field, give it a C++ pointer local and name that local in the asm; the original caches the same bases in
stack slots anyway, so the inner loop still matches. `mov eax, 0` followed by `mov ax, word ptr [..]` is the giveaway
in its own right - that is a hand-rolled `movzx`, which the compiler always emits as one instruction.
Such a block is usually a **macro**: the same instruction stream appears verbatim in several functions and never as a
call, so it belongs in a hand-written `*Asm.hpp` beside them (`NeighbourFlagsAsm.hpp`, `LinkageNeighbourAsm.hpp`).
This has been worth ~45 points per function, three times over.
- a frame pointer plus a `this` spill - the original was built without optimisation, **unless the same function also
reports `mov reg, 0`**. MSVC keeps `ebp` in any function containing an `__asm` block, so for a function with
handwritten assembly the frame pointer says nothing about the optimisation level: reimplement the handwritten part as
inline asm and leave the rest at `/O2`. Checking the prologue settles it - values kept in registers across the entry
tests mean `/O2`. Taking the `/Od` reading instead took `findLinkageBasedPathOrWalkRadius` from 5.1% to 2.8%, where
the same body without the pragma reaches 49.2%. When it really is `/Od`, add `#pragma optimize(, off)`
around the function; inline asm alone does not disable optimisation. Then match the reported **frame size** exactly,
which is usually the single biggest win, because every local displacement shifts otherwise. Merge locals that share a
slot and reproduce dead stores. At `/Od` prefer a nested `if` over an early `continue` (the original inverts the test
Expand Down Expand Up @@ -234,6 +245,13 @@ of the switch leaving the value it should have set uninitialised. Fixing them wa
suspicious dead store is worth decompiling for rather than deleting. Note this is the opposite of the duplicate-tail
pattern below, where our shared block should have been two separate branches - check the predecessor count either way.

Duplicating a `LAB_*` is correct C++ but not automatically a better match, so **measure every `goto` removal**. A
`goto` in the decompiler output usually marks a block the original compiler emitted once and jumped to, and writing
the block out twice makes MSVC emit it twice: duplicating the single shared tail in
`setClimbBasedOnClosestClimbData` - two `if` arms that set a coordinate pair and then share the distance test - was
semantically identical and cost **35 points**. Keep the `goto` where the measurement says the original shared the
block, and record that in the commit remark rather than trading match for style.

Diff patterns that were reliable (more in the cheat sheet):

- Absolute `DAT_*` addresses in the original asm where the source uses `this->` mean the original accessed the global instance.
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
#include "../PathFindingState.func.hpp"

#include "OpenSHC/Map/Navigation/PathFindingState.func.hpp"

namespace OpenSHC {
namespace Map {
namespace Navigation {

/*
decompilerscript: committed: 2025-01-30 21:57:43.216000
*/
// FUNCTION: STRONGHOLDCRUSADER 0x004A9760
PathFindingState* PathFindingState::Constructor_PathFindingState()
{
this->field40_0x70 = 0;
this->field41_0x74 = 0;
this->DAT_lWys = 0;
this->notAllAssassinsUnk = 0;
this->DAT_Easy = 0;
this->DAT_Hard = 0;
this->DAT_Test_likely = 0;
this->DAT_Test_gatehouse = 0;
this->searchNonmatchCount = 0;
this->searchMatchCounter = 0;
this->DAT_Ass = 0;
this->calculations = 0;
this->DAT_Mini_spreads = 0;
MACRO_CALL_MEMBER(OpenSHC::Map::Navigation::PathFindingState_Func::clearPathFindingTileMaps, this)();
MACRO_CALL_MEMBER(OpenSHC::Map::Navigation::PathFindingState_Func::clearAllClimbData, this)();
this->searchGeneration = 1;
return this;
}

}
}
}
Loading