Don't crash if there's no rule for an opcode
authorDavid Schleef <ds@schleef.org>
Thu, 12 Mar 2009 22:44:31 +0000 (15:44 -0700)
committerDavid Schleef <ds@schleef.org>
Thu, 12 Mar 2009 23:01:38 +0000 (16:01 -0700)
orc/orcprogram-sse.c

index 445ee1c..acb6c4d 100644 (file)
@@ -360,13 +360,14 @@ sse_emit_loop (OrcProgram *program)
     }
 
     rule = insn->rule;
-    if (rule) {
+    if (rule && rule->emit) {
       if (args[0]->alloc != args[1]->alloc) {
         x86_emit_mov_sse_reg_reg (program, args[1]->alloc, args[0]->alloc);
       }
       rule->emit (program, rule->emit_user, insn);
     } else {
       orc_program_append_code(program,"No rule for: %s\n", opcode->name);
+      program->error = TRUE;
     }
 
     for(k=0;k<opcode->n_dest;k++){