mirror of https://github.com/xqemu/xqemu.git
target-tricore: Fix psw_read() clearing too many bits
psw_read() ought to sync the PSW value with the cached status bits (C,V,SV,AV,SAV). For this the bits are cleared in the PSW before they are written from the cached bits. The clear mask is too big and clears two additional bits. Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de> Message-Id: <1458547383-23102-4-git-send-email-kbastian@mail.uni-paderborn.de>
This commit is contained in:
parent
9029710b9e
commit
1bd3e2fc3d
|
@ -113,7 +113,7 @@ void tricore_cpu_list(FILE *f, fprintf_function cpu_fprintf)
|
|||
uint32_t psw_read(CPUTriCoreState *env)
|
||||
{
|
||||
/* clear all USB bits */
|
||||
env->PSW &= 0xffffff;
|
||||
env->PSW &= 0x6ffffff;
|
||||
/* now set them from the cache */
|
||||
env->PSW |= ((env->PSW_USB_C != 0) << 31);
|
||||
env->PSW |= ((env->PSW_USB_V & (1 << 31)) >> 1);
|
||||
|
|
Loading…
Reference in New Issue