From 5a735a495680b6b410a242cbe570a72b789d7016 Mon Sep 17 00:00:00 2001 From: hatal175 Date: Mon, 22 Jan 2024 02:51:34 +0200 Subject: [PATCH] Fix _stack_addr to match OSInit and __OSThreadInit (#2042) --- asm/dolphin/os/OS/OSInit.s | 341 ------------------ asm/dolphin/os/OSThread/__OSThreadInit.s | 90 ----- asm/dolphin/os/__ppc_eabi_init/__init_cpp.s | 26 -- .../Os/dolphin/dolphin_trk.h | 1 + include/dolphin/db.h | 1 + include/dolphin/dvd/dvdfs.h | 3 + include/dolphin/os/OSResetSW.h | 2 + include/dolphin/pad.h | 2 + .../Os/dolphin/dolphin_trk.c | 1 - libs/dolphin/os/OS.c | 147 +------- libs/dolphin/os/OSThread.c | 12 - libs/dolphin/os/__ppc_eabi_init.cpp | 25 +- libs/dolphin/pad/Pad.c | 1 - tools/lcf.py | 2 +- 14 files changed, 24 insertions(+), 630 deletions(-) delete mode 100644 asm/dolphin/os/OS/OSInit.s delete mode 100644 asm/dolphin/os/OSThread/__OSThreadInit.s delete mode 100644 asm/dolphin/os/__ppc_eabi_init/__init_cpp.s diff --git a/asm/dolphin/os/OS/OSInit.s b/asm/dolphin/os/OS/OSInit.s deleted file mode 100644 index 515541470ba..00000000000 --- a/asm/dolphin/os/OS/OSInit.s +++ /dev/null @@ -1,341 +0,0 @@ -lbl_80339F60: -/* 80339F60 7C 08 02 A6 */ mflr r0 -/* 80339F64 90 01 00 04 */ stw r0, 4(r1) -/* 80339F68 94 21 FF E8 */ stwu r1, -0x18(r1) -/* 80339F6C 93 E1 00 14 */ stw r31, 0x14(r1) -/* 80339F70 93 C1 00 10 */ stw r30, 0x10(r1) -/* 80339F74 93 A1 00 0C */ stw r29, 0xc(r1) -/* 80339F78 80 0D 90 A0 */ lwz r0, AreWeInitialized(r13) -/* 80339F7C 3C 60 80 45 */ lis r3, DriveInfo@ha /* 0x8044BA60@ha */ -/* 80339F80 3B E3 BA 60 */ addi r31, r3, DriveInfo@l /* 0x8044BA60@l */ -/* 80339F84 2C 00 00 00 */ cmpwi r0, 0 -/* 80339F88 3C 60 80 3D */ lis r3, lit_1@ha /* 0x803CF288@ha */ -/* 80339F8C 3B C3 F2 88 */ addi r30, r3, lit_1@l /* 0x803CF288@l */ -/* 80339F90 40 82 04 94 */ bne lbl_8033A424 -/* 80339F94 38 00 00 01 */ li r0, 1 -/* 80339F98 90 0D 90 A0 */ stw r0, AreWeInitialized(r13) -/* 80339F9C 48 00 87 81 */ bl __OSGetSystemTime -/* 80339FA0 90 8D 90 B4 */ stw r4, __OSStartTime+0x4(r13) -/* 80339FA4 90 6D 90 B0 */ stw r3, __OSStartTime(r13) -/* 80339FA8 48 00 37 4D */ bl OSDisableInterrupts -/* 80339FAC 38 7F 00 50 */ addi r3, r31, 0x50 -/* 80339FB0 48 00 2D 0D */ bl __OSGetExecParams -/* 80339FB4 38 60 00 00 */ li r3, 0 -/* 80339FB8 4B FF FD 5D */ bl PPCMtmmcr0 -/* 80339FBC 38 60 00 00 */ li r3, 0 -/* 80339FC0 4B FF FD 5D */ bl PPCMtmmcr1 -/* 80339FC4 38 60 00 00 */ li r3, 0 -/* 80339FC8 4B FF FD 5D */ bl PPCMtpmc1 -/* 80339FCC 38 60 00 00 */ li r3, 0 -/* 80339FD0 4B FF FD 5D */ bl PPCMtpmc2 -/* 80339FD4 38 60 00 00 */ li r3, 0 -/* 80339FD8 4B FF FD 5D */ bl PPCMtpmc3 -/* 80339FDC 38 60 00 00 */ li r3, 0 -/* 80339FE0 4B FF FD 5D */ bl PPCMtpmc4 -/* 80339FE4 4B FF FD C1 */ bl PPCDisableSpeculation -/* 80339FE8 4B FF FD E5 */ bl PPCSetFpNonIEEEMode -/* 80339FEC 38 00 00 00 */ li r0, 0 -/* 80339FF0 3C 80 80 00 */ lis r4, 0x8000 /* 0x800000F4@ha */ -/* 80339FF4 90 0D 90 84 */ stw r0, BI2DebugFlag(r13) -/* 80339FF8 90 8D 90 80 */ stw r4, BootInfo(r13) -/* 80339FFC 90 0D 91 EC */ stw r0, __DVDLongFileNameFlag(r13) -/* 8033A000 80 64 00 F4 */ lwz r3, 0x00F4(r4) /* 0x800000F4@l */ -/* 8033A004 28 03 00 00 */ cmplwi r3, 0 -/* 8033A008 41 82 00 34 */ beq lbl_8033A03C -/* 8033A00C 38 03 00 0C */ addi r0, r3, 0xc -/* 8033A010 90 0D 90 84 */ stw r0, BI2DebugFlag(r13) -/* 8033A014 80 03 00 24 */ lwz r0, 0x24(r3) -/* 8033A018 80 6D 90 84 */ lwz r3, BI2DebugFlag(r13) -/* 8033A01C 90 0D 92 F0 */ stw r0, __PADSpec(r13) -/* 8033A020 80 03 00 00 */ lwz r0, 0(r3) -/* 8033A024 54 00 06 3E */ clrlwi r0, r0, 0x18 -/* 8033A028 98 04 30 E8 */ stb r0, 0x30e8(r4) -/* 8033A02C 80 0D 92 F0 */ lwz r0, __PADSpec(r13) -/* 8033A030 54 00 06 3E */ clrlwi r0, r0, 0x18 -/* 8033A034 98 04 30 E9 */ stb r0, 0x30e9(r4) -/* 8033A038 48 00 00 28 */ b lbl_8033A060 -lbl_8033A03C: -/* 8033A03C 80 04 00 34 */ lwz r0, 0x34(r4) -/* 8033A040 28 00 00 00 */ cmplwi r0, 0 -/* 8033A044 41 82 00 1C */ beq lbl_8033A060 -/* 8033A048 88 64 30 E8 */ lbz r3, 0x30e8(r4) -/* 8033A04C 38 0D 90 88 */ la r0, BI2DebugFlagHolder(r13) /* 80451608-_SDA_BASE_ */ -/* 8033A050 90 6D 90 88 */ stw r3, BI2DebugFlagHolder(r13) -/* 8033A054 90 0D 90 84 */ stw r0, BI2DebugFlag(r13) -/* 8033A058 88 04 30 E9 */ lbz r0, 0x30e9(r4) -/* 8033A05C 90 0D 92 F0 */ stw r0, __PADSpec(r13) -lbl_8033A060: -/* 8033A060 38 00 00 01 */ li r0, 1 -/* 8033A064 80 6D 90 80 */ lwz r3, BootInfo(r13) -/* 8033A068 90 0D 91 EC */ stw r0, __DVDLongFileNameFlag(r13) -/* 8033A06C 80 63 00 30 */ lwz r3, 0x30(r3) -/* 8033A070 28 03 00 00 */ cmplwi r3, 0 -/* 8033A074 40 82 00 10 */ bne lbl_8033A084 -/* 8033A078 3C 60 80 46 */ lis r3, _stack_end+0x3018@ha /* 0x80459BE0@ha */ -/* 8033A07C 38 63 9B E0 */ addi r3, r3, _stack_end+0x3018@l /* 0x80459BE0@l */ -/* 8033A080 48 00 00 04 */ b lbl_8033A084 -lbl_8033A084: -/* 8033A084 48 00 12 21 */ bl OSSetArenaLo -/* 8033A088 80 6D 90 80 */ lwz r3, BootInfo(r13) -/* 8033A08C 80 03 00 30 */ lwz r0, 0x30(r3) -/* 8033A090 28 00 00 00 */ cmplwi r0, 0 -/* 8033A094 40 82 00 30 */ bne lbl_8033A0C4 -/* 8033A098 80 6D 90 84 */ lwz r3, BI2DebugFlag(r13) -/* 8033A09C 28 03 00 00 */ cmplwi r3, 0 -/* 8033A0A0 41 82 00 24 */ beq lbl_8033A0C4 -/* 8033A0A4 80 03 00 00 */ lwz r0, 0(r3) -/* 8033A0A8 28 00 00 02 */ cmplwi r0, 2 -/* 8033A0AC 40 80 00 18 */ bge lbl_8033A0C4 -/* 8033A0B0 3C 60 80 45 */ lis r3, _stack_end+0x1000@ha /* 0x80457BC8@ha */ -/* 8033A0B4 38 63 7B C8 */ addi r3, r3, _stack_end+0x1000@l /* 0x80457BC8@l */ -/* 8033A0B8 38 03 00 1F */ addi r0, r3, 0x1f -/* 8033A0BC 54 03 00 34 */ rlwinm r3, r0, 0, 0, 0x1a -/* 8033A0C0 48 00 11 E5 */ bl OSSetArenaLo -lbl_8033A0C4: -/* 8033A0C4 80 6D 90 80 */ lwz r3, BootInfo(r13) -/* 8033A0C8 80 63 00 34 */ lwz r3, 0x34(r3) -/* 8033A0CC 28 03 00 00 */ cmplwi r3, 0 -/* 8033A0D0 40 82 00 10 */ bne lbl_8033A0E0 -/* 8033A0D4 3C 60 81 70 */ lis r3, __ArenaHi@ha /* 0x81700000@ha */ -/* 8033A0D8 38 63 00 00 */ addi r3, r3, __ArenaHi@l /* 0x81700000@l */ -/* 8033A0DC 48 00 00 04 */ b lbl_8033A0E0 -lbl_8033A0E0: -/* 8033A0E0 48 00 11 BD */ bl OSSetArenaHi -/* 8033A0E4 48 00 03 5D */ bl OSExceptionInit -/* 8033A0E8 48 00 69 59 */ bl __OSInitSystemCall -/* 8033A0EC 48 00 07 B5 */ bl OSInitAlarm -/* 8033A0F0 48 00 48 8D */ bl __OSModuleInit -/* 8033A0F4 48 00 36 7D */ bl __OSInterruptInit -/* 8033A0F8 3C 60 80 34 */ lis r3, __OSResetSWInterruptHandler@ha /* 0x8033FAE4@ha */ -/* 8033A0FC 38 83 FA E4 */ addi r4, r3, __OSResetSWInterruptHandler@l /* 0x8033FAE4@l */ -/* 8033A100 38 60 00 16 */ li r3, 0x16 -/* 8033A104 48 00 36 3D */ bl __OSSetInterruptHandler -/* 8033A108 48 00 23 05 */ bl __OSContextInit -/* 8033A10C 48 00 19 E5 */ bl __OSCacheInit -/* 8033A110 48 00 9D 45 */ bl EXIInit -/* 8033A114 48 00 B3 81 */ bl SIInit -/* 8033A118 48 00 5E F1 */ bl __OSInitSram -/* 8033A11C 48 00 6A 01 */ bl __OSThreadInit -/* 8033A120 48 00 11 B9 */ bl __OSInitAudioSystem -/* 8033A124 4B FF FC 69 */ bl PPCMfhid2 -/* 8033A128 54 63 00 80 */ rlwinm r3, r3, 0, 2, 0 -/* 8033A12C 4B FF FC 69 */ bl PPCMthid2 -/* 8033A130 80 0D 90 A8 */ lwz r0, __OSInIPL(r13) -/* 8033A134 2C 00 00 00 */ cmpwi r0, 0 -/* 8033A138 40 82 00 08 */ bne lbl_8033A140 -/* 8033A13C 48 00 4D B5 */ bl __OSInitMemoryProtection -lbl_8033A140: -/* 8033A140 38 7E 00 44 */ addi r3, r30, 0x44 -/* 8033A144 4C C6 31 82 */ crclr 6 -/* 8033A148 4B CC C9 75 */ bl OSReport -/* 8033A14C 38 7E 00 54 */ addi r3, r30, 0x54 -/* 8033A150 4C C6 31 82 */ crclr 6 -/* 8033A154 38 9E 00 6C */ addi r4, r30, 0x6c -/* 8033A158 38 BE 00 78 */ addi r5, r30, 0x78 -/* 8033A15C 4B CC C9 61 */ bl OSReport -/* 8033A160 38 7E 00 84 */ addi r3, r30, 0x84 -/* 8033A164 4C C6 31 82 */ crclr 6 -/* 8033A168 4B CC C9 55 */ bl OSReport -/* 8033A16C 80 6D 90 80 */ lwz r3, BootInfo(r13) -/* 8033A170 28 03 00 00 */ cmplwi r3, 0 -/* 8033A174 41 82 00 10 */ beq lbl_8033A184 -/* 8033A178 80 83 00 2C */ lwz r4, 0x2c(r3) -/* 8033A17C 28 04 00 00 */ cmplwi r4, 0 -/* 8033A180 40 82 00 10 */ bne lbl_8033A190 -lbl_8033A184: -/* 8033A184 3C 60 10 00 */ lis r3, 0x1000 /* 0x10000002@ha */ -/* 8033A188 38 83 00 02 */ addi r4, r3, 0x0002 /* 0x10000002@l */ -/* 8033A18C 48 00 00 04 */ b lbl_8033A190 -lbl_8033A190: -/* 8033A190 54 83 00 06 */ rlwinm r3, r4, 0, 0, 3 -/* 8033A194 3C 00 10 00 */ lis r0, 0x1000 -/* 8033A198 7C 03 00 00 */ cmpw r3, r0 -/* 8033A19C 41 82 00 34 */ beq lbl_8033A1D0 -/* 8033A1A0 40 80 00 10 */ bge lbl_8033A1B0 -/* 8033A1A4 2C 03 00 00 */ cmpwi r3, 0 -/* 8033A1A8 41 82 00 18 */ beq lbl_8033A1C0 -/* 8033A1AC 48 00 00 B8 */ b lbl_8033A264 -lbl_8033A1B0: -/* 8033A1B0 3C 00 20 00 */ lis r0, 0x2000 -/* 8033A1B4 7C 03 00 00 */ cmpw r3, r0 -/* 8033A1B8 41 82 00 18 */ beq lbl_8033A1D0 -/* 8033A1BC 48 00 00 A8 */ b lbl_8033A264 -lbl_8033A1C0: -/* 8033A1C0 4C C6 31 82 */ crclr 6 -/* 8033A1C4 38 7E 00 94 */ addi r3, r30, 0x94 -/* 8033A1C8 4B CC C8 F5 */ bl OSReport -/* 8033A1CC 48 00 00 A4 */ b lbl_8033A270 -lbl_8033A1D0: -/* 8033A1D0 3C 60 10 00 */ lis r3, 0x1000 /* 0x10000002@ha */ -/* 8033A1D4 54 85 01 3E */ clrlwi r5, r4, 4 -/* 8033A1D8 38 03 00 02 */ addi r0, r3, 0x0002 /* 0x10000002@l */ -/* 8033A1DC 7C 05 00 00 */ cmpw r5, r0 -/* 8033A1E0 41 82 00 48 */ beq lbl_8033A228 -/* 8033A1E4 40 80 00 14 */ bge lbl_8033A1F8 -/* 8033A1E8 7C 05 18 00 */ cmpw r5, r3 -/* 8033A1EC 41 82 00 1C */ beq lbl_8033A208 -/* 8033A1F0 40 80 00 28 */ bge lbl_8033A218 -/* 8033A1F4 48 00 00 54 */ b lbl_8033A248 -lbl_8033A1F8: -/* 8033A1F8 38 03 00 04 */ addi r0, r3, 4 -/* 8033A1FC 7C 05 00 00 */ cmpw r5, r0 -/* 8033A200 40 80 00 48 */ bge lbl_8033A248 -/* 8033A204 48 00 00 34 */ b lbl_8033A238 -lbl_8033A208: -/* 8033A208 38 7E 00 A0 */ addi r3, r30, 0xa0 -/* 8033A20C 4C C6 31 82 */ crclr 6 -/* 8033A210 4B CC C8 AD */ bl OSReport -/* 8033A214 48 00 00 5C */ b lbl_8033A270 -lbl_8033A218: -/* 8033A218 38 7E 00 B0 */ addi r3, r30, 0xb0 -/* 8033A21C 4C C6 31 82 */ crclr 6 -/* 8033A220 4B CC C8 9D */ bl OSReport -/* 8033A224 48 00 00 4C */ b lbl_8033A270 -lbl_8033A228: -/* 8033A228 38 7E 00 C0 */ addi r3, r30, 0xc0 -/* 8033A22C 4C C6 31 82 */ crclr 6 -/* 8033A230 4B CC C8 8D */ bl OSReport -/* 8033A234 48 00 00 3C */ b lbl_8033A270 -lbl_8033A238: -/* 8033A238 38 7E 00 D0 */ addi r3, r30, 0xd0 -/* 8033A23C 4C C6 31 82 */ crclr 6 -/* 8033A240 4B CC C8 7D */ bl OSReport -/* 8033A244 48 00 00 2C */ b lbl_8033A270 -lbl_8033A248: -/* 8033A248 54 86 01 3E */ clrlwi r6, r4, 4 -/* 8033A24C 4C C6 31 82 */ crclr 6 -/* 8033A250 7C 85 23 78 */ mr r5, r4 -/* 8033A254 38 7E 00 E0 */ addi r3, r30, 0xe0 -/* 8033A258 38 86 FF FD */ addi r4, r6, -3 -/* 8033A25C 4B CC C8 61 */ bl OSReport -/* 8033A260 48 00 00 10 */ b lbl_8033A270 -lbl_8033A264: -/* 8033A264 4C C6 31 82 */ crclr 6 -/* 8033A268 38 6D 84 04 */ la r3, lit_116(r13) /* 80450984-_SDA_BASE_ */ -/* 8033A26C 4B CC C8 51 */ bl OSReport -lbl_8033A270: -/* 8033A270 80 8D 90 80 */ lwz r4, BootInfo(r13) -/* 8033A274 38 7E 00 FC */ addi r3, r30, 0xfc -/* 8033A278 4C C6 31 82 */ crclr 6 -/* 8033A27C 80 04 00 28 */ lwz r0, 0x28(r4) -/* 8033A280 54 04 65 3E */ srwi r4, r0, 0x14 -/* 8033A284 4B CC C8 39 */ bl OSReport -/* 8033A288 48 00 10 05 */ bl OSGetArenaHi -/* 8033A28C 7C 7D 1B 78 */ mr r29, r3 -/* 8033A290 48 00 10 05 */ bl OSGetArenaLo -/* 8033A294 7C 64 1B 78 */ mr r4, r3 -/* 8033A298 4C C6 31 82 */ crclr 6 -/* 8033A29C 7F A5 EB 78 */ mr r5, r29 -/* 8033A2A0 38 7E 01 0C */ addi r3, r30, 0x10c -/* 8033A2A4 4B CC C8 19 */ bl OSReport -/* 8033A2A8 80 6D 84 00 */ lwz r3, __OSVersion(r13) -/* 8033A2AC 48 00 05 C9 */ bl OSRegisterVersion -/* 8033A2B0 80 6D 90 84 */ lwz r3, BI2DebugFlag(r13) -/* 8033A2B4 28 03 00 00 */ cmplwi r3, 0 -/* 8033A2B8 41 82 00 14 */ beq lbl_8033A2CC -/* 8033A2BC 80 03 00 00 */ lwz r0, 0(r3) -/* 8033A2C0 28 00 00 02 */ cmplwi r0, 2 -/* 8033A2C4 41 80 00 08 */ blt lbl_8033A2CC -/* 8033A2C8 48 03 78 B5 */ bl EnableMetroTRKInterrupts -lbl_8033A2CC: -/* 8033A2CC 48 00 57 E1 */ bl OSGetResetCode -/* 8033A2D0 54 60 00 00 */ rlwinm r0, r3, 0, 0, 0 -/* 8033A2D4 28 00 00 00 */ cmplwi r0, 0 -/* 8033A2D8 41 82 00 0C */ beq lbl_8033A2E4 -/* 8033A2DC 38 00 00 01 */ li r0, 1 -/* 8033A2E0 48 00 00 08 */ b lbl_8033A2E8 -lbl_8033A2E4: -/* 8033A2E4 38 00 00 00 */ li r0, 0 -lbl_8033A2E8: -/* 8033A2E8 2C 00 00 00 */ cmpwi r0, 0 -/* 8033A2EC 40 82 00 28 */ bne lbl_8033A314 -/* 8033A2F0 48 00 0F 9D */ bl OSGetArenaHi -/* 8033A2F4 7C 7E 1B 78 */ mr r30, r3 -/* 8033A2F8 48 00 0F 9D */ bl OSGetArenaLo -/* 8033A2FC 7F C3 F0 50 */ subf r30, r3, r30 -/* 8033A300 48 00 0F 95 */ bl OSGetArenaLo -/* 8033A304 7F C5 F3 78 */ mr r5, r30 -/* 8033A308 38 80 00 00 */ li r4, 0 -/* 8033A30C 4B CC 91 4D */ bl memset -/* 8033A310 48 00 00 C0 */ b lbl_8033A3D0 -lbl_8033A314: -/* 8033A314 3B BF 00 5C */ addi r29, r31, 0x5c -/* 8033A318 80 1D 00 00 */ lwz r0, 0(r29) -/* 8033A31C 28 00 00 00 */ cmplwi r0, 0 -/* 8033A320 40 82 00 28 */ bne lbl_8033A348 -/* 8033A324 48 00 0F 69 */ bl OSGetArenaHi -/* 8033A328 7C 7E 1B 78 */ mr r30, r3 -/* 8033A32C 48 00 0F 69 */ bl OSGetArenaLo -/* 8033A330 7F C3 F0 50 */ subf r30, r3, r30 -/* 8033A334 48 00 0F 61 */ bl OSGetArenaLo -/* 8033A338 7F C5 F3 78 */ mr r5, r30 -/* 8033A33C 38 80 00 00 */ li r4, 0 -/* 8033A340 4B CC 91 19 */ bl memset -/* 8033A344 48 00 00 8C */ b lbl_8033A3D0 -lbl_8033A348: -/* 8033A348 48 00 0F 4D */ bl OSGetArenaLo -/* 8033A34C 80 1D 00 00 */ lwz r0, 0(r29) -/* 8033A350 7C 03 00 40 */ cmplw r3, r0 -/* 8033A354 40 80 00 7C */ bge lbl_8033A3D0 -/* 8033A358 48 00 0F 35 */ bl OSGetArenaHi -/* 8033A35C 80 1D 00 00 */ lwz r0, 0(r29) -/* 8033A360 7C 03 00 40 */ cmplw r3, r0 -/* 8033A364 41 81 00 28 */ bgt lbl_8033A38C -/* 8033A368 48 00 0F 25 */ bl OSGetArenaHi -/* 8033A36C 7C 7E 1B 78 */ mr r30, r3 -/* 8033A370 48 00 0F 25 */ bl OSGetArenaLo -/* 8033A374 7F C3 F0 50 */ subf r30, r3, r30 -/* 8033A378 48 00 0F 1D */ bl OSGetArenaLo -/* 8033A37C 7F C5 F3 78 */ mr r5, r30 -/* 8033A380 38 80 00 00 */ li r4, 0 -/* 8033A384 4B CC 90 D5 */ bl memset -/* 8033A388 48 00 00 48 */ b lbl_8033A3D0 -lbl_8033A38C: -/* 8033A38C 48 00 0F 09 */ bl OSGetArenaLo -/* 8033A390 80 1D 00 00 */ lwz r0, 0(r29) -/* 8033A394 7F C3 00 50 */ subf r30, r3, r0 -/* 8033A398 48 00 0E FD */ bl OSGetArenaLo -/* 8033A39C 7F C5 F3 78 */ mr r5, r30 -/* 8033A3A0 38 80 00 00 */ li r4, 0 -/* 8033A3A4 4B CC 90 B5 */ bl memset -/* 8033A3A8 48 00 0E E5 */ bl OSGetArenaHi -/* 8033A3AC 38 9F 00 60 */ addi r4, r31, 0x60 -/* 8033A3B0 83 A4 00 00 */ lwz r29, 0(r4) -/* 8033A3B4 7C 03 E8 40 */ cmplw r3, r29 -/* 8033A3B8 40 81 00 18 */ ble lbl_8033A3D0 -/* 8033A3BC 48 00 0E D1 */ bl OSGetArenaHi -/* 8033A3C0 7C BD 18 50 */ subf r5, r29, r3 -/* 8033A3C4 7F A3 EB 78 */ mr r3, r29 -/* 8033A3C8 38 80 00 00 */ li r4, 0 -/* 8033A3CC 4B CC 90 8D */ bl memset -lbl_8033A3D0: -/* 8033A3D0 48 00 33 39 */ bl OSEnableInterrupts -/* 8033A3D4 80 0D 90 A8 */ lwz r0, __OSInIPL(r13) -/* 8033A3D8 2C 00 00 00 */ cmpwi r0, 0 -/* 8033A3DC 40 82 00 48 */ bne lbl_8033A424 -/* 8033A3E0 48 00 ED 11 */ bl DVDInit -/* 8033A3E4 80 0D 90 8C */ lwz r0, __OSIsGcam(r13) -/* 8033A3E8 2C 00 00 00 */ cmpwi r0, 0 -/* 8033A3EC 41 82 00 18 */ beq lbl_8033A404 -/* 8033A3F0 3C 60 00 01 */ lis r3, 0x0001 /* 0x00009000@ha */ -/* 8033A3F4 38 03 90 00 */ addi r0, r3, 0x9000 /* 0x00009000@l */ -/* 8033A3F8 3C 60 80 00 */ lis r3, 0x8000 /* 0x800030E6@ha */ -/* 8033A3FC B0 03 30 E6 */ sth r0, 0x30E6(r3) /* 0x800030E6@l */ -/* 8033A400 48 00 00 24 */ b lbl_8033A424 -lbl_8033A404: -/* 8033A404 7F E3 FB 78 */ mr r3, r31 -/* 8033A408 38 80 00 20 */ li r4, 0x20 -/* 8033A40C 48 00 11 75 */ bl DCInvalidateRange -/* 8033A410 3C 60 80 34 */ lis r3, InquiryCallback@ha /* 0x80339F24@ha */ -/* 8033A414 38 A3 9F 24 */ addi r5, r3, InquiryCallback@l /* 0x80339F24@l */ -/* 8033A418 7F E4 FB 78 */ mr r4, r31 -/* 8033A41C 38 7F 00 20 */ addi r3, r31, 0x20 -/* 8033A420 48 01 0C 49 */ bl DVDInquiryAsync -lbl_8033A424: -/* 8033A424 80 01 00 1C */ lwz r0, 0x1c(r1) -/* 8033A428 83 E1 00 14 */ lwz r31, 0x14(r1) -/* 8033A42C 83 C1 00 10 */ lwz r30, 0x10(r1) -/* 8033A430 83 A1 00 0C */ lwz r29, 0xc(r1) -/* 8033A434 38 21 00 18 */ addi r1, r1, 0x18 -/* 8033A438 7C 08 03 A6 */ mtlr r0 -/* 8033A43C 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSThread/__OSThreadInit.s b/asm/dolphin/os/OSThread/__OSThreadInit.s deleted file mode 100644 index 538e9e5d8ff..00000000000 --- a/asm/dolphin/os/OSThread/__OSThreadInit.s +++ /dev/null @@ -1,90 +0,0 @@ -lbl_80340B1C: -/* 80340B1C 7C 08 02 A6 */ mflr r0 -/* 80340B20 3C 60 80 45 */ lis r3, RunQueue@ha /* 0x8044BB78@ha */ -/* 80340B24 90 01 00 04 */ stw r0, 4(r1) -/* 80340B28 38 00 00 02 */ li r0, 2 -/* 80340B2C 38 80 00 10 */ li r4, 0x10 -/* 80340B30 94 21 FF E8 */ stwu r1, -0x18(r1) -/* 80340B34 93 E1 00 14 */ stw r31, 0x14(r1) -/* 80340B38 93 C1 00 10 */ stw r30, 0x10(r1) -/* 80340B3C 93 A1 00 0C */ stw r29, 0xc(r1) -/* 80340B40 3B A0 00 00 */ li r29, 0 -/* 80340B44 93 81 00 08 */ stw r28, 8(r1) -/* 80340B48 3B 83 BB 78 */ addi r28, r3, RunQueue@l /* 0x8044BB78@l */ -/* 80340B4C 3B FC 04 18 */ addi r31, r28, 0x418 -/* 80340B50 B0 1C 06 E0 */ sth r0, 0x6e0(r28) -/* 80340B54 38 00 00 01 */ li r0, 1 -/* 80340B58 38 7F 02 E8 */ addi r3, r31, 0x2e8 -/* 80340B5C B0 1C 06 E2 */ sth r0, 0x6e2(r28) -/* 80340B60 38 00 FF FF */ li r0, -1 -/* 80340B64 90 9C 06 EC */ stw r4, 0x6ec(r28) -/* 80340B68 90 9C 06 E8 */ stw r4, 0x6e8(r28) -/* 80340B6C 93 BC 06 E4 */ stw r29, 0x6e4(r28) -/* 80340B70 90 1C 06 F0 */ stw r0, 0x6f0(r28) -/* 80340B74 93 BC 07 08 */ stw r29, 0x708(r28) -/* 80340B78 48 00 00 FD */ bl OSInitThreadQueue -/* 80340B7C 93 BC 07 10 */ stw r29, 0x710(r28) -/* 80340B80 3F C0 80 00 */ lis r30, 0x8000 /* 0x800000D8@ha */ -/* 80340B84 38 7F 00 00 */ addi r3, r31, 0 -/* 80340B88 93 BC 07 0C */ stw r29, 0x70c(r28) -/* 80340B8C 93 FE 00 D8 */ stw r31, 0x00D8(r30) /* 0x800000D8@l */ -/* 80340B90 4B FF B4 71 */ bl OSClearContext -/* 80340B94 7F E3 FB 78 */ mr r3, r31 -/* 80340B98 4B FF B2 A1 */ bl OSSetCurrentContext -/* 80340B9C 3C 60 80 45 */ lis r3, _stack_end+0x1000@ha /* 0x80457BC8@ha */ -/* 80340BA0 38 03 7B C8 */ addi r0, r3, _stack_end+0x1000@l /* 0x80457BC8@l */ -/* 80340BA4 3C 60 80 45 */ lis r3, _stack_end@ha /* 0x80456BC8@ha */ -/* 80340BA8 90 1C 07 1C */ stw r0, 0x71c(r28) -/* 80340BAC 38 03 6B C8 */ addi r0, r3, _stack_end@l /* 0x80456BC8@l */ -/* 80340BB0 90 1C 07 20 */ stw r0, 0x720(r28) -/* 80340BB4 3C 60 DE AE */ lis r3, 0xDEAE /* 0xDEADBABE@ha */ -/* 80340BB8 38 03 BA BE */ addi r0, r3, 0xBABE /* 0xDEADBABE@l */ -/* 80340BBC 80 7C 07 20 */ lwz r3, 0x720(r28) -/* 80340BC0 7F E4 FB 78 */ mr r4, r31 -/* 80340BC4 90 03 00 00 */ stw r0, 0(r3) -/* 80340BC8 81 8D 84 38 */ lwz r12, SwitchThreadCallback(r13) -/* 80340BCC 80 7E 00 E4 */ lwz r3, 0xe4(r30) -/* 80340BD0 7D 88 03 A6 */ mtlr r12 -/* 80340BD4 4E 80 00 21 */ blrl -/* 80340BD8 93 FE 00 E4 */ stw r31, 0xe4(r30) -/* 80340BDC 38 60 00 00 */ li r3, 0 -/* 80340BE0 48 00 1A 71 */ bl OSClearStack -/* 80340BE4 93 AD 91 40 */ stw r29, RunQueueBits(r13) -/* 80340BE8 3B C0 00 00 */ li r30, 0 -/* 80340BEC 57 C0 18 38 */ slwi r0, r30, 3 -/* 80340BF0 93 AD 91 44 */ stw r29, RunQueueHint(r13) -/* 80340BF4 7F BC 02 14 */ add r29, r28, r0 -lbl_80340BF8: -/* 80340BF8 7F A3 EB 78 */ mr r3, r29 -/* 80340BFC 48 00 00 79 */ bl OSInitThreadQueue -/* 80340C00 3B DE 00 01 */ addi r30, r30, 1 -/* 80340C04 2C 1E 00 1F */ cmpwi r30, 0x1f -/* 80340C08 3B BD 00 08 */ addi r29, r29, 8 -/* 80340C0C 40 81 FF EC */ ble lbl_80340BF8 -/* 80340C10 3F C0 80 00 */ lis r30, 0x8000 /* 0x800000DC@ha */ -/* 80340C14 38 7E 00 DC */ addi r3, r30, 0x00DC /* 0x800000DC@l */ -/* 80340C18 48 00 00 5D */ bl OSInitThreadQueue -/* 80340C1C 38 9E 00 DC */ addi r4, r30, 0xdc -/* 80340C20 84 64 00 04 */ lwzu r3, 4(r4) -/* 80340C24 28 03 00 00 */ cmplwi r3, 0 -/* 80340C28 40 82 00 0C */ bne lbl_80340C34 -/* 80340C2C 93 FE 00 DC */ stw r31, 0xdc(r30) -/* 80340C30 48 00 00 08 */ b lbl_80340C38 -lbl_80340C34: -/* 80340C34 93 E3 02 FC */ stw r31, 0x2fc(r3) -lbl_80340C38: -/* 80340C38 90 7F 03 00 */ stw r3, 0x300(r31) -/* 80340C3C 3B C0 00 00 */ li r30, 0 -/* 80340C40 38 7C 07 30 */ addi r3, r28, 0x730 -/* 80340C44 93 DF 02 FC */ stw r30, 0x2fc(r31) -/* 80340C48 93 E4 00 00 */ stw r31, 0(r4) -/* 80340C4C 4B FF B3 B5 */ bl OSClearContext -/* 80340C50 93 CD 91 48 */ stw r30, Reschedule(r13) -/* 80340C54 80 01 00 1C */ lwz r0, 0x1c(r1) -/* 80340C58 83 E1 00 14 */ lwz r31, 0x14(r1) -/* 80340C5C 83 C1 00 10 */ lwz r30, 0x10(r1) -/* 80340C60 83 A1 00 0C */ lwz r29, 0xc(r1) -/* 80340C64 83 81 00 08 */ lwz r28, 8(r1) -/* 80340C68 38 21 00 18 */ addi r1, r1, 0x18 -/* 80340C6C 7C 08 03 A6 */ mtlr r0 -/* 80340C70 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/__ppc_eabi_init/__init_cpp.s b/asm/dolphin/os/__ppc_eabi_init/__init_cpp.s deleted file mode 100644 index 8a6f57898da..00000000000 --- a/asm/dolphin/os/__ppc_eabi_init/__init_cpp.s +++ /dev/null @@ -1,26 +0,0 @@ -lbl_80342B98: -/* 80342B98 7C 08 02 A6 */ mflr r0 -/* 80342B9C 90 01 00 04 */ stw r0, 4(r1) -/* 80342BA0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80342BA4 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80342BA8 3C 60 80 37 */ lis r3, __init_cpp_exceptions_reference@ha /* 0x803737C0@ha */ -/* 80342BAC 38 03 37 C0 */ addi r0, r3, __init_cpp_exceptions_reference@l /* 0x803737C0@l */ -/* 80342BB0 7C 1F 03 78 */ mr r31, r0 -/* 80342BB4 48 00 00 04 */ b lbl_80342BB8 -lbl_80342BB8: -/* 80342BB8 48 00 00 04 */ b lbl_80342BBC -lbl_80342BBC: -/* 80342BBC 48 00 00 10 */ b lbl_80342BCC -lbl_80342BC0: -/* 80342BC0 7D 88 03 A6 */ mtlr r12 -/* 80342BC4 4E 80 00 21 */ blrl -/* 80342BC8 3B FF 00 04 */ addi r31, r31, 4 -lbl_80342BCC: -/* 80342BCC 81 9F 00 00 */ lwz r12, 0(r31) -/* 80342BD0 28 0C 00 00 */ cmplwi r12, 0 -/* 80342BD4 40 82 FF EC */ bne lbl_80342BC0 -/* 80342BD8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80342BDC 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80342BE0 38 21 00 10 */ addi r1, r1, 0x10 -/* 80342BE4 7C 08 03 A6 */ mtlr r0 -/* 80342BE8 4E 80 00 20 */ blr diff --git a/include/TRK_MINNOW_DOLPHIN/Os/dolphin/dolphin_trk.h b/include/TRK_MINNOW_DOLPHIN/Os/dolphin/dolphin_trk.h index 370bbe71272..1a65cedc976 100644 --- a/include/TRK_MINNOW_DOLPHIN/Os/dolphin/dolphin_trk.h +++ b/include/TRK_MINNOW_DOLPHIN/Os/dolphin/dolphin_trk.h @@ -1,5 +1,6 @@ #ifndef OS_DOLPHIN_DOLPHIN_TRK_H #define OS_DOLPHIN_DOLPHIN_TRK_H +void EnableMetroTRKInterrupts(); #endif /* OS_DOLPHIN_DOLPHIN_TRK_H */ diff --git a/include/dolphin/db.h b/include/dolphin/db.h index 6d279eb5b3d..0afd92a7436 100644 --- a/include/dolphin/db.h +++ b/include/dolphin/db.h @@ -22,6 +22,7 @@ extern DBInterface* __DBInterface; void DBInit(void); void __DBExceptionDestinationAux(void); void __DBExceptionDestination(void); +BOOL __DBIsExceptionMarked(__OSException); void DBPrintf(char* format, ...); void DBInitComm(vu8**, AmcEXICallback); // possibly not this type, but some similar construction void DBInitInterrupts(); diff --git a/include/dolphin/dvd/dvdfs.h b/include/dolphin/dvd/dvdfs.h index d4fb3c47192..aeeec2fe036 100644 --- a/include/dolphin/dvd/dvdfs.h +++ b/include/dolphin/dvd/dvdfs.h @@ -1,5 +1,8 @@ #ifndef DVDFS_H #define DVDFS_H +#include "dolphin/types.h" + +extern u32 __DVDLongFileNameFlag; #endif /* DVDFS_H */ diff --git a/include/dolphin/os/OSResetSW.h b/include/dolphin/os/OSResetSW.h index 4ac78009a5f..03e0e4369b5 100644 --- a/include/dolphin/os/OSResetSW.h +++ b/include/dolphin/os/OSResetSW.h @@ -2,6 +2,7 @@ #define OSRESETSW_H #include "dolphin/types.h" +#include "dolphin/os/OSInterrupt.h" #ifdef __cplusplus extern "C" { @@ -11,6 +12,7 @@ typedef void (*OSResetCallback)(void); static BOOL OSGetResetButtonState(void); BOOL OSGetResetSwitchState(void); +void __OSResetSWInterruptHandler(__OSInterrupt interrupt, OSContext* context); #ifdef __cplusplus }; diff --git a/include/dolphin/pad.h b/include/dolphin/pad.h index fd3a8fdd5fa..10168988690 100644 --- a/include/dolphin/pad.h +++ b/include/dolphin/pad.h @@ -69,6 +69,8 @@ u32 PADRead(PADStatus* status); void PADControlMotor(s32 channel, u32 command); BOOL PADRecalibrate(u32 mask); +extern u32 __PADSpec; + #ifdef __cplusplus }; #endif diff --git a/libs/TRK_MINNOW_DOLPHIN/Os/dolphin/dolphin_trk.c b/libs/TRK_MINNOW_DOLPHIN/Os/dolphin/dolphin_trk.c index c29b25f57d3..27f2be43b2e 100644 --- a/libs/TRK_MINNOW_DOLPHIN/Os/dolphin/dolphin_trk.c +++ b/libs/TRK_MINNOW_DOLPHIN/Os/dolphin/dolphin_trk.c @@ -5,7 +5,6 @@ #include "dolphin/ar.h" #include "dolphin/os.h" -extern u8 _db_stack_addr[]; #define EXCEPTIONMASK_ADDR 0x80000044 /* 8044F810-8044F818 07C530 0004+04 3/3 0/0 0/0 .bss lc_base */ diff --git a/libs/dolphin/os/OS.c b/libs/dolphin/os/OS.c index d7b25b084ee..07753bf904a 100644 --- a/libs/dolphin/os/OS.c +++ b/libs/dolphin/os/OS.c @@ -1,12 +1,15 @@ // -// Generated By: dol2asm -// Translation Unit: OS +// OS // #include "dolphin/os.h" -#include "dol2asm.h" #include "dolphin/base/PPCArch.h" #include "dolphin/db.h" +#include "dolphin/pad.h" +#include "dolphin/exi/EXIBios.h" +#include "dolphin/si/SIBios.h" +#include "dolphin/dvd/dvdfs.h" +#include "TRK_MINNOW_DOLPHIN/Os/dolphin/dolphin_trk.h" #define OS_BI2_DEBUG_ADDRESS 0x800000F4 #define OS_BI2_DEBUGFLAG_OFFSET 0xC @@ -25,40 +28,7 @@ // External References: // -SECTION_INIT void memset(); -SECTION_INIT void memcpy(); -void PPCMtmmcr0(); -void PPCMtmmcr1(); -void PPCMtpmc1(); -void PPCMtpmc2(); -void PPCMtpmc3(); -void PPCMtpmc4(); -void PPCMthid2(); -void PPCDisableSpeculation(); -void PPCSetFpNonIEEEMode(); -void OSInitAlarm(); -void __OSInitAudioSystem(); -void __OSCacheInit(); -void __OSContextInit(); -void __OSInterruptInit(); -void __OSModuleInit(); -void __OSInitMemoryProtection(); -void __OSResetSWInterruptHandler(); -void __OSInitSram(); -void __OSInitSystemCall(); -void __OSThreadInit(); -void EXIInit(); -void SIInit(); -BOOL __DBIsExceptionMarked(__OSException); -void EnableMetroTRKInterrupts(); -extern u32 __DVDLongFileNameFlag; -extern u32 __PADSpec; void _epilog(); -void regist__9daBgObj_cFP4dBgW(); - -// -// Declarations: -// /* ############################################################################################## */ /* 80451600-80451604 000B00 0004+00 2/2 0/0 0/0 .sbss BootInfo */ @@ -245,103 +215,14 @@ static void InquiryCallback(s32 result, DVDCommandBlock* block) { } } -/* ############################################################################################## */ -/* 803CF288-803CF2CC 02C3A8 0044+00 3/2 0/0 0/0 .data @1 */ -SECTION_DATA static char lit_1[68] = - "<< Dolphin SDK - OS release build: Nov 10 2004 06:26:41 (0x2301) >>"; - -/* 803CF2CC-803CF2DC 02C3EC 000D+03 0/1 0/0 0/0 .data @105 */ -#pragma push -#pragma force_active on -SECTION_DATA static char lit_105[13] = "\nDolphin OS\n"; -#pragma pop - -/* 803CF2DC-803CF2F4 02C3FC 0016+02 0/1 0/0 0/0 .data @106 */ -#pragma push -#pragma force_active on -SECTION_DATA static char lit_106[22] = "Kernel built : %s %s\n"; -#pragma pop - -/* 803CF2F4-803CF300 02C414 000C+00 0/1 0/0 0/0 .data @107 */ -#pragma push -#pragma force_active on -SECTION_DATA static char lit_107[12] = "Nov 10 2004"; -#pragma pop - -/* 803CF300-803CF30C 02C420 0009+03 0/1 0/0 0/0 .data @108 */ -#pragma push -#pragma force_active on -SECTION_DATA static char lit_108[9] = "06:26:41"; -#pragma pop - -/* 803CF30C-803CF31C 02C42C 0010+00 0/1 0/0 0/0 .data @109 */ -#pragma push -#pragma force_active on -SECTION_DATA static char lit_109[16] = "Console Type : "; -#pragma pop - -/* 803CF31C-803CF328 02C43C 000B+01 0/1 0/0 0/0 .data @110 */ -#pragma push -#pragma force_active on -SECTION_DATA static char lit_110[11] = "Retail %d\n"; -#pragma pop - -/* 803CF328-803CF338 02C448 000E+02 0/1 0/0 0/0 .data @111 */ -#pragma push -#pragma force_active on -SECTION_DATA static char lit_111[14] = "Mac Emulator\n"; -#pragma pop - -/* 803CF338-803CF348 02C458 000D+03 0/1 0/0 0/0 .data @112 */ -#pragma push -#pragma force_active on -SECTION_DATA static char lit_112[13] = "PC Emulator\n"; -#pragma pop - -/* 803CF348-803CF358 02C468 000D+03 0/1 0/0 0/0 .data @113 */ -#pragma push -#pragma force_active on -SECTION_DATA static char lit_113[13] = "EPPC Arthur\n"; -#pragma pop - -/* 803CF358-803CF368 02C478 000D+03 0/1 0/0 0/0 .data @114 */ -#pragma push -#pragma force_active on -SECTION_DATA static char lit_114[13] = "EPPC Minnow\n"; -#pragma pop - -/* 803CF368-803CF384 02C488 0019+03 0/1 0/0 0/0 .data @115 */ -#pragma push -#pragma force_active on -SECTION_DATA static char lit_115[25] = "Development HW%d (%08x)\n"; -#pragma pop - -/* 803CF384-803CF394 02C4A4 000E+02 0/1 0/0 0/0 .data @117 */ -#pragma push -#pragma force_active on -SECTION_DATA static char lit_117[14] = "Memory %d MB\n"; -#pragma pop - -/* 803CF394-803CF3AC 02C4B4 0015+03 0/1 0/0 0/0 .data @118 */ -#pragma push -#pragma force_active on -SECTION_DATA static char lit_118[21] = "Arena : 0x%x - 0x%x\n"; -#pragma pop - /* 8044BA80-8044BAB0 0787A0 0030+00 0/1 0/0 0/0 .bss DriveBlock */ -#pragma push -#pragma force_active on static u8 DriveBlock[48]; -#pragma pop /* 8044BAB0-8044BAD0 0787D0 001C+04 0/1 1/1 0/0 .bss __OSRebootParams */ OSExecParams __OSRebootParams; /* 80450980-80450984 -00001 0004+00 1/1 0/0 0/0 .sdata __OSVersion */ -SECTION_SDATA static void* __OSVersion = (void*)&lit_1; - -/* 80450984-8045098C 000404 0006+02 1/1 0/0 0/0 .sdata @116 */ -SECTION_SDATA static char lit_116[6] = "%08x\n"; +static const char* __OSVersion = "<< Dolphin SDK - OS release build: Nov 10 2004 06:26:41 (0x2301) >>"; extern u8 __ArenaHi[]; extern u8 __ArenaLo[]; @@ -349,8 +230,6 @@ extern void* _stack_end; extern char _db_stack_end[]; /* 80339F60-8033A440 3348A0 04E0+00 0/0 2/2 0/0 .text OSInit */ -// this seems to match, but it's loading __ArenaLo from the wrong address? -#ifdef NONMATCHING void OSInit(void) { /* Initializes the Dolphin operating system. @@ -499,20 +378,10 @@ void OSInit(void) { } } } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void OSInit(void) { - nofralloc -#include "asm/dolphin/os/OS/OSInit.s" -} -#pragma pop -#endif /* ############################################################################################## */ /* 803CF3AC-803CF3E8 02C4CC 003C+00 0/1 0/0 0/0 .data __OSExceptionLocations */ -SECTION_DATA static u32 __OSExceptionLocations[] = { +static u32 __OSExceptionLocations[] = { 0x00000100, // 0 System reset 0x00000200, // 1 Machine check 0x00000300, // 2 DSI - seg fault or DABR diff --git a/libs/dolphin/os/OSThread.c b/libs/dolphin/os/OSThread.c index e8aaccb335e..6401d8ddfbe 100644 --- a/libs/dolphin/os/OSThread.c +++ b/libs/dolphin/os/OSThread.c @@ -157,8 +157,6 @@ static inline void OSSetCurrentThread(OSThread* thread) { } /* 80340B1C-80340C74 33B45C 0158+00 0/0 1/1 0/0 .text __OSThreadInit */ -// similar issue with OSInit where _stack address seems to be wrong? -#ifdef NONMATCHING void __OSThreadInit() { OSThread* thread = &DefaultThread; int prio; @@ -194,16 +192,6 @@ void __OSThreadInit() { OSClearContext(&IdleContext); Reschedule = 0; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __OSThreadInit(void) { - nofralloc -#include "asm/dolphin/os/OSThread/__OSThreadInit.s" -} -#pragma pop -#endif /* 80340C74-80340C84 33B5B4 0010+00 1/1 9/9 0/0 .text OSInitThreadQueue */ void OSInitThreadQueue(OSThreadQueue* queue) { diff --git a/libs/dolphin/os/__ppc_eabi_init.cpp b/libs/dolphin/os/__ppc_eabi_init.cpp index 661e10df0c8..4ee2a7df04d 100644 --- a/libs/dolphin/os/__ppc_eabi_init.cpp +++ b/libs/dolphin/os/__ppc_eabi_init.cpp @@ -1,6 +1,5 @@ // -// Generated By: dol2asm -// Translation Unit: __ppc_eabi_init +// __ppc_eabi_init // #include "dol2asm.h" @@ -22,11 +21,8 @@ void _ExitProcess(); // External References: // -SECTION_CTORS10 extern void* const __init_cpp_exceptions_reference; - -// -// Declarations: -// +typedef void (*voidfunctionptr)(); // pointer to function returning void +SECTION_CTORS10 extern voidfunctionptr __init_cpp_exceptions_reference[]; /* 80342B78-80342B98 33D4B8 0020+00 0/0 1/1 0/0 .text __init_user */ void __init_user(void) { @@ -34,26 +30,17 @@ void __init_user(void) { } /* 80342B98-80342BEC 33D4D8 0054+00 1/1 0/0 0/0 .text __init_cpp */ -#ifdef NONMATCHING +#pragma peephole off void __init_cpp(void) { - voidfunctionptr* constructor; /** * call static initializers */ + voidfunctionptr* constructor; for (constructor = __init_cpp_exceptions_reference; *constructor; constructor++) { (*constructor)(); } } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __init_cpp(void) { - nofralloc -#include "asm/dolphin/os/__ppc_eabi_init/__init_cpp.s" -} -#pragma pop -#endif +#pragma peephole reset /* 80342BEC-80342C0C 33D52C 0020+00 0/0 2/2 0/0 .text _ExitProcess */ void _ExitProcess(void) { diff --git a/libs/dolphin/pad/Pad.c b/libs/dolphin/pad/Pad.c index 305025364b4..bf7b61eb9ff 100644 --- a/libs/dolphin/pad/Pad.c +++ b/libs/dolphin/pad/Pad.c @@ -372,7 +372,6 @@ static void (*SamplingCallback)(void); static BOOL recalibrated; /* 80451870-80451878 000D70 0004+04 2/2 1/1 0/0 .sbss __PADSpec */ -extern u32 __PADSpec; u32 __PADSpec; /* 8034ED50-8034EEA0 349690 0150+00 0/0 1/1 0/0 .text PADInit */ diff --git a/tools/lcf.py b/tools/lcf.py index 04856d09ac8..90fd43e18ca 100644 --- a/tools/lcf.py +++ b/tools/lcf.py @@ -203,7 +203,7 @@ def lcf_generate(output_path,shiftable,map_file): file.write("\t} > text\n") file.write( - "\t_stack_addr = (_f_sbss2 + SIZEOF(.sbss2) + 65536 + 0x7) & ~0x7;\n" + "\t_stack_addr = (_f_sbss2 + SIZEOF(.sbss2) + 0x1000 + 0x7) & ~0x7;\n" ) file.write("\t_stack_end = _f_sbss2 + SIZEOF(.sbss2);\n") file.write("\t_db_stack_addr = (_stack_addr + 0x2000);\n")