Mercurial > projects > ldc
comparison gen/complex.cpp @ 205:9d44ec83acd1 trunk
[svn r221] Update: Switched to the 2.3 LLVM svn branch, http://llvm.org/svn/llvm-project/llvm/branches/release_23 .
Fixed: Implemented volatile statements. Uses the LLVM memory barrier intrinsic, closes #21 .
author | lindquist |
---|---|
date | Tue, 13 May 2008 17:58:11 +0200 |
parents | a64becf2a702 |
children | 7816aafeea3c |
comparison
equal
deleted
inserted
replaced
204:11fe364b9a3e | 205:9d44ec83acd1 |
---|---|
133 const llvm::Type* base = DtoComplexBaseType(to); | 133 const llvm::Type* base = DtoComplexBaseType(to); |
134 | 134 |
135 llvm::Constant* undef = llvm::UndefValue::get(base); | 135 llvm::Constant* undef = llvm::UndefValue::get(base); |
136 llvm::Constant* zero; | 136 llvm::Constant* zero; |
137 if (ty == Tfloat32 || ty == Timaginary32 || ty == Tcomplex32) | 137 if (ty == Tfloat32 || ty == Timaginary32 || ty == Tcomplex32) |
138 zero = llvm::ConstantFP::get(llvm::Type::FloatTy, llvm::APFloat(0.0f)); | 138 zero = llvm::ConstantFP::get(llvm::APFloat(0.0f)); |
139 else if (ty == Tfloat64 || ty == Timaginary64 || ty == Tcomplex64 || ty == Tfloat80 || ty == Timaginary80 || ty == Tcomplex80) | 139 else if (ty == Tfloat64 || ty == Timaginary64 || ty == Tcomplex64 || ty == Tfloat80 || ty == Timaginary80 || ty == Tcomplex80) |
140 zero = llvm::ConstantFP::get(llvm::Type::DoubleTy, llvm::APFloat(0.0)); | 140 zero = llvm::ConstantFP::get(llvm::APFloat(0.0)); |
141 | 141 |
142 if (t->isimaginary()) { | 142 if (t->isimaginary()) { |
143 return new DComplexValue(to, zero, val->getRVal()); | 143 return new DComplexValue(to, zero, val->getRVal()); |
144 } | 144 } |
145 else if (t->isfloating()) { | 145 else if (t->isfloating()) { |