diff options
| author | Jyun-Yan You <jyyou@cs.nctu.edu.tw> | 2013-09-30 13:20:52 +0800 |
|---|---|---|
| committer | Jyun-Yan You <jyyou@cs.nctu.edu.tw> | 2013-10-01 11:19:18 +0800 |
| commit | 350b5438cd0b2a9ed33c0cdb1b36d7e4cbe1ab2b (patch) | |
| tree | fa9aef4b025b563f47edfffad6a05cbbf961acb1 /src/rustllvm/PassWrapper.cpp | |
| parent | 80b6056f5d4ae6b527b36c502cc074c2518a3f7d (diff) | |
| download | rust-350b5438cd0b2a9ed33c0cdb1b36d7e4cbe1ab2b.tar.gz rust-350b5438cd0b2a9ed33c0cdb1b36d7e4cbe1ab2b.zip | |
add -Z soft-float option
This change adds -Z soft-float option for generating software floating point library calls. It also implies using soft float ABI, that is the same as llc. It is useful for targets that have no FPU.
Diffstat (limited to 'src/rustllvm/PassWrapper.cpp')
| -rw-r--r-- | src/rustllvm/PassWrapper.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/rustllvm/PassWrapper.cpp b/src/rustllvm/PassWrapper.cpp index 615c2cc61cb..8d0b447fa4a 100644 --- a/src/rustllvm/PassWrapper.cpp +++ b/src/rustllvm/PassWrapper.cpp @@ -67,7 +67,8 @@ LLVMRustCreateTargetMachine(const char *triple, CodeModel::Model CM, Reloc::Model RM, CodeGenOpt::Level OptLevel, - bool EnableSegmentedStacks) { + bool EnableSegmentedStacks, + bool UseSoftFloat) { std::string Error; Triple Trip(Triple::normalize(triple)); const llvm::Target *TheTarget = TargetRegistry::lookupTarget(Trip.getTriple(), @@ -84,6 +85,10 @@ LLVMRustCreateTargetMachine(const char *triple, Options.FloatABIType = (Trip.getEnvironment() == Triple::GNUEABIHF) ? FloatABI::Hard : FloatABI::Default; + Options.UseSoftFloat = UseSoftFloat; + if (UseSoftFloat) { + Options.FloatABIType = FloatABI::Soft; + } TargetMachine *TM = TheTarget->createTargetMachine(Trip.getTriple(), cpu, |
