phase-36: S104 s104_d6 — func_8017B614 banked at 0 through the whole-object gate + propagated — 3 levers→0: the banked ov_SC01_000 variant ported (one-scope src, struct-member tail reads, D_8012694C[0] store)

This commit is contained in:
Drew T
2026-09-10 21:22:44 -06:00
parent 8030518bcc
commit d5111014d1
34 changed files with 1612 additions and 475 deletions
+21 -34
View File
@@ -5283,7 +5283,6 @@ extern void func_8012A018(s32 a, s32 b);
s32 func_8017B614(s32 param_1, s32 param_2)
{
extern s32 D_80126990;
extern s32 D_80126994;
extern s16 D_8018534C;
@@ -5298,52 +5297,40 @@ s32 func_8017B614(s32 param_1, s32 param_2)
extern s16 D_801853BC;
extern s16 D_801853BE;
extern s16 D_801853C0;
extern u8 D_8012694C;
extern u8 D_8012694C[];
extern s32 D_80126998;
extern s32 D_80126984;
extern s32 D_80126988;
extern s32 D_8012698C;
u8 buf[16];
u8 *src;
if (((u32)param_2) >= 0xB) {
register u8 *src __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus9)
__asm__ __volatile__("" : "=r"(src) : "0"((u8 *)((u32)param_2))); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus9)
src = (u8 *)((u32)param_2);
*(Blk8_8017B614 *)&buf[0] = *(Blk8_8017B614 *)src;
*(Blk8_8017B614 *)&buf[8] = *(Blk8_8017B614 *)(src + 8);
} else {
s32 a1addr = (s32)&D_80181CC0[((u32)param_2) * 0x10];
s32 a2addr = (s32)&D_80181CC0[((u32)param_2) * 0x10 + 8];
func_8012F214(param_1, a1addr, (s32)&buf[0]);
s32 a2addr;
src = &D_80181CC0[((u32)param_2) * 0x10];
a2addr = (s32)&D_80181CC0[((u32)param_2) * 0x10 + 8];
func_8012F214(param_1, (s32)src, (s32)&buf[0]);
func_8012F214(param_1, a2addr, (s32)&buf[8]);
}
{
s16 *p794 = &D_801853C4;
s16 *p78C = &D_801853BC;
*(Blk8_8017B614 *)p794 = *(Blk8_8017B614 *)&buf[0];
*(Blk8_8017B614 *)p78C = *(Blk8_8017B614 *)&buf[8];
func_8012A018((s32)func_8017BE60, 0);
{
s32 v794, v796, v798, v78C, v78E, v790;
D_8012694C = 0;
v794 = *p794;
v796 = D_801853C6;
v798 = D_801853C8;
v78C = *p78C;
v78E = D_801853BE;
v790 = D_801853C0;
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus9)
D_80185C08 = 1;
D_8018534C = 0x1E;
D_80126990 = v794;
D_80126994 = v796;
D_80126998 = v798;
D_80126984 = v78C;
D_80126988 = v78E;
D_8012698C = v790;
}
func_80129CF8();
}
*(Blk8_8017B614 *)&D_801853C4 = *(Blk8_8017B614 *)&buf[0];
*(Blk8_8017B614 *)&D_801853BC = *(Blk8_8017B614 *)&buf[8];
func_8012A018((s32)func_8017BE60, 0);
D_8012694C[0] = 0;
D_80185C08 = 1;
D_8018534C = 0x1E;
D_80126990 = ((SV4_8017B368 *)&D_801853C4)->a;
D_80126994 = D_801853C6;
D_80126998 = D_801853C8;
D_80126984 = ((SV4_8017B368 *)&D_801853BC)->a;
D_80126988 = D_801853BE;
D_8012698C = D_801853C0;
func_80129CF8();
}
+25 -33
View File
@@ -3044,6 +3044,10 @@ s32 func_8017B490(s32 param)
s32 func_8017B614(s32 param_1, s32 param_2)
{
extern s32 D_80126990;
extern s32 D_80126994;
extern s16 D_801DA71C;
extern s16 D_801DAAB8;
extern void func_8012F214(s32 a0, s32 a1, s32 a2);
extern void func_80129CF8(void);
extern s32 func_8017BE60(void *a0);
@@ -3054,52 +3058,40 @@ s32 func_8017B614(s32 param_1, s32 param_2)
extern s16 D_801DA78C;
extern s16 D_801DA78E;
extern s16 D_801DA790;
extern u8 D_8012694C;
extern u8 D_8012694C[];
extern s32 D_80126998;
extern s32 D_80126984;
extern s32 D_80126988;
extern s32 D_8012698C;
u8 buf[16];
u8 *src;
if (((u32)param_2) >= 0xB) {
register u8 *src __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus7)
__asm__ __volatile__("" : "=r"(src) : "0"((u8 *)((u32)param_2))); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus7)
src = (u8 *)((u32)param_2);
*(Blk8_8017B614 *)&buf[0] = *(Blk8_8017B614 *)src;
*(Blk8_8017B614 *)&buf[8] = *(Blk8_8017B614 *)(src + 8);
} else {
s32 a1addr = (s32)&D_8018A45C[((u32)param_2) * 0x10];
s32 a2addr = (s32)&D_8018A45C[((u32)param_2) * 0x10 + 8];
func_8012F214(param_1, a1addr, (s32)&buf[0]);
s32 a2addr;
src = &D_8018A45C[((u32)param_2) * 0x10];
a2addr = (s32)&D_8018A45C[((u32)param_2) * 0x10 + 8];
func_8012F214(param_1, (s32)src, (s32)&buf[0]);
func_8012F214(param_1, a2addr, (s32)&buf[8]);
}
{
s16 *p794 = &D_801DA794;
s16 *p78C = &D_801DA78C;
*(Blk8_8017B614 *)p794 = *(Blk8_8017B614 *)&buf[0];
*(Blk8_8017B614 *)p78C = *(Blk8_8017B614 *)&buf[8];
func_8012A018((s32)func_8017BE60, 0);
{
s32 v794, v796, v798, v78C, v78E, v790;
D_8012694C = 0;
v794 = *p794;
v796 = D_801DA796;
v798 = D_801DA798;
v78C = *p78C;
v78E = D_801DA78E;
v790 = D_801DA790;
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus7)
D_801DAAB8 = 1;
D_801DA71C = 0x1E;
D_80126990 = v794;
D_80126994 = v796;
D_80126998 = v798;
D_80126984 = v78C;
D_80126988 = v78E;
D_8012698C = v790;
}
func_80129CF8();
}
*(Blk8_8017B614 *)&D_801DA794 = *(Blk8_8017B614 *)&buf[0];
*(Blk8_8017B614 *)&D_801DA78C = *(Blk8_8017B614 *)&buf[8];
func_8012A018((s32)func_8017BE60, 0);
D_8012694C[0] = 0;
D_801DAAB8 = 1;
D_801DA71C = 0x1E;
D_80126990 = ((SV4_8017B368 *)&D_801DA794)->a;
D_80126994 = D_801DA796;
D_80126998 = D_801DA798;
D_80126984 = ((SV4_8017B368 *)&D_801DA78C)->a;
D_80126988 = D_801DA78E;
D_8012698C = D_801DA790;
func_80129CF8();
}
+21 -34
View File
@@ -3980,7 +3980,6 @@ extern void func_8012A018(s32 a, s32 b);
s32 func_8017B614(s32 param_1, s32 param_2)
{
extern s32 D_80126990;
extern s32 D_80126994;
extern s16 D_801C9644;
@@ -3995,52 +3994,40 @@ s32 func_8017B614(s32 param_1, s32 param_2)
extern s16 D_801C96B4;
extern s16 D_801C96B6;
extern s16 D_801C96B8;
extern u8 D_8012694C;
extern u8 D_8012694C[];
extern s32 D_80126998;
extern s32 D_80126984;
extern s32 D_80126988;
extern s32 D_8012698C;
u8 buf[16];
u8 *src;
if (((u32)param_2) >= 0xB) {
register u8 *src __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus9)
__asm__ __volatile__("" : "=r"(src) : "0"((u8 *)((u32)param_2))); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus9)
src = (u8 *)((u32)param_2);
*(Blk8_8017B614 *)&buf[0] = *(Blk8_8017B614 *)src;
*(Blk8_8017B614 *)&buf[8] = *(Blk8_8017B614 *)(src + 8);
} else {
s32 a1addr = (s32)&D_8018754C[((u32)param_2) * 0x10];
s32 a2addr = (s32)&D_8018754C[((u32)param_2) * 0x10 + 8];
func_8012F214(param_1, a1addr, (s32)&buf[0]);
s32 a2addr;
src = &D_8018754C[((u32)param_2) * 0x10];
a2addr = (s32)&D_8018754C[((u32)param_2) * 0x10 + 8];
func_8012F214(param_1, (s32)src, (s32)&buf[0]);
func_8012F214(param_1, a2addr, (s32)&buf[8]);
}
{
s16 *p794 = &D_801C96BC;
s16 *p78C = &D_801C96B4;
*(Blk8_8017B614 *)p794 = *(Blk8_8017B614 *)&buf[0];
*(Blk8_8017B614 *)p78C = *(Blk8_8017B614 *)&buf[8];
func_8012A018((s32)func_8017BE60, 0);
{
s32 v794, v796, v798, v78C, v78E, v790;
D_8012694C = 0;
v794 = *p794;
v796 = D_801C96BE;
v798 = D_801C96C0;
v78C = *p78C;
v78E = D_801C96B6;
v790 = D_801C96B8;
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus9)
D_801C9A70 = 1;
D_801C9644 = 0x1E;
D_80126990 = v794;
D_80126994 = v796;
D_80126998 = v798;
D_80126984 = v78C;
D_80126988 = v78E;
D_8012698C = v790;
}
func_80129CF8();
}
*(Blk8_8017B614 *)&D_801C96BC = *(Blk8_8017B614 *)&buf[0];
*(Blk8_8017B614 *)&D_801C96B4 = *(Blk8_8017B614 *)&buf[8];
func_8012A018((s32)func_8017BE60, 0);
D_8012694C[0] = 0;
D_801C9A70 = 1;
D_801C9644 = 0x1E;
D_80126990 = ((SV4_8017B368 *)&D_801C96BC)->a;
D_80126994 = D_801C96BE;
D_80126998 = D_801C96C0;
D_80126984 = ((SV4_8017B368 *)&D_801C96B4)->a;
D_80126988 = D_801C96B6;
D_8012698C = D_801C96B8;
func_80129CF8();
}
+21 -34
View File
@@ -5284,7 +5284,6 @@ extern void func_8012A018(s32 a, s32 b);
s32 func_8017B614(s32 param_1, s32 param_2)
{
extern s32 D_80126990;
extern s32 D_80126994;
extern s16 D_8019B9A4;
@@ -5299,52 +5298,40 @@ s32 func_8017B614(s32 param_1, s32 param_2)
extern s16 D_8019BA14;
extern s16 D_8019BA16;
extern s16 D_8019BA18;
extern u8 D_8012694C;
extern u8 D_8012694C[];
extern s32 D_80126998;
extern s32 D_80126984;
extern s32 D_80126988;
extern s32 D_8012698C;
u8 buf[16];
u8 *src;
if (((u32)param_2) >= 0xB) {
register u8 *src __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus9)
__asm__ __volatile__("" : "=r"(src) : "0"((u8 *)((u32)param_2))); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus9)
src = (u8 *)((u32)param_2);
*(Blk8_8017B614 *)&buf[0] = *(Blk8_8017B614 *)src;
*(Blk8_8017B614 *)&buf[8] = *(Blk8_8017B614 *)(src + 8);
} else {
s32 a1addr = (s32)&D_80185DE8[((u32)param_2) * 0x10];
s32 a2addr = (s32)&D_80185DE8[((u32)param_2) * 0x10 + 8];
func_8012F214(param_1, a1addr, (s32)&buf[0]);
s32 a2addr;
src = &D_80185DE8[((u32)param_2) * 0x10];
a2addr = (s32)&D_80185DE8[((u32)param_2) * 0x10 + 8];
func_8012F214(param_1, (s32)src, (s32)&buf[0]);
func_8012F214(param_1, a2addr, (s32)&buf[8]);
}
{
s16 *p794 = &D_8019BA1C;
s16 *p78C = &D_8019BA14;
*(Blk8_8017B614 *)p794 = *(Blk8_8017B614 *)&buf[0];
*(Blk8_8017B614 *)p78C = *(Blk8_8017B614 *)&buf[8];
func_8012A018((s32)func_8017BE60, 0);
{
s32 v794, v796, v798, v78C, v78E, v790;
D_8012694C = 0;
v794 = *p794;
v796 = D_8019BA1E;
v798 = D_8019BA20;
v78C = *p78C;
v78E = D_8019BA16;
v790 = D_8019BA18;
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus9)
D_8019BCC8 = 1;
D_8019B9A4 = 0x1E;
D_80126990 = v794;
D_80126994 = v796;
D_80126998 = v798;
D_80126984 = v78C;
D_80126988 = v78E;
D_8012698C = v790;
}
func_80129CF8();
}
*(Blk8_8017B614 *)&D_8019BA1C = *(Blk8_8017B614 *)&buf[0];
*(Blk8_8017B614 *)&D_8019BA14 = *(Blk8_8017B614 *)&buf[8];
func_8012A018((s32)func_8017BE60, 0);
D_8012694C[0] = 0;
D_8019BCC8 = 1;
D_8019B9A4 = 0x1E;
D_80126990 = ((SV4_8017B368 *)&D_8019BA1C)->a;
D_80126994 = D_8019BA1E;
D_80126998 = D_8019BA20;
D_80126984 = ((SV4_8017B368 *)&D_8019BA14)->a;
D_80126988 = D_8019BA16;
D_8012698C = D_8019BA18;
func_80129CF8();
}
+22 -35
View File
@@ -3539,14 +3539,13 @@ extern void func_8012A018(s32 a, s32 b);
s32 func_8017B614(s32 param_1, s32 param_2)
{
extern s32 D_80126990;
extern s32 D_80126994;
extern s16 D_801F5FF4;
extern s16 D_801F62F8;
extern void func_8012F214(s32 a0, s32 a1, s32 a2);
extern void func_80129CF8(void);
extern void func_8017BE60(void*);
extern s32 func_8017BE60(void *a0);
extern u8 D_8018DD4C[];
extern s16 D_801F606C;
extern s16 D_801F606E;
@@ -3554,52 +3553,40 @@ s32 func_8017B614(s32 param_1, s32 param_2)
extern s16 D_801F6064;
extern s16 D_801F6066;
extern s16 D_801F6068;
extern u8 D_8012694C;
extern u8 D_8012694C[];
extern s32 D_80126998;
extern s32 D_80126984;
extern s32 D_80126988;
extern s32 D_8012698C;
u8 buf[16];
u8 *src;
if (((u32)param_2) >= 0xB) {
register u8 *src __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus8)
__asm__ __volatile__("" : "=r"(src) : "0"((u8 *)((u32)param_2))); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus8)
src = (u8 *)((u32)param_2);
*(Blk8_8017B614 *)&buf[0] = *(Blk8_8017B614 *)src;
*(Blk8_8017B614 *)&buf[8] = *(Blk8_8017B614 *)(src + 8);
} else {
s32 a1addr = (s32)&D_8018DD4C[((u32)param_2) * 0x10];
s32 a2addr = (s32)&D_8018DD4C[((u32)param_2) * 0x10 + 8];
func_8012F214(param_1, a1addr, (s32)&buf[0]);
s32 a2addr;
src = &D_8018DD4C[((u32)param_2) * 0x10];
a2addr = (s32)&D_8018DD4C[((u32)param_2) * 0x10 + 8];
func_8012F214(param_1, (s32)src, (s32)&buf[0]);
func_8012F214(param_1, a2addr, (s32)&buf[8]);
}
{
s16 *p794 = &D_801F606C;
s16 *p78C = &D_801F6064;
*(Blk8_8017B614 *)p794 = *(Blk8_8017B614 *)&buf[0];
*(Blk8_8017B614 *)p78C = *(Blk8_8017B614 *)&buf[8];
func_8012A018((s32)func_8017BE60, 0);
{
s32 v794, v796, v798, v78C, v78E, v790;
D_8012694C = 0;
v794 = *p794;
v796 = D_801F606E;
v798 = D_801F6070;
v78C = *p78C;
v78E = D_801F6066;
v790 = D_801F6068;
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus8)
D_801F62F8 = 1;
D_801F5FF4 = 0x1E;
D_80126990 = v794;
D_80126994 = v796;
D_80126998 = v798;
D_80126984 = v78C;
D_80126988 = v78E;
D_8012698C = v790;
}
func_80129CF8();
}
*(Blk8_8017B614 *)&D_801F606C = *(Blk8_8017B614 *)&buf[0];
*(Blk8_8017B614 *)&D_801F6064 = *(Blk8_8017B614 *)&buf[8];
func_8012A018((s32)func_8017BE60, 0);
D_8012694C[0] = 0;
D_801F62F8 = 1;
D_801F5FF4 = 0x1E;
D_80126990 = ((SV4_8017B368 *)&D_801F606C)->a;
D_80126994 = D_801F606E;
D_80126998 = D_801F6070;
D_80126984 = ((SV4_8017B368 *)&D_801F6064)->a;
D_80126988 = D_801F6066;
D_8012698C = D_801F6068;
func_80129CF8();
}
+22 -35
View File
@@ -3539,14 +3539,13 @@ extern void func_8012A018(s32 a, s32 b);
s32 func_8017B614(s32 param_1, s32 param_2)
{
extern s32 D_80126990;
extern s32 D_80126994;
extern s16 D_801C775C;
extern s16 D_801C7AC0;
extern void func_8012F214(s32 a0, s32 a1, s32 a2);
extern void func_80129CF8(void);
extern void func_8017BE60(void*);
extern s32 func_8017BE60(void *a0);
extern u8 D_80186870[];
extern s16 D_801C77D4;
extern s16 D_801C77D6;
@@ -3554,52 +3553,40 @@ s32 func_8017B614(s32 param_1, s32 param_2)
extern s16 D_801C77CC;
extern s16 D_801C77CE;
extern s16 D_801C77D0;
extern u8 D_8012694C;
extern u8 D_8012694C[];
extern s32 D_80126998;
extern s32 D_80126984;
extern s32 D_80126988;
extern s32 D_8012698C;
u8 buf[16];
u8 *src;
if (((u32)param_2) >= 0xB) {
register u8 *src __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus8)
__asm__ __volatile__("" : "=r"(src) : "0"((u8 *)((u32)param_2))); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus8)
src = (u8 *)((u32)param_2);
*(Blk8_8017B614 *)&buf[0] = *(Blk8_8017B614 *)src;
*(Blk8_8017B614 *)&buf[8] = *(Blk8_8017B614 *)(src + 8);
} else {
s32 a1addr = (s32)&D_80186870[((u32)param_2) * 0x10];
s32 a2addr = (s32)&D_80186870[((u32)param_2) * 0x10 + 8];
func_8012F214(param_1, a1addr, (s32)&buf[0]);
s32 a2addr;
src = &D_80186870[((u32)param_2) * 0x10];
a2addr = (s32)&D_80186870[((u32)param_2) * 0x10 + 8];
func_8012F214(param_1, (s32)src, (s32)&buf[0]);
func_8012F214(param_1, a2addr, (s32)&buf[8]);
}
{
s16 *p794 = &D_801C77D4;
s16 *p78C = &D_801C77CC;
*(Blk8_8017B614 *)p794 = *(Blk8_8017B614 *)&buf[0];
*(Blk8_8017B614 *)p78C = *(Blk8_8017B614 *)&buf[8];
func_8012A018((s32)func_8017BE60, 0);
{
s32 v794, v796, v798, v78C, v78E, v790;
D_8012694C = 0;
v794 = *p794;
v796 = D_801C77D6;
v798 = D_801C77D8;
v78C = *p78C;
v78E = D_801C77CE;
v790 = D_801C77D0;
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus8)
D_801C7AC0 = 1;
D_801C775C = 0x1E;
D_80126990 = v794;
D_80126994 = v796;
D_80126998 = v798;
D_80126984 = v78C;
D_80126988 = v78E;
D_8012698C = v790;
}
func_80129CF8();
}
*(Blk8_8017B614 *)&D_801C77D4 = *(Blk8_8017B614 *)&buf[0];
*(Blk8_8017B614 *)&D_801C77CC = *(Blk8_8017B614 *)&buf[8];
func_8012A018((s32)func_8017BE60, 0);
D_8012694C[0] = 0;
D_801C7AC0 = 1;
D_801C775C = 0x1E;
D_80126990 = ((SV4_8017B368 *)&D_801C77D4)->a;
D_80126994 = D_801C77D6;
D_80126998 = D_801C77D8;
D_80126984 = ((SV4_8017B368 *)&D_801C77CC)->a;
D_80126988 = D_801C77CE;
D_8012698C = D_801C77D0;
func_80129CF8();
}
+21 -34
View File
@@ -2985,7 +2985,6 @@ extern void func_8012A018(s32 a, s32 b);
s32 func_8017B614(s32 param_1, s32 param_2)
{
extern s32 D_80126990;
extern s32 D_80126994;
extern s16 D_801A7C54;
@@ -3000,52 +2999,40 @@ s32 func_8017B614(s32 param_1, s32 param_2)
extern s16 D_801A7CC4;
extern s16 D_801A7CC6;
extern s16 D_801A7CC8;
extern u8 D_8012694C;
extern u8 D_8012694C[];
extern s32 D_80126998;
extern s32 D_80126984;
extern s32 D_80126988;
extern s32 D_8012698C;
u8 buf[16];
u8 *src;
if (((u32)param_2) >= 0xB) {
register u8 *src __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus9)
__asm__ __volatile__("" : "=r"(src) : "0"((u8 *)((u32)param_2))); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus9)
src = (u8 *)((u32)param_2);
*(Blk8_8017B614 *)&buf[0] = *(Blk8_8017B614 *)src;
*(Blk8_8017B614 *)&buf[8] = *(Blk8_8017B614 *)(src + 8);
} else {
s32 a1addr = (s32)&D_80185900[((u32)param_2) * 0x10];
s32 a2addr = (s32)&D_80185900[((u32)param_2) * 0x10 + 8];
func_8012F214(param_1, a1addr, (s32)&buf[0]);
s32 a2addr;
src = &D_80185900[((u32)param_2) * 0x10];
a2addr = (s32)&D_80185900[((u32)param_2) * 0x10 + 8];
func_8012F214(param_1, (s32)src, (s32)&buf[0]);
func_8012F214(param_1, a2addr, (s32)&buf[8]);
}
{
s16 *p794 = &D_801A7CCC;
s16 *p78C = &D_801A7CC4;
*(Blk8_8017B614 *)p794 = *(Blk8_8017B614 *)&buf[0];
*(Blk8_8017B614 *)p78C = *(Blk8_8017B614 *)&buf[8];
func_8012A018((s32)func_8017BE60, 0);
{
s32 v794, v796, v798, v78C, v78E, v790;
D_8012694C = 0;
v794 = *p794;
v796 = D_801A7CCE;
v798 = D_801A7CD0;
v78C = *p78C;
v78E = D_801A7CC6;
v790 = D_801A7CC8;
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus9)
D_801A94D0 = 1;
D_801A7C54 = 0x1E;
D_80126990 = v794;
D_80126994 = v796;
D_80126998 = v798;
D_80126984 = v78C;
D_80126988 = v78E;
D_8012698C = v790;
}
func_80129CF8();
}
*(Blk8_8017B614 *)&D_801A7CCC = *(Blk8_8017B614 *)&buf[0];
*(Blk8_8017B614 *)&D_801A7CC4 = *(Blk8_8017B614 *)&buf[8];
func_8012A018((s32)func_8017BE60, 0);
D_8012694C[0] = 0;
D_801A94D0 = 1;
D_801A7C54 = 0x1E;
D_80126990 = ((SV4_8017B368 *)&D_801A7CCC)->a;
D_80126994 = D_801A7CCE;
D_80126998 = D_801A7CD0;
D_80126984 = ((SV4_8017B368 *)&D_801A7CC4)->a;
D_80126988 = D_801A7CC6;
D_8012698C = D_801A7CC8;
func_80129CF8();
}
+21 -34
View File
@@ -3541,7 +3541,6 @@ extern void func_8012A018(s32 a, s32 b);
s32 func_8017B614(s32 param_1, s32 param_2)
{
extern s32 D_80126990;
extern s32 D_80126994;
extern s16 D_801902EC;
@@ -3556,52 +3555,40 @@ s32 func_8017B614(s32 param_1, s32 param_2)
extern s16 D_8019035C;
extern s16 D_8019035E;
extern s16 D_80190360;
extern u8 D_8012694C;
extern u8 D_8012694C[];
extern s32 D_80126998;
extern s32 D_80126984;
extern s32 D_80126988;
extern s32 D_8012698C;
u8 buf[16];
u8 *src;
if (((u32)param_2) >= 0xB) {
register u8 *src __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus9)
__asm__ __volatile__("" : "=r"(src) : "0"((u8 *)((u32)param_2))); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus9)
src = (u8 *)((u32)param_2);
*(Blk8_8017B614 *)&buf[0] = *(Blk8_8017B614 *)src;
*(Blk8_8017B614 *)&buf[8] = *(Blk8_8017B614 *)(src + 8);
} else {
s32 a1addr = (s32)&D_80181FC0[((u32)param_2) * 0x10];
s32 a2addr = (s32)&D_80181FC0[((u32)param_2) * 0x10 + 8];
func_8012F214(param_1, a1addr, (s32)&buf[0]);
s32 a2addr;
src = &D_80181FC0[((u32)param_2) * 0x10];
a2addr = (s32)&D_80181FC0[((u32)param_2) * 0x10 + 8];
func_8012F214(param_1, (s32)src, (s32)&buf[0]);
func_8012F214(param_1, a2addr, (s32)&buf[8]);
}
{
s16 *p794 = &D_80190364;
s16 *p78C = &D_8019035C;
*(Blk8_8017B614 *)p794 = *(Blk8_8017B614 *)&buf[0];
*(Blk8_8017B614 *)p78C = *(Blk8_8017B614 *)&buf[8];
func_8012A018((s32)func_8017BE60, 0);
{
s32 v794, v796, v798, v78C, v78E, v790;
D_8012694C = 0;
v794 = *p794;
v796 = D_80190366;
v798 = D_80190368;
v78C = *p78C;
v78E = D_8019035E;
v790 = D_80190360;
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus9)
D_80190488 = 1;
D_801902EC = 0x1E;
D_80126990 = v794;
D_80126994 = v796;
D_80126998 = v798;
D_80126984 = v78C;
D_80126988 = v78E;
D_8012698C = v790;
}
func_80129CF8();
}
*(Blk8_8017B614 *)&D_80190364 = *(Blk8_8017B614 *)&buf[0];
*(Blk8_8017B614 *)&D_8019035C = *(Blk8_8017B614 *)&buf[8];
func_8012A018((s32)func_8017BE60, 0);
D_8012694C[0] = 0;
D_80190488 = 1;
D_801902EC = 0x1E;
D_80126990 = ((SV4_8017B368 *)&D_80190364)->a;
D_80126994 = D_80190366;
D_80126998 = D_80190368;
D_80126984 = ((SV4_8017B368 *)&D_8019035C)->a;
D_80126988 = D_8019035E;
D_8012698C = D_80190360;
func_80129CF8();
}