From ac3bd0b7814b2a9ccb0d781d7cf3726c09f6d0f0 Mon Sep 17 00:00:00 2001 From: Jay Krell Date: Mon, 23 Sep 2019 02:10:23 -0700 Subject: [PATCH] [interp] Improve debuggability with enum. (mono/mono#16721) Commit migrated from https://github.com/mono/mono/commit/7497e4933c6fc0819f8f202829c26c410e4f0e5c --- src/mono/mono/mini/interp/interp.c | 5 +++-- src/mono/mono/mini/interp/mintops.h | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/mono/mono/mini/interp/interp.c b/src/mono/mono/mini/interp/interp.c index 5eb95af..8191f39 100644 --- a/src/mono/mono/mini/interp/interp.c +++ b/src/mono/mono/mini/interp/interp.c @@ -213,14 +213,14 @@ int mono_interp_traceopt = 0; #if USE_COMPUTED_GOTO -#define MINT_IN_DISPATCH(op) goto *in_labels [op] +#define MINT_IN_DISPATCH(op) goto *in_labels [opcode = (MintOpcode)(op)] #define MINT_IN_SWITCH(op) MINT_IN_DISPATCH (op); #define MINT_IN_BREAK MINT_IN_DISPATCH (*ip) #define MINT_IN_CASE(x) LAB_ ## x: #else -#define MINT_IN_SWITCH(op) COUNT_OP(op); switch (op) +#define MINT_IN_SWITCH(op) COUNT_OP(op); switch (opcode = (MintOpcode)(op)) #define MINT_IN_CASE(x) case x: #define MINT_IN_BREAK break @@ -3267,6 +3267,7 @@ interp_exec_method_full (InterpFrame *frame, ThreadContext *context, FrameClause * but it may be useful for debug */ while (1) { + MintOpcode opcode; main_loop: /* g_assert (sp >= frame->stack); */ /* g_assert(vt_sp - vtalloc <= frame->imethod->vt_stack_size); */ diff --git a/src/mono/mono/mini/interp/mintops.h b/src/mono/mono/mini/interp/mintops.h index 389dce8..b70a88d 100644 --- a/src/mono/mono/mini/interp/mintops.h +++ b/src/mono/mono/mini/interp/mintops.h @@ -27,10 +27,10 @@ typedef enum } MintOpArgType; #define OPDEF(a,b,c,d,e,f) a, -enum { +typedef enum { #include "mintops.def" MINT_LASTOP -}; +} MintOpcode; #undef OPDEF #if NO_UNALIGNED_ACCESS -- 2.7.4