diff options
author | Pavel Dovgaluk <Pavel.Dovgaluk@ispras.ru> | 2015-07-10 12:57:08 +0300 |
---|---|---|
committer | Leon Alrae <leon.alrae@imgtec.com> | 2015-09-18 12:07:24 +0100 |
commit | 9c708c7f9fbb813a3fac02f2728e51e62f2f5ffc (patch) | |
tree | 30c2e51a383243a8d135465729a43b0c2745d94f /target-mips/helper.h | |
parent | d54a299b83a07642c85a22bfe19b69ca4def9ec4 (diff) |
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>
Diffstat (limited to 'target-mips/helper.h')
-rw-r--r-- | target-mips/helper.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/target-mips/helper.h b/target-mips/helper.h index 2b28e875cf..d8cc766bdf 100644 --- a/target-mips/helper.h +++ b/target-mips/helper.h @@ -1,5 +1,6 @@ DEF_HELPER_3(raise_exception_err, noreturn, env, i32, int) DEF_HELPER_2(raise_exception, noreturn, env, i32) +DEF_HELPER_1(raise_exception_debug, noreturn, env) DEF_HELPER_1(do_semihosting, void, env) |