From 9c708c7f9fbb813a3fac02f2728e51e62f2f5ffc Mon Sep 17 00:00:00 2001 From: Pavel Dovgaluk Date: Fri, 10 Jul 2015 12:57:08 +0300 Subject: 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 Reviewed-by: Aurelien Jarno Reviewed-by: Leon Alrae [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 --- target-mips/helper.h | 1 + 1 file changed, 1 insertion(+) (limited to 'target-mips/helper.h') diff --git a/target-mips/helper.h b/target-mips/helper.h index 2b28e87..d8cc766 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) -- cgit v1.1