phase-36: S104 s104_e24 — func_80180E24 banked at 0 through the whole-object gate + propagated — barrier → 0: the store pair in each arm (cross-jump after sched2)

This commit is contained in:
Drew T
2026-09-11 03:09:40 -06:00
parent ae86c49625
commit f823839e4f
3 changed files with 192 additions and 196 deletions
+4 -9
View File
@@ -5060,19 +5060,14 @@ void func_80180E24(void *a0)
if (t < 4) {
v0 = (t * 5) << 9; /* 0xA00 per frame ramp */
p = *(s32 **)((u8 *)s1 + 0x20);
*(u16 *)((u8 *)p + 0x1A) = v0;
*(u16 *)((u8 *)p + 0x18) = v0;
} else {
p = *(s32 **)((u8 *)s1 + 0x20);
v0 = 0x2800;
*(u16 *)((u8 *)p + 0x1A) = 0x2800;
*(u16 *)((u8 *)p + 0x18) = 0x2800;
}
*(u16 *)((u8 *)p + 0x1A) = v0;
*(u16 *)((u8 *)p + 0x18) = v0;
__asm__ __volatile__(""); /* §194-A / law 28: emit the sh // !FAKE: barrier — NEEDED COMPILE-ERROR (P36 rung B tus10)
* pair FIRST in its block so the
* next call's arg setup cannot
* float above it (required --
* removing it costs 6 ins) */
func_8012F214((s32)s2, (s32)&D_801890D0, (s32)out);
*(u16 *)((u8 *)s1 + 0x6) = out[0];
*(u16 *)((u8 *)s1 + 0xA) = out[1];