This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: A question about _udivdi3.o in libgcc.a on Loongson platform
- From: Ian Lance Taylor <iant at google dot com>
- To: Ling Kun <lkun dot erlv at gmail dot com>
- Cc: gcc at gcc dot gnu dot org
- Date: Mon, 24 May 2010 22:10:39 -0700
- Subject: Re: A question about _udivdi3.o in libgcc.a on Loongson platform
- References: <AANLkTiniIPTbzehPi9ueRxhXVotLCokEJscZ24oFkQJ9@mail.gmail.com> <AANLkTikCJQoDCsa-PxYsjm_m_ObtUhO2jOL3O8vDXTNr@mail.gmail.com>
Ling Kun <lkun.erlv@gmail.com> writes:
> ÂÂ 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?
mips64 is a 64-bit target which i686 is a 32-bit target. In general
the names of the files in libgcc are always based on 32-bit targets,
but the function names are based on twice the size of a register word.
> why mips64el doesn't  need a runtime function entry for _udivdi3 �
Because mips64 has the ddivu instruction which implements unsigned
DImode division directly.
Ian