llvm/lib/System/Unix/Host.inc contain this switch at LLVM compiletime:
// FIXME: We need to pick the right ARM triple (which involves querying the
// chip). However, for now this is most important for LLVM arch selection, so
// we only need to make sure to distinguish ARM and Thumb.
# if defined(__thumb__)
Arch = "thumb";
# else
Arch = "arm";
# endif
This makes llvm use the thumb JIT backend by default when compiling with a thumb toolchain, unfortunally the thumb jit backend are not implemented, see http://llvm.org/bugs/show_bug.cgi?id=6223 and thats why you are hitting this bug.
you can pass -march=arm or -mtriple=arm to the JIT at runtime to force llvm to use the implemented ARM JIT
llvm/lib/ System/ Unix/Host. inc contain this switch at LLVM compiletime:
// FIXME: We need to pick the right ARM triple (which involves querying the
// chip). However, for now this is most important for LLVM arch selection, so
// we only need to make sure to distinguish ARM and Thumb.
# if defined(__thumb__)
Arch = "thumb";
# else
Arch = "arm";
# endif
This makes llvm use the thumb JIT backend by default when compiling with a thumb toolchain, unfortunally the thumb jit backend are not implemented, see http:// llvm.org/ bugs/show_ bug.cgi? id=6223 and thats why you are hitting this bug.
you can pass -march=arm or -mtriple=arm to the JIT at runtime to force llvm to use the implemented ARM JIT