mirror of
https://github.com/n64decomp/mk64
synced 2026-08-16 20:47:42 -04:00
update libultra asm (#648)
* update libultra asm * fix gcc __osThreadTail --------- Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>
This commit is contained in:
@@ -1,15 +1,11 @@
|
||||
#include "libultra_internal.h"
|
||||
|
||||
#ifndef AVOID_UB
|
||||
OSThread *__osThreadTail = NULL;
|
||||
u32 __osTest = -1;
|
||||
OSThread *__osRunQueue = (OSThread *) &__osThreadTail;
|
||||
OSThread *__osActiveQueue = (OSThread *) &__osThreadTail;
|
||||
NO_REORDER OSThread *__osThreadTail = NULL;
|
||||
NO_REORDER u32 __osTest = -1;
|
||||
NO_REORDER OSThread *__osRunQueue = (OSThread *) &__osThreadTail;
|
||||
NO_REORDER OSThread *__osActiveQueue = (OSThread *) &__osThreadTail;
|
||||
OSThread *__osRunningThread = NULL;
|
||||
OSThread *__osFaultedThread = NULL;
|
||||
#else
|
||||
OSThread_ListHead __osThreadTail_fix = {NULL, -1, (OSThread *) &__osThreadTail_fix, (OSThread *) &__osThreadTail_fix, NULL, 0};
|
||||
#endif
|
||||
|
||||
void __osDequeueThread(OSThread **queue, OSThread *thread) {
|
||||
register OSThread **a2;
|
||||
|
||||
@@ -10,10 +10,13 @@ typedef struct __OSEventState
|
||||
OSMesg message;
|
||||
} __OSEventState;
|
||||
|
||||
typedef struct __osThreadTail
|
||||
typedef struct // __osThreadTail
|
||||
{
|
||||
OSThread *next;
|
||||
OSPri priority;
|
||||
/* 0x00 */ OSThread *next;
|
||||
/* 0x04 */ OSPri priority;
|
||||
/* 0x08 */ OSThread *queue;
|
||||
/* 0x0c */ OSThread *tlnext;
|
||||
|
||||
} OSThreadTail;
|
||||
|
||||
/*
|
||||
@@ -31,23 +34,12 @@ typedef struct
|
||||
/*0x10*/ struct OSThread_s *unk10;
|
||||
/*0x14*/ u32 unk14;
|
||||
} OSThread_ListHead;
|
||||
#ifdef AVOID_UB
|
||||
|
||||
// Now fix the symbols to the new one.
|
||||
extern OSThread_ListHead __osThreadTail_fix;
|
||||
|
||||
#define __osThreadTail __osThreadTail_fix.next
|
||||
#define D_80334894 __osThreadTail_fix.priority
|
||||
#define __osRunQueue __osThreadTail_fix.queue
|
||||
#define __osActiveQueue __osThreadTail_fix.tlnext
|
||||
#define __osRunningThread __osThreadTail_fix.unk10
|
||||
#else
|
||||
// Original OSThread_ListHead definitions
|
||||
extern OSThread *__osThreadTail;
|
||||
extern OSThread *__osActiveQueue;
|
||||
extern OSThread *__osRunQueue;
|
||||
extern OSThread *__osRunningThread;
|
||||
#endif
|
||||
|
||||
// Original EEPROM definitions
|
||||
extern u32 D_80365E00[15];
|
||||
|
||||
@@ -14,7 +14,7 @@ typedef struct {
|
||||
u32 D_80194040;
|
||||
|
||||
u64 osClockRate = 62500000;
|
||||
u32 D_800EA5E8 = 0;
|
||||
u32 __osShutdown = 0;
|
||||
u32 __OSGlobalIntMask = OS_IM_ALL;
|
||||
u32 D_800EA5F0 = 0;
|
||||
|
||||
|
||||
@@ -16,14 +16,10 @@ extern void __osTimerInterrupt(void);
|
||||
extern u32 __osProbeTLB(void *);
|
||||
extern int __osSpDeviceBusy(void);
|
||||
|
||||
#ifdef AVOID_UB
|
||||
extern OSThread_ListHead __osThreadTail_fix;
|
||||
#else
|
||||
extern OSThread *__osRunningThread;
|
||||
extern OSThread *__osActiveQueue;
|
||||
extern OSThread *__osFaultedThread;
|
||||
extern OSThread *__osRunQueue;
|
||||
#endif
|
||||
|
||||
extern OSTimer *__osTimerList;
|
||||
extern OSTimer __osBaseTimer;
|
||||
|
||||
Reference in New Issue
Block a user