mirror of
https://github.com/VectorCamp/vectorscan.git
synced 2025-06-28 16:41:01 +03:00
parent
6259783d79
commit
cafd5248b1
@ -3092,6 +3092,7 @@ hwlmcb_rv_t roseRunProgram_l(const struct RoseEngine *t,
|
||||
|
||||
const char in_catchup = prog_flags & ROSE_PROG_FLAG_IN_CATCHUP;
|
||||
const char from_mpv = prog_flags & ROSE_PROG_FLAG_FROM_MPV;
|
||||
const char skip_mpv_catchup = prog_flags & ROSE_PROG_FLAG_SKIP_MPV_CATCHUP;
|
||||
|
||||
const char *pc_base = getByOffset(t, programOffset);
|
||||
const char *pc = pc_base;
|
||||
@ -3188,6 +3189,17 @@ hwlmcb_rv_t roseRunProgram_l(const struct RoseEngine *t,
|
||||
}
|
||||
L_PROGRAM_NEXT_INSTRUCTION
|
||||
|
||||
L_PROGRAM_CASE(CATCH_UP_MPV) {
|
||||
if (from_mpv || skip_mpv_catchup) {
|
||||
DEBUG_PRINTF("skipping mpv catchup\n");
|
||||
} else if (roseCatchUpMPV(t,
|
||||
end - scratch->core_info.buf_offset,
|
||||
scratch) == HWLM_TERMINATE_MATCHING) {
|
||||
return HWLM_TERMINATE_MATCHING;
|
||||
}
|
||||
}
|
||||
L_PROGRAM_NEXT_INSTRUCTION
|
||||
|
||||
L_PROGRAM_CASE(SOM_FROM_REPORT) {
|
||||
som = handleSomExternal(scratch, &ri->som, end);
|
||||
DEBUG_PRINTF("som from report %u is %llu\n", ri->som.onmatch,
|
||||
@ -3195,6 +3207,15 @@ hwlmcb_rv_t roseRunProgram_l(const struct RoseEngine *t,
|
||||
}
|
||||
L_PROGRAM_NEXT_INSTRUCTION
|
||||
|
||||
L_PROGRAM_CASE(TRIGGER_SUFFIX) {
|
||||
if (roseTriggerSuffix(t, scratch, ri->queue, ri->event, som,
|
||||
end) == HWLM_TERMINATE_MATCHING) {
|
||||
return HWLM_TERMINATE_MATCHING;
|
||||
}
|
||||
work_done = 1;
|
||||
}
|
||||
L_PROGRAM_NEXT_INSTRUCTION
|
||||
|
||||
L_PROGRAM_CASE(DEDUPE) {
|
||||
updateSeqPoint(tctxt, end, from_mpv);
|
||||
const char do_som = t->hasSom; // TODO: constant propagate
|
||||
|
Loading…
x
Reference in New Issue
Block a user