3 * configure: Regenerate.
7 * Makefile.in (MN10300_OBJS): Delete dv-sockser.o.
11 * configure: Regenerate.
15 * configure: Regenerate.
19 * configure: Regenerate.
23 * configure: Regenerate.
24 * configure.ac: Delete SIM_DV_SOCKSER_O check.
28 * config.in, configure: Regenerate.
32 * tconfig.in: Delete file.
36 * Makefile.in (SIM_RUN_OBJS): Delete.
40 * configure.ac (AC_CHECK_HEADERS): Delete unistd.h & stdlib.h &
41 string.h & strings.h & time.h.
42 * aclocal.m4, configure: Regenerate.
46 * configure: Regenerate.
50 * configure: Regenerate.
51 * config.in: Regenerate.
55 * configure: Regenerate.
59 * configure: Regenerate.
63 * aclocal.m4, configure: Regenerate.
71 * configure: Regenerate.
75 * configure.ac: Fail if dv-sockser.o not available.
76 Error when --disable-sim-hardware is specified.
77 * tconfig.in: Conditionalize use of dv_sockser_install.
78 * configure: Regenerated.
79 * config.in: Regenerated.
83 * interp.c: Include config.h first. Do not include sysdep.h.
87 * config.in, configure: Regenerate.
91 * aclocal.m4, config.in, configure: Regenerate.
95 * interp.c (sim_fetch_register): Return length, not -1.
99 * sim-main.h: Reformat copyright header.
103 * aclocal.m4: New file.
104 * configure: Regenerate.
109 * dv-mn103iop.c (write_dedicated_control_reg): Convert && to &.
113 * configure: Regenerate after common/acinclude.m4 update.
117 * configure.ac: Change include to common/acinclude.m4.
121 * configure.ac: Change AC_PREREQ to 2.64. Delete AC_CONFIG_HEADER
122 call. Replace common.m4 include with SIM_AC_COMMON.
123 * configure: Regenerate.
127 * interp.c (sim_do_command): Delete.
131 * am33.igen (sub Rm,Rn,Rd): Fix computation of carry flag.
135 * interp.c (sim_store_register): Update return value to
140 * dv-mn103ser.c (sockser_addr, USE_SOCKSER_P): Delete
141 (do_polling_event): Change USE_SOCKSER_P to dv_sockser_status.
142 (read_status_reg): Likewise.
143 (write_txb): Likewise.
147 * configure: Regenerate.
151 * config.in: Regenerate.
152 * configure: Likewise.
154 * configure: Regenerate.
158 * configure: Regenerate to track ../common/common.m4 changes.
165 * configure: Regenerate.
169 * acconfig.h: Remove.
170 * config.in: Regenerate.
174 * configure: Regenerated.
178 * configure: Regenerated.
182 * configure: Regenerated.
186 * configure: Regenerate.
190 * configure: Regenerate.
194 * configure.ac: Sinclude aclocal.m4 before common.m4. Add
195 explicit call to AC_CONFIG_HEADER.
196 * configure: Regenerate.
200 * configure.ac: Update to use ../common/common.m4.
201 * configure: Re-generate.
205 * configure: Regenerated to track ../common/aclocal.m4 changes.
209 * configure.ac: Rename configure.in, require autoconf 2.59.
210 * configure: Re-generate.
214 * configure: Regenerate for ../common/aclocal.m4 update.
219 * am33-2.igen (fmadd, fmsub, fmnadd, fmnsub): Correct typo.
221 * interp.c (fpu_disabled_exception, fpu_unimp_exception,
222 fpu_check_signal_exception): Take additional state arguments.
223 Print exception type and call program_interrupt. Adjust callers.
224 (fpu_rsqrt, fpu_cmp, fpu_add, fpu_sub, fpu_mul, fpu_div,
225 fpu_fmadd, fpu_fmsub, fpu_fnmadd, fpu_fnmsub): Take additional
227 * mn10300_sim.h (fpu_disabled_exception, fpu_unimp_exception,
228 fpu_check_signal_exception): Adjust prototypes.
229 (fpu_rsqrt, fpu_cmp, fpu_add, fpu_sub, fpu_mul, fpu_div,
230 fpu_fmadd, fpu_fmsub, fpu_fnmadd, fpu_fnmsub): Likewise.
231 * am33-2.igen: Adjust calls.
233 * op_utils.c (cmp2fcc): Moved...
234 * interp.c: ... here.
236 * am33-2.igen: Use `unsigned32', `signed32', `unsigned64' or
237 `signed64' where type width is relevant.
239 * mn10300_sim.h: Include sim-fpu.h.
240 (FD2FPU, FPU2FD): Enclose the FD argument in parentheses.
241 (fpu_check_signal_exception): Declare.
242 (struct fp_prec_t, fp_single_prec, fp_double_prec): Likewise.
243 (FP_SINGLE, FP_DOUBLE): Shorthands for fp_*_prec.
244 (fpu_rsqrt, fpu_cmp, fpu_add, fpu_sub, fpu_mul, fpu_div,
245 fpu_fmadd, fpu_fmsub, fpu_fnmadd, fpu_fnmsub): Declare.
246 * interp.c (fpu_disabled_exception): Document.
247 (fpu_unimp_exception): Likewise.
248 (fpu_check_signal_exception): Define.
249 (reg2val_32, round_32, val2reg_32, fp_single_prec): Likewise.
250 (reg2val_64, round_64, val2reg_64, fp_double_prec): Likewise.
251 (REG2VAL, ROUND, VAL2REG): Define shorthands.
252 (fpu_status_ok): Define.
253 (fpu_rsqrt, fpu_cmp, fpu_add, fpu_sub, fpu_mul, fpu_div,
254 fpu_fmadd, fpu_fmsub, fpu_fnmadd, fpu_fnmsub): Define.
255 * am33-2.igen (frsqrt, fcmp, fadd, fsub, fmul, fdiv,
256 fmadd, fmsub, fnmadd, fnmsub): Use new functions.
258 * interp.c (sim_create_inferior): Set PSW bit to enable FP insns
259 if architecture is AM33/2.0.
260 * am33.igen: Include am33-2.igen.
262 * mn10300.igen (movm, call, ret, retf): Check for am33_2 too.
263 * am33.igen (movm): Likewise.
265 * am33.igen: Added `*am33_2' to some instructions that were
268 * am33-2.igen: New file. All insns implemented, but FP flags are
269 only set for fcmp, exceptional conditions are not handled yet.
270 * Makefile.in (IGEN_INSN): Added am33-2.igen.
271 (tmp-igen): Added -M am33_2.
272 * mn10300.igen, am33.igen: Added `*am33_2' to all insns.
273 * gencode.c: Support FMT_D3.
274 * mn10300_sim.h (dword): New type.
275 (struct _state): Added fpregs.
276 (REG_FPCR, FPCR): New define. All assorted bitmaps.
277 (XS2FS, AS2FS, Xf2FD): New macros.
278 (FS2FPU, FD2FPU, FPU2FS, FPU2FD): Likewise.
279 (load_dword, store_dword): New functions or macros.
280 (u642dw, dw2u64): New functions.
281 (fpu_disabled_exception, fpu_unimp_exception): Declared.
282 * interp.c (fpu_disabled_exception): Defined; no actual
284 (fpu_unimp_exception): Likewise.
285 * op_utils.c (cmp2fcc): New function.
287 * interp.c, mn10300_sim.h, op_utils.c: Convert function prototypes
288 and definitions to ISO C.
290 * gencode.c, simops.c: Delete.
291 * Makefile.in: Remove non-COMMON dependencies and commands.
293 * configure.in: Use common simulator always. Don't subst sim_gen
295 * configure: Rebuilt.
296 * Makefile.in (WITHOUT_COMMON_OBJS, WITHOUT_COMMON_INTERP_DEP,
297 WITHOUT_COMMON_RUN_OBJS): Remove.
298 (WITH_COMMON_OBJS): Rename to MN10300_OBJS.
299 (WITH_COMMON_INTERP_DEP): Rename to MN10300_INTERP_DEP.
300 (WITH_COMMON_RUN_OBJS): Rename to SIM_RUN_OBJS.
301 (SIM_EXTRA_CFLAGS): Don't use @sim_gen@.
302 * interp.c: Remove non-common bits.
303 * mn10300_sim.h: Likewise.
307 * dv-mn103ser.c (do_polling_event): Change type of "serial_reg" to
309 (read_status_reg): Cast "serial_reg" to "long".
310 * dv-mn103tim.c (do_counter_event): Change type of "timer_nr" to
312 (do_counter6_event, write_mode_reg, write_tm6md): Ditto.
316 * interp.c (sim_open, sim_create_inferior, sim_open)
317 (sim_create_inferior): Rename _bfd to bfd.
321 * am33.igen: Call sim_engine_abort instead of abort.
325 * dv-mn103tim.c (read_special_timer6_reg): Add break after
326 empty default: label.
327 (write_special_timer6_reg): Ditto.
332 * sim-main.h: Only include "idecode.h" once.
333 * Makefile.in (SIM_EXTRA_DEPS): Define.
337 * configure: Regenerated to track ../common/aclocal.m4 changes.
341 * Makefile.in (INCLUDE): Update path to callback.h.
342 * mn10300_sim.h: Include "gdb/callback.h" and "gdb/remote-sim.h".
347 * mn10300.igen: Doc fixes.
351 * Makefile.in (idecode.o, op_utils.o, semantics.o, simops.o):
352 Depend on targ-vals.h.
356 * Makefile.in (simops.o): Add simops.h to dependency list.
360 * am33.igen: Warning clean-up.
361 (movm): Initialize PC and mask.
362 (mov, movbu, movhu): Set srcreg2 from RI0.
363 (bsch): Initialize c.
364 (sat16_cmp): Actually do the comparison.
365 (mov_llt): Do not overwrite dstreg with uninitialized variable.
369 * configure: Regenerated to track ../common/aclocal.m4 changes.
373 * am33.igen: Fix leading comments of SP-relative offset insns that
374 referred to other registers. Make their offsets unsigned.
378 * mn10300_sim.h (genericAdd, genericSub, genericCmp, genericOr,
379 genericXor, genericBtst): Use `unsigned32'.
380 * op_utils.c: Likewise.
381 * mn10300.igen, am33.igen: Use `unsigned32', `signed32',
382 `unsigned64' or `signed64' where type width is relevant.
386 * am33.igen (inc4 Rn): Use genericAdd so as to modify flags.
390 * am33.igen: Make SP-relative offsets unsigned. Add `*am33' for
391 some instructions that were missing it.
395 * Makefile.in (IGEN_INSN): Added am33.igen.
399 * configure: Regenerated to track ../common/aclocal.m4 changes.
403 * interp.c: Clarify error message reporting an unknown board.
407 * configure: Regenerated to track ../common/aclocal.m4 changes.
411 * interp.c (program_interrupt): Detect undesired recursion using
412 static flag. Set NMIRC register's SYSEF flag during
413 --board=stdeval1 mode.
414 * dv-mn103-int.c (write_icr): Add backdoor address to allow CPU to
419 * Makefile.in (SIM_EXTRA_CFLAGS): Define a POLL_QUIT_INTERVAL
420 for use in the simulator so that the poll_quit callback is
421 not called too often.
425 * dv-mn103int.c (mn103int_ioctl): Return something.
426 * dv-mn103tim.c (write_tm6md): GCC suggested parentheses around &&
431 * mn10300.igen (retf): Fix return address computation and store
432 the new pc value into nia.
436 * Makefile.in (WITH_COMMON_OBJS): Build also dv-sockser.o.
437 * interp.c (sim_open): Add stub mn103002 cache control memory regions.
438 Set OPERATING_ENVIRONMENT on "stdeval1" board.
439 (mn10300_core_signal): New function to intercept memory errors.
440 (program_interrupt): New function to dispatch to exception vector
441 (mn10300_exception_*): New functions to snapshot pre/post exception
443 * sim-main.h (SIM_CORE_SIGNAL): Define hook - call mn10300_core_signal.
444 (SIM_ENGINE_HALT_HOOK): Do nothing.
445 (SIM_CPU_EXCEPTION*): Define hooks to call mn10300_cpu_exception*().
446 (_sim_cpu): Add exc_* fields to store register value snapshots.
447 * dv-mn103ser.c (*): Support dv-sockser backend for UART I/O.
448 Various endianness and warning fixes.
449 * mn10300.igen (illegal): Call program_interrupt on error.
450 (break): Call program_interrupt on breakpoint
454 * dv-mn103int.c (mn103int_ioctl): New function for NMI
455 generation. (mn103int_finish): Install it as ioctl handler.
456 * dv-mn103tim.c: Support timer 6 specially. Endianness fixes.
460 * am33.igen: Allow autoincrement stores using the same register
461 for source and destination operands.
465 * am33.igen: Reverse HI/LO outputs of 4 operand "mul" and "mulu".
469 * interp.c (sim_open): Check for invalid --board option, fix
470 indentation, allocate memory for mem control and DMA regs.
474 * mn10300.igen (div,divu): Fix divide instructions so divide by 0
475 behaves like the hardware.
479 * sim-main.h (SIM_HANDLES_LMA): Define SIM_HANDLES_LMA.
483 * am33.igen: Handle case where first DSP operation modifies a
484 register used in the second DSP operation correctly.
488 * am33.igen: Detect cases where two operands must not match for
489 DSP instructions too.
493 * am33.igen: Detect cases where two operands must not match in
494 non-DSP instructions.
498 * op_utils.c (do_syscall): Rewrite to use common/syscall.c.
499 (syscall_read_mem, syscall_write_mem): New functions for syscall
501 * mn10300_sim.h: Add prototypes for syscall_read_mem and
503 * mn10300.igen: Change C++ style comments to C style comments.
504 Check for divide by zero in div and divu ops.
508 * am33.igen (translate_xreg): New function. Use it as needed.
512 * am33.igen: Add some missing instructions.
514 * am33.igen: Autoincrement loads/store fixes.
518 * am33.igen: Add mov_lCC DSP instructions.
520 * am33.igen: Add most am33 DSP instructions.
524 * mn10300.igen: Fix Z bit for addc and subc instructions.
525 Minor fixes in multiply/divide patterns.
527 * am33.igen: Add missing mul[u] imm32,Rn. Fix condition code
528 handling for many instructions. Fix sign extension for some
531 * am33.igen: Fix Z bit for remaining addc/subc instructions.
532 Do not sign extend immediate for mov imm,XRn.
533 More random mul, mac & div fixes.
534 Remove some unused variables.
535 Sign extend 24bit displacement in memory addresses.
537 * am33.igen: Fix Z bit for addc Rm,Rn and subc Rm,Rn. Various
538 fixes to 2 register multiply, divide and mac instructions. Set
539 Z,N correctly for sat16. Sign extend 24 bit immediate for add,
540 and sub instructions.
542 * am33.igen: Add remaining non-DSP instructions.
546 * am33.igen (translate_rreg): New function. Use it as appropriate.
548 * am33.igen: More am33 instructions. Fix "div".
552 * mn10300.igen: Add am33 support.
554 * Makefile.in: Use multi-sim to support both a mn10300 and am33
557 * am33.igen: Add many more am33 instructions.
561 * mn10300_sim.h (FETCH24): Define.
563 * mn10300_sim.h: Add defines for some registers found on the AM33.
564 * am33.igen: New file with some am33 support.
568 * mn10300_sim.h: Include bfd.h
569 (struct state): Add more room for processor specific registers.
574 * dv-mn103tim.c: Include sim-assert.h
575 * dv-mn103ser.c (do_polling_event): Check for incoming data on
576 serial line and schedule next polling event.
577 (read_status_reg): schedule events to check for incoming data on
578 serial line and issue interrupt if necessary.
582 * interp.c (sim_open): hook up serial 1 and 2 ports properly (typo).
586 * interp.c (board): Rename am32 to stdeval1 as this is the name
587 consistently used to refer to the mn1030002 board.
590 * interp.c (sim_open): Fix typo in address of EXTMD register
591 (0x34000280, not 0x3400280).
595 * simops.c (syscall): Handle change in opcode # for syscall.
596 * mn10300.igen (syscall): Likewise.
599 * dv-mn103int.c (mn103int_finish): Regular interrupts (not NMI or
600 reset) are not enabled on reset.
603 * dv-mn103iop.c (write_*_reg): Check for attempt to write r/o
605 * dv-mn103ser.c: Fill in methods for reading and writing to serial
607 * interp.c (sim_open): Make the serial device a polling device.
610 * dv-mn103iop.c: New file for handling am32 io ports.
611 * configure.in: Add mn103iop to hw_device list.
612 * configure: Re-generate.
613 * interp.c (sim_open): Create io port device.
616 * dv-mn103int.c (external_group): Use enumerated types to access
617 correct group addresses.
618 * dv-mn103tim.c (do_counter_event): Underflow of cascaded timer
619 triggers an interrupt on the higher-numbered timer's port.
622 * interp.c: (mn10300_option_handler): New function parses arguments
624 * (board): Add --board option for specifying am32.
625 * (sim_open): Create new timer and serial devices and control
626 configuration of other am32 devices via board option.
627 * dv-mn103tim.c, dv-mn103ser.c: New files for timers and serial devices.
628 * dv-mn103cpu.c: Fix typos in opening comments.
629 * dv-mn103int.c: Adjust interrupt controller settings for am32 instead of am30.
630 * configure.in: Add mn103tim and mn103ser to hw_device list.
631 * configure: Re-generate.
635 * dv-mn103int.c, dv-mn103cpu.c: Rename *_callback to *_method.
637 * dv-mn103cpu.c, dv-mn103int.c: Include hw-main.h and
638 sim-main.h. Declare a struct hw_descriptor instead of struct
639 hw_device_descriptor.
643 * dv-mn103cpu.c (struct mn103cpu): Change type of pending_handler
648 * configure.in (SIM_AC_OPTION_HARDWARE): Add argument "yes".
652 * interp.c (sim_open): Create a polling PAL device.
656 * dv-mn103int.c (mn103int_port_event):
657 (mn103int_port_event):
658 (mn103int_io_read_buffer):
659 (mn103int_io_write_buffer):
661 * dv-mn103cpu.c (deliver_mn103cpu_interrupt): Drop CPU/CIA args.
662 (mn103cpu_port_event): Ditto.
663 (mn103cpu_io_read_buffer): Ditto.
664 (mn103cpu_io_write_buffer): Ditto.
668 * configure: Regenerated to track ../common/aclocal.m4 changes.
670 Sun Apr 26 15:31:55 1998 Tom Tromey <tromey@creche>
672 * configure: Regenerated to track ../common/aclocal.m4 changes.
677 * acconfig.h: New file.
678 * configure.in: Reverted change of Apr 24; use sinclude again.
680 Fri Apr 24 14:16:40 1998 Tom Tromey <tromey@creche>
682 * configure: Regenerated to track ../common/aclocal.m4 changes.
687 * configure.in: Don't call sinclude.
691 * mn10300_sim.h: Declare all functions in op_utils.c using
694 * sim-main.c: New file. Include op_utils.c.
696 * mn10300.igen (mov, cmp): Use new igen operators `!' and `=' to
697 differentiate between MOV/CMP immediate/register instructions.
699 * configure.in (SIM_AC_OPTION_INLINE): Add and enable.
700 * configure: Regenerate.
704 * configure: Regenerated to track ../common/aclocal.m4 changes.
708 * interp.c (hw): Delete variable, moved to SIM_DESC.
709 (sim_open): Delete calls to hw_tree_create, hw_tree_finish.
710 Handled by sim-module.
711 (sim_open): Do not anotate tree with trace properties, handled by
713 (sim_open): Call sim_hw_parse instead of hw_tree_parse.
715 * configure: Regenerated to track ../common/aclocal.m4 changes.
719 * dv-mn103cpu.c (deliver_mn103cpu_interrupt): Save the entire PC
720 on the stack when delivering interrupts (not just the lower
722 * mn10300.igen (mov (Di,Am),Dn): Fix decode. Registers were
723 specified in the wrong order.
727 * dv-mn103cpu.c (deliver_mn103cpu_interrupt): Stop loss of
728 succeeding interrupts, clear pending_handler when the handler
733 * Makefile.in (tmp-igen): Prefix all usage of move-if-change
734 script with $(SHELL) to make NT native builds happy.
735 * configure: Regenerate because of change to ../common/aclocal.m4.
739 * configure.in: Make --enable-sim-common the default.
740 * configure: Re-generate.
742 * sim-main.h (CIA_GET, CIA_SET): Save/restore current instruction
743 address into Sate.regs[REG_PC] instead of common struct.
747 * mn10300.igen (cmp imm8,An): Do not sign extend imm8 value.
751 * simops.c (OP_F0FD): Initialise variable 'sp'.
755 * dv-mn103int.c (decode_group): A group register every 4 bytes not
757 (write_icr): Rewrite equation updating request field.
758 (read_iagr): Fix check that interrupt is still pending.
762 * interp.c (sim_open): Tidy up device creation.
764 * dv-mn103int.c (mn103int_port_event): Drive NMI with non-zero
766 (mn103int_io_read_buffer): Convert absolute address to register
768 (read_icr, write_icr): Convert block offset into group offset.
772 * interp.c (sim_open): Create second 1mb memory region at
774 (sim_open): Create a device tree.
776 (do_interrupt): Delete, needs to use dv-mn103cpu.c
778 * dv-mn103int.c, dv-mn103cpu.c: New files.
782 * mn10300_sim.h (EXTRACT_PSW_LM, INSERT_PSW_LM, PSW_IE, PSW_LM):
788 * configure: Regenerated to track ../common/aclocal.m4 changes.
792 * interp.c (sim-options.h): Include.
793 (sim_kind, myname): Declare when not using common framework.
795 * mn10300_sim.h (do_syscall, generic*): Provide prototypes for
796 functions found in op_utils.c
798 * mn10300.igen (add): Discard unused variables.
800 * configure, config.in: Re-generate with autoconf 2.12.1.
804 Add support for --enable-sim-common option.
805 * Makefile.in (WITHOUT_COMMON_OBJS): Files included if
806 ! --enable-sim-common
807 (WITH_COMMON_OBJS): Files included if --enable-sim-common.
808 (MN10300_OBJS,MN10300_INTERP_DEP): New variables.
810 ({WITHOUT,WITH}_COMMON_RUN_OBJS,SIM_RUN_OBJS): New variables.
811 (SIM_EXTRA_CFLAGS): New variable.
812 (clean-extra): Clean up igen files.
813 (../igen/igen,clean-igen,tmp-igen): New rules.
814 * configure.in: Add support for common framework via
816 * configure: Regenerate.
817 * interp.c: #include sim-main if WITH_COMMON, not mn10300_sim.h.
818 (hash,dispatch,sim_size): Don't compile if ! WITH_COMMON.
819 (init_system,sim_write,compare_simops): Likewise.
820 (sim_set_profile,sim_set_profile_size): Likewise.
821 (sim_stop,sim_resume,sim_trace,sim_info): Likewise.
822 (sim_set_callbacks,sim_stop_reason,sim_read,sim_load): Likewise.
823 (enum interrupt_type): New enum.
824 (interrupt_names): New global.
825 (do_interrupt): New function.
826 (sim_open): Define differently if WITH_COMMON.
827 (sim_close,sim_create_inferior,sim_do_command): Likewise.
828 * mn10300_sim.h ({load,store}_{byte,half,word}): Define versions
830 * mn10300.igen: New file.
831 * mn10300.dc: New file.
832 * op_utils.c: New file.
833 * sim-main.h: New file.
837 * configure: Regenerated to track ../common/aclocal.m4 changes.
841 * simops.c (inc): Fix typo.
845 * simops.c (signed multiply instructions): Cast input operands to
846 signed32 before casting them to signed64 so that the sign bit
847 is propagated properly.
851 * Makefile.in: Last change was bad. Define NL_TARGET
852 so that targ-vals.h will be used instead of syscall.h.
853 * simops.c: Use targ-vals.h instead of syscall.h.
854 (OP_F020): Disable unsupported system calls.
858 * Makefile.in: Get header files from libgloss/mn10300/sys.
862 * simops.c: Include sim-types.h.
866 * simops.c (multiply instructions): Cast input operands to a
867 signed64/unsigned64 type as appropriate.
871 * interp.c (sim_store_register, sim_fetch_register): Pass in
872 length parameter. Return -1.
876 * configure: Regenerated to track ../common/aclocal.m4 changes.
880 * configure: Regenerated to track ../common/aclocal.m4 changes.
882 Mon Jan 19 22:26:29 1998 Doug Evans <devans@seba>
884 * configure: Regenerated to track ../common/aclocal.m4 changes.
888 * configure: Regenerated to track ../common/aclocal.m4 changes.
893 * configure: Regenerated to track ../common/aclocal.m4 changes.
897 * simops.c (call:16 call:32): Stack adjustment is determined solely
902 * interp.c (sim_load): Pass lma_p and sim_write args to
907 * simops.c: Correctly handle register restores for "ret" and "retf"
912 * configure: Regenerated to track ../common/aclocal.m4 changes.
916 * configure: Regenerated to track ../common/aclocal.m4 changes.
920 * configure: Regenerated to track ../common/aclocal.m4 changes.
924 * configure: Regenerated to track ../common/aclocal.m4 changes.
928 * configure: Regenerated to track ../common/aclocal.m4 changes.
932 * configure: Regenerated to track ../common/aclocal.m4 changes.
934 Thu Sep 4 17:21:23 1997 Doug Evans <dje@seba>
936 * configure: Regenerated to track ../common/aclocal.m4 changes.
940 * configure: Regenerated to track ../common/aclocal.m4 changes.
945 * interp.c (sim_kill): Delete.
946 (sim_create_inferior): Add ABFD argument.
947 (sim_load): Move setting of PC from here.
948 (sim_create_inferior): To here.
952 * configure: Regenerated to track ../common/aclocal.m4 changes.
957 * interp.c (sim_open): Add ABFD argument.
961 * interp.c (sim_resume): Clear State.exited.
962 (sim_stop_reason): If State.exited is nonzero, then indicate that
963 the simulator exited instead of stopped.
964 * mn10300_sim.h (struct _state): Add exited field.
965 * simops.c (syscall): Set State.exited for SYS_exit.
969 * simops.c: Fix thinko in last change.
973 * simops.c: "call" stores the callee saved registers into the
974 stack! Update the stack pointer properly when done with
977 * simops.c: Fix return address computation for "call" instructions.
981 * interp.c (sim_open): Fix typo.
985 * interp.c (sim_resume): Add missing case in big switch
986 statement (for extb instruction).
990 * interp.c: Replace all references to load_mem and store_mem
991 with references to load_byte, load_half, load_3_byte, load_word
992 and store_byte, store_half, store_3_byte, store_word.
993 (INLINE): Delete definition.
994 (load_mem_big): Likewise.
995 (max_mem): Make it global.
996 (dispatch): Make this function inline.
997 (load_mem, store_mem): Delete functions.
998 * mn10300_sim.h (INLINE): Define.
999 (RLW): Delete unused definition.
1000 (load_mem, store_mem): Delete declarations.
1001 (load_mem_big): New definition.
1002 (load_byte, load_half, load_3_byte, load_word): New functions.
1003 (store_byte, store_half, store_3_byte, store_word): New functions.
1004 * simops.c: Replace all references to load_mem and store_mem
1005 with references to load_byte, load_half, load_3_byte, load_word
1006 and store_byte, store_half, store_3_byte, store_word.
1010 * interp.c (sim_open): Add callback to arguments.
1011 (sim_set_callbacks): Delete SIM_DESC argument.
1015 * interp.c (dispatch): Make this an inline function.
1017 * simops.c (syscall): Use callback->write regardless of
1018 what file descriptor we're writing too.
1022 * interp.c (load_mem_big): Remove function. It's now a macro
1024 (compare_simops): New function.
1025 (sim_open): Sort the Simops table before inserting entries
1026 into the hash table.
1027 * mn10300_sim.h: Remove unused #defines.
1028 (load_mem_big): Define.
1032 * interp.c (load_mem): If we get a load from an out of range
1034 (store_mem): Likewise for stores.
1035 (max_mem): New variable.
1039 * mn10300_sim.h: Fix ordering of bits in the PSW.
1041 * interp.c: Improve hashing routine to avoid long list
1042 traversals for common instructions. Add HASH_STAT support.
1043 Rewrite opcode dispatch code using a big switch instead of
1044 cascaded if/else statements. Avoid useless calls to load_mem.
1048 * mn10300_sim.h (struct _state): Add space for mdrq register.
1050 * simops.c: Don't abort for trap. Add support for the extended
1051 instructions, "getx", "putx", "mulq", "mulqu", "sat16", "sat24",
1056 * configure: Regenerated to track ../common/aclocal.m4 changes.
1060 * interp.c (sim_stop): Add stub function.
1064 * Makefile.in (SIM_OBJS): Add sim-load.o.
1065 * interp.c (sim_kind, myname): New static locals.
1066 (sim_open): Set sim_kind, myname. Ignore -E arg.
1067 (sim_load): Return SIM_RC. New arg abfd. Call sim_load_file to
1068 load file into simulator. Set start address from bfd.
1069 (sim_create_inferior): Return SIM_RC. Delete arg start_address.
1073 * simops.c (OP_F020): SYS_execv, SYS_time, SYS_times, SYS_utime
1074 only include if implemented by host.
1075 (OP_F020): Typecast arg passed to time function;
1079 * simops.c (syscall): Handle new mn10300 calling conventions.
1083 * configure: Regenerated to track ../common/aclocal.m4 changes.
1088 * Makefile.in: Change mn10300-opc.o to m10300-opc.o, to match
1089 corresponding change in opcodes directory.
1093 * interp.c (sim_open): New arg `kind'.
1095 * configure: Regenerated to track ../common/aclocal.m4 changes.
1099 * configure: Regenerated to track ../common/aclocal.m4 changes.
1103 * simops.c: Fix register extraction for a two "movbu" variants.
1104 Somewhat simplify "sub" instructions.
1105 Correctly sign extend operands for "mul". Put the correct
1106 half of the result in MDR for "mul" and "mulu".
1107 Implement remaining instructions.
1108 Tweak opcode for "syscall".
1112 * simops.c: Do syscall emulation in "syscall" instruction. Add
1113 dummy "trap" instruction.
1117 * configure: Regenerated to track ../common/aclocal.m4 changes.
1121 * configure: Re-generate.
1125 * configure: Regenerate to track ../common/aclocal.m4 changes.
1129 * interp.c (sim_open): New SIM_DESC result. Argument is now
1131 (other sim_*): New SIM_DESC argument.
1135 * simops.c: Fix carry bit computation for "add" instructions.
1137 * simops.c: Fix typos in bset insns. Fix arguments to store_mem
1138 for bset imm8,(d8,an) and bclr imm8,(d8,an).
1142 * simops.c: Fix register references when computing Z and N bits
1147 * Makefile.in (@COMMON_MAKEFILE_FRAG): Use
1148 COMMON_{PRE,POST}_CONFIG_FRAG instead.
1149 * configure.in: sinclude ../common/aclocal.m4.
1150 * configure: Regenerated.
1154 * interp.c (init_system): Allocate 2^19 bytes of space for the
1159 * configure configure.in Makefile.in: Update to new configure
1160 scheme which is more compatible with WinGDB builds.
1161 * configure.in: Improve comment on how to run autoconf.
1162 * configure: Re-run autoconf to get new ../common/aclocal.m4.
1163 * Makefile.in: Use autoconf substitution to install common
1168 * simops.c: Undo last change to "rol" and "ror", original code
1173 * simops.c: Fix "rol" and "ror".
1177 * simops.c: Fix typo in last change.
1181 * simops.c: Use REG macros in few places not using them yet.
1185 * mn10300_sim.h (struct _state): Fix number of registers!
1189 * mn10300_sim.h (struct _state): Put all registers into a single
1190 array to make gdb implementation easier.
1191 (REG_*): Add definitions for all registers in the state array.
1192 (SEXT32, SEXT40, SEXT44, SEXT60): Remove unused macros.
1193 * simops.c: Related changes.
1197 * interp.c (sim_resume): Handle 0xff as a single byte insn.
1199 * simops.c: Fix overflow computation for "add" and "inc"
1204 * simops.c: Handle "break" instruction.
1206 * simops.c: Fix restoring the PC for "ret" and "retf" instructions.
1210 * gencode.c (write_opcodes): Also write out the format of the
1212 * mn10300_sim.h (simops): Add "format" field.
1213 * interp.c (sim_resume): Deal with endianness issues here.
1217 * simops.c (REG0_4): Define.
1218 Use REG0_4 for indexed loads/stores.
1222 * simops.c (REG0_16): Fix typo.
1226 * simops.c: Call abort for any instruction that's not currently
1229 * simops.c: Define accessor macros to extract register
1230 values from instructions. Use them consistently.
1232 * interp.c: Delete unused global variable "OP".
1233 (sim_resume): Remove unused variable "opcode".
1234 * simops.c: Fix some uninitialized variable problems, add
1235 parens to fix various -Wall warnings.
1237 * gencode.c (write_header): Add "insn" and "extension" arguments
1238 to the OP_* declarations.
1239 (write_template): Similarly for function templates.
1240 * interp.c (insn, extension): Remove global variables. Instead
1241 pass them as arguments to the OP_* functions.
1242 * mn10300_sim.h: Remove decls for "insn" and "extension".
1243 * simops.c (OP_*): Accept "insn" and "extension" as arguments
1244 instead of using globals.
1248 * simops.c: Fix typos in "mov am,(d16,an)" and "mov am,(d32,an)"
1250 * simops.c: Fix thinkos in last change to "inc dn".
1254 * simops.c: "add imm,sp" does not effect the condition codes.
1255 "inc dn" does effect the condition codes.
1259 * simops.c: Treat both operands as signed values for
1262 * simops.c: Fix simulation of division instructions.
1263 Fix typos/thinkos in several "cmp" and "sub" instructions.
1267 * simops.c: Fix carry bit handling in "sub" and "cmp"
1270 * simops.c: Fix "mov imm8,an" and "mov imm16,dn".
1274 * simops.c: Fix overflow computation for many instructions.
1276 * simops.c: Fix "mov dm, an", "movbu dm, (an)", and "movhu dm, (an)".
1278 * simops.c: Fix "mov am, dn".
1280 * simops.c: Fix more bugs in "add imm,an" and
1285 * simops.c: Fix bugs in "movm" and "add imm,an".
1287 * simops.c: Don't lose the upper 24 bits of the return
1288 pointer in "call" and "calls" instructions. Rough cut
1289 at emulated system calls.
1291 * simops.c: Implement the remaining 5, 6 and 7 byte instructions.
1293 * simops.c: Implement remaining 4 byte instructions.
1295 * simops.c: Implement remaining 3 byte instructions.
1297 * simops.c: Implement remaining 2 byte instructions. Call
1298 abort for instructions we're not implementing now.
1302 * simops.c: Implement lots of random instructions.
1304 * simops.c: Implement "movm" and "bCC" insns.
1306 * mn10300_sim.h (_state): Add another register (MDR).
1308 * simops.c: Implement "cmp", "calls", "rets", "jmp" and
1309 a few additional random insns.
1311 * mn10300_sim.h (PSW_*): Define for CC status tracking.
1312 (REG_D0, REG_A0, REG_SP): Define.
1313 * simops.c: Implement "add", "addc" and a few other random
1316 * gencode.c, interp.c: Snapshot current simulator code.
1320 * Makefile.in, config.in, configure, configure.in: New files.
1321 * gencode.c, interp.c, mn10300_sim.h, simops.c: New files.