* armemu.c (LoadSMult): Use WriteR15() to discard the least
significant bits of PC.
This commit is contained in:
parent
892c6b9d8f
commit
13b6dd6f68
@ -1,5 +1,8 @@
|
|||||||
2000-07-04 Alexandre Oliva <aoliva@redhat.com>
|
2000-07-04 Alexandre Oliva <aoliva@redhat.com>
|
||||||
|
|
||||||
|
* armemu.c (LoadSMult): Use WriteR15() to discard the least
|
||||||
|
significant bits of PC.
|
||||||
|
|
||||||
* armemu.h (WRITEDESTB): New macro.
|
* armemu.h (WRITEDESTB): New macro.
|
||||||
* armemu.c (ARMul_Emulate26, bl): Use WriteR15Branch() to
|
* armemu.c (ARMul_Emulate26, bl): Use WriteR15Branch() to
|
||||||
modify PC. Moved the existing logic...
|
modify PC. Moved the existing logic...
|
||||||
|
@ -3544,7 +3544,7 @@ LoadSMult (ARMul_State * state, ARMword instr,
|
|||||||
state->Cpsr = GETSPSR (state->Bank);
|
state->Cpsr = GETSPSR (state->Bank);
|
||||||
ARMul_CPSRAltered (state);
|
ARMul_CPSRAltered (state);
|
||||||
}
|
}
|
||||||
state->Reg[15] = PC;
|
WriteR15 (state, PC);
|
||||||
#else
|
#else
|
||||||
if (state->Mode == USER26MODE || state->Mode == USER32MODE)
|
if (state->Mode == USER26MODE || state->Mode == USER32MODE)
|
||||||
{ /* protect bits in user mode */
|
{ /* protect bits in user mode */
|
||||||
@ -3555,8 +3555,8 @@ LoadSMult (ARMul_State * state, ARMword instr,
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
ARMul_R15Altered (state);
|
ARMul_R15Altered (state);
|
||||||
#endif
|
|
||||||
FLUSHPIPE;
|
FLUSHPIPE;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!BIT (15) && state->Mode != USER26MODE && state->Mode != USER32MODE)
|
if (!BIT (15) && state->Mode != USER26MODE && state->Mode != USER32MODE)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user