Lots of changes
This commit is contained in:
parent
7f82c7e1ee
commit
c143ef6296
|
@ -33,6 +33,8 @@ bits.c
|
||||||
bits.h
|
bits.h
|
||||||
build-psim
|
build-psim
|
||||||
config.in
|
config.in
|
||||||
|
config.make
|
||||||
|
config.hdr
|
||||||
configure
|
configure
|
||||||
configure.in
|
configure.in
|
||||||
core.c
|
core.c
|
||||||
|
@ -55,6 +57,8 @@ emul_netbsd.c
|
||||||
emul_netbsd.h
|
emul_netbsd.h
|
||||||
events.c
|
events.c
|
||||||
events.h
|
events.h
|
||||||
|
filter_filename.c
|
||||||
|
filter_filename.h
|
||||||
idecode_branch.h
|
idecode_branch.h
|
||||||
idecode_expression.h
|
idecode_expression.h
|
||||||
idecode_fields.h
|
idecode_fields.h
|
||||||
|
|
|
@ -1,3 +1,53 @@
|
||||||
|
Wed Nov 1 10:49:48 1995 Michael Meissner <meissner@tiktok.cygnus.com>
|
||||||
|
|
||||||
|
* emul_netbsd.c (do_exit): Print arguments and close parenthesis
|
||||||
|
if tracing, since exit doesn't go through emul_exit_call.
|
||||||
|
(do_read): Print arguments if tracing.
|
||||||
|
(do_write): Ditto.
|
||||||
|
(do_open): Ditto.
|
||||||
|
(do_break): Ditto.
|
||||||
|
(do_kill): Ditto.
|
||||||
|
(do_dup): Ditto.
|
||||||
|
(do_sigprocmask): Replace trace with printing arguments if
|
||||||
|
tracing.
|
||||||
|
(do_ioctl): Print arguments if tracing.
|
||||||
|
(do_umask): Ditto.
|
||||||
|
(do_dup2): Ditto.
|
||||||
|
(do_fcntl): Ditto.
|
||||||
|
(do_gettimeofday): Ditto.
|
||||||
|
(do_getrusage): Ditto.
|
||||||
|
(do_fstatfs): Ditto.
|
||||||
|
|
||||||
|
* filter_filename.c: New file to provide filter_filename to strip
|
||||||
|
the directory prefix from a file.
|
||||||
|
* filter_filename.h: New include file to declare filter_filename.
|
||||||
|
|
||||||
|
* debug.h: Include filter_filename.h.
|
||||||
|
(TRACE,DTRACE,ERROR): Use filter_filename on __FILE__.
|
||||||
|
|
||||||
|
* misc.h: Include filter_filename.h.
|
||||||
|
(ASSERT): Use filter_filename on __FILE__.
|
||||||
|
|
||||||
|
* igen.c (lf_print_my_prefix): Use filter_filename on the filename
|
||||||
|
argument.
|
||||||
|
|
||||||
|
* Makefile.in: Add filter_filename support.
|
||||||
|
|
||||||
|
* ppc-instructions (dcbi, icbi): Make these NOPs rather than
|
||||||
|
invalid instructions.
|
||||||
|
|
||||||
|
* configure.in: Add support for more --enable-sim-* switches.
|
||||||
|
Use config.make and config.hdr to write to Makefile and config.h
|
||||||
|
respectively. Don't rewrite Makefile, just append to it.
|
||||||
|
* configure: Regenerate.
|
||||||
|
* config.{make,hdr}: New shell scripts.
|
||||||
|
|
||||||
|
* Makefile.in: Remove all variables set by configure.in.
|
||||||
|
(psim.o): Depend on $(BUILT_SRC) also.
|
||||||
|
|
||||||
|
* emul_netbsd.c (do_gettimeofday,do_getrusage): When comparing an
|
||||||
|
integer, use 0, not NULL.
|
||||||
|
|
||||||
Tue Oct 31 15:20:04 1995 Michael Meissner <meissner@tiktok.cygnus.com>
|
Tue Oct 31 15:20:04 1995 Michael Meissner <meissner@tiktok.cygnus.com>
|
||||||
|
|
||||||
* configure.in: Add support for --enable-sim-inline,
|
* configure.in: Add support for --enable-sim-inline,
|
||||||
|
@ -6,19 +56,19 @@ Tue Oct 31 15:20:04 1995 Michael Meissner <meissner@tiktok.cygnus.com>
|
||||||
and --enable-sim-endian switch to control various Makefile
|
and --enable-sim-endian switch to control various Makefile
|
||||||
variables.
|
variables.
|
||||||
* configure: Regenerate from configure.in.
|
* configure: Regenerate from configure.in.
|
||||||
* Makefile: Add various Make variables that the various switches
|
* Makefile.in: Add various Make variables that the various
|
||||||
alter.
|
switches alter.
|
||||||
|
|
||||||
* std-config.h (DEFAULT_INLINE): Don't set this to 2 if using GCC
|
* std-config.h (DEFAULT_INLINE): Don't set this to 2 if using GCC
|
||||||
and optimizing by default.
|
and optimizing by default.
|
||||||
|
|
||||||
Fri Oct 27 19:26:27 1995 Andrew Cagney <cagney@cagney@highland.com.au>
|
Fri Oct 27 19:26:27 1995 Andrew Cagney <cagney@highland.com.au>
|
||||||
|
|
||||||
* bits.h (ROTL32, ROTL64): Were functions, made them macros, now
|
* bits.h (ROTL32, ROTL64): Were functions, made them macros, now
|
||||||
make them functions again. Appears 2.6.3 is confused by just a
|
make them functions again. Appears 2.6.3 is confused by just a
|
||||||
macro.
|
macro.
|
||||||
|
|
||||||
Thu Oct 26 18:31:58 1995 Andrew Cagney <cagney@cagney@highland.com.au>
|
Thu Oct 26 18:31:58 1995 Andrew Cagney <cagney@highland.com.au>
|
||||||
|
|
||||||
* ppc-endian.c (SWAP_8): Fix 8 byte swap!
|
* ppc-endian.c (SWAP_8): Fix 8 byte swap!
|
||||||
|
|
||||||
|
@ -30,18 +80,18 @@ Thu Oct 26 18:31:58 1995 Andrew Cagney <cagney@cagney@highland.com.au>
|
||||||
trace_semantics is now different to trace_idecode, the former
|
trace_semantics is now different to trace_idecode, the former
|
||||||
checks the cache.
|
checks the cache.
|
||||||
|
|
||||||
Tue Oct 24 21:54:13 1995 Andrew Cagney <cagney@cagney@highland.com.au>
|
Tue Oct 24 21:54:13 1995 Andrew Cagney <cagney@highland.com.au>
|
||||||
|
|
||||||
* ppc-instructions (mtsrin): Missing instruction
|
* ppc-instructions (mtsrin): Missing instruction
|
||||||
* ppc-instructions (mfsrin): Missing instruction
|
* ppc-instructions (mfsrin): Missing instruction
|
||||||
* ppc-instructions (eieio): Missing instruction
|
* ppc-instructions (eieio): Missing instruction
|
||||||
|
|
||||||
Tue Oct 24 20:55:29 1995 Andrew Cagney <cagney@cagney@highland.com.au>
|
Tue Oct 24 20:55:29 1995 Andrew Cagney <cagney@highland.com.au>
|
||||||
|
|
||||||
* build-psim: New shell script - see internals for usage,
|
* build-psim: New shell script - see internals for usage,
|
||||||
simplifies the process of building custom simulators.
|
simplifies the process of building custom simulators.
|
||||||
|
|
||||||
Mon Oct 23 23:48:59 1995 Andrew Cagney <cagney@cagney@highland.com.au>
|
Mon Oct 23 23:48:59 1995 Andrew Cagney <cagney@highland.com.au>
|
||||||
|
|
||||||
* std-config.h (SEMANTICS_INLINE): Tidy up notes on each of the
|
* std-config.h (SEMANTICS_INLINE): Tidy up notes on each of the
|
||||||
INLINE macros. Make SEMANTICS_INLINE == 1 if DEFAULT_INLINE == 2.
|
INLINE macros. Make SEMANTICS_INLINE == 1 if DEFAULT_INLINE == 2.
|
||||||
|
@ -55,7 +105,7 @@ Mon Oct 23 23:48:59 1995 Andrew Cagney <cagney@cagney@highland.com.au>
|
||||||
* FIXME: devices.c/emul_netbsd.c would benefit (slightly) from
|
* FIXME: devices.c/emul_netbsd.c would benefit (slightly) from
|
||||||
the inclusion of device_tree.c/emul_generic.c.
|
the inclusion of device_tree.c/emul_generic.c.
|
||||||
|
|
||||||
Mon Oct 23 00:31:50 1995 Andrew Cagney <cagney@cagney@highland.com.au>
|
Mon Oct 23 00:31:50 1995 Andrew Cagney <cagney@highland.com.au>
|
||||||
|
|
||||||
* os_emul.[hc], emul_generic.[hc], emul_netbsd.[hc]: replace
|
* os_emul.[hc], emul_generic.[hc], emul_netbsd.[hc]: replace
|
||||||
system.[hc]. Start of suport for multiple emulations and
|
system.[hc]. Start of suport for multiple emulations and
|
||||||
|
@ -64,7 +114,7 @@ Mon Oct 23 00:31:50 1995 Andrew Cagney <cagney@cagney@highland.com.au>
|
||||||
* emul_generic.[hc]: Start of code to implement proper system call
|
* emul_generic.[hc]: Start of code to implement proper system call
|
||||||
tracing (from spy).
|
tracing (from spy).
|
||||||
|
|
||||||
Sun Oct 22 21:33:51 1995 Andrew Cagney <cagney@cagney@highland.com.au>
|
Sun Oct 22 21:33:51 1995 Andrew Cagney <cagney@highland.com.au>
|
||||||
|
|
||||||
* cpu.h, cpu.c (cpu_init): New function, zero the registers before
|
* cpu.h, cpu.c (cpu_init): New function, zero the registers before
|
||||||
the processor is started. Fixes problem of registers being
|
the processor is started. Fixes problem of registers being
|
||||||
|
@ -84,7 +134,7 @@ Sun Oct 22 21:33:51 1995 Andrew Cagney <cagney@cagney@highland.com.au>
|
||||||
performing an isync when the instruction stream doesn't contain
|
performing an isync when the instruction stream doesn't contain
|
||||||
one.
|
one.
|
||||||
|
|
||||||
Sun Oct 22 19:27:48 1995 Andrew Cagney <cagney@cagney@highland.com.au>
|
Sun Oct 22 19:27:48 1995 Andrew Cagney <cagney@highland.com.au>
|
||||||
|
|
||||||
* mon.h (new), mon.c (new), std-config.h (WITH_MON): Performance
|
* mon.h (new), mon.c (new), std-config.h (WITH_MON): Performance
|
||||||
monitoring module. Counts both instructions issued and
|
monitoring module. Counts both instructions issued and
|
||||||
|
@ -104,20 +154,20 @@ Sun Oct 22 19:27:48 1995 Andrew Cagney <cagney@cagney@highland.com.au>
|
||||||
cpu_increment_number_of_insns() and cpu_get_number_of_insns()
|
cpu_increment_number_of_insns() and cpu_get_number_of_insns()
|
||||||
replaced by copied code in mon.[hc].
|
replaced by copied code in mon.[hc].
|
||||||
|
|
||||||
Sun Oct 22 18:42:45 1995 Andrew Cagney <cagney@cagney@highland.com.au>
|
Sun Oct 22 18:42:45 1995 Andrew Cagney <cagney@highland.com.au>
|
||||||
|
|
||||||
* sim_calls.c, main.c, psim.c (psim_create): always create
|
* sim_calls.c, main.c, psim.c (psim_create): always create
|
||||||
`WITH_SMP' cpus. The actual number of CPU's active in a
|
`WITH_SMP' cpus. The actual number of CPU's active in a
|
||||||
simulation run is taken from the device node: /init/smp (an
|
simulation run is taken from the device node: /init/smp (an
|
||||||
integer). WITH_SMP changed to 2 (remember to put it back to 0).
|
integer). WITH_SMP changed to 2 (remember to put it back to 0).
|
||||||
|
|
||||||
Fri Oct 20 17:26:54 1995 Andrew Cagney <cagney@cagney@highland.com.au>
|
Fri Oct 20 17:26:54 1995 Andrew Cagney <cagney@highland.com.au>
|
||||||
|
|
||||||
* system.c: More system call emulation. If code appears NetBSD
|
* system.c: More system call emulation. If code appears NetBSD
|
||||||
specific, make conditional to being compiled on a NetBSD system
|
specific, make conditional to being compiled on a NetBSD system
|
||||||
(sigh).
|
(sigh).
|
||||||
|
|
||||||
Wed Oct 18 23:02:20 1995 Andrew Cagney <cagney@cagney@highland.com.au>
|
Wed Oct 18 23:02:20 1995 Andrew Cagney <cagney@highland.com.au>
|
||||||
|
|
||||||
* Makefile.in, gen.c(delete), igen.c(new), dgen.c(new),
|
* Makefile.in, gen.c(delete), igen.c(new), dgen.c(new),
|
||||||
lf.[ch](new), table.[ch](new): Split into two generators - igen
|
lf.[ch](new), table.[ch](new): Split into two generators - igen
|
||||||
|
@ -161,7 +211,7 @@ Wed Oct 18 23:02:20 1995 Andrew Cagney <cagney@cagney@highland.com.au>
|
||||||
* ppc-instructions (64bit Floating Convert from Integer
|
* ppc-instructions (64bit Floating Convert from Integer
|
||||||
Doubleword): Correct call to Round_Float().
|
Doubleword): Correct call to Round_Float().
|
||||||
|
|
||||||
Mon Oct 16 00:31:20 1995 Andrew Cagney <cagney@cagney@highland.com.au>
|
Mon Oct 16 00:31:20 1995 Andrew Cagney <cagney@highland.com.au>
|
||||||
|
|
||||||
* basics.h: #include "sim_callbacks.h" earlier so that its
|
* basics.h: #include "sim_callbacks.h" earlier so that its
|
||||||
prototypes are declared in all other header files.
|
prototypes are declared in all other header files.
|
||||||
|
@ -177,7 +227,7 @@ Mon Oct 16 00:31:20 1995 Andrew Cagney <cagney@cagney@highland.com.au>
|
||||||
Add size of buffer argument to functions writing a string into a
|
Add size of buffer argument to functions writing a string into a
|
||||||
buffer. Check for buffer overflow.
|
buffer. Check for buffer overflow.
|
||||||
|
|
||||||
Sun Oct 15 22:16:11 1995 Andrew Cagney <cagney@cagney@highland.com.au>
|
Sun Oct 15 22:16:11 1995 Andrew Cagney <cagney@highland.com.au>
|
||||||
|
|
||||||
* devices.h, devices.c, debug.h, debug.c: add macro's for tracing
|
* devices.h, devices.c, debug.h, debug.c: add macro's for tracing
|
||||||
of each device. Make parameter names consistent so macros work.
|
of each device. Make parameter names consistent so macros work.
|
||||||
|
@ -191,7 +241,7 @@ Sun Oct 15 22:16:11 1995 Andrew Cagney <cagney@cagney@highland.com.au>
|
||||||
* core.c: add tracing of core-device, adjust parameter names in
|
* core.c: add tracing of core-device, adjust parameter names in
|
||||||
core functions to be consistent with those in devices*.
|
core functions to be consistent with those in devices*.
|
||||||
|
|
||||||
Sun Oct 15 20:33:20 1995 Andrew Cagney <cagney@cagney@highland.com.au>
|
Sun Oct 15 20:33:20 1995 Andrew Cagney <cagney@highland.com.au>
|
||||||
|
|
||||||
* debug.h, debug.c (trace_option): New function. Parses the trace
|
* debug.h, debug.c (trace_option): New function. Parses the trace
|
||||||
option, updating the trace array.
|
option, updating the trace array.
|
||||||
|
@ -301,7 +351,7 @@ Thu Oct 12 11:35:53 1995 Michael Meissner <meissner@tiktok.cygnus.com>
|
||||||
({CORE,VM,CPU,EVENTS,REGISTERS,INTERRUPTS}_INLINE): Ditto.
|
({CORE,VM,CPU,EVENTS,REGISTERS,INTERRUPTS}_INLINE): Ditto.
|
||||||
({SPREG,IDECODE}_INLINE): Ditto.
|
({SPREG,IDECODE}_INLINE): Ditto.
|
||||||
|
|
||||||
Wed Oct 11 17:13:15 1995 Andrew Cagney <cagney@cagney@highland.com.au>
|
Wed Oct 11 17:13:15 1995 Andrew Cagney <cagney@highland.com.au>
|
||||||
|
|
||||||
* ppc-instructions: Initial cut of floating point suport added.
|
* ppc-instructions: Initial cut of floating point suport added.
|
||||||
Of note include - use of host IEEE floating point instructions,
|
Of note include - use of host IEEE floating point instructions,
|
||||||
|
@ -318,7 +368,7 @@ Wed Oct 11 17:13:15 1995 Andrew Cagney <cagney@cagney@highland.com.au>
|
||||||
* Makefile.in et.al (sorry): tweek to use new core, core_map and
|
* Makefile.in et.al (sorry): tweek to use new core, core_map and
|
||||||
core.h.
|
core.h.
|
||||||
|
|
||||||
Wed Oct 11 12:10:26 1995 Andrew Cagney <cagney@cagney@highland.com.au>
|
Wed Oct 11 12:10:26 1995 Andrew Cagney <cagney@highland.com.au>
|
||||||
|
|
||||||
* sim_calls.c, main.c: Add -g (trace_gdb) option, add tracing to
|
* sim_calls.c, main.c: Add -g (trace_gdb) option, add tracing to
|
||||||
most of the other functions in sim_calls.c.
|
most of the other functions in sim_calls.c.
|
||||||
|
@ -329,7 +379,7 @@ Wed Oct 11 12:10:26 1995 Andrew Cagney <cagney@cagney@highland.com.au>
|
||||||
|
|
||||||
* vm.c, vm_n.h, Makefile.in: ditto
|
* vm.c, vm_n.h, Makefile.in: ditto
|
||||||
|
|
||||||
Tue Oct 10 15:42:59 1995 Andrew Cagney <cagney@cagney@highland.com.au>
|
Tue Oct 10 15:42:59 1995 Andrew Cagney <cagney@highland.com.au>
|
||||||
|
|
||||||
* devices.h, devices.c, memory_map.h, memory_map.c: Changed
|
* devices.h, devices.c, memory_map.h, memory_map.c: Changed
|
||||||
callback interface so that there is a read/write buffer but no
|
callback interface so that there is a read/write buffer but no
|
||||||
|
@ -341,12 +391,12 @@ Tue Oct 10 15:42:59 1995 Andrew Cagney <cagney@cagney@highland.com.au>
|
||||||
eliminate transfer_mode (raw or cooked) parameter from read/write
|
eliminate transfer_mode (raw or cooked) parameter from read/write
|
||||||
buffer.
|
buffer.
|
||||||
|
|
||||||
Fri Oct 6 20:23:56 1995 Andrew Cagney <cagney@cagney@highland.com.au>
|
Fri Oct 6 20:23:56 1995 Andrew Cagney <cagney@highland.com.au>
|
||||||
|
|
||||||
* ppc-instructions (fmul, fmuls): correct instruction format - had
|
* ppc-instructions (fmul, fmuls): correct instruction format - had
|
||||||
FRB instead of FRC.
|
FRB instead of FRC.
|
||||||
|
|
||||||
Wed Oct 4 17:31:12 1995 Andrew Cagney <cagney@cagney@highland.com.au>
|
Wed Oct 4 17:31:12 1995 Andrew Cagney <cagney@highland.com.au>
|
||||||
|
|
||||||
* psim.c, device_tree.h, device_tree.c, devices.c (printd_*,
|
* psim.c, device_tree.h, device_tree.c, devices.c (printd_*,
|
||||||
scand_*): new functions to parse/print fields in device names
|
scand_*): new functions to parse/print fields in device names
|
||||||
|
@ -360,7 +410,7 @@ Wed Oct 4 17:31:12 1995 Andrew Cagney <cagney@cagney@highland.com.au>
|
||||||
variable number of arguments. This gives greater flexability and
|
variable number of arguments. This gives greater flexability and
|
||||||
greater chance of bugs.
|
greater chance of bugs.
|
||||||
|
|
||||||
Tue Oct 3 22:01:56 1995 Andrew Cagney <cagney@cagney@highland.com.au>
|
Tue Oct 3 22:01:56 1995 Andrew Cagney <cagney@highland.com.au>
|
||||||
|
|
||||||
* main.c (printf_filtered, error): Missing va_end() to close off
|
* main.c (printf_filtered, error): Missing va_end() to close off
|
||||||
variable argument use.
|
variable argument use.
|
||||||
|
@ -483,7 +533,7 @@ Fri Sep 8 09:51:03 1995 Michael Meissner <meissner@tiktok.cygnus.com>
|
||||||
* basics.h (sysdep.h): Don't include it.
|
* basics.h (sysdep.h): Don't include it.
|
||||||
* Makefile.in (BASICS_H): Remove sysdep.h.
|
* Makefile.in (BASICS_H): Remove sysdep.h.
|
||||||
|
|
||||||
Wed Sep 6 13:25:42 1995 Andrew Cagney <cagney@cagney@highland.com.au>
|
Wed Sep 6 13:25:42 1995 Andrew Cagney <cagney@highland.com.au>
|
||||||
|
|
||||||
* core.c (core_add_data): First growth of bss was being put at
|
* core.c (core_add_data): First growth of bss was being put at
|
||||||
wrong address (0) instead of &end.
|
wrong address (0) instead of &end.
|
||||||
|
@ -491,7 +541,7 @@ Wed Sep 6 13:25:42 1995 Andrew Cagney <cagney@cagney@highland.com.au>
|
||||||
* core.c (core_add_stack, core_add_data): Was not handling case
|
* core.c (core_add_stack, core_add_data): Was not handling case
|
||||||
where bss/stack is grown across the current end-of-{bss,stack}.
|
where bss/stack is grown across the current end-of-{bss,stack}.
|
||||||
|
|
||||||
Wed Sep 6 00:46:10 1995 Andrew Cagney <cagney@cagney@highland.com.au>
|
Wed Sep 6 00:46:10 1995 Andrew Cagney <cagney@highland.com.au>
|
||||||
|
|
||||||
* system.c (system_call): Fix SYS_break - was aligning bss to a
|
* system.c (system_call): Fix SYS_break - was aligning bss to a
|
||||||
page boundary instead of just an 8 byte one; On first call sbrk(0)
|
page boundary instead of just an 8 byte one; On first call sbrk(0)
|
||||||
|
@ -537,7 +587,7 @@ Tue Aug 22 09:31:18 1995 Michael Meissner <meissner@tiktok.cygnus.com>
|
||||||
* configure.in: Clone from other simulator targets.
|
* configure.in: Clone from other simulator targets.
|
||||||
* configure: Generate via autoconf from configure.in.
|
* configure: Generate via autoconf from configure.in.
|
||||||
|
|
||||||
Sat Aug 19 09:05:32 1995 Andrew Cagney <cagney@cagney@highland.com.au>
|
Sat Aug 19 09:05:32 1995 Andrew Cagney <cagney@highland.com.au>
|
||||||
|
|
||||||
* ppc-instructions: fix srawi (was geting XER[CA] real wrong).
|
* ppc-instructions: fix srawi (was geting XER[CA] real wrong).
|
||||||
|
|
||||||
|
@ -548,14 +598,14 @@ Sat Aug 19 09:05:32 1995 Andrew Cagney <cagney@cagney@highland.com.au>
|
||||||
|
|
||||||
* main.c (main): really stupid. Wasn't exiting with correct status
|
* main.c (main): really stupid. Wasn't exiting with correct status
|
||||||
|
|
||||||
Fri Aug 18 00:38:01 1995 Andrew Cagney <cagney@cagney@highland.com.au>
|
Fri Aug 18 00:38:01 1995 Andrew Cagney <cagney@highland.com.au>
|
||||||
|
|
||||||
* system.c (system_call): add system calls kill(2) and getpid(2).
|
* system.c (system_call): add system calls kill(2) and getpid(2).
|
||||||
|
|
||||||
* main.c (main): Check/return exit status when simulation
|
* main.c (main): Check/return exit status when simulation
|
||||||
finishes.
|
finishes.
|
||||||
|
|
||||||
Thu Aug 17 14:29:18 1995 Andrew Cagney <cagney@cagney@highland.com.au>
|
Thu Aug 17 14:29:18 1995 Andrew Cagney <cagney@highland.com.au>
|
||||||
|
|
||||||
* device_tree.c (create_option_device_node): Alignment rules (at
|
* device_tree.c (create_option_device_node): Alignment rules (at
|
||||||
least for the moment) now are for strict alignment only for LE OEA
|
least for the moment) now are for strict alignment only for LE OEA
|
||||||
|
@ -563,7 +613,7 @@ Thu Aug 17 14:29:18 1995 Andrew Cagney <cagney@cagney@highland.com.au>
|
||||||
|
|
||||||
* system.c (system_call) SYS_exit: Wasn't exiting with correct status.
|
* system.c (system_call) SYS_exit: Wasn't exiting with correct status.
|
||||||
|
|
||||||
Thu Aug 17 01:16:38 1995 Andrew Cagney <cagney@cagney@highland.com.au>
|
Thu Aug 17 01:16:38 1995 Andrew Cagney <cagney@highland.com.au>
|
||||||
|
|
||||||
* vm.c (DEFINE_VM_DATA_MAP_WRITE_N): For miss aligned transfer
|
* vm.c (DEFINE_VM_DATA_MAP_WRITE_N): For miss aligned transfer
|
||||||
forgot to return.
|
forgot to return.
|
||||||
|
|
|
@ -68,6 +68,7 @@ RANLIB = @RANLIB@
|
||||||
|
|
||||||
HDEFINES = @HDEFINES@
|
HDEFINES = @HDEFINES@
|
||||||
TDEFINES =
|
TDEFINES =
|
||||||
|
IGEN_FLAGS = $(IGEN_DUPLICATE) $(IGEN_FILTER)
|
||||||
|
|
||||||
.NOEXPORT:
|
.NOEXPORT:
|
||||||
MAKEOVERRIDES=
|
MAKEOVERRIDES=
|
||||||
|
@ -77,15 +78,6 @@ BFD_INCLUDES = -I../../bfd -I$(srcdir)/../../bfd
|
||||||
GDB_INCLUDES = -I../../gdb -I$(srcdir)/../../gdb -I$(srcdir)/../../gdb/config -I$(srcdir)/../../mmalloc
|
GDB_INCLUDES = -I../../gdb -I$(srcdir)/../../gdb -I$(srcdir)/../../gdb/config -I$(srcdir)/../../mmalloc
|
||||||
INCLUDES = -I. -I$(srcdir) $(LIB_INCLUDES) $(BFD_INCLUDES) $(GDB_INCLUDES)
|
INCLUDES = -I. -I$(srcdir) $(LIB_INCLUDES) $(BFD_INCLUDES) $(GDB_INCLUDES)
|
||||||
|
|
||||||
CONFIG_FILE = std-config.h
|
|
||||||
|
|
||||||
# See inline.h for appropriate flags to set
|
|
||||||
INLINE_CFLAGS = # -g0 -DDEFAULT_INLINE=2
|
|
||||||
IGEN_FLAGS = -f 64 # -f 64 -e
|
|
||||||
IGEN_OPCODE_RULES = ppc-opcode-simple # ppc-opcode-complex
|
|
||||||
DGEN_FLAGS = # # -s
|
|
||||||
|
|
||||||
|
|
||||||
LIBIBERTY_LIB = ../../libiberty/libiberty.a
|
LIBIBERTY_LIB = ../../libiberty/libiberty.a
|
||||||
BFD_LIB = ../../bfd/libbfd.a
|
BFD_LIB = ../../bfd/libbfd.a
|
||||||
|
|
||||||
|
@ -94,7 +86,7 @@ TARGETLIB = libsim.a
|
||||||
all: run $(TARGETLIB) $(GDB_OBJ)
|
all: run $(TARGETLIB) $(GDB_OBJ)
|
||||||
|
|
||||||
.c.o:
|
.c.o:
|
||||||
$(CC) -c $(CFLAGS) $(INLINE_CFLAGS) $(HDEFINES) $(TDEFINES) $(INCLUDES) $<
|
$(CC) -c $(CFLAGS) $(INLINE_CFLAGS) $(SIM_CFLAGS) $(HDEFINES) $(TDEFINES) $(INCLUDES) $<
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -104,6 +96,7 @@ BASICS_H = \
|
||||||
words.h \
|
words.h \
|
||||||
ppc-endian.h \
|
ppc-endian.h \
|
||||||
debug.h \
|
debug.h \
|
||||||
|
filter_filename.h \
|
||||||
bits.h \
|
bits.h \
|
||||||
sim_callbacks.h
|
sim_callbacks.h
|
||||||
|
|
||||||
|
@ -183,6 +176,7 @@ MAIN_SRC = \
|
||||||
# first
|
# first
|
||||||
LIB_OBJ = \
|
LIB_OBJ = \
|
||||||
debug.o \
|
debug.o \
|
||||||
|
filter_filename.o \
|
||||||
bits.o \
|
bits.o \
|
||||||
ppc-endian.o \
|
ppc-endian.o \
|
||||||
os_emul.o \
|
os_emul.o \
|
||||||
|
@ -221,11 +215,12 @@ $(TARGETLIB): tmp-igen tmp-dgen $(LIB_OBJ) $(GDB_OBJ)
|
||||||
|
|
||||||
# Given that inlines are turned on now, rebuild psim whenever
|
# Given that inlines are turned on now, rebuild psim whenever
|
||||||
# anything changes.
|
# anything changes.
|
||||||
psim.o: psim.c psim.h $(CPU_H) $(IDECODE_H) $(INLINE) $(LIB_SRC)
|
psim.o: psim.c psim.h $(CPU_H) $(IDECODE_H) $(INLINE) $(LIB_SRC) $(BUILT_SRC)
|
||||||
|
|
||||||
bits.o: bits.c $(BASICS_H)
|
bits.o: bits.c $(BASICS_H)
|
||||||
|
|
||||||
debug.o: debug.c $(BASICS_H)
|
debug.o: debug.c $(BASICS_H)
|
||||||
|
filter_filename.o: filter_filename.c $(BASICS_H)
|
||||||
|
|
||||||
ppc-endian.o: ppc-endian.c ppc-endian.h \
|
ppc-endian.o: ppc-endian.c ppc-endian.h \
|
||||||
config.h ppc-config.h words.h sim_callbacks.h
|
config.h ppc-config.h words.h sim_callbacks.h
|
||||||
|
@ -314,16 +309,16 @@ tmp-igen: igen ppc-instructions $(IGEN_OPCODE_RULES) ppc-cache-rules $(srcdir)/.
|
||||||
# itable.h itable.c icache.h idecode.h idecode.c semantics.h semantics.c: tmp-igen
|
# itable.h itable.c icache.h idecode.h idecode.c semantics.h semantics.c: tmp-igen
|
||||||
# spreg.h spreg.c: tmp-dgen
|
# spreg.h spreg.c: tmp-dgen
|
||||||
|
|
||||||
dgen: dgen.o table.o lf.o misc.o
|
dgen: dgen.o table.o lf.o misc.o filter_filename.o
|
||||||
$(CC_FOR_BUILD) $(CFLAGS) $(LDFLAGS) -o dgen dgen.o table.o lf.o misc.o $(LIBIBERTY_LIB) $(LIBS)
|
$(CC_FOR_BUILD) $(CFLAGS) $(LDFLAGS) -o dgen dgen.o table.o lf.o misc.o filter_filename.o $(LIBIBERTY_LIB) $(LIBS)
|
||||||
|
|
||||||
igen: igen.o table.o lf.o misc.o
|
igen: igen.o table.o lf.o misc.o filter_filename.o
|
||||||
$(CC_FOR_BUILD) $(CFLAGS) $(LDFLAGS) -o igen igen.o table.o lf.o misc.o $(LIBIBERTY_LIB) $(LIBS)
|
$(CC_FOR_BUILD) $(CFLAGS) $(LDFLAGS) -o igen igen.o table.o lf.o misc.o filter_filename.o $(LIBIBERTY_LIB) $(LIBS)
|
||||||
|
|
||||||
table.o: misc.h lf.h table.h
|
table.o: misc.h filter_filename.h lf.h table.h
|
||||||
lf.o: misc.h lf.h
|
lf.o: misc.h filter_filename.h lf.h
|
||||||
dgen.o igen.o: misc.h lf.h table.h
|
dgen.o igen.o: misc.h filter_filename.h lf.h table.h
|
||||||
misc.o: misc.h
|
misc.o: misc.h filter_filename.h
|
||||||
# With out this #, make thinks that misc.o doesn't have a rule
|
# With out this #, make thinks that misc.o doesn't have a rule
|
||||||
|
|
||||||
tags etags: TAGS
|
tags etags: TAGS
|
||||||
|
@ -344,9 +339,11 @@ config.h: stamp-h ; @true
|
||||||
stamp-h: config.in config.status
|
stamp-h: config.in config.status
|
||||||
CONFIG_FILES= CONFIG_HEADERS=config.h:config.in $(SHELL) ./config.status
|
CONFIG_FILES= CONFIG_HEADERS=config.h:config.in $(SHELL) ./config.status
|
||||||
|
|
||||||
config.status: configure
|
config.status: configure config.make config.hdr
|
||||||
$(SHELL) ./config.status --recheck
|
$(SHELL) ./config.status --recheck
|
||||||
|
|
||||||
install:
|
install:
|
||||||
$(INSTALL_XFORM) run $(bindir)/run
|
$(INSTALL_XFORM) run $(bindir)/run
|
||||||
|
|
||||||
|
|
||||||
|
# Make variables generated automatically by configure follow this
|
||||||
|
|
|
@ -0,0 +1,52 @@
|
||||||
|
#! /bin/sh
|
||||||
|
|
||||||
|
# Helper script to turn --enable-sim-xxx switches into defines
|
||||||
|
|
||||||
|
# Arg 1 -- header name
|
||||||
|
# Arg 2 -- define name
|
||||||
|
# Arg 3 -- --enable-sim switch spelling
|
||||||
|
# Arg 4 -- --enable-sim switch value
|
||||||
|
# the remaining switches are paired, with the first being the value to test arg 4 against
|
||||||
|
# and the second is the value to put in the define if it matches
|
||||||
|
|
||||||
|
hdr="$1"
|
||||||
|
shift
|
||||||
|
|
||||||
|
define="$1"
|
||||||
|
shift
|
||||||
|
|
||||||
|
switch="$1"
|
||||||
|
shift
|
||||||
|
|
||||||
|
value="$1"
|
||||||
|
shift
|
||||||
|
|
||||||
|
while test $# -gt 1; do
|
||||||
|
test_value="$1"
|
||||||
|
shift
|
||||||
|
|
||||||
|
set_value="$1"
|
||||||
|
shift
|
||||||
|
|
||||||
|
if test x"$value" = x"$test_value" -o x"$test_value" = x"*"; then
|
||||||
|
echo "Defining $define=$set_value"
|
||||||
|
(echo ""
|
||||||
|
if test x"$value" = x""; then
|
||||||
|
echo "/* no $switch */"
|
||||||
|
elif test x"$value" = x"yes"; then
|
||||||
|
echo "/* $switch */"
|
||||||
|
else
|
||||||
|
echo "/* $switch=$value */"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "#ifndef $define"
|
||||||
|
echo "#define $define $set_value"
|
||||||
|
echo "#endif") >> $hdr
|
||||||
|
exit 0;
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if test x"$value" != x"" -a x"$value" != x"no"; then
|
||||||
|
echo "$switch=$value is not supported" 1>&2
|
||||||
|
exit 1
|
||||||
|
fi
|
|
@ -0,0 +1,53 @@
|
||||||
|
#! /bin/sh
|
||||||
|
|
||||||
|
# Helper script to turn --enable-sim-xxx switches into make variables
|
||||||
|
|
||||||
|
# Arg 1 -- header name
|
||||||
|
# Arg 2 -- define name
|
||||||
|
# Arg 3 -- --enable-sim switch spelling
|
||||||
|
# Arg 4 -- --enable-sim switch value
|
||||||
|
# the remaining switches are paired, with the first being the value to test arg 4 against
|
||||||
|
# and the second is the value to put in the define if it matches
|
||||||
|
|
||||||
|
make="$1"
|
||||||
|
shift
|
||||||
|
|
||||||
|
makevar="$1"
|
||||||
|
shift
|
||||||
|
|
||||||
|
switch="$1"
|
||||||
|
shift
|
||||||
|
|
||||||
|
value="$1"
|
||||||
|
shift
|
||||||
|
|
||||||
|
while test $# -gt 1; do
|
||||||
|
test_value="$1"
|
||||||
|
shift
|
||||||
|
|
||||||
|
set_value="$1"
|
||||||
|
shift
|
||||||
|
|
||||||
|
if test x"$value" = x"$test_value" -o x"$test_value" = x"*"; then
|
||||||
|
echo "Setting $makevar=$set_value"
|
||||||
|
(echo "";
|
||||||
|
if test x"$value" = x""; then
|
||||||
|
echo "# no $switch";
|
||||||
|
elif test x"$value" = x"yes"; then
|
||||||
|
echo "# $switch";
|
||||||
|
else
|
||||||
|
echo "# $switch=$value";
|
||||||
|
fi
|
||||||
|
if test x"$set_value" = x""; then
|
||||||
|
echo "$makevar ="
|
||||||
|
else
|
||||||
|
echo "$makevar = $set_value"
|
||||||
|
fi) >> $make
|
||||||
|
exit 0;
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if test x"$value" != x"" -a x"$value" != x"no"; then
|
||||||
|
echo "$switch=$value is not supported" 1>&2
|
||||||
|
exit 1
|
||||||
|
fi
|
|
@ -1040,13 +1040,41 @@ rm -fr confdefs* $ac_clean_files
|
||||||
test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
|
test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
|
||||||
|
|
||||||
|
|
||||||
|
if test x"$enable_sim_cflags" != x"" -a x"$enable_sim_cflags" != x"no"; then
|
||||||
|
if test "$enable_sim_cflags" = "yes"; then
|
||||||
|
enable_sim_cflags="-fomit-frame-pointer,-O2"
|
||||||
|
fi
|
||||||
|
echo "Setting SIM_CFLAGS=$enable_sim_cflags" | sed -e "s/,/ /g" 1>&6
|
||||||
|
(echo; echo "# --enable-sim-cflags=$enable_sim_cflags";
|
||||||
|
echo "SIM_CFLAGS = $enable_sim_cflags" | sed -e "s/,/ /g") >> Makefile
|
||||||
|
else
|
||||||
|
echo "Setting SIM_CFLAGS=" 1>&6
|
||||||
|
(echo; echo "# no --enable-sim-cflags"; echo "SIM_CFLAGS =") >> Makefile
|
||||||
|
fi
|
||||||
|
|
||||||
|
$srcdir/config.make Makefile CONFIG_FILE --enable-sim-config "$enable_sim_config" \
|
||||||
|
"" "std-config.h" "no" "std-config.h" "yes" "std-config.h" "*" "$enable_sim_config" 1>&6
|
||||||
|
|
||||||
|
$srcdir/config.make Makefile IGEN_OPCODE_RULES --enable-sim-opcode "$enable_sim_opcode" \
|
||||||
|
"" "ppc-opcode-simple" "no" "ppc-opcode-simple" "yes" "ppc-opcode-simple" \
|
||||||
|
"complex" "ppc-opcode-complex" "simple" "ppc-opcode-simple" 1>&6
|
||||||
|
|
||||||
|
$srcdir/config.make Makefile DGEN_FLAGS --enable-sim-switch "$enable_sim_switch" \
|
||||||
|
"" "" "no" "" "yes" "-s" 1>&6
|
||||||
|
|
||||||
|
$srcdir/config.make Makefile IGEN_DUPLICATE --enable-sim-duplicate "$enable_sim_duplicate" \
|
||||||
|
"" "" "no" "" "yes" "-e" 1>&6
|
||||||
|
|
||||||
|
$srcdir/config.make Makefile IGEN_FILTER --enable-sim-filter "$enable_sim_filter" \
|
||||||
|
"" "-f 64" "no" "" "yes" "-f 64" "*" "$enable_sim_filter" 1>&6
|
||||||
|
|
||||||
|
flags=""
|
||||||
if test x"$enable_sim_inline" != x""; then
|
if test x"$enable_sim_inline" != x""; then
|
||||||
flags=""
|
|
||||||
case "$enable_sim_inline" in
|
case "$enable_sim_inline" in
|
||||||
no) flags="";;
|
no) flags="";;
|
||||||
0) flags="-DDEFAULT_INLINE=0";;
|
0) flags=" -DDEFAULT_INLINE=0";;
|
||||||
yes | 2) flags="-DDEFAULT_INLINE=2";;
|
yes | 2) flags=" -DDEFAULT_INLINE=2";;
|
||||||
1) flags="-DDEFAULT_INLINE=1";;
|
1) flags=" -DDEFAULT_INLINE=1";;
|
||||||
*) for x in `echo "$enable_sim_inline" | sed -e "s/,/ /g"`; do
|
*) for x in `echo "$enable_sim_inline" | sed -e "s/,/ /g"`; do
|
||||||
case "$x" in
|
case "$x" in
|
||||||
*_INLINE=*) flags="$flags -D$x";;
|
*_INLINE=*) flags="$flags -D$x";;
|
||||||
|
@ -1056,87 +1084,68 @@ if test x"$enable_sim_inline" != x""; then
|
||||||
esac
|
esac
|
||||||
done;;
|
done;;
|
||||||
esac
|
esac
|
||||||
if test x"$flags" != x""; then
|
fi
|
||||||
mv Makefile Makefile.tem
|
if test x"$flags" != x""; then
|
||||||
echo "Setting INLINE_CFLAGS=$flags" 1>&6
|
echo "Setting INLINE_CFLAGS=$flags" 1>&6
|
||||||
sed -e "s/^INLINE_CFLAGS.*=.*\$/INLINE_CFLAGS =$flags/" \
|
(echo; echo "# --enable-sim-inline=$enable_sim_inline"; echo "INLINE_CFLAGS =$flags") >> Makefile
|
||||||
< Makefile.tem > Makefile
|
|
||||||
rm -f Makefile.tem
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test x"$enable_sim_bswap" != x"" -a x"$enable_sim_bswap" != x"no"; then
|
|
||||||
mv Makefile Makefile.tem
|
|
||||||
echo "Setting BSWAP_CFLAGS=-DWITH_BSWAP=1" 1>&6
|
|
||||||
sed -e "s/^BSWAP_CFLAGS.*=.*\$/BSWAP_CFLAGS = -DWITH_BSWAP=1/" \
|
|
||||||
< Makefile.tem > Makefile
|
|
||||||
rm -f Makefile.tem
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test x"$enable_sim_cflags" != x"" -a x"$enable_sim_cflags" != x"no"; then
|
|
||||||
if test "$enable_sim_cflags" = "yes"; then
|
|
||||||
enable_sim_cflags="-fomit-frame-pointer,-O2"
|
|
||||||
fi
|
|
||||||
mv Makefile Makefile.tem
|
|
||||||
echo "Setting SIM_CFLAGS=$enable_sim_cflags"
|
|
||||||
sed -e "s/^SIM_CFLAGS.*=.*\$/SIM_CFLAGS = $enable_sim_cflags/" -e "s/,/ /g"\
|
|
||||||
< Makefile.tem > Makefile
|
|
||||||
rm -f Makefile.tem
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test x"$enable_sim_complex" != x"" -a x"$enable_sim_complex" != x"no"; then
|
|
||||||
mv Makefile Makefile.tem
|
|
||||||
echo "Setting IGEN_OPCODE_RULES=ppc-opcode-complex" 1>&6
|
|
||||||
sed -e "s/^IGEN_OPCODE_RULES.*=.*\$/IGEN_OPCODE_RULES = ppc-opcode-complex/" \
|
|
||||||
< Makefile.tem > Makefile
|
|
||||||
rm -f Makefile.tem
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test x"$enable_sim_switch" != x"" -a x"$enable_sim_switch" != x"no"; then
|
|
||||||
mv Makefile Makefile.tem
|
|
||||||
echo "Setting DGEN_FLAGS=-s" 1>&6
|
|
||||||
sed -e "s/^DGEN_FLAGS.*=.*\$/DGEN_FLAGS = -s/" < Makefile.tem > Makefile
|
|
||||||
rm -f Makefile.tem
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test x"$enable_sim_duplicate" != x"" -a x"$enable_sim_duplicate" != x"no"; then
|
|
||||||
mv Makefile Makefile.tem
|
|
||||||
echo "Setting IGEN_DUPLICATE=-e" 1>&6
|
|
||||||
sed -e "s/^IGEN_DUPLICATE.*=.*\$/IGEN_DUPLICATE = -e/" < Makefile.tem > Makefile
|
|
||||||
rm -f Makefile.tem
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test x"$enable_sim_filter" = x"no"; then
|
|
||||||
mv Makefile Makefile.tem
|
|
||||||
echo "Setting IGEN_FILTER=" 1>&6
|
|
||||||
sed -e "s/^IGEN_FILTER.*=.*\$/IGEN_FILTER =/" < Makefile.tem > Makefile
|
|
||||||
rm -f Makefile.tem
|
|
||||||
|
|
||||||
else
|
else
|
||||||
if test x"$enable_sim_filter" != x"yes" -a x"$enable_sim_filter" != x""; then
|
echo "Setting INLINE_CFLAGS=" 1>&6
|
||||||
mv Makefile Makefile.tem
|
(echo; echo "# no --enable-sim-inline"; echo "INLINE_CFLAGS =") >> Makefile
|
||||||
echo "Setting IGEN_FILTER= -f $enable_sim_filter" 1>&6
|
|
||||||
sed -e "s/^IGEN_FILTER.*=.*\$/IGEN_FILTER = -f $enable_sim_filter/" \
|
|
||||||
< Makefile.tem > Makefile
|
|
||||||
rm -f Makefile.tem
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
endian=""
|
$srcdir/config.hdr config.h WITH_BSWAP --enable-sim-bswap "$enable_sim_bswap" "yes" 1
|
||||||
case x"$enable_sim_endian" in
|
|
||||||
xb* | xB*) endian="BIG_ENDIAN";;
|
case "$target" in
|
||||||
xl* | xL*) endian="LITTLE_ENDIAN";;
|
|
||||||
xyes) case "$target" in
|
|
||||||
*powerpc-*) endian="BIG_ENDIAN";;
|
*powerpc-*) endian="BIG_ENDIAN";;
|
||||||
*powerpcle-*) endian="LITTLE_ENDIAN";;
|
*powerpcle-*) endian="LITTLE_ENDIAN";;
|
||||||
*) echo "Unknown $target" 1>&6;;
|
*) echo "Unknown $target" 1>&6; endian="0";;
|
||||||
esac;;
|
|
||||||
esac
|
esac
|
||||||
if test x"$endian" != x""; then
|
|
||||||
mv Makefile Makefile.tem
|
|
||||||
echo "Setting SIM_ENDIAN=-DWITH_TARGET_BYTE_ORDER=$endian"
|
|
||||||
sed -e "s/^SIM_ENDIAN.*=.*\$/SIM_ENDIAN = -DWITH_TARGET_BYTE_ORDER=$endian/" \
|
|
||||||
< Makefile.tem > Makefile
|
|
||||||
rm -f Makefile.tem
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
$srcdir/config.hdr config.h WITH_TARGET_BYTE_ORDER --enable-sim-endian "$enable_sim_endian" \
|
||||||
|
"" "0" "no" "0" "yes" "$endian" \
|
||||||
|
"b" "BIG_ENDIAN" "big" "BIG_ENDIAN" "big-endian" "BIG_ENDIAN" \
|
||||||
|
"B" "BIG_ENDIAN" "BIG" "BIG_ENDIAN" "BIG-ENDIAN" "BIG_ENDIAN" \
|
||||||
|
"l" "LITTLE_ENDIAN" "little" "LITTLE_ENDIAN" "little-endian" "LITTLE_ENDIAN" \
|
||||||
|
"L" "LITTLE_ENDIAN" "little" "LITTLE_ENDIAN" "little-endian" "LITTLE_ENDIAN" 1>&6
|
||||||
|
|
||||||
|
$srcdir/config.hdr config.h WITH_HOST_BYTE_ORDER --enable-sim-hostendian "$enable_sim_hostendian" \
|
||||||
|
"b" "BIG_ENDIAN" "big" "BIG_ENDIAN" "big-endian" "BIG_ENDIAN" \
|
||||||
|
"B" "BIG_ENDIAN" "BIG" "BIG_ENDIAN" "BIG-ENDIAN" "BIG_ENDIAN" \
|
||||||
|
"l" "LITTLE_ENDIAN" "little" "LITTLE_ENDIAN" "little-endian" "LITTLE_ENDIAN" \
|
||||||
|
"L" "LITTLE_ENDIAN" "little" "LITTLE_ENDIAN" "little-endian" "LITTLE_ENDIAN" 1>&6
|
||||||
|
|
||||||
|
$srcdir/config.hdr config.h WITH_SMP --enable-sim-smp "$enable_sim_smp" \
|
||||||
|
"" "0" "no" "0" "yes" "2" "*" "$enable_sim_smp" 1>&6
|
||||||
|
|
||||||
|
$srcdir/config.hdr config.h WITH_TARGET_WORD_BITSIZE --enable-sim-bitsize "$enable_sim_bitsize" \
|
||||||
|
"yes" "32" "32" "32" "32" "64" "64" 1>&6
|
||||||
|
|
||||||
|
$srcdir/config.hdr config.h WITH_HOST_WORD_BITSIZE --enable-sim-hostbitsize "$enable_sim_hostbitsize" \
|
||||||
|
"yes" "32" "32" "32" "32" "64" "64" 1>&6
|
||||||
|
|
||||||
|
$srcdir/config.hdr config.h WITH_ENVIRONMENT --enable-sim-env "$enable_sim_env" \
|
||||||
|
"yes" "0" \
|
||||||
|
"operating" "OPERATING_ENVIRONMENT" "os" "OPERATING_ENVIRONMENT" "oea" "OPERATING_ENVIRONMENT" \
|
||||||
|
"virtual" "VIRTUAL_ENVIRONMENT" "vea" "VIRTUAL_ENVIRONMENT" 1>&6
|
||||||
|
|
||||||
|
$srcdir/config.hdr config.h WITH_TIME_BASE --enable-sim-timebase "$enable_sim_timebase" \
|
||||||
|
"no" "0" "yes" "1" 1>&6
|
||||||
|
|
||||||
|
$srcdir/config.hdr config.h WITH_ALIGNMENT --enable-sim-alignment "$enable_sim_alignment" \
|
||||||
|
"no" "NONSTRICT_ALIGNMENT" "nonstrict" "NONSTRICT_ALIGNMENT" \
|
||||||
|
"yes" "STRICT_ALIGNMENT" "strict" "STRICT_ALIGNMENT" 1>&6
|
||||||
|
|
||||||
|
$srcdir/config.hdr config.h WITH_FLOATING_POINT --enable-sim-float "$enable_sim_float" \
|
||||||
|
"no" "SOFT_FLOATING_POINT" "soft" "SOFT_FLOATING_POINT" \
|
||||||
|
"yes" "HARD_FLOATING_POINT" "hard" "HARD_FLOATING_POINT" 1>&6
|
||||||
|
|
||||||
|
$srcdir/config.hdr config.h WITH_TRACE --enable-sim-trace "$enable_sim_trace" \
|
||||||
|
"no" "0" "yes" "1" 1>&6
|
||||||
|
|
||||||
|
$srcdir/config.hdr config.h WITH_ASSERT --enable-sim-assert "$enable_sim_assert" \
|
||||||
|
"no" "0" "yes" "1" 1>&6
|
||||||
|
|
||||||
|
$srcdir/config.hdr config.h WITH_MON --enable-sim-monitor "$enable_sim_monitor" \
|
||||||
|
"no" "0" "yes" "MONITOR_INSTRUCTION_ISSUE|MONITOR_LOAD_STORE_UNIT" \
|
||||||
|
"instruction" "MONITOR_INSTRUCTION_ISSUE" \
|
||||||
|
"memory" "MONITOR_LOAD_STORE_UNIT" 1>&6
|
||||||
|
|
|
@ -31,13 +31,41 @@ AC_CHECK_HEADERS(string.h strings.h stdlib.h time.h sys/times.h)
|
||||||
AC_OUTPUT(Makefile,
|
AC_OUTPUT(Makefile,
|
||||||
[case x$CONFIG_HEADERS in xconfig.h:config.in) echo > stamp-h ;; esac])
|
[case x$CONFIG_HEADERS in xconfig.h:config.in) echo > stamp-h ;; esac])
|
||||||
|
|
||||||
|
if test x"$enable_sim_cflags" != x"" -a x"$enable_sim_cflags" != x"no"; then
|
||||||
|
if test "$enable_sim_cflags" = "yes"; then
|
||||||
|
enable_sim_cflags="-fomit-frame-pointer,-O2"
|
||||||
|
fi
|
||||||
|
echo "Setting SIM_CFLAGS=$enable_sim_cflags" | sed -e "s/,/ /g" 1>&6
|
||||||
|
(echo; echo "# --enable-sim-cflags=$enable_sim_cflags";
|
||||||
|
echo "SIM_CFLAGS = $enable_sim_cflags" | sed -e "s/,/ /g") >> Makefile
|
||||||
|
else
|
||||||
|
echo "Setting SIM_CFLAGS=" 1>&6
|
||||||
|
(echo; echo "# no --enable-sim-cflags"; echo "SIM_CFLAGS =") >> Makefile
|
||||||
|
fi
|
||||||
|
|
||||||
|
$srcdir/config.make Makefile CONFIG_FILE --enable-sim-config "$enable_sim_config" \
|
||||||
|
"" "std-config.h" "no" "std-config.h" "yes" "std-config.h" "*" "$enable_sim_config" 1>&6
|
||||||
|
|
||||||
|
$srcdir/config.make Makefile IGEN_OPCODE_RULES --enable-sim-opcode "$enable_sim_opcode" \
|
||||||
|
"" "ppc-opcode-simple" "no" "ppc-opcode-simple" "yes" "ppc-opcode-simple" \
|
||||||
|
"complex" "ppc-opcode-complex" "simple" "ppc-opcode-simple" 1>&6
|
||||||
|
|
||||||
|
$srcdir/config.make Makefile DGEN_FLAGS --enable-sim-switch "$enable_sim_switch" \
|
||||||
|
"" "" "no" "" "yes" "-s" 1>&6
|
||||||
|
|
||||||
|
$srcdir/config.make Makefile IGEN_DUPLICATE --enable-sim-duplicate "$enable_sim_duplicate" \
|
||||||
|
"" "" "no" "" "yes" "-e" 1>&6
|
||||||
|
|
||||||
|
$srcdir/config.make Makefile IGEN_FILTER --enable-sim-filter "$enable_sim_filter" \
|
||||||
|
"" "-f 64" "no" "" "yes" "-f 64" "*" "$enable_sim_filter" 1>&6
|
||||||
|
|
||||||
|
flags=""
|
||||||
if test x"$enable_sim_inline" != x""; then
|
if test x"$enable_sim_inline" != x""; then
|
||||||
flags=""
|
|
||||||
case "$enable_sim_inline" in
|
case "$enable_sim_inline" in
|
||||||
no) flags="";;
|
no) flags="";;
|
||||||
0) flags="-DDEFAULT_INLINE=0";;
|
0) flags=" -DDEFAULT_INLINE=0";;
|
||||||
yes | 2) flags="-DDEFAULT_INLINE=2";;
|
yes | 2) flags=" -DDEFAULT_INLINE=2";;
|
||||||
1) flags="-DDEFAULT_INLINE=1";;
|
1) flags=" -DDEFAULT_INLINE=1";;
|
||||||
*) for x in `echo "$enable_sim_inline" | sed -e "s/,/ /g"`; do
|
*) for x in `echo "$enable_sim_inline" | sed -e "s/,/ /g"`; do
|
||||||
case "$x" in
|
case "$x" in
|
||||||
*_INLINE=*) flags="$flags -D$x";;
|
*_INLINE=*) flags="$flags -D$x";;
|
||||||
|
@ -47,87 +75,68 @@ if test x"$enable_sim_inline" != x""; then
|
||||||
esac
|
esac
|
||||||
done;;
|
done;;
|
||||||
esac
|
esac
|
||||||
if test x"$flags" != x""; then
|
fi
|
||||||
mv Makefile Makefile.tem
|
if test x"$flags" != x""; then
|
||||||
echo "Setting INLINE_CFLAGS=$flags" 1>&6
|
echo "Setting INLINE_CFLAGS=$flags" 1>&6
|
||||||
sed -e "s/^INLINE_CFLAGS.*=.*\$/INLINE_CFLAGS =$flags/" \
|
(echo; echo "# --enable-sim-inline=$enable_sim_inline"; echo "INLINE_CFLAGS =$flags") >> Makefile
|
||||||
< Makefile.tem > Makefile
|
|
||||||
rm -f Makefile.tem
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test x"$enable_sim_bswap" != x"" -a x"$enable_sim_bswap" != x"no"; then
|
|
||||||
mv Makefile Makefile.tem
|
|
||||||
echo "Setting BSWAP_CFLAGS=-DWITH_BSWAP=1" 1>&6
|
|
||||||
sed -e "s/^BSWAP_CFLAGS.*=.*\$/BSWAP_CFLAGS = -DWITH_BSWAP=1/" \
|
|
||||||
< Makefile.tem > Makefile
|
|
||||||
rm -f Makefile.tem
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test x"$enable_sim_cflags" != x"" -a x"$enable_sim_cflags" != x"no"; then
|
|
||||||
if test "$enable_sim_cflags" = "yes"; then
|
|
||||||
enable_sim_cflags="-fomit-frame-pointer,-O2"
|
|
||||||
fi
|
|
||||||
mv Makefile Makefile.tem
|
|
||||||
echo "Setting SIM_CFLAGS=$enable_sim_cflags"
|
|
||||||
sed -e "s/^SIM_CFLAGS.*=.*\$/SIM_CFLAGS = $enable_sim_cflags/" -e "s/,/ /g"\
|
|
||||||
< Makefile.tem > Makefile
|
|
||||||
rm -f Makefile.tem
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test x"$enable_sim_complex" != x"" -a x"$enable_sim_complex" != x"no"; then
|
|
||||||
mv Makefile Makefile.tem
|
|
||||||
echo "Setting IGEN_OPCODE_RULES=ppc-opcode-complex" 1>&6
|
|
||||||
sed -e "s/^IGEN_OPCODE_RULES.*=.*\$/IGEN_OPCODE_RULES = ppc-opcode-complex/" \
|
|
||||||
< Makefile.tem > Makefile
|
|
||||||
rm -f Makefile.tem
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test x"$enable_sim_switch" != x"" -a x"$enable_sim_switch" != x"no"; then
|
|
||||||
mv Makefile Makefile.tem
|
|
||||||
echo "Setting DGEN_FLAGS=-s" 1>&6
|
|
||||||
sed -e "s/^DGEN_FLAGS.*=.*\$/DGEN_FLAGS = -s/" < Makefile.tem > Makefile
|
|
||||||
rm -f Makefile.tem
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test x"$enable_sim_duplicate" != x"" -a x"$enable_sim_duplicate" != x"no"; then
|
|
||||||
mv Makefile Makefile.tem
|
|
||||||
echo "Setting IGEN_DUPLICATE=-e" 1>&6
|
|
||||||
sed -e "s/^IGEN_DUPLICATE.*=.*\$/IGEN_DUPLICATE = -e/" < Makefile.tem > Makefile
|
|
||||||
rm -f Makefile.tem
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test x"$enable_sim_filter" = x"no"; then
|
|
||||||
mv Makefile Makefile.tem
|
|
||||||
echo "Setting IGEN_FILTER=" 1>&6
|
|
||||||
sed -e "s/^IGEN_FILTER.*=.*\$/IGEN_FILTER =/" < Makefile.tem > Makefile
|
|
||||||
rm -f Makefile.tem
|
|
||||||
|
|
||||||
else
|
else
|
||||||
if test x"$enable_sim_filter" != x"yes" -a x"$enable_sim_filter" != x""; then
|
echo "Setting INLINE_CFLAGS=" 1>&6
|
||||||
mv Makefile Makefile.tem
|
(echo; echo "# no --enable-sim-inline"; echo "INLINE_CFLAGS =") >> Makefile
|
||||||
echo "Setting IGEN_FILTER= -f $enable_sim_filter" 1>&6
|
|
||||||
sed -e "s/^IGEN_FILTER.*=.*\$/IGEN_FILTER = -f $enable_sim_filter/" \
|
|
||||||
< Makefile.tem > Makefile
|
|
||||||
rm -f Makefile.tem
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
endian=""
|
$srcdir/config.hdr config.h WITH_BSWAP --enable-sim-bswap "$enable_sim_bswap" "yes" 1
|
||||||
case x"$enable_sim_endian" in
|
|
||||||
xb* | xB*) endian="BIG_ENDIAN";;
|
case "$target" in
|
||||||
xl* | xL*) endian="LITTLE_ENDIAN";;
|
|
||||||
xyes) case "$target" in
|
|
||||||
*powerpc-*) endian="BIG_ENDIAN";;
|
*powerpc-*) endian="BIG_ENDIAN";;
|
||||||
*powerpcle-*) endian="LITTLE_ENDIAN";;
|
*powerpcle-*) endian="LITTLE_ENDIAN";;
|
||||||
*) echo "Unknown $target" 1>&6;;
|
*) echo "Unknown $target" 1>&6; endian="0";;
|
||||||
esac;;
|
|
||||||
esac
|
esac
|
||||||
if test x"$endian" != x""; then
|
|
||||||
mv Makefile Makefile.tem
|
|
||||||
echo "Setting SIM_ENDIAN=-DWITH_TARGET_BYTE_ORDER=$endian"
|
|
||||||
sed -e "s/^SIM_ENDIAN.*=.*\$/SIM_ENDIAN = -DWITH_TARGET_BYTE_ORDER=$endian/" \
|
|
||||||
< Makefile.tem > Makefile
|
|
||||||
rm -f Makefile.tem
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
$srcdir/config.hdr config.h WITH_TARGET_BYTE_ORDER --enable-sim-endian "$enable_sim_endian" \
|
||||||
|
"" "0" "no" "0" "yes" "$endian" \
|
||||||
|
"b" "BIG_ENDIAN" "big" "BIG_ENDIAN" "big-endian" "BIG_ENDIAN" \
|
||||||
|
"B" "BIG_ENDIAN" "BIG" "BIG_ENDIAN" "BIG-ENDIAN" "BIG_ENDIAN" \
|
||||||
|
"l" "LITTLE_ENDIAN" "little" "LITTLE_ENDIAN" "little-endian" "LITTLE_ENDIAN" \
|
||||||
|
"L" "LITTLE_ENDIAN" "little" "LITTLE_ENDIAN" "little-endian" "LITTLE_ENDIAN" 1>&6
|
||||||
|
|
||||||
|
$srcdir/config.hdr config.h WITH_HOST_BYTE_ORDER --enable-sim-hostendian "$enable_sim_hostendian" \
|
||||||
|
"b" "BIG_ENDIAN" "big" "BIG_ENDIAN" "big-endian" "BIG_ENDIAN" \
|
||||||
|
"B" "BIG_ENDIAN" "BIG" "BIG_ENDIAN" "BIG-ENDIAN" "BIG_ENDIAN" \
|
||||||
|
"l" "LITTLE_ENDIAN" "little" "LITTLE_ENDIAN" "little-endian" "LITTLE_ENDIAN" \
|
||||||
|
"L" "LITTLE_ENDIAN" "little" "LITTLE_ENDIAN" "little-endian" "LITTLE_ENDIAN" 1>&6
|
||||||
|
|
||||||
|
$srcdir/config.hdr config.h WITH_SMP --enable-sim-smp "$enable_sim_smp" \
|
||||||
|
"" "0" "no" "0" "yes" "2" "*" "$enable_sim_smp" 1>&6
|
||||||
|
|
||||||
|
$srcdir/config.hdr config.h WITH_TARGET_WORD_BITSIZE --enable-sim-bitsize "$enable_sim_bitsize" \
|
||||||
|
"yes" "32" "32" "32" "32" "64" "64" 1>&6
|
||||||
|
|
||||||
|
$srcdir/config.hdr config.h WITH_HOST_WORD_BITSIZE --enable-sim-hostbitsize "$enable_sim_hostbitsize" \
|
||||||
|
"yes" "32" "32" "32" "32" "64" "64" 1>&6
|
||||||
|
|
||||||
|
$srcdir/config.hdr config.h WITH_ENVIRONMENT --enable-sim-env "$enable_sim_env" \
|
||||||
|
"yes" "0" \
|
||||||
|
"operating" "OPERATING_ENVIRONMENT" "os" "OPERATING_ENVIRONMENT" "oea" "OPERATING_ENVIRONMENT" \
|
||||||
|
"virtual" "VIRTUAL_ENVIRONMENT" "vea" "VIRTUAL_ENVIRONMENT" 1>&6
|
||||||
|
|
||||||
|
$srcdir/config.hdr config.h WITH_TIME_BASE --enable-sim-timebase "$enable_sim_timebase" \
|
||||||
|
"no" "0" "yes" "1" 1>&6
|
||||||
|
|
||||||
|
$srcdir/config.hdr config.h WITH_ALIGNMENT --enable-sim-alignment "$enable_sim_alignment" \
|
||||||
|
"no" "NONSTRICT_ALIGNMENT" "nonstrict" "NONSTRICT_ALIGNMENT" \
|
||||||
|
"yes" "STRICT_ALIGNMENT" "strict" "STRICT_ALIGNMENT" 1>&6
|
||||||
|
|
||||||
|
$srcdir/config.hdr config.h WITH_FLOATING_POINT --enable-sim-float "$enable_sim_float" \
|
||||||
|
"no" "SOFT_FLOATING_POINT" "soft" "SOFT_FLOATING_POINT" \
|
||||||
|
"yes" "HARD_FLOATING_POINT" "hard" "HARD_FLOATING_POINT" 1>&6
|
||||||
|
|
||||||
|
$srcdir/config.hdr config.h WITH_TRACE --enable-sim-trace "$enable_sim_trace" \
|
||||||
|
"no" "0" "yes" "1" 1>&6
|
||||||
|
|
||||||
|
$srcdir/config.hdr config.h WITH_ASSERT --enable-sim-assert "$enable_sim_assert" \
|
||||||
|
"no" "0" "yes" "1" 1>&6
|
||||||
|
|
||||||
|
$srcdir/config.hdr config.h WITH_MON --enable-sim-monitor "$enable_sim_monitor" \
|
||||||
|
"no" "0" "yes" "MONITOR_INSTRUCTION_ISSUE|MONITOR_LOAD_STORE_UNIT" \
|
||||||
|
"instruction" "MONITOR_INSTRUCTION_ISSUE" \
|
||||||
|
"memory" "MONITOR_LOAD_STORE_UNIT" 1>&6
|
||||||
|
|
|
@ -0,0 +1,118 @@
|
||||||
|
/* This file is part of the program psim.
|
||||||
|
|
||||||
|
Copyright (C) 1994-1995, Andrew Cagney <cagney@highland.com.au>
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, write to the Free Software
|
||||||
|
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef _DEBUG_H_
|
||||||
|
#define _DEBUG_H_
|
||||||
|
|
||||||
|
#include "filter_filename.h"
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
trace_invalid,
|
||||||
|
trace_tbd,
|
||||||
|
/**/
|
||||||
|
trace_gdb,
|
||||||
|
trace_os_emul,
|
||||||
|
/**/
|
||||||
|
trace_device_tree,
|
||||||
|
trace_devices,
|
||||||
|
trace_pass_device,
|
||||||
|
trace_console_device,
|
||||||
|
trace_icu_device,
|
||||||
|
trace_halt_device,
|
||||||
|
trace_register_device,
|
||||||
|
trace_vm_device,
|
||||||
|
trace_memory_device,
|
||||||
|
trace_htab_device,
|
||||||
|
trace_pte_device,
|
||||||
|
trace_binary_device,
|
||||||
|
trace_file_device,
|
||||||
|
trace_core_device,
|
||||||
|
trace_stack_device,
|
||||||
|
/**/
|
||||||
|
trace_semantics,
|
||||||
|
trace_idecode,
|
||||||
|
trace_alu,
|
||||||
|
/**/
|
||||||
|
trace_vm,
|
||||||
|
trace_core,
|
||||||
|
trace_psim,
|
||||||
|
trace_device_init,
|
||||||
|
trace_cpu,
|
||||||
|
trace_breakpoint,
|
||||||
|
nr_trace_options
|
||||||
|
} trace_options;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
extern int ppc_trace[nr_trace_options];
|
||||||
|
|
||||||
|
#if WITH_TRACE
|
||||||
|
#define TRACE(OBJECT, ARGS) \
|
||||||
|
do { \
|
||||||
|
if (ppc_trace[OBJECT]) { \
|
||||||
|
printf_filtered("%s:%d:%s: ", filter_filename(__FILE__), __LINE__, #OBJECT); \
|
||||||
|
printf_filtered ARGS; \
|
||||||
|
} \
|
||||||
|
} while (0)
|
||||||
|
/* issue */
|
||||||
|
#define ITRACE(OBJECT, ARGS) \
|
||||||
|
do { \
|
||||||
|
if (ppc_trace[OBJECT]) { \
|
||||||
|
printf_filtered("%s:%d:0x%x", my_prefix, cpu_nr(processor) + 1, cia); \
|
||||||
|
printf_filtered ARGS; \
|
||||||
|
} \
|
||||||
|
} while (0)
|
||||||
|
/* device */
|
||||||
|
#define DTRACE(OBJECT, ARGS) \
|
||||||
|
do { \
|
||||||
|
if (ppc_trace[trace_devices] || ppc_trace[trace_##OBJECT##_device]) { \
|
||||||
|
printf_filtered("%s:%d:%s: ", filter_filename(__FILE__), __LINE__, #OBJECT); \
|
||||||
|
printf_filtered ARGS; \
|
||||||
|
} \
|
||||||
|
} while (0)
|
||||||
|
#else
|
||||||
|
#define TRACE(OBJECT, ARGS)
|
||||||
|
#define ITRACE(OBJECT, ARGS)
|
||||||
|
#define DTRACE(OBJECT, ARGS)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if WITH_ASSERT
|
||||||
|
#define ASSERT(EXPRESSION) \
|
||||||
|
do { \
|
||||||
|
if (!(EXPRESSION)) { \
|
||||||
|
error("%s:%d: assertion failed - %s\n", \
|
||||||
|
filter_filename(__FILE__), __LINE__, #EXPRESSION); \
|
||||||
|
} \
|
||||||
|
} while (0)
|
||||||
|
#else
|
||||||
|
#define ASSERT(EXPRESSION)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Parse OPTION updating the trace array */
|
||||||
|
extern void
|
||||||
|
trace_option(const char *option);
|
||||||
|
|
||||||
|
/* Output the list of trace options */
|
||||||
|
extern void
|
||||||
|
trace_usage(void);
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* _DEBUG_H_ */
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,36 @@
|
||||||
|
/* This file is part of the program psim.
|
||||||
|
|
||||||
|
Copyright (C) 1994-1995, Andrew Cagney <cagney@highland.com.au>
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, write to the Free Software
|
||||||
|
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "basics.h"
|
||||||
|
|
||||||
|
/* Shorten traces by eliminating the directory component to filenames. */
|
||||||
|
extern char *
|
||||||
|
filter_filename (char *filename)
|
||||||
|
{
|
||||||
|
char *p = filename;
|
||||||
|
char *last = filename;
|
||||||
|
int ch;
|
||||||
|
|
||||||
|
while ((ch = *p++) != '\0' && ch != ':')
|
||||||
|
if (ch == '/')
|
||||||
|
last = p;
|
||||||
|
|
||||||
|
return last;
|
||||||
|
}
|
|
@ -0,0 +1,27 @@
|
||||||
|
/* This file is part of the program psim.
|
||||||
|
|
||||||
|
Copyright (C) 1994-1995, Andrew Cagney <cagney@highland.com.au>
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, write to the Free Software
|
||||||
|
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _FILTER_FILENAME_H
|
||||||
|
#define _FILTER_FILENAME_H
|
||||||
|
|
||||||
|
/* Remove directory part from filename */
|
||||||
|
extern char *
|
||||||
|
filter_filename(char *filename);
|
||||||
|
#endif
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,48 @@
|
||||||
|
/* This file is part of the program psim.
|
||||||
|
|
||||||
|
Copyright (C) 1994-1995, Andrew Cagney <cagney@highland.com.au>
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, write to the Free Software
|
||||||
|
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#include "filter_filename.h"
|
||||||
|
|
||||||
|
extern void error
|
||||||
|
(char *msg, ...);
|
||||||
|
|
||||||
|
#define ASSERT(EXPRESSION) \
|
||||||
|
do { \
|
||||||
|
if (!(EXPRESSION)) { \
|
||||||
|
error("%s:%d: assertion failed - %s\n", \
|
||||||
|
filter_filename (__FILE__), __LINE__, #EXPRESSION); \
|
||||||
|
} \
|
||||||
|
} while (0)
|
||||||
|
|
||||||
|
#define ZALLOC(TYPE) (TYPE*)zalloc(sizeof(TYPE))
|
||||||
|
|
||||||
|
extern void *zalloc
|
||||||
|
(long size);
|
||||||
|
|
||||||
|
extern void dumpf
|
||||||
|
(int indent, char *msg, ...);
|
||||||
|
|
||||||
|
extern int it_is
|
||||||
|
(const char *flag,
|
||||||
|
const char *flags);
|
||||||
|
|
||||||
|
extern unsigned a2i
|
||||||
|
(const char *a);
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue