From: Julian Seward Date: Fri, 29 Jul 2005 08:51:34 +0000 (+0000) Subject: Handle a failure case more gracefully. X-Git-Tag: svn/VALGRIND_3_0_0~26 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=6071b864a9cad8a01df7c8b00fcc2bc9bb078303;p=thirdparty%2Fvalgrind.git Handle a failure case more gracefully. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4292 --- diff --git a/coregrind/m_scheduler/scheduler.c b/coregrind/m_scheduler/scheduler.c index 41b41acce8..ed4155b471 100644 --- a/coregrind/m_scheduler/scheduler.c +++ b/coregrind/m_scheduler/scheduler.c @@ -760,6 +760,18 @@ VgSchedReturnCode VG_(scheduler) ( ThreadId tid ) VG_(printf)("dump translations done.\n"); break; + case VG_TRC_INVARIANT_FAILED: + /* This typically happens if, after running generated code, + it is detected that host CPU settings (eg, FPU/Vector + control words) are not as they should be. Vex's code + generation specifies the state such control words should + be in on entry to Vex-generated code, and they should be + unchanged on exit from it. Failure of this assertion + usually means a bug in Vex's code generation. */ + vg_assert2(0, "VG_(scheduler), phase 3: " + "run_innerloop detected host " + "state invariant failure", trc); + default: vg_assert2(0, "VG_(scheduler), phase 3: " "unexpected thread return code (%u)", trc);