Why llvm-gcc/g++ does not support the 64-bit SPARC ABI (-m64)

My application is 64bit running on Solaris 10 with Sparc. I’d like to use llvm-gcc/g++ to compile it to make it run faster. But in the Release Notes of the latest LLVM release, it says

Known problems with the SPARC back-end

* The SPARC backend only supports the 32-bit SPARC ABI (-m32); it does not support the 64-bit SPARC ABI (-m64).

Why it doesn’t support 64bit on sparc?

Thanks!

Cathy Guo

At guess, because nobody has implemented it yet. Patches welcome!

-Owen

Hello, Cathy

Why it doesn’t support 64bit on sparc?

It’s a bit hard to answer on such questions… But probably the right answer is: nobody cared about it, sorry.
Also, as far as I remember, 32 bit code is also not always ABI-compliant.

Anton Korobeynikov wrote:

Hello, Cathy

Why it doesn't support 64bit on sparc?

It's a bit hard to answer on such questions... But probably the right answer is: nobody cared about it, sorry.
Also, as far as I remember, 32 bit code is also not always ABI-compliant.

As far as I know, llvm-gcc won't build properly for the sparc target due to some unimplemented floating point stuff, so you can't really produce ABI compatible stuff. There is also some sort of issue with exception support which is not something actually know anything about.

Luke