summaryrefslogtreecommitdiff
path: root/src/code/fault.c
diff options
context:
space:
mode:
authorcadmic <cadmic24@gmail.com>2024-04-14 14:51:32 -0700
committerGitHub <noreply@github.com>2024-04-14 23:51:32 +0200
commitf643499462f8cf908ddf1ee77b5625ebaff2cf25 (patch)
tree852eb24ec8f3c8c507d779c4878be92cf5ff36c7 /src/code/fault.c
parenta94661054ed8e7ac895c3f4df07b8ac339fc3ce0 (diff)
Match retail BSS ordering (#1927)
* Match retail BSS ordering * Revert moving some global variables to headers * Adjust block numbers after header changes * Fix debug build * Overlay bss ordering * Fix BSS ordering after header changes * gc-eu-mq OK * Implement preprocessor for #pragma increment_block_number * Transfer usage comment from reencode.sh * Use temporary directory instead of temporary file * Move ColChkMassType back
Diffstat (limited to 'src/code/fault.c')
-rw-r--r--src/code/fault.c19
1 files changed, 9 insertions, 10 deletions
diff --git a/src/code/fault.c b/src/code/fault.c
index 8b05fb820..662c1a9f1 100644
--- a/src/code/fault.c
+++ b/src/code/fault.c
@@ -44,6 +44,15 @@
#include "terminal.h"
#include "alloca.h"
+// For retail BSS ordering, the block number of sFaultInstance must be 0 or
+// just above (the exact upper bound depends on the block numbers assigned to
+// extern variables declared in headers).
+#if OOT_DEBUG
+#pragma increment_block_number 20
+#else
+#pragma increment_block_number 25
+#endif
+
void FaultDrawer_Init(void);
void FaultDrawer_SetOsSyncPrintfEnabled(u32 enabled);
void FaultDrawer_DrawRecImpl(s32 xStart, s32 yStart, s32 xEnd, s32 yEnd, u16 color);
@@ -76,21 +85,11 @@ const char* sFpExceptionNames[] = {
"Unimplemented operation", "Invalid operation", "Division by zero", "Overflow", "Underflow", "Inexact operation",
};
-#ifndef NON_MATCHING
-// TODO: match .bss (has reordering issues)
-extern FaultMgr* sFaultInstance;
-extern u8 sFaultAwaitingInput;
-extern STACK(sFaultStack, 0x600);
-extern StackEntry sFaultThreadInfo;
-extern FaultMgr gFaultMgr;
-#else
-// Non-matching version for struct shiftability
FaultMgr* sFaultInstance;
u8 sFaultAwaitingInput;
STACK(sFaultStack, 0x600);
StackEntry sFaultThreadInfo;
FaultMgr gFaultMgr;
-#endif
typedef struct {
/* 0x00 */ s32 (*callback)(void*, void*);