A question about _udivdi3.o in libgcc.a on Loongson platform

Ling Kun lkun.erlv@gmail.com
Tue May 25 05:11:00 GMT 2010

Hi all,
   when deeply looking into the libgcc.a of
mips64el-unknown-linux-gnu-gcc-4.4.3, I found a object file
_udivdi3.o. but when objdump this object file, no entry for function
_udivdi3 is found, only a __udivti3 function entry, and there are also
some other *di3.o file which only   *ti3  can find.
   However, in x86 platform, i686-pc-linux-gnu-gcc-4.4.3. I can find
_udivdi3 in _udivdi3.o .
  The question is why?
 why in mips64el.
$nm --print-armap libgcc.a
         U __clz_tab
00000000 T __udivti3
while in i686-pc
$nm --print-armap libgcc.a
00000000 T __udivdi3
I know there are some architecture difference, but  as in
gcc/doc/gccint.info says:
 -- Runtime Function: unsigned long __udivdi3 (unsigned long A,
          unsigned long B)
 -- Runtime Function: unsigned long long __udivti3 (unsigned long long
          A, unsigned long long B)
why mips64el doesn't   need a runtime function entry for _udivdi3  ?
Ling Kun

More information about the Gcc mailing list