Mercurial > projects > ldc
annotate gen/complex.h @ 468:45a67b6f1310
Removed the 'needsstorage' thing from Dsymbol. Arguments are not always given storage when applicable. This is not longer treat specially
in this regard. Code for accessing nested variables and contexts rewritten. Probably more. Fairly well tested.
author | Tomas Lindquist Olsen <tomas.l.olsen@gmail.com> |
---|---|
date | Mon, 04 Aug 2008 02:59:34 +0200 |
parents | 0e6b4d65d3f8 |
children | fbb1a366cfbc |
rev | line source |
---|---|
104
4d1e9eb001e0
[svn r108] Now basic suppport for complex types. =,+,-,*,/ are supported.
lindquist
parents:
diff
changeset
|
1 #ifndef LLVMDC_GEN_COMPLEX_H |
4d1e9eb001e0
[svn r108] Now basic suppport for complex types. =,+,-,*,/ are supported.
lindquist
parents:
diff
changeset
|
2 #define LLVMDC_GEN_COMPLEX_H |
4d1e9eb001e0
[svn r108] Now basic suppport for complex types. =,+,-,*,/ are supported.
lindquist
parents:
diff
changeset
|
3 |
4d1e9eb001e0
[svn r108] Now basic suppport for complex types. =,+,-,*,/ are supported.
lindquist
parents:
diff
changeset
|
4 const llvm::StructType* DtoComplexType(Type* t); |
217
0806379a5eca
[svn r233] Added: -oq command line option for writing fully qualified object names.
lindquist
parents:
213
diff
changeset
|
5 const LLType* DtoComplexBaseType(Type* t); |
104
4d1e9eb001e0
[svn r108] Now basic suppport for complex types. =,+,-,*,/ are supported.
lindquist
parents:
diff
changeset
|
6 |
213
7816aafeea3c
[svn r229] Updated the object.d implementation to the latest Tango.
lindquist
parents:
164
diff
changeset
|
7 LLConstant* DtoConstComplex(Type* t, LLConstant* re, LLConstant* im); |
7816aafeea3c
[svn r229] Updated the object.d implementation to the latest Tango.
lindquist
parents:
164
diff
changeset
|
8 LLConstant* DtoConstComplex(Type* t, long double re, long double im); |
104
4d1e9eb001e0
[svn r108] Now basic suppport for complex types. =,+,-,*,/ are supported.
lindquist
parents:
diff
changeset
|
9 |
213
7816aafeea3c
[svn r229] Updated the object.d implementation to the latest Tango.
lindquist
parents:
164
diff
changeset
|
10 LLConstant* DtoComplexShuffleMask(unsigned a, unsigned b); |
104
4d1e9eb001e0
[svn r108] Now basic suppport for complex types. =,+,-,*,/ are supported.
lindquist
parents:
diff
changeset
|
11 |
213
7816aafeea3c
[svn r229] Updated the object.d implementation to the latest Tango.
lindquist
parents:
164
diff
changeset
|
12 LLValue* DtoRealPart(DValue* val); |
7816aafeea3c
[svn r229] Updated the object.d implementation to the latest Tango.
lindquist
parents:
164
diff
changeset
|
13 LLValue* DtoImagPart(DValue* val); |
399
0e6b4d65d3f8
Give error messages for invalid casts.
Christian Kamm <kamm incasoftware de>
parents:
244
diff
changeset
|
14 DValue* DtoComplex(Loc& loc, Type* to, DValue* val); |
104
4d1e9eb001e0
[svn r108] Now basic suppport for complex types. =,+,-,*,/ are supported.
lindquist
parents:
diff
changeset
|
15 |
213
7816aafeea3c
[svn r229] Updated the object.d implementation to the latest Tango.
lindquist
parents:
164
diff
changeset
|
16 void DtoComplexAssign(LLValue* l, LLValue* r); |
7816aafeea3c
[svn r229] Updated the object.d implementation to the latest Tango.
lindquist
parents:
164
diff
changeset
|
17 void DtoComplexSet(LLValue* c, LLValue* re, LLValue* im); |
104
4d1e9eb001e0
[svn r108] Now basic suppport for complex types. =,+,-,*,/ are supported.
lindquist
parents:
diff
changeset
|
18 |
213
7816aafeea3c
[svn r229] Updated the object.d implementation to the latest Tango.
lindquist
parents:
164
diff
changeset
|
19 void DtoGetComplexParts(DValue* c, LLValue*& re, LLValue*& im); |
107
3efbcc81ba45
[svn r111] Fixed most problems with complex number support and added typeinfo for them.
lindquist
parents:
104
diff
changeset
|
20 |
399
0e6b4d65d3f8
Give error messages for invalid casts.
Christian Kamm <kamm incasoftware de>
parents:
244
diff
changeset
|
21 DValue* DtoComplexAdd(Loc& loc, Type* type, DValue* lhs, DValue* rhs); |
0e6b4d65d3f8
Give error messages for invalid casts.
Christian Kamm <kamm incasoftware de>
parents:
244
diff
changeset
|
22 DValue* DtoComplexSub(Loc& loc, Type* type, DValue* lhs, DValue* rhs); |
0e6b4d65d3f8
Give error messages for invalid casts.
Christian Kamm <kamm incasoftware de>
parents:
244
diff
changeset
|
23 DValue* DtoComplexMul(Loc& loc, Type* type, DValue* lhs, DValue* rhs); |
0e6b4d65d3f8
Give error messages for invalid casts.
Christian Kamm <kamm incasoftware de>
parents:
244
diff
changeset
|
24 DValue* DtoComplexDiv(Loc& loc, Type* type, DValue* lhs, DValue* rhs); |
0e6b4d65d3f8
Give error messages for invalid casts.
Christian Kamm <kamm incasoftware de>
parents:
244
diff
changeset
|
25 DValue* DtoComplexNeg(Loc& loc, Type* type, DValue* val); |
104
4d1e9eb001e0
[svn r108] Now basic suppport for complex types. =,+,-,*,/ are supported.
lindquist
parents:
diff
changeset
|
26 |
399
0e6b4d65d3f8
Give error messages for invalid casts.
Christian Kamm <kamm incasoftware de>
parents:
244
diff
changeset
|
27 LLValue* DtoComplexEquals(Loc& loc, TOK op, DValue* lhs, DValue* rhs); |
104
4d1e9eb001e0
[svn r108] Now basic suppport for complex types. =,+,-,*,/ are supported.
lindquist
parents:
diff
changeset
|
28 |
399
0e6b4d65d3f8
Give error messages for invalid casts.
Christian Kamm <kamm incasoftware de>
parents:
244
diff
changeset
|
29 DValue* DtoCastComplex(Loc& loc, DValue* val, Type* to); |
244
a95056b3c996
[svn r261] Fixed debug info for integer and floating local variables, can now be inspected in GDB.
lindquist
parents:
217
diff
changeset
|
30 |
104
4d1e9eb001e0
[svn r108] Now basic suppport for complex types. =,+,-,*,/ are supported.
lindquist
parents:
diff
changeset
|
31 #endif // LLVMDC_GEN_COMPLEX_H |