2020-03-17 00:31:30 -04:00
|
|
|
#include <ultra64.h>
|
|
|
|
#include <global.h>
|
|
|
|
#include <ultra64/hardware.h>
|
|
|
|
|
2020-04-18 18:40:27 -07:00
|
|
|
s32 __osSpSetPc(u32 data) {
|
2020-03-17 00:31:30 -04:00
|
|
|
|
2020-04-18 18:40:27 -07:00
|
|
|
register u32 spStatus = HW_REG(SP_STATUS_REG, u32);
|
2020-03-17 00:31:30 -04:00
|
|
|
|
2020-03-22 22:19:43 +01:00
|
|
|
if (!(spStatus & SP_STATUS_HALT)) {
|
2020-03-17 00:31:30 -04:00
|
|
|
return -1;
|
2020-03-22 22:19:43 +01:00
|
|
|
}
|
2020-03-17 00:31:30 -04:00
|
|
|
|
2020-04-18 18:40:27 -07:00
|
|
|
else {
|
|
|
|
HW_REG(SP_PC_REG, u32) = data;
|
|
|
|
}
|
2020-03-17 00:31:30 -04:00
|
|
|
|
|
|
|
return 0;
|
|
|
|
}
|