From 350b5438cd0b2a9ed33c0cdb1b36d7e4cbe1ab2b Mon Sep 17 00:00:00 2001 From: Jyun-Yan You Date: Mon, 30 Sep 2013 13:20:52 +0800 Subject: 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. --- src/rustllvm/PassWrapper.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'src/rustllvm/PassWrapper.cpp') 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, -- cgit 1.4.1-3-g733a5