DSPLLE: fix some comments, returned andc and orc (according to tests)

but andc'ls still behaves strange and we couldn't merge them together.



git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3915 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
nakeee
2009-07-31 15:21:35 +00:00
parent 903346e06f
commit 45a71bf3ef
5 changed files with 108 additions and 97 deletions

View File

@ -94,6 +94,13 @@ void s(const UDSPInstruction& opc)
dsp_dmem_write(g_dsp.r[dreg], g_dsp.r[sreg]);
currentEpilogeFunc = s_epi;
}
void s_epi(const UDSPInstruction& opc)
{
u8 dreg = opc.hex & 0x3;
dsp_increment_addr_reg(dreg);
}
@ -108,6 +115,14 @@ void sn(const UDSPInstruction& opc)
dsp_dmem_write(g_dsp.r[dreg], g_dsp.r[sreg]);
currentEpilogeFunc = sn_epi;
}
void sn_epi(const UDSPInstruction& opc)
{
u8 dreg = opc.hex & 0x3;
dsp_increase_addr_reg(dreg, (s16)g_dsp.r[DSP_REG_IX0 + dreg]);
}
@ -141,9 +156,9 @@ void ln(const UDSPInstruction& opc)
dsp_increase_addr_reg(sreg, (s16)g_dsp.r[DSP_REG_IX0 + sreg]);
}
// LS $(0x18+D), $acS.m
// LS $axD.l, $acS.m
// xxxx xxxx 10dd 000s
// Load register $(0x18+D) with value from memory pointed by register
// Load register $axD.l with value from memory pointed by register
// $ar0. Store value from register $acS.m to memory location pointed by
// register $ar3. Increment both $ar0 and $ar3.
void ls(const UDSPInstruction& opc)
@ -165,9 +180,9 @@ void ls_epi(const UDSPInstruction& opc)
dsp_increment_addr_reg(0x00);
}
// LSN $(0x18+D), $acS.m
// LSN $acD.l, $acS.m
// xxxx xxxx 10dd 010s
// Load register $(0x18+D) with value from memory pointed by register
// Load register $acD.l with value from memory pointed by register
// $ar0. Store value from register $acS.m to memory location pointed by
// register $ar3. Add corresponding indexing register $ix0 to addressing
// register $ar0 and increment $ar3.
@ -190,9 +205,9 @@ void lsn_epi(const UDSPInstruction& opc)
dsp_increase_addr_reg(0x00, (s16)g_dsp.r[DSP_REG_IX0]);
}
// LSM $(0x18+D), $acS.m
// LSM $acD.l, $acS.m
// xxxx xxxx 10dd 100s
// Load register $(0x18+D) with value from memory pointed by register
// Load register $acD.l with value from memory pointed by register
// $ar0. Store value from register $acS.m to memory location pointed by
// register $ar3. Add corresponding indexing register $ix3 to addressing
// register $ar3 and increment $ar0.
@ -216,9 +231,9 @@ void lsm_epi(const UDSPInstruction& opc)
dsp_increment_addr_reg(0x00);
}
// LSMN $(0x18+D), $acS.m
// LSMN $acD.l, $acS.m
// xxxx xxxx 10dd 110s
// Load register $(0x18+D) with value from memory pointed by register
// Load register $acD.l with value from memory pointed by register
// $ar0. Store value from register $acS.m to memory location pointed by
// register $ar3. Add corresponding indexing register $ix0 to addressing
// register $ar0 and add corresponding indexing register $ix3 to addressing
@ -243,10 +258,10 @@ void lsnm_epi(const UDSPInstruction& opc)
dsp_increase_addr_reg(0x00, (s16)g_dsp.r[DSP_REG_IX0]);
}
// SL $acS.m, $(0x18+D)
// SL $acS.m, $acD.l
// xxxx xxxx 10dd 001s
// Store value from register $acS.m to memory location pointed by register
// $ar0. Load register $(0x18+D) with value from memory pointed by register
// $ar0. Load register $acD.l with value from memory pointed by register
// $ar3. Increment both $ar0 and $ar3.
void sl(const UDSPInstruction& opc)
{
@ -267,10 +282,10 @@ void sl_epi(const UDSPInstruction& opc)
dsp_increment_addr_reg(sreg);
}
// SLN $acS.m, $(0x18+D)
// SLN $acS.m, $acD.l
// xxxx xxxx 10dd 011s
// Store value from register $acS.m to memory location pointed by register
// $ar0. Load register $(0x18+D) with value from memory pointed by register
// $ar0. Load register $acD.l with value from memory pointed by register
// $ar3. Add corresponding indexing register $ix0 to addressing register $ar0
// and increment $ar3.
void sln(const UDSPInstruction& opc)
@ -292,10 +307,10 @@ void sln_epi(const UDSPInstruction& opc)
dsp_increment_addr_reg(sreg);
}
// SLM $acS.m, $(0x18+D)
// SLM $acS.m, $acD.l
// xxxx xxxx 10dd 101s
// Store value from register $acS.m to memory location pointed by register
// $ar0. Load register $(0x18+D) with value from memory pointed by register
// $ar0. Load register $acD.l with value from memory pointed by register
// $ar3. Add corresponding indexing register $ix3 to addressing register $ar3
// and increment $ar0.
void slm(const UDSPInstruction& opc)
@ -317,10 +332,10 @@ void slm_epi(const UDSPInstruction& opc)
dsp_increase_addr_reg(sreg, (s16)g_dsp.r[DSP_REG_IX0 + sreg]);
}
// SLMN $acS.m, $(0x18+D)
// SLMN $acS.m, $acD.l
// xxxx xxxx 10dd 111s
// Store value from register $acS.m to memory location pointed by register
// $ar0. Load register $(0x18+D) with value from memory pointed by register
// $ar0. Load register $acD.l with value from memory pointed by register
// $ar3. Add corresponding indexing register $ix0 to addressing register $ar0
// and add corresponding indexing register $ix3 to addressing register $ar3.
void slnm(const UDSPInstruction& opc)