Changes

6 bytes added ,  06:01, 27 July 2022
→‎Threads: apparently those "fp" registers are for integers
Line 4: Line 4:  
The scheduler only runs the thread with the highest priority, and does not switch between threads if two threads have the same priority. Because of this, rescheduling only happens when a thread-related function is called and the thread with the highest priority can no longer run.
 
The scheduler only runs the thread with the highest priority, and does not switch between threads if two threads have the same priority. Because of this, rescheduling only happens when a thread-related function is called and the thread with the highest priority can no longer run.
 
<pre>
 
<pre>
struct OSFpContext {
+
struct OSMathContext {
f64 REG_DIV_NUMER; // 0x0
+
u64 REG_DIV_NUMER; // 0x0
f64 REG_DIV_DENOM; // 0x8
+
u64 REG_DIV_DENOM; // 0x8
f64 SQRT_PARAM; // 0x10
+
u64 SQRT_PARAM; // 0x10
 
u16 REG_DIVCNT; // 0x18
 
u16 REG_DIVCNT; // 0x18
 
u16 REG_SQRTCNT; // 0x1a
 
u16 REG_SQRTCNT; // 0x1a
Line 31: Line 31:  
void *pc; // 0x40
 
void *pc; // 0x40
 
void *kernelSp; // 0x44
 
void *kernelSp; // 0x44
struct OSFpContext fp; // 0x48
+
struct OSMathContext math; // 0x48
 
}
 
}
  
322

edits