about summary refs log tree commit diff stats
path: root/src/emu/x64trace.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/emu/x64trace.c')
-rw-r--r--src/emu/x64trace.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/emu/x64trace.c b/src/emu/x64trace.c
index 891867f8..65157958 100644
--- a/src/emu/x64trace.c
+++ b/src/emu/x64trace.c
@@ -238,3 +238,20 @@ const char* DecodeX64Trace(zydis_dec_t* dec, uintptr_t p, int withhex)
     return buff;
 #endif
 }
+
+int OpcodeOK(zydis_dec_t* dec, uintptr_t p)
+{
+#ifndef HAVE_TRACE
+    return 1;
+#else
+#ifndef ZYDIS3
+    if (ZYAN_SUCCESS(dec->ZydisDecoderDecodeFull(&dec->decoder, (char*)p, 15,
+            &dec->instruction, dec->operands)))
+#else
+    if (ZYAN_SUCCESS(dec->ZydisDecoderDecodeBuffer(&dec->decoder, (char*)p, 15,
+            &dec->instruction)))
+#endif
+        return 1;
+    return 0;
+#endif
+}