This is the mail archive of the cgen@sources.redhat.com mailing list for the CGEN project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: adjusting cgen


Hi -


> [...]
> 1)  Is it possible to adjust CGEN to recognize on-page branches?
>     This could be a huge optimization for me, since this will eliminate
>     the full tlb+mmu lookup for (near) branches.  

If nothing else, they could be detected within the branch instruction 
semantics.  They could set some private simulator state that signals
that the previously identified imem page is still valid.  Or even better,
this logic could be put into the general instruction execution loop
directly: if the new PC is on the same page as the old PC, then use
the previous value.


> 2)  Is it possible to adjust the -gen-argbuf-elm fn in sid-decode.scm to
>     generate bit fields instead of full integers?  [...]
>     What I would like to do is to reduce the size of the sem_fields union
>     to a total of 32-bits (for a 32-bit architecture).  [...]

Are you sure that this is a worthwhile thing to do?  You should mark
up the generated sources by hand once, and see if it makes a positive
or negative impact on performance.  If it's positive for interesting
hosts, we should do this cgen-wide.


> If you're intressted in the simulator, you can find information (ie
> the sources) at http://savannah.gnu.org/projects/guss/ .

Not to be discouraging, but can you explain why you'd like to build a
new simulator framework, when you're welcome to make contributions to
established ones like sid and even the older gdb simulators?  (It's of
course a good personal learning exercise to build things from scratch,
but please realize that there is a *lot* of work involved in making a
nice, fully featured framework.)


- FChE

Attachment: msg00018/pgp00000.pgp
Description: PGP signature


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]