Smooth some of ALU tracing's rough edges.
[binutils-gdb.git] / sim / v850 / ChangeLog
index f022d1571c793b386b29f0d3b88594782190bac9..1b1b2b5e909f318a6490fbeafe8ea221f857572a 100644 (file)
@@ -1,3 +1,379 @@
+Tue Sep 16 22:14:01 1997  Andrew Cagney  <cagney@b1.cygnus.com>
+
+       * simops.c (trace_output): Add result argument.
+       (trace_result): New function.  Simpler version of trace_output,
+       assumes trace needed.
+       (trace_output): Call trace_result.
+       (trace_output): For IMM_REG_REG, trace correct register.
+       (trace_input): Add case for 16bit immediates.
+       (OP_600, OP_640, OP_680, OP_6C0, OP_6A0): Use.
+
+       * sim-main.h (TRACE_ALU_INPUT, TRACE_ALU_RESULT): Define.
+       (trace_values, trace_name, trace_pc, trace_num_values): Make
+       global.
+       (GR, SR): Define.
+       
+       v850.insn (movea, stsr): Use.
+start-sanitize-v850e
+       (sxb, sxh, zxb, zxh): Ditto.
+end-sanitize-v850e
+       
+Tue Sep 16 21:14:01 1997  Andrew Cagney  <cagney@b1.cygnus.com>
+
+       * simops.c: Move "movea" from here.
+       * v850.igen: To here.
+
+       * v850.igen (simm16): Define, sign extend imm16.
+       (uimm16): Define, no sign extension.
+       (addi, andi, movea, movhi, mulhi, ori, satsubi, xori): Use.
+       
+start-sanitize-v850e
+       * simops.c: Move "sxh", "switch", "sxb", "callt", "dispose",
+       "mov32" from here.
+       * v850.igen: To here.
+       (switch): Fix off by two error in NIA calc.
+       
+end-sanitize-v850e
+Tue Sep 16 15:14:01 1997  Andrew Cagney  <cagney@b1.cygnus.com>
+
+       * simops.c (trace_pc, trace_name, trace_values, trace_num_values):
+       New static globals.
+       (trace_input): Just save pc, name and values for trace_output.
+       (trace_output): Write trace values to a buffer.  Use
+       trace_one_insn to print trace info and buffer.
+       (SIZE_OPERANDS, SIZE_LOCATION): Delete.
+       
+Tue Sep 16 09:02:00 1997  Andrew Cagney  <cagney@b1.cygnus.com>
+
+       * sim-main.h (struct _sim_cpu): Add psw_mask so that reserved bits
+       can be masked out.
+
+       * simops.c (OP_2007E0, OP_4007E0): Move "ldsr", "stsr"
+       instructions from here.
+       * v850.igen (ldsr, stsr): To here.  Mask out reserved bits when
+       setting PSW.
+       
+       * interp.c (sim_open): Set psw_mask if machine known.
+
+Tue Sep 16 10:20:00 1997  Andrew Cagney  <cagney@b1.cygnus.com>
+
+start-sanitize-v850e
+       * v850-dc: Add rule to diferentiate between breakpoint and divh.
+       * v850.igen (break): New instruction, breakpoint simulator.
+
+end-sanitize-v850e
+       * v850.igen (breakpoint): Enable.  Change to a 32bit instruction.
+
+start-sanitize-v850e
+Mon Sep 15 18:44:05 1997  Jim Wilson  <wilson@cygnus.com>
+
+       * simops.c (Multiply64): Don't store into register zero.
+
+start-sanitize-v850e
+Tue Sep 16 09:02:00 1997  Andrew Cagney  <cagney@b1.cygnus.com>
+
+       * Makefile.in (semantics.o): Add dependency.
+
+       * sim-main.h (SAVE_1, SAVE_2): Perform backward compatible save,
+       do not adjust CIA/NIA.
+
+Mon Sep 15 17:36:15 1997  Andrew Cagney  <cagney@b1.cygnus.com>
+
+start-sanitize-v850eq
+       * simops.c (OP_300, OP_400, OP_70): Make behavour depend on PSW[US].
+       
+       * simops.c: Move "divun", "sld.bu", "divhn", "divhun", "divn",
+       "divun", "pushml" code from here to v850.igen.
+       (divun): Make global.
+       (type3_regs): Make global
+       
+       * v850.igen: Move simops.c code to here.
+
+       * interp.c (sim_create_inferior): For v850eq set US bit by
+       default.
+
+end-sanitize-v850eq
+start-sanitize-v850e
+       * interp.c (sim_open): Don't set arch, now set by
+       sim_analyze_program.
+
+end-sanitize-v850e
+       * configure: Regenerated to track ../common/aclocal.m4 changes.
+
+Mon Sep 15 14:39:34 1997  Andrew Cagney  <cagney@b1.cygnus.com>
+
+       * simops.c (op_types): Move from here.
+       sim-main.h: To here.
+
+       * sim-main.h (trace_input, trace_output), simops.c: Make global.
+
+       * simops.c (OP_60): Move "jmp" code from here.
+       * v850.igen (jmp): To here.
+
+start-sanitize-v850eq
+       * simops.c (OP_60): Move "sld.bu" code from here.
+       * v850.igen (sld.bu): To here.
+
+end-sanitize-v850eq
+Fri Sep 12 15:11:03 1997  Andrew Cagney  <cagney@b1.cygnus.com>
+
+start-sanitize-v850eq
+       * v850.igen (prepare, ...): Add to v850eq architecture.
+
+end-sanitize-v850eq
+start-sanitize-v850e
+       * interp.c (sim_open): Default to v850eq.
+       
+end-sanitize-v850e
+start-sanitize-v850eq
+       
+       * interp.c (sim_open): Default to v850e.
+end-sanitize-v850eq
+       * sim-main.h (signal.h): Include.
+
+       * v850.igen (illegal): Report/halt illegal instructions.
+
+       * Makefile.in (SIM_EXTRA_CFLAGS): Add SIM_RESERVED_BITS.
+
+       * configure.in: Add reserved bits option.
+       * configure: Regenerate.
+
+Thu Sep 11 08:40:03 1997  Andrew Cagney  <cagney@b1.cygnus.com>
+
+       * interp.c (sim_open): Use sim_do_commandf instead of asprintf.
+
+       * sim-main.h (INSN_NAME): 
+
+       * Makefile.in (INCLUDE): Add SIM_EXTRA_DEPS.
+       (SIM_EXTRA_DEPS): Add itable.h
+       (tmp-gencode): Does not depend on simops.h
+
+       * sim-main.h (itable.h): Include.
+       (MAX_INSNS, INSN_NAME): Define.
+
+       * interp.c: Compute inttype from the interrupt_names index that
+       was passed in.
+
+Wed Sep 10 10:25:40 1997  Andrew Cagney  <cagney@b1.cygnus.com>
+
+       * simops.c (trace_input): Use trace_printf instead of
+       sim_io_printf.
+       (trace_output): Ditto.
+       (trace_input): Only trace when TRACE_ALU_P.  Delete code
+       disasembling instruction.
+       (trace_output): Only trace when TRACE_ALU_P.
+
+Tue Sep  9 01:29:50 1997  Andrew Cagney  <cagney@b1.cygnus.com>
+
+       * simops.c (trace_input, trace_output): Use sim_io_printf.
+       (OP_620): Pass correct argument to trace.
+       (OP_E607E0): Ditto.
+       (trace_input): Obtain prog_bfd, text_start et.al from simulator
+       struct.
+
+Mon Sep  8 21:03:52 1997  Andrew Cagney  <cagney@b1.cygnus.com>
+
+       * v850.igen: New file.
+       * v850-dc: New file.
+
+Mon Sep  8 18:33:04 1997  Andrew Cagney  <cagney@b1.cygnus.com>
+
+
+       * sim-main.h (SEXT16): Delete, use EXTEND16.
+       (SEXT8): Delete, use EXTEND8.
+       (SEXT32): Delete, used?
+       (SEXT40, SEXT44, SEXT64): Use UNSIGNED64 for constants, not ...LL.
+       (WITH_TARGET_WORD_MSB): Define as 31. v850 little bit endian.
+       
+       * simops.c: Use EXTEND15 from sim-bits instead of SEXT16.
+
+       * sim-main.h (DEBUG_TRACE, DEBUG_VALUES, v850_debug): Delete,
+       replace with TRACE_INSN_P and TRACE_ALU_P.
+
+       * simops.c (trace_input, trace_output): Update.
+
+       * interp.c (sim_engine_run): Delete.
+       (lookup_hash): Delete.
+       (sim_open): Do not fill hash table.
+       (sim_trace): Delete.
+
+Fri Sep  5 17:04:48 1997  Andrew Cagney  <cagney@b1.cygnus.com>
+
+       * simops.c (OP_FFFF): Use sim_engine_halt.
+       (OP_12007E0): Ditto.
+       (OP_10007E0): Ditto.
+
+       * sim-main.h (struct sim_cpu): Delete member exception. Using
+       sim-engine et.al.
+
+       * interp.c (sim_info): Do not do anything in sim-info.
+       (sim_stop): Delete, replace with sim-stop.
+       (sim_stop_reason): Delete, replace with sim-reason.
+
+       * sim-main.h (WITH_WATCHPOINTS): Define.
+       (WITH_MODULO_MEMORY): Define
+       
+       * Makefile.in (SIM_OBJS): Add sim-resume, sim-watch, sim-stop,
+       sim-reason.
+
+       * interp.c (enum interrupt_cond_type): Delete.
+       (struct interrupt_generator): Delete.
+       (enum interrupt_type): Drop int_none.
+       (sim_open): Initialize WATCHPOINT module.
+       (sim_resume, sim_run): Rename sim_resume to sim_run.
+       (sim_engine_run): Replace interrupt code with call to sim-events.
+       (sim_set_interrupt): Delete.
+       (sim_parse_number): Delete.
+
+Thu Sep  4 17:21:23 1997  Doug Evans  <dje@seba>
+
+       * configure: Regenerated to track ../common/aclocal.m4 changes.
+
+Thu Sep  4 18:11:37 1997  Andrew Cagney  <cagney@b1.cygnus.com>
+
+       * simops.c (fetch_argv): New function, fetch a arg vector from
+       simulator memory.
+
+       * configure.in: Check for fork, execve, execv.
+       * configure: Regenerate.
+
+       * interp.c (sim_store_register, sim_fetch_register): Use H2T_4 and
+       T2H_4 for byte swapping.
+
+       * sim-main.h, interp.c (get_word, get_half, get_byte, put_word,
+       put_half, put_byte): Delete.
+
+       * Makefile.in (SIM_OBJS): Add sim-memopt.o module.
+
+       * sim-main.h (load_mem, store_mem): Redefine as macros.
+       (IMEM, IMEM_IMMED): New macros - fetch instructions.
+
+       * simops.c (OP_10007E0): For SYS_read, SYS_write, SYS_open
+       transfer data via a buffer.
+       (fetch_str): New function, fetch string from memory.
+
+       * Makefile.in (SIM_OBJS): Add sim-hrw.o module.
+
+       * interp.c (sim_open): Establish memory maps using sim-memopt.c
+       via sim_do_command.
+       (sim_do_command): Print error if memory-map command is used. Call
+       sim_args_command.
+       (map): Delete, replaced by sim-core.
+       (sim_memory_init): Delete, replaced by sim-core.
+       (sim_set_memory_map): Delete, replaced by sim-memopt.
+       (load_mem): Delete, replaced by sim-core.
+       (store_mem): Delete, replaced by sim-core.
+       (sim_write): Delete, replaced by sim-hrw.
+       (sim_read): Delete, replaced by sim-hrw.
+
+       * sim-main.h (struct sim_state): Remove memory members, using
+       sim-core.c
+
+Wed Sep  3 10:18:55 1997  Andrew Cagney  <cagney@b1.cygnus.com>
+
+       * sim-main.h: Replace SIM_HAVE_FLATMEM with mem ptr.
+       * interp.c (map): Do not add to a void pointer.
+       
+       * Makefile.in (INCLUDE): Add sim-main.h
+
+       * configure.in: Check for time.h
+       * configure: Re-generate.
+
+       * interp.c (struct interrupt_generator): Make time unsigned long,
+       address SIM_ADDR.
+       (sim_resume): Make oldpc SIM_ADDR.
+       (struct hash_entry): Make mask/opcode unsigned.
+
+       * v850_sim.h (struct simops ): Make opcode and mask unsigned.
+
+       * simops.c (utime.h): Include if available.
+       (OP_10007E0): Check for UTIME function.
+       (divun): Put parentheses around shift argument.
+       (OP_640): Put parentheses around shift argument, was wrong.
+       (OP_107F0): Return something.
+
+       * interp.c (sim_parse_number): Use strtoul not strtol.
+       (sim_resume): Use sim_elapsed_time_get to keep track of the time.
+
+       * configure.in (SIM_AC_OPTION_WARNINGS): Add.
+       (SIM_AC_OPTION_ENDIAN): Set to hardwired big.
+       (SIM_AC_OPTION_HOST_ENDIAN): Add.
+       (AC_CHECK_FUNCS): Add utime.
+       (AC_CHECK_HEADERS): Add stdlib.h, string.h, strings.h, utime.h
+       configure: Regenerate.
+       
+
+       * Makefile.in (SIM_RUN_OBJS): Use nrun.o.
+       (SIM_OBJS): Add sim-io.o, sim-hload.o, sim-utils.o, sim-options.o,
+       sim-config.o, sim-module.o, sim-events.o, sim-core.o,
+       sim-endian.o, sim-engine.o, sim-trace.o, sim-profile.o
+       (SIM_ENDIAN, SIM_WARNGINS): Define.
+
+       * simops.c (OP_10007E0): Use sim_io_* for transfers.
+
+       * interp.c (sim_resume): Pass sd around.
+
+       * simops.c (sim-main.h): Include.
+
+       * gencode.c (write_template): Generate #include sim-main.h.
+       (write_opcodes): Ditto.
+       
+       * interp.c (prog_bfd, prog_bfd_was_opened_p): Delete.
+       (v850_callback): Ditto.
+       (sim_kind, myname): Ditto.
+       (lookup_hash): Pass SD. Use sim_io_error.
+       (sim_set_memory_map): Pass in SD, use.
+       (init_system): Pass in SD, use.
+       (sim_open): Update.
+       (sim_set_profile): Delete.
+       (sim_set_profile_size): Delete.
+       (do_interrupt): Pass in SD, use.
+       (sim_info): Use sim_io_printf.
+       (sim_create_inferior): Reset registers.  Set PC from prog_bfd
+       argument.
+       (sim_load): Delete, use common/sim-hload.c
+       (sim_size): Rename to sim_memory_init.
+       (sim_write): Remove call to init_system.
+       (init_system): Delete.
+       (sim_set_callbacks): Delete.
+       (sim_set_interrupt): Pass in SD, use.
+       (start_time): Delete.
+       
+       * v850_sim.h: Remove everything except `struct simops' from here.
+       * sim-main.h: Move most to here.
+       * gencode.c: Move #includes to here.
+
+       * sim-main.h(struct _sim_cpu): Rename struct _state.
+       (#define PC, et.al.): Update
+       (v850_callback): Delete.  Replaced with SIM_DESC arg.
+       (int8, uint8, int16, uint16, int32, uint32): Define types using
+       unsigned8 et.al from common/sim-types.h.
+       * sim-main.h (State): Define as STATE_CPU.
+
+Mon Sep  1 12:07:55 1997  Andrew Cagney  <cagney@b1.cygnus.com>
+
+       * configure.in: Check for time, chmod.
+       * configure: Regenerate.
+       * simops.c (SYS_time, SYS_chmod): Use HAVE_TIME, HAVE_CHMOD.
+       
+       * simops.c (../../libgloss/v850/sys/syscall.h): Include instead of
+       sys/syscall.h.
+       (OP_10007E0): Check the existance each SYS_* macro independantly.
+
+       * v850_sim.h (SIGQUIT, SIGTRAP): Only define if missing.
+
+Wed Aug 27 18:13:22 1997  Andrew Cagney  <cagney@b1.cygnus.com>
+
+       * configure: Regenerated to track ../common/aclocal.m4 changes.
+       * config.in: Ditto.
+
+Tue Aug 26 10:42:38 1997  Andrew Cagney  <cagney@b1.cygnus.com>
+
+       * interp.c (sim_kill): Delete.
+       (sim_create_inferior): Add ABFD argument.
+       (sim_load): Move setting of PC from here.
+       (sim_create_inferior): To here.
+
 Mon Aug 25 17:50:22 1997  Andrew Cagney  <cagney@b1.cygnus.com>
 
        * configure: Regenerated to track ../common/aclocal.m4 changes.