Is the llvm ARM support big endian elf/obj output?

The llvm ARM backend is little endian elf output as my examination as below. Is it support bid endian by other llc options as below?

llc -filetype=obj -march=arm // little endian
llc -filetype=obj -march=? or -otheroption=? // to output big endian

Jonathan

|

Hello

There is not support for big endian ARM at all.

I guess he need to change the data layout string in
ARMTargetMachine::ARMTargetMachine (ARMTargetMachine.cpp)
from "e" to "E" to get big endian output?

Regards,
chenwj

I guess he need to change the data layout string in
ARMTargetMachine::ARMTargetMachine (ARMTargetMachine.cpp)
from "e" to "E" to get big endian output?

That would be a start, but I'd expect a significant number of bugs
where the backend writers have assumed ARM was little-endian
(lib/Target/Mips, which *does* support both, has many more endian
checks in the code than ARM).

Tim.

I guess he need to change the data layout string in
ARMTargetMachine::ARMTargetMachine (ARMTargetMachine.cpp)
from "e" to "E" to get big endian output?

That would be a start, but I'd expect a significant number of bugs
where the backend writers have assumed ARM was little-endian
(lib/Target/Mips, which *does* support both, has many more endian
checks in the code than ARM).

Also note that NEON stuff is "almost" little-endian. So, huge changes
will be needed here.

All,

Thank you! I just want to know if it support big endian like Mips without modify/add source code at this point, since I am new in ARM backend.

Jonathan

13/4/23 (二),Anton Korobeynikov anton@korobeynikov.info 寫道: