On Sun, 2007-10-28 at 20:32 -0700, David Miller wrote: > From: skaller <[EMAIL PROTECTED]>
> > That is the programmers fault, they should have accessed the > > variable using a const. Failing to do so gives the compiler > > permission to write speculatively. > > I do not agree with you. Yeah, on consideration you're probably right. > It is perfectly legal to use read-only protection to implement > things like efficient garbage collection scans. Yes. And I'm wrong about 'const': my way you'd have to make it const and cast to non-const to prevent speculative writes. That's unworkable .. > It's not even write exceptions, what about the pointer being > valid at all? That's a different case. Gcc already provides a way to do this on say AMD64, using __builtin_prefetch. That instruction is perfectly legal on an invalid address. Yeah I know this isn't a complete load (the actual load into a register has to be done as well). -- John Skaller <skaller at users dot sf dot net> Felix, successor to C++: http://felix.sf.net