comparison gen/complex.h @ 585:fbb1a366cfbc

Complex number should now follow the D ABI on x86. They're also treated as first class values now. Big change.
author Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
date Tue, 09 Sep 2008 16:49:47 -0700
parents 0e6b4d65d3f8
children 634fbbdec390
comparison
equal deleted inserted replaced
584:c7d7e2282ba3 585:fbb1a366cfbc
2 #define LLVMDC_GEN_COMPLEX_H 2 #define LLVMDC_GEN_COMPLEX_H
3 3
4 const llvm::StructType* DtoComplexType(Type* t); 4 const llvm::StructType* DtoComplexType(Type* t);
5 const LLType* DtoComplexBaseType(Type* t); 5 const LLType* DtoComplexBaseType(Type* t);
6 6
7 LLConstant* DtoConstComplex(Type* t, LLConstant* re, LLConstant* im);
8 LLConstant* DtoConstComplex(Type* t, long double re, long double im); 7 LLConstant* DtoConstComplex(Type* t, long double re, long double im);
9 8
10 LLConstant* DtoComplexShuffleMask(unsigned a, unsigned b); 9 LLConstant* DtoComplexShuffleMask(unsigned a, unsigned b);
11 10
12 LLValue* DtoRealPart(DValue* val); 11 LLValue* DtoRealPart(DValue* val);
13 LLValue* DtoImagPart(DValue* val); 12 LLValue* DtoImagPart(DValue* val);
14 DValue* DtoComplex(Loc& loc, Type* to, DValue* val); 13 DValue* DtoComplex(Loc& loc, Type* to, DValue* val);
15 14
16 void DtoComplexAssign(LLValue* l, LLValue* r);
17 void DtoComplexSet(LLValue* c, LLValue* re, LLValue* im); 15 void DtoComplexSet(LLValue* c, LLValue* re, LLValue* im);
18 16
19 void DtoGetComplexParts(DValue* c, LLValue*& re, LLValue*& im); 17 void DtoGetComplexParts(DValue* c, LLValue*& re, LLValue*& im);
20 18
21 DValue* DtoComplexAdd(Loc& loc, Type* type, DValue* lhs, DValue* rhs); 19 DValue* DtoComplexAdd(Loc& loc, Type* type, DValue* lhs, DValue* rhs);