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

Ling Kun lkun.erlv@gmail.com
Tue May 25 07:55:00 GMT 2010


Thank you Ian Lance Taylor. Your reply helps me a lot :)

Ling Kun

On Tue, May 25, 2010 at 1:10 PM, Ian Lance Taylor <iant@google.com> wrote:
> 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
>



-- 
http://www.lingcc.com



More information about the Gcc mailing list