on 'C2x-compatible opcodes that set treg(0), treg1/2 are set too if TRM=0

This commit is contained in:
Michaël Banaan Ananas 2012-07-15 16:35:50 +00:00
parent 7018fde0a3
commit aefabca2f9

View File

@ -1493,6 +1493,11 @@ static void op_lt(tms32051_state *cpustate)
UINT16 data = DM_READ16(cpustate, ea); UINT16 data = DM_READ16(cpustate, ea);
cpustate->treg0 = data; cpustate->treg0 = data;
if (cpustate->pmst.trm == 0)
{
cpustate->treg1 = data;
cpustate->treg2 = data;
}
CYCLES(1); CYCLES(1);
} }
@ -1506,6 +1511,11 @@ static void op_lta(tms32051_state *cpustate)
cpustate->treg0 = data; cpustate->treg0 = data;
spreg = PREG_PSCALER(cpustate, cpustate->preg); spreg = PREG_PSCALER(cpustate, cpustate->preg);
cpustate->acc = ADD(cpustate, cpustate->acc, spreg, 0); cpustate->acc = ADD(cpustate, cpustate->acc, spreg, 0);
if (cpustate->pmst.trm == 0)
{
cpustate->treg1 = data;
cpustate->treg2 = data;
}
CYCLES(1); CYCLES(1);
} }