[tremor] Tremor's use of 64-bit math
    Nicolas Pitre 
    nico at cam.org
       
    Fri Sep 13 08:26:59 PDT 2002
    
    
  
On Fri, 13 Sep 2002, Owen G. Emry wrote:
> I'm referring to everything that requires me to link against libgcc.a.  I'm 
> targeting ARM, and defining _ARM_ASSEM_ which I _think_ is what does the 
> 32x32 -> 32,32 multiplications, right?  However, gcc's still generating 
> references to these:
> 
> __divdi3 (in ov_bitrate, ov_bitrate_instant, ov_time_total, etc.)
> __divsi3 (in _book_maptype1_quantvals, _book_unquantize, 
> vorbis_book_decodevs_add, floor0_look, etc.)
> __modsi3 (in _book_unquantize)
> 
> I've poked around for documentation and I honestly can't even figure out what 
> these are, but it's obvious from examining the ARM disassembly that they 
> result from operations on long longs.  
You mostly don't have the choice to link against libgcc.a.  Those symbols 
are functions implementing basic C primitives that the processor can,t 
perform by itself, and not only for 64 bit operations but 32 bit operations 
as well.  __divsi3 is a standard 32 bit division like in:
        int x, y z;
        z = x / y;
The __divdi3 call is for 64 bit divisions.
__modsi3 is the modulo operation on 32 bit types. like in:	
        int x, y, z;
        z = x % y;
Etc.
You really can't go away without libgcc.a in most cases.  If you can't link 
libgcc.a then your compiler installation is broken in some way.
<p>Nicolas
--- >8 ----
List archives:  http://www.xiph.org/archives/
Ogg project homepage: http://www.xiph.org/ogg/
To unsubscribe from this list, send a message to 'tremor-request at xiph.org'
containing only the word 'unsubscribe' in the body.  No subject is needed.
Unsubscribe messages sent to the list will be ignored/filtered.
    
    
More information about the Tremor
mailing list