checkasm: Issue emms after benchmarking functions

The functions may not clean up properly after using MMX
registers. For the normal testing calls, the checkasm_checked_call
functions will do the cleanup (and check that functions that
should clean up do it as well), but when benchmarking functions
that don't clean up, we don't currently properly clean up at all.

This causes issues if a benchmarked function is followed by testing
of a function that is supposed to not clobber the MMX/FPU state but
doesn't touch it at all.

Signed-off-by: Martin Storsjö <martin@martin.st>
This commit is contained in:
Martin Storsjö 2016-06-21 14:00:01 +03:00
parent beb62dac62
commit dc7501e524
1 changed files with 2 additions and 0 deletions

View File

@ -27,6 +27,7 @@
#include "config.h" #include "config.h"
#include "libavutil/avstring.h" #include "libavutil/avstring.h"
#include "libavutil/cpu.h" #include "libavutil/cpu.h"
#include "libavutil/internal.h"
#include "libavutil/lfg.h" #include "libavutil/lfg.h"
#include "libavutil/timer.h" #include "libavutil/timer.h"
@ -161,6 +162,7 @@ void checkasm_checked_call(void *func, ...);
tcount++;\ tcount++;\
}\ }\
}\ }\
emms_c();\
checkasm_update_bench(tcount, tsum);\ checkasm_update_bench(tcount, tsum);\
}\ }\
} while (0) } while (0)