On Tue, 2012-03-20 at 19:43 +0200, Stefan Kristiansson wrote: > On 03/20/2012 03:50 PM, Jonas Bonn wrote: > > > > I don't agree... in the same way that you don't have to respect any ABI > > as long as you aren't calling into "external" code, you are free to > > fiddle with r0 as much as you want. "r0 contains 0" is ABI, it is not a > > hardware detail. A bit weird, I agree, but not fundamentally incorrect. > > > > The real problem is that r0 isn't _necessarily_ writable... so there's > > no guarantee that you can actually run a program that changes r0 on an > > arbitrary implementation. > > > > > > No, the real problem is that the specification is not clear about > whether it should be possible to do a write to r0 without any side effects > (regardless if the value actually will be written or not to r0). > > Like it is now it's freely up to the reader to do an implementation > that locks up the cpu when someone tries to write 0 to r0. > Although it perhaps wouldn't be a very good implementation ;) >
Yeah, fair enough. I guess the ambiguity kills whatever advantage the flexibility may give you (dubious though it may be). R Diez's text is fine... might be even better to go a step further and be explicit about the requirements/limitations of r0 (i.e. writing to r0 is a no-op; r0 is not guaranteed to contain 0 at startup; etc...) /Jonas _______________________________________________ OpenRISC mailing list [email protected] http://lists.openrisc.net/listinfo/openrisc
