summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSND\weimingzhi_cp <SND\weimingzhi_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2010-05-30 03:17:20 +0000
committerSND\weimingzhi_cp <SND\weimingzhi_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2010-05-30 03:17:20 +0000
commite5119ae370a0b2c721e154b45bb1d67b866aec89 (patch)
tree26cde1855f5c80c44265eb9da63e6f4bcd036ee9
parentbf456c2072aff8448ff83db081dc700bb7032846 (diff)
downloadpcsxr-e5119ae370a0b2c721e154b45bb1d67b866aec89.tar.gz
git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@49879 e17a0e51-4ae3-4d35-97c3-1a29b211df97
-rw-r--r--libpcsxcore/psxbios.c42
1 files changed, 19 insertions, 23 deletions
diff --git a/libpcsxcore/psxbios.c b/libpcsxcore/psxbios.c
index 70c193b3..c6ccbbcb 100644
--- a/libpcsxcore/psxbios.c
+++ b/libpcsxcore/psxbios.c
@@ -257,14 +257,14 @@ static TCB Thread[8];
static int CurThread = 0;
static FileDesc FDesc[32];
-static __inline void softCall(u32 pc) {
+static inline void softCall(u32 pc) {
pc0 = pc;
ra = 0x80001000;
while (pc0 != 0x80001000) psxCpu->ExecuteBlock();
}
-static __inline void softCall2(u32 pc) {
+static inline void softCall2(u32 pc) {
u32 sra = ra;
pc0 = pc;
ra = 0x80001000;
@@ -273,7 +273,7 @@ static __inline void softCall2(u32 pc) {
ra = sra;
}
-static __inline void DeliverEvent(u32 ev, u32 spec) {
+static inline void DeliverEvent(u32 ev, u32 spec) {
if (Event[ev][spec].status != EvStACTIVE) return;
// Event[ev][spec].status = EvStALREADY;
@@ -282,6 +282,19 @@ static __inline void DeliverEvent(u32 ev, u32 spec) {
} else Event[ev][spec].status = EvStALREADY;
}
+static inline void SaveRegs() {
+ memcpy(regs, psxRegs.GPR.r, 32*4);
+ regs[32] = psxRegs.GPR.n.lo;
+ regs[33] = psxRegs.GPR.n.hi;
+ regs[34] = psxRegs.pc;
+}
+
+static inline void LoadRegs() {
+ memcpy(psxRegs.GPR.r, regs, 32*4);
+ psxRegs.GPR.n.lo = regs[32];
+ psxRegs.GPR.n.hi = regs[33];
+}
+
/* *
// *
// *
@@ -1543,9 +1556,8 @@ void psxBios_PAD_init() { // 15
#ifdef PSXBIOS_LOG
PSXBIOS_LOG("psxBios_%s\n", biosB0n[0x15]);
#endif
-
psxHwWrite16(0x1f801074, (u16)(psxHwRead16(0x1f801074) | 0x1));
- pad_buf = (int*)Ra1;
+ pad_buf = (int *)Ra1;
*pad_buf = -1;
psxRegs.CP0.n.Status |= 0x401;
pc0 = ra;
@@ -1560,12 +1572,10 @@ void psxBios_PAD_dr() { // 16
}
void psxBios_ReturnFromException() { // 17
- memcpy(psxRegs.GPR.r, regs, 32*4);
- psxRegs.GPR.n.lo = regs[32];
- psxRegs.GPR.n.hi = regs[33];
+ LoadRegs();
pc0 = psxRegs.CP0.n.EPC;
- if (psxRegs.CP0.n.Cause & 0x80000000) pc0+=4;
+ if (psxRegs.CP0.n.Cause & 0x80000000) pc0 += 4;
psxRegs.CP0.n.Status = (psxRegs.CP0.n.Status & 0xfffffff0) |
((psxRegs.CP0.n.Status & 0x3c) >> 2);
@@ -2511,20 +2521,6 @@ void psxBiosInit() {
void psxBiosShutdown() {
}
-__inline void SaveRegs() {
- memcpy(regs, psxRegs.GPR.r, 32*4);
- regs[32] = psxRegs.GPR.n.lo;
- regs[33] = psxRegs.GPR.n.hi;
- regs[34] = psxRegs.pc;
-}
-
-__inline void LoadRegs() {
- memcpy(psxRegs.GPR.r, regs, 32*4);
- psxRegs.GPR.n.lo = regs[32];
- psxRegs.GPR.n.hi = regs[33];
-}
-
-
#define psxBios_PADpoll(pad) { \
PAD##pad##_startPoll(pad); \
pad_buf##pad[0] = 0; \