OSDN Git Service

target-mips: improve exception handling
authorPavel Dovgaluk <Pavel.Dovgaluk@ispras.ru>
Fri, 10 Jul 2015 09:57:08 +0000 (12:57 +0300)
committerLeon Alrae <leon.alrae@imgtec.com>
Fri, 18 Sep 2015 11:07:24 +0000 (12:07 +0100)
commit9c708c7f9fbb813a3fac02f2728e51e62f2f5ffc
tree30c2e51a383243a8d135465729a43b0c2745d94f
parentd54a299b83a07642c85a22bfe19b69ca4def9ec4
target-mips: improve exception handling

This patch improves exception handling in MIPS.
Instructions generate several types of exceptions.
When exception is generated, it breaks the execution of the current
translation block. Implementation of the exceptions handling does not
correctly restore icount for the instruction which caused the exception.
In most cases icount will be decreased by the value equal to the size of
TB. This patch passes pointer to the translation block internals to the
exception handler. It allows correct restoring of the icount value.

Signed-off-by: Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>
Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>
Reviewed-by: Leon Alrae <leon.alrae@imgtec.com>
[leon.alrae@imgtec.com: avoid retranslation in linux-user SC, break lines
 which are over 80 chars, remove v3 changelog from the commit message]
Signed-off-by: Leon Alrae <leon.alrae@imgtec.com>
target-mips/cpu.h
target-mips/helper.h
target-mips/msa_helper.c
target-mips/op_helper.c
target-mips/translate.c