head	1.2;
access;
symbols
	perseant-exfatfs-base-20261102:1.2
	perseant-exfatfs-base-20250801:1.2
	perseant-exfatfs-base-20240630:1.2
	cjep_sun2x:1.2.0.44
	cjep_sun2x-base:1.2
	cjep_staticlib_x-base1:1.2
	cjep_staticlib_x:1.2.0.42
	cjep_staticlib_x-base:1.2
	phil-wifi-20200421:1.2
	phil-wifi-20200411:1.2
	phil-wifi-20200406:1.2
	pgoyette-compat-merge-20190127:1.2
	pgoyette-compat-20190127:1.2
	pgoyette-compat-20190118:1.2
	pgoyette-compat-1226:1.2
	pgoyette-compat-1126:1.2
	pgoyette-compat-1020:1.2
	pgoyette-compat-0930:1.2
	pgoyette-compat-0906:1.2
	pgoyette-compat-0728:1.2
	pgoyette-compat-0625:1.2
	pgoyette-compat-0521:1.2
	pgoyette-compat-0502:1.2
	pgoyette-compat-0422:1.2
	pgoyette-compat-0415:1.2
	pgoyette-compat-0407:1.2
	pgoyette-compat-0330:1.2
	pgoyette-compat-0322:1.2
	pgoyette-compat-0315:1.2
	pgoyette-compat:1.2.0.40
	pgoyette-compat-base:1.2
	perseant-stdc-iso10646:1.2.0.38
	perseant-stdc-iso10646-base:1.2
	prg-localcount2-base3:1.2
	prg-localcount2-base2:1.2
	prg-localcount2-base1:1.2
	prg-localcount2:1.2.0.36
	prg-localcount2-base:1.2
	pgoyette-localcount-20170426:1.2
	bouyer-socketcan-base1:1.2
	pgoyette-localcount-20170320:1.2
	bouyer-socketcan:1.2.0.34
	bouyer-socketcan-base:1.2
	pgoyette-localcount-20170107:1.2
	pgoyette-localcount-20161104:1.2
	localcount-20160914:1.2
	pgoyette-localcount-20160806:1.2
	pgoyette-localcount-20160726:1.2
	pgoyette-localcount:1.2.0.32
	pgoyette-localcount-base:1.2
	netbsd-5-2-3-RELEASE:1.2
	netbsd-5-1-5-RELEASE:1.2
	yamt-pagecache-base9:1.2
	yamt-pagecache-tag8:1.2
	tls-earlyentropy:1.2.0.28
	tls-earlyentropy-base:1.2
	riastradh-xf86-video-intel-2-7-1-pre-2-21-15:1.2
	riastradh-drm2-base3:1.2
	netbsd-5-2-2-RELEASE:1.2
	netbsd-5-1-4-RELEASE:1.2
	netbsd-5-2-1-RELEASE:1.2
	netbsd-5-1-3-RELEASE:1.2
	agc-symver:1.2.0.30
	agc-symver-base:1.2
	tls-maxphys-base:1.2
	yamt-pagecache-base8:1.2
	netbsd-5-2:1.2.0.26
	yamt-pagecache-base7:1.2
	netbsd-5-2-RELEASE:1.2
	netbsd-5-2-RC1:1.2
	yamt-pagecache-base6:1.2
	yamt-pagecache-base5:1.2
	yamt-pagecache-base4:1.2
	netbsd-5-1-2-RELEASE:1.2
	netbsd-5-1-1-RELEASE:1.2
	yamt-pagecache-base3:1.2
	yamt-pagecache-base2:1.2
	yamt-pagecache:1.2.0.24
	yamt-pagecache-base:1.2
	bouyer-quota2-nbase:1.2
	bouyer-quota2:1.2.0.22
	bouyer-quota2-base:1.2
	matt-nb5-pq3:1.2.0.20
	matt-nb5-pq3-base:1.2
	netbsd-5-1:1.2.0.18
	netbsd-5-1-RELEASE:1.2
	netbsd-5-1-RC4:1.2
	netbsd-5-1-RC3:1.2
	netbsd-5-1-RC2:1.2
	netbsd-5-1-RC1:1.2
	netbsd-5-0-2-RELEASE:1.2
	netbsd-5-0-1-RELEASE:1.2
	jym-xensuspend-nbase:1.2
	netbsd-5-0:1.2.0.16
	netbsd-5-0-RELEASE:1.2
	netbsd-5-0-RC4:1.2
	netbsd-5-0-RC3:1.2
	netbsd-5-0-RC2:1.2
	jym-xensuspend:1.2.0.14
	jym-xensuspend-base:1.2
	netbsd-5-0-RC1:1.2
	netbsd-5:1.2.0.12
	netbsd-5-base:1.2
	mjf-devfs2:1.2.0.10
	mjf-devfs2-base:1.2
	yamt-pf42-base4:1.2
	yamt-pf42-base3:1.2
	hpcarm-cleanup-nbase:1.2
	yamt-pf42-base2:1.2
	yamt-pf42:1.2.0.8
	yamt-pf42-base:1.2
	keiichi-mipv6:1.2.0.6
	keiichi-mipv6-base:1.2
	cube-autoconf:1.2.0.4
	cube-autoconf-base:1.2
	hpcarm-cleanup:1.2.0.2
	hpcarm-cleanup-base:1.2
	netbsd-1-5-PATCH003:1.1.1.2
	netbsd-1-5-PATCH002:1.1.1.2
	netbsd-1-5-PATCH001:1.1.1.2
	netbsd-1-5-RELEASE:1.1.1.2
	netbsd-1-5-BETA2:1.1.1.2
	netbsd-1-5-BETA:1.1.1.2
	netbsd-1-4-PATCH003:1.1.1.2
	netbsd-1-5-ALPHA2:1.1.1.2
	netbsd-1-5:1.1.1.2.0.8
	netbsd-1-5-base:1.1.1.2
	netbsd-1-4-PATCH002:1.1.1.2
	wrstuden-devbsize-19991221:1.1.1.2
	wrstuden-devbsize:1.1.1.2.0.6
	wrstuden-devbsize-base:1.1.1.2
	comdex-fall-1999:1.1.1.2.0.4
	comdex-fall-1999-base:1.1.1.2
	netbsd-1-4-PATCH001:1.1.1.2
	netbsd-1-4-RELEASE:1.1.1.2
	netbsd-1-4:1.1.1.2.0.2
	netbsd-1-4-base:1.1.1.2
	psim-970703:1.1.1.2
	CAGNEY:1.1.1
	gdb-4-16:1.1.1.1
	FSF:1.1.1;
locks; strict;
comment	@# @;


1.2
date	2000.08.10.15.03.11;	author tv;	state dead;
branches;
next	1.1;

1.1
date	98.02.01.07.56.47;	author thorpej;	state Exp;
branches
	1.1.1.1;
next	;

1.1.1.1
date	98.02.01.07.56.47;	author thorpej;	state Exp;
branches;
next	1.1.1.2;

1.1.1.2
date	98.02.01.08.01.23;	author thorpej;	state Exp;
branches;
next	;


desc
@@


1.2
log
@This was never used at this gnu/dist level, so remove.
@
text
@	See the ChangeLog file looking for lines taged with the word FIXME.

	COREFILE.C: The implementation of corefile.c (defined by
	corefile.h) isn't the best.  It is intended to be functionaly
	correct rather than fast.  One option being considered
	is to add a data cache to reduce the overhead of the most
	common case of data read/writes.

	HTAB (page) code for OEA model untested.  Some of the vm code
	instructions unimplemented.

	Lacks PowerOpen (a.k.a. XCOFF a.k.a. AIX) and NT startups.  The
	PowerOpen worked until I added the ELF one.

	Missing VEA system calls.

	Missing or commented out instructions.

	64bit target untested.

	64bit host broken.  For instance use of scanf "%x", &long long.

	Event code for pending events from within signal handlers not
	finished/tested.

	Better and more devices.

	PORTABILITY (Notes taken from Michael Meissner): Heavy use of the ##
	operator - fix using the clasic X/**/Y hack; Use of the signed
	keyword.  In particular, signed char has no analogue in classic C
	(though most implementations of classic C use signed chars); Use of
	long long which restricts the target compiler to be GCC.


@


1.1
log
@Initial revision
@
text
@@


1.1.1.1
log
@Import the simulator sources from the gdb-4.16 distribution which were
omitted when our GDB was updated.
@
text
@@


1.1.1.2
log
@Import the psim-970703 (PowerPC Simulator) snapshot.
@
text
@d1 1
a1 1
ChangeLog
d3 5
a7 1
See the ChangeLog file looking for lines taged with the word FIXME.
d9 2
d12 2
a13 1
COREFILE.C:
d15 1
a15 4
The implementation of corefile.c (defined by corefile.h) isn't the
best.  It is intended to be functionaly correct rather than fast.  One
option being considered is to add a data cache to reduce the overhead
of the most common case of data read/writes.
d17 1
d19 1
a19 1
VEA:
d21 1
a21 1
Missing VEA system calls.
d23 2
a24 1
ppc-instructions:
d26 1
a26 1
Missing or commented out instructions.
d28 5
a33 1
64bit:
a34 99
64bit target untested. 64bit host broken.  For instance use of scanf
"%x", &long long.



hw_*.c:

Better and more devices.

PORTABILITY:

(Notes taken from Michael Meissner): Heavy use of the ## operator -
fix using the clasic X/**/Y hack; Use of the signed keyword.  In
particular, signed char has no analogue in classic C (though most
implementations of classic C use signed chars); Use of long long which
restricts the target compiler to be GCC.


TRACING:

debug.c: Macro's should be extended to include:

	IS_*TRACE:	True if tracing enabled
	*TRACE_PREFIX:	Outputs just the prefix line

hw_trace.c: Flush, replace with a psim_set_tracing or some
	such program.


CIA/NIA:

Replace with functions to return/increment the CIA?



SMP & GDB:

GDB doesn't understand SMP!




OVERALL STRUCTURE:

A new file pstruct.h is to be created that contains a single flat data
structure containing:

		pstruct {
			events;
			core;
			processor[nr_cpus];
			monitor;
			devices;
			trace;
		}

The CPU's structure, in turn would contain the VM sub structures.

When SMP==0, everything would have PSTRUCT passed.  In SMP mode,
however, there are two choices: PSTRUCT + CPU_NR or PROCESSOR.  I
suspect the latter is better.

It is believed that this would significantly improve performance (at
the price of reduced control over object scope).




IGEN:

Igen at present can't do the following:

	o	duplication is an all or nothing afair.

		It should be configurable according to
		the instruction or the sub-table.


	o	Due to the naming, only a single generated
		simulator can be included in a program.

		IGEN should be able to generate multiple
		engines that can all be included in a program

	o	handle alternate architectures.


	o	Igen should support the generation of a
		disasembler and posibly an assembler.

		I suggest that the table be extended to
		include, for each instruction, additional
		lines describing the extual format of the
		instruction.

		One possible format is:

			"mtlr %RS":SPR.something
			"mtspr %SPR, %RS"
@
