if (EQ_STATE(estate, LOAD_STATE(&ctx->cached_estate))) {
DEBUG_PRINTF("using cached succ from previous state\n");
STORE_STATE(succ, OR_STATE(LOAD_STATE(succ), LOAD_STATE(&ctx->cached_esucc)));
- if (ctx->cached_reports) {
+ if (ctx->cached_reports && (flags & CALLBACK_OUTPUT)) {
+ DEBUG_PRINTF("firing cached reports from previous state\n");
if (unlikely(limexRunReports(ctx->cached_reports, ctx->callback,
ctx->context, offset)
== MO_HALT_MATCHING)) {
if (estate == ctx->cached_estate) {
DEBUG_PRINTF("using cached succ from previous state\n");
*succ |= ctx->cached_esucc;
- if (ctx->cached_reports) {
+ if (ctx->cached_reports && (flags & CALLBACK_OUTPUT)) {
+ DEBUG_PRINTF("firing cached reports from previous state\n");
if (unlikely(limexRunReports(ctx->cached_reports, ctx->callback,
ctx->context, offset)
== MO_HALT_MATCHING)) {
assert(ISALIGNED_CL(ctx));
assert(ISALIGNED_CL(&ctx->s));
STATE_T s = LOAD_STATE(&ctx->s);
- STORE_STATE(&ctx->cached_estate, ZERO_STATE); /* TODO: understand why this is required */
/* assert(ISALIGNED_16(exceptions)); */
/* assert(ISALIGNED_16(reach)); */
const ReportID *exReports = getExReports(limex);
const u32 *exceptionMap = limex->exceptionMap;
STATE_T s = LOAD_STATE(&ctx->s);
- STORE_STATE(&ctx->cached_estate, ZERO_STATE); /* TODO: understand why this is required */
/* assert(ISALIGNED_16(exceptions)); */
/* assert(ISALIGNED_16(reach)); */