I just fought my way through another recursive include type 
situation while adding a microcode ROM to the CPUs. It seems like there 
are just to many things that are useful in too many places in a few 
header files in each of the ISAs. If you include anything outside of the 
ISA in one of those files, you've essentially included it in most of the 
rest of the simulator, and at that point a loop is very likely to 
develop. I don't know of a good way to solve that problem, but I have a 
few ideas on how to at least make it a little better. Some things we 
have as ISA defined types at the moment probably don't absolutely need 
to be. For instance, all manner of register indexes could probably just 
be uint32_t universally with no problems and minimal space overhead. I 
don't think there are many instances of that and I don't like the idea 
of removing that flexibility from the ISAs, so I'm not very excited 
about doing that. The other idea would be to create a cloud of little 
header files which all defined exactly one thing. I think in most cases, 
things outside the ISA really only need a few types and could include 
each one individually without too much trouble. The biggest problem here 
is that we'd end up with gobs of little files with way more copyright 
information in them than actual code. Does anyone have any suggestions?

Gabe
_______________________________________________
m5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/m5-dev

Reply via email to