CRIS_MISC_PROFILE *profp
     = CPU_CRIS_MISC_PROFILE (current_cpu);
   unsigned64 total = profp->basic_cycle_count;
-  const char *textmsg = "Basic clock cycles, total @: %llu\n";
+
+  /* Historically, these messages have gone to stderr, so we'll keep it
+     that way.  It's also easier to then tell it from normal program
+     output.  FIXME: Add redirect option like "run -e file".  */
 
   /* The --cris-stats={basic|unaligned|schedulable|all} counts affect
      what's included in the "total" count only.  */
          & FLAG_CRIS_MISC_PROFILE_ALL)
     {
     case FLAG_CRIS_MISC_PROFILE_SIMPLE:
+      sim_io_eprintf (sd, "Basic clock cycles, total @: %" PRIu64 "\n", total);
       break;
 
     case (FLAG_CRIS_MISC_PROFILE_UNALIGNED | FLAG_CRIS_MISC_PROFILE_SIMPLE):
-      textmsg
-       = "Clock cycles including stall cycles for unaligned accesses @: %llu\n";
       total += profp->unaligned_mem_dword_count;
+      sim_io_eprintf (sd,
+                     "Clock cycles including stall cycles for unaligned "
+                     "accesses @: %" PRIu64 "\n",
+                     total);
       break;
 
     case (FLAG_CRIS_MISC_PROFILE_SCHEDULABLE | FLAG_CRIS_MISC_PROFILE_SIMPLE):
-      textmsg = "Schedulable clock cycles, total @: %llu\n";
       total
        += (profp->memsrc_stall_count
            + profp->memraw_stall_count
            + profp->mulsrc_stall_count
            + profp->jumpsrc_stall_count
            + profp->unaligned_mem_dword_count);
+      sim_io_eprintf (sd, "Schedulable clock cycles, total @: %" PRIu64 "\n",
+                     total);
       break;
 
     case FLAG_CRIS_MISC_PROFILE_ALL:
-      textmsg = "All accounted clock cycles, total @: %llu\n";
       total
        += (profp->memsrc_stall_count
            + profp->memraw_stall_count
            + profp->branch_stall_count
            + profp->jumptarget_stall_count
            + profp->unaligned_mem_dword_count);
+      sim_io_eprintf (sd, "All accounted clock cycles, total @: %" PRIu64 "\n",
+                     total);
       break;
 
     default:
-      abort ();
-
-      sim_io_eprintf (sd,
-                     "Internal inconsistency at %s:%d",
-                     __FILE__, __LINE__);
-      sim_engine_halt (sd, current_cpu, NULL, 0,
-                      sim_stopped, SIM_SIGILL);
+      sim_engine_abort (sd, current_cpu, 0,
+                       "Internal inconsistency at %s:%d",
+                       __FILE__, __LINE__);
     }
 
-  /* Historically, these messages have gone to stderr, so we'll keep it
-     that way.  It's also easier to then tell it from normal program
-     output.  FIXME: Add redirect option like "run -e file".  */
-  sim_io_eprintf (sd, textmsg, total);
-
   /* For v32, unaligned_mem_dword_count should always be 0.  For
      v10, memsrc_stall_count should always be 0.  */
-  sim_io_eprintf (sd, "Memory source stall cycles: %llu\n",
-                 (unsigned long long) (profp->memsrc_stall_count
-                                       + profp->unaligned_mem_dword_count));
-  sim_io_eprintf (sd, "Memory read-after-write stall cycles: %llu\n",
-                 (unsigned long long) profp->memraw_stall_count);
-  sim_io_eprintf (sd, "Movem source stall cycles: %llu\n",
-                 (unsigned long long) profp->movemsrc_stall_count);
-  sim_io_eprintf (sd, "Movem destination stall cycles: %llu\n",
-                 (unsigned long long) profp->movemdst_stall_count);
-  sim_io_eprintf (sd, "Movem address stall cycles: %llu\n",
-                 (unsigned long long) profp->movemaddr_stall_count);
-  sim_io_eprintf (sd, "Multiplication source stall cycles: %llu\n",
-                 (unsigned long long) profp->mulsrc_stall_count);
-  sim_io_eprintf (sd, "Jump source stall cycles: %llu\n",
-                 (unsigned long long) profp->jumpsrc_stall_count);
-  sim_io_eprintf (sd, "Branch misprediction stall cycles: %llu\n",
-                 (unsigned long long) profp->branch_stall_count);
-  sim_io_eprintf (sd, "Jump target stall cycles: %llu\n",
-                 (unsigned long long) profp->jumptarget_stall_count);
+  sim_io_eprintf (sd, "Memory source stall cycles: %" PRIu64 "\n",
+                 profp->memsrc_stall_count + profp->unaligned_mem_dword_count);
+  sim_io_eprintf (sd, "Memory read-after-write stall cycles: %" PRIu64 "\n",
+                 profp->memraw_stall_count);
+  sim_io_eprintf (sd, "Movem source stall cycles: %" PRIu64 "\n",
+                 profp->movemsrc_stall_count);
+  sim_io_eprintf (sd, "Movem destination stall cycles: %" PRIu64 "\n",
+                 profp->movemdst_stall_count);
+  sim_io_eprintf (sd, "Movem address stall cycles: %" PRIu64 "\n",
+                 profp->movemaddr_stall_count);
+  sim_io_eprintf (sd, "Multiplication source stall cycles: %" PRIu64 "\n",
+                 profp->mulsrc_stall_count);
+  sim_io_eprintf (sd, "Jump source stall cycles: %" PRIu64 "\n",
+                 profp->jumpsrc_stall_count);
+  sim_io_eprintf (sd, "Branch misprediction stall cycles: %" PRIu64 "\n",
+                 profp->branch_stall_count);
+  sim_io_eprintf (sd, "Jump target stall cycles: %" PRIu64 "\n",
+                 profp->jumptarget_stall_count);
 }
 
 /* Check whether any part of [addr .. addr + len - 1] is already mapped.
 
   if (cb_syscall (cb, &s) != CB_RC_OK)
     {
-      abort ();
-      sim_io_eprintf (sd, "Break 13: invalid %d?  Returned %ld\n", callnum,
-                     s.result);
-      sim_engine_halt (sd, current_cpu, NULL, pc, sim_stopped, SIM_SIGILL);
+      sim_engine_abort (sd, current_cpu, pc,
+                       "Break 13: invalid %d?  Returned %ld\n", callnum,
+                       s.result);
     }
 
   retval = s.result == -1 ? -s.errcode : s.result;