[mono][llvm] Assert on unhandled opcodes instead of falling back to the mini JIT...
authorZoltan Varga <vargaz@gmail.com>
Fri, 28 Apr 2023 19:05:13 +0000 (21:05 +0200)
committerGitHub <noreply@github.com>
Fri, 28 Apr 2023 19:05:13 +0000 (21:05 +0200)
src/mono/mono/mini/mini-llvm.c

index 27ebf53..c8d4af7 100644 (file)
@@ -5840,6 +5840,7 @@ process_bb (EmitContext *ctx, MonoBasicBlock *bb)
                case OP_NOT_NULL:
                case OP_LIVERANGE_START:
                case OP_LIVERANGE_END:
+               case OP_TAILCALL_PARAMETER:
                        break;
                case OP_ICONST:
                        values [ins->dreg] = const_int32 (ins->inst_c0);
@@ -11747,13 +11748,20 @@ MONO_RESTORE_WARNING
                }
                case OP_IL_SEQ_POINT:
                        break;
-               default: {
+               case OP_ARGLIST:
+               case OP_TAILCALL:
+               case OP_TAILCALL_REG:
+               case OP_TAILCALL_MEMBASE:
+               case OP_CKFINITE: {
                        char reason [128];
 
                        sprintf (reason, "opcode %s", mono_inst_name (ins->opcode));
                        set_failure (ctx, reason);
                        break;
                }
+               default:
+                       g_error ("opcode %d %s", ins->opcode, mono_inst_name (ins->opcode));
+                       break;
                }
 
                if (!ctx_ok (ctx))