On Sat, 2012-04-21 at 21:42 +0100, Jeremy Bennett wrote: > On Sat, 2012-04-21 at 17:28 +0100, Julius Baxter wrote: > > Class I should remain mandatory to implement. > > > > A new classification is proposed: > > * Class II - Optional Maths: l.div*, l.mul* > > * Class III - Optional Bit Manipulation: l.ext[bwh]*, l.ff1, l.fl1, > > l.ror, l.rori > > * Class IV - MAC Instructions - l.mac*, l.msb > > * Class V - Remaining Optional Instructions: l.cmov, l.csync, l.msync, > > l.psync, l.cust1-8, l.trap > > Hi Julius, > > It's a logical structure, except l.trap must be in class I for GDB.
I tend to agree. Does this have a high cost (in terms of complexity or otherwise) that mandates class V? > > But it is a MULTILIB nightmare. Not something we have ever really sorted > out properly for OpenRISC, but we will have to. With 5 classes, as a > baseline there will be 5 versions of each plain library and 5 versions > of each debug library. There is no point having a separate class if you > can't compile for it. It's not that bad. Class III isn't something the compiler will be emitting, nor class V. I would say class IV should imply class II; i.e. you can't have class IV without class II. So that leaves 3 multilib variants: class I only, class I+II, and class I+II+IV. With that argument, I'd be inclined to call them 'levels' instead of 'classes'. Your processor can be level 1, 2, or 3; and classes III and V go to other ORBIS sections (effectively), that may or may not be implemented -- but the compiler and libraries shouldn't care. Matthew asked in other mail, but I'll respond here: Linux will run with only class I but can make use of class III if present. Class II is handled purely by the compiler, so Linux will use those only if the compiler generates them. Class V is trickier: we don't need them today as there is no implementation of weakly-ordered memory; but we _should_ be using them because things will break when OpenRISC goes superscalar! That said, they'll be hand-coded, not generated by the compiler. > Then you'll want the versions with and without the FPU. Now you have 20 > versions of the libraries. Touche... my 3 variants is now 6. /Jonas _______________________________________________ OpenRISC mailing list [email protected] http://lists.openrisc.net/listinfo/openrisc
