import gdb-1999-08-30 snapshot
[deliverable/binutils-gdb.git] / sim / m32r / sem.c
index b337bb86bc70af760f69912895c02824285e48dc..b4f1569281c388ad5ab9ccf2cf190c3e87864fbe 100644 (file)
@@ -2671,13 +2671,21 @@ SEM_FN_NAME (m32rbf,init_idesc_table) (SIM_CPU *current_cpu)
 {
   IDESC *idesc_table = CPU_IDESC (current_cpu);
   const struct sem_fn_desc *sf;
+  int mach_num = MACH_NUM (CPU_MACH (current_cpu));
 
   for (sf = &sem_fns[0]; sf->fn != 0; ++sf)
     {
+      int valid_p = CGEN_INSN_MACH_HAS_P (idesc_table[sf->index].idata, mach_num);
 #if FAST_P
-      idesc_table[sf->index].sem_fast = sf->fn;
+      if (valid_p)
+       idesc_table[sf->index].sem_fast = sf->fn;
+      else
+       idesc_table[sf->index].sem_fast = SEM_FN_NAME (m32rbf,x_invalid);
 #else
-      idesc_table[sf->index].sem_full = sf->fn;
+      if (valid_p)
+       idesc_table[sf->index].sem_full = sf->fn;
+      else
+       idesc_table[sf->index].sem_full = SEM_FN_NAME (m32rbf,x_invalid);
 #endif
     }
 }
This page took 0.038581 seconds and 4 git commands to generate.