On Thu, 2013-10-24 at 08:19 +0200, Mike wrote: […] > > > > int peek(int* p); > > void poke(int* p, int value); > > > > Implement them in the obvious way, and compile them separately > > so the optimizer will not try to inline/optimize them. > > Thanks for the answer, Walter. I think this would be acceptable > in many (most?) cases, but not where high performance is needed > I think these functions add too much overhead if they are not > inlined and in a critical path (bit-banging IO, for example). > Afterall, a read/write to a volatile address is a single atomic > instruction, if done properly. > > Is there a way to tell D to remove the function overhead, for > example, like a "naked" attribute, yet still retain the > "volatile" behavior?
Also this (peek and poke) is not a viable approach if you wanted to write an operating system in D. I think it should be an aim to have the replacement for Windows, OS X, Linux, etc. written in D instead of C/C++. -- Russel. ============================================================================= Dr Russel Winder t: +44 20 7585 2200 voip: sip:russel.win...@ekiga.net 41 Buckmaster Road m: +44 7770 465 077 xmpp: rus...@winder.org.uk London SW11 1EN, UK w: www.russel.org.uk skype: russel_winder