How to get MIPS from clang + llvm ?

I was told that I can use clang + llvm to get MIPS instructions on my x86 machine.

I did following command and got error below. Does anyone have any idea ? or can someone suggest me how to get MIPS instructions easily from llvm.

clang -ccc-host-triple mips-unknown-linux -ccc-clang-archs mips helllo.c

clang: warning: unknown platform, assuming -mfloat-abi=soft
’+’ is not a recognized feature for this target (ignoring feature)
/tmp/cc-9SOWh0.s: Assembler messages:
/tmp/cc-9SOWh0.s:8: Error: unknown pseudo-op: .ent'<br>/tmp/cc-9SOWh0.s:10: Error: unknown pseudo-op: .frame’
/tmp/cc-9SOWh0.s:11: Error: unknown pseudo-op: .mask'<br>/tmp/cc-9SOWh0.s:12: Error: unknown pseudo-op: .fmask’
/tmp/cc-9SOWh0.s:13: Error: expected comma after “noreorder”
/tmp/cc-9SOWh0.s:14: Error: expected comma after “nomacro”
/tmp/cc-9SOWh0.s:15: Error: no such instruction: addiu $sp,$sp,-48'<br>/tmp/cc-9SOWh0.s:16: Error: no such instruction: sw $ra,44($sp)’
/tmp/cc-9SOWh0.s:17: Error: no such instruction: sw $fp,40($sp)'<br>/tmp/cc-9SOWh0.s:18: Error: no such instruction: addu $fp,$sp,$zero’
/tmp/cc-9SOWh0.s:19: Error: no such instruction: sw $zero,32($fp)'<br>/tmp/cc-9SOWh0.s:20: Error: no such instruction: lui $2,%hi($.str)’
/tmp/cc-9SOWh0.s:21: Error: no such instruction: addiu $4,$2,%lo($.str)'<br>/tmp/cc-9SOWh0.s:22: Error: suffix or operands invalid for ja’
/tmp/cc-9SOWh0.s:24: Error: no such instruction: sw $2,36($fp)'<br>/tmp/cc-9SOWh0.s:25: Error: no such instruction: addiu $2,$zero,0’
/tmp/cc-9SOWh0.s:26: Error: no such instruction: addu $sp,$fp,$zero'<br>/tmp/cc-9SOWh0.s:27: Error: no such instruction: lw $fp,40($sp)’
/tmp/cc-9SOWh0.s:29: Error: no such instruction: lw $ra,44($sp)'<br>/tmp/cc-9SOWh0.s:31: Error: no such instruction: addiu $sp,$sp,48’
/tmp/cc-9SOWh0.s:32: Error: no such instruction: `jr $ra’
/tmp/cc-9SOWh0.s:34: Error: expected comma after “macro”
/tmp/cc-9SOWh0.s:35: Error: expected comma after "reorder"
clang: error: assembler command failed with exit code 1 (use -v to see invocation)
jmatai@ubuntu:~/Work/llvm2.9/projects/hw_mips$

|

clang -ccc-host-triple mips-unknown-linux -ccc-clang-archs mips helllo.c -S -o hello.s

clang/llvm cannot produce mips object code or executable (yet).

There are some new patches that make the Clang driver work better for a MIPS native
hosted compiler. We are working on the patches for the cross compiler.

There is also an alternate Clang driver which works well for MIPS cross at:
http://code.google.com/p/alternate-clang-driver/

Some patches are being checked in now to support direct .o generation but it’s very experimental.

There is also more or less a full MIPS/LLVM/Clang release available at
http://developer.mips.com/clang-llvm/

It’s experimental but it should work for you just fine.

It has full info on building tool chain, libraries, binutils and other things.

Make sure that as and ld in path are from the MIPS toolchain.
Alternatively, make sure that mips-unknown-linux-as and
mips-unknown-linux-ld exist. The latter is searched first, so easier to
use by avoiding conflicts with native toolchain.

Joerg