mips: set CP0 Debug DExcCode for SDBBP instruction

This patch fixes setting DExcCode field of CP0 Debug register
when SDBBP instruction is executed. According to EJTAG specification,
this field must be set to the value 9 (Bp).

Signed-off-by: Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>
Message-id: 20170502120350.3368.92338.stgit@PASHA-ISP
Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
This commit is contained in:
Pavel Dovgalyuk 2017-06-23 12:41:16 +02:00 committed by Aurelien Jarno
parent 77031ee1ce
commit c6c2c0fc32

View File

@ -627,6 +627,8 @@ void mips_cpu_do_interrupt(CPUState *cs)
goto set_DEPC; goto set_DEPC;
case EXCP_DBp: case EXCP_DBp:
env->CP0_Debug |= 1 << CP0DB_DBp; env->CP0_Debug |= 1 << CP0DB_DBp;
/* Setup DExcCode - SDBBP instruction */
env->CP0_Debug = (env->CP0_Debug & ~(0x1fULL << CP0DB_DEC)) | 9 << CP0DB_DEC;
goto set_DEPC; goto set_DEPC;
case EXCP_DDBS: case EXCP_DDBS:
env->CP0_Debug |= 1 << CP0DB_DDBS; env->CP0_Debug |= 1 << CP0DB_DDBS;