On Friday 07 February 2003 10.55, Steve Harris wrote: > On Thu, Feb 06, 2003 at 11:13:45 +0100, David Olofson wrote: > > On Thursday 06 February 2003 16.28, Steve Harris wrote: > > [...] > > > > > #define FLUSH_TO_ZERO(fv) (((*(unsigned > > > int*)&(fv))&0x7f800000)==0)?0.0f:(fv) I think it came from the > > > music-dsp list. > > > > There's a conditional in there, though. > > Yes, but its not in a float context so it wont get > denormallised(?).
Well, casting to int avoids getting the denormal into the FPU. This is probably the only safe way to deal with a denormal without forcing the FPU to burn cycles evaluating it. I don't see how this has anything to do with the conditional, though. It's a potential misprediction + pipeline flush regardless of whether the controlling input comes from the FPU or the ALU. //David Olofson - Programmer, Composer, Open Source Advocate .- The Return of Audiality! --------------------------------. | Free/Open Source Audio Engine for use in Games or Studio. | | RT and off-line synth. Scripting. Sample accurate timing. | `---------------------------> http://olofson.net/audiality -' --- http://olofson.net --- http://www.reologica.se ---