target-tricore: fix depositing bits from PCXI into ICR

Spotted by Coverity, because (env->PCXI & MASK_PCXI_PCPN) >> 24
is always zero.  The immediately preceding assignment is also
wrong though.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
Message-Id: <1435147270-1040-1-git-send-email-pbonzini@redhat.com>
This commit is contained in:
Paolo Bonzini 2015-06-24 14:01:10 +02:00 committed by Bastian Koppelmann
parent dc1e1350f8
commit 5f37fd8e29

View File

@ -2545,10 +2545,10 @@ void helper_rfm(CPUTriCoreState *env)
env->PC = (env->gpr_a[11] & ~0x1); env->PC = (env->gpr_a[11] & ~0x1);
/* ICR.IE = PCXI.PIE; */ /* ICR.IE = PCXI.PIE; */
env->ICR = (env->ICR & ~MASK_ICR_IE) | env->ICR = (env->ICR & ~MASK_ICR_IE) |
((env->PCXI & ~MASK_PCXI_PIE) >> 15); ((env->PCXI & MASK_PCXI_PIE) >> 15);
/* ICR.CCPN = PCXI.PCPN; */ /* ICR.CCPN = PCXI.PCPN; */
env->ICR = (env->ICR & ~MASK_ICR_CCPN) | env->ICR = (env->ICR & ~MASK_ICR_CCPN) |
((env->PCXI & ~MASK_PCXI_PCPN) >> 24); ((env->PCXI & MASK_PCXI_PCPN) >> 24);
/* {PCXI, PSW, A[10], A[11]} = M(DCX, 4 * word); */ /* {PCXI, PSW, A[10], A[11]} = M(DCX, 4 * word); */
env->PCXI = cpu_ldl_data(env, env->DCX); env->PCXI = cpu_ldl_data(env, env->DCX);
psw_write(env, cpu_ldl_data(env, env->DCX+4)); psw_write(env, cpu_ldl_data(env, env->DCX+4));