[patch][rfa] CGEN Model Support for SID
Dave Brolley
brolley@redhat.com
Mon Mar 31 21:30:00 GMT 2003
Hi,
This submission cleans up the partially adapted support for CGEN models
for SID and enables it. Attached are patches for CGEN and SID which
accomplish this:
o sid-model.patch.txt's: Patches for CGEN and SID
o cgen-model.h: New class definition in sid/component/cgen-cpu
o *.ChangeLog: ChangeLogs for the above
Also attached are examples of the generated code and suggested usage for
the xstormy16:
o xstormy16-model.{cxx,h}: CGEN-generated model code
o xstormy16-model-gen.patch.txt: Additional code generated into
xstormy16-decode.h and xstormy16-sem.cxx
o xstormy16-model.patch.txt: Patch showing suggest usage of the
generated code by a SID cgen-cpu.
Notes:
o The implementation is similar to the existing implementation for
sim/common simulators except:
- The generated functions are encapsulated into a class:
<prefix>_<model>_model
- Functions are generated for modelling each insn both before and
after execution. The sim/common implementation only generated a function
to be called after execution, however, there was a need for modelling
both before and after in the implementaion of the FRV simulator which
was handled somewhat awkwardly. Therefore I added this capability for
this implementation.
- As in the existing sim/common implementation, there are hooks
provided (at the cgen-model level) for modelling before and after
groups of parallel insns.
A general outline of the design follows:
o A new class, cgen-model, has been defined in
sid/component/cgen-cpu/cgen-model.h. It provides the methods for
modelling before and after groups of parallel insns with default virtual
implementations and keeps a pointer to the cpu for reporting computed
latencies.
o The script sid/component/cgen-cpu/CGEN.sh has been enhanced to process
the option 'with-profile=fn' and to generate the files model.cxx and
model.h.
o For each model (cgen model) used by a all machines (cgen mach) being
generated, a class, @prefix@_@model@_model is generated in
sid/component/cgen-cpu/@cpu@/@prefix@-model.{cxx,h}. These classes each
inherit from cgen-cpu and implement the functions for modelling each
unit before and after each insn. Default virtual implementations are
provided as well as a table mapping each insn to its unit modelling
functions and functions for indexing the table to make the calls.
o The generated code, as is, is complete and implements default latency
computations as defined by the (timing ...) elements of each insn in the
.cpu file.
o Since the default implementations are virtual, the programmer may
inherit the generated class(es) to implement more complex modelling
behavior for each unit of each model as needed.
o Calls to the modelling functions are inserted, as necessary, into the
cpu's step_insns method. See xstormy16-model.patch.txt for an example.
This implementation has been tested on xstormy16 and an internal port
which makes extensive use of this new work. Other ports are not affected
since they do not make use of this functionality.
I am seeking comments leading toward approval to commit the general
changes. I can also commit the xtormy16-specific code if folks think it
would be of use as an example.
Dave
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: sid-model.patch.txt
URL: <http://sourceware.org/pipermail/sid/attachments/20030331/fb2baffb/attachment.txt>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: sid-model.patch.txt
URL: <http://sourceware.org/pipermail/sid/attachments/20030331/fb2baffb/attachment-0001.txt>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: xstormy16-model.patch.txt
URL: <http://sourceware.org/pipermail/sid/attachments/20030331/fb2baffb/attachment-0002.txt>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: xstormy16-model-gen.patch.txt
URL: <http://sourceware.org/pipermail/sid/attachments/20030331/fb2baffb/attachment-0003.txt>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: xstormy16-model.h
URL: <http://sourceware.org/pipermail/sid/attachments/20030331/fb2baffb/attachment.h>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: xstormy16-model.cxx
URL: <http://sourceware.org/pipermail/sid/attachments/20030331/fb2baffb/attachment.cxx>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: cgen-model.h
URL: <http://sourceware.org/pipermail/sid/attachments/20030331/fb2baffb/attachment-0001.h>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: sid-model.ChangeLog
URL: <http://sourceware.org/pipermail/sid/attachments/20030331/fb2baffb/attachment.ksh>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: sid-model.ChangeLog
URL: <http://sourceware.org/pipermail/sid/attachments/20030331/fb2baffb/attachment-0001.ksh>
More information about the Sid
mailing list