From a8d894af636985bcc6a8d8bcae75355db0e87345 Mon Sep 17 00:00:00 2001 From: Ben Elliston Date: Sun, 8 Oct 2000 22:37:14 +0000 Subject: * usability improvements 2000-10-08 Ben Elliston * cgen-utils.c (cgen_rtx_error): New function. 2000-10-07 Ben Elliston * cgen-trace.c (sim_cgen_disassemble_insn): Handle failure conditions for sim_core_read_buffer(). --- sim/common/ChangeLog | 9 +++++++++ sim/common/cgen-trace.c | 5 +++++ sim/common/cgen-utils.c | 13 +++++++++++++ 3 files changed, 27 insertions(+) diff --git a/sim/common/ChangeLog b/sim/common/ChangeLog index 4b43e06..523b9f9 100644 --- a/sim/common/ChangeLog +++ b/sim/common/ChangeLog @@ -1,3 +1,12 @@ +2000-10-08 Ben Elliston + + * cgen-utils.c (cgen_rtx_error): New function. + +2000-10-07 Ben Elliston + + * cgen-trace.c (sim_cgen_disassemble_insn): Handle failure + conditions for sim_core_read_buffer(). + 2000-09-26 Dave Brolley * cgen-utils.c (RORQI): New function. diff --git a/sim/common/cgen-trace.c b/sim/common/cgen-trace.c index 8b084f4..5b1d0e1 100644 --- a/sim/common/cgen-trace.c +++ b/sim/common/cgen-trace.c @@ -381,6 +381,11 @@ sim_cgen_disassemble_insn (SIM_CPU *cpu, const CGEN_INSN *insn, length = sim_core_read_buffer (sd, cpu, read_map, &insn_buf, pc, insn_length); + if (length != insn_length) + { + sim_io_error (sd, "unable to read address %x", pc); + } + /* If the entire insn will fit into an integer, then do it. Otherwise, just use the bits of the base_insn. */ if (insn_bit_length <= 32) diff --git a/sim/common/cgen-utils.c b/sim/common/cgen-utils.c index a45804e..8383196 100644 --- a/sim/common/cgen-utils.c +++ b/sim/common/cgen-utils.c @@ -423,3 +423,16 @@ ROLSI (val, shift) return val; } + +/* Emit an error message from CGEN RTL. */ + +void +cgen_rtx_error (SIM_CPU *cpu, const char * msg) +{ + SIM_DESC sd = CPU_STATE (cpu); + + sim_io_printf (sd, msg); + sim_io_printf (sd, "\n"); + + sim_engine_halt (sd, cpu, NULL, CIA_GET (cpu), sim_stopped, SIM_SIGTRAP); +} -- cgit v1.1