__mips16_xxx and .globl

2013-08-29 Thread Reed Kotler
I have implemented this gcc mips16 floating point scheme in llvm/clang 
and ran into one interesting issue.


In gcc mips16, for all the hard float routines, i.e. __mips16_xxx, gcc 
emits a .globl for them.


It does not do this for other routines like strcmp for example or puts.

If don't remit the .globl's for these in -fPIC mode, then when I run 
this one heavy math use  program, it runs really slow because it seems 
to be constantly in the loader doing something.


If I edit the .s file and add the .globl's then it runs at normal speed.

Does anyone know what the issue would be here?

Without the .globl, the type is UNDEFINED and with the .globl the type 
of OBJECT for these __mips16_xxx routines.


Reed





Re: __mips16_xxx and .globl

2013-08-29 Thread Reed Kotler

I forgot to mention that this only happens with Im linking as C++

On 08/29/2013 02:07 PM, Reed Kotler wrote:

I have implemented this gcc mips16 floating point scheme in llvm/clang
and ran into one interesting issue.

In gcc mips16, for all the hard float routines, i.e. __mips16_xxx, gcc
emits a .globl for them.

It does not do this for other routines like strcmp for example or puts.

If don't remit the .globl's for these in -fPIC mode, then when I run
this one heavy math use  program, it runs really slow because it seems
to be constantly in the loader doing something.

If I edit the .s file and add the .globl's then it runs at normal speed.

Does anyone know what the issue would be here?

Without the .globl, the type is UNDEFINED and with the .globl the type
of OBJECT for these __mips16_xxx routines.

Reed