delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1997/05/20/11:46:02

Message-ID: <3381C71A.28FF@silesia.top.pl>
Date: Tue, 20 May 1997 17:45:30 +0200
From: Michal <wapex AT silesia DOT top DOT pl>
MIME-Version: 1.0
To: djgpp AT delorie DOT com
Subject: Re: float & ints & triangle3d_f
References: <199705200112 DOT LAA18997 AT solwarra DOT gbrmpa DOT gov DOT au>

Leath Muller wrote:
> 
> > > Is comparing floats slower then comparing ints? i.e. if (a < b)
> > They are much more slower.
> 
> This is true, but if your just checking for a < b, sub a from b, store and
> check the sign bit. If the sign is 0 then a <= b... If you weave the code
> properly, you can do a check in about (from memory) 5 cycles... (compared
> to an int's 1 though)
> 
> Leathal.
This is true, but the compiler won't do it for you, and I can't imagine
writing all coparisions in assembler... so avoid it.
There is another trick you maight find usefull. To convert float point
to integer just add 0x59c00000 (have to be single precision fadd), store
the result and use it as it was integer. It's only 1 clock less, but you
have beter scheduling opportunities (can execute up to 4 integer
instruction in a gap after fadd).

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019